{"version":3,"sources":["../node_modules/react/index.js","../../../../../../src/.internal/core/utils/Type.ts","../../../../../../src/.internal/core/utils/Math.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../../../../../src/.internal/core/Registry.ts","../node_modules/tslib/tslib.es6.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/types/types-internal.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/immer.ts","../../src/utils/env.ts","../node_modules/classnames/index.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/axios/index.js","../../../../../../src/.internal/core/rendering/Path.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../../../../../../src/.internal/core/utils/Utils.ts","../../../../../../src/.internal/core/utils/Array.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.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/objectSpread2.js","../node_modules/moment/moment.js","../../../../../../src/.internal/core/utils/Iterator.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../../../src/.internal/core/utils/Percent.ts","../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/isNativeReflectConstruct.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/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../../../../../../src/.internal/core/utils/Color.ts","../../../../../../src/.internal/core/utils/Object.ts","../../../../../../src/.internal/core/utils/List.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../../../../src/.internal/core/utils/Disposer.ts","../../../../../../src/.internal/core/utils/DOM.ts","../../../../../src/.internal/core/Sprite.ts","../../../src/ILogger.ts","../../../../../src/.internal/core/Container.ts","../../../../../../src/.internal/core/elements/Image.ts","../../../../../../src/.internal/core/elements/Polyarc.ts","../../../../../../src/.internal/core/utils/Morpher.ts","../../../../../../src/.internal/core/elements/Polygon.ts","../../../../../../src/.internal/core/elements/Preloader.ts","../../../../../../src/.internal/core/elements/CloseButton.ts","../../../../../../src/.internal/core/elements/SwitchButton.ts","../../../../../../src/.internal/core/elements/Slider.ts","../../../../../../src/.internal/core/elements/PlayButton.ts","../../../../../../src/.internal/core/rendering/fills/RadialGradientModifier.ts","../../../../../../src/.internal/core/rendering/fills/LinePattern.ts","../../../../../../src/.internal/core/rendering/fills/CirclePattern.ts","../../../../../../src/.internal/core/rendering/fills/RectPattern.ts","../../../../../../src/.internal/core/rendering/filters/ColorizeFilter.ts","../../../../../../src/.internal/core/rendering/filters/BlurFilter.ts","../../../../../../src/.internal/core/rendering/filters/FocusFilter.ts","../../../../../../src/.internal/core/utils/PatternSet.ts","../../../../../../src/.internal/core/utils/Plugin.ts","../../../../../../src/.internal/core/elements/AmChartsLogo.ts","../../../../../../src/.internal/core/utils/Instance.ts","../node_modules/rc-util/es/KeyCode.js","../../../../../../src/.internal/core/elements/Grip.ts","../../../../../src/.internal/charts/Chart.ts","../../../../../../src/.internal/charts/elements/Bullet.ts","../../../../../src/.internal/charts/Legend.ts","../../../../../../src/.internal/charts/series/Series.ts","../../../../../../src/.internal/charts/types/SerialChart.ts","../../../../../../src/.internal/charts/axes/AxisBreak.ts","../../../../../../src/.internal/charts/axes/Axis.ts","../../../../../../src/.internal/charts/axes/AxisLine.ts","../../../../../../src/.internal/charts/axes/AxisFill.ts","../../../../../../src/.internal/charts/axes/Grid.ts","../../../../../../src/.internal/charts/axes/AxisLabel.ts","../../../../../../src/.internal/charts/elements/Tick.ts","../../../../../../src/.internal/charts/axes/AxisTick.ts","../../../../../../src/.internal/charts/axes/AxisRenderer.ts","../../../../../../src/.internal/charts/axes/AxisBullet.ts","../../../../../../src/.internal/charts/axes/AxisRendererY.ts","../../../../../../src/.internal/charts/axes/ValueAxisBreak.ts","../../../../../../src/.internal/charts/axes/ValueAxis.ts","../../../../../../src/.internal/charts/axes/DateAxisBreak.ts","../../../../../../src/.internal/charts/axes/DateAxis.ts","../../../../../../src/.internal/charts/axes/AxisRendererX.ts","../../../../../../src/.internal/charts/axes/CategoryAxisBreak.ts","../../../../../../src/.internal/charts/axes/CategoryAxis.ts","../../../../../../src/.internal/charts/series/XYSeries.ts","../../../../../../src/.internal/charts/elements/XYChartScrollbar.ts","../../../../../../src/.internal/charts/types/XYChart.ts","../../../../../../src/.internal/charts/series/LineSeriesSegment.ts","../../../../../../src/.internal/charts/axes/DurationAxis.ts","../../../../../../src/.internal/charts/series/LineSeries.ts","../../../../../../src/.internal/charts/series/RadarSeries.ts","../../../../../../src/.internal/charts/axes/AxisFillCircular.ts","../../../../../../src/.internal/charts/axes/GridCircular.ts","../../../../../../src/.internal/charts/axes/AxisLabelCircular.ts","../../../../../../src/.internal/charts/axes/AxisRendererCircular.ts","../../../../../../src/.internal/charts/axes/AxisRendererRadial.ts","../../../../../../src/.internal/charts/types/RadarChart.ts","../../../../../../src/.internal/charts/elements/ClockHand.ts","../../../../../../src/.internal/charts/types/GaugeChart.ts","../../../../../../src/.internal/charts/series/PercentSeries.ts","../../../../../../src/.internal/charts/types/PercentChart.ts","../../../../../../src/.internal/charts/elements/PieTick.ts","../../../../../../src/.internal/charts/series/PieSeries.ts","../../../../../../src/.internal/charts/types/PieChart.ts","../../../../../../src/.internal/charts/series/PieSeries3D.ts","../../../../../../src/.internal/charts/types/PieChart3D.ts","../../../../../../src/.internal/charts/types/SlicedChart.ts","../../../../../../src/.internal/charts/elements/FlowDiagramNode.ts","../../../../../../src/.internal/charts/elements/FlowDiagramLink.ts","../../../../../../src/.internal/charts/types/FlowDiagram.ts","../../../../../../src/.internal/charts/elements/LabelBullet.ts","../../../../../../src/.internal/charts/elements/SankeyNode.ts","../../../../../../src/.internal/charts/elements/SankeyLink.ts","../../../../../../src/.internal/charts/types/SankeyDiagram.ts","../../../../../../src/.internal/charts/elements/ChordNode.ts","../../../../../../src/.internal/core/elements/QuadraticCurve.ts","../../../../../../src/.internal/charts/elements/ChordLink.ts","../../../../../../src/.internal/charts/types/ChordDiagram.ts","../../../../../../src/.internal/charts/elements/Column.ts","../../../../../../src/.internal/charts/series/ColumnSeries.ts","../../../../../../src/.internal/charts/series/TreeMapSeries.ts","../../../../../../src/.internal/charts/types/TreeMap.ts","../../../../../../src/.internal/charts/axes/AxisRendererX3D.ts","../../../../../../src/.internal/charts/axes/AxisRendererY3D.ts","../../../../../../src/.internal/charts/elements/Column3D.ts","../../../../../../src/.internal/charts/series/ColumnSeries3D.ts","../../../../../../src/.internal/charts/types/XYChart3D.ts","../../../../../../src/.internal/charts/elements/HeatLegend.ts","../../../../../../src/.internal/charts/elements/Candlestick.ts","../../../../../../src/.internal/charts/series/CandlestickSeries.ts","../../../../../../src/.internal/charts/elements/OHLC.ts","../../../../../../src/.internal/charts/series/OHLCSeries.ts","../../../../../../src/.internal/charts/series/StepLineSeriesSegment.ts","../../../../../../src/.internal/charts/series/StepLineSeries.ts","../../../../../../src/.internal/charts/elements/RadarColumn.ts","../../../../../../src/.internal/charts/series/RadarColumnSeries.ts","../../../../../../src/.internal/charts/elements/FunnelSlice.ts","../../../../../../src/.internal/charts/elements/FunnelTick.ts","../../../../../../src/.internal/charts/series/FunnelSeries.ts","../../../../../../src/.internal/charts/series/PyramidSeries.ts","../../../../../../src/.internal/charts/series/PictorialStackedSeries.ts","../../../../../../src/.internal/charts/elements/ConeColumn.ts","../../../../../../src/.internal/charts/series/ConeSeries.ts","../../../../../../src/.internal/charts/elements/CurvedColumn.ts","../../../../../../src/.internal/charts/series/CurvedColumnSeries.ts","../../../../../../src/.internal/charts/elements/CircleBullet.ts","../../../../../../src/.internal/charts/elements/ErrorBullet.ts","../../../../../../src/.internal/charts/elements/NavigationBar.ts","../../../../../../src/.internal/charts/cursors/Cursor.ts","../../../../../../src/.internal/charts/cursors/XYCursor.ts","../../../../../../src/.internal/charts/cursors/RadarCursor.ts","../../../../../../src/.internal/core/utils/Time.ts","../../../../../../src/.internal/core/utils/InterfaceColorSet.ts","../node_modules/antd/es/locale-provider/index.js","../node_modules/antd/es/config-provider/index.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../../../../src/.internal/core/interaction/Interaction.ts","../../../../../../src/.internal/core/utils/Dictionary.ts","../node_modules/rc-util/es/warning.js","../node_modules/antd/es/_util/devWarning.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/redux/es/redux.js","../../../../../src/.internal/core/System.ts","../node_modules/antd/es/_util/reactNode.js","../../../src/Utils.ts","../../../../../src/.internal/core/Base.ts","../node_modules/prop-types/index.js","../node_modules/react-dom/index.js","../../../../../src/.internal/core/Options.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/omit.js/es/index.js","../../../../../../src/.internal/core/utils/Responsive.ts","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../../../../../../src/.internal/core/utils/Strings.ts","../node_modules/@okta/okta-react/dist/index.js","../node_modules/@ant-design/icons/lib/components/AntdIcon.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/reactcss/lib/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/raf/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/util.js","../../../../../../src/.internal/core/utils/Adapter.ts","../node_modules/antd/es/config-provider/renderEmpty.js","../node_modules/antd/es/config-provider/context.js","../../../../../../src/.internal/core/interaction/Mouse.ts","../node_modules/rc-util/es/Children/toArray.js","../../../../../../src/.internal/core/utils/Animation.ts","../../../../../../src/.internal/core/elements/Label.ts","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/_util/type.js","../node_modules/react-color/lib/components/common/index.js","../node_modules/antd/es/button/index.js","../../../../../../src/.internal/core/utils/Ease.ts","../node_modules/@ant-design/icons/LoadingOutlined.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../../../../../../src/.internal/core/utils/Colors.ts","../../../../../../src/.internal/core/rendering/fills/LinearGradient.ts","../../../../../../src/.internal/core/rendering/Smoothing.ts","../node_modules/babel-runtime/helpers/extends.js","../node_modules/rc-util/es/hooks/useMergedState.js","../../../../../../src/.internal/core/elements/RoundedRectangle.ts","../node_modules/@ant-design/icons/CloseCircleFilled.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../../../../src/.internal/core/utils/AsyncPending.ts","../../../../../../src/.internal/core/utils/EventDispatcher.ts","../node_modules/tz-lookup/tz.js","../../../../../../src/.internal/core/utils/SortedList.ts","../../../../../../src/.internal/core/elements/Line.ts","../node_modules/@ant-design/icons/CloseOutlined.js","../../../../src/lang/en.ts","../../../../../../src/.internal/core/utils/Language.ts","../../../../../../src/.internal/core/utils/Keyboard.ts","../../../../../../src/.internal/core/formatters/TextFormatter.ts","../node_modules/rc-resize-observer/es/index.js","../node_modules/shallowequal/index.js","../../../../../../src/.internal/core/utils/Number.ts","../node_modules/antd/es/_util/raf.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../../../../../../src/.internal/core/rendering/Paper.ts","../../../../../../src/.internal/core/elements/Button.ts","../node_modules/rc-util/es/ref.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/webpack/buildin/global.js","../node_modules/react-player/lib/utils.js","../../../../../src/.internal/core/DataItem.ts","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/lodash/merge.js","../../../../../src/.internal/core/Component.ts","../../../../../../src/.internal/core/elements/Circle.ts","../../../../../../src/.internal/core/rendering/filters/Filter.ts","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/index.js","../../../../../../src/.internal/core/rendering/fills/RadialGradient.ts","../node_modules/rc-util/es/unsafeLifecyclesPolyfill.js","../node_modules/rc-animate/es/ChildrenUtils.js","../node_modules/rc-animate/es/util/animate.js","../node_modules/rc-animate/es/AnimateChild.js","../node_modules/rc-animate/es/Animate.js","../node_modules/rc-field-form/es/FieldContext.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/lodash/isArray.js","../node_modules/axios/lib/utils.js","../node_modules/react-player/lib/patterns.js","../../../../../../src/.internal/core/elements/Slice.ts","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Content.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/tooltip/placements.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/lodash/isObject.js","../node_modules/antd/lib/config-provider/index.js","../../../../../../src/.internal/core/utils/String.ts","../node_modules/rc-animate/es/CSSMotion.js","../node_modules/react-csv/index.js","../../../../../../src/.internal/core/elements/WavedLine.ts","../node_modules/lodash/_root.js","../../../../../../src/.internal/core/utils/Order.ts","../../../../../../src/.internal/core/rendering/fills/Pattern.ts","../node_modules/@ant-design/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons/ExclamationCircleFilled.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/mini-store/esm/Provider.js","../node_modules/mini-store/esm/connect.js","../node_modules/mini-store/esm/create.js","../node_modules/rc-menu/es/utils/isMobile.js","../node_modules/rc-menu/es/util.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/SubMenu.js","../node_modules/rc-menu/es/DOMWrap.js","../node_modules/rc-menu/es/SubPopupMenu.js","../node_modules/rc-menu/es/utils/legacyUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/@ant-design/css-animation/es/Event.js","../node_modules/antd/es/col/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/lodash/isObjectLike.js","../node_modules/react-color/lib/helpers/color.js","../../../../../../src/.internal/core/formatters/DateFormatter.ts","../../../../../../src/.internal/core/utils/ColorSet.ts","../../../../../../src/.internal/core/utils/Cache.ts","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../../../src/propertyUtils.js","../../../src/utils.js","../../../src/getOffsetParent.js","../../../src/isAncestorFixed.js","../../../src/getVisibleRectForElement.js","../../../src/getRegion.js","../../../src/getAlignOffset.js","../../../src/getElFuturePos.js","../../../src/align/align.js","../../../src/adjustForViewport.js","../../../src/align/alignElement.js","../../../src/align/alignPoint.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/PopupInner.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/xlsx/xlsx.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/index.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/rc-animate/es/util/motion.js","../../../../../../src/.internal/core/rendering/AMElement.ts","../../../../../../src/.internal/core/elements/Polyline.ts","../node_modules/react-is/index.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/TreeNode.js","../../../../../../src/.internal/core/data/JSONParser.ts","../node_modules/@ant-design/icons/RightOutlined.js","../node_modules/react-color/lib/index.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/lodash/map.js","../../../../../../src/.internal/core/elements/Rectangle.ts","../../../../../../src/.internal/core/elements/Scrollbar.ts","../../../../../../src/.internal/core/elements/Tooltip.ts","../../../src/Loggers.ts","../../../../../../src/.internal/core/utils/Net.ts","../../../../../../src/.internal/core/data/CSVParser.ts","../node_modules/@ant-design/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/DownOutlined.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/_util/unreachableException.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/antd/es/modal/locale.js","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/Prompt.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","../../../src/TextMessageFormat.ts","../node_modules/react-player/lib/index.js","../node_modules/antd/lib/card/Meta.js","../node_modules/process/browser.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_baseGetTag.js","../../../../../src/.internal/core/SpriteState.ts","../../../../../../src/.internal/core/data/DataLoader.ts","../../../../../../src/.internal/core/elements/Polyspline.ts","../../../../../../src/.internal/core/rendering/fills/LinearGradientModifier.ts","../../../../../../src/.internal/core/rendering/filters/DesaturateFilter.ts","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/@ant-design/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons/CloseCircleOutlined.js","../node_modules/antd/es/grid/col.js","../../../../../../src/.internal/core/utils/ResizeSensor.ts","../../../../../../src/.internal/core/rendering/SVGContainer.ts","../node_modules/@ant-design/css-animation/es/index.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/radio/radio.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/webpack/buildin/module.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/lodash/isArrayLike.js","../node_modules/react-grid-layout/build/utils.js","../../../../../../src/.internal/core/elements/Modal.ts","../../../../../../src/.internal/core/formatters/NumberFormatter.ts","../../../../../../src/.internal/core/formatters/DurationFormatter.ts","../../../../../../src/.internal/core/utils/Validatable.ts","../../../../../../src/.internal/core/data/DataParser.ts","../../../../../../src/.internal/core/elements/Triangle.ts","../../../../../../src/.internal/core/elements/WavedRectangle.ts","../../../../../../src/.internal/core/rendering/filters/LightenFilter.ts","../node_modules/lodash/debounce.js","../../../../../../src/.internal/core/elements/PopupCSS.ts","../../../../../../src/.internal/core/elements/Popup.ts","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../../../../../../src/.internal/core/elements/WavedCircle.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/antd/es/_util/wave.js","../node_modules/@ant-design/icons/SearchOutlined.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/@ant-design/icons/CheckOutlined.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/antd/es/radio/context.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/antd/lib/input/TextArea.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/react-dom/server.browser.js","../node_modules/antd/es/row/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/keysIn.js","../node_modules/@okta/okta-react/dist/OktaContext.js","../node_modules/lodash/keys.js","../node_modules/object-assign/index.js","../../../../../src/.internal/core/SpriteEvents.ts","../../../../../../src/.internal/core/interaction/InteractionObjectEvents.ts","../node_modules/@babel/runtime/helpers/typeof.js","../../../../../../src/.internal/core/elements/Ellipse.ts","../../../../../../src/.internal/core/elements/ResizeButton.ts","../../../../../../src/.internal/core/elements/TextLink.ts","../node_modules/@ant-design/icons/InfoCircleFilled.js","../node_modules/antd/es/grid/row.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/@ant-design/icons/LeftOutlined.js","../node_modules/antd/es/layout/layout.js","../node_modules/antd/es/_util/transButton.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/identity.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/isSymbol.js","../node_modules/buffer/index.js","../node_modules/antd/lib/config-provider/SizeContext.js","../node_modules/antd/es/grid/index.js","../node_modules/lodash/_toKey.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../../../../../../src/.internal/core/defs/SVGDefaults.ts","../../../../../../src/.internal/core/rendering/Group.ts","../../../../../../src/.internal/core/interaction/InteractionObject.ts","../../../../../../src/.internal/core/interaction/InteractionKeyboardObject.ts","../../../../../../src/.internal/core/interaction/Inertia.ts","../../../../../../src/.internal/core/export/Export.ts","../../../../../../src/.internal/core/data/DataSource.ts","../../../../../../src/.internal/core/elements/PointedRectangle.ts","../../../../../../src/.internal/core/elements/PointedShape.ts","../../../../../../src/.internal/core/rendering/filters/DropShadowFilter.ts","../../../../../../src/.internal/core/elements/Trapezoid.ts","../../../../../../src/.internal/core/elements/ZoomOutButton.ts","../../../../../../src/.internal/core/elements/3d/Cone.ts","../../../../../../src/.internal/core/rendering/fills/ColorModifier.ts","../../../../../../src/.internal/core/elements/3d/Rectangle3D.ts","../../../../../../src/.internal/core/elements/3d/Slice3D.ts","../node_modules/react-fast-compare/index.js","../../../../../../src/.internal/core/export/ExportCSS.ts","../../../../../../src/.internal/core/export/ExportMenu.ts","../../../../../../src/.internal/core/utils/Browser.ts","../../../../../../src/.internal/core/utils/Log.ts","../../../../../../src/.internal/core/rendering/fills/GradientModifier.ts","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/rc-util/es/createChainedFunction.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/lodash/isEqual.js","../node_modules/@ant-design/icons/EyeOutlined.js","../node_modules/rc-util/es/Portal.js","../node_modules/@ant-design/icons/EllipsisOutlined.js","../node_modules/antd/es/_util/motion.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/radio/index.js","../node_modules/antd/es/_util/ref.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/spin/index.js","../node_modules/@ant-design/icons/FileOutlined.js","../../src/resize-detector.js","../../src/with-size.js","../../src/component.js","../../src/index.js","../node_modules/react-grid-layout/index.js","../node_modules/@ant-design/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons/CalendarOutlined.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/antd/es/pagination/MiniSelect.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/utils/itemUtil.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-util/es/ContainerRender.js","../node_modules/rc-util/es/setStyle.js","../node_modules/rc-util/es/switchScrollingEffect.js","../node_modules/rc-util/es/PortalWrapper.js","../node_modules/antd/es/input/calculateNodeHeight.js","../node_modules/antd/es/input/ResizableTextArea.js","../node_modules/antd/es/input/TextArea.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_new-promise-capability.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_isIndex.js","../node_modules/@ant-design/icons/lib/utils.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_getSymbols.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/antd/lib/input/Input.js","../node_modules/antd/lib/_util/reactNode.js","../node_modules/antd/lib/_util/devWarning.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/_isKey.js","../node_modules/react-color/lib/components/common/Checkboard.js","../node_modules/lodash.isequal/index.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/moment-timezone/index.js","../node_modules/babel-runtime/helpers/objectWithoutProperties.js","../node_modules/@ant-design/colors/lib/index.js","../node_modules/insert-css/index.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/group.js","../node_modules/symbol-observable/es/index.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/path-to-regexp/index.js","../node_modules/powerbi-client/dist/powerbi.js","../node_modules/rc-picker/es/generate/moment.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/PickerTag.js","../node_modules/rc-picker/es/PanelContext.js","../node_modules/rc-picker/es/panels/Header.js","../node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","../node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","../node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","../node_modules/rc-picker/es/panels/TimePanel/index.js","../node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/rc-picker/es/RangeContext.js","../node_modules/rc-picker/es/hooks/useCellClassName.js","../node_modules/rc-picker/es/panels/PanelBody.js","../node_modules/rc-picker/es/panels/DatePanel/DateBody.js","../node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","../node_modules/rc-picker/es/panels/DatePanel/index.js","../node_modules/rc-picker/es/panels/DatetimePanel/index.js","../node_modules/rc-picker/es/panels/WeekPanel/index.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","../node_modules/rc-picker/es/panels/MonthPanel/index.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","../node_modules/rc-picker/es/panels/QuarterPanel/index.js","../node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","../node_modules/rc-picker/es/panels/YearPanel/YearBody.js","../node_modules/rc-picker/es/panels/YearPanel/index.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","../node_modules/rc-picker/es/panels/DecadePanel/index.js","../node_modules/rc-picker/es/utils/getExtraFooter.js","../node_modules/rc-picker/es/utils/getRanges.js","../node_modules/rc-picker/es/PickerPanel.js","../node_modules/rc-picker/es/PickerTrigger.js","../node_modules/rc-picker/es/hooks/usePickerInput.js","../node_modules/rc-picker/es/hooks/useTextValueMapping.js","../node_modules/rc-picker/es/hooks/useValueTexts.js","../node_modules/rc-picker/es/Picker.js","../node_modules/rc-picker/es/hooks/useRangeViewDates.js","../node_modules/rc-picker/es/RangePicker.js","../node_modules/rc-picker/es/hooks/useRangeDisabled.js","../node_modules/rc-picker/es/index.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/index.js","../node_modules/rc-tabs/es/hooks/useRaf.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/hooks/useRefs.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/index.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/@okta/okta-react/dist/AuthService.js","../node_modules/babel-runtime/core-js/promise.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_perform.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_promise-resolve.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.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/regenerator-runtime/runtime.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@ant-design/icons/lib/components/IconBase.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/rc-util/lib/warning.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/stubArray.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/xlsx/dist/cpexcel.js","../node_modules/antd/lib/input/ClearableLabeledInput.js","../node_modules/antd/lib/_util/type.js","../node_modules/antd/lib/locale/default.js","../node_modules/antd/lib/date-picker/locale/en_US.js","../node_modules/antd/lib/time-picker/locale/en_US.js","../node_modules/antd/lib/locale-provider/context.js","../node_modules/antd/lib/locale-provider/LocaleReceiver.js","../node_modules/antd/lib/_util/raf.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/react-color/lib/components/common/ColorWrap.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/element-resize-detector/src/collection-utils.js","../node_modules/element-resize-detector/src/browser-detector.js","../node_modules/react-grid-layout/build/ReactGridLayout.js","../node_modules/react-grid-layout/build/calculateUtils.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-resizable/build/Resizable.js","../node_modules/react-grid-layout/build/responsiveUtils.js","../node_modules/react-csv/lib/core.js","../node_modules/react-csv/lib/metaProps.js","../node_modules/lodash/lodash.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/react-player/lib/props.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/redux-thunk/es/index.js","../node_modules/gud/index.js","../node_modules/antd/es/message/index.js","../../../src/util.js","../../../src/rule/required.js","../../../src/rule/type.js","../../../src/rule/index.js","../../../src/rule/whitespace.js","../../../src/rule/range.js","../../../src/rule/enum.js","../../../src/rule/pattern.js","../../../src/validator/type.js","../../../src/validator/index.js","../../../src/validator/string.js","../../../src/validator/method.js","../../../src/validator/number.js","../../../src/validator/boolean.js","../../../src/validator/regexp.js","../../../src/validator/integer.js","../../../src/validator/float.js","../../../src/validator/array.js","../../../src/validator/object.js","../../../src/validator/enum.js","../../../src/validator/pattern.js","../../../src/validator/date.js","../../../src/validator/required.js","../../../src/validator/any.js","../../../src/messages.js","../../../src/index.js","../node_modules/@ant-design/icons/EyeInvisibleOutlined.js","../node_modules/rc-select/es/interface/generator.js","../node_modules/@ant-design/icons/PlusOutlined.js","../node_modules/@ant-design/icons/BarsOutlined.js","../node_modules/@ant-design/icons/FilterFilled.js","../node_modules/@ant-design/icons/CaretUpOutlined.js","../node_modules/@ant-design/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/DoubleRightOutlined.js","../../src/FileSaver.js","../node_modules/antd/lib/input/Search.js","../node_modules/@ant-design/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons/PlusSquareOutlined.js","../node_modules/@ant-design/icons/CaretDownFilled.js","../node_modules/@ant-design/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons/FolderOutlined.js","../node_modules/copy-to-clipboard/index.js","../node_modules/@ant-design/icons/EditOutlined.js","../node_modules/@ant-design/icons/CopyOutlined.js","../node_modules/@ant-design/icons/EnterOutlined.js","../node_modules/@okta/okta-auth-js/dist/okta-auth-js.umd.js","../node_modules/antd/es/avatar/index.js","../../src/overlay-view-safe.ts","../../src/cluster-icon.ts","../../src/cluster.ts","../../src/markerclusterer.ts","../node_modules/@ant-design/icons/UpOutlined.js","../node_modules/@ant-design/icons/SwapRightOutlined.js","../node_modules/@ant-design/icons/ArrowRightOutlined.js","../node_modules/@ant-design/icons/ArrowLeftOutlined.js","../node_modules/@ant-design/icons/WarningFilled.js","../node_modules/@ant-design/icons/PictureTwoTone.js","../node_modules/@ant-design/icons/FileTwoTone.js","../node_modules/@ant-design/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons/DeleteOutlined.js","../node_modules/@ant-design/icons/DownloadOutlined.js","../../../src/HandshakeProtocol.ts","../node_modules/@okta/okta-signin-widget/dist/js/okta-sign-in.entry.js","../node_modules/react-helmet/es/Helmet.js","../node_modules/react-side-effect/lib/index.js","../../../src/Errors.ts","../../../src/HttpClient.ts","../../../src/FetchHttpClient.ts","../../../src/IHubProtocol.ts","../../../src/XhrHttpClient.ts","../../../src/DefaultHttpClient.ts","../../../src/Subject.ts","../../../src/HubConnection.ts","../../../src/ITransport.ts","../../../src/DefaultReconnectPolicy.ts","../../../src/AbortController.ts","../../../src/LongPollingTransport.ts","../../../src/ServerSentEventsTransport.ts","../../../src/WebSocketTransport.ts","../../../src/HttpConnection.ts","../../../src/JsonHubProtocol.ts","../../../src/HubConnectionBuilder.ts","../node_modules/rc-animate/es/util/diff.js","../node_modules/rc-animate/es/CSSMotionList.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/hooks/useCacheDisplayValue.js","../node_modules/rc-select/es/generate.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useCacheOptions.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/antd/es/breadcrumb/BreadcrumbItem.js","../node_modules/antd/es/breadcrumb/BreadcrumbSeparator.js","../node_modules/antd/es/breadcrumb/Breadcrumb.js","../node_modules/antd/es/breadcrumb/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/index.js","../../../../../src/.internal/themes/material.ts","../../../../../src/.internal/themes/animated.ts","../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/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/timers-browserify/main.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/@okta/okta-react/dist/Security.js","../node_modules/babel-runtime/helpers/slicedToArray.js","../node_modules/babel-runtime/core-js/is-iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js","../node_modules/babel-runtime/core-js/get-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js","../node_modules/babel-runtime/core-js/object/values.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_user-agent.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.finally.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.try.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","../node_modules/babel-runtime/helpers/asyncToGenerator.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/@okta/configuration-validation/dist/lib.js","../node_modules/lodash/_baseMerge.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/_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/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.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/_createBaseFor.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_isIterateeCall.js","../../../../../../webpack/universalModuleDefinition","../webpack:/webpack/bootstrap e4815c10cb7683656589","../../../../../../okta-auth-js.min.js","../../../../../../lib/util.js","../../../../../../lib/errors/AuthSdkError.js","../../../../../../lib/browser/browserStorage.js","../../../../../../lib/constants.js","../../../../../../lib/http.js","../../../../../../lib/oauthUtil.js","../../../../../../root/okta/okta-auth-js/node_modules/@babel/runtime/helpers/typeof.js","../../../../../../lib/storageBuilder.js","../../../../../../root/okta/okta-auth-js/node_modules/@babel/runtime/regenerator/index.js","../../../../../../root/okta/okta-auth-js/node_modules/@babel/runtime/helpers/asyncToGenerator.js","../../../../../../lib/tx.js","../../../../../../lib/browser/browserIndex.js","../../../../../../lib/fetch/fetchRequest.js","../../../../../../root/okta/okta-auth-js/node_modules/cross-fetch/dist/browser-ponyfill.js","../../../../../../root/okta/okta-auth-js/node_modules/js-cookie/src/js.cookie.js","../../../../../../lib/browser/browser.js","../../../../../../root/okta/okta-auth-js/node_modules/regenerator-runtime/runtime.js","../../../../../../root/okta/okta-auth-js/node_modules/tiny-emitter/index.js","../../../../../../lib/builderUtil.js","../../../../../../lib/errors/AuthApiError.js","../../../../../../lib/errors/AuthPollStopError.js","../../../../../../lib/session.js","../../../../../../lib/token.js","../../../../../../lib/crypto.js","../../../../../../lib/errors/OAuthError.js","../../../../../../lib/pkce.js","../../../../../../lib/TokenManager.js","../../../../../../lib/clock.js","../../../../../../lib/PromiseQueue.js","../node_modules/@okta/okta-react/dist/packageInfo.js","../node_modules/@okta/okta-react/dist/withOktaAuth.js","../node_modules/@okta/okta-react/dist/LoginCallback.js","../node_modules/@okta/okta-react/dist/OktaError.js","../node_modules/@okta/okta-react/dist/SecureRoute.js","../node_modules/isarray/index.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/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/@ant-design/icons/lib/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/InfoCircleFilled.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@ant-design/colors/lib/generate.js","../node_modules/@ant-design/icons/lib/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/lib/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/LoadingOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/lib/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseOutlined.js","../../src/performance-now.coffee","../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/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/@ant-design/icons/lib/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/SearchOutlined.js","../node_modules/@ant-design/icons/lib/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EyeOutlined.js","../node_modules/@ant-design/icons/lib/icons/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/lib/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DownOutlined.js","../node_modules/@ant-design/icons/lib/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js","../node_modules/@ant-design/icons/lib/icons/PlusOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/PlusOutlined.js","../node_modules/@ant-design/icons/lib/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/lib/icons/BarsOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/BarsOutlined.js","../node_modules/@ant-design/icons/lib/icons/RightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/RightOutlined.js","../node_modules/@ant-design/icons/lib/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/LeftOutlined.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/@ant-design/icons/lib/icons/FilterFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/FilterFilled.js","../node_modules/@ant-design/icons/lib/icons/CaretUpOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/lib/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/lib/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/lib/icons/DoubleRightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DoubleRightOutlined.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/buffer/node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/xlsx/jszip.js","../node_modules/rc-util/lib/ref.js","../node_modules/antd/lib/locale-provider/index.js","../node_modules/antd/lib/modal/locale.js","../node_modules/rc-pagination/lib/locale/en_US.js","../node_modules/rc-picker/lib/locale/en_US.js","../node_modules/antd/lib/calendar/locale/en_US.js","../node_modules/antd/lib/locale-provider/default.js","../node_modules/antd/lib/config-provider/context.js","../node_modules/antd/lib/config-provider/renderEmpty.js","../node_modules/antd/lib/empty/index.js","../node_modules/antd/lib/empty/empty.js","../node_modules/antd/lib/empty/simple.js","../node_modules/antd/lib/message/index.js","../node_modules/antd/lib/notification/index.js","../node_modules/antd/lib/notification/hooks/useNotification.js","../node_modules/rc-notification/lib/useNotification.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/rc-notification/lib/Notice.js","../node_modules/antd/lib/button/index.js","../node_modules/antd/lib/button/button.js","../node_modules/antd/lib/button/button-group.js","../node_modules/antd/lib/_util/unreachableException.js","../node_modules/antd/lib/_util/wave.js","../node_modules/@ant-design/css-animation/lib/Event.js","../node_modules/antd/lib/button/LoadingIcon.js","../node_modules/rc-animate/lib/CSSMotion.js","../node_modules/rc-util/lib/Dom/findDOMNode.js","../node_modules/rc-animate/lib/util/motion.js","../node_modules/@ant-design/icons/lib/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/FileOutlined.js","../node_modules/@ant-design/icons/lib/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/lib/icons/PlusSquareOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/lib/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/lib/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/FolderOpenOutlined.js","../node_modules/@ant-design/icons/lib/icons/FolderOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/FolderOutlined.js","../node_modules/toggle-selection/index.js","../node_modules/@ant-design/icons/lib/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EditOutlined.js","../node_modules/@ant-design/icons/lib/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CopyOutlined.js","../node_modules/@ant-design/icons/lib/icons/EnterOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EnterOutlined.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/react-color/lib/components/alpha/Alpha.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/lodash/isString.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_createBaseEach.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseIsSet.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/react-color/lib/components/common/Alpha.js","../node_modules/react-color/lib/helpers/alpha.js","../node_modules/react-color/lib/helpers/checkboard.js","../node_modules/react-color/lib/components/common/EditableInput.js","../node_modules/react-color/lib/components/common/Hue.js","../node_modules/react-color/lib/helpers/hue.js","../node_modules/react-color/lib/components/common/Raised.js","../node_modules/react-color/lib/components/common/Saturation.js","../node_modules/lodash/throttle.js","../node_modules/react-color/lib/helpers/saturation.js","../node_modules/lodash/each.js","../node_modules/lodash/forEach.js","../node_modules/react-color/lib/components/common/Swatch.js","../node_modules/react-color/lib/helpers/interaction.js","../node_modules/react-color/lib/components/alpha/AlphaPointer.js","../node_modules/react-color/lib/components/block/Block.js","../node_modules/react-color/lib/components/block/BlockSwatches.js","../node_modules/react-color/lib/components/circle/Circle.js","../node_modules/react-color/lib/components/circle/CircleSwatch.js","../node_modules/react-color/lib/components/chrome/Chrome.js","../node_modules/react-color/lib/components/chrome/ChromeFields.js","../node_modules/lodash/isUndefined.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/react-color/lib/components/chrome/ChromePointer.js","../node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","../node_modules/react-color/lib/components/compact/Compact.js","../node_modules/react-color/lib/components/compact/CompactColor.js","../node_modules/react-color/lib/components/compact/CompactFields.js","../node_modules/react-color/lib/components/github/Github.js","../node_modules/react-color/lib/components/github/GithubSwatch.js","../node_modules/react-color/lib/components/hue/Hue.js","../node_modules/react-color/lib/components/hue/HuePointer.js","../node_modules/react-color/lib/components/material/Material.js","../node_modules/react-color/lib/components/photoshop/Photoshop.js","../node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/lib/components/sketch/Sketch.js","../node_modules/react-color/lib/components/sketch/SketchFields.js","../node_modules/react-color/lib/components/sketch/SketchPresetColors.js","../node_modules/react-color/lib/components/slider/Slider.js","../node_modules/react-color/lib/components/slider/SliderSwatches.js","../node_modules/react-color/lib/components/slider/SliderSwatch.js","../node_modules/react-color/lib/components/slider/SliderPointer.js","../node_modules/react-color/lib/components/swatches/Swatches.js","../node_modules/react-color/lib/components/swatches/SwatchesGroup.js","../node_modules/react-color/lib/components/swatches/SwatchesColor.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/react-color/lib/components/twitter/Twitter.js","../node_modules/antd/lib/input/ResizableTextArea.js","../node_modules/antd/lib/input/calculateNodeHeight.js","../node_modules/invariant/browser.js","../throttle.js","../debounce.js","../node_modules/element-resize-detector/src/element-resize-detector.js","../node_modules/element-resize-detector/src/element-utils.js","../node_modules/element-resize-detector/src/listener-handler.js","../node_modules/element-resize-detector/src/id-generator.js","../node_modules/element-resize-detector/src/id-handler.js","../node_modules/element-resize-detector/src/reporter.js","../node_modules/batch-processor/src/batch-processor.js","../node_modules/batch-processor/src/utils.js","../node_modules/element-resize-detector/src/state-handler.js","../node_modules/element-resize-detector/src/detection-strategy/object.js","../node_modules/element-resize-detector/src/detection-strategy/scroll.js","../node_modules/react-grid-layout/build/fastRGLPropsEqual.js","../node_modules/react-grid-layout/build/GridItem.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-resizable/index.js","../node_modules/react-resizable/build/utils.js","../node_modules/react-resizable/build/ResizableBox.js","../node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","../node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","../node_modules/react-grid-layout/build/components/WidthProvider.js","../node_modules/react-csv/lib/index.js","../node_modules/react-csv/lib/components/Download.js","../node_modules/react-csv/lib/components/Link.js","../node_modules/@ant-design/icons/lib/icons/UpOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/UpOutlined.js","../node_modules/@ant-design/icons/lib/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CalendarOutlined.js","../node_modules/@ant-design/icons/lib/icons/SwapRightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/SwapRightOutlined.js","../node_modules/@ant-design/icons/lib/icons/ArrowRightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ArrowRightOutlined.js","../node_modules/@ant-design/icons/lib/icons/ArrowLeftOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ArrowLeftOutlined.js","../node_modules/@ant-design/icons/lib/icons/WarningFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/WarningFilled.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/@ant-design/icons/lib/icons/PictureTwoTone.js","../node_modules/@ant-design/icons-svg/lib/asn/PictureTwoTone.js","../node_modules/@ant-design/icons/lib/icons/FileTwoTone.js","../node_modules/@ant-design/icons-svg/lib/asn/FileTwoTone.js","../node_modules/@ant-design/icons/lib/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/PaperClipOutlined.js","../node_modules/@ant-design/icons/lib/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/lib/icons/DownloadOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DownloadOutlined.js","../node_modules/react-player/lib/players/index.js","../node_modules/load-script/index.js","../node_modules/react-player/lib/players/YouTube.js","../node_modules/react-player/lib/players/SoundCloud.js","../node_modules/react-player/lib/players/Vimeo.js","../node_modules/react-player/lib/players/Facebook.js","../node_modules/react-player/lib/players/Streamable.js","../node_modules/react-player/lib/players/Wistia.js","../node_modules/react-player/lib/players/Twitch.js","../node_modules/react-player/lib/players/DailyMotion.js","../node_modules/react-player/lib/players/Mixcloud.js","../node_modules/react-player/lib/players/Vidyard.js","../node_modules/react-player/lib/players/Kaltura.js","../node_modules/react-player/lib/players/FilePlayer.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/Preview.js","../node_modules/handlebars/dist/handlebars.runtime.js","../node_modules/q/q.js","../node_modules/setimmediate/setImmediate.js","../node_modules/underscore/underscore.js","../node_modules/u2f-api-polyfill/u2f-api-polyfill.js","../node_modules/antd/es/divider/index.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/popover/index.js","../node_modules/antd/es/popconfirm/index.js","../node_modules/antd/es/layout/index.js","../node_modules/@ant-design/icons/es/components/Icon.js","../node_modules/antd/es/time-picker/index.js","../node_modules/antd/es/page-header/index.js","../node_modules/antd/es/auto-complete/index.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/Header/FixedHeader.js","../node_modules/rc-table/es/context/BodyContext.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/context/ResizeContext.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/index.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/antd/es/table/util.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/index.js","../node_modules/rc-upload/es/request.js","../node_modules/rc-upload/es/uid.js","../node_modules/rc-upload/es/attr-accept.js","../node_modules/rc-upload/es/traverseFileTree.js","../node_modules/rc-upload/es/AjaxUploader.js","../node_modules/rc-upload/es/Upload.js","../node_modules/rc-upload/es/index.js","../node_modules/antd/es/upload/utils.js","../node_modules/antd/es/progress/utils.js","../node_modules/antd/es/progress/Line.js","../node_modules/rc-progress/es/common.js","../node_modules/rc-progress/es/Line.js","../node_modules/rc-progress/es/Circle.js","../node_modules/antd/es/progress/Circle.js","../node_modules/antd/es/progress/Steps.js","../node_modules/antd/es/progress/progress.js","../node_modules/antd/es/progress/index.js","../node_modules/antd/es/upload/UploadList.js","../node_modules/antd/es/upload/Upload.js","../node_modules/antd/es/upload/Dragger.js","../node_modules/antd/es/upload/index.js","../node_modules/rc-dialog/es/LazyRenderBox.js","../node_modules/rc-dialog/es/Dialog.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/antd/es/_util/usePatchElement.js","../node_modules/antd/es/modal/ActionButton.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/index.js","../node_modules/antd/es/form/context.js","../node_modules/compute-scroll-into-view/es/index.js","../node_modules/scroll-into-view-if-needed/es/index.js","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/antd/es/form/FormItem.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/typography/Typography.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/typography/Editable.js","../node_modules/antd/es/typography/util.js","../node_modules/antd/es/typography/Base.js","../node_modules/antd/es/typography/Text.js","../node_modules/antd/es/typography/Link.js","../node_modules/antd/es/typography/Title.js","../node_modules/antd/es/typography/Paragraph.js","../node_modules/antd/es/typography/index.js","../node_modules/rc-collapse/es/PanelContent.js","../node_modules/rc-collapse/es/Panel.js","../node_modules/rc-collapse/es/openAnimationFactory.js","../node_modules/rc-collapse/es/Collapse.js","../node_modules/rc-collapse/es/index.js","../node_modules/antd/es/collapse/CollapsePanel.js","../node_modules/antd/es/_util/openAnimation.js","../node_modules/antd/es/collapse/Collapse.js","../node_modules/antd/es/collapse/index.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/index.js","../node_modules/rc-drawer/es/utils.js","../node_modules/rc-drawer/es/DrawerChild.js","../node_modules/rc-drawer/es/DrawerWrapper.js","../node_modules/rc-drawer/es/index.js","../node_modules/antd/es/drawer/index.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/Tree.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/input/Group.js","../node_modules/antd/es/input/Search.js","../node_modules/antd/es/input/Password.js","../node_modules/antd/es/input/index.js","../node_modules/antd/es/result/noFound.js","../node_modules/antd/es/result/serverError.js","../node_modules/antd/es/result/unauthorized.js","../node_modules/antd/es/result/index.js","../node_modules/antd/es/descriptions/Cell.js","../node_modules/antd/es/descriptions/Row.js","../node_modules/antd/es/descriptions/Item.js","../node_modules/antd/es/descriptions/index.js","../node_modules/antd/es/alert/ErrorBoundary.js","../node_modules/antd/es/alert/index.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","../node_modules/antd/es/_util/throttleByAnimationFrame.js","../node_modules/antd/es/affix/utils.js","../node_modules/antd/es/affix/index.js","../node_modules/rc-switch/es/index.js","../node_modules/antd/es/switch/index.js","../node_modules/antd/es/badge/ScrollNumber.js","../node_modules/antd/es/badge/index.js","../node_modules/rc-input-number/es/index.js","../node_modules/antd/es/input-number/index.js","../node_modules/antd/es/list/Item.js","../node_modules/antd/es/list/index.js","../node_modules/@ant-design/icons-svg/es/asn/MinusOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserAddOutlined.js","../node_modules/@ant-design/icons/es/icons/UserAddOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserDeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/UserDeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExportOutlined.js","../node_modules/@ant-design/icons/es/icons/ExportOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UnorderedListOutlined.js","../node_modules/@ant-design/icons/es/icons/UnorderedListOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ApartmentOutlined.js","../node_modules/@ant-design/icons/es/icons/ApartmentOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwapOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HomeOutlined.js","../node_modules/@ant-design/icons/es/icons/HomeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PhoneOutlined.js","../node_modules/@ant-design/icons/es/icons/PhoneOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MailOutlined.js","../node_modules/@ant-design/icons/es/icons/MailOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LogoutOutlined.js","../node_modules/@ant-design/icons/es/icons/LogoutOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/AppstoreAddOutlined.js","../node_modules/@ant-design/icons/es/icons/AppstoreAddOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FormOutlined.js","../node_modules/@ant-design/icons/es/icons/FormOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SettingOutlined.js","../node_modules/@ant-design/icons/es/icons/SettingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BellOutlined.js","../node_modules/@ant-design/icons/es/icons/BellOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/WarningOutlined.js","../node_modules/@ant-design/icons/es/icons/WarningOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuFoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuFoldOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloudServerOutlined.js","../node_modules/@ant-design/icons/es/icons/CloudServerOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BarChartOutlined.js","../node_modules/@ant-design/icons/es/icons/BarChartOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FundProjectionScreenOutlined.js","../node_modules/@ant-design/icons/es/icons/FundProjectionScreenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FieldTimeOutlined.js","../node_modules/@ant-design/icons/es/icons/FieldTimeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FundOutlined.js","../node_modules/@ant-design/icons/es/icons/FundOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/IdcardOutlined.js","../node_modules/@ant-design/icons/es/icons/IdcardOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SnippetsOutlined.js","../node_modules/@ant-design/icons/es/icons/SnippetsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlayCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/PlayCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomInOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomInOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SyncOutlined.js","../node_modules/@ant-design/icons/es/icons/SyncOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoginOutlined.js","../node_modules/@ant-design/icons/es/icons/LoginOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/IssuesCloseOutlined.js","../node_modules/@ant-design/icons/es/icons/IssuesCloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FilterOutlined.js","../node_modules/@ant-design/icons/es/icons/FilterOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MinusCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ReloadOutlined.js","../node_modules/@ant-design/icons/es/icons/ReloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileTextOutlined.js","../node_modules/@ant-design/icons/es/icons/FileTextOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BarcodeOutlined.js","../node_modules/@ant-design/icons/es/icons/BarcodeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpFilled.js","../node_modules/@ant-design/icons/es/icons/CaretUpFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightFilled.js","../node_modules/@ant-design/icons/es/icons/CaretRightFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CaretLeftFilled.js","../node_modules/@ant-design/icons/es/icons/CaretLeftFilled.js","../node_modules/@ant-design/icons-svg/es/asn/SaveOutlined.js","../node_modules/@ant-design/icons/es/icons/SaveOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UndoOutlined.js","../node_modules/@ant-design/icons/es/icons/UndoOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","../node_modules/@ant-design/icons/es/icons/UploadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/StarFilled.js","../node_modules/@ant-design/icons/es/icons/StarFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SubnodeOutlined.js","../node_modules/@ant-design/icons/es/icons/SubnodeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PauseOutlined.js","../node_modules/@ant-design/icons/es/icons/PauseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RollbackOutlined.js","../node_modules/@ant-design/icons/es/icons/RollbackOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TabletOutlined.js","../node_modules/@ant-design/icons/es/icons/TabletOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleTwoTone.js","../node_modules/@ant-design/icons/es/icons/CheckCircleTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/KeyOutlined.js","../node_modules/@ant-design/icons/es/icons/KeyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleFilled.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LockOutlined.js","../node_modules/@ant-design/icons/es/icons/LockOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UnlockOutlined.js","../node_modules/@ant-design/icons/es/icons/UnlockOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BlockOutlined.js","../node_modules/@ant-design/icons/es/icons/BlockOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/GlobalOutlined.js","../node_modules/@ant-design/icons/es/icons/GlobalOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ImportOutlined.js","../node_modules/@ant-design/icons/es/icons/ImportOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileAddOutlined.js","../node_modules/@ant-design/icons/es/icons/FileAddOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InboxOutlined.js","../node_modules/@ant-design/icons/es/icons/InboxOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ArrowUpOutlined.js","../node_modules/@ant-design/icons/es/icons/ArrowUpOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ArrowDownOutlined.js","../node_modules/@ant-design/icons/es/icons/ArrowDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckSquareFilled.js","../node_modules/@ant-design/icons/es/icons/CheckSquareFilled.js","../node_modules/@ant-design/icons-svg/es/asn/StopFilled.js","../node_modules/@ant-design/icons/es/icons/StopFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseSquareFilled.js","../node_modules/@ant-design/icons/es/icons/CloseSquareFilled.js","../node_modules/@ant-design/icons-svg/es/asn/PushpinOutlined.js","../node_modules/@ant-design/icons/es/icons/PushpinOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/Loading3QuartersOutlined.js","../node_modules/@ant-design/icons/es/icons/Loading3QuartersOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LikeOutlined.js","../node_modules/@ant-design/icons/es/icons/LikeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FilePdfOutlined.js","../node_modules/@ant-design/icons/es/icons/FilePdfOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleTwoTone.js","../node_modules/@ant-design/icons/es/icons/CloseCircleTwoTone.js"],"names":["module","exports","require","isNaN","value","Number","getType","toString","call","castString","Error","toBoolean","toNumber","hasValue","isNumber","converted","isString","replace","toText","isObject","toNumberOrPercent","indexOf","a","getValue","getValueDefault","defaultValue","isDate","isArray","Array","PI","Math","HALFPI","RADIANS","DEGREES","toNumberRange","min","max","fitToRange","round","precision","floor","rounded","d","pow","ceil","minValue","maxValue","temp","sin","tan","cos","left","right","closest","values","referenceValue","reduce","prev","curr","abs","intersect","range1","range2","start1","start","start2","end1","end","end2","invertRange","range","intersection","startMax","endMin","getDistance","point1","point2","x","y","sqrt","getHorizontalDistance","getVerticalDistance","getCubicCurveDistance","controlPointA","controlPointB","stepCount","distance","prevPoint","s","point","getPointOnCubicCurve","getScale","startPoint1","startPoint2","initialDistance","currentDistance","getMidPoint","position","getAngle","diffX","diffY","angle","atan2","normalizeAngle","getBBox","points","length","bottom","i","width","height","getCommonRectangle","rectangles","minX","minY","maxX","maxY","rectangle","getPointOnQuadraticCurve","pointA","pointB","controlPoint","mt1","mt2","mt3","getCubicControlPointA","p0","p1","p2","p3","tensionX","tensionY","adjustTension","getCubicControlPointB","tension","fitAngleToRange","startAngle","endAngle","count","getArcRect","radius","MAX_VALUE","bpoints","push","getArcPoint","fromAngle","toAngle","pt","arc","isInRectangle","registry","events","themes","loadedThemes","_uidCount","registeredClasses","_placeholders","invalidSprites","invalidDatas","invalidRawDatas","invalidDataItems","invalidDataRange","invalidPositions","invalidLayouts","baseSprites","baseSpritesByUid","queue","this","uid","getUniqueId","noBase","addEventListener","sprite","svg","paper","setAttribute","clientWidth","clientHeight","removeAttribute","_map","setCache","key","ttl","set","getCache","get","dispatch","eventType","data","isEnabled","type","target","dispatchImmediately","getPlaceholder","addToInvalidComponents","component","baseId","removeFromInvalidComponents","addToInvalidSprites","removeFromInvalidSprites","addToInvalidPositions","removeFromInvalidPositions","addToInvalidLayouts","removeFromInvalidLayouts","is","object","name","extendStatics","b","Object","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","n","arguments","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__values","o","m","__read","r","ar","error","__spread","concat","_assertThisInitialized","self","ReferenceError","die","args","msg","join","isDraft","DRAFT_STATE","isDraftable","proto","getPrototypeOf","DRAFTABLE","isMap","isSet","each","obj","iter","enumerableOnly","getArchtype","keys","ownKeys","forEach","entry","index","thing","state","type_","has","prop","hasMap","Map","hasSet","Set","latest","copy_","base_","shallowCopy","base","invokeGetters","slice","clone","desc","getOwnPropertyDescriptor","enumerable","defineProperty","writable","configurable","freeze","deep","isFrozen","add","clear","delete","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","undefined","propOrOldValue","autoFreeze_","peek","Reflect","markChangedProxy","copy","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","hasSymbol","hasProxies","getOwnPropertySymbols","getOwnPropertyNames","drafts","baseValue","deleteProperty","owner","fn","config","useProxies","setUseProxies","autoFreeze","setAutoFreeze","produce","bind","produceWithPatches","recipe","defaultBase","_this","hasError","arg1","arg2","patches","inversePatches","_this2","ip","createDraft","finishDraft","applyPatches","patch","applyPatchesImpl","applyPatches_","hasOwn","classNames","classes","arg","argType","inner","default","_slicedToArray","arr","_arr","_n","_d","_e","_s","_i","err","unsupportedIterableToArray","polyline","lineTo","minStep","minPolylineStep","len","moveTo","quadraticCurveTo","cubicCurveTo","closePath","arcTo","radiusY","c","segments","l","pax","pay","cx","cy","ax","ay","innerRadius","cornerRadius","innerCornerRadius","crSin","innerRadiusY","cornerRadiusY","innerCornerRadiusY","crAngle","asin","crAngleY","crInnerAngle","crInnerAngleY","middleAngle","mPoint","a0","b0","c0","d0","b1","d1","arcToPoint","sweepFlag","largeArcFlag","xAxisRotation","Boolean","rectToPath","rect","ccw","L","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","ReactReduxContext","React","createContext","batch","callback","nullListeners","notify","createListenerCollection","first","last","listener","listeners","subscribe","isSubscribed","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","tryUnsubscribe","Provider","_ref","context","children","contextValue","useMemo","subscription","previousState","getState","useEffect","Context","createElement","useIsomorphicLayoutEffect","window","document","useLayoutEffect","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","_objectWithoutPropertiesLoose","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","_extends","pure","usePureOnlyMemo","ConnectFunction","props","_useMemo","forwardedRef","propsContext","ContextToUse","Consumer","isContextConsumer","useContext","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","ref","Connect","memo","forwarded","hoistStatics","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","options","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","stateOrDispatch","ownProps","mapDispatchToProps","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","newBatch","used","copyProperties","source","stripHash","url","exec","getBaseURI","baseURI","loc","location","href","isNotEmpty","relativeToValue","percent","full","relativeRadiusToValue","subtractIfNegative","getPixelRatio","devicePixelRatio","capitalize","str","split","toUpperCase","stringify","JSON","escapeForRgex","splitTextByCharCount","text","maxChars","fullWords","rtl","currentIndex","words","word","wordLength","parts","reverseString","RegExp","truncateWithEllipsis","ellipsis","trim","rtrim","ltrim","reverse","padString","char","getFormat","format","hints","toLowerCase","cleanFormat","stripTags","plainText","numberToString","Infinity","negative","parsed","digits","decimals","exponent","zeros","anyToDate","Date","num","anyToNumber","getTime","getYearDay","date","utc","getFullYear","diff","getTimezoneOffset","getWeek","day","week","getDay","getMonthWeek","firstWeek","getMonth","currentWeek","getDayFromWeek","year","weekday","setUTCFullYear","get12Hours","hours","getTimeZone","long","savings","wotz","toLocaleString","wtz","timeZoneName","substr","fitNumber","fitNumberRelative","gap","svgPointToSprite","sprites","rotation","relativeX","pixelX","ex","relativeY","pixelY","ey","dx","dy","scale","group","pixelPaddingLeft","pixelPaddingTop","spritePointToSvg","spritePointToSprite","toSprite","spriteRectToSvg","documentPointToSvg","svgContainer","cssScale","bbox","getBoundingClientRect","top","svgPointToDocument","documentPointToSprite","htmlContainer","spritePointToDocument","element","cs","getComputedStyle","paddingX","parseFloat","paddingLeft","paddingRight","borderX","borderLeftWidth","borderRightWidth","paddingY","paddingTop","paddingBottom","borderY","borderTopWidth","borderBottomWidth","decimalPlaces","number","urlRegexp","parseUrl","protocol","separator","authority","domain","port","query","hash","serializeUrl","isRelativeUrl","joinUrl","parsedLeft","parsedRight","leftPath","rightPath","isIE","MSInputMethodContext","documentMode","array","any","test","map","output","eachReverse","eachContinue","shiftLeft","pushAll","input","remove","found","splice","move","toIndex","removeIndex","insertIndex","unshift","ind","toArray","getSortedIndex","ordering","pivot","order","findIndex","matches","keepIf","keep","_defineProperty","_classCallCheck","instance","Constructor","symbols","filter","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","hookCallback","some","hooks","hasOwnProp","isObjectEmpty","k","isUndefined","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","to","from","val","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","warn","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","stack","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","regexEscape","matched","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","parseInt","getSetYear","createDate","h","M","ms","setFullYear","createUTCDate","UTC","getUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","names","j","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getDate","currentDateArray","weekYear","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","createFromConfig","prototypeMin","other","prototypeMax","pickBy","moments","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","utcOffset","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","model","setTime","local","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","String","isMomentInput","arrayTest","dataTypeTest","item","isNumberOrStringArray","property","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","fromArray","sum","go","push2","flatten","indexed","find","contains","list","createNewItems","_create","reset","_listCopy","getFirst","returnItem","getLast","removeItem","_defineProperties","descriptor","_createClass","protoProps","staticProps","_value","Percent","isPercent","_getPrototypeOf","_isNativeReflectConstruct","construct","sham","_typeof","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","_inherits","subClass","superClass","_objectSpread","twoToneColorPalette","primaryColor","secondaryColor","calculated","IconBase","icon","className","onClick","style","restProps","_objectWithoutProperties","colors","getSecondaryColor","useInsertStyles","warning","isIconDefinition","generate","fill","getTwoToneColors","setTwoToneColors","setTwoToneColor","twoToneColor","_normalizeTwoToneColo","normalizeTwoToneColors","_normalizeTwoToneColo2","ReactIcon","Icon","spin","rotate","tabIndex","classString","svgClassString","iconTabIndex","svgStyle","msTransform","transform","role","getTwoToneColor","color","_lightColor","Color","_darkColor","alpha","rgba","hex","lighten","rgb","brighten","saturate","saturation","darkColor","lightColor","cacheId","cached","toColor","isColor","castColor","entries","hasKey","eachOrdered","ord","keysOrdered","merge","object1","object2","parse","forceCopyProperties","copyAllProperties","_array","_start","_end","backwards","IndexedIterable","getKey","on","newValue","_getKey","_insert","_remove","oldValue","_keys","_groups","_sort","disposeOnRemove","dispose","checkBounds","initial","_values","removeValue","hasIndex","getIndex","setIndex","_sortQuicksort","low","high","_sortPartition","swap","value_a","value_b","moveValue","copyFrom","setAll","newArray","oldArray","template","_template","isTemplate","make","ListTemplate","List","_toConsumableArray","arrayLikeToArray","arrayWithHoles","nonIterableRest","_disposed","_dispose","isDisposed","disposers","Disposer","_disposer","disposer","_counter","increment","rootStylesheet","SVGNS","XMLNS","XLINK","dom","removeEventListener","getElement","el","getElementById","getElementsByClassName","HTMLElement","addClass","classList","currentClassName","getAttribute","removeClass","setStyle","currentStyle","defaultView","getPropertyValue","blur","appendChild","focus","removeChild","cursor","parentNode","host","getShadowRoot","getRoot","ownerDocument","eventTarget","event","composedPath","fixPixelPerfect","selector","styles","root","nonce","head","sheet","getStylesheet","cssRules","_rule","deleteRule","insertRule","appendStylesheet","selectorText","_setVendorPrefixName","setProperty","styleId","_className","StyleRule","ready","readyState","findFont","font","parentElement","findFontSize","isElementInViewport","viewportTarget","targets","viewportRect","innerHeight","documentElement","innerWidth","visualProperties","_eventDispatcher","_bindings","_isTemplate","_isPath","_inited","_ready","isHiding","_isHidden","isShowing","isStandaloneInstance","_isActive","_mask","_positionPrecision","_language","_exporting","_exportable","_bbox","positionInvalid","propertyFields","applyOnClones","_measuredWidthSelf","_measuredHeightSelf","maxLeft","maxRight","maxTop","maxBottom","maxLeftSelf","maxRightSelf","maxTopSelf","maxBottomSelf","_isDragged","_isResized","_disabled","_internalDisabled","_updateDisabled","_internalDefaultsApplied","rollOutDelay","isBaseSprite","shouldClone","appeared","dragWhileResize","measureFailed","preventShow","cloneTooltip","_disposers","addGroup","setPropertyValue","_prevMeasuredWidth","_prevMeasuredHeight","_measuredWidth","_measuredHeight","_isMeasured","invalidate","applyTheme","_adapterO","autoSetClassName","setClassName","getCurrentThemes","_themes","_parent","applyInternalDefaults","disabled","requestFrame","validate","beforeDraw","draw","afterDraw","invalidatePosition","validatePosition","attr","removeSVGAttribute","sizeChanged","measure","prevGroupTransform","transformString","nonScaling","globalScale","showTooltipOn","updateTooltipPosition","maskRectangle","_maskRectangle","_clipElement","isMeasured","horizontalCenter","verticalCenter","measureElement","applyFilters","visible","interactionsEnabled","showOnInit","hidden","hide","applyMask","dispatchReady","__disabled","hideTooltip","showTooltip","isReady","reinit","setState","defaultState","handleGlobalScale","nonScalingStroke","strokeWidth","updateFilterScale","filters","removeFromInvalids","states","adapter","interactions","configField","virtualParent","exportable","_tooltip","tooltip","_showSystemTooltip","showSystemTooltip","fillModifier","strokeModifier","childNodes","firstChild","_clones","_svgContainer","_interactionDisposer","_urlDisposer","_numberFormatter","_focusFilter","stroke","clonedFrom","id","removeKey","_filters","_alwaysShowDisposers","child","applyAccessibility","_topParent","topParent","oldParent","_tooltipContainer","tooltipContainer","_dataItem","dataItem","handleAlwaysShowTooltip","handleAlwaysShow","oldDisposers","oldDisposer","addDisposer","_virtualParent","appendDefs","filterElement","appendDef","modify","_clipPath","delayedMap","_delayedMap","_id","setKey","node","_paper","setPaper","_htmlContainer","_titleElement","_descriptionElement","onAll","setSVGAttributes","opacity","fillOpacity","strokeOpacity","shapeRendering","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","focusable","tabindex","setSVGAttribute","attribute","removeAttr","classNamePrefix","userClassName","uidAttr","updateClipPath","mask","createClipPath","pixelWidth","pixelHeight","removeChildNodes","filterUnits","appendPrimitives","removeClipPath","removeDispose","setElement","_element","removeElement","SVGPathElement","definedBBox","svgBBox","updateCenter","prevElementTransform","elementX","elementY","elementWidth","elementHeigth","pixelPaddingRight","pixelPaddingBottom","measuredWidth","measuredHeight","pixelPerfect","positionPrecision","matrix","createSVGMatrix","createSVGPoint","pt1","matrixTransform","pt2","pt3","pt4","isHover","tooltipText","tooltipHTML","insertBefore","sortChildren","insertAfter","getRelativeX","getRelativeY","getPixelX","pixel","relative","getPixelY","isDragged","inited","hitTest","ax1","ay1","ax2","ay2","bx1","by1","bx2","by2","_states","processState","hiddenState","hoverable","clickable","clones","_animations","getSvgPoint","animate","animationOptions","easing","transitionDuration","isHidden","setVisibility","isActive","transitionEasing","transitTo","applyCurrentState","animation","isDown","downPointers","isFocused","transition","propValues","allValues","propertyName","finalValue","currentValue","option","isFinished","stateFilter","newFilter","currentFilter","isInTransition","animations","isInteractive","handleOver","isRealHover","handleOut","handleDown","handleUp","handleFocus","handleBlur","setActive","setDisabled","hasChild","deepInvalidate","_background","numberFormatter","language","_dateFormatter","dateFormatter","_durationFormatter","durationFormatter","ev","exporting","populateString","tags","escape","tag","getTagValue","unescape","tagName","reg","params","reg2","matches2","method","getTagValueFromObject","dataContext","populateStringFrom","formatApplied","part","numberValue","dateValue","durationValue","encodeURIComponent","formatParts","formatterType","setDataItem","fieldValue","propValue","setColorProperty","setPercentProperty","bindToProperty","modifier","observe","title","readerTitle","description","readerDescription","readerHidden","checked","readerChecked","controls","readerControls","live","readerLive","orientation","readerOrientation","valueNow","readerValueNow","valueText","readerValueText","labelledByIds","describedByIds","labelledBy","readerLabelledBy","describedBy","readerDescribedBy","titleElement","titleId","textContent","descriptionId","descriptionElement","keyboardOptions","mouseOptions","_interaction","interaction","getInteraction","trackable","draggable","swipeable","resizable","wheelable","contextMenuDisabled","inert","_tabindex","setEventDisposer","hasFocused","focusFilter","hoverOnFocus","inertiaOptions","applyCursorStyle","handleDragStart","handleDragMove","handleDragStop","isTouchProtected","touch","originalPosition","dragStart","pointer","dragStop","cancelled","hoverOptions","_outTimeout","SVGContainer","targetSprite","keepTargetHover","setTimeout","handleOutReal","hitOptions","originalAngle","originalScale","once","handleToggle","urlHandler","cursorOverStyle","_baseId","setBaseId","baseSprite","urlTarget","open","swipeOptions","handleResize","svgPoint1","svgPoint2","svgMidPoint","parentPoint1","parentPoint2","spritePoint1","spritePoint2","spriteMidPoint","parentPoint","cursorOptions","overStyle","defaultStyle","applyCursorOverStyle","downStyle","pointerEvents","getExporting","exp","_export","nonExportableSprites","modalPrefix","modal","openModal","closeModal","popups","openPopup","closeAllPopups","invalidateLayout","maxWidth","parentWidth","layout","align","pixelMarginLeft","pixelMarginRight","setMaxWidth","prevWidth","prevHeight","maxHeight","relativeWidth","previousWidth","previousHeight","parentHeight","valign","pixelMarginTop","pixelMarginBottom","setMaxHeight","relativeHeight","percentWidth","_pixelWidth","percentHeight","_relativeHeight","_pixelHeight","minWidth","minHeight","_relativeWidth","margin","marginTop","marginRight","marginBottom","marginLeft","padding","setPath","setFill","realFill","setStroke","realStroke","_rtl","show","showReal","_hideAnimation","kill","_showHideDisposer","hideReal","currentSprite","getVisibility","toFront","toBack","tooltipDataItem","_tooltipDataItem","_tooltipColorSource","tooltipPosition","lastPointer","tooltipColorSource","getStrokeFromObject","getFillFromObject","background","animationDuration","autoTextColor","alternative","html","currentText","globalPoint","getTooltipX","getTooltipY","pointTooltipTo","instantly","showInViewport","pointTo","raiseCriticalError","closable","content","message","suppressErrors","verbose","log","processConfig","getCursorStyle","cursorDowntyle","processDelayedMap","grab","grabbing","horizontalResize","verticalResize","configOrder","setShowOnInit","_showOnInitDisposer","hideInitially","appear","_plugins","init","_systemUpdate","skippedSprites","_systemCheckIfValidate","_systemValidatePositions","_systemValidateLayouts","Sprite","LogLevel","_childrenByLayout","_childrenDisposers","setStateOnSprites","layoutInvalid","_absoluteWidth","_absoluteHeight","_shouldBeReady","_tapToActivate","tapTimeout","handleChildAdded","handleChildRemoved","processChild","insertKey","handleChildTransform","sortAndAdd","addChildren","Container","_children","calculateRelativeSize","totalRelativeWidth","totalRelativeHeight","zindexed","sortArray","idx","ai","zIndex","bi","isCorrect","addToBack","createChild","classType","removeChildren","disposeChildren","createBackground","processBackground","getFor","validateLayout","_availableWidth","_availableHeight","allValid","childMeasuredWidth","childMeasuredHeight","arrange","maxCellWidth","minCellWidth","columnCount","contentLeft","contentRight","contentTop","contentBottom","nextX","nextY","row","column","columnWidth","rowHeight","childrenCopy","reverseOrder","fixedWidthGrid","maxColumns","getColumnWidth","childMarginLeft","childMarginRight","childMarginTop","childMarginBottom","childWidth","childHeight","childLeft","childRight","childTop","childBottom","nextColumnWidth","noneBBox","measuredContentWidth","measuredContentHeight","contentAlign","contentValign","mwa","mha","ddx","ddy","oldBBox","contentWidth","contentHeight","prevLeft","prevTop","prevBotttom","prevRight","dummyData","updateBackground","fitsToBounds","setStateOnChildren","preloader","_preloader","changed","invalidateLabels","handleValidate","stateName","dataInvalid","setTapToActivate","handleTapToActivate","initTapTimeout","isLocalElement","handleTapToActivateDeactivation","_tapToActivateTimeout","tapToActivate","moveHtmlContainer","htmlElement","newContainer","svgDiv","initSensor","hasLicense","commercialLicense","licenses","widthRatio","heightRatio","attrNS","controlPointDistance","controlPointPosition","makePath","_distance","_realSegments","realPoints","distanceAB","cpDistance","controlPoint1","controlPoint2","Polyline","morphable","_bboxes","morphDuration","morphEasing","morphToSingle","scaleRatio","morphToPolygon","toPoints","currentPoints","sortPoints","_morphFromPointsReal","_morphToPointsReal","normalizePoints","Animation","pointsA","pointsB","surfaceA","holeA","bboxA","middleX","middleY","addPoints","splitAt","newDistance","partA","partB","bbox1","bbox2","bboxes","surface","morphToCircle","commonBBox","hole","fromPoints","realRadius","realAngle","pointOnCircle","hlen","mustHaveCount","addToSegmentCount","newPoints","point0","extraPoint","lastPoint","morphToRectangle","realWidth","realHeight","_morphProgress","currentArea","surfaceFrom","holeFrom","surfaceTo","holeTo","currentSurface","slen","currentPoint","currentHole","morphBack","Base","_currentPoints","segment","areaHole","areaArr","holeArr","pointsArr","area","areaAndHole","coords","_morpher","interfaceColors","InterfaceColorSet","sliceContainer","backgroundSlice","Slice","progressSlice","Label","textAlign","delay","_started","Mouse","bgc","downColor","bhs","bds","translate","Button","tooltipY","leftLabel","button","circle","Circle","p100","togglable","switchButton","rightLabel","_leftLabel","_rightLabel","_switchButton","thumb","endGrip","startGrip","_isBusy","__start","playIcon","Triangle","stopIcon","RoundedRectangle","activeState","gradient","RadialGradient","_line","addElement","Pattern","_circle","rectHeight","rectWidth","_rect","feColorMatrix","filterPrimitives","intensity","applyFilter","Filter","feGaussianBlur","feFlood","feMorphology","feComposite","feBlend","setSprite","_sprite","removeStyle","addStyle","_list","_currentStep","_startIndex","_currentPass","baseColor","getLinePattern","getRectPattern","getCirclePattern","size","thickness","strokeDashArray","pattern","outline","currentStep","generatePatterns","aColor","aGradient","LinearGradient","addColor","aStroke","Polyspline","desaturateFilter","DesaturateFilter","desaturateFilterHover","hoverState","tmpContainer","visibility","innerHTML","Paper","append","container","autoDispose","clearTimeout","Tooltip","setBounds","logo","onlyShowOnViewport","addToQueue","viewPortHandler","vpDisposer","disableType","queueHandler","removeFromQueue","nextSprite","enableType","Component","invalidateData","classError","chart","useTheme","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","F","G","H","I","J","K","N","O","Q","R","S","T","U","V","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","autoHideDelay","_autoHideTimeout","DataItem","_legend","Chart","titles","chartAndLegendContainer","chartContainer","processTitle","updateReaderTitleReferences","fixLayout","legend","feedLegend","setLegend","_dragGrip","relevant","Responsive","widthXS","stateId","heightXS","widthXXS","heightXXS","tooltipX","copyToLegendMarker","isXS","childrenCreated","_label","labels","addSprite","itemContainer","_valueLabel","valueLabels","_itemContainer","itemContainers","toggleDataItem","focusedItem","visibilitychanged","dataItems","_marker","markers","createMarker","isKey","marker","disabledColor","truncate","valueLabel","handleScrollbar","createDataItem","validateDataElement","legendDataItem","tempMaxWidth","legendSettings","createLegendMarker","useDefaultMarker","updateLegendValue","itemValueText","maxLabelWidth","maxValueLabelWidth","maxMarkerWidth","maxAdjustedLabelWidth","trueMaxWidth","scrollbar","scrollable","updateMasks","Scrollbar","_mouseWheelDisposer","handleWheel","ds","delta","colorOrig","readerAlert","handleDataItemPropertyChange","_bullets","Dictionary","bullets","setValue","_ignoreMinMax","_showBullets","LegendSettings","_tmin","_tmax","_smin","_smax","dataItemsByAxis","skipFocusThreshold","_itemReaderTextChanged","calculatePercent","usePercentHack","simplifiedProcessing","Series","axisRanges","processAxisRange","minBulletDistance","mainContainer","bulletsContainer","_chart","positionBullet","bullet","processBullet","itemsFocusable","removeBullet","eachBullet","validateDataItems","processValues","getFirstValue","startIndex","getActualWorkingValue","getAbsoluteFirstValue","rangeChangeUpdate","working","endIndex","setCalculatedValue","prevValue","ksum","axisRange","updateTooltipBounds","shouldCreateBullet","bulletTemplate","disabledField","currentDataItem","itemReaderText","xField","yField","isDynamic","itemWidth","itemHeight","handleDataItemWorkingValueChange","dataRangeInvalid","invalidateProcessedData","invalidateDataItems","createMask","rangesContainer","contents","isRange","getAxisField","axis","showTooltipAtPosition","xPosition","yPosition","invalidateRawData","readerText","_itemReaderText","_legendDataItem","notRange","itemLabelText","labelText","_heatRules","heatRule","dataField","foundSprite","anySprite","anyChild","ruleTarget","propertyField","workingValue","logarithmic","LOG10E","heatRules","rule","listitem","maybeColorOrPercent","ColorSet","_usesData","seriesContainer","patterns","_series","createSeries","handleSeriesAdded","handleSeriesRemoved","series","dataUsers","dataUser","di","_dataUsers","handleSeriesAdded2","hiddenInLegend","addData","dataFields","_axis","breakSize","fillShape","WavedLine","_fillShape","startLine","_startLine","endLine","_endLine","addBreakSprite","renderer","gridContainer","createBreakSprites","breakTemplate","axisBreaks","invalidateSeries","positionToPoint","startPosition","endPosition","updateBreakElement","AxisItemLocation","_grid","grid","_tick","tick","ticks","_axisFill","axisFill","axisFills","_text","_contents","createFill","_axisBreak","axisBreak","appendChildren","appendDataItem","hasProperty","minPosition","maxPosition","noChangeValues","_bullet","_gridCount","_axisItemCount","Axis","hideTooltipWhileZooming","toggleZoomOutButton","_dataItemsIterator","pointerLength","fitPointerToBounds","fillRule","validateDataElements","ghostLabel","updateLabelElement","updateGridCount","gridCount","axisLength","minGridDistance","clearCache","axisFullLength","updateAxisLine","updateTooltip","updateBaseGridElement","_prevLength","initRenderer","above","updateGridContainer","validateAxisRanges","validateBreaks","_axisBreaks","processBreak","breakContainer","registerSeries","_renderer","positionToAngle","pointToPosition","positionToCoordinate","getAnyRangePath","getPositionRangePath","anyToPosition","anyToPoint","_tooltipPosition","toAxisPosition","tooltipLocation","getCellStartPosition","getCellEndPosition","tooltipLocation2","startPoint","endPoint","currentItemStartPoint","currentItemEndPoint","fullWidthTooltip","line","getTooltipText","delayedPointTo","cursorTooltipEnabled","inversed","toGlobalPosition","pointerOrientation","boundingRectangle","roundPosition","axisLocation","_axisRanges","SortedList","createAxisBreak","adjustedStartValue","processSeriesDataItems","processSeriesDataItem","axisLetter","postProcessSeriesDataItems","postProcessSeriesDataItem","updateAxisBySeries","hideUnusedDataItems","dataItemsIterator","getSeriesDataItem","findNearest","stackKey","getX","getPositionX","getY","getPositionY","dataChangeUpdate","seriesDataChangeUpdate","adjustDifference","difference","startValue","endValue","adjustedEndValue","isInBreak","fixAxisBreaks","update","firstAxisBreak","getPositionLabel","createSeriesRange","resetIterators","_title","maybeXS","fillPath","inside","cellStartLocation","cellEndLocation","minLabelPosition","maxLabelPosition","invalidateAxisItems","baseGrid","setAxis","processRenderer","positionItem","position2","getHeight","getWidth","coordinateToPosition","coordinate","coordinate2","updateGridElement","updateTickElement","updateBullet","updateFillElement","toggleVisibility","updatedStart","updatedEnd","_axisFills","createGrid","_ticks","createTick","_labels","createLabel","opposite","inversedPosition","relativePositionSprite","bbx","bbw","bbh","y1","y2","tickLength","basePoint","deltaX","x1","x2","wavedRectangle","WavedRectangle","setWavedSides","widthS","valueToPosition","_stepDecimalPlaces","_prevStepDecimalPlaces","_adjustLabelPrecision","_baseValue","_adjustedStart","_adjustedEnd","_extremesChanged","_deltaMinMax","calculateTotals","axisFieldName","keepSelection","includeRangesInMinMax","_maxZoomed","_maxDefined","_minZoomed","_minDefined","_maxAdjusted","_minAdjusted","excludeFromTotal","getMinMax","calculateZoom","validateAxisElements","positionToValue","differece","minMaxStep","adjustMinMax","stepDecimalPlaces","syncWithAxis","_step","minZoomed","maxZoomed","precisionChanged","formatLabel","stepPower","decCount","adjustedMin","adjustedMax","adjustedStep","itemIndex","fillEndPosition","adjustLabelPrecision","valueToPoint","_difference","breakStartPosition","breakEndPosition","breakStartValue","breakEndValue","xToValue","yToValue","animateMinMax","rangeChangeDuration","rangeChangeEasing","POSITIVE_INFINITY","NEGATIVE_INFINITY","ignoreMinMax","seriesMin","seriesMax","_minReal","_maxReal","dif","fixMin","fixMax","power","extraMin","extraMax","strictMinMax","_minMaxAnimation","_finalMax","_finalMin","handleSelectionExtremesChange","strictMode","initialMin","initialMax","extra","stepDivisor","maxPrecision","minCount","maxCount","handleExtremesChange","selectionMin","selectionMax","allHidden","seriesSelectionMin","seriesSelectionMax","minMaxStep2","syncAxes","declination","zoom","getWorkingValue","extraTooltipPrecision","valueStr","zoomToValues","skipRangeEvent","axisBreakDif","axisBreakGridCount","breakMinMaxStep","showTooltipAt","currentCount","synced","omin","omax","ostep","checkSync","processingErrors","xAxis","endDate","setDate","_gapBreaks","gridIntervals","groupIntervals","dateFormats","periodChangeDateFormats","_baseIntervalReal","timeUnit","_prevSeriesTime","_minDifference","_firstWeekDay","groupMin","groupMax","snapTooltip","groupCount","getDFFormatter","gridInterval","_gridInterval","gridDuration","baseDuration","periodCount","getFirstWeekDay","mainBaseDuration","mainBaseInterval","maxZoomFactor","dataSetChanged","groupData","modifiedDifference","startLocation","endLocation","groupInterval","chooseInterval","_groupInterval","newId","_currentDataSetId","baseAxis","setDataSet","baseInterval","_nextGridUnit","_intervalDuration","_gridDate","_df","minZoomedStr","startDataItem","currentDataSetId","findFirst","findClosestIndex","maxZoomedStr","endDataItem","validateDataRange","previousDataItem","previousDate","validateData","minDifference","seriesGroupUpdate","addEmptyUnitsBreaks","_baseInterval","mainDataSet","groupSeriesData","dataGrouped","interval","intervalDuration","_dataSets","dataSetId","dataSet","dataSets","newDataItem","previousTime","dfkey","df","dfk","roundedDate","currentTime","setWorkingLocation","locations","dateX","openDateX","dateY","openDateY","_index","vkey","dvalues","close","average","hasProperties","groupDataItems","groupFieldName","groupFields","intervalID","startTime","skipEmptyPeriods","startTimeStr","startDate","breakGridCount","gridDate","getGridDate","intervalCount","realIntervalCount","prevTimestamp","newDate","timestamp","durationBreaksRemoved","getBreaklessDate","prevGridDate","markUnitChange","endTimestamp","intervals","dateToPosition","dateToPoint","positionToDate","getTimeByLocation","workingLocations","endTime","timezoneOffset","openTime","openDate","prevSeriesTime","_mainBaseInterval","timeInterval","tooltipDate","tooltipDateFormat","getCurrentLabelFormat","zoomToDates","adjust","isEnd","isStart","mindi","maxdi","yAxis","asIs","snapToSeries","showTooltipAtDataItem","_seriesPoints","makeGap","previous","connect","autoGapCount","prevDate","bby","deltaY","indexToPosition","category","categoryToIndex","seriesDataItems","endCategory","deltaPosition","oldCategory","deltaCoordinate","dataItemsByCategory","_lastDataItem","categoryAxisDataItem","seriesId","CategoryAxis","invalidateDataRange","positionToIndex","minIndex","maxIndex","axisDataItem","seriesDataItem","dataCount","frequency","_endIndex","_frequency","fillEndIndex","fillPosition","disposeData","processDataItem","getDataItem","breakStartIndex","breakEndIndex","categoryToPosition","categoryToPoint","zoomToCategories","startCategory","zoomToIndexes","startPos","endPos","getFirstSeriesDataItem","categoryX","categoryY","getLastSeriesDataItem","getSeriesDataItemByCategory","categories","breakPosition","positionToCategory","sortBySeries","addDelayedMap","customValue","valueX","valueY","openValueX","openValueY","setLocation","setCategory","openCategoryX","openCategoryY","getMin","fields","stackValue","getMax","_xAxis","_yAxis","_xValueFields","_yValueFields","usesShowFields","_dataSetChanged","_maxxX","_maxxY","_propertiesChanged","cursorHoverEnabled","stacked","returnBulletDefaultState","resetExtremes","valueYShow","openValueXShow","openValueYShow","defineFields","updateItemReaderText","_xField","_yField","setInitialWorkingValues","updateDataItem","dataItemsX","clearCatAxis","dataItemsY","xAxisFieldName","xOpenField","yAxisFieldName","yOpenField","_xOpenField","_yOpenField","addValueField","setCategoryAxisField","setDateAxisField","getMaskPath","plotContainer","maskBullets","leftAxesContainer","rightAxesContainer","topAxesContainer","bottomAxesContainer","xAxes","setXAxis","oldAxis","yAxes","setYAxis","handleYAxisSet","_baseAxis","rawDataItem","removeCount","skipRaw","scrollbarSeries","setData","_prevStartIndex","_prevEndIndex","workingStartIndex","workingEndIndex","getStackValue","stackX","stackY","xAxisId","yAxisId","stackedSeries","tmin","tmax","_prevTooltipDataItem","getAdjustedXLocation","bulletLocationX","getAdjustedYLocation","bulletLocationY","hideSeriesTooltipsOnSelection","selection","downPoint","tooltipXField","tooltipYField","tooltipPoint","getPoint","fireEvent","getBulletLocationX","getBulletLocationY","positionX","positionY","openValue","closeValue","middleValue","rightLocation","locationX","leftLocation","openPositionX","topLocation","locationY","bottomLocation","openPositionY","positionBulletReal","bulletLocation","updateStacking","anim","interpolationDuration","animationsEnabled","realDuration","sequencedInterpolation","sequencedInterpolationDelay","disable","enable","axisSeries","prevSeries","prevDataItem","prevRealValue","_tooltipXField","_tooltipYField","xKey","yKey","stackKeyX","stackKeyY","axisBulletsContainer","scrollbarChart","_scrollbarChart","unselectedOverlay","_unselectedOverlay","thumbBackground","downState","sourceSeries","zoomOutButton","addXAxis","addYAxis","maxZoomCount","minZoomCount","sourceAxis","minDefined","maxDefined","zoomOutAxes","updateByOrientation","off","handleDataChanged","dataProvider","updateThumb","_axisRendererX","_axisRendererY","arrangeTooltips","topAxesCont","yAxesAndPlotCont","yAxesAndPlotContainer","bottomAxesCont","leftAxesCont","updateXAxesMargins","plotCont","mouseWheelBehavior","_cursorContainer","rightAxesCont","ZoomOutButton","MAX_SAFE_INTEGER","_bulletMask","updateSeriesLegend","updatePlotElements","_parseDataFrom","leftAxesWidth","rightAxesWidth","handleXAxisChange","updateXAxis","handleYAxisChange","updateYAxis","processXAxis","handleXAxisRangeChange","processAxis","processYAxis","handleYAxisRangeChange","getCommonAxisRange","scrollbarX","zoomAxes","updateScrollbar","minZoomFactor","seriesAppeared","scrollbarY","skipRangeEvents","axes","axisStart","axisEnd","updateSeriesMasks","_xAxes","handleAxisRemoval","_yAxes","backgroundOpacity","_cursor","handleCursorPositionChange","handleCursorZoomStart","handleCursorZoomEnd","handleCursorPanStart","handleCursorPanning","handleCursorPanEnd","handleCursorCanceled","handleHideCursor","showSeriesTooltip","snpSeries","getClosest","closestSeries","handleSnap","_cursorXPosition","showAxisTooltip","_cursorYPosition","sortSeriesTooltips","closestDataItem","minDistance","xPos","yPos","dxPosition","dyPosition","hideObjectTooltip","seriesPoints","maxTooltipDistance","seriesPoint","fixedPoint","np","firstSeries","averageY","dropped","nextHeight","pointY","except","getUpdatedRange","behavior","xRange","yRange","_panStartXRange","_panStartYRange","_panEndXRange","panEndRange","_panEndYRange","maxPanOut","panStartRange","newStart","newEnd","newRange","_scrollbarX","handleXScrollbarChange","_scrollbarY","handleYScrollbarChange","fixRange","realRange","cellWidth","svgPoint","plotPoint","handleWheelReal","handleHorizontalWheel","horizontalMouseWheelBehavior","rangeX","rangeY","differenceX","newStartX","newEndX","differenceY","newStartY","newEndY","location2X","location2Y","_mouseWheelDisposer2","dataSourceDateFields","populateDataSourceFields","dataSourceNumberFields","_zoomOutButton","addScrollbarData","removeScrollbarData","removeData","fillSprite","strokeSprite","drawSegment","closePoints","smoothnessX","smoothnessY","smooth","lineElement","fillElement","_baseUnit","axisDurationFormat","baseUnit","divisors","realDivisor","reducedCount","getValueUnit","_tooltipDurationFormat","tooltipDurationFormat","createSegment","_segmentsIterator","segmentsContainer","initialY","setWorkingValue","initialX","openSegmentWrapper","_adjustedStartIndex","sliceData","findAdjustedIndex","_workingStartIndex","_workingEndIndex","adjustedIndex","openIndex","openSegment","getSegment","addToClose","closeIndex","propertiesChanged","valuesFound","updateSegmentProperties","closeSegment","itemProperties","checkOnly","currentValueStr","Line","Rectangle","hasLabels","connectEnds","pixelRadius","pixelInnerRadius","updateRendererRefs","rendererX","rendererY","axisRendererY","fdx","fdy","locationOnPath","textPathElement","axisRadius","pixelRadiusY","axisRadiusY","fixPosition","isNegative","relativeRotation","labelRadius","bent","dH","dW","pixelRadiusReal","useChartAngles","mr","innerRadiusModifyer","angleToPosition","gridInnerRadius","gridType","axisAngle","gridLocation","WavedCircle","tooltipOrientation","bigNum","radarContainer","innerRect","wr","hr","maxRadius","diameter","_pixelInnerRadius","pin","startWidth","endWidth","hand","Trapezoid","leftSide","rightSide","x0","_pin","_hand","showValue","newAngle","currentAngle","rotationDirection","updateValue","hands","processHand","toValue","ticksContainer","labelsContainer","_slice","slices","slicesContainer","_addAllDataItems","alignLabels","createSlice","_slices","initSlice","initTick","initLabel","arrangeLabels","lh","nextLabel","getNextLabel","arrangeLabels2","previousTop","nextDataItem","handleSliceScale","handleSliceMove","setAlignLabels","percentSeriesDataItem","ix","y0","iy","radiusValue","shiftRadius","_leftItems","_rightItems","_currentStartAngle","_arcRect","_maxRadiusPercent","radiusValuePercent","aAngle","bAngle","ignoreZeroValues","normalizedMiddleAngle","arcRect","depth","_pixelRadius","_startAngleInternal","_endAngleInternal","updateRadius","_chartPixelRadius","updateSeriesAngles","chartCont","chartRadius","chartPixelInnerRadius","seriesRadius","_chartPixelInnerRadius","depthValue","Slice3D","depthPercent","invalidateDataUsers","invalidateLinks","handleHit","outgoingDataItems","toNode","incomingDataItems","fromNode","link","colorMode","stops","_incomingDataItems","sortBy","_incomingSorted","fromName","_outgoingDataItems","_outgoingSorted","positionBullets","_bulletsContainer","_bulletsMask","bulletsMask","middleLine","rotationField","_gradient","toName","_link","links","nodePadding","minNodeSize","linksContainer","nodesContainer","nodes","sortNodes","LinearGradientModifier","opacities","strNode","getNodeValue","_sorted","sortedIterator","incomingTotal","outgoingTotal","totalIncoming","totalOutgoing","changeSorting","_nodes","createNode","_links","createLink","hideOversized","handleMaxSize","nextInCoord","nextOutCoord","nameLabel","endX","endY","linkWidth","valueHeight","startX","startY","xt0","yt0","xt1","yt1","xb0","xb1","yb0","yb1","xm0","xm1","ym0","ym1","cpd","kxt0","kyt0","kxt1","kyt1","kxm0","kym0","kxm1","kym1","kxb0","kyb0","kxb1","kyb1","nodeAlign","_levelCount","level","getNodeLevel","levels","calculateValueHeight","_levelSum","_levelNodesCount","maxSum","availableHeight","maxSumLevel","realValue","levelNodeCount","_maxSumLevel","maxSumLevelNodeCount","finalHeight","_heightAnimation","interpolationEasing","nextCoordinate","levelCoordinate","nodeCount","nodeHeight","_valueHeight","updateRotation","childAngle","childRadius","labelAngle","adjustedTotal","nextAngle","nonRibbon","valueAngle","mAngle","trueStartAngle","tx","ty","cpx","cpy","cp","fromX","fromY","toX","toY","mAngle1","mAngle2","chordContainer","newTotal","createAssets","handleKidAdded","_column","setColumn","columns","_rangesColumns","_startLocation","_endLocation","clustered","columnsContainer","_columnsContainer","baseAxisSeries","ColumnSeries","sortedItem","sortCategoryAxis","disableUnusedColumns","currentPosition","deltaAnimation","stop","validateDataElementReal","getStartLocation","getEndLocation","outOfBounds","diw","fixHorizontalCoordinate","fixVerticalCoordinate","axisLenght","realX","realY","setColumnStates","rangeColumn","rangesColumns","_dropFromOpenState","_dropFromPreviousState","_riseFromOpenState","_riseFromPreviousState","change","droppedFromOpen","droppedFromPrevious","_columns","createColumnTemplate","treeMapDataItem","_dataContext","rows","hasChildren","getDuration","layoutAlgorithm","squarify","zoomable","maxLevels","currentLevel","hideParentColumns","sorting","xRenderer","yRenderer","seriesTemplates","zoomToChartDataItem","_homeDataItem","_navigationBar","navigationBar","createTreeSeries","_tempSeries","homeDataItem","_homeText","layoutItems","_updateDataItemIndexes","navigationData","parentDataItem","initSeries","createTreeSeriesReal","currentlyZoomed","zoomToSeriesDataItem","toggleBullets","rangeChangeAnimation","_dataDisposers","binaryTree","dice","sliceDice","validateRawData","sums","partition","valueOffset","valueTarget","hi","mid","valueLeft","valueRight","xk","yk","nodeValue","sumValue","newRatio","minRatio","beta","ratio","i0","i1","handleDataItemValueChange","getLegendLevel","legendParent","dx3D","dy3D","handle3DChanged","column3D","Rectangle3D","fixColumns","depthIndex","maskColumns","markerContainer","markerCount","getMinFromRules","getMaxFromRules","valueAxis","minColor","maxColor","seriesFill","minOpacity","maxOpacity","minStrokeOpacity","maxStrokeOpacity","minStroke","maxStroke","strokeGradient","_valueAxis","dataFieldDefined","updateMinMax","lowLine","highLine","lowValueX","lowValueY","highValueX","highValueY","positiveColor","negativeColor","dropFromOpenState","riseFromOpenState","validateCandlestick","yOpen","yClose","yLow","yLowField","yHigh","yHighField","xOpen","xClose","xLow","xLowField","xHigh","xHighField","rangeLowLine","rangehighLine","_xLowField","_yLowField","_xHighField","_yHighField","cw","ch","openLine","highLowLine","closeLine","rangeOpenLine","rangeCloseLine","rangeHighLowLine","noRisers","vertical","startLocationX","endLocationX","startLocationY","endLocationY","radarColumn","lAngle","rAngle","tRadius","bRadius","cellAngle","bottomWidth","topWidth","expandDistance","pb","pr","pl","ed","tl","tw","tr","br","bw","bl","cpr","cpl","qp1","qp2","tickPoint","tt","tb","bt","bb","mlx","mty","labelsOpposite","_sliceLink","sliceLinks","_nextY","bottomRatio","labelTemplate","dItem","_total","_count","getNextValue","nextValue","nextItem","formDataElement","sliceLink","decorateSlice","linkHeight","getLastLabel","lastLabel","lastY","lastX","_sliceLinks","labelAlign","labelValign","pyramidHeight","valueIs","_nextWidth","relValue","_pyramidHeight","_pyramidWidth","absoluteSum","pyramidWidth","sliceTopWidth","sliceHeight","sliceBottomWidth","square","sliceWidth","_maskSprite","maskSprite","pictureWidth","pictureHeight","newWidth","newHeight","hs","coneColumn","Cone","curvedColumn","errorLine","textLink","TextLink","_linksIterator","triangle","separators","activeLink","fontWeight","_stick","handleCursorDown","handleCursorUp","handleCursorMove","_generalBehavior","_stickPoint","triggerMove","stick","force","triggerMoveReal","getPositions","triggerDown","triggerDownReal","setGlobalStyle","triggerUp","triggerUpReal","updatePoint","upPoint","_upPointOrig","_downPointOrig","getHitOption","updateSelection","cancelable","shouldPreventGestures","preventDefault","lockElement","_lineX","_lineY","_snapToDisposers","lineX","lineY","updateSize","_usesSelection","fixPoint","updateLinePositions","getPanningRanges","selectionX","selectionY","hasMoved","getRanges","handleXTooltipPosition","handleYTooltipPosition","fullWidthLineX","fullWidthLineY","_selection","snap","xx","animationEasing","truePixelRadius","updateLineX","updateLineY","fillStartAngle","downAngle","downRadius","currentRadius","_prevAngle","downSin","downCos","upAngle","upRadius","timeUnitDurations","getNextUnit","checkChange","dateOne","dateTwo","timeZoneOffset1","timeZoneOffset2","getUTCHours","getUTCSeconds","nextUnit","timeZoneOffset","setUTCDate","setUTCSeconds","getUTCMilliseconds","setUTCMilliseconds","setUTCHours","setUTCMonth","wday","newTimeZoneOffset","firstDateOfWeek","firstDate","unitCount","weekDay","_purposes","primaryButton","primaryButtonHover","primaryButtonDown","primaryButtonActive","primaryButtonText","primaryButtonStroke","secondaryButton","secondaryButtonHover","secondaryButtonDown","secondaryButtonActive","secondaryButtonText","secondaryButtonStroke","alternativeBackground","alternativeText","disabledBackground","positive","debug","purpose","setFor","hasNativeReflectConstruct","LocaleProvider","_React$Component","_super","changeConfirmLocale","Modal","devWarning","_ANT_MARK__","prevProps","_this$props","LocaleContext","exist","defaultProps","configConsumerProps","ConfigProvider","notification","getPrefixClsWrapper","suffixCls","customizePrefixCls","prefixCls","mergedPrefixCls","getPrefixCls","LocaleReceiver","legacyLocale","ConfigConsumer","getTargetContainer","getPopupContainer","renderEmpty","csp","autoInsertSpaceInButton","form","pageHeader","componentSize","space","virtual","dropdownMatchSelectWidth","childNode","validateMessages","Form","defaultValidateMessages","RcFormProvider","SizeContextProvider","ConfigContext","renderProvider","iterableToArray","_globalEventsAdded","_pointerEvents","_usePointerEventsOnly","_useTouchEventsOnly","_addHoverEvents","_passiveSupported","_delayedEvents","overObjects","downObjects","trackedObjects","transformedObjects","pointers","pointerdown","pointerup","pointermove","pointercancel","pointerover","pointerout","matchMedia","fullFF","wheel","onmousewheel","Interaction","passiveSupported","addGlobalEvents","handleGlobalPointerDown","handleGlobalPointerMove","handleGlobalPointerUp","relatedTarget","buttons","which","handleDocumentLeave","handleGlobalTouchStart","handleGlobalTouchMove","handleGlobalTouchEnd","handleGlobalKeyDown","handleGlobalKeyUp","processClickable","io","processTouchable","processContextMenu","eventDisposers","processHoverable","handlePointerOut","handlePointerOver","processMovable","isGlobalElement","prepElement","processTrackable","processDraggable","processSwipeable","processResizable","processWheelable","handleMouseWheel","passive","unlockWheel","lockWheel","processFocusable","handleFocusBlur","handleTouchDown","handlePointerDown","isPaused","imev","focusedObject","ko","getEventKey","directionY","directionX","getPointer","getPointerPoint","addBreadCrumb","handleGlobalMove","processDelayed","preventTouchAction","defaultPrevented","handleGlobalUp","changedTouches","resetPointer","mod","deltaMode","getMouseOption","WheelEvent","wheelDeltaX","wheelDeltaY","maybePreventDefault","lastHit","lastHitPointer","soft","overPointers","handleTrack","hasDelayedOut","old","getHoverOption","keepUntil","timeout","delayedEvent","stopInertia","applyCursorDownStyle","processDragStart","processResizeStart","sorted","compareDocumentPosition","Node","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","restoreCursorDownStyle","swiped","handleSwipe","moved","handleInertia","processDragStop","processResizeStop","lastEvent","swiping","handleTransform","skipCheck","handleMoveInertia","handleResizeInertia","inertia","getTrailPoint","getInertiaOption","factor","inertias","lastUpEvent","pointer2","pointer1","singlePoint","nextPointer","pointer1Moved","dragStartEvents","handleTransformMove","pointer2Moved","handleTransformResize","pointerMoved","dragTarget","getDragPointer","lastDownEvent","getPointerId","identifier","pointerId","clientX","clientY","isPointerTouch","Touch","PointerEvent","pointerType","MouseEvent","track","swipeCanceled","lockDocument","unlockDocument","restoreAllStyles","unlockElement","wheelLockEvent","doc","elementFromPoint","setTemporaryStyle","unprepElement","restoreStyle","getSwipeOption","getKeyboardOption","restoreGlobalStyle","tolerance","minTime","getShift","pointerExists","exists","replacedStyles","logTouch","TouchEvent","areTransformed","dict","_dictionary","updateKey","insertKeyIfEmpty","ifEmpty","warned","valid","process","note","noteOnce","warningOnce","excluded","sourceSymbolKeys","propertyIsEnumerable","randomString","random","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","$$observable","getUndefinedStateErrorMessage","actionType","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","_key","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","actionCreators","boundActionCreators","compose","_len","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","system","_isPaused","dummyCounter","_frameRequested","updateStepDuration","reportTime","invalidData","dataValidationProgress","validateLayouts","validatePositions","hasSkipped","checkIfValidate2","softInvalidate","hardInvalidate","VERSION","isValidElement","replaceElement","replacement","cloneElement","isRequired","isIn","isBrowser","isWebWorker","includeContent","detail","isArrayBuffer","byteLength","view","Uint8Array","formatArrayBuffer","ArrayBuffer","logger","transportName","httpClient","accessTokenFactory","logMessageContent","withCredentials","defaultHeaders","headers","getUserAgentHeader","Trace","getDataDetail","responseType","post","response","statusCode","ConsoleLogger","Information","subject","observers","cancelCallback","catch","minimumLogLevel","outputConsole","logLevel","Critical","Warning","userAgentHeaderName","Platform","isNode","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtime","runtimeVersion","majorAndMinor","platform","versions","_uid","theme","cloneId","newObject","setInterval","configKey","configValue","createClassInstance","processAdapters","processEvents","asFunction","BaseObject","processListTemplate","processOrderedTemplate","templateValue","entryKey","entryValue","listItem","processDictionaryTemplate","processList","processDictionary","isReserved","errors","_processingErrors","getConfigEntryType","insert","itemCount","createEntryInstance","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","__esModule","omit","_rules","_appliedRules","_appliedTargets","_useDefault","_enabled","_responsiveDisposers","_noStates","rules","checkRules","_component","disposeResponsiveHandlers","enabled","applyRules","defaultRules","useDefault","isApplied","ruleId","allRules","rulesChanged","newTarget","defaultStateApplied","getDefaultState","setTargetState","tmpId","ResponsiveBreakpoints","XXS","XS","widthM","widthL","widthXL","XL","widthXXL","XXL","heightS","heightM","heightL","heightXL","heightXXL","isXXS","isS","isM","isL","isXL","isXXL","maybeXXS","maybeS","maybeM","maybeL","maybeXL","maybeXXL","BrowserRouter","history","createHistory","render","HashRouter","resolveToLocation","currentLocation","normalizeToLocation","createLocation","forwardRefShim","LinkAnchor","innerRef","navigate","rest","isModifiedEvent","Link","RouterContext","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","exact","isActiveProp","locationProp","styleProp","toLocation","escapedPath","matchPath","classnames","joinClassnames","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","STRING","NUMBER","DURATION","PLACEHOLDER","PLACEHOLDER2","SecureRoute","LoginCallback","OktaContext","useOktaAuth","AuthService","withOktaAuth","Security","_Security2","_interopRequireDefault","_withOktaAuth2","_OktaContext","_OktaContext2","_AuthService2","_LoginCallback2","_SecureRoute2","_interopRequireWildcard","_slicedToArray2","_defineProperty2","_objectWithoutProperties2","_classnames","_IconBase","_twoTonePrimaryColor","_utils","_default","ReactCSS","loop","handleActive","handleHover","hover","_flattenNames2","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","activations","activeNames","merged","global","vendors","raf","caf","_now","handle","cancel","polyfill","requestAnimationFrame","cancelAnimationFrame","convertTreeToData","rootNodes","dig","treeNode","isTreeNode","_treeNode$props","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","expandedKeySet","flattenList","getPosition","mergedKey","flattenNode","traverseDataNodes","dataNodes","processNode","parentPos","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","posEntities","keyEntities","wrapper","entity","getTreeNodeProps","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","eventKey","expanded","selected","loaded","loading","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","active","eventData","arrDel","arrAdd","posToArr","getDragNodesKeys","dragNodeKey","dragNodesKeys","calcDropPosition","_treeNode$selectHandl","selectHandle","des","calcSelectedKeys","multiple","parseCheckedKeys","keyProps","conductExpandParent","keyList","conductUp","getDataAndAria","omitProps","startsWith","globalAdapter","_callbackId","_callbacks","addAll","applyAll","callbacks","enableKey","disableKey","amount","_hasListenersByType","_shouldDispatch","componentName","Empty","image","PRESENTED_IMAGE_SIMPLE","defaultRenderEmpty","withConfigConsumer","SFC","configProps","basicPrefixCls","cons","notAllowed","Children","isFragment","getProgressNumber","progress","getProgressPercent","getProgressColor","getHybridProperty","_loop","_pause","_delayTimeout","_time","_isFinished","pause","stopSameAnimations","_startTime","staticOptions","childObject","updateMethod","convertedFrom","applyStaticOptions","resume","setProgress","skipEvent","timeProgress","delayed","newOptions","oldOptions","isOversized","wrap","textValign","baseLineRatio","availableWidth","alignSVGText","updateCurrentText","supportsForeignObject","_currentFormat","_prevStatus","getLineBBox","lineInfo","oldW","oldH","status","lines","display","getAttr","resetBBox","currentHeight","currentFormat","chunks","chunk","ignoreFormatting","currentLineHeight","firstChunk","skipTextChunks","getLineInfo","getSVGLineElement","complex","translateStyleShortcuts","tspan","getSvgElement","lineText","avgCharWidth","excessChars","addEllipsis","elementText","lastNode","lastChild","splitLines","cleanUp","restOfLine","addLineInfo","tempElement","maybeHideOversized","hideUnused","fo","foreignObject","getHTMLLineElement","setStyles","pathElement","div","wordWrap","whiteSpace","selectable","initLineCache","_sourceDataItemEvents","SizeContext","originSize","tuple","tupleNum","_len2","_key2","_Alpha","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","linear","polyIn","polyOut","polyInOut","polyOut3","sinOut","cubicIn","cubicOut","bounceOut","tau","defaultLocale","defaultLocaleData","antLocale","localeFromContext","localeCode","getLocaleCode","contextType","namedColors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexToRgbWithAlpha","hexToRgb","rgbaToRgb","rgbToHex","pad2","rgbToRGBA","interpolate","rgb1","rgb2","getLightnessStep","hsl","rgbToHsl","hslToRgb","hue2rgb","q","isLight","_stops","_rotation","gradientElement","gradientStop","gradientUnits","_tensionX","_tensionY","closed","wavedLine","waveLength","waveHeight","adjustWaveLength","waveLengthX","waveLengthY","halfWaveCount","Tension","_closed","x3","x4","y3","y4","pushCurve","pushPoint","_assign","_assign2","_arrayWithHoles","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","useControlledState","defaultStateValue","onChange","postState","_React$useState2","innerValue","setInnerValue","mergedValue","firstRenderRef","minSide","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomRight","cornerRadiusBottomLeft","maxcr","crtl","crtr","crbr","crbl","_createForOfIteratorHelper","it","normalCompletion","didErr","_e2","pendingFrame","nextQueue","readQueue","writeQueue","idleQueue","frameLoop","pendFrame","nextFrame","readFrame","writeFrame","whenIdle","triggerIdle","_listeners","_killed","_iterating","hasListeners","hasListenersByType","_removeListener","_removeExistingListener","_eachListener","killed","_on","EventDispatcher","RangeError","charCodeAt","OrderedList","closestValue","closestDifference","closestIndex","_ordering","OrderedListTemplate","Adapter","en","_defaultLocale","prompt","translation","translations","getTranslations","translateAny","translateEmpty","translateFunc","translateAll","isDefault","keyboard","shiftKey","formatter","formatted","texts","wrapHtml","wrapSvg","styleSvgToHtml","getHtmlElement","quotedBlocks","noFormatting","chunks2","i2","chunk2","isImage","getTextFormatter","TextFormatter","ReactResizeObserver","resizeObserver","currentElement","onResize","_target$getBoundingCl","offsetWidth","offsetHeight","fixedWidth","fixedHeight","setChildNode","onComponentUpdated","destroyObserver","findDOMNode","ResizeObserver","disconnect","supportRef","composeRef","compare","compareContext","bHasOwnProperty","valueA","valueB","ids","wrapperRaf","delayFrames","myId","restFrames","internalCallback","pid","normalizeAttrs","attrs","acc","class","rootProps","generateColor","svgBaseProps","iconStyles","cssInjectedFlag","styleStr","insertCss","prepend","core","__e","createElementNS","setAttributeNS","defs","elementName","groupName","implementation","hasFeature","ghostPaper","getGhostPaper","ghostDiv","ghostSvgContainer","iconPosition","_icon","currentIcon","fillRef","refs","nodeOrComponent","sourceKeys","fixControlledValue","resolveOnChange","currentTarget","originalInputValue","getInputClassName","_classNames","Input","saveClearableInput","clearableInput","saveInput","onFocus","focused","clearPasswordValueAttribute","onBlur","handleReset","renderInput","addonBefore","addonAfter","customizeSize","otherProps","autoComplete","handleChange","onKeyDown","handleKeyDown","removePasswordTimeout","hasAttribute","_this$props2","onPressEnter","renderComponent","_this$state","ClearableLabeledInput","inputType","triggerFocus","nextProps","newState","hasPrefixSuffix","activeElement","select","responsiveArray","responsiveMap","xs","sm","md","lg","xl","xxl","subscribers","subUid","screens","responsiveObserve","matchHandlers","pointMap","register","unregister","screen","matchMediaQuery","handler","mql","removeListener","addListener","parseStartTime","parseTimeParam","MATCH_START_QUERY","parseEndTime","MATCH_END_QUERY","queryString","getSDK","sdkGlobal","sdkReady","isLoaded","fetchScript","_loadScript","existingGlobal","getGlobal","requests","onLoaded","sdk","request","previousOnReady","getConfig","_deepmerge","arrays","omitKeys","_i2","callPlayer","_this$player","player","isMediaStream","MediaStream","isBlobUrl","supportsWebKitPresentationMode","video","notMobile","webkitSupportsPresentationMode","webkitSetPresentationMode","MATCH_START_STAMP","MATCH_NUMERIC","stamp","_array2","parseTimeString","_visible","_hidden","_valueAnimations","_locationAnimations","_hideDisposer","realName","newDuration","handleDataItemCalculatedValueChange","handleInterpolationProgress","valueAnimation","workingLocation","locationAnimation","handleDataItemWorkingLocationChange","__g","USE_SYMBOL","baseMerge","createAssigner","srcIndex","_dataSources","parsingStepDuration","rawDataInvalid","dataItemsInvalid","_dataItems","handleDataItemAdded","handleDataItemRemoved","handleDataUserAdded","maxZoomDeclination","fieldName","childDataItem","appendDataItems","counter","dataUserDataItem","getDataSource","setDataSourceEvents","loadData","load","targetList","incremental","keepCount","updateCurrentData","_responsive","_finalStart","_finalEnd","bindDataField","resetProcessedRange","_exportData","handleDataUpdated","_showOnInitDisposer2","_scale","_nonScaling","filterPrimitive","updateScale","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toArray","paths","_paths","restPath","getNamePath","namePath","cloneByNamePathList","namePathList","newStore","containsNamePath","matchNamePath","internalSetValues","recursive","setValues","restValues","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","moveIndex","typeTemplate","required","enum","whitespace","types","boolean","integer","float","regexp","email","mismatch","AsyncValidator","RawAsyncValidator","convertMessages","messages","messageVariables","kv","replaceFunc","additionalKV","replaceMessage","fillTemplate","ruleName","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_regeneratorRuntime","mark","_callee","cloneRule","subRuleField","validator","subResults","_context","defaultField","t0","all","subValue","abrupt","validateRules","validateFirst","rulePromises","currentRule","originValidatorFunc","hasPromise","promise","summaryPromise","_x7","_finishOnFirstFailed","finishOnFirstFailed","_x6","_finishOnAllFailed","finishOnAllFailed","_callee2","_context2","errorsList","_callee3","_context3","requireUpdate","shouldUpdate","Field","resetCount","cancelRegisterFunc","destroy","touched","dirty","validatePromise","cancelRegister","_this$context$prefixN","prefixName","getRules","_this$props$rules","refresh","onStoreChange","prevStore","_this$props$dependenc","onReset","curValue","namePathMatch","validating","reRender","dependencyList","dependency","relatedFields","_this$props2$validate","triggerName","filteredRules","validateTrigger","includes","isFieldValidating","isFieldTouched","isFieldDirty","getErrors","getMeta","prevValidating","getOnlyChild","meta","getControlled","childList","toChildrenArray","getFieldsValue","childProps","_this$props3","trigger","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_this$context","getInternalHooks","_getInternalHooks","HOOK_MARK","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","registerField","forceUpdate","returnChildNode","_this$getOnlyChild","FieldContext","WrapperField","_ref4","isListField","keyManager","parentPrefixName","_ref3$value","getFieldValue","getNewValue","operations","newKeys","_move","NameMap","updater","json","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","lastValidatePromise","getForm","getFieldError","getFieldsError","isFieldsTouched","isFieldsValidating","resetFields","setFields","setFieldsValue","validateFields","submit","useSubscribe","setInitialValues","setCallbacks","setValidateMessages","getFields","getInitialValue","timeoutId","warningUnhooked","getFieldEntities","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","arg0","isAllFieldsTouched","testTouched","fieldNamePath","testField","resetWithFieldInitialValue","initialValue","records","requiredFieldEntities","resetWithFields","entities","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","provideNameList","promiseList","results","allPromiseFinish","resultNamePathList","returnPromise","errorList","errorFields","outOfDate","onFinish","onFinishFailed","useForm","formRef","_React$useState","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","mountRef","childrenNode","childrenRenderProps","prevFieldsRef","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","stopPropagation","RefForm","FieldForm","fx","fy","_cx","_cy","_fx","_fy","unsafeLifecyclesPolyfill","isReactComponent","componentWillReceiveProps","Profiler","UNSAFE_componentWillReceiveProps","toArrayChildren","findChildInChildrenByKey","findShownChildInChildrenByKey","showProp","util","isAppearSupported","transitionName","transitionAppear","isEnterSupported","transitionEnter","enter","isLeaveSupported","transitionLeave","leave","allowAppearCallback","allowEnterCallback","allowLeaveCallback","transitionMap","AnimateChild","animUtil","animationType","finishCallback","ReactDOM","nameIsObj","stopper","isCssAnimationSupported","activeName","cssAnimate","defaultKey","getChildrenFromProps","noop","Animate","_initialiseProps","currentlyAnimatingKeys","keysToEnter","keysToLeave","childrenRefs","performAppear","_this3","nextChildren","exclusive","currentChildren","newChildren","currentChild","nextChild","newChild","nextChildrenPending","pendingChildren","mergeChildren","hasPrev","showInNext","hasNext","showInNow","performEnter","performLeave","_this4","stateChildren","passedProps","componentProps","isAnimate","onEnd","onEnter","onLeave","onAppear","_this5","componentWillEnter","handleDoneAdding","componentWillAppear","isValidChildByKey","componentWillLeave","handleDoneLeaving","c1","c2","same","child2","isSameChildren","warningFunc","isAbsolute","pathname","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","search","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","getHistoryState","createBrowserHistory","invariant","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","allKeys","fromIndex","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isBuffer","isFormData","FormData","isArrayBufferView","isView","buffer","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","stripBOM","canPlay","FLV_EXTENSIONS","DASH_EXTENSIONS","HLS_EXTENSIONS","VIDEO_EXTENSIONS","AUDIO_EXTENSIONS","MATCH_URL_KALTURA","MATCH_URL_VIDYARD","MATCH_URL_MIXCLOUD","MATCH_URL_DAILYMOTION","MATCH_URL_TWITCH_CHANNEL","MATCH_URL_TWITCH_VIDEO","MATCH_URL_WISTIA","MATCH_URL_STREAMABLE","MATCH_URL_FACEBOOK_WATCH","MATCH_URL_FACEBOOK","MATCH_URL_VIMEO","MATCH_URL_SOUNDCLOUD","MATCH_URL_YOUTUBE","allowArrayLike","youtube","soundcloud","vimeo","facebook","streamable","wistia","twitch","dailymotion","mixcloud","vidyard","kaltura","file","canPlayFile","_iterator","src","updateGradient","outerRect","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","Content","overlay","overlayInnerStyle","overlayClassName","_props$trigger","_props$mouseEnterDela","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","domRef","useImperativeHandle","extraProps","popupVisible","destroyTooltip","autoDestroy","keepParent","Trigger","popupClassName","popup","_props$arrowContent","arrowContent","builtinPlacements","popupPlacement","popupAlign","onPopupVisibleChange","afterPopupVisibleChange","popupTransitionName","popupAnimation","defaultPopupVisible","destroyPopupOnHide","popupStyle","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","PresetColorRegex","PresetColorTypes","getDisabledCompatibleChildren","elementType","__ANT_BUTTON","__ANT_SWITCH","__ANT_CHECKBOX","_splitObject","picked","omitted","splitObject","spanStyle","buttonStyle","_classNames2","_React$useContext","getContextPopupContainer","setVisible","isNoTitle","getTooltipPlacements","arrowPointAtCenter","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","placementMap","ignoreShake","getPlacements","openClassName","tempVisible","formattedOverlayInnerStyle","arrowContentStyle","childCls","customOverlayClassName","RcTooltip","getOverlay","vis","onPopupAlign","domNode","transformOrigin","enUS","localeValues","Pagination","DatePicker","TimePicker","Calendar","placeholder","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","selectAll","selectInvert","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","okText","cancelText","justOkText","Popconfirm","Transfer","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Text","edit","copied","PageHeader","back","toInnerValue","labelInValue","combobox","toOuterValues","valueList","optionLabelProp","getLabeledValue","removeLastEnabledValue","measureValues","newValues","removedValue","isBrowserClient","uuid","getUUID","retId","condition","_rcFieldForm","_localeProvider","_LocaleReceiver","_SizeContext","_message","_notification","ANT_MARK","repeat","chars","choice","genCSSMotion","transitionSupport","isSupportTransition","motionName","CSSMotion","onDomUpdate","newStatus","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","motionAppear","motionEnter","motionLeave","$ele","$cacheEle","updateStatus","updateActiveStatus","onMotionEnd","_this$state2","statusActive","onAppearEnd","onEnterEnd","onLeaveEnd","setNodeRef","internalRef","transitionEndName","animationEndName","styleFunc","additionalState","statusStyle","_destroyed","nextStep","currentStatus","motionDeadline","deadline","cancelNextFrame","_state","removeOnLeave","leavedClassName","eventProps","getTransitionName","prevStatus","motionLeaveImmediately","supportTransition","freeGlobal","freeSelf","or","_elements","patternUnits","backgroundFill","patternElement","rotationX","rotationY","elements","addEventListenerWrap","cb","unstable_batchedUpdates","MiniStoreContext","defaultMapStateToProps","shouldSubscribe","finalMapStateToProps","subscribed","getDerivedStateFromProps","prevState","componentDidMount","componentWillUnmount","shouldComponentUpdate","miniStoreForwardedRef","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","isMobile","_tmp","_tmp3","apple","phone","ipod","tablet","device","amazon","android","windows","blackberry","blackberry10","opera","firefox","chrome","defaultResult","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","loopMenuItem","isMenuItemGroup","menuAllProps","elem","styleProperty","placementsRtl","guid","popupPlacementMap","horizontal","updateDefaultActiveFirst","defaultActiveFirst","menuId","SubMenu","onDestroy","menu","menuInstance","isOpen","onTitleClick","triggerOpenChange","handled","onOpenChange","onMouseEnter","domEvent","onMouseLeave","parentMenu","subMenuInstance","onTitleMouseEnter","_this$props4","onItemHover","onTitleMouseLeave","_this$props5","triggerSubMenuAction","onSubMenuClick","addKeyPath","onSelect","onDeselect","rootPrefixCls","getActiveClassName","getDisabledClassName","getSelectedClassName","getOpenClassName","saveMenuInstance","keyPath","openChange","mouseenterTimeout","isChildrenSelected","loopMenuItemRecursively","isSubMenu","isMenuItem","openKeys","adjustWidth","subMenuTitle","popupMenu","saveSubMenuTitle","getBaseProps","mode","inlineIndent","motion","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","internalMenuId","manualRef","itemIcon","expandIcon","getMotion","haveRendered","_this$props6","isRootMenu","componentDidUpdate","_this$props7","minWidthTimeout","_this$props8","baseProps","mergedMotion","haveOpened","mergedClassName","SubPopupMenu","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","renderChildren","triggerNode","popupOffset","forceRender","connected","activeKey","subMenuKey","DOMWrap","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","cancelFrameId","lastVisibleIndex","getMenuItemNodes","ul","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","overflowedIndicator","_copy$props","propStyle","setChildrenWidthAndResize","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","overflowedIndicatorWidth","cur","currentSumWidth","liWidth","menuUl","MutationObserver","attributes","subTree","overflowed","Tag","updateActiveKey","getActiveKey","originalActiveKey","saveRef","instanceArray","getFlatInstanceArray","activeItem","selectInfo","activeIndex","ci","renderCommonMenuItem","renderMenuItem","createChainedFunction","domProps","openAnimation","openTransitionName","Menu","_selectedKeys","selectedKey","innerMenu","getWrappedInstance","processSingle","oneChanged","_selectedKeys2","getOpenTransitionName","animationName","setInnerMenu","defaultSelectedKeys","defaultOpenKeys","initialState","partial","updateMiniStore","MenuItem","isSelected","saveNode","callRef","mouseEvent","MenuItemGroup","renderInnerMenuItem","_props$className","titleClassName","listClassName","Divider","START_EVENT_NAME_MAP","transitionstart","WebkitTransition","MozTransition","OTransition","msTransition","animationstart","WebkitAnimation","MozAnimation","OAnimation","msAnimation","END_EVENT_NAME_MAP","transitionend","animationend","startEvents","endEvents","eventName","eventListener","EVENT_NAME_MAP","baseEventName","baseEvents","styleName","detectEvents","TransitionEvents","addStartEventListener","startEvent","removeStartEventListener","addEndEventListener","endEvent","removeEndEventListener","Col","ctx","$export","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","passed","letter","oldHue","toHsl","hsv","toHsv","toRgb","toHex","col","_dateFormat","_inputDateFormat","_utc","_firstDayOfWeek","_outputFormat","intlLocales","Intl","DateTimeFormat","parseFormat","setMinutes","getMinutes","applyFormat","fullYear","getHours","getSeconds","getMilliseconds","tz","tzh","tzm","toUTCString","inputDateFormat","parsedIndexes","resValues","indexAdjust","year3","year2","year1","getStringList","monthLong","monthShort","yearDay","weekdayLong","weekdayShort","am","hour12Base1","hourBase0","hour12Base0","hourBase1","millisecondDigits","resolveMonth","resolveShortMonth","isAm","invalidateSprite","_intlLocales","_timezoneOffset","DateFormatter","stepOptions","passOptions","minColors","minLightness","maxLightness","shuffle","reuse","getReusableColor","tmpstep","curColor","currentColor","hueStep","hue","mods","lightness","hues","applyStepOptions","pass","_storage","ownerStorage","cacheItem","expired","isPointsEq","a1","a2","isAlignPoint","jsCssMap","Webkit","Moz","getVendorPrefix","vendorPrefix","getTransformName","setTransitionProperty","setTransform","matrix2d","matrix3d","forceRelayout","originalStyle","css","getComputedStyleX","getScroll","getScrollLeft","getScrollTop","getOffset","docElem","box","getClientPosition","isWindow","getDocument","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","getTransitionProperty","preset","originalXY","getTransformXY","resultXY","xy","match2d","setTransformXY","isBorderBoxFn","computedStyle","rsLeft","BOX_MODELS","getPBMWidth","cssProp","domUtils","getParent","getWH","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","win","documentElementProp","cssShow","getWHIgnoreDisplay","mix","includeMargin","utils","getWindow","oriOffset","oLeft","oTop","tLeft","tTop","setOffset","getWindowScrollLeft","getWindowScrollTop","viewportWidth","viewportHeight","getOffsetParent","positionStyle","getVisibleRectForElement","alwaysByViewport","visibleRect","scrollX","scrollY","documentWidth","documentHeight","bodyStyle","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","getAlignOffset","region","getElFuturePos","elRegion","refNodeRegion","isFailX","elFuturePos","isFailY","flip","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newOffset","newTargetOffset","isCompleteFailX","isCompleteFailY","isStillFailX","isStillFailY","adjustForViewport","useCssRight","useCssBottom","useCssTransform","alignElement","refNode","targetRegion","isOutOfVisibleRect","pageX","tgtPoint","pageY","pointInView","monitorResize","RefAlign","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","nodeRef","only","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","alignPoint","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","forceAlign","Align","RefPopupInner","onMouseDown","onTouchStart","hiddenClassName","RawCSSMotion","supportMotion","Popup","_Component","targetWidth","targetHeight","prevVisible","alignClassName","popupRef","createRef","alignRef","nextFrameState","nextFrameId","popupDomNode","getClassNameFromAlign","setStateOnNextFrame","cancelFrameState","submitState","getAlignTarget","getRootDomNode","renderPopupElement","stretch","sizeStyle","mergedStyle","getZIndexStyle","mergedMotionVisible","mergedAlignDisabled","mergedPopupVisible","motionRef","motionStyle","motionClassName","PopupInner","renderMaskElement","maskMotion","maskTransitionName","maskAnimation","nextStatus","TriggerContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","triggerRef","fireEvents","delaySetPopupVisible","onMouseMove","setPoint","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","onContextMenu","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","popupNode","getPopupDomNode","getTriggerDOMNode","getPopupClassNameFromAlign","getAlignPopupClassName","getComponent","popupMotion","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","getContainer","popupContainer","handlePortalUpdate","prevPopupVisible","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","placementStr","getAlignFromPlacement","delayS","delayTimer","childPros","showAction","hideAction","_this$props9","childCallback","_this$props10","createTwoChains","childrenClassName","cloneProps","portal","didUpdate","Portal","XLSX","current_codepage","current_ansi","cptable","VALID_ANSI","CS2CP","0","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","fromCharCode","utf16leread","utf16beread","_getchar","_getansi","decode","Base64","encode","c3","e1","e2","e3","e4","has_buf","Buffer","Buffer_from","nbfs","buf","enc","alloc","allocUnsafe","new_raw_buf","new_unsafe_buf","s2a","s2ab","a2s","ab2a","bconcat","bufs","chr0","chr1","SSF","make_ssf","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","init_table","table_fmt","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","parse_date_code","opts","b2","dout","date1904","basedate","dnthresh","base1904","datenum_local","epoch","_general_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn5","toPrecision","toExponential","gfn2","gfn3","gfn4","general_fmt","write_date","fmt","ss0","outl","commaify","_general_num","_general","write_num","pct1","frac1","dec1","closeparen","hashq","cc","rnd","dec","write_num_flt","ffmt","write_num_cm","sfmt","mul","write_num_pct","write_num_exp","ee","fakee","$$","$1","$2","$3","ri","ff","aval","den","rr","myn","myd","write_num_f1","carry","oa","lres","rres","flr","write_num_int","write_num_cm2","write_num_pct2","write_num_exp2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","dt","lst","ssm","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","table","lat","m1","m2","choose_fmt","load_entry","_table","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","Int32Array","signed_crc_table","bstr","seed","crc32_buf_8","_fs","CFB","fs","dirname","filename","write_dos_date","hms","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","header","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","cnt","ENDOFCHAIN","sector","__readInt32LE","sector_list","sl","chkd","buf_chain","modulus","seen","addr","__toBuffer","make_sector_list","Paths","FileIndex","FullPaths","files","mini","minifat_store","namelen","__utf16le","clsid","ct","read_date","storage","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","MSSZ","new_buf","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","namecmp","elt","_write","_opts","fileType","cdirs","compression","start_cd","fcnt","fp","fi","crcs","sz_cd","namebuf","outbuf","_zlib","deflateRawSync","_deflate","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","code","len_eb","dst_eb","dst","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setHours","setSeconds","parse_dos_date","crc32","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","downloads","download","revokeObjectURL","click","$","File","Folder","encoding","ks","o2","evert_key","evert","evert_num","datenum","numdate","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","asNodeBuffer","asBinary","getContent","getdata","getdatabin","safegetzipfile","zip","getzipfile","getzipdata","safe","getzipstr","zip_add_file","zip_new","resolve_path","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","z","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","orig","utf8readb","corpus","utf8readc","matchtag","mtcache","htmldecode","vtregex","vt_cache","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","__lpp4","___lpp4","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","oo","lens","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","av","LN2","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","cstr","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","split_cell","decode_cell","splt","decode_range","encode_range","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","_crypto","crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","write_BrtCommentText","run","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","RBErr","write_BrtColor","auto","nTS","tint","parse_ClipboardFormatOrString","3","8","14","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","write_cust_props","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtVecUnalignedLpstr","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","parse_TypedPropertyValue","parse_VtVecHeadingPair","cElements","parse_VtVecHeadingPairValue","parse_dictionary","CodePage","parse_BLOB","bytes","Size","parse_ClipboardData","parse_VtUnalignedString","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","DictObj","PropID","Offset","PropH","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkMoniker","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","cf","fSharedNote","parse_BOF","BIFFVer","write_BOF","wb","bookType","write_BoundSheet8","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","write_BoolErr","write_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","hcnt","coltypes","guess","_guess","hf","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","5","6","7","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","rj","next_cell_format","sht","rowinfo","colinfo","Mval","rstr","record","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","dateNF_regex","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","v1","v2","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","shadow","strike","uval","family","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","xmlns","main","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","byte1","byte2","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Data","Value","crypto_DecryptData_Method1","parse_FilePassHeader","Info","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","NumberFmt","formatCode","parse_numFmts","Fonts","bold","italic","underline","condense","vertAlign","scheme","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","bgColor","fgColor","parse_fills","Borders","border","diagonalUp","diagonalDown","parse_borders","xf","CellXf","alignment","textRotation","indent","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","write_FontFlags","sss","charset","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","csize","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","comment","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","cols","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","write_Formula","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","parse_ws_xml_dim","svs","Views","sviewregex","rightToLeft","RTL","parse_ws_xml_sheetviews","seencol","coli","colm","colM","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","Rel","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","si","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","write_ws_xml_sheetpr","sview","workbookViewId","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","write_BrtCellRk","ncell","d100","write_RkNumber","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","write_BrtCellIsst","write_BrtCellSt","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","parse_chart","csheet","nc","nf","parse_Cache","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","check_wb","codes","cn","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","Hidden","Comment","localSheetId","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","parse_wb","R_n","Ptg","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_ws","af","aii","relId","rfx","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","parse_sst_bin","parse_sst_xml","parse_cmnt","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","xlml_format","process_style_xlml","stag","Interior","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_j","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","ext","xfe","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","vba","fill_vba_xls","ArchID","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","idObj","stAuthor","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","def","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_biff8_cell","write_Number","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","blen","fix_write_opts","write_biff8_buf","html_to_sheet","mtch2","re","split_regex","hd","midx","colspan","rowspan","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","_row","BEGIN","_preamble","parse_dom_table","getElementsByTagName","is_dom_element_hidden","elts","get_computed_style","get_get_computed_style_function","parse_content_xml","parse_text_p","fixed","number_formats","sheetag","rowtag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","chartp","parse_drawing","crelsp","parse_ds","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","coreprops","extprops","custprops","calcchains","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_theme","propdata","parse_ext_props","toks","parse_cust_props","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","wsrels","need_vml","rId1","write_sty","f1","f2","f3","write_ct","read_zip","base64","zip_read","read_plaintext","read_prn","readSync","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","outi","CC","blankrows","qreg","make_csv_row","FS","txt","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","stream","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","MenuContext","inlineCollapsed","subMenu","saveSubMenu","titleIsSpan","antdMenuTheme","RcSubMenu","renderTitle","__rest","menuItem","saveMenuItem","renderItem","siderCollapsed","danger","tooltipTitle","tooltipProps","childrenLength","Item","renderItemChildren","SiderContext","InternalMenu","handleMouseEnter","restoreModeVerticalFromInline","handleTransitionEnd","widthCollapsed","classNameValue","animVal","iconScaled","handleClick","handleOpenChange","setOpenKeys","renderMenu","collapsedWidth","passProps","menuMode","getRealMenuMode","menuOpenMotion","getOpenMotionProps","menuClassName","getInlineCollapsed","menuProps","RcMenu","onTransitionEnd","switchingModeFromInline","inlineOpenKeys","mountRafId","collapseMotion","_React$Component2","_super2","ItemGroup","_inheritsLoose","makePrefixMap","prefixes","vendorPrefixes","domSupport","getVendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","transitionType","_isDisposed","_y","_rotationY","_rotationX","removeNode","_transformString","transfromString","rotateString","svgbbox","attributeName","attributeValue","ns","getAttrNS","getAttributeNS","getStyle","setClass","deltaAngle","totalDistance","positionA","positionB","positionAB","midPoint","Indent","baseClassName","InternalTreeNode","dragNodeHighlight","onSelectorClick","onNodeClick","isSelectable","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","disableCheckbox","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onDragStart","onNodeDragStart","dataTransfer","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","onExpand","onNodeExpand","setSelectHandle","getNodeState","isLeaf","checkable","treeCheckable","syncLoadData","_this$props$context","onNodeLoad","renderSwitcher","switcherIconFromProps","switcherIcon","_this$props$context2","switcherIconFromCtx","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","$icon","_this$props$context3","showIcon","treeIcon","wrapClass","$title","onDoubleClick","treeSelectable","_this$props$context4","filterTreeNode","dataOrAriaAttributeProps","ContextTreeNode","TreeContext","contentType","isJSON","emptyAs","numbers","parsableNumbers","parsableDates","maybeToEmpty","maybeToNumber","maybeToDate","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","RefOptionList","flattenOptions","childrenAsData","searchValue","defaultActiveFirstOption","notFoundContent","menuItemSelectedIcon","onToggleOpen","onActiveValue","onScroll","itemPrefixCls","memoFlattenOptions","listRef","onListMouseDown","scrollIntoView","scrollTo","getEnabledActiveIndex","_memoFlattenOptions$c","setActiveIndex","flattenItem","onSelectValue","nextActiveIndex","onKeyUp","itemData","pickAttrs","mergedLabel","itemKey","fullHeight","groupOption","optionPrefixCls","optionClassName","iconVisible","TransBtn","customizeIcon","customizeIconProps","Option","isSelectOption","OptGroup","isSelectOptGroup","convertNodeToOption","_node$props","convertChildrenToData","optionOnly","_node$props2","warningProps","backfill","allowClear","getInputElement","showSearch","onSearch","defaultOpen","autoFocus","inputValue","mergedShowSearch","mergedOptions","opt","hasNumberValue","invalidateChildType","toNodeArray","RefSelect","generateSelector","components","optionList","SelectOptionList","convertSelectChildrenToData","getSelectLabeledValue","filterOptions","selectDefaultFilterOptions","isValueDisabled","isSelectValueDisabled","findValueOption","findSelectValueOption","fillOptionsWithMissingValue","Select","selectRef","getIcons","suffixIcon","clearIcon","removeIcon","mergedClearIcon","CloseCircleFilled","LoadingOutlined","SearchOutlined","DownOutlined","CheckOutlined","CloseOutlined","getMode","SECRET_COMBOBOX_MODE_DO_NOT_USE","renderSelect","mergedNotFound","_this$props$listHeigh","listHeight","_this$props$listItemH","listItemHeight","dropdownClassName","bordered","isMultiple","_getIcons","selectProps","rcSelectRtlDropDownClassName","mergedSize","RcSelect","inputIcon","choiceTransitionName","viewBox","rx","ry","Simple","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_props$image","imageStyle","alt","imageNode","PRESENTED_IMAGE_DEFAULT","isGroupOption","injectPropsWithOption","newOption","optionMap","prevValItem","prevValues","prevItem","toRawString","optionFilterProp","filterOption","filteredOptions","lowerSearchText","getFilterFunction","subOptions","subItem","getSeparatedContent","separate","restTokens","prevList","unitStr","cloneOptions","optionValues","subOpt","_ref5","anObject","IE8_DOM_DEFINE","toPrimitive","dP","Attributes","arrayMap","baseIteratee","baseMap","collection","iteratee","_previousStart","_previousEnd","_prevStart","_prevEnd","_skipRangeEvents","updateWhileMoving","dispatchRangeChange","hideGrips","updateExtremes","handleBgHit","makeBusy","spritePoint","thumbX","_thumbAnimation","thumbY","makeUnbusy","_thumb","_unbusyTimeout","stopAnimations","_zoomAnimation","makeUnbusyReal","_usingGrip","__end","_startGrip","processGrip","_endGrip","handleGripDrag","cursorDownStyle","handleThumbPosition","handleDoubleClick","zoomAnimation","_hideGrips","_overDisposer","_outDisposer","_boundingRect","_pointTo","_verticalOrientation","pointerBaseWidth","dropShadow","drawBackground","handleVisibility","textX","textY","boundingRect","textW","textH","textWidth","textHeight","bgWidth","bgX","bgHeight","bgY","boundX1","boundX2","boundY1","boundY2","pointerX","pointerY","_pointToDisposer","_animation","oldRect","_boundingContainer","updateBounds","boundingContainer","_logLevel","NullLogger","success","xhr","XMLHttpRequest","onload","reader","FileReader","onerror","readAsText","getResponseHeader","responseText","requestHeaders","setRequestHeader","send","delimiter","skipRows","skipEmpty","useColumnNames","isCSV","CSVParser","getDelimiterFromData","lineColums","csv","CSVToArray","dataPoint","objPattern","arrData","arrMatches","strMatchedDelimiter","strMatchedValue","getScrollBarSize","fresh","outerStyle","widthContained","widthScroll","useBreakpoint","_useState2","useState","setScreens","ResponsiveObserve","supportScreens","UnreachableException","ButtonGroup","others","sizeCls","getCollapsedWidth","getRealWidth","scrollWidth","LoadingIcon","existIcon","rxTwoCNChar","isTwoCNChar","isUnborderedButtonType","spaceChildren","needInserted","isPrevChildPure","isCurrentChildPure","insertSpace","convertLegacyProps","InternalButton","loadingOrDelay","shape","ghost","innerLoading","setLoading","_React$useState4","hasTwoCNChar","setHasTwoCNChar","buttonRef","delayTimeoutRef","isNeedInserted","buttonText","fixTwoCNChar","autoInsertSpace","iconType","iconNode","kids","linkButtonRestProps","htmlType","buttonNode","Wave","Group","today","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangePlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","runtimeLocale","newLocale","getConfirmLocale","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","emitter","getChildContext","PropTypes","_Component2","onUpdate","observedBits","_proto2","createNamedContext","Router","computeRootMatch","isExact","_pendingLocation","staticContext","MemoryRouter","Lifecycle","onMount","onUnmount","Prompt","when","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","sensitive","cacheKey","pathCache","Route","createURL","staticHandler","StaticRouter","handlePush","handleReplace","handleListen","handleBlock","navigateTo","addBasename","Switch","withRouter","wrappedComponentRef","remainingProps","useHistory","useLocation","useParams","useRouteMatch","TextMessageFormat","RecordSeparator","RecordSeparatorCode","_players","_ReactPlayer","fallback","createReactPlayer","_configProvider","avatar","avatarDom","titleDom","descriptionDom","MetaDetail","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","nextTick","browser","argv","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","IObject","defined","createDesc","baseIsNative","getRawTag","objectToString","symToStringTag","toStringTag","spriteValue","SpriteState","dataLoader","sources","promises","requestOptions","processData","getParserByType","parser","getParserByData","allPoints","getClosestPointIndex","f0","parseFlex","flex","renderCol","span","pull","sizeClassObj","_extends2","sizeProps","propSize","RowContext","gutter","_targets","_observer","addTarget","removeTarget","unobserve","_timer","Raf","newSize","_sensor","svgContainers","autoResize","_printing","resizeSensor","ResizeSensor","checkTransform","_container","_modal","_popups","popupTemplate","_readerAlertElement","readerAlertElement","Event","capitalPrefixes","getStyleProperty","fixBrowserByTimeout","transitionDelay","animationDelay","rcEndAnimTimeout","rcEndListener","clearBrowserBugTimeout","cssAnimation","endCallback","rcAnimTimeout","setTransition","_onMouseDown","userSelect","WebkitUserSelect","unselectable","cls","PresetStatusColorTypes","InternalRadio","RadioGroupContext","mergedRef","radioProps","wrapperClassString","RcCheckbox","Radio","webpackPolyfill","isLength","cloneLayout","newLayout","cloneLayoutItem","childrenEqual","_lodash","_react","fastPositionEqual","collides","compact","compactItem","correctBounds","getLayoutItem","getFirstCollision","getAllCollisions","moveElement","moveElementAwayFromCollision","perc","WebkitTransform","MozTransform","OTransform","setTopLeft","sortLayoutItems","sortLayoutItemsByRowCol","sortLayoutItemsByColRow","synchronizeLayoutWithChildren","initialLayout","compactType","verticalCompact","autoBindHandlers","fns","fastRGLPropsEqual","bottomY","layoutItem","minW","maxW","minH","maxH","static","isDraggable","isResizable","l1","l2","compareWith","heightWidth","resolveCompactionCollision","moveToCoord","sizeProp","otherItem","fullLayout","compactH","bounds","collidesWith","isUserAction","preventCollision","oldX","oldY","collisions","collision","itemToMove","compactV","fakeItem","contextName","subProps","showCurtain","_negativeBase","_numberFormat","_smallNumberThreshold","NumberFormat","details","zero","partFormat","modSpacing","thousands","applyPrefix","bytePrefixes","smallNumberThreshold","smallNumberPrefixes","bigNumberPrefixes","ol","ints","intsr","decs","newvalue","applied","_bigNumberPrefixes","_smallNumberPrefixes","_bytePrefixes","outputFormat","NumberFormatter","_unitValues","_unitAliases","durationFormat","dirs","absolute","tstamp","toTimeStamp","toTimeUnit","maxUnit","durationFormats","currentUnit","_durationFormat","_durationFormats","DurationFormatter","_validateDisposer","numberFields","dateFields","waveLengthH","waveHeightH","waveLengthV","waveHeightV","td","rd","bd","ld","wavedTop","wavedRight","wavedBottom","wavedLeft","LightenFilter","nativeMax","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","_IOs","_content","_classPrefix","_defaultStyles","_showCurtain","_draggable","_align","_dynamicResize","_verticalAlign","_shift","_tempShift","_readerTitle","_closable","_cssLoaded","_fitTo","_sized","curtain","positionElement","releasePointers","forceResize","dynamicResize","images","complete","toStyle","verticalAlign","setupDragging","createContentElement","getClassNames","wrapperClass","classPrefix","headerClass","titleClass","contentClass","insideClass","curtainClass","closeClass","disablePointers","defaultStyles","loadDefaultCSS","createCurtainElement","applyEvents","applyReaderSettings","_right","_top","_bottom","fg","bg","abg","_spriteInteractionsEnabled","classPrefixRaw","getUuid","Notification","notices","hookRefs","notice","holderCallback","noticeIndex","updatedNotices","closeIcon","noticeNodes","onClose","noticeProps","Notice","newInstance","called","removeNotice","unmountComponentAtNode","useNotification","_useNotification","getPoints","circleLength","halfWaveHeight","halfWaveLength","angle1","angle2","styleForPesudo","offsetParent","isNotGrey","animationStart","destroyed","waveColor","insertExtraNode","extraNode","getAttributeName","borderColor","onTransitionStart","resetEffect","bindAnimationEvent","clickWaveTimeoutId","animationStartId","renderWave","nodeType","Element","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","propList","ariaOnly","_typeof2","_typeof3","_setPrototypeOf2","_create2","RadioGroupContextProvider","_ClearableLabeledInput","_ResizableTextArea","_Input","TextArea","resizableTextArea","textArea","saveTextArea","resizeTextarea","renderTextArea","isNumeric","dimensionMaxMap","generateId","InternalSider","collapsed","responsiveHandler","below","onBreakpoint","setCollapsed","onCollapse","toggle","renderSider","collapsible","reverseArrow","zeroWidthTriggerStyle","divProps","rawWidth","siderWidth","zeroWidthTrigger","BarsOutlined","defaultTrigger","RightOutlined","LeftOutlined","triggerDom","divStyle","siderCls","uniqueId","breakpoint","defaultCollapsed","siderHook","addSider","removeSider","Sider","LayoutContext","ClearableInputType","containerRef","onInputMouseUp","readOnly","needClear","renderClearIcon","suffixNode","renderSuffix","prefixNode","affixWrapperCls","onMouseUp","labeledElement","_classNames3","_classNames4","wrapperClassName","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","mergedGroupClassName","renderTextAreaWithClearIcon","renderInputWithLabel","renderLabeledIcon","Row","aFunction","$keys","enumBugKeys","baseAssignValue","customizer","isNew","arrayLikeKeys","baseKeysIn","isArrayLike","baseKeys","propIsEnumerable","test1","test2","test3","shouldUseNative","_interactionEvents","_dispatchSpriteEvent","_dispatchSpritePointEvent","_addInteractionObjectEvent","_domEvents","_addDOMEvent","_dispatchKeyboardEvent","Ellipse","ResizeButton","renderRow","justify","getGutter","rowStyle","getRenderPropValue","BasicComponent","Basic","BasicLayout","siders","hasSider","getSiderHook","currentId","Layout","Header","Footer","inlineStyle","lineHeight","TransButton","setRef","btn","noStyle","GroupContext","CheckboxGroup","_React$PureComponent","cancelValue","registeredValues","registerValue","toggleOption","optionIndex","getOptions","renderGroup","_assertThisInitialize","groupPrefixCls","Checkbox","saveCheckbox","rcCheckbox","indeterminate","checkboxGroup","checkboxProps","checkboxClass","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","bitmap","TAG","stat","$at","iterated","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","__data__","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","nativeCreate","getNative","isKeyable","stubFalse","freeExports","freeModule","DataView","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","Ctor","ctorString","isObjectLike","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","byteOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","isSymbol","findInArray","isNum","int","dontSetMe","propName","_clickable","_contextMenuDisabled","_hoverable","_trackable","_swipeable","_resizable","_wheelable","_inert","_isHover","_isHoverByTouch","_isDown","_isFocused","_isTouchProtected","_inertiaOptions","_hitOptions","_hoverOptions","_swipeOptions","_keyboardOptions","_mouseOptions","_cursorOptions","isHoverByTouch","_overPointers","_downPointers","_focusable","_originalPosition","_originalScale","_originalAngle","keyboardEvent","_startedOn","speed","accelleration","accellerationDelay","accelleratedMs","accellerationFactor","handleMove","pdfmakePromise","fontFamilySrcRegexp","getCssRules","loadStylesheet","eachStylesheet","topUrl","CSSRule","IMPORT_RULE","eachStylesheets","iframe","contentDocument","styleSheets","_formatOptions","_extraSprites","_validateSprites","dataFieldsOrder","_dynamicDataFields","_removedObjects","_hiddenObjects","_objectsAlreadyHidden","_filePrefix","useWebFonts","useRetina","useSimplifiedExport","timeoutDelay","_exportRunning","_prevHasData","quality","fontSize","imageFormat","addURL","addColumnNames","useLocale","printMethod","formatOptions","_menu","branch","unsupported","typeSupported","export","_disablePointers","_releasePointers","supported","getFormatOptions","_hasData","print","_getFunction","getImage","getSVG","getPDF","getExcel","getCSV","getJSON","getHTML","getPrint","handleCustom","showPreloader","hideTimeout","_timeoutTimeout","showTimeout","hideNonExportableSprites","restoreNonExportableSprites","hidePreloader","filePrefix","callbackTarget","getFontFamilies","DOMURL","getDOMURL","blobs","FONT_FACE_RULE","cssText","urls","after","fullUrl","msSaveOrOpenBlob","readAsDataURL","includeExtras","prehidden","awaitValidSprites","simplifiedImageExport","getCanvas","canvas","addExtras","toDataURL","getContentType","disposeCanvas","getImageAdvanced","advanced","extraSprites","extraSprite","getCanvasAdvanced","extraCanvas","extraWidth","extraHeight","crop","extras","newCanvas","getDisposableCanvas","getContext","backgroundColor","findBackgroundColor","fillStyle","fillRect","drawImage","pixelRatio","getAdjustedScale","fonts","imagesToDataURI","prepForeignObjects","normalizeSVG","serializeElement","loadNewImage","img","restoreRemovedObjects","canvg","useCORS","ignoreDimensions","scaleWidth","scaleHeight","widthScale","heightScale","adjWidth","adjHeight","querySelectorAll","Export","svgToDataURI","imageToDataURI","temporarilyRemoveObject","keepTainted","btoa","crossOrigin","currentHref","Image","onabort","webkitURL","dimParams","styleParams","fos","XMLSerializer","serializeToString","addFont","normal","vfs","italics","bolditalics","pdfmake","defaultMargins","pageSize","pageOrientation","pageMargins","extraMargin","fit","getPageSizeFit","getPDFData","extraFonts","createPdf","getDataUrl","dataRow","dataValue","convertToSpecialFormat","getPDFDataRow","headerRows","items","convertEmptyValue","newMargins","fitSize","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","EXECUTIVE","FOLIO","LEGAL","LETTER","TABLOID","wbOptions","sheetName","normalizeExcelSheetName","getExcelRow","getCSVRow","forceQuotes","tableClass","getHTMLRow","headerRow","rowClass","useTag","cellClass","sourceData","keepOriginal","isDateField","isDurationField","isNumberField","numberFormat","useTimestamps","fileName","msBlobDownloadSupport","decodeURIComponent","decoded","atob","charCode","blobDownloadSupport","linkDownloadSupport","legacyIE","showModal","idoc","execCommand","downloadSupport","printViaCSS","printViaIframe","scroll","scrollTop","originalTitle","clipPath","MSStream","contentWindow","validateSprites","_dataFields","generateDataFields","hasData","_dateFields","_numberFields","_durationFields","durationFields","_backgroundColor","hideModal","_canvg","vfs_fonts","pdfMake","_pdfmake","_xlsx","setFormatOptions","_requestOptions","_incremental","_incrementalParams","_keepCount","_updateCurrentData","lastLoad","disableCache","timestampUrl","_url","addUrlParams","incrementalParams","_parser","_reloadFrequency","_reloadDisposer","_reloadTimeout","reloadFrequency","cr","stemX","stemY","bwh","lineT","lineR","lineB","lineL","d2","arcTR","arcBR","arcBL","arcTL","feOffset","operator","feMerge","DropShadowFilter","topSide","bottomSide","ts","ls","mb","ml","horizontalNeck","hn","verticalNeck","vn","topRadius","bodyFillModifier","lightnesses","radiusBase","ColorModifier","sideBack","sideBottom","sideLeft","sideRight","sideTop","sideFront","ah","bh","dh","colorStr","filter2","filter3","filter4","filter5","edge","sideA","sideB","edgeFill","edgePath","mangle","pp","hasElementType","hasArrayBuffer","equal","$$typeof","closeDelay","closeOnClick","_menuTag","_itemTag","_labelTag","_iconTag","_ignoreNextClose","_items","getMenuItemClass","createMenuElement","drawBranch","menuElement","moveSelection","ascendants","createItemElement","createIconElement","createSvgElement","createLabelElement","readerLabel","getReaderLabel","typeClickable","getSubMenu","selectBranch","setFocus","delayUnselectBranch","local_level","submenu","hideBranch","menuTag","itemTag","labelTag","iconTag","DOMParser","parseFromString","hasSubMenu","newPrefix","colorSet","_currentSelection","setBlur","closeTimeout","ascendant","unselectBranch","simple","newSelection","getPrevSibling","getNextSibling","getParentItem","getSiblings","siblings","showBranch","Validatable","isSafari","vendor","isInternetExplorer","brightnesses","offsets","_lightnesses","_brightnesses","_opacities","_offsets","brightness","GradientModifier","closeTimer","clearCloseTimer","startCloseTimer","restartCloseTimer","holder","componentClass","createPortal","notificationInstance","createdRef","setElements","noticeEle","originElements","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","baseIsEqual","createContainer","removeContainer","getCollapsedHeight","getRealHeight","scrollHeight","nativeEvent","defaultChecked","globalProps","Dropdown","defaultIndicator","Spin","debouncifyUpdateSpinning","cancelExistingSpin","updateSpinning","debounce","originalUpdateSpinning","spinning","renderSpin","tip","spinClassName","spinElement","indicator","dotClassName","renderIndicator","isNestedPattern","containerClassName","shouldBeDelayed","shouldDelay","instances","resizeDetector","strategy","createResizeDetector","errMsg","defaultConfig","monitorWidth","monitorHeight","monitorPosition","refreshRate","refreshMode","noPlaceholder","resizeDetectorStrategy","ReferenceWrapper","Placeholder","phProps","renderWrapper","explicitRef","disablePlaceholder","renderProps","toRender","SizeMeRenderer","withSize","refreshDelayStrategy","SizeMeRenderWrapper","SizeAwareComponent","domEl","isSameNode","SizeMe","sizeMeConfig","currentSizeMeConfig","prevSizeMeConfig","isShallowEqual","SizeAware","onSize","WidthProvider","Pager","showTitle","onKeyPress","itemRender","Options","goInputText","buildOptionText","changeSize","goButton","quickGo","getValidValue","KEYCODE","pageSizeOptions","selectComponentClass","selectPrefixCls","changeSelect","goInput","gotoButton","getPageSizeOptions","calculatePage","getJumpPrevPage","showLessItems","getJumpNextPage","getItemIcon","savePaginationNode","paginationNode","shouldDisplayQuickJumper","showQuickJumper","handleKeyUp","currentInputValue","changePageSize","newCurrent","onShowSizeChange","currentPage","jumpPrev","jumpNext","runIfEnter","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","_current","defaultCurrent","_pageSize","defaultPageSize","lastCurrentNode","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","nextPage","nextIcon","nextButton","hideOnSinglePage","showTotal","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","pagerList","firstPager","lastPager","pageBufferSize","renderPrev","renderNext","pagerProps","prevItemTitle","nextItemTitle","_active","totalText","prevDisabled","nextDisabled","getShowSizeChanger","MiniSelect","customizeSelectPrefixCls","customLocale","renderPagination","contextLocale","isSmall","responsive","extendedClassName","RcPagination","DoubleLeftOutlined","DoubleRightOutlined","getIconsProps","Filler","innerStyle","flexDirection","alignScrollTop","scrollRange","getScrollPercentage","getElementScrollPercentage","getNodeHeight","getRangeIndex","scrollPtg","visibleCount","_getLocationItem","itemTopPtg","offsetPtg","getLocationItem","beforeCount","afterCount","itemOffsetPtg","getItemRelativeTop","itemElementHeights","locatedItemTop","locatedItemOffset","getItemKey","getCompareItemRelativeTop","locatedItemRelativeTop","locatedItemIndex","compareItemIndex","originCompareItemTop","compareItemKey","requireVirtual","getIndexByStartLoc","stepIndex","ScrollStyle","overflowY","overflowAnchor","itemElements","lockScroll","_this$listRef$current","originScrollTop","_getRangeIndex","triggerOnScroll","onRawScroll","getIndexKey","_mergedProps$data","collectItemHeights","eleKey","rafId","isVirtual","_arg0$align","relativeLocatedItemTop","relativeTop","mergedAlgin","shouldChange","itemTop","_eleKey","_getRangeIndex2","newOffsetPtg","_eleKey2","internalScrollTo","indexItemHeight","itemBottom","renderFunc","eleIndex","ele","cachedProps","startItemTop","onSkipRender","prevData","changedItemIndex","originList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","diffIndex","shortKey","findListDiffIndex","_this$state3","_this$state$cacheScro","cacheScroll","_itemIndex","rawTop","originLocatedItemRelativeTop","originItemIndex","_this$state4","originItemOffsetPtg","originStartIndex","originEndIndex","originCompareItemIndex","relativeScroll","compareItemRelativeTop","bestSimilarity","bestScrollTop","bestItemIndex","bestItemOffsetPtg","bestStartIndex","bestEndIndex","missSimilarity","maxScrollTop","_getRangeIndex3","compareItemTop","similarity","_this$state5","_this$props5$componen","_this$props5$fullHeig","shouldVirtual","_this$state6","ContainerRender","unstable_renderSubtreeIntoContainer","autoMount","_options$element","oldStyle","styleKeys","cacheStyle","scrollingEffectClassNameReg","bodyClassName","scrollBarSize","addClassName","openCount","windowIsUndefined","IS_REACT_16","cacheOverflow","PortalWrapper","setWrapperClassName","savePortal","removeCurrentContainer","afterClose","switchScrollingEffect","overflowX","_self","prevGetContainer","getOpenCount","hiddenTextarea","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","calculateNodeStyling","useCache","paddingSize","borderSize","sizingStyle","nodeInfo","ResizableTextArea","resizeStatus","autoSize","resizeOnNextFrame","nextFrameActionId","minRows","maxRows","textareaStyles","uiTextNode","_calculateNodeStyling","MIN_SAFE_INTEGER","singleRowHeight","calculateNodeHeight","resizeFrameId","fixFirefoxAutoScroll","currentStart","selectionStart","currentEnd","selectionEnd","setSelectionRange","topCenter","bottomCenter","_props$arrow","arrow","_props$placements","Placements","triggerVisible","setTriggerVisible","mergedVisible","getOverlayElement","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","minOverlayWidthMatchTrigger","getMinOverlayWidthMatchTrigger","childrenProps","childClassName","DropdownButton","_props$icon","EllipsisOutlined","buttonsRender","dropdownProps","_buttonsRender2","leftButtonToRender","rightButtonToRender","dropdownTrigger","overlayClassNameCustomized","triggerActions","RcDropdown","overlayNode","_overlayProps$selecta","_overlayProps$focusab","renderOverlay","getPlacement","removeFromCheckedKeys","filteredKeys","isCheckDisabled","conductCheck","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","iterableToArrayLimit","dPs","IE_PROTO","createDict","iframeDocument","lt","Properties","copyright","cof","ARG","tryGet","PromiseCapability","$$resolve","$$reject","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayBuffer","getPrototype","overArg","objectProto","baseIsArguments","isArguments","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","freeProcess","reIsUint","_warning","_colors","_insertCss","baseIsEqualDeep","bitmask","arrayFilter","stubArray","nativeGetSymbols","getSymbols","symbol","LIBRARY","wksExt","$Symbol","_omit","_devWarning","resetWarned","baseForOwn","castFunction","reIsDeepProp","reIsPlainProp","Checkboard","_react2","_reactcss2","checkboard","renderers","borderRadius","boxShadow","argsTag","mapTag","objectTag","setTag","reIsHostCtor","typedArrayTags","moduleExports","arraySome","predicate","mapToArray","setToArray","arrayProto","funcProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","reIsNative","nativeIsBuffer","nativeKeys","symbolProto","symbolValueOf","Hash","SetCache","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","isIndex","assocIndexOf","isOwn","unmasked","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","isMasked","isPrototype","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getMapData","pairs","LARGE_ARRAY_SIZE","resIndex","matchesSelector","matchesSelectorAndParentsTo","baseNode","addEvent","inputOptions","capture","attachEvent","removeEvent","detachEvent","outerHeight","_shims","outerWidth","offsetXYFromParent","evt","offsetParentRect","scrollLeft","createCSSTransform","controlPos","positionOffset","getTranslation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","targetTouches","getTouchIdentifier","addUserSelectStyles","styleEl","removeUserSelectStyles","removeClassName","getSelection","removeAllRanges","matchesSelectorFunc","unitSuffix","defaultX","defaultY","__importDefault","generate_1","presetPrimaryColors","volcano","geekblue","presetPalettes","primary","containers","styleElements","styleElement","containerId","createStyleElement","styleSheet","RadioButton","radioGroupContext","RadioGroup","initValue","prevPropValue","setPrevPropValue","lastValue","childrenToRender","ponyfill","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","__webpack_modules__","modules","installedModules","__nested_webpack_require_626__","moduleId","HttpPostMessage","windowPostMessageProxy","defaultTargetWindow","addTrackingProperties","trackingProperties","getTrackingProperties","isErrorMessage","targetWindow","put","postMessage","nextKey","__unused_webpack_module","__nested_webpack_require_612__","CommonErrorCodes","BookmarksPlayMode","ExportDataType","QnaMode","PageNavigationPosition","BrowserPrintAdjustmentsMode","AggregateFunction","DataCacheMode","CredentialType","isPercentOfGrandTotal","isColumnAggr","isHierarchyLevelAggr","isHierarchyLevel","isColumn","isMeasure","getFilterType","isBasicFilterWithKeys","isFilterKeyColumnsTarget","HierarchyIdentityFilter","HierarchyFilter","AdvancedFilter","TupleFilter","IdentityFilter","BasicFilterWithKeys","BasicFilter","RelativeTimeFilter","RelativeDateFilter","TopNFilter","IncludeExcludeFilter","NotSupportedFilter","RelativeDateOperators","RelativeDateFilterTimeUnit","FilterType","FiltersLevel","FiltersOperations","MenuLocation","ContrastMode","TokenType","ViewMode","Permissions","SectionVisibility","ReportAlignment","HyperlinkClickBehavior","LayoutType","VisualContainerDisplayMode","BackgroundType","DisplayOption","PageSizeType","TraceType","validateExportDataRequest","validateQnaInterpretInputData","validateLoadQnaConfiguration","validateSaveAsParameters","validateUpdateFiltersRequest","validateFilter","validatePage","validateTileLoad","validateDashboardLoad","validateQuickCreate","validateCreateReport","validatePaginatedReportLoad","validateReportLoad","validateMenuGroupExtension","validateExtension","validateCustomPageSize","validateVisualizationsPane","validateSyncSlicersPane","validateSelectionPane","validatePageNavigationPane","validateFieldsPane","validateFiltersPane","validateBookmarksPane","validatePanes","validateSettings","validateCaptureBookmarkRequest","validateApplyBookmarkStateRequest","validateApplyBookmarkByNameRequest","validateAddBookmarkRequest","validatePlayBookmarkRequest","validateSlicerState","validateSlicer","validateVisualSelector","isIExtensionArray","isIExtensions","isGroupedMenuExtension","isFlatMenuExtension","isReportFiltersArray","isOnLoadFilters","VisualDataRoleKindPreference","VisualDataRoleKind","CommandDisplayOption","SlicerTargetSelector","VisualTypeSelector","VisualSelector","PageSelector","Selector","SortDirection","LegendPosition","TextAlignment","validatePrintSettings","validateZoomLevel","validateCustomTheme","validateCommandsSettings","validateVisualSettings","validateVisualHeader","validator_1","filterType","$schema","schemaUrl","displaySettings","notSupportedTypeName","Unknown","isExclude","IncludeExclude","orderBy","TopN","timeUnitsCount","timeUnitType","includeToday","RelativeDate","RelativeTime","requireSingleSelection","keyValues","numberOfKeys","keyValue","lengthOfArray","Identity","Tuple","logicalOperator","conditions","extractedConditions","Advanced","hierarchyData","Hierarchy","HierarchyIdentity","basicFilter","advancedFilter","aggregationFunction","hierarchy","hierarchyLevel","percentOfGrandTotal","TokenExpired","NotFound","InvalidParameters","LoadReportFailed","NotAuthorized","FailedToLoadModel","Center","TopCenter","BottomCenter","RightCenter","LeftCenter","schema","pageName","visualName","visualType","menuExtension","extensions","normalizeError","keyword","Validators","visualSelectorValidator","slicerValidator","slicerStateValidator","playBookmarkRequestValidator","addBookmarkRequestValidator","applyBookmarkByNameRequestValidator","applyBookmarkStateRequestValidator","captureBookmarkRequestValidator","settingsValidator","reportPanesValidator","bookmarksPaneValidator","filtersPaneValidator","fieldsPaneValidator","pageNavigationPaneValidator","selectionPaneValidator","syncSlicersPaneValidator","visualizationsPaneValidator","customPageSizeValidator","extensionValidator","menuGroupExtensionValidator","reportLoadValidator","paginatedReportLoadValidator","reportCreateValidator","quickCreateValidator","dashboardLoadValidator","tileLoadValidator","pageValidator","filterValidator","updateFiltersRequestValidator","saveAsParametersValidator","loadQnaValidator","qnaInterpretInputDataValidator","exportDataRequestValidator","visualHeaderValidator","visualSettingsValidator","commandsSettingsValidator","customThemeValidator","zoomLevelValidator","printSettingsValidator","__nested_webpack_require_47160__","barsValidator_1","bookmarkValidator_1","commandsSettingsValidator_1","customThemeValidator_1","dashboardLoadValidator_1","datasetBindingValidator_1","exportDataValidator_1","extensionsValidator_1","filtersValidator_1","layoutValidator_1","pageValidator_1","panesValidator_1","qnaValidator_1","reportCreateValidator_1","reportLoadValidator_1","paginatedReportLoadValidator_1","saveAsParametersValidator_1","selectorsValidator_1","settingsValidator_1","slicersValidator_1","tileLoadValidator_1","visualSettingsValidator_1","anyOfValidator_1","fieldForbiddenValidator_1","fieldRequiredValidator_1","mapValidator_1","typeValidator_1","parameterPanelValidator_1","datasetCreateConfigValidator_1","quickCreateValidator_1","printSettingsValidator_1","paginatedReportDatasetBindingValidator_1","AddBookmarkRequestValidator","advancedFilterTypeValidator","EnumValidator","advancedFilterValidator","AdvancedFilterValidator","anyArrayValidator","ArrayValidator","AnyOfValidator","StringValidator","NumberValidator","BooleanValidator","anyFilterValidator","BasicFilterValidator","IncludeExcludeFilterValidator","NotSupportedFilterValidator","RelativeDateFilterValidator","TopNFilterValidator","RelativeTimeFilterValidator","HierarchyFilterValidator","anyValueValidator","actionBarValidator","ActionBarValidator","statusBarValidator","StatusBarValidator","ApplyBookmarkByNameRequestValidator","ApplyBookmarkStateRequestValidator","applyBookmarkValidator","backgroundValidator","basicFilterTypeValidator","basicFilterValidator","booleanArrayValidator","BooleanArrayValidator","booleanValidator","BookmarksPaneValidator","captureBookmarkOptionsValidator","CaptureBookmarkOptionsValidator","CaptureBookmarkRequestValidator","columnSchemaArrayValidator","ColumnSchemaValidator","commandDisplayOptionValidator","commandExtensionSelectorValidator","VisualSelectorValidator","VisualTypeSelectorValidator","commandExtensionArrayValidator","CommandExtensionValidator","commandExtensionValidator","commandsSettingsArrayValidator","CommandsSettingsValidator","conditionItemValidator","ConditionItemValidator","contrastModeValidator","credentialDetailsValidator","MapValidator","credentialsValidator","CredentialsValidator","credentialTypeValidator","customLayoutDisplayOptionValidator","customLayoutValidator","CustomLayoutValidator","CustomPageSizeValidator","CustomThemeValidator","DashboardLoadValidator","dataCacheModeValidator","datasetBindingValidator","DatasetBindingValidator","datasetCreateConfigValidator","DatasetCreateConfigValidator","datasourceConnectionConfigValidator","DatasourceConnectionConfigValidator","displayStateModeValidator","displayStateValidator","DisplayStateValidator","ExportDataRequestValidator","extensionArrayValidator","ExtensionValidator","extensionsValidator","ExtensionsValidator","extensionPointsValidator","ExtensionPointsValidator","fieldForbiddenValidator","FieldForbiddenValidator","fieldRequiredValidator","FieldRequiredValidator","FieldsPaneValidator","filterColumnTargetValidator","FilterColumnTargetValidator","filterDisplaySettingsValidator","FilterDisplaySettingsValidator","filterConditionsValidator","filterHierarchyTargetValidator","FilterHierarchyTargetValidator","filterMeasureTargetValidator","FilterMeasureTargetValidator","filterTargetValidator","FilterKeyColumnsTargetValidator","FilterKeyHierarchyTargetValidator","FilterValidator","filterTypeValidator","filtersArrayValidator","filtersOperationsUpdateValidator","filtersOperationsRemoveAllValidator","FiltersPaneValidator","hyperlinkClickBehaviorValidator","includeExcludeFilterValidator","includeExludeFilterTypeValidator","includeExcludeFilterValuesValidator","IncludeExcludePointValueValidator","hierarchyFilterTypeValidator","hierarchyFilterValuesValidator","HierarchyFilterNodeValidator","layoutTypeValidator","LoadQnaValidator","menuExtensionValidator","FlatMenuExtensionValidator","GroupedMenuExtensionValidator","menuGroupExtensionArrayValidator","MenuGroupExtensionValidator","menuLocationValidator","notSupportedFilterTypeValidator","notSupportedFilterValidator","numberArrayValidator","NumberArrayValidator","numberValidator","onLoadFiltersBaseValidator","OnLoadFiltersBaseValidator","OnLoadFiltersBaseRemoveOperationValidator","pageLayoutValidator","VisualLayoutValidator","PageNavigationPaneValidator","pageNavigationPositionValidator","pageSizeTypeValidator","pageSizeValidator","PageSizeValidator","PageValidator","pageViewFieldValidator","PageViewFieldValidator","pagesLayoutValidator","PageLayoutValidator","paginatedReportCommandsValidator","PaginatedReportCommandsValidator","paginatedReportDatasetBindingArrayValidator","PaginatedReportDatasetBindingValidator","PaginatedReportLoadValidator","paginatedReportsettingsValidator","PaginatedReportSettingsValidator","parameterValuesArrayValidator","ReportParameterFieldsValidator","parametersPanelValidator","ParametersPanelValidator","permissionsValidator","PlayBookmarkRequestValidator","PrintSettingsValidator","QnaInterpretInputDataValidator","qnaPanesValidator","QnaPanesValidator","qnaSettingValidator","QnaSettingsValidator","QuickCreateValidator","rawDataValidator","relativeDateFilterOperatorValidator","relativeDateFilterTimeUnitTypeValidator","relativeDateFilterTypeValidator","relativeDateFilterValidator","relativeDateTimeFilterTypeValidator","relativeDateTimeFilterUnitTypeValidator","relativeTimeFilterTimeUnitTypeValidator","relativeTimeFilterTypeValidator","relativeTimeFilterValidator","reportBarsValidator","ReportBarsValidator","ReportCreateValidator","reportLoadFiltersValidator","OnLoadFiltersValidator","ReportLoadValidator","ReportPanesValidator","SaveAsParametersValidator","SelectionPaneValidator","SettingsValidator","singleCommandSettingsValidator","SingleCommandSettingsValidator","slicerSelectorValidator","SlicerTargetSelectorValidator","SlicerStateValidator","slicerTargetValidator","SlicerValidator","stringArrayValidator","StringArrayValidator","stringValidator","SyncSlicersPaneValidator","tableDataArrayValidator","TableDataValidator","tableSchemaListValidator","TableSchemaValidator","TileLoadValidator","tokenTypeValidator","topNFilterTypeValidator","topNFilterValidator","UpdateFiltersRequestValidator","RemoveFiltersRequestValidator","viewModeValidator","visualCommandSelectorValidator","visualHeaderSelectorValidator","visualHeaderSettingsValidator","VisualHeaderSettingsValidator","VisualHeaderValidator","visualHeadersValidator","VisualizationsPaneValidator","visualLayoutValidator","VisualSettingsValidator","visualTypeSelectorValidator","RangeValidator","__nested_webpack_require_65027__","multipleFieldsValidator_1","validators","MultipleFieldsValidator","ObjectValidator","fieldValidatorsPairs","fieldsPath","fieldValidators","_c","SchemaValidator","ValueValidator","TypeValidator","itemValidators","expectedType","possibleValues","schemaValue","__nested_webpack_require_80906__","__nested_webpack_require_89382__","__nested_webpack_require_96415__","__nested_webpack_require_98569__","__nested_webpack_require_101568__","__nested_webpack_require_104264__","__nested_webpack_require_106608__","ExtensionItemValidator","MenuExtensionBaseValidator","__nested_webpack_require_119099__","RelativeDateTimeFilterValidator","FilterValidatorBase","__nested_webpack_require_154405__","__nested_webpack_require_160884__","__nested_webpack_require_166324__","__nested_webpack_require_178070__","__nested_webpack_require_183781__","__nested_webpack_require_186639__","__nested_webpack_require_190760__","__nested_webpack_require_195256__","__nested_webpack_require_197537__","typeValidator_2","__nested_webpack_require_202995__","__nested_webpack_require_208991__","__nested_webpack_require_212421__","__nested_webpack_require_215693__","__nested_webpack_require_223102__","keyValidators","valueValidators","__nested_webpack_require_225786__","__nested_webpack_require_228154__","__nested_webpack_require_238209__","__nested_webpack_require_241082__","__nested_webpack_require_243275__","__webpack_module_cache__","__nested_webpack_require_246021__","cachedModule","__nested_webpack_require_617__","__nested_webpack_require_1897__","RouteRecognizer","getRouteRecognizer","patchRouteRecognizer","postRouteRecognizer","putRouteRecognizer","deleteRouteRecognizer","registerHandler","routeRecognizer","Response","internalHandler","matchingRoutes","recognize","queryParams","addHandler","__nested_webpack_require_6218__","__WEBPACK_AMD_DEFINE_RESULT__","$$route$recognizer$dsl$$Target","delegate","$$route$recognizer$dsl$$Matcher","routes","$$route$recognizer$dsl$$generateMatch","startingPath","nestedCallback","fullPath","$$route$recognizer$dsl$$addRoute","routeArray","willAddRoute","addChild","contextEntered","$$route$recognizer$$escapeRegex","$$route$recognizer$$StaticSegment","$$route$recognizer$$DynamicSegment","$$route$recognizer$$StarSegment","$$route$recognizer$$EpsilonSegment","$$route$recognizer$$parse","specificity","$$route$recognizer$$State","charSpec","nextStates","charSpecs","$$route$recognizer$$recognizeChar","eachChar","invalidChars","validChars","isEqual","returned","$$route$recognizer$$oCreate","$$route$recognizer$$RecognizeResults","$$route$recognizer$$decodeQueryParamPart","$$route$recognizer$$RouteRecognizer","rootState","allSegments","isEmpty","handlersFor","hasRoute","generateQueryString","pair","arrayPair","parseQueryString","pathLen","queryStart","isSlashDropped","solutions","$$route$recognizer$$sortSolutions","captures","currentCapture","$$route$recognizer$$findHandler","addRouteCallback","$$route$recognizer$dsl$$eachRoute","baseRoute","$$route$recognizer$$default","__webpack_require__","AdvancedFilterBuilder","powerbi_models_1","and","addCondition","build","FilterBuilder","BasicFilterBuilder","isRequireSingleSelection","in","notIn","withTargetObject","withColumnTarget","tableName","columnName","withMeasureTarget","withHierarchyLevelTarget","withColumnAggregation","withHierarchyLevelAggregationTarget","RelativeTimeFilterBuilder","RelativeDateFilterBuilder","TopNFilterBuilder","basicFilterBuilder_1","advancedFilterBuilder_1","topNFilterBuilder_1","relativeDateFilterBuilder_1","relativeTimeFilterBuilder_1","isTodayIncluded","inLast","InLast","inThis","InThis","inNext","InNext","orderByTarget","orderByTargetValue","BookmarksManager","util_1","errors_1","service","getBookmarks","isRDLEmbed","embedUrl","APINotSupportedForRDLError","hpm","bookmarkName","play","playMode","playBookmarkRequest","applyState","Create","embed_1","phasedRender","isBootstrap","getId","datasetId","createConfig","findIdFromEmbedUrl","configChanged","accessToken","groupId","settings","tokenType","getDefaultEmbedUrlEndpoint","isSaved","isSavedInternal","datasetIdMatch","sdkSessionId","getSdkSessionId","eventHooks","accessTokenProvider","tokenProviderSupplied","Embed","Dashboard","loadPath","phasedLoadPath","allowedEvents","dashboardId","dashboardIdMatch","dashboardIdAttribute","validatePageView","pageView","typeAttribute","models","sdkConfig","autoAuthInEmbedUrl","EmbedUrlNotSupported","eventHandlers","iframeLoaded","embedtype","commands","populateConfig","isCreate","setIframe","save","saveAsParameters","getCorrelationId","timeNow","bootstrapped","sdkVersion","lastLoadRequest","getTimeDiffInMilliseconds","fakeEvent","eventHandler","eventHandlerToRemove","reload","setAccessToken","embedType","accessTokenAttribute","getAccessToken","globalAccessToken","_g","_h","bootstrapConfig","getEmbedUrl","getGroupId","addLocaleToEmbedUrl","initialLayoutType","layoutType","Master","extensionsArray","extension","command","validateEventHooks","applicationContextProvider","addParamToUrl","Aad","localeSettings","formatLocale","embedUrlAttribute","getDefaultEmbedUrl","hostname","defaultEmbedHostName","endpoint","nameAttribute","createRandomString","findGroupIdFromEmbedUrl","fullscreen","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","isFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","isLoad","iframeContent","validateEmbedUrl","invalidEmbedUrlErrorMessage","getNumberOfComponents","maxFrontLoadTimes","frontLoadHandler","frontLoadSendConfig","setComponentTitle","setComponentTabIndex","removeComponentTabIndex","_tabIndex","groupIdMatch","routerFactory","wpmpFactory","hpmFactory","window_post_message_proxy_1","http_post_message_1","powerbi_router_1","config_1","wpmp","sdkType","sdkWrapperVersion","logMessages","eventSourceOverrideWindow","WindowPostMessageProxy","processTrackingProperties","suppressWarnings","Page","visualDescriptor_1","report","isActivePage","defaultSize","defaultDisplayOption","mobileSize","wallpaper","getSmartNarrativeInsights","getFilters","updateFilters","operation","updateFiltersRequest","filtersOperation","removeFilters","RemoveAll","setFilters","setDisplayName","getVisuals","visual","VisualDescriptor","getVisualByName","setVisualDisplayState","displayState","moveVisual","resizeVisual","resizePage","pageSizeType","resizeActivePage","getSlicers","hasLayout","layoutTypeEnum","Qna","setQuestion","question","qnaData","_isBootstrap","QuickCreate","router","req","_res","invokeSDKHook","__spreadArray","pack","Report","page_1","bookmarksManager_1","bookmarksManager","reportId","reportIdMatch","addPage","deletePage","renamePage","reportIdAttribute","getPages","getPageByName","getActivePage","activePage","setPage","updateSettings","customLayout","extensionElement","isMobileSettings","filterPaneEnabledAttribute","navContentPaneEnabledAttribute","elementAttrSettings","filterPaneEnabled","navContentPaneEnabled","switchMode","viewMode","newMode","viewModeToString","applyThemeInternal","resetTheme","getTheme","resetPersistentFilters","savePersistentFilters","arePersistentFiltersApplied","removeContextMenuCommand","commandName","contextMenuTitle","commandCopy","indexOfCommand","newSetting","findCommandMenuIndex","visualContextMenu","addContextMenuCommand","commandTitle","menuLocation","newCommands","createMenuCommand","removeOptionsMenuCommand","optionsMenuTitle","visualOptionsMenu","addOptionsMenuCommand","commandIcon","visualLayout","newSettings","validateVisual","buildLayoutSettingsObject","Custom","switchLayout","isInitialMobileSettings","isPassedMobileSettings","menuTitle","newCommandObj","activeMenuCommand","pagesLayout","visualsLayout","Edit","View","MobileLandscape","MobilePortrait","getZoom","setZoom","zoomLevel","closeAllOverlays","error_1","clearSelectedVisuals","clearPopOutState","error_2","Service","report_1","create_1","dashboard_1","tile_1","qna_1","visual_1","quickCreate_1","registeredComponents","wpmpName","uniqueSessionId","generateUUID","handleEvent","embeds","autoEmbedOnContentLoaded","enableAutoEmbed","createReport","powerBiElement","powerBiEmbed","addOrOverwriteEmbed","quickCreate","embed","embedInternal","bootstrap","outerHTML","embedExisting","embedNew","getSDKVersion","componentType","scrubbedConfig","createEmbedComponent","embedComponent","registeredComponent","registeredComponentType","_event","embedElement","handleTileEvents","hook","raiseCustomEvent","preload","setSdkInfo","embedComponentFactory","routerEventUrls","Tile","Visual","onError","tileId","embedConfig","tileIdMatch","getRandomValue","allowedPowerBiHostsRegex","allowedPowerBiHostsSovRegex","cryptoObj","msCrypto","randomValueArray","Uint32Array","getRandomValues","customEvent","CustomEvent","bubbles","createEvent","initCustomEvent","dispatchEvent","performance","paramName","parameterPrefix","defaultLayout","Visible","displayOption","FitToPage","GetPagesNotSupportedError","_pageName","SetPageNotSupportedError","RenderNotSupportedError","getVisualDescriptor","embeddedVisuals","embeddedVisual","pageVisual","detailedMessage","filtersLevel","getFiltersLevelUrl","exportData","exportDataType","exportDataRequestBody","setSlicerState","getSlicerState","defaultAddTrackingProperties","defaultGetTrackingProperties","defaultIsErrorMessage","receiveWindow","pendingRequestPromises","windowMessageHandler","onMessageReceived","messagePropertyName","createDeferred","removeHandler","sendResponse","__webpack_exports__","FilterBuilders_1","powerbi","powerBISDKGlobalServiceInstanceName","generateConfig","getNow","moment","getWeekDay","getHour","getMinute","getSecond","addYear","addMonth","addDate","setYear","setHour","setMinute","setSecond","date1","date2","isValidate","getWeekFirstDay","getShortWeekDays","getShortMonths","_format","fallbackFormatList","formatText","matchFormat","matchText","_date","PanelContext","HIDDEN_STYLE","_ref$prevIcon","_ref$nextIcon","_ref$superPrevIcon","superPrevIcon","_ref$superNextIcon","superNextIcon","onSuperPrev","onSuperNext","onPrev","onNext","hideNextBtn","hidePrevBtn","TimeHeader","hideHeader","headerPrefixCls","scrollIds","perTick","createKeyDownHandler","onLeftRight","onCtrlLeftRight","onUpDown","onPageUpDown","getDefaultFormat","picker","showTime","use12Hours","mergedFormat","getInputSize","globalClickFunc","clickCallbacks","PickerModeMap","elementsContains","TimeUnitColumn","hideDisabledOptions","cellPrefixCls","ulRef","liRefs","li","offsetTop","leftPad","getDataOrAriaProps","retProps","updateValues","generateUnits","disabledUnits","TimeBody","operationRef","activeColumnIndex","showHour","showMinute","showSecond","_props$hourStep","hourStep","_props$minuteStep","minuteStep","_props$secondStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","contentPrefixCls","columnPrefixCls","isNewPM","newHour","newMinute","newSecond","mergedHour","mergedMinute","mergedSecond","addColumnNode","columnValue","onColumnSelect","valueIndex","unitLen","PMIndex","TimePanel","_props$format","_props$use12Hours","panelPrefixCls","bodyOperationRef","setActiveColumnIndex","columnsCount","bool","isNullEqual","value1","value2","isSameYear","getQuarter","isSameQuarter","quarter1","quarter2","isSameMonth","month1","month2","isSameDate","isSameWeek","time1","time2","isSameTime","isInRange","getClosingViewDate","viewDate","RangeContext","useCellClassName","rangedValue","hoverRangedValue","isInView","isSameCell","offsetCell","nextDate","rangeStart","rangeEnd","hoverStart","hoverEnd","isRangeHovered","isRangeStart","isRangeEnd","isHoverStart","isHoverEnd","isHoverEdgeStart","isHoverEdgeEnd","PanelBody","disabledDate","rowNum","colNum","prefixColumn","rowClassName","baseDate","getCellClassName","getCellText","getCellNode","getCellDate","titleCell","headerCells","onDateMouseEnter","onDateMouseLeave","rowStartDate","DateBody","rowCount","dateRender","weekFirstDay","monthStartDate","startDateWeekDay","alignStartDate","getWeekStartDate","weekDaysLocale","shortWeekDays","DateHeader","onNextMonth","onPrevMonth","onNextYear","onPrevYear","onYearClick","onMonthClick","monthsLocale","shortMonths","yearNode","monthNode","monthFormat","monthYearNodes","DatePanel","_props$panelName","panelName","keyboardConfig","onViewDateChange","onPanelChange","_onSelect","onYearChange","onMonthChange","ACTIVE_PANEL","DatetimePanel","disabledTime","activePanel","setActivePanel","dateOperationRef","timeOperationRef","timeProps","nextActivePanel","getNextActive","onInternalSelect","selectedDate","disabledTimes","defaultDate","WeekPanel","rowPrefixCls","MonthHeader","MonthBody","monthCellRender","baseMonth","MonthPanel","QuarterHeader","QuarterBody","baseQuarter","quarterFormat","QuarterPanel","YearHeader","onPrevDecade","onNextDecade","onDecadeClick","yearNumber","startYear","YEAR_DECADE_COUNT","endYear","YearBody","yearPrefixCls","baseYear","YEAR_COL_COUNT","currentYearNumber","YearPanel","sourceMode","onDecadeChange","DecadeHeader","onPrevDecades","onNextDecades","DECADE_DISTANCE_COUNT","DecadeBody","DECADE_UNIT_DIFF_DES","DECADE_UNIT_DIFF","decadeYearNumber","startDecadeYear","endDecadeYear","baseDecadeYear","DECADE_COL_COUNT","startDecadeNumber","endDecadeNumber","DecadePanel","onDecadesChange","getExtraFooter","renderExtraFooter","presetNode","okNode","_ref$rangeList","rangeList","_ref$components","needConfirmButton","onNow","onOk","okDisabled","rangeItem","PickerPanel","panelNode","pickerValue","defaultPickerValue","_props$picker","_props$tabIndex","showToday","onPickerValueChange","_onOk","panelContext","panelDivRef","panelRef","onContextSelect","hideRanges","defaultOpenValue","inRange","panelPosition","initRef","_useMergedState","useMergedState","_useMergedState2","_useMergedState3","_useMergedState4","setInnerViewDate","setViewDate","getInternalNextMode","nextMode","getNextMode","_useMergedState5","_useMergedState6","mergedMode","setInnerMode","setSourceMode","triggerSelect","forceTriggerSelect","onInternalKeyDown","extraFooter","rangesNode","todayNode","pickerProps","viewValue","todayCls","BUILT_IN_PLACEMENTS","PickerTrigger","popupElement","dropdownAlign","dropdownPrefixCls","usePickerInput","isClickOutside","triggerOpen","forwardKeyDown","blurToCancel","onCancel","_onFocus","_onBlur","typing","setTyping","_React$useState3","setFocused","preventBlurRef","inputProps","queueFunc","useTextValueMapping","valueTexts","onTextChange","setInnerText","valueTextsRef","resetText","valText","useValueTexts","formatList","firstValueText","fullValueTexts","formatStr","InnerPicker","inputReadOnly","pickerRef","_props$autoComplete","inputRef","inputDivRef","selectedValue","setSelectedValue","postOpen","newOpen","mergedOpen","triggerInnerOpen","_useValueTexts","_useValueTexts2","_useTextValueMapping","newText","inputDate","_useTextValueMapping2","triggerTextChange","triggerChange","preventChangeEvent","_usePickerInput","_usePickerInput2","_usePickerInput2$","clearNode","panelProps","panel","Picker","getStartEndDistance","startNext","compareFunc","decade1","decade2","isSameDecade","useRangeViewDates","defaultDates","defaultViewDates","setDefaultViewDates","viewDates","setInternalViewDates","getRangeViewDate","newViewDates","anotherIndex","reorderValues","canValueTrigger","allowEmpty","InnerRangePicker","_props$separator","_disabledTime","ranges","onCalendarChange","activePickerIndex","startInputDivRef","endInputDivRef","separatorRef","startInputRef","endInputRef","mergedActivePickerIndex","setMergedActivePickerIndex","mergedDisabled","_useRangeViewDates","_useRangeViewDates2","getViewDate","postValues","rangeHoverValue","setRangeHoverValue","setHoverRangedValue","_useMergedState7","_useMergedState8","mergedModes","setInnerModes","_triggerOpen","triggerModesChange","modes","_useRangeDisabled","dateYear","startWeek","_startYear","_dateYear","startQuarter","useRangeDisabled","_useRangeDisabled2","disabledStartDate","disabledEndDate","_useMergedState9","_useMergedState10","startOpen","endOpen","_React$useState5","_React$useState6","popupMinWidth","setPopupMinWidth","_config$forceInput","forceInput","startStr","endStr","canStartValueTrigger","canEndValueTrigger","canTrigger","missingValueIndex","sharedTextHooksProps","startValueTexts","firstStartValueText","_useValueTexts3","_useValueTexts4","endValueTexts","firstEndValueText","_onTextChange","startText","triggerStartTextChange","resetStartText","_useTextValueMapping3","_useTextValueMapping4","endText","triggerEndTextChange","resetEndText","getSharedInputHookProps","startInputProps","startFocused","startTyping","_usePickerInput3","_usePickerInput4","endInputProps","_usePickerInput4$","endFocused","endTyping","renderPanel","panelHoverRangedValue","panelShowTime","timeDefaultValues","panelDateRender","arrowLeft","panelLeft","arrowPositionStyle","rangePanel","panels","nextViewDate","showDoublePanel","leftPanel","newViewDate","rightPanel","renderPanels","inputSharedProps","activeBarLeft","activeBarWidth","activeBarPositionStyle","RangePicker","customizePlaceholder","getRangePlaceholder","generatePicker","getPicker","getDefaultLocale","renderPicker","customizeGetPopupContainer","_a$bordered","additionalProps","additionalOverrideProps","mergedPicker","getTimeProps","RCPicker","ClockCircleOutlined","CalendarOutlined","Components","WeekPicker","MonthPicker","YearPicker","generateRangePicker","customGetPopupContainer","RCRangePicker","SwapRightOutlined","firstFormat","showTimeObj","_generateSinglePicker","generateSinglePicker","MergedDatePicker","momentGenerateConfig","useRaf","rafRef","removedRef","_ref$tab","tabBarGutter","tabPosition","removeAriaLabel","onRemove","tabPrefix","nodeStyle","removable","onRemoveTab","onEdit","DEFAULT_SIZE","showAdd","addAriaLabel","addIcon","tabs","mobile","_ref$moreIcon","moreIcon","moreTransitionName","onTabClick","_useState","setOpen","_useState3","_useState4","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","selectOffset","enabledTabs","selectedIndex","moreStyle","moreNode","AddButton","SPEED_OFF_MULTIPLE","useSyncState","stateRef","TabContext","animated","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","cacheRefs","useRefs","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","_useState5","_useState6","wrapperWidth","setWrapperWidth","_useState7","_useState8","wrapperHeight","setWrapperHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","lastMixedWheelRef","lastWheelTimestampRef","lastWheelPreventRef","lastWheelDirectionRef","touchEventsRef","_e$touches$","touches","screenX","screenY","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","onTouchEnd","distanceX","distanceY","absX","absY","currentX","currentY","onWheel","absMixed","onProxyTouchMove","onProxyTouchEnd","useTouchMove","doMove","_alignInRange","_alignInRange2","needPrevent","_useVisibleRange","containerSize","transformSize","basicSize","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","getAdditionalSpaceSize","_innerAddButtonRef$cu","_operationsRef$curren","addBtnSize","optionsSize","tabNodes","TabNode","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_tabListRef$current","_tabListRef$current2","newSizes","btnNode","offsetLeft","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState11","_useState12","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","inkBar","OperationNode","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","tabKey","TabPane","visited","setVisited","ForwardTabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","parseTabList","setMobile","agent","mergedActiveKey","setMergedActiveKey","_tabs$newActiveIndex","newActiveIndex","mergedId","setMergedId","mergedTabPosition","tabNavBar","sharedProps","tabNavBarProps","TabNavList","Tabs","_onEdit","hideAdd","editType","PlusOutlined","RcTabs","MotionTreeNode","motionNodes","motionType","onOriginMotionEnd","treeNodeRequiredProps","motionedRef","_treeNode$data","treeNodeProps","TreeNode","RefMotionTreeNode","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","NodeList","dragging","onActiveChange","onListChangeStart","onListChangeEnd","disableVirtual","setDisableVirtual","prevExpandedKeys","setPrevExpandedKeys","setPrevData","_React$useState7","_React$useState8","transitionData","setTransitionData","_React$useState9","_React$useState10","transitionRange","setTransitionRange","_React$useState11","_React$useState12","setMotionType","diffExpanded","prevLen","nextLen","findExpandedKeys","keyIndex","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","mergedData","getAccessibilityPath","VirtualList","Tree","treeData","flattenNodes","listChanging","dragNode","newExpandedKeys","setExpandedKeys","delayedDragEnterLogic","cleanDragState","_this$state3$dragNode","posArr","dropResult","dropToGap","targetSelected","selectedNodes","setUncontrolledState","checkedObj","oriCheckedKeys","oriHalfCheckedKeys","checkStrictly","eventObj","checkedNodes","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","keySet","_conductCheck2","checkedNodesPositions","_ref$loadedKeys","_ref$loadingKeys","onLoad","currentLoadedKeys","currentLoadingKeys","newLoadedKeys","newLoadingKeys","onRightClick","getTreeNodeRequiredProps","targetExpanded","loadPromise","newFlattenTreeData","newActiveKey","getActiveItem","_this$state7","offsetActiveKey","_this$state8","_this$state9","expandable","eventNode","atomic","forceState","needSync","allPassed","_this$state10","showLine","_this$props6$tabIndex","entitiesMap","checkedKeyEntity","autoExpandParent","defaultExpandParent","defaultExpandAll","cloneKeyEntities","defaultExpandedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","redefine","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","toIObject","toInteger","classof","getIteratorMethod","_values2","_promise2","_extends3","_regenerator2","_asyncToGenerator3","_classCallCheck3","_createClass3","_configurationValidation","_oktaAuthJs2","_packageInfo2","testing","disableHttpsCheck","authConfig","buildConfigObject","assertIssuer","issuer","assertClientId","clientId","assertRedirectUri","redirectUri","onSessionExpired","login","_oktaAuth","_pending","handleAuthentication","updateAuthState","clearAuthState","emitAuthState","getAuthState","getUser","getIdToken","logout","_convertLogoutPathToOptions","redirect","_subscriberCount","tokenManager","parseFromUrl","idToken","isAuthenticated","getFromUri","DEFAULT_STATE","_authState","authStateUpdate","t1","claims","getUserInfo","_callee4","_context4","_ref6","_callee5","_context5","_ref7","_callee6","fromUri","additionalParams","_context6","setFromUri","onAuthRequired","postLogoutRedirectUri","_ref8","_callee7","_context7","signOut","_ref9","_callee8","_context8","scopes","getWithRedirect","localStorage","setItem","getItem","subscriberId","isPending","SPECIES","defer","channel","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","port2","port1","onmessage","importScripts","newPromiseCapability","promiseCapability","baseFor","createBaseFor","isDeep","cloneArrayBuffer","typedArray","baseCreate","objectCtorString","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","auth","username","Authorization","baseURL","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","statusText","ontimeout","timeoutErrorMessage","xsrfValue","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootRecord","exception","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","objectWithoutPropertiesLoose","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","named","matchers","hsla","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","boundAlpha","inputToRGB","_originalInput","_roundA","_gradientType","gradientType","_ok","_tc_id","rgbToHsv","allow3Char","rgbaToArgbHex","convertDecimalToHex","desaturate","clamp01","greyscale","darken","complement","triad","tetrad","splitcomplement","analogous","monochromatic","modification","isDark","getBrightness","getOriginalInput","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","readability","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","colorList","includeFallbackColors","bestColor","bestScore","burntsienna","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","define","cacheHas","arrStacked","othStacked","_iterator2","_symbol2","hiddenKeys","pIE","gOPD","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","mdb","sbcs_encode","EE","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","dash","o64","isstr","hascp","_CloseCircleFilled","_type","_reactNode","_en_US","_en_US2","_en_US3","_en_US4","_raf","identity","srcValue","castPath","toKey","stringToPath","baseEach","createBaseEach","getSymbolsIn","ColorWrap","_debounce2","_color2","ColorPicker","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","PureComponent","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","darkText","lightText","darkIcons","lightIcons","detector","isAnyIeVersion","undef","isLegacyOpera","_calculateUtils","_GridItem","_ReactGridLayoutPropTypes","isFirefox","ReactGridLayout","activeDrag","mounted","oldDragItem","oldLayout","oldResizeItem","droppingDOMNode","droppingItem","containerPadding","_e$nativeEvent","layerX","layerY","droppingPosition","_this$state$droppingP","positionParams","containerWidth","calculatedPosition","calcXY","dragEnterCounter","removeDroppingPlaceholder","newLayoutBase","propsLayout","onLayoutMaybeChanged","nbRow","containerPaddingY","onDrag","onDragStop","onLayoutChange","onResizeStart","hasCollisions","leastX","leastY","onResizeStop","useCSSTransforms","transformScale","isDroppingItem","draggableCancel","draggableHandle","usePercentages","isDroppable","containerHeight","processGridItem","calcGridColWidth","calcGridItemPosition","colWidth","resizing","calcWH","_require","Draggable","DraggableCore","getBoundPosition","cloneBounds","boundNode","ownerWindow","boundNodeStyle","_domFns","snapToGrid","pendingX","pendingY","canDragX","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","createDraggableData","coreData","_propTypes","_reactDraggable","Resizable","slackW","slackH","lockAspectRatio","aspectRatio","runConstraints","minConstraints","maxConstraints","_ratio","resizeHandler","handlerName","widthChanged","heightChanged","_this2$runConstraints","persist","renderResizeHandle","resizeHandle","draggableOpts","resizeHandles","handleSize","onStop","onStart","arrayOf","oneOf","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","findOrGenerateResponsiveLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","isJsons","isArrays","jsonsHeaders","jsons2arrays","jsons","headerLabels","headerKeys","getHeaderValue","foundValue","elementOrEmpty","joiner","enclosingCharacter","arrays2csv","jsons2csv","string2csv","toCSV","buildURI","uFEFF","dataURI","PropsNotForwarded","oneOfType","asyncOnClick","FUNC_ERROR_TEXT","wrapFlags","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","numberTag","regexpTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsOctal","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","isRegExp","nodeIsSet","arrayAggregator","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayReduce","initAccum","arrayReduceRight","asciiSize","baseProperty","baseFindKey","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTrim","trimmedEndIndex","baseValues","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","replaceHolders","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","pick","idCounter","oldDash","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeIsFinite","nativeJoin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","metaMap","realNames","symbolToString","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","baseAggregator","baseAssign","copyObject","baseAt","lower","upper","baseClone","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","keysIn","baseAssignIn","copySymbols","dataView","cloneDataView","cloneTypedArray","cloneRegExp","initCloneByTag","getAllKeysIn","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","computed","valuesIndex","templateSettings","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFilter","baseFlatten","isFlattenable","baseForRight","baseFunctions","baseGet","baseGt","baseHas","baseHasIn","baseIntersection","caches","maxLength","baseInvoke","objStacked","baseIsMatch","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseMatchesProperty","baseMatches","nativeKeysIn","isProto","baseLt","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","mergeFunc","safeGet","isTyped","isArrayLikeObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","comparer","baseSortBy","objCriteria","criteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","MAX_ARRAY_LENGTH","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castRest","castSlice","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","assigner","guard","isIterateeCall","createCaseFirst","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","prereq","thru","getFuncName","funcName","getData","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","newHolders","createRecurry","reorder","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","createRange","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","newData","setWrapToString","createRound","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","otherFunc","hasPath","hasFunc","isMaskable","otherArgs","shortOut","reference","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","rand","memoize","memoizeCapped","quote","subString","differenceBy","differenceWith","findLastIndex","mapped","intersectionBy","intersectionWith","pullAll","pullAt","union","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zipWith","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","before","bindKey","WRAP_BIND_FLAG","resolver","memoized","Cache","negate","overArgs","transforms","funcsLength","partialRight","rearg","gt","gte","isError","isInteger","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","CLONE_DEEP_FLAG","basePick","toPairs","toPairsIn","camelCase","upperFirst","kebabCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","multiply","multiplier","multiplicand","minuend","subtrahend","castArray","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","fromPairs","functions","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","sortedUniq","sortedUniqBy","spread","tail","take","takeRight","takeRightWhile","takeWhile","tap","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","endsWith","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","baseInRange","isBoolean","isElement","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","padEnd","padStart","radix","floating","reduceRight","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","isEscaping","isEvaluating","imports","importsKeys","importsValues","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","omission","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","getView","iterLength","takeCount","iterIndex","commit","wrapped","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","playing","volume","muted","playbackRate","progressInterval","playsinline","pip","stopOnUnmount","light","previewTabIndex","playerVars","embedOptions","onUnstarted","appId","playerId","playerOptions","tracks","forceVideo","forceAudio","forceHLS","forceDASH","forceFLV","hlsOptions","hlsVersion","dashVersion","flvVersion","customControls","onReady","onPlay","onPause","onBuffer","onBufferEnd","onEnded","onDuration","onSeek","onProgress","onClickPreview","onEnablePIP","onDisablePIP","buying","liking","sharing","show_comments","show_playcount","showinfo","iv_load_policy","modestbranding","api","autopause","byline","portrait","hide_cover","symbolObservablePonyfill","createThunkMiddleware","extraArgument","thunk","withExtraArgument","defaultTop","messageInstance","defaultDuration","iconMap","InfoCircleFilled","CheckCircleFilled","ExclamationCircleFilled","IconComponent","messageClass","closePromise","getMessageInstance","filled","isArgsProps","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","original","AsyncValidationError","asyncMap","objArr","pending","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","oe","fullField","deepMerge","ruleType","custom","_pattern","dateObject","newMessages","cloned","Schema","oc","doIt","fieldsSchema","fieldSchema","addFullfield","errs","finalErrors","getValidationMethod","messageIndex","INTERNAL_PROPS_MARK","HTMLAnchorElement","autoBom","_SearchOutlined","_LoadingOutlined","_button","Search","customOnChange","customOnSearch","renderLoading","enterButton","renderAddonAfter","btnClassName","enterButtonAsElement","isAntdButton","renderSearch","customizeInputPrefixCls","inputPrefixCls","getClassName","inputClassName","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","clip","webkitUserSelect","MozUserSelect","msUserSelect","clipboardData","clearData","onCopy","selectNodeContents","addRange","copyKey","removeRange","forced","noTargetGet","real","withoutSetter","globalThis","stateHandle","interactionHandle","codeChallenge","codeChallengeMethod","baseUrl","makeIdxState","introspect","interact","client","HttpClient","LATEST_SUPPORTED_IDX_API_VERSION","facade","enforce","getterFor","stopped","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","filterOut","ActiveXObject","parentWindow","v8","interceptors","use","userAgentHeaders","Arguments","UNSUPPORTED_Y","BROKEN_CARET","sticky","multiline","fetch","DOMException","bodyUsed","readAsArrayBuffer","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","formData","credentials","signal","referrer","aborted","Headers","Request","return","NATIVE","POLYFILL","AggregateError","inspectSource","allSettled","reason","codeAt","BUGGY_SAFARI_ITERATORS","searchParams","updateURL","updateSearchParams","getAll","et","QObject","nt","findChild","ut","st","keyFor","useSetter","useSimple","parseIdxResponse","remediations","successWithInteractionCode","proceed","neededToProceed","rawIdxState","hasInteractionCode","interactionCode","toPersist","actionDefinition","defaultParamsForAction","immutableParamsForAction","accept","accepts","divideActionParamsByMutability","defaultParams","neededParams","immutableParams","finally","errorSummary","responseJSON","expires","cookie","withConverter","_cancelHandlers","_isPending","_isCanceled","_rejectOnCancel","_promise","_reject","shouldReject","CancelError","EventEmitter","mget","mset","del","getTtl","getStats","flushAll","flushStats","_checkData","_check","_isInvalidKey","_wrap","_getValLength","_error","_initErrors","forceString","objectValueSize","promiseValueSize","arrayValueSize","stdTTL","checkperiod","useClones","deleteOnExpire","enableLegacyCallbacks","maxKeys","stats","hits","misses","ksize","vsize","validKeyTypes","_unwrap","_getKeyLength","_killCheckPeriod","checkTimeout","unref","errorcode","ERRORS","_ERRORS","createErrorMessage","ENOTFOUND","ECACHEFULL","EKEYTYPE","EKEYSTYPE","ETTLTYPE","includeNonEnumerable","circular","__isArray","__isRegExp","__isDate","ignoreCase","clonePrototype","__objToStr","__getRegExpFlags","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","fired","wrapFn","setMaxListeners","getMaxListeners","rawListeners","eventNames","PromiseRejectionEvent","notified","reactions","rejection","exit","initEvent","race","WebKitMutationObserver","createTextNode","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ftp","http","https","wss","cannotBeABaseURL","yt","xt","fragment","kt","Tt","Ot","Et","At","Rt","Pt","jt","Ct","It","Mt","Ut","St","Lt","Ft","Nt","unicode","dotAll","try","stateToken","getUserAgent","client_id","redirect_uri","code_challenge","code_challenge_method","interaction_handle","parseNonRemediations","JSONPath","generateRemediationFunctions","remediation","fromEntries","mutable","neededParamsForAction","avoidNew","resultType","sandbox","preventEval","parentProperty","otherTypeCallback","autostart","currResultType","currPreventEval","currSandbox","currOtherTypeCallback","toPathString","toPathArray","_hasParentSelector","_trace","isParentSelector","hasArrExpr","_getPreferredOutput","toPointer","_handleCallback","_walk","expr","_$_parentProperty","_$_parent","_$_property","_$_path","_$_root","_$_v","vm","runInNewContext","We","Xe","Ze","Qe","tn","ze","Ye","nn","rn","Zt","Qt","ne","ie","ge","me","be","we","xe","Re","Pe","je","Ie","Me","Ue","Le","Fe","Ne","De","ke","Se","Oe","Ee","Yt","Ke","qe","Ve","an","un","sn","wn","yn","kn","ln","Tn","pn","dn","On","En","Bn","Hn","Kn","qn","zn","Wn","Zn","ue","se","fe","le","he","pe","de","ve","ye","Nr","Kr","Vr","Yr","Jr","Zr","no","co","po","mo","wo","groupEnd","errorCode","errorLink","errorId","errorCauses","saveAuthnState","storageUtil","storageManager","getHttpCache","cacheResponse","getStorage","expiresAt","Accept","httpRequestClient","updateStorage","transformErrorXHR","getIssuerOrigin","httpRequest","rememberDevice","autoPush","transactionCallBack","isPolling","factorResult","allow","factorType","provider","profile","updatePhone","_embedded","poll","_get","Dt","Bt","Ht","Kt","qt","Vt","subtle","importKey","verify","zt","DEFAULT_CODE_CHALLENGE_METHOD","generateVerifier","computeChallenge","TextEncoder","Gt","session","Jt","user","$t","Wt","Xt","checkAccountSetupComplete","redirectUrl","idp","idp_scope","idpScope","login_hint","loginHint","max_age","maxAge","response_mode","responseMode","response_type","sessionToken","te","authorizationCode","codeVerifier","grant_type","code_verifier","interaction_code","clientSecret","client_secret","tokenUrl","refresh_token","refreshToken","jwks_uri","kid","clearStorage","ae","popupTitle","Te","authorizeUrl","userinfoUrl","logoutUrl","revokeUrl","pkce","ignoreSignature","features","isPKCESupported","isHTTPS","hasTextEncoder","code_challenge_methods_supported","iss","aud","iat","maxClockSkew","Ge","Je","$e","signature","token_type_hint","transactionManager","throw","isTokenVerifySupported","at_hash","error_description","expires_in","token_type","access_token","id_token","isPopupPostMessageSupported","updateRefreshToken","mn","bn","gn","getTokensSync","xn","Sn","getTokens","oauth","_setLocation","_getLocation","_getHistory","_getDocument","SUCCESS","PENDING","FAILURE","TERMINAL","CANCELED","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","An","getPKCEStorage","browserHasLocalStorage","getLocalStorage","testStorage","browserHasSessionStorage","getSessionStorage","testStorageType","getStorageByType","getCookieStorage","getInMemoryStorage","findStorageType","sessionStorage","secure","sameSite","sessionCookie","useMultipleCookies","Pn","jn","Cn","Vn","In","Mn","Un","localOffset","Ln","onTokenExpiredHandler","autoRenew","emitError","renew","autoRemove","setExpireEventTimeoutAll","syncStorage","storageListener","storageKey","syncTimeout","resetExpireEventTimeoutAll","emitEventsForCrossTabsStorageUpdate","_storageEventDelay","clearExpireEventTimeoutAll","Fn","Nn","expireEarlySeconds","storageProvider","storageType","getTokenStorage","clock","expireTimeouts","renewPromise","getExpireTime","getTokensFromStorageValue","emitAdded","emitRemoved","clearExpireEventTimeout","emitExpired","setExpireEventTimeout","setStorage","getSync","getStorageKeyByType","emitRenewed","tokenKey","Yn","running","thisObject","Gn","fingerprint","$n","Xn","updateAuthStatePromise","canceledTimes","_sdk","_logOptions","_setLogOptions","Jn","transformAuthState","devMode","isCanceled","Qn","storageName","er","storageManagerOptions","cookieOptions","storageTypes","getOptionsForSection","getTransactionStorage","nr","legacyWidgetSupport","saveNonceCookie","saveStateCookie","saveParamsCookie","getIdxResponseStorage","clearLegacyOAuthParams","clearLegacyPKCE","loadLegacyOAuthParams","loadLegacyPKCE","getLegacyPKCEStorage","getLegacyOAuthParamsStorage","ir","nodeCache","ur","sr","transaction","fr","lr","dr","yr","gr","vr","prepareTokenParams","xr","kr","Tr","Sr","loadIdxResponse","Or","Er","Ar","Pr","flowMonitor","isRemediatorCandidate","canRemediate","jr","Cr","getMessages","Ir","getNextStep","canSkip","Mr","terminal","Ur","Rr","canceled","loopDetected","getName","idxResponse","trackRemediations","getValuesAfterProceed","t2","Lr","Fr","authenticators","getRelatesToType","getInputs","inputs","relatesTo","Br","Dr","verificationCode","passcode","remediationName","Hr","qr","zr","Gr","userProfile","firstName","lastName","$r","Wr","Xr","Qr","newPassword","eo","ao","uo","ro","authenticator","so","ho","yo","vo","mapAuthenticatorFromValues","getMethodTypes","methodType","getAuthenticatorFromRemediation","getAuthenticatorFromValues","enrollmentId","bo","phoneNumber","xo","To","Oo","Eo","So","_o","saveIdxResponse","exchangeCodeForTokens","enabledFeatures","availableSteps","Po","authClient","previousRemediator","Ro","jo","Mo","Io","Fo","Uo","Lo","identify","No","Ko","qo","Vo","Yo","Go","zo","$o","Wo","Jo","Zo","Xo","setTokens","Qo","ti","ei","ni","useInteractionCodeFlow","restoreOriginalUri","handleLogin","setCookieAndRedirect","_tokenQueue","getWithoutPrompt","getWithPopup","renewTokensWithRefresh","renewTokens","isLoginRedirect","authenticate","recoverPassword","handleInteractionCodeRedirect","startTransaction","authStateManager","signInWithCredentials","sendFingerprint","originalUri","setOriginalUri","revokeAccessToken","revokeRefreshToken","getSignOutRedirectUrl","closeSession","hasExpired","storeTokensFromRedirect","getOriginalUri","removeOriginalUri","hasResponseType","constants","isInteractionRequiredError","Avatar","lastChildrenWidth","lastNodeWidth","setScale","setMounted","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","setScaleParam","childrenWidth","nodeWidth","_props$gap","srcSet","childrenStyle","sizeChildrenStyle","OverlayViewSafe","type1","type2","google","maps","OverlayView","toCssText","coercePixels","pixels","ClusterIcon","cluster_","styles_","center_","div_","sums_","visible_","setMap","getMap","cMouseDownInCluster","cDraggingMapByCluster","mc","getMarkerClusterer","major","minor","gmVersion","getPanes","overlayMouseTarget","boundsChangedListener_","addDomListener","getZoomOnClick","mz","getMaxZoom","theBounds","getBounds","fitBounds","cancelBubble","clearInstanceListeners","getPosFromLatLng_","className_","createCss_","getImageElementHtml","getLabelDivHtml","getTitle","ariaLabel","ariaLabelFn","anchorText_","textColor","textSize","fontFamily","fontStyle","textDecoration","textLineHeight","bp","backgroundPosition","spriteH","spriteV","dimensions","getEnableRetinaIcons","Y1","X1","Y2","X2","anchorText","anchorIcon_","anchorIcon","getClusterClass","center","getZIndex","latlng","getProjection","fromLatLngToDivPixel","Cluster","markerClusterer_","map_","minClusterSize_","getMinimumClusterSize","averageCenter_","getAverageCenter","markers_","bounds_","clusterIcon_","getStyles","LatLngBounds","getMarkers","isMarkerAlreadyAdded_","lng","LatLng","calculateBounds_","isAdded","mCount","getExtendedBounds","numStyles","getCalculator","setCenter","useStyle","getOption","MarkerClusterer","clusters_","listeners_","activeMap_","ready_","zIndex_","Marker","MAX_ZINDEX","gridSize_","gridSize","minimumClusterSize","maxZoom_","maxZoom","title_","zoomOnClick_","ignoreHidden_","enableRetinaIcons_","imagePath_","imagePath","IMAGE_PATH","imageExtension_","imageExtension","IMAGE_EXTENSION","imageSizes_","imageSizes","IMAGE_SIZES","calculator_","calculator","CALCULATOR","batchSize_","batchSize","BATCH_SIZE","batchSizeIE_","batchSizeIE","BATCH_SIZE_IE","clusterClass_","clusterClass","setupStyles_","addMarkers","repaint","prevZoom_","minZoom","mapTypes","getMapTypeId","resetViewport_","redraw_","withDefaultStyle","getVisible","getIgnoreHidden","zoomOnClick","averageCenter","ignoreHidden","enableRetinaIcons","nodraw","pushMarkerTo_","getDraggable","removed","removeMarker_","oldClusters","projection","getNorthEast","getSouthWest","trPix","blPix","fromDivPixelToLatLng","sw","createClusters_","dLat","dLon","clusterToAddTo","cluster","getCenter","distanceBetweenPoints_","isMarkerInClusterBounds","addMarker","iFirst","mapBounds","timerRefStatic","iLast","isMarkerInBounds_","addToClosestCluster_","updateIcon","dv","overrides","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","resultCtx","Events","$el","compileTemplate","tpl","broadcast","listenTo","subtitle","cancelFn","alert","noCancelButton","decorate","ajaxSetup","beforeSend","converters","jQueryCourage","sprintf","parseQuery","encodeJSObject","decodeJSObject","unescapeHtml","getTemplate","localize","parseObject","isEmail","okta","trace","timeEnd","assert","DEL","RETURN","PAGEUP","PAGEDOWN","__isKey","isEnter","isEsc","isSpaceBar","getNameString","defaultPlaceholder","inputId","inlineValidation","validateOnlyIfDirty","addInlineValidation","addModelListeners","toModelValue","__getDependencyCalloutBtn","one","__showInputDependencies","getCalloutParent","getModelValue","__getCalloutMsgContainer","compiler","lookupProperty","escapeExpression","helperMissing","nullContext","useData","getTemplateData","showCallout","fadeOut","removeCallout","__evaluateCalloutObject","__handleDependency","resolved","callout","_isEdited","isEditMode","preRender","editMode","readMode","postRender","validateField","__markError","__clearError","multi","getReadModeString","toStringValue","resize","changeType","getParams","getParam","getParamOrAttribute","__edit__","LABEL_OPTIONS","CONTAINER_OPTIONS","WRAPPER_OPTIONS","INPUT_OPTIONS","generateInputOptions","isReadOnly","hasReadMode","changeEventString","createReadFormButton","formTitle","createButton","keyup","initialize","mousedown","mouseup","__changeSaveText","__showLoadingText","validateInput","allows","applyShowWhen","applyDoWhen","applyToggleWhen","secureJSON","_builtInLocalProps","__pending__","sync","dataType","INTEGER","BOOLEAN","OBJECT","FORMATDISPLAYTYPE","country_code","language_code","timezone","ARRAYDISPLAYTYPE","arrayofobject","arrayofstring","arrayofnumber","arrayofinteger","DISPLAYTYPES","SUPPORTSMINMAX","SUPPORTENUM","DATATYPE","MUTABILITY","READONLY","WRITEONLY","READWRITE","IMMUTABLE","SCOPE","NONE","SELF","SYSTEM","DISPLAYSCOPE","NA","UNION","DISABLE","ENABLE","UNION_OPTIONS","PERMISSION","HIDE","READ_ONLY","WRITE_ONLY","READ_WRITE","ENDUSER_ATTRIBUTE_PERMISSION_OPTIONS","ATTRIBUTE_LEVEL_MASTERING_OPTIONS","INHERIT","OKTA_MASTERED","OVERRIDE","USERNAMETYPE","OKTA_TO_APP","OKTA_TO_AD","APP_TO_OKTA","IDP_TO_OKTA","LOGINPATTERNFORMAT","EMAIL","CUSTOM","UNIQUENESS","NOT_UNIQUE","PENDING_UNIQUENESS","UNIQUE_VALIDATED","getDisplayType","getSourceUsernameType","isArrayDataType","isObjectDataType","flat","_setSynced","__attributes","__schema__","computedProperties","sanitizeAttributes","_syncedData","_getSynced","isSynced","ComputedProperty","cid","__children_definitions__","autoRender","stopListening","bubble","delegateEvents","rendered","renderTemplate","getChildren","reloadPage","constantError","getUrlQueryString","isABaseView","minLength","constraintHandlers","between","greaterThan","lessThan","idAttribute","__oneOf__","minItems","subSchemas","permissions","unique","__metadata__","__isSensitive__","__unique__","__isUniqueValidated__","__isPendingUniqueness__","__isUniqueness__","__canBeSensitive__","sensitivizable","__userPermission__","__displayType__","__displayTypeLabel__","__supportsMinMax__","__isReadOnly__","__isWriteOnly__","__displayScope__","__isScopeSelf__","__isNoneScopeArrayType__","__isImported__","__isFromBaseSchema__","__enumDefined__","__supportEnum__","__isNumberTypeEnum__","__isIntegerTypeEnum__","__isObjectTypeEnum__","__isStringTypeEnum__","__enumConstraintType__","__isEnumDefinedAndSupported__","__isLoginOfBaseSchema__","__isLoginFormatRestrictionToEmail__","_updateTypeFormatConstraints","_updateDisplayType","_updateMinMax","_convertEqualsToMinMax","_setConstraintText","_setLoginPattern","extendedType","_setRangeConstraints","_setMasterOverride","_setSubSchemas","_setUniqueness","_validateEnumOneOf","_checkBetweenConstraints","__minVal__","__maxVal__","_checkIntegerConstraints","_checkGreaterThanConstraint","_checkLessThanConstraint","_checkEqualsConstraint","masterOverride","__masterOverrideType__","__masterOverrideValue__","minimum","maximum","__constraint__","__equals__","allOf","noneOf","_extractLoginPattern","_isValidateOneOfConstraint","isConstraintValueMatchType","const","_enumAssignment","_attributeOverrideToJson","_normalizeUnionValue","_patternAssignment","_uniquenessAssignment","_getEnumOneOfWithTitleCheck","_buildLoginPattern","_escapedRegexChar","silent","cleanup","isEnumType","getEnumValues","detectHasEnumDefined","convertToOneOf","Model","areAllReadOnly","pluck","createModelProperties","enumOneOf","getEnumInputOptions","enumValues","customExplain","explain","displayType","getDropdownOptions","_notify","_confirm","unload","History","started","orgId","orgName","serverStatus","persona","isDeveloperConsole","isPreview","extraProperties","_features","_possibleFeatures","logHasFeatureError","hasAnyFeature","hasPermission","noSubmitButton","addButton","hasPrevStep","isBaseInput","autoWidth","$select","chosen","__applyChosen","wide","disable_search_threshold","placeholder_text","search_contains","parents","UNLOADING_FADE","program","inverse","lambda","dismissible","DEBOUNCE_DELAY","LOADING_FADE","ROW_EXPANDER_TRANSITION","HIDE_ADD_MAPPING_FORM","customInput","wrapAll","innerTooltip","qtip","my","mouse","viewport","Backbone","Handlebars","createCallout","registerInput","BaseModel","FrameworkView","ListView","Controller","internal","Util","Cookie","Logger","Class","views","BaseDropDown","helpers","FormUtil","SchemaFormFactory","Toolbar","TextBox","PasswordBox","CheckBox","InputGroup","BaseSchema","SchemaProperty","setPagination","fromFetch","getFetchData","getPaginationData","hasMore","fetchMore","where","ERROR_STRING_STRING_MIN_LENGTH","ERROR_STRING_STRING_MAX_LENGTH","ERROR_BLANK","ERROR_WRONG_TYPE","ERROR_NOT_ALLOWED","ERROR_INVALID","maxItems","uniqueItems","ERROR_IARRAY_UNIQUE","ERROR_INVALID_FORMAT_EMAIL","ERROR_INVALID_FORMAT_URI","ipv4","ERROR_INVALID_FORMAT_IPV4","ERROR_INVALID_FORMAT_HOSTNAME","derived","_validateSchema","__getDerivedValue","__syncedData","getPropertySchema","__schemaMeta__","__metadata","getProperties","trimProperty","parseProperties","fade","dismissable","__OKTA_HANDLEBARS_FALLBACK__","allowProtoPropertiesByDefault","__getAttribute","enableWhen","showWhen","toggleVisible","toggleClass","setCookie","getCookie","removeCookie","Utils","registerHelper","bundle","cdnUrlHostname","SafeString","addItem","fetchCollection","itemSelector","addShowMore","seleniumId","addOption","screenReaderText","hasClass","4","__save","slot","__buttons","__errorFields","__saveModelState","totalSteps","__toolbar","__createToolbar","__addLayoutItem","__applyMode","__showErrors","__cancel","__previous","__setSavingState","__clearSavingState","saveId","saveClassName","noButtonBar","autoSave","scrollOnError","showErrors","resizeSelector","hasButtonBar","__readModeBar","__toggleToolbar","_editMode","__originalModel","clearErrors","parseErrorMessage","getResponseJSON","parseFieldErrors","supports","addInput","__addNonInputLayoutItem","addSectionTitle","addDivider","toggleWhen","__createInput","errorField","__createWrapper","__createLabel","_createContainer","modelEvents","parseErrorSummary","parseErrorCauseObject","parseErrors","_getNames","__setExplain","__setError","__errorState","iconLabel","not","9","_isLabelView","_isRadioOrCheckbox","_standardLabel","inputWrapperClassName","optionsClassName","bindings","getLabel","getInput","getInputContainer","objectName","__nestedProperty__","createInputOptions","itemType","hasValidSchemaProps","prepareSchema","augmentSchemaProps","augmentSchemaProp","true","false","options_index","add_node","nodeName","add_group","add_option","array_index","group_array_index","select_to_array","SelectParser","form_field","browser_is_supported","is_multiple","set_default_text","set_default_values","setup","set_up_html","register_observers","finish_setup","click_test_action","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","result_single_selected","allow_single_deselect","disable_search","enable_split_word_search","single_backstroke_delete","max_selected_options","inherit_select_classes","default_text","placeholder_text_multiple","default_multiple_text","placeholder_text_single","default_single_text","results_none_found","no_results_text","default_no_result_text","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","result_add_option","dom_id","container_id","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","results_toggle","results_hide","results_show","results_search","winnow_results","choices_count","selected_option_count","choices_click","is_disabled","keyup_checker","search_field_scale","backstroke_length","keydown_backstroke","pending_backstroke","result_select","generate_field_id","generate_random_id","generate_random_char","container_width","appName","AbstractChosen","__super__","form_field_jq","current_selectedIndex","is_rtl","dropdown","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","container_mouseup","mouseenter","mouseleave","search_results_mouseup","mouseover","search_results_mouseover","mouseout","search_results_mouseout","search_results_mousewheel","keydown","keydown_checker","search_field_disabled","unbind","close_field","results_reset","originalEvent","wheelDelta","originialEvent","clear_backstroke","show_search_field_default","parsing","results_data","result_add_group","choice_build","single_deselect_control_build","result_do_highlight","result_highlight","form_field_label","choice_destroy_link_click","choice_destroy","result_deselect","result_activate","result_deactivate","deselected","no_results_clear","no_results","winnow_results_set_highlight","keydown_arrow","nextAll","keyup_arrow","prevAll","f_width","Chosen","addNewElement","uniqueIdPrefix","_setArrayObject","arrayObject","_addDeletableBox","slideDown","getPlaceholderText","errorExplain","getErrorExplainText","debounceDelay","slideUp","clearInvalid","markInvalid","__showPasswordToggle","showPasswordToggle","__showPassword","passwordToggleTimer","__hidePassword","specified","valHooks","textarea","optionId","inputGroupView","LabelInput","InputGroupView","INPUT","viewOptions","BUTTON","addOptions","DIVIDER","TOOLBAR","VIEW","appState","addFooter","addListeners","hasSavingState","clearFormError","getUISchema","showMessages","addInputOrView","saveForm","handleClearFormError","triggerAfterError","currentViewState","uiSchema","optionsUiSchemas","optionUiSchemaConfig","API_RATE_LIMIT","WIDGET_CONTAINER_ID","WIDGET_CONFIG_COLORS_ID","DIRECTION_BACK","RECOVERY_TYPE_PASSWORD","RECOVERY_TYPE_UNLOCK","RECOVERY_FACTOR_TYPE_SMS","RECOVERY_FACTOR_TYPE_EMAIL","RECOVERY_FACTOR_TYPE_CALL","FORGOT_PASSWORD_EMAIL_SENT","UNLOCK_ACCOUNT_EMAIL_SENT","CONFIG_ERROR","UNSUPPORTED_BROWSER_ERROR","OAUTH_ERROR","AUTH_STOP_POLL_INITIATION_ERROR","U2F_ERROR","WEB_AUTHN_ERROR","WEBAUTHN_ABORT_ERROR","ALL_OPTIONAL_NONE_ENROLLED","ALL_OPTIONAL_SOME_ENROLLED","HAS_REQUIRED_NONE_ENROLLED","HAS_REQUIRED_SOME_REQUIRED_ENROLLED","HAS_REQUIRED_ALL_REQUIRED_ENROLLED","PRIMARY_AUTH","FORGOT_PASSWORD","UNLOCK_ACCOUNT","SESSION_SSO","SESSION_STEP_UP","ACTIVATION_EMAIL_SENT","REGISTRATION_COMPLETE","REGISTRATION_FAILED","IDP_DISCOVERY","hasTokensInHash","hasCodeInUrl","expandLanguages","callAfterTimeout","debugMessage","redirectWithFormGet","redirectWithForm","createInputExplain","isV1StateToken","inputmode","getBeaconClassName","getIconClassNameForBeacon","HeaderBeacon","OKTA_VERIFY","iconClassName","sortOrder","OKTA_VERIFY_PUSH","U2F","WEBAUTHN","WINDOWS_HELLO","YUBIKEY","GOOGLE_AUTH","CUSTOM_HOTP","SMS","CALL","QUESTION","DUO","SYMANTEC_VIP","RSA_SECURID","ON_PREM","PASSWORD","CUSTOM_CLAIMS","GENERIC_SAML","GENERIC_OIDC","complexity","excludeAttributes","excludeFirstName","excludeLastName","i18n","age","historyCount","minAgeMinutes","getTimeInHighestRelevantUnit","getFactorName","getFactorNameForFactorType","isOktaVerify","getFactorLabel","getFactorDescription","getFactorIconClassName","getFactorSortOrder","getRememberDeviceValue","getSecurityQuestionLabel","questionText","removeRequirementsFromError","getPasswordComplexityDescription","getPasswordComplexityDescriptionForHtmlList","minLowerCase","minUpperCase","minNumber","minSymbol","excludeUsername","getCardinalityText","enrolled","findFactorInFactorsArray","findWhere","doTransaction","Body","getClassNameMapping","renderForm","createModelClass","formName","isHostBackgroundChromeTab","isDocumentVisible","visibilityState","createVerifyUrl","factorIndex","createEnrollFactorUrl","createActivateFactorUrl","createRecoveryUrl","recoveryToken","createRefreshUrl","routeAfterAuthStatusChangeError","corsIsNotEnabled","callGlobalError","UnsupportedBrowserError","INVALID_TOKEN_EXCEPTION","routeAfterAuthStatusChange","setAuthResponse","trapAuthResponse","handleResponseStatus","clearLastAuthResponse","recoveryType","relayState","stepUp","callGlobalSuccess","lastUsedFactor","getDefaultFactor","clearLastFailedChallengeFactorData","setLastFailedChallengeFactorData","ConfigError","OAuthError","RegistrationError","AuthStopPollInitiationError","U2FError","WebAuthnError","WebauthnAbortError","FORMS_FOR_VERIFICATION","FORMS_WITH_STATIC_BACK_LINK","FORMS_WITHOUT_SIGNOUT","FORMS","IDENTIFY","SELECT_IDENTIFY","SELECT_ENROLL_PROFILE","ENROLL_PROFILE","SELECT_AUTHENTICATOR_AUTHENTICATE","AUTHENTICATOR_VERIFICATION_DATA","CHALLENGE_AUTHENTICATOR","CHALLENGE_POLL","RESEND","SELECT_AUTHENTICATOR_ENROLL","SELECT_AUTHENTICATOR_ENROLL_DATA","AUTHENTICATOR_ENROLLMENT_DATA","ENROLL_AUTHENTICATOR","SELECT_ENROLLMENT_CHANNEL","ENROLLMENT_CHANNEL_DATA","ENROLL_POLL","REENROLL_AUTHENTICATOR","REENROLL_AUTHENTICATOR_WARNING","RESET_AUTHENTICATOR","SKIP","SUCCESS_REDIRECT","REDIRECT_IDP","DEVICE_CHALLENGE_POLL","DEVICE_APPLE_SSO_EXTENSION","CANCEL_TRANSACTION","LAUNCH_AUTHENTICATOR","getSwitchAuthenticatorLink","XDomainRequest","corsIsNotSupported","localStorageIsNotSupported","supportsPushState","isEdge","isMac","isAndroid","isIOS","getUserLanguages","languages","linkClassName","linkText","shouldShowSignOutLinkInCurrentForm","getSignOutLink","makeCredential","algorithm","msCredentials","credential","publicKey","attestation","getAssertion","clientData","authenticatorData","authnrData","isAvailable","isNewApiAvailable","isWebauthnOrU2fAvailable","isU2fAvailable","rewrite","supportedLanguages","courage","currentLanguage","loadLanguage","mapObject","disableSubmitButton","toggleButtonState","fetchInitialData","postRenderAnimation","startPolling","_startRemediationPolling","_startAuthenticatorPolling","polling","stopPolling","manageTransaction","setTransaction","isPromiseAlike","getAuthClient","base64UrlSafeToBase64","validateFieldsMatch","goBackLink","getForgotPasswordLink","hasRemediationObject","getActionByPath","actionPath","WARNING_TIMEOUT","SHOW_RESEND_TIMEOUT","grep","inArray","parseJSON","isEmptyObject","expando","cleanData","deleteExpando","cssNumber","createDocumentFragment","htmlPrefilter","leadingWhitespace","tbody","appendChecked","noCloneEvent","html5Clone","defaultSelected","checkClone","_evalUrl","globalEval","appendTo","detach","boxSizingReliable","tweeners","prefilters","Deferred","always","tweens","notifyWith","resolveWith","specialEasing","originalProperties","originalOptions","createTween","Tween","rejectWith","cssHooks","_queueHooks","timer","dataTypes","ajaxSettings","flatOptions","jquery","pushStack","prevObject","ownFirst","execScript","eval","makeArray","support","qsa","cacheLength","attrHandle","sourceIndex","nextSibling","uniqueID","uniqueSort","CLASS","ATTR","PSEUDO","CHILD","needsContext","isXML","setDocument","createComment","getById","getElementsByName","getAttributeNode","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","sortDetached","detectDuplicates","sortStable","getText","selectors","createPseudo","preFilter","pseudos","innerText","hasFocus","even","odd","radio","checkbox","tokenize","isXMLDoc","parseHTML","addBack","parentsUntil","nextUntil","prevUntil","Callbacks","stopOnFalse","memory","lock","locked","fireWith","fire","readyWait","holdReady","triggerHandler","doScroll","frameElement","inlineBlockNeedsLayout","noData","_removeData","dequeue","clearQueue","shrinkWrapBlocks","htmlSerialize","cloneNode","noCloneChecked","param","thead","optgroup","tfoot","colgroup","caption","focusin","triggered","special","delegateType","bindType","origType","namespace","delegateCount","teardown","isTrigger","rnamespace","noBubble","isPropagationStopped","isDefaultPrevented","fix","delegateTarget","preDispatch","isImmediatePropagationStopped","handleObj","postDispatch","fixHooks","mouseHooks","keyHooks","srcElement","fromElement","clientLeft","clientTop","toElement","beforeunload","returnValue","simulate","isSimulated","stopImmediatePropagation","pointerenter","pointerleave","_submitBubble","_justChanged","__OKTA_JQUERY_LEGACY_HTML_PREFILTER__","domManip","replaceWith","replaceChild","prependTo","replaceAll","HTML","BODY","getClientRects","borderCollapse","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","reliableMarginLeft","opener","runtimeStyle","pixelLeft","letterSpacing","animationIterationCount","flexGrow","flexShrink","orphans","widows","cssProps","propHooks","swing","tweener","unqueued","prefilter","speeds","fadeTo","timers","slideToggle","fadeIn","fadeToggle","slow","fast","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","attrHooks","propFix","setAttributeNode","createAttribute","contenteditable","removeProp","parseXML","loadXML","lastModified","etag","responseFields","ajaxPrefilter","ajaxTransport","ajax","mimeType","dataFilter","throws","ifModified","overrideMimeType","crossDomain","traditional","hasContent","getScript","wrapInner","unwrap","serialize","serializeArray","cors","xhrFields","script","scriptCharset","jsonp","jsonpCallback","using","pageYOffset","pageXOffset","undelegate","andSelf","jQuery","__OKTA_EXPORT_JQUERY__","onTooltip","lastClass","waiting","hiddenDuringWait","positioning","triggering","sanitize","checks","inactive","reposition","solo","overwrite","suppress","_ns","iOS","_when","posClass","_createPosClass","tracking","_createTitle","_updateTitle","_createButton","_updateContent","_setWidget","_unassignEvents","_assignEvents","_trigger","builtin","nextid","_removeTitle","_updateButton","precedance","_update","_waitForContent","imagesLoaded","titlebar","widget","abbrev","imagemap","ownerSVGElement","adjustable","adjusted","effect","compatMode","Corner","forceY","_storeMouse","autofocus","zindex","_bind","_unbind","_bindEvents","_assignInitialEvents","prerender","onTarget","inactiveEvents","ui","backingStorePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","lineJoin","miterLimit","_swapDimensions","_resetDimensions","_useTitle","_parseCorner","_parseWidth","_parseRadius","_invalidColour","_parseColours","_calculateSize","_calculateTip","tc","bc","rc","lc","lb","rb","_drawCoords","beginPath","corner","mimic","restore","clearRect","antialias","stroked","calculate","cornerTop","cornerLeft","stealfocus","modal_zindex","elems","polys","polygon","_angles","ellipse","baseVal","numberOfItems","getScreenCTM","_scroll","bgiframe","adjustBGIFrame","redrawContainer","redraw","drawing","ie6","$parent","$oldRoot","$newRoot","implode","explode","enrollment","vendorName","policy","profiles","answer","backupFactor","showAnswer","isOktaFactor","factorName","factorLabel","factorDescription","securityQuestion","deviceName","cardinality","enrolledFactors","additionalEnrollment","canUseResend","isAnswerRequired","isFactorTypeVerification","setCustomHotpVendorName","needsPasscode","resend","passCode","pushFactorHasAutoPush","_findFactor","listenToOnce","factorTypes","factors","getFirstUnenrolledRequiredFactor","_getFactorsOfType","getFactorIndex","hasMultipleFactorsOfSameType","getFactorByTypeAndIndex","isMessageFromCorrectSource","generateDeviceFingerprint","getAuthenticatorDataForEnroll","getAuthenticatorDataForVerification","authenticatorType","getPasswordPolicySettings","displayPasswordPolicy","rulesList","confirmPassword","authParams","oAuthTimeout","addOrRemoveOpenIdScope","getResponseType","transformShowSignInToGetTokensOptions","getCookieUsername","getUsernameAndRemember","lastUsername","remember","multiOptionalFactorEnroll","transformUsername","setUsernameCookie","getSignInArgs","doPrimaryAuth","signIn","removeUsernameCookie","warnBeforePasswordExpired","getU2fEnrollErrorMessageKeyByCode","getU2fVerifyErrorMessageKeyByCode","enroll","activate","instructions","qrcode","signOutLink","globalSuccessFn","globalErrorFn","processCreds","logoText","helpSupportNumber","apiVersion","authScheme","idps","idpDisplay","customButtons","policyId","brandName","piv","redirectUtilFn","languageCode","oauth2Enabled","oauthRedirectUri","configuredSocialIdps","SUPPORTED_SOCIAL_IDPS","dataAttr","i18nKey","hasPivCard","certAuthUrl","socialAuthPositionTop","hasConfiguredButtons","brand","setAcceptLanguageHeader","setAuthClient","parseSchema","preSubmit","postSubmit","assets","currentBeacon","setLoadingBeacon","removeLoadingBeacon","setBeacon","swapBeacons","getContentEl","radialProgressBar","removeAntiPhishingMessage","currentController","setUsername","shouldComputeDeviceFingerprint","novalidate","getTypingPattern","stateEnableChange","getUsernameField","getPasswordField","getRemeberMeCheckbox","isCustomized","_createPivButton","_createSocialIdpButton","_createCustomButton","fromURI","helpLinkUrl","toggleLinks","dataset","sigRequest","duoSig","appSig","iframeContainer","iframeAttributes","sig_request","post_action","post_argument","submit_callback","_onReady","_parseSigRequest","_isDuoMessage","_doPostBack","showResendCallout","hideResendCallout","resendEmail","showInlineSetupButton","getSetupButtonText","cardinalityText","minimize","maximize","countryCallingCode","formChildren","passwordWarn","allRequirements","requirements","focusout","getUsernameParts","passwordContainsFormField","factorSelect","authenticatorEnrollSelect","authenticatorVerifySelect","createIdpButtons","createCustomButtons","getV1ClassName","sms","voice","security_question","security_key","app","RESEND_PUSH","isPasswordRecoveryFlow","ResendView","resendActionKey","handleResendLink","showCalloutAfterTimeout","showCalloutTimer","handelResendLink","resendEmailAction","showCalloutWithDelay","showMeTimeout","isQRcodeChannel","contextualData","selectedChannel","getMessage","hasTokensInUrl","renderEl","showSignInToGetTokens","emulateHTTP","emulateJSON","listening","_listenId","_listeningTo","objId","listeningTo","_callback","cidPrefix","validationError","_validate","_changing","_previousAttributes","changedAttributes","previousAttributes","_reset","_removeModels","_isModel","_prepareModel","_addReference","modelId","_removeReference","previousModels","_byId","_onModelEvent","collect","foldl","inject","foldr","detect","include","_ensureElement","_removeElement","undelegateEvents","_setElement","_createElement","_setAttributes","_method","textStatus","errorThrown","_bindRoutes","_routeToRegExp","_extractParameters","execute","atRoot","getSearch","matchRoot","decodeFragment","getHash","getPath","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","_hasPushState","checkUrl","_checkUrlInterval","loadUrl","_updateHash","signout","signin","signup","unlockaccount","haveaccount","needhelp","goback","forgotpassword","help","retry","iphone","backToSignin","closeWindow","AF","AX","AL","DZ","AS","AD","AQ","AG","AR","AM","AW","AT","AZ","BS","BH","BD","BB","BY","BZ","BJ","BT","BW","BV","BR","IO","VG","BN","BG","BF","KH","CM","CV","KY","CF","TD","CL","CN","CX","KM","CG","CK","CR","HR","CY","CZ","CD","DK","DJ","DM","TL","EC","EG","SV","GQ","ER","ET","FK","FO","FJ","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","HN","HK","IS","IN","IR","IQ","IE","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","XK","KW","KG","LA","LV","LB","LS","LR","LY","LI","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MA","MZ","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","KP","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RO","RU","RW","SH","KN","LC","PM","VC","SM","ST","SA","SN","SC","SL","SG","SK","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TG","TK","TO","TN","TR","TM","TC","TV","VI","UG","UA","GB","US","UM","UY","UZ","VU","VA","VE","VN","WF","EH","YE","ZM","ZW","stringToBase64Url","base64ToBase64Url","base64UrlToBase64","base64UrlToString","stringToBuffer","base64UrlDecode","isAbsoluteUrl","isoToUTCString","toQueryParams","genRandomString","removeNils","getLink","getNativeConsole","getConsole","deprecateWrap","removeTrailingSlash","isIE11OrLess","isPromise","STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","REDIRECT_OAUTH_PARAMS_COOKIE_NAME","REDIRECT_STATE_COOKIE_NAME","REDIRECT_NONCE_COOKIE_NAME","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","preferLocalStorage","generateState","generateNonce","getWellKnown","validateClaims","getOAuthUrls","loadFrame","loadPopup","urlParamsToObject","isToken","transactionStatus","resumeTransaction","transactionExists","postToTransaction","assertValidConfig","isLocalhost","sessionExists","getSession","refreshSession","authorize","_getLocationHref","decodeToken","revokeToken","renewToken","verifyToken","_getUserAgent","isFingerprintSupported","_onTokenManagerError","addSharedPrototypes","webfinger","buildOktaAuth","forgotPassword","unlockAccount","verifyRecoveryToken","ajaxRequest","getOidcHash","loadMeta","getToken","clearMeta","saveMeta","handleOAuthResponse","prepareOauthParams","stateLessRouteHandlers","defaultAuth","idpDiscovery","primaryAuth","Beacon","verifyDuo","verifyPIV","verifyWebauthn","verifyU2F","verifySAMLFactor","verifyOIDCFactor","verifyClaimsFactor","verifyNoProvider","enrollChoices","enrollDuo","enrollQuestion","enrollPassword","enrollSms","enrollCall","enrollEmail","enrollActivateEmail","enrollRsa","enrollOnPrem","enrollSymantecVip","enrollYubikey","enrollSAMLFactor","enrollOIDCFactor","enrollClaimsFactor","enrollActivateClaimsFactor","enrollTotpFactor","enrollHotpFactor","enrollWebauthn","enrollU2F","scanBarcodeTotpFactor","scanBarcodePushFactor","activateTotpFactor","manualSetupTotpFactor","manualSetupPushFactor","activationLinkSent","enterPasscodeInPushEnrollmentFlow","passwordExpired","customPasswordExpired","recoveryChallenge","recoveryEmailSent","unlockEmailSent","recoveryQuestion","passwordReset","recoveryLoading","accountUnlocked","refreshAuthState","registerComplete","consentRequired","adminConsentRequired","enrollUser","swapPages","securityImage","securityImageDescription","pwdImg","imageDescription","lastAuthResponse","transactionError","introspectSuccess","introspectError","userCountryCode","userPhoneNumber","factorActivationType","flashError","beaconType","deviceFingerprint","typingPattern","disableUsername","trapMfaRequiredResponse","lastFailedChallengeFactorData","isSuccessResponse","isMfaRequired","isProfileRequired","isMfaEnroll","isMfaChallenge","isUnauthenticated","isMfaRejected","isMfaTimeout","isMfaEnrollActivate","isWaitingForActivation","isWaitingForNumberChallenge","challenge","hasMultipleFactorsAvailable","promptForFactorInUnauthenticated","userId","isIdxStateToken","isPwdExpiringSoon","passwordExpireDays","expiration","isPwdManagedByOkta","passwordExpiredWebsiteName","passwordExpiredLinkUrl","activatedFactorId","activatedFactorType","activatedFactorProvider","activation","activationSendLinks","textActivationLinkUrl","emailActivationLinkUrl","sharedSecret","duoEnrollActivation","prevLink","skipLink","gracePeriodRemainingDays","gracePeriod","recovery_question","userConsentName","userEmail","userFullName","defaultAppLogo","targetLabel","targetLogo","targetTermsOfService","targetPrivacyPolicy","targetClientURI","authentication","hasExistingPhones","phones","hasExistingPhonesForCall","isUndefinedUser","isNewUser","allowRememberDevice","rememberDeviceLabel","rememberDeviceLifetimeInMinutes","rememberDeviceByDefault","factorsPolicyInfo","verifyCustomFactorRedirectUrl","enrollCustomFactorRedirectUrl","isFactorResultFailed","factorResultErrorMessage","factorResultMessage","MILLISECOND","SECOND","MINUTE","HOUR","DAY","microseconds","nanoseconds","requestContext","initialized","startDiagram","stopDiagram","getDiagram","getExtendedDiagram","getMouseDiagram","startMouse","stopMouse","getQuality","getLength","getTextId","maxHistoryLength","defaultHistoryLength","maxSeekTime","maxPressTime","spKeyCodes","spKeyCodesObj","13","32","keyCodes","keyCodesObj","ut1","wfk","sti","skt","recording","mouseRecording","mouseMoveRecording","spKeyRecording","diagramRecording","dwfk","dsti","dskt","drkc","prevKeyCode","maxMoveDeltaTime","maxScrollDeltaTime","maxStopTime","maxClickTime","maxMouseHistoryLength","lastMouseMoveTime","lastMouseDownTime","stopTimes","clickTimes","lastMouseStop","zl","isAndroidChrome","ACLastTime","ACSeekTime","ACPressTime","ACLastCharCode","ACLastKeyCode","ACInputLengths","lastLength","ACPreviousKeyCode","targetIds","lastTarget","lastTargetFound","replaceMissingKeys","replaceMissingKeysPerc","keyDown","isTarget","keyUp","keyPress","ACKeyDown","ACKeyUp","dlastDownKey","addDiagram","mouseScroll","scrollStarted","scrollTimes","scrollTopArr","scrollInterval","checkScroll","mouseMove","xPositions","yPositions","moveInterval","checkMove","mouseDown","mouseUp","getTotalDistance","atan","recordMoveAction","recordScrollAction","clearLastMove","clearLastScroll","stackDiagram","targetId","extended","textId","caseSensitive","math","avg","sd","apu","getSpecialKeys","fnv1aHash","sliceStackByTargetId","savedMissingAvgValues","historyLength","seekTime","pressTime","avgAcc","checkMobileValidity","handleClickEvent","resource","postAction","factorId","getInitOptions","sig_response","verification","isCustomDomain","getCert","postCert","_startEnrollment","_stopEnrollment","findModel","inlineTotpForm","autoPushCheckBox","rememberDeviceCheckbox","buttonDataSe","buttonClassName","formSubmit","formRetry","formSubmitted","showWarning","clearWarnings","handleRejectStateChange","numberChallengeView","setSubmitState","showError","doSave","autoPushEnabled","setRejectedErrorMessage","correctAnswer","factorEmail","handleSubmit","renderChallengView","__autoTriggered__","credentialId","signatureData","customSavingState","_resetErrorMessage","_errorMessageView","_successEnrollment","keyHandle","getU2fVersion","u2f","getU2fVerifyErrorMessageByCode","strToBin","webauthnAbortController","allowCredentials","AbortController","binToStr","clientDataJSON","pageType","getSubtitle","getGracePeriodSubtitle","getDefaultSubtitle","listTitle","securityQuestions","searchThreshold","questions","__isEnrolled__","_enroll","rpDisplayName","userDisplayName","accountName","sendCode","countryCode","phoneExtension","lastEnrolledPhoneNumber","trapEnrollment","ableToResend","skipPhoneValidation","getCallingCodeForCountry","fullPhoneNumber","limitResending","validatePhone","resendCode","getCountries","SX","IM","AC","TA","BL","MF","CW","BQ","nextPassCode","__deviceType__","STORE","GOOGLE","OKTA","appStoreLinkText","appIcon","__factorType__","__provider__","APPLE","ANDROID","__enrolled__","getU2fEnrollErrorMessageByCode","registrationData","excludeCredentials","attestationObject","onlySupportsSecurityKey","pollForEnrollment","activationType","MANUAL","setInitialModel","oldPassword","validatePasswordMatch","changePassword","hideBackToSignInForReset","validateUsername","mobileFactors","createRecoveryFactorButton","setDefaultFactorType","resetPassword","getRegistrationApiUrl","getRegistrationPolicyApi","doPostSubmit","activationToken","loginWithActivationToken","registerUser","createRegistrationModel","defaultPolicyId","fieldOrder","profileSchema","consent","customLogo","defaultLogo","clientURI","termsOfService","privacyPolicy","myAccount","users","apps","authorizationServers","clients","linkedObjects","policies","templates","inlineHooks","logs","orgs","roles","schemas","sessions","trustedOrigins","expandScopes","getEnrollFormData","constructPostData","registration","createNewAccount","profileSchemaAttributes","setFieldPlaceholder","getDropdownOption","TITLE","DUO_PUSH","DUO_SMS","DUO_CALL","_stopCountDown","cancelRequest","_checkStatus","transactionObject","_startCountDown","countDown","checkStatusTimeout","factorPollingIntervalSeconds","appStateEvents","afterError","invokeAction","switchForm","getCurrentViewState","formView","triggerAfterRenderEvent","createAfterEventContext","handleFormNameChange","handleAfterError","handleSwitchForm","handleInvokeAction","handleIdxSuccess","showFormErrors","handleSaveForm","toggleFormButtonState","isIonErrorResponse","convertFormErrors","webauthn","hasOptionalFactors","modelType","idpButtons","addSeparateLine","doCustomURI","onPollingFail","deviceChallengePollRemediation","doChallenge","challengeMethod","doLoopback","ports","challengeRequest","customURI","ulDom","daysToExpiry","handlePhoneCodeChange","phoneCode","handleSecondaryLinkClick","primaryMode","secondaryMode","getCredentialsAndSave","_startVerification","challengeData","_stopVerification","triggerWebauthnPrompt","activationData","authenticatorSelection","userVerification","stopPoll","addView","startPoll","warningTimeout","clearWarning","handleIdxResponseSuccess","handleIdxResponseFailure","setIonResponse","factorProfileId","secret","currentFormName","authenticatorProfile","authenticatorMethodType","isPasswordRecovery","shouldReRenderView","NonAsciiIdentifierStart","NonAsciiIdentifierPart","lastCommentStart","attachComment","leadingComments","trailingComments","UnexpectedToken","openParenToken","openCurlyToken","Punctuator","lineNumber","lineStart","NumericLiteral","octal","UnterminatedRegExp","literal","InvalidRegExp","RegularExpression","EOF","Keyword","NullLiteral","BooleanLiteral","StringLiteral","startLineNumber","startLineStart","UnexpectedEOS","UnexpectedNumber","UnexpectedString","UnexpectedIdentifier","UnexpectedReserved","StrictReservedWord","MemberExpression","StrictParamName","markEnd","createFunctionExpression","StrictOctalLiteral","createLiteral","createIdentifier","createProperty","createArrayExpression","Get","StrictDuplicateProperty","AccessorDataProperty","AccessorGetSet","createObjectExpression","StrictFunctionName","stricted","firstRestricted","createThisExpression","allowIn","createMemberExpression","createNewExpression","createCallExpression","StrictLHSPostfix","InvalidLHSInAssignment","createPostfixExpression","StrictLHSPrefix","createUnaryExpression","argument","StrictDelete","prec","createBinaryExpression","createConditionalExpression","StrictLHSAssignment","createAssignmentExpression","createSequenceExpression","expressions","createBlockStatement","StrictVarName","createVariableDeclarator","createSwitchCase","StrictCatchVariable","createCatchClause","NoCatchOrFinally","createTryStatement","createEmptyStatement","createExpressionStatement","inIteration","inSwitch","IllegalBreak","createBreakStatement","labelSet","UnknownLabel","IllegalContinue","createContinueStatement","createDebuggerStatement","createDoWhileStatement","createVariableDeclaration","declarations","InvalidLHSInForIn","createForStatement","createForInStatement","createIfStatement","inFunctionBody","IllegalReturn","createReturnStatement","createSwitchStatement","MultipleDefaultsInSwitch","NewlineAfterThrow","createThrowStatement","createWhileStatement","StrictModeWith","createWithStatement","Redeclaration","createLabeledStatement","expression","Literal","StrictParamDupe","createFunctionDeclaration","AssignmentExpression","ArrayExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExpressionStatement","ForStatement","ForInStatement","FunctionDeclaration","FunctionExpression","IfStatement","LabeledStatement","LogicalExpression","NewExpression","ObjectExpression","Program","Property","ReturnStatement","SequenceExpression","SwitchStatement","SwitchCase","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","processComment","bottomRightStack","postProcess","consequent","alternate","createProgram","discriminant","cases","guardedHandlers","finalizer","tolerant","Syntax","esprima","symbols_","JSON_PATH","DOLLAR","PATH_COMPONENTS","LEADING_CHILD_MEMBER_EXPRESSION","PATH_COMPONENT","MEMBER_COMPONENT","SUBSCRIPT_COMPONENT","CHILD_MEMBER_COMPONENT","DESCENDANT_MEMBER_COMPONENT","DOT","MEMBER_EXPRESSION","DOT_DOT","STAR","IDENTIFIER","SCRIPT_EXPRESSION","CHILD_SUBSCRIPT_COMPONENT","DESCENDANT_SUBSCRIPT_COMPONENT","SUBSCRIPT","SUBSCRIPT_EXPRESSION","SUBSCRIPT_EXPRESSION_LIST","SUBSCRIPT_EXPRESSION_LISTABLE","STRING_LITERAL","ARRAY_SLICE","FILTER_EXPRESSION","QQ_STRING","Q_STRING","$accept","$end","terminals_","12","15","16","17","18","19","22","24","28","30","31","33","productions_","performAction","ast","yield","10","11","20","21","23","25","26","27","29","defaultActions","parseError","recoverable","lexer","setInput","yylloc","lex","showPosition","yylineno","expected","yytext","yyleng","_$","first_line","last_line","first_column","last_column","_node","_stash","_input","_more","_backtrack","conditionStack","unput","more","backtrack_lexer","less","pastInput","upcomingInput","test_match","_currentRules","begin","popState","INITIAL","topState","stateStackSize","inclusive","Parser","_process","qq_string","q_string","esc","bnf","moduleInclude","actionInclude","descend","traverse","_fns","underscore","_vivify","_normalize","Handlers","grammar","AssertionError","stackStartFunction","isNullOrUndefined","isPrimitive","generatedMessage","captureStackTrace","inherits","notEqual","deepEqual","notDeepEqual","notStrictEqual","doesNotThrow","ifError","super_","stylize","showHidden","_extend","customInspect","noDeprecation","throwDeprecation","traceDeprecation","debuglog","NODE_DEBUG","null","extname","quasis","quasi","cooked","escodegen","jsonpath","ATTRIBUTE_NAMES","TAG_NAMES","BASE","HEAD","LINK","NOSCRIPT","SCRIPT","STYLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","contextmenu","itemprop","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","noscript","HelmetExport","_class","HelmetWrapper","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","titleTemplate","rewind","mappedState","Helmet","withSideEffect","renderStatic","React__default","reducePropsToState","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","UNSAFE_componentWillMount","trueProto","getCookieString","requireFunc","jar","fetchType","abortControllerType","abortSignal","AbortError","abortController","msTimeout","TimeoutError","HttpError","deserializeContent","HttpResponse","getCookies","MessageType","HubConnectionState","HttpTransportType","TransferFormat","connection","reconnectPolicy","nextKeepAlive","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","HandshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","closedCallbacks","reconnectingCallbacks","reconnectedCallbacks","invocationId","receivedHandshakeResponse","connectionState","Disconnected","connectionStarted","cachedPingMessage","writeMessage","Ping","HubConnection","connectionId","Reconnecting","startPromise","startWithStateTransitions","Connecting","Debug","startInternal","Connected","stopDuringStartError","handshakePromise","handshakeResolver","handshakeRejecter","transferFormat","sendMessage","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","cleanupPingTimer","stopPromise","stopInternal","Disconnecting","reconnectDelayHandle","completeClose","promiseQueue","streams","streamIds","invocationDescriptor","createStreamInvocation","cancelInvocation","createCancelInvocation","sendWithProtocol","invocationEvent","Completion","launchStreams","sendPromise","createInvocation","newMethod","removeIdx","onreconnecting","onreconnected","processHandshakeResponse","parseMessages","Invocation","invokeClientMethod","StreamItem","Close","allowReconnect","responseMessage","inherentKeepAlive","timeoutHandle","pingServerHandle","nextPing","serverTimeout","invocationMessage","cancelCallbacksWithError","reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","getNextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","nonblocking","streamId","createCompletionMessage","createStreamItemMessage","replaceStreamingParams","isObservable","StreamInvocation","CancelInvocation","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","retryDelays","retryContext","isAborted","pollAbort","Binary","pollOptions","updateHeaderToken","pollUrl","closeError","receiving","pollAborted","raiseOnClose","deleteOptions","logMessage","eventSourceConstructor","opened","eventSource","onopen","webSocketConstructor","webSocket","binaryType","ErrorEvent","OPEN","isCloseEvent","wasClean","stopPromiseResolver","negotiateVersion","resolveUrl","webSocketModule","eventSourceModule","WebSocket","EventSource","startInternalPromise","sendQueue","TransportSendQueue","transport","stopError","stopConnection","skipNegotiation","WebSockets","constructTransport","startTransport","negotiateResponse","redirects","getNegotiationResponse","ProtocolVersion","createTransport","negotiateUrl","resolveNegotiateUrl","connectionToken","createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","isITransport","transportExceptions","transports","availableTransports","negotiate","transportOrError","resolveTransportOrError","ServerSentEvents","LongPolling","actualTransport","transportMatches","transferFormats","aTag","executing","sendBufferedData","PromiseSource","transportResult","sendLoopPromise","sendLoop","bufferData","concatBuffers","arrayBuffers","totalLength","rejecter","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","LogLevelNameMapping","information","critical","none","None","configureLogging","logging","mapping","parseLogLevel","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","DefaultReconnectPolicy","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","genCSSMotionList","OriginCSSMotion","CSSMotionList","Fragment","motionProps","parsedKeyObjects","mixedKeyEntities","keyEntitiesLen","prevEntity","currentEntity","RefInput","inputElement","accessibilityIndex","_onKeyDown","_onChange","onPaste","_onCompositionStart","onCompositionStart","_onCompositionEnd","onCompositionEnd","inputNode","_inputNode","originRef","_inputNode$props","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","SelectSelector","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","setMotionAppear","measureRef","inputWidth","setInputWidth","inputEditable","restCount","displayValues","displayLabel","strLabel","selectionNode","itemDisabled","SingleSelector","activeValue","hasTextInput","useLock","lockRef","doLock","ForwardSelector","compositionStatusRef","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pasteClearRef","triggerOnSearch","selectNode","MultipleSelector","inputMouseDown","RefSelectTrigger","dropdownStyle","_props$direction","_props$dropdownMatchS","dropdownRender","builtInPlacements","getBuiltInPlacements","mergedTransitionName","getPopupElement","DEFAULT_OMIT_PROPS","defaultPrefixCls","OptionList","omitDOMProps","_props$optionFilterPr","_props$autoClearSearc","autoClearSearchValue","showArrow","_props$notFoundConten","_props$listHeight","_props$listItemHeight","_props$showAction","tokenSeparators","onPopupScroll","onDropdownVisibleChange","_props$internalProps","internalProps","useInternalProps","selectorRef","_useDelayReset","setBool","delayRef","cancelLatest","delaySetBool","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","innerId","setInnerId","mergedOptionLabelProp","mergedLabelInValue","selectorDomRef","setMergedValue","mergedRawValue","rawValues","setActiveValue","innerSearchValue","setInnerSearchValue","mergedSearchValue","mergedFlattenOptions","getValueOption","prevOptionMapRef","vals","useCacheOptions","displayOptions","displayFlattenOptions","tmpValues","valueOptions","prevValuesRef","resultValues","cacheLabel","useCacheDisplayValue","isSelect","newValueOption","outOption","skipTriggerSelect","selectValue","onRawSelect","onRawDeselect","newRawValues","skipTriggerChange","newRawValuesOptions","outValues","outValue","outOptions","newRawValue","customizeInputElement","innerOpen","setInnerOpen","emptyListContent","nextOpen","propsRef","onGlobalMouseDown","useSelectTriggerControl","triggerSearch","searchText","fromTyping","isCompositing","newSearchText","patchLabels","patchRawValues","getClearLock","setClearLock","focusRef","activeTimeoutIds","setAccessibilityIndex","mergedDefaultActiveFirstOption","setContainerWidth","onClear","arrowNode","mergedShowArrow","_len3","restArgs","_key3","_listRef$current","clearLock","removeInfo","_listRef$current2","SelectTrigger","BreadcrumbItem","breadcrumbItem","DropDown","__ANT_BREADCRUMB_ITEM","BreadcrumbSeparator","__ANT_BREADCRUMB_SEPARATOR","defaultItemRender","isLastItem","breadcrumbName","paramsKeys","getBreadcrumbName","Breadcrumb","crumbs","_a$separator","_a$itemRender","_a$params","childPath","originalPaths","addChildPath","breadcrumbClassName","Separator","defaultGetContainer","defaultCloseIcon","defaultBottom","defaultPlacement","getPlacementStyle","getNotificationInstance","_args$placement","_args$getContainer","_args$closeIcon","outerPrefixCls","cacheInstance","closeIconToRender","notificationClass","typeToIcon","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","getRCNoticeProps","autoMarginTag","innerInstance","_useRCNotification2","useRCNotification","hookNotify","hookApiRef","CheckableTag","PresetStatusColorRegex","InternalTag","_a$closable","isPresetColor","tagStyle","presetColor","tagClassName","handleCloseClick","isNeedWave","tagProps","tagNode","arrayWithoutHoles","nonIterableSpread","Timeout","clearFn","_clearFn","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","__self","__source","_owner","aa","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","lazy","_ctor","_status","_result","useCallback","useDebugValue","da","ea","fa","ha","ia","ja","la","ma","na","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","stateNode","Ea","Fa","Ga","Ia","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","Ya","Za","$a","db","eb","fb","gb","ib","jb","kb","nb","qb","_debugOwner","_debugSource","sb","xb","_valueTracker","stopTracking","yb","zb","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","Sb","Tb","animationiteration","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","ic","jc","kc","_dispatchListeners","_dispatchInstances","isPersistent","release","correspondingUseElement","pc","qc","topLevelType","targetInst","ancestors","eventSystemFlags","sc","containerInfo","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","blockedOn","Lc","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","cd","unstable_UserBlockingPriority","fd","gd","Oc","jd","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","tabSize","floodOpacity","stopOpacity","strokeMiterlimit","kd","nd","menuitem","keygen","wbr","od","pd","qd","ud","vd","xd","HTMLIFrameElement","yd","contentEditable","Dd","Ed","Fd","Gd","Hd","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","eventPool","destructor","getPooled","eventPhase","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","datetime","tel","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","gf","jf","anchorNode","anchorOffset","focusNode","focusOffset","kf","lf","elapsedTime","pseudoElement","mf","of","pf","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","tf","uf","vf","deltaZ","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","cg","dg","eg","hg","ig","jg","kg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","Lg","Mg","Ng","getSnapshotBeforeUpdate","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","eh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","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","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","pi","qi","retryTime","ji","unstable_avoidThisFallback","ki","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","wasMultiple","onclick","vi","wi","xi","yi","zi","WeakSet","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","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","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","activeElementDetached","focusedElem","selectionRange","Tj","wd","setStart","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","Lj","lk","findFiberByHostInstance","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unstable_createPortal","unstable_forceFrameRate","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","getShim","ReactPropTypes","instanceOf","objectOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextProvider","isForwardRef","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","originalModule","_slicedToArray3","initialAuthService","authService","authState","setAuthState","unsub","_isIterable3","_getIterator3","sliceIterator","addToUnscopables","_k","toAbsoluteIndex","IS_INCLUDES","$this","ObjectProto","TO_STRING","isIterable","getIterator","iterFn","$values","DESCRIPTORS","isEnum","isEntries","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","$Promise","USE_NATIVE","FakePromise","isThenable","isReject","reaction","exited","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","$resolve","executor","onFulfilled","onRejected","capability","$index","alreadyCalled","forbiddenField","isArrayIter","getIterFn","BREAK","ArrayProto","macrotask","Observer","standalone","KEY","SAFE_CLOSING","riter","skipClosing","onFinally","callbackfn","gOPS","$assign","aLen","hadRuntime","oldRuntime","inModule","$Object","ConfigurationValidationError","_Error","configUtil","copyCredentialsMessage","isHttps","hasProtocol","hasDomainAdmin","hasDomainTypo","endsInPath","auto_renew","copyMessage","httpsWarning","assertClientSecret","assertAppBaseUrl","appBaseUrl","hashClear","hashDelete","hashGet","hashHas","hashSet","b64","b64u","utf8","additionalArgs","isoTime","randomCharset","obj1","cleaned","newobj","linkName","altName","nativeConsole","trimmed","AuthSdkError","Cookies","storageBuilder","httpCache","cachedResponse","ajaxOptions","resp","serverErr","AuthApiError","postOptions","authServerUri","wellKnown","jwksUri","cachedKey","validationParams","appearance","winEl","hashOrSearch","plus2space","paramSplit","hasCode","isRedirectUri","webstorage","storageString","addStateToken","builtArgs","getStateToken","AuthTransaction","getPollFn","pollFn","pollLink","retryCount","recursivePoll","pollRes","AuthPollStopError","delayLength","link2fn","flattenEmbedded","embedded","links2fns","transactionStep","fetchRequest","formatResult","readData","__self__","normalizeName","normalizeValue","iteratorFor","consumed","fileReaderReady","readBlobAsArrayBuffer","bufferClone","isDataView","readBlobAsText","readArrayBufferAsText","upcased","normalizeMethod","rawHeaders","bodyInit","abortXhr","viewClasses","redirectStatuses","converter","stringifiedAttributes","rdecode","getCookieSettings","cookieSettings","OktaAuthBuilder","builderUtil","SDK_VERSION","PromiseQueue","oauthUtil","syncMethods","isWindowsPhone","Emitter","TokenManager","isIE8or9","defaultUri","currentUri","idTokenHint","logoutUri","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","GenStateSuspendedYield","evtArr","evts","liveEvents","OktaAuth","sdkValue","decodedToken","jwt","validationOptions","sdkCrypto","addPostMessageListener","responseHandler","validateResponse","oauthParams","PKCE","getTokenParams","exchangeCodeForToken","tokenDict","expiresIn","idTokenObj","buildAuthorizeParams","oauthQueryParams","mayBeArray","convertOAuthParamsToQueryParams","requestUrl","sessionTokenOverrides","idpOverrides","iframePromise","iframeEl","oauthPromise","windowOptions","windowEl","closePoller","getDefaultOAuthParams","clonedParams","_addOAuthParamsToStorage","tokenParams","tokenParamsStr","REDIRECT_OAUTH_PARAMS_NAME","browserStorage","_getOAuthParamsStrFromStorage","oauthParamsStr","_getUserInfo","accessTokenObject","idTokenObject","userInfo","authenticateHeader","errorMatches","errorDescriptionMatches","errorDescription","creds","paramStr","defaultResponseMode","nativeLoc","nativeHistory","nativeDoc","removeSearch","removeHash","firstHalf","algo","usages","cryptoKey","b64Signature","summary","dec2hex","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","getRandomString","oauthOptions","validateOptions","getPostData","tokenMgmtRef","expireTime","expireEventWait","expireEventTimeout","tokenStorage","getAsync","existingPromise","freshToken","oldToken","SdkClock","DEFAULT_OPTIONS","existingValues","valueToStore","queueItem","ComponentToWrap","oktaAuthProps","_OktaError2","errorComponent","_useOktaAuth","authStateReady","ErrorReporter","_objectWithoutProperties3","_reactRouterDom","RequireAuth","PassedComponent","Axios","mergeConfig","createInstance","axios","instanceConfig","CancelToken","isCancel","isAxiosError","InterceptorManager","dispatchRequest","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","columnNumber","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","resolvePromise","_InfoCircleFilled","_AntdIcon","tinycolor2_1","getHue","getSaturation","pColor","colorString","_CheckCircleFilled","_ExclamationCircleFilled","_CheckCircleOutlined","_InfoCircleOutlined","_CloseCircleOutlined","_ExclamationCircleOutlined","_CloseOutlined","setCacheAdd","setCacheHas","_EyeOutlined","EyeOutlined","_EyeInvisibleOutlined","EyeInvisibleOutlined","_DownOutlined","_CheckOutlined","_PlusOutlined","_EllipsisOutlined","_BarsOutlined","_RightOutlined","_LeftOutlined","$fails","wks","wksDefine","enumKeys","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","setSymbolDesc","protoDesc","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","check","buggy","_FilterFilled","FilterFilled","_CaretUpOutlined","CaretUpOutlined","_CaretDownOutlined","CaretDownOutlined","_DoubleLeftOutlined","_DoubleRightOutlined","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","DO_NOT_EXPORT_JSZIP","_dereq_","_keyStr","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","compressionMethod","compressedContent","getCompressedContent","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","getTypeOf","iTop","DataReader","checkIndex","newIndex","byteAt","readInt","readString","transformTo","lastIndexOfSignature","sig","readDate","dostime","binary","createFolders","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","findCompression","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","compressions","ZipEntries","zipEntries","decompressed","optimizedBinaryString","fileComment","zipComment","Uint8ArrayReader","NodeBufferReader","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asUint8Array","asArrayBuffer","decToHex","fileAdd","prepareFileAttrs","parentFolder","folderAdd","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","relativePath","fileClone","folder","newFolder","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","StringReader","arraybuffer","uint8array","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","sig0","sig1","sig2","sig3","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","zlib_deflate","strings","zstream","Deflate","chunkSize","windowBits","memLevel","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","_mode","next_in","avail_in","Buf8","next_out","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflator","next_out_utf8","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","TYPED_OK","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","STR_APPLY_OK","STR_APPLY_UIA_OK","adler","s1","s2","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","crcTable","makeTable","trees","adler32","rank","flush_pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","_in","_out","dmax","wsize","whave","wnext","hold","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","ZSWAP32","InflateState","havedict","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","updatewindow","inflateInfo","lbase","lext","dbase","dext","lens_index","table_index","incr","huff","base_index","MAXBITS","offs","extra_index","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","_renderEmpty","_empty","_simple","_rcNotification","_useRCNotification","_Notice","_toConsumableArray2","_classCallCheck2","_createClass2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_reactDom","_buttonGroup","_wave","_LoadingIcon","_unreachableException","_Event","_CSSMotion","_findDOMNode2","_classnames2","_raf2","_motion","_FileOutlined","FileOutlined","_MinusSquareOutlined","MinusSquareOutlined","_PlusSquareOutlined","PlusSquareOutlined","_CaretDownFilled","CaretDownFilled","_FolderOpenOutlined","FolderOpenOutlined","_FolderOutlined","FolderOutlined","getRangeAt","_EditOutlined","EditOutlined","_CopyOutlined","CopyOutlined","_EnterOutlined","EnterOutlined","listing","pre","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","childIndex","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","_common","_AlphaPointer2","_ref$className","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","mergeClasses","_cloneDeep3","toMerge","cloneSymbol","baseIsMap","baseIsSet","autoprefix","_forOwn2","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","justifyContent","WebkitJustifyContent","otherElementStyles","otherStyle","prefixed","Hover","handleMouseOver","handleMouseOut","onMouseOver","onMouseOut","Active","handleMouseDown","handleMouseUp","setProp","_Checkboard2","calculateChange","unbindEventListeners","slider","initialA","checkboardCache","serverCanvas","EditableInput","VALID_KEY_CODES","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","dragMax","getValueObjectWithLabel","arrowOffset","onChangeValue","spellCheck","hideLabel","Hue","Raised","_propTypes2","_merge2","zDepth","_ref$styles","passedStyles","Saturation","_throttle2","_container$getBoundin","bright","Swatch","_ref$onClick","onHover","_ref$focusStyle","focusStyle","transparent","swatch","Focus","AlphaPointer","Block","_BlockSwatches2","hexCode","card","alignItems","borderStyle","borderWidth","BlockSwatches","_map2","swatches","material","_CircleSwatch2","circleSize","circleSpacing","flexWrap","CircleSwatch","_reactcss","Chrome","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","toggles","ChromeFields","_isUndefined2","_UnfoldMoreHorizontalIcon2","toggleViews","showHighlight","hideHighlight","iconHighlight","textTransform","_ref$fill","_ref$width","_ref$height","_ref$style","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","CompactColor","dot","CompactFields","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","Material","borderBottom","Hex","third","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","_props$styles","backgroundImage","previews","onAccept","divider","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","PhotoshopPreviews","new","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","single","double","SketchPresetColors","borderTop","swatchWrap","colorObjOrString","Slider","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","SliderSwatch","Swatches","_SwatchesGroup2","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","Twitter","hexcode","_rcResizeObserver","_calculateNodeHeight","argIndex","framesToPop","lastExec","arguments_","elapsed","timeoutID","debounceMode","clearExistingTimeout","noTrailing","atBegin","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","browserDetector","batchProcessorMaker","stateHandler","objectStrategyMaker","scrollStrategyMaker","isCollection","idHandler","idGenerator","defaultIdHandler","reporter","batchProcessor","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","importantCssRules","strategyOptions","important","onReadyCallbacks","onResizeCallback","elementsReady","onReadyCallback","initState","isDetectable","isBusy","markBusy","makeDetectable","markAsDetectable","startSize","uninstall","cleanState","initDocument","targetDocument","busy","eventListeners","getListeners","idCount","quiet","attachFunction","Batch","topLevel","bottomLevel","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","processBatch","processingBatch","processBatchAsync","localAsyncProcess","buildCssTextString","seperator","getObject","OBJECT_STYLE","positionCheckPerformed","mutateDom","alterPositionStyles","removeRelativeStyles","getNumericalValue","checkForObjectDocumentTimeoutId","objectDocument","injectObject","listenerProxy","hasState","scrollbarSizes","widthSize","heightSize","getScrollbarSizes","containerClass","containerAnimationClass","containerAnimationActiveClass","injectStyle","injectScrollStyle","getExpandElement","getShrinkElement","isUnrendered","elementStyle","widthCSS","heightCSS","storeStyle","storeCurrentSize","lastWidth","lastHeight","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","positionScrollbars","shrink","expandWidth","expandHeight","shrinkWidth","getShrinkWidth","shrinkHeight","getShrinkHeight","injectContainerElement","addAnimationClass","onAnimationStart","onRendered","injectScrollElements","rootContainer","scrollbarWidth","scrollbarHeight","containerContainerStyle","containerStyle","expandStyle","shrinkStyle","expandChildStyle","shrinkChildStyle","containerContainer","expandChild","shrinkChild","onExpandScroll","onShrinkScroll","onShrink","registerListenersAndPositionElements","updateChildSizes","getExpandChildElement","updateDetectorElements","areElementsInjected","notifyListenersIfNeeded","lastNotifiedWidth","lastNotifiedHeight","handleScroll","finalizeDomMutation","install","storeStartSize","isInDocument","isDetached","isEqualImpl","_reactResizable","GridItem","newPosition","parentRect","clientRect","cLeft","pLeft","cTop","pTop","_calcXY","getPositionParams","_calcXY2","_calcXY3","callbackData","onResizeHandler","oldPosition","moveDroppingItem","prevDroppingPosition","currentNode","shouldDrag","mins","maxes","_calcWH","dropping","cssTransforms","createStyle","mixinResizable","mixinDraggable","_DraggableCore","_positionFns","_log","dragged","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","_this$props$position","defaultPosition","prevPropsPosition","isElementSVG","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","getPrefix","browserPrefixToStyle","shouldCapitalize","kebabToTitleCase","eventsFor","dragEventFor","allowAnyClick","thisNode","coreEvent","enableUserSelectHack","_snapToGrid2","initMouseEvent","ResizableBox","_Resizable","propsWidth","propsHeight","_responsiveUtils","_ReactGridLayout","getIndentationValue","ResponsiveReactGridLayout","generateInitialState","_cols","colNo","onWidthChange","newBreakpoint","newCols","newLayouts","onBreakpointChange","xxs","ComposedComponent","onWindowResize","measureBeforeMount","CSVLink","CSVDownload","_Download2","_Link2","_core","_metaProps","specs","_props2","_props3","handleLegacy","handleAsyncClick","handleSyncClick","_props4","_UpOutlined","UpOutlined","_ClockCircleOutlined","_CalendarOutlined","_SwapRightOutlined","_ArrowRightOutlined","ArrowRightOutlined","_ArrowLeftOutlined","ArrowLeftOutlined","_WarningFilled","WarningFilled","cachedGuess","zones","countries","guesses","logError","momentVersion","charCodeToInt","unpackBase60","whole","fractional","arrayToInt","mapIndices","indices","unpack","untils","intToUntil","abbrs","population","Zone","packedString","_set","country_name","zone_names","OffsetAt","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","resolvedOptions","timeZone","zoneScore","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","zone_name","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_zones","_names","_countries","country_zones","addCountries","zoneExists","didShowError","ignoreCache","zonesForCountry","with_offset","abbrWrap","_z","resetZoneWrap","defaultZone","setDefault","_PictureTwoTone","PictureTwoTone","_FileTwoTone","FileTwoTone","_PaperClipOutlined","PaperClipOutlined","_DeleteOutlined","DeleteOutlined","_DownloadOutlined","DownloadOutlined","_patterns","lazyPlayer","canEnablePIP","pictureInPictureEnabled","stdOnEnd","ieOnEnd","setAttributes","MATCH_PLAYLIST","MATCH_USER_UPLOADS","MATCH_NOCOOKIE","YouTube","listType","playlist","getID","_this$props$config","_window$SDK_GLOBAL$Pl","PlayerState","UNSTARTED","PLAYING","PAUSED","BUFFERING","ENDED","CUED","isPlaylist","seekTo","_onError","loadPlaylist","parsePlaylist","cueVideoById","videoId","startSeconds","endSeconds","Player","autoplay","mute","setLoop","fraction","rate","SoundCloud","setVolume","_SC$Widget$Events","Widget","PLAY","PLAY_PROGRESS","FINISH","ERROR","fractionLoaded","loadedProgress","frameBorder","Vimeo","refreshDuration","secondsLoaded","SDK_URL","Facebook","FB","XFBML","xfbml","playerID","Streamable","playerjs","scrolling","allowFullScreen","Wistia","_args","defineControl","_wq","autoPlay","silentAutoPlay","controlsVisibleOnLoad","fullscreenButton","playbar","playbackRateControl","qualityControl","volumeControl","settingsControl","smallPlayButton","videoID","Twitch","isChannel","setChannel","setVideo","_Twitch$Player","READY","ONLINE","OFFLINE","DailyMotion","apiready","seeked","video_end","durationchange","onDurationChange","bufferedTime","Mixcloud","PlayerWidget","feed","Vidyard","addReadyListener","renderPlayer","getPlayerMetadata","length_in_seconds","VidyardV4","destroyPlayer","Kaltura","referrerPolicy","HAS_NAVIGATOR","IS_IPAD_PRO","maxTouchPoints","IS_IOS","MATCH_DROPBOX_URL","MATCH_CLOUDFLARE_STREAM","FilePlayer","webkitPresentationMode","prevPlayer","shouldUseAudio","removeListeners","srcObject","hls","onPresentationModeChange","shouldUseHLS","poster","Hls","MANIFEST_PARSED","loadSource","attachMedia","shouldUseDASH","dashjs","MediaPlayer","getDebug","setLogToBrowserConsole","LOG_LEVEL_NONE","shouldUseFLV","flvjs","flv","createPlayer","attachMediaElement","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","seekable","buffered","useHLS","useDASH","useFLV","_this$props11","getSource","renderSourceElement","renderTrack","_memoizeOne","_reactFastCompare","_Player3","Preview","IS_BROWSER","SUPPORTED_PROPS","UniversalSuspense","customPlayers","players","ReactPlayer","showPreview","_wrapper","_player","getCurrentTime","getSecondsLoaded","getInternalPlayer","getActivePlayer","references","activePlayer","handleReady","handleClickPreview","getAttributes","renderPreview","renderActivePlayer","_arr2","_i3","_arr3","_Player2","safeIsNaN","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastResult","calledOnce","newArgs","playedSeconds","loadedSeconds","played","prevPlayed","prevLoaded","progressTimeout","progressFrequency","isLoading","loadOnReady","handleDurationCheck","isPlaying","startOnPlay","setPlaybackRate","seekOnPlay","loopOnEnded","durationCheckTimeout","onDurationCalled","disablePIP","forceLoad","enablePIP","unmute","handlePlayerMount","handlePlay","handlePause","handleEnded","handleLoaded","handleError","fetchImage","thumbnail_url","flexCenter","preview","backgroundSize","defaultPlayIcon","handleKeyPress","_handlebarsSafeString2","_handlebarsException2","_handlebarsNoConflict2","HandlebarsEnvironment","Exception","VM","spec","inst","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","decorators","registerDefaultHelpers","registerDefaultDecorators","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","unregisterHelper","registerPartial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","createFrame","toHTML","possible","badChars","escapeChar","frame","blockParams","appendContextPath","contextPath","_Object$defineProperty","errorProps","endLineNumber","endColumn","nop","getDesc","setDescs","getNames","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","_Object$keys","execIteration","newContext","priorKey","fails","conditional","includeZero","_decoratorsInline2","methodMap","lookupLevel","levelMap","_Object$create","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","whitelist","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","protoAccessControl","checkWhiteList","loggedProperties","protoAccessControlForType","logUnexpecedPropertyAccessOnce","_Object$seal","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","decorator","main_d","templateWasPrecompiledWithCompilerV7","depths","invokePartial","resolvePartial","extendedOptions","compilerOptions","programs","declaredBlockParams","programWrapper","wrapProgram","mergeIfNeeded","_setup","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","helper","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","prog","currentDepths","seal","$seal","transformOptionsFn","$Handlebars","definition","hasStacks","qFileName","qStartingLine","captureLine","flushing","requestTick","isNodeJS","laterQueue","runSingle","requestPortTick","runAfter","uncurryThis","QReturnValue","array_slice","array_reduce","basis","array_indexOf","array_map","thisp","object_create","object_hasOwnProperty","object_keys","object_toString","isStopIteration","ReturnValue","makeStackTraceLong","stacks","concatedStacks","stackString","desiredLines","isInternalFrame","stackLine","filterStackString","getFileNameAndLineNumber","attempt1","attempt2","attempt3","fileNameAndLineNumber","qEndingLine","deferred","coerce","fulfill","resolvedPromise","progressListeners","promiseDispatch","operands","nearerValue","nearer","longStackSupport","become","newPromise","progressListener","answerPs","inspected","progressed","Q_DEBUG","makeNodeResolver","passByCopy","makePromise","_fulfilled","newException","_rejected","threw","_progressed","fcall","thenResolve","thenReject","isFulfilled","isRejected","unhandledReasons","unhandledRejections","reportedUnhandledRejections","trackUnhandledRejections","resetUnhandledRejections","atReport","untrackRejection","trackRejection","rhs","pendingCount","snapshot","allResolved","getUnhandledReasons","stopUnhandledRejectionTracking","master","makeGenerator","continuer","StopIteration","errback","spawn","promised","mapply","mcall","fapply","fbind","regardless","fin","onUnhandledError","nfapply","nodeArgs","nfcall","nfbind","denodeify","baseArgs","nbind","bound","nmapply","npost","nsend","nmcall","ninvoke","nodeify","nodeback","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","installReadyStateChangeImplementation","previousUnderscore","ObjProto","FuncProto","nativeIsArray","nativeBind","_wrapped","optimizeCb","argCount","undefinedOnly","MAX_ARRAY_INDEX","createReduce","currentKey","lastComputed","shuffled","indexBy","shallow","createPredicateIndexFinder","createIndexFinder","predicateFind","isSorted","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","hasher","address","later","immediate","callNow","hasEnumBug","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","extendOwn","oiteratee","aStack","bStack","areArrays","aCtor","bCtor","Int8Array","accum","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","noMatch","escapes","oldSettings","_chain","isChrome","js_api_version","EXTENSION_ID","MessageTypes","ErrorCodes","U2fRequest","U2fResponse","Transport","Transports","SignRequest","SignResponse","RegisterRequest","RegisterResponse","RegisteredKey","GetJsApiVersionResponse","getMessagePort","U2F_SIGN_REQUEST","signRequests","lastError","getIframePort_","getChromeRuntimePort_","isAndroidChrome_","getAuthenticatorPort_","isIosChrome_","getIosPort_","WrappedChromeRuntimePort_","WrappedAuthenticatorPort_","WrappedIosPort_","port_","formatSignRequest_","registeredKeys","timeoutSeconds","reqId","requestId","formatRegisterRequest_","registerRequests","U2F_REGISTER_REQUEST","onMessage","requestId_","requestObject_","intentUrl","INTENT_URL_BASE_","getPortType","onRequestUpdate_","messageObject","responseObject","iframeOrigin","EXTENSION_TIMEOUT_SEC","waitingForPort_","reqCounter_","callbackMap_","getPortSingleton_","responseHandler_","opt_timeoutSeconds","getApiVersion","sendSignRequest","sendRegisterRequest","U2F_GET_API_VERSION_REQUEST","_props$type","_props$orientation","dashed","plain","orientationPrefix","spaceSize","small","middle","large","Space","directionConfig","_props$size","mergedAlign","itemClassName","marginDirection","Popover","settingVisible","onConfirm","popconfirmLocale","okButtonProps","cancelButtonProps","okType","innerSvgProps","InternalTimePicker","InternalRangePicker","addon","internalRenderExtraFooter","renderBack","backIcon","onBack","getBackIcon","updateCompact","breadcrumb","customizeClassName","breadcrumbDom","renderBreadcrumb","subTitle","headingPrefixCls","backIconDom","renderFooter","InternalSelect","isSelectOptionOrSelectOptGroup","AutoComplete","customizeInput","dataSource","_childNodes","optionChildren","optionValue","RefAutoComplete","ColumnGroup","Column","getPathValue","pathList","getColumnsKey","columnKeys","dataIndex","validateValue","RefCell","cellProps","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_ref$additionalProps","rowType","renderData","cellColSpan","cellRowSpan","cellStyle","cellClassName","restCellProps","mergedColSpan","mergedRowSpan","fixedStyle","isFixLeft","isFixRight","alignStyle","ellipsisConfig","MemoCell","shouldCellUpdate","TableContext","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","nextColumn","prevColumn","HeaderRow","rowProps","flattenColumns","RowComponent","rowComponent","CellComponent","cellComponent","onHeaderRow","columnsKey","cellIndex","fixedInfo","onHeaderCell","Cell","rootColumns","fillRowCells","colIndex","rowIndex","currentColIndex","colSpans","subColumns","hasSubColumns","parseHeaderRows","WrapperComponent","trComponent","thComponent","ColGroup","colWidths","mustInsert","columCount","FixedHeader","scrollbarSize","lastColumn","ScrollBarColumn","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","cloneWidths","columnWidthsReady","tableLayout","BodyContext","ExpandedRow","fixHeader","fixColumn","horizonScroll","componentWidth","contentNode","BodyRow","rowKey","getRowKey","rowExpandable","onRow","_props$indent","childrenColumnName","fixedInfoList","_React$useContext2","expandableType","expandRowByClick","onTriggerExpand","expandedRowClassName","indentSize","expandedRowRender","expandIconColumnIndex","expandRended","setExpandRended","recordKey","rowSupportExpand","nestExpandable","hasNestChildren","mergedExpandable","computeRowClassName","expandRowNode","nestRowNode","baseRowNode","_additionalProps","appendCellNode","additionalCellProps","columnClassName","onCell","expandContent","computedExpandedRowClassName","subRecord","subKey","ResizeContext","MemoBody","measureColumnWidth","emptyNode","onColumnResize","_React$useContext3","tdComponent","columnKey","convertChildrenToColumns","nodeChildren","flatColumns","parsedFixed","subColum","useColumns","transformColumns","baseColumns","withExpandColumns","_expandColumn","expandColIndex","expandColumn","recordExpandable","cloneColumns","mergedColumns","finalColumns","revertForRtl","useStickyOffsets","leftOffsets","rightOffsets","Panel","FooterComponents","renderExpandIcon","expandClassName","EMPTY_DATA","EMPTY_SCROLL_TARGET","MemoTableContent","showHeader","emptyText","internalHooks","internalRefs","setScrollbarSize","scrollXStyle","scrollYStyle","scrollTableStyle","mergedComponents","fillProps","defaultComponent","expandableConfig","legacyExpandableConfig","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedExpandIcon","mergedChildrenColumnName","__PARENT_RENDER_ICON__","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","setComponentWidth","_useColumns","_useColumns2","columnContext","fullTableRef","scrollHeaderRef","scrollBodyRef","pingedLeft","setPingedLeft","pingedRight","setPingedRight","_useFrameState","updateBatchRef","batchUpdater","useFrameState","_useFrameState2","colsWidths","updateColsWidths","pureColWidths","widths","newWidths","_useTimeoutLock","frameRef","useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","mergedScrollLeft","compareTarget","groupTableNode","bodyContent","TableComponent","mergedTableLayout","headerProps","bodyTable","bodyColGroup","footerTable","customizeScrollBody","ariaProps","getDataAndAriaProps","fullTable","TableContextValue","BodyContextValue","ResizeContextValue","usePagination","pagination","_a$total","paginationTotal","paginationObj","innerPagination","setInnerPagination","mergedPagination","extendsObject","refreshPagination","EMPTY_LIST","getFixedType","useSelection","rowSelection","selectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectMultiple","selectionColWidth","selectionType","selections","customizeRenderCell","renderCell","hideSelectAll","pageData","getRecordByKey","expandType","tableLocale","innerSelectedKeys","setInnerSelectedKeys","mergedSelectedKeys","mergedSelectedKeySet","lastSelectedKey","setLastSelectedKey","setSelectedKeys","availableKeys","triggerSingleSelection","mergedSelections","flattedData","flattenData","checkboxPropsMap","recordKeys","checkedCurrentAll","checkedCurrentSome","customizeSelections","onSelectionClick","allDisabled","changeKeys","pointKeys","recordIndex","rangeKeys","changedKeys","selectionColumn","columnTitle","_renderCell","restColumns","selectionFixed","getColumnKey","getColumnPos","renderColumnTitle","getMultiplePriority","sorter","getSortFunction","collectSortStates","sortStates","columnPos","multiplePriority","defaultSortOrder","stateToInfo","sorterStates","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","sorterState","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","sortDirections","showSorterTooltip","setSortStates","mergedSorterStates","collectedStates","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","triggerSorter","sortState","newSorterStates","innerColumns","injectSorter","sorterSates","defaultSortDirections","tableShowSorterTooltip","newColumn","sorterOrder","nextSortOrder","nextSortDirection","upNode","downNode","sortTip","renderSortTitle","originOnClick","FilterDropdownMenuWrapper","FilterDropdown","filterMultiple","filterState","triggerFilter","filterDropdownVisible","onFilterDropdownVisibleChange","filtered","forceFiltered","newVisible","propFilteredKeys","filteredKeysRef","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","openRef","dropdownContent","internalTriggerFilter","mergedKeys","dropdownMenuClass","filterDropdown","clearFilters","renderFilterItems","filterIcon","collectFilterStates","filterStates","filteredValue","defaultFilteredValue","generateFilterInfo","currentFilters","getFilterData","currentData","_filterState$column","onFilter","flattenKeys","realKey","useFilter","onFilterChange","setFilterStates","mergedFilterStates","newFilterStates","injectFilter","_column$filterMultipl","useTitleColumns","columnTitleProps","fillTitle","cloneColumn","iconPrefix","Document","easeInOutCubic","_options$getContainer","_options$duration","frameFunc","nextScrollTop","HTMLDocument","customizeDropdownPrefixCls","legacyChildrenColumnName","_props$showSorterTool","tableProps","_React$useContext$loc","rawData","_mergedExpandable$chi","mapCacheRef","kvMap","useLazyKVMap","changeEventInfo","triggerOnChange","changeInfo","resetPagination","scrollToFirstRowOnChange","currentDataSource","_useSorter2","useSorter","transformSorterColumns","sorterTitleProps","getSorters","sortedData","_useFilter2","transformFilterColumns","transformTitleColumns","_usePagination2","pageProp","getPaginationParam","_mergedPagination$cur","_mergedPagination$pag","_useSelection2","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","paginationSize","topPos","bottomPos","wrapperClassNames","RcTable","mergedRowClassName","SELECTION_ALL","SELECTION_INVERT","getBody","onprogress","getError","onSuccess","acceptedFiles","acceptedFilesArray","baseMimeType","validType","traverseFileTree","isAccepted","_traverseFileTree","webkitRelativePath","isDirectory","dirReader","createReader","fileList","sequence","readEntries","entryList","loopFiles","entryItem","webkitGetAsEntry","AjaxUploader","getUid","reqs","uploadFiles","fileInput","onFileDrop","directory","attrAccept","postFiles","saveFileInput","_isMounted","beforeUpload","processedFile","processedFileType","_props$transformFile","transformFile","originFile","customRequest","defaultRequest","transformedFile","requestOption","openFileDialogOnClick","webkitdirectory","saveUploader","uploader","AjaxUpload","multipart","fileToObject","lastModifiedDate","originFileObj","getFileItem","isImageFileType","validProgress","handleGradient","strokeColor","_strokeColor$from","_strokeColor$to","_strokeColor$directio","sortedGradients","gradients","tempArr","formattedKey","sortGradient","backgroundProps","trailStyle","successPercent","trailColor","percentStyle","successPercentStyle","successSegment","trailWidth","useTransitionDuration","percentList","prevTimeStamp","updated","pathStyle","gapPosition","strokeColorList","pathString","viewBoxString","stackPtg","preserveAspectRatio","ptg","gradientSeed","stripPercentToNumber","symArray","getPathStyles","gapDegree","beginPositionX","beginPositionY","endPositionX","endPositionY","gradientId","_getPathStyles","stopColor","pathStyles","getStokeList","getPercentage","successPtg","gapDeg","circleStyle","circleWidth","gapPos","getStrokeColor","isGradient","RCCircle","Steps","steps","_props$percent","_props$strokeWidth","stepWidth","styledSteps","ProgressStatuses","Progress","renderProgress","showInfo","progressStatus","getProgressStatus","progressInfo","renderProcessInfo","_this$props$percent","getPercentNumber","isLineType","percentNumber","UploadList","handlePreview","onPreview","handleDownload","onDownload","handleClose","handleIconRender","iconRender","isImgUrl","isImageUrl","fileIcon","handleActionIconRender","customIcon","btnProps","btnIcon","renderUploadList","_classNames6","_this$props2$items","showPreviewIcon","showRemoveIcon","showDownloadIcon","customRemoveIcon","customDownloadIcon","downloadIcon","progressProps","thumbUrl","uploadingClassName","thumbnail","aClassName","loadingProgress","infoUploadingClass","linkProps","downloadOrDelete","listItemNameClass","previewIcon","iconAndPreview","listContainerNameClass","listClassNames","animationDirection","previewDataUrl","drawWidth","drawHeight","dataURL","filenameWithoutSuffix","saveUpload","targetItem","nextFileList","fileIndex","clearProgressTimer","handleRemove","removedFileList","removeFileItem","dragState","stateFileList","uniqueList","showUploadList","propLocale","renderUpload","rcUploadProps","uploadList","dragCls","RcUpload","uploadButtonCls","uploadButton","defaultFileList","progressTimer","supportServerRender","Dragger","LazyRenderBox","useClassName","setTransformOrigin","Dialog","inTransition","onAnimateLeave","onDialogMouseDown","dialogMouseDown","onMaskMouseUp","onMaskClick","sentinelStart","sentinelEnd","getDialogElement","closer","sentinelStyle","dialogElement","bodyProps","destroyOnClose","getWrapStyle","wrapStyle","getMaskStyle","maskStyle","getMaskElement","maskElement","maskTransition","getMaskTransitionName","maskProps","focusTriggerAfterClose","mousePosition","tryFocus","dialogNode","dialog","elOffset","lastOutSideFocusNode","wrapClassName","wrapProps","ActionButton","clickedRef","buttonProps","actionFn","returnValueOfOnOk","handlePromiseOnOk","ConfirmDialog","centered","okCancel","autoFocusButton","cancelButton","triggerCancel","HookModal","innerConfig","setInnerConfig","newConfig","originConfig","modalLocale","currentConfig","unmountResult","destroyFns","withWarn","withInfo","withSuccess","withError","withConfirm","handleCancel","handleOk","confirmLoading","defaultFooter","wrapClassNameExtended","useModal","_usePatchElement2","usePatchElement","patchElement","getConfirmFunc","withFunc","closeFunc","modalRef","modalWarn","OriginModal","destroyAll","FormItemContext","updateItemErrors","canOverflow","skipOverflowHiddenElements","isScrollable","getFrameElement","isHiddenByFrame","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","scrollMode","inline","boundary","checkBoundary","scrollingElement","frames","visualViewport","viewportX","viewportY","targetTop","targetRight","targetBottom","targetLeft","targetBlock","targetInline","computations","_frame$getBoundingCli","frameStyle","borderLeft","borderRight","blockScroll","inlineScroll","isOptionsObject","targetIsDetached","compute","computeOptions","canSmoothScroll","defaultBehavior","candidate","getFieldId","rcForm","useRcForm","wrapForm","__INTERNAL__","scrollToField","fieldId","InternalForm","contextSize","colon","labelCol","wrapperCol","hideRequiredMark","_props$layout","scrollToFirstError","formClassName","formProps","errorInfo","FormItemLabel","htmlFor","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","labelClassName","FormItemInput","onDomErrorVisibleChange","hasFeedback","mergedWrapperCol","_useCacheErrors2","changeTrigger","directly","newErrors","prevErrors","prevErr","useCacheErrors","changedVisible","cacheErrors","memoErrors","IconNode","subFormContext","MemoInput","FormItem","fieldKey","destroyRef","domErrorVisible","innerSetDomErrorVisible","prevValidateStatusRef","inlineErrors","setInlineErrors","contextValidateTrigger","setDomErrorVisible","hasName","hasValidName","nameRef","updateChildItemErrors","subName","subErrors","prevInlineErrors","renderLayout","baseChildren","_itemClassName","mergedErrors","mergedValidateStatus","isRenderProps","updateRef","variables","mergedName","fieldKeys","ruleEntity","mergedControl","_a2","_c2","FormList","providerProps","Typography","_a$component","setContentRef","componentClassName","RefTypography","ExportTypography","isStyleSupport","styleNameList","ellipsisContainer","Editable","inComposition","lastKeyCode","confirmChange","onSave","setTextarea","textAreaClassName","wrapperStyle","pxToNumber","originEle","fixedContent","ellipsisStr","_option$suffix","originStyle","originCSS","textOverflow","webkitLineClamp","contentList","prevChild","fixedNodes","ellipsisChildren","ellipsisContentHolder","ellipsisTextNode","appendChildNode","measureNode","finished","reactNode","fullText","textNode","measureText","startLoc","endLoc","lastSuccessLoc","midLoc","currentStepText","_measureNode","isLineClampSupport","isTextOverflowSupport","contentRef","ellipsisText","ellipsisContent","isEllipsis","clientRendered","onExpandClick","getEllipsis","onEditClick","triggerEdit","onEditChange","getEditable","onEditCancel","onCopyClick","copyable","copyId","setEditRef","editIcon","syncEllipsis","prevEllipsis","editing","_this$getEllipsis2","onEllipsis","_this$getEllipsis3","canUseCSSEllipsis","_measure","renderOperations","_this$getEllipsis4","expandStr","editStr","copiedStr","copyStr","forceRenderExpanded","renderExpand","renderEdit","renderCopy","_this$getEllipsis5","textProps","cssEllipsis","cssTextOverflow","cssLineClamp","strong","currentContent","wrapperDecorations","WebkitLineClamp","renderEditInput","renderContent","baseRef","TITLE_ELE_LIST","_props$level","Paragraph","OriginTypography","PanelContent","_isActived","destroyInactivePanel","contentCls","CollapsePanel","handleItemClick","onItemClick","panelKey","accordion","headerCls","itemCls","currentActiveKey","Collapse","openAnimationFactory","collapseClassName","getItems","onClickItem","setActiveKey","getNewChild","_props$showArrow","collapsePanelClassName","RcCollapse","requestAnimationFrameId","expandIconPosition","getIconPosition","_props$rows","rowList","shapeCls","SkeletonAvatar","renderSkeletonAvatar","SkeletonButton","renderSkeletonButton","SkeletonInput","renderSkeletonInput","getComponentProps","Skeleton","renderSkeleton","paragraph","avatarNode","hasAvatar","hasTitle","hasParagraph","avatarProps","getAvatarBasicProps","paragraphNode","titleProps","getTitleBasicProps","paragraphProps","basicProps","getParagraphBasicProps","transitionEndObject","transitionStr","transitionEnd","currentDrawer","DrawerChild","domFocus","removeStartHandler","removeMoveHandler","differX","differY","maskDom","handlerDom","contentDom","getTouchParentScroll","isY","isX","onWrapperTransitionEnd","contentWrapper","getCurrentDrawerSome","openLevelTransition","_this$getHorizontalBo","getHorizontalBoolAndPlacementName","isHorizontal","placementName","contentValue","setLevelAndScrolling","setLevelTransform","levelMove","ease","showMask","levelDom","levelValue","$levelMove","transformArguments","$value","placementPos","toggleScrollingToDrawerAndBody","eventArray","domArray","addScrollingEffect","touchAction","remScrollingEffect","widthTransition","transformTransition","heightTransition","getLevelDom","vars","drawerId","$open","onHandleClick","handlerChildren","Drawer","DrawerWrapper","_open","Child","$forceRender","DrawerContext","onDestroyTransitionEnd","getDestroyOnClose","destroyClose","getPushTransform","getRcDrawerStyle","offsetStyle","getOffsetStyle","renderBody","drawerStyle","renderHeader","parentDrawer","drawerClassName","RcDrawer","preProps","headerStyle","headerClassName","renderCloseIcon","footerStyle","footerClassName","Record","traverseNodesKey","calcRangeKeys","startKey","endKey","End","Start","convertDirectoryKeysToNodes","restKeys","getIcon","getTreeData","DirectoryTree","cachedSelectedKeys","getInitExpandedKeys","onDebounceExpand","connectClassName","blockNode","newSelectedKeys","_node$key","newEvent","ctrlPick","shiftPick","expandAction","_switcherIcon","RcTree","nodeProps","renderSwitcherIcon","ActionMap","renderPassword","visibilityToggle","_iconProps","_props$iconRender","iconTrigger","iconProps","omittedProps","NoFound","ServerError","Unauthorized","IconMap","ExceptionMap","noFound","serverError","unauthorized","ExceptionStatus","Result","SVGComponent","renderExtra","PRESENTED_IMAGE_403","PRESENTED_IMAGE_404","PRESENTED_IMAGE_500","notEmpty","renderCells","showLabel","showContent","_ref3$props","_ref3$props$prefixCls","_ref3$props$span","DescriptionsItem","DEFAULT_COLUMN_MAP","getFilledItem","rowRestCol","Descriptions","_ref$column","_ref$colon","mergedColumn","getColumn","newScreens","tmpRow","mergedSpan","getRows","ErrorBoundary","Alert","iconMapFilled","iconMapOutlined","banner","_a$className","closeText","closing","setClosing","setClosed","isClosable","isShowIcon","alertCls","dataOrAriaProps","renderIconNode","Grid","_props$hoverable","Card","_props$headStyle","headStyle","_props$bodyStyle","_props$bordered","cover","tabList","activeTabKey","defaultActiveTabKey","_props$tabProps","tabProps","loadingBlockStyle","loadingBlock","hasActiveTabKey","onTabChange","coverDom","actionDom","getAction","containGrid","isContainGrid","throttleByAnimationFrameDecorator","definingProperty","boundFn","throttled","throttleByAnimationFrame","getTargetRect","getFixedTop","placeholderReact","targetRect","getFixedBottom","offsetBottom","TRIGGER_EVENTS","observerEntities","addObserveTarget","affix","affixList","targetAffix","lazyUpdatePosition","removeObserveTarget","observerEntity","oriObserverEntity","hasAffix","AffixStatus","__decorate","getDefaultTarget","Affix","lastAffix","prevTarget","getOffsetTop","getOffsetBottom","savePlaceholderNode","placeholderNode","saveFixedNode","fixedNode","targetFunc","getTargetFunc","Prepare","targetNode","fixedTop","fixedBottom","affixStyle","placeholderStyle","prepareMeasure","updatePosition","loadingIcon","checkedChildren","unCheckedChildren","innerChecked","setInnerChecked","newChecked","mergedChecked","switchClassName","RcSwitch","getNumberArray","ScrollNumber","customizeCount","displayComponent","_a$onAnimated","onAnimated","animateStarted","setAnimateStarted","setCount","prevCount","setPrevCount","lastCount","setLastCount","renderCurrentNumber","lstCount","currentDigit","lastDigit","getPositionByNum","removeTransition","childrenToReturn","renderNumberList","Badge","customizeScrollNumberPrefixCls","scrollNumberPrefixCls","_a$count","_a$overflowCount","overflowCount","_a$dot","_a$showZero","showZero","getNumberedDisplayCount","hasStatus","isZero","numberedDisplayCount","isDot","getDisplayCount","getStyleWithOffset","displayCount","renderDisplayComponent","customNode","statusCls","badgeClassName","styleWithOffset","statusTextColor","bDot","scrollNumberCls","renderBadgeNumber","isValidProps","InputNumber","validValue","toPrecisionAsStep","nextInputValue","pressingUpOrDown","inputting","rawInput","cursorStart","partRestoreByAfter","cursorAfter","fixCaret","focusOnUpDown","isNotCompleteNumber","decimalSeparator","_state$value","_state$inputValue","newValueInString","valueString","ratioPrecision","getPrecision","stepPrecision","currentValuePrecision","getMaxPrecision","recordCursorPosition","numberIsTooLarge","rat","precisionFactor","getPrecisionFactor","getCurrentValidValue","outOfRange","autoStepTimer","useTouch","upHandler","downHandler","inputMode","_state2","inputDisplayValue","getInputDisplayValue","isUpDisabled","isDownDisabled","upClassName","downClassName","upEvents","downEvents","down","getFullNum","getRatio","_props5","inputDisplayValueFormat","formatWrapper","cursorEnd","cursorBefore","restoreByAfter","fullStr","prevCursorPos","partStr","renderInputNumber","upIcon","downIcon","mergeSize","inputNumberClass","RcInputNumber","colStyle","ListContext","itemLayout","actionsContent","itemChildren","isItemContainsTextNodeAndNotSingular","_a$pagination","_a$split","loadMore","_a$dataSource","_a$loading","paginationCurrent","setPaginationCurrent","setPaginationSize","triggerPaginationEvent","onPaginationChange","onPaginationShowSizeChange","loadingProp","paginationProps","largestPage","paginationContent","splitDataSource","currentBreakpoint","childrenContent","renderInnerItem","childrenList","renderEmptyHandler","renderEmptyFunc","paginationPosition","MinusOutlined","AntdIcon","MinusOutlinedSvg","PlusOutlinedSvg","EditOutlinedSvg","EllipsisOutlinedSvg","DeleteOutlinedSvg","CaretLeftOutlined","CaretLeftOutlinedSvg","UserAddOutlined","UserAddOutlinedSvg","UserDeleteOutlined","UserDeleteOutlinedSvg","ExportOutlined","ExportOutlinedSvg","RightOutlinedSvg","UnorderedListOutlined","UnorderedListOutlinedSvg","ApartmentOutlined","ApartmentOutlinedSvg","SwapOutlined","SwapOutlinedSvg","QuestionCircleOutlined","QuestionCircleOutlinedSvg","HomeOutlined","HomeOutlinedSvg","CloseCircleOutlinedSvg","PhoneOutlined","PhoneOutlinedSvg","MailOutlined","MailOutlinedSvg","UserOutlined","UserOutlinedSvg","LogoutOutlined","LogoutOutlinedSvg","AppstoreAddOutlined","AppstoreAddOutlinedSvg","FormOutlined","FormOutlinedSvg","SettingOutlined","SettingOutlinedSvg","BellOutlined","BellOutlinedSvg","WarningOutlined","WarningOutlinedSvg","DownOutlinedSvg","MenuUnfoldOutlined","MenuUnfoldOutlinedSvg","MenuFoldOutlined","MenuFoldOutlinedSvg","CloudServerOutlined","CloudServerOutlinedSvg","BarChartOutlined","BarChartOutlinedSvg","FundProjectionScreenOutlined","FundProjectionScreenOutlinedSvg","FieldTimeOutlined","FieldTimeOutlinedSvg","FundOutlined","FundOutlinedSvg","IdcardOutlined","IdcardOutlinedSvg","SnippetsOutlined","SnippetsOutlinedSvg","PlayCircleOutlined","PlayCircleOutlinedSvg","ZoomInOutlined","ZoomInOutlinedSvg","SyncOutlined","SyncOutlinedSvg","CloseOutlinedSvg","LoginOutlined","LoginOutlinedSvg","IssuesCloseOutlined","IssuesCloseOutlinedSvg","FilterOutlined","FilterOutlinedSvg","MinusCircleOutlined","MinusCircleOutlinedSvg","LoadingOutlinedSvg","ReloadOutlined","ReloadOutlinedSvg","DownloadOutlinedSvg","FileTextOutlined","FileTextOutlinedSvg","BarcodeOutlined","BarcodeOutlinedSvg","CaretUpFilled","CaretUpFilledSvg","CaretDownFilledSvg","CaretRightFilled","CaretRightFilledSvg","CaretLeftFilled","CaretLeftFilledSvg","SaveOutlined","SaveOutlinedSvg","UndoOutlined","UndoOutlinedSvg","UploadOutlined","UploadOutlinedSvg","StarFilled","StarFilledSvg","InfoCircleOutlinedSvg","SubnodeOutlined","SubnodeOutlinedSvg","PauseOutlined","PauseOutlinedSvg","RollbackOutlined","RollbackOutlinedSvg","TabletOutlined","TabletOutlinedSvg","CopyOutlinedSvg","CheckCircleTwoTone","CheckCircleTwoToneSvg","CheckCircleOutlinedSvg","KeyOutlined","KeyOutlinedSvg","EyeInvisibleFilled","EyeInvisibleFilledSvg","EyeOutlinedSvg","CheckOutlinedSvg","ClockCircleOutlinedSvg","SearchOutlinedSvg","LockOutlined","LockOutlinedSvg","UnlockOutlined","UnlockOutlinedSvg","InfoOutlined","InfoOutlinedSvg","BlockOutlined","BlockOutlinedSvg","GlobalOutlined","GlobalOutlinedSvg","LeftOutlinedSvg","ImportOutlined","ImportOutlinedSvg","FileAddOutlined","FileAddOutlinedSvg","InboxOutlined","InboxOutlinedSvg","ArrowUpOutlined","ArrowUpOutlinedSvg","ArrowDownOutlined","ArrowDownOutlinedSvg","CheckSquareFilled","CheckSquareFilledSvg","StopFilled","StopFilledSvg","CloseSquareFilled","CloseSquareFilledSvg","PushpinOutlined","PushpinOutlinedSvg","Loading3QuartersOutlined","Loading3QuartersOutlinedSvg","LikeOutlined","LikeOutlinedSvg","FilePdfOutlined","FilePdfOutlinedSvg","CloseCircleTwoTone","CloseCircleTwoToneSvg"],"mappings":";oGAGEA,EAAOC,QAAUC,EAAQ,M,6BCH3B,weA2CM,SAAUC,EAAMC,GACrB,OAAOC,OAAOD,KAAWA,EAoBpB,SAAUE,EAAWF,GAC1B,MAAQ,GAAIG,SAASC,KAAKJ,GAwIrB,SAAUK,EAAWL,GAC1B,GAAqB,kBAAVA,EACV,OAAOA,EAED,GAAqB,kBAAVA,EACjB,MAAO,GAAKA,EAGZ,MAAM,IAAIM,MAAM,uCAAyCJ,EAAQF,IAyF7D,SAAUO,EAAUP,GACzB,QAAOA,EASF,SAAUQ,EAASR,GACxB,GAAIS,EAAST,KAAWU,EAASV,GAAQ,CACxC,IAAIW,EAAYV,OAAOD,GACvB,OAAID,EAAMY,IAAcC,EAASZ,IAAmB,IAATA,EACnCQ,EAASR,EAAMa,QAAQ,cAAe,KAEvCF,EAER,OAAOX,EASF,SAAUc,EAAOd,GACtB,GAAIS,EAAST,KAAWY,EAASZ,GAAQ,CACxC,GAAIU,EAASV,GACZ,OAAOK,EAAWL,GAEd,GAAIe,EAASf,GACjB,OAAOA,EAAMG,WAGf,OAAOH,EAcF,SAAUgB,EAAkBhB,GACjC,OAAKS,EAAST,IAAUU,EAASV,IAAU,YAAUA,GAC7CA,EAEJY,EAASZ,KAAiC,GAAvBA,EAAMiB,QAAQ,KAC7B,YAAQT,EAASR,IAElBQ,EAASR,GAsBX,SAAUS,EAAYS,GAC3B,OAAY,MAALA,EAUF,SAAUC,EAAYD,GAC3B,GAAIT,EAASS,GACZ,OAAOA,EAGP,MAAM,IAAIZ,MAAM,uBAUZ,SAAUc,EAAmBF,EAAuBG,GACzD,OAAIZ,EAASS,GACLA,EAGAG,EAkBH,SAAUC,EAAOtB,GACtB,MAA0B,kBAAnBE,EAAQF,GASV,SAAUY,EAASZ,GACxB,MAAwB,kBAAVA,EAST,SAAUU,EAASV,GACxB,MAAwB,kBAAVA,GAAsBC,OAAOD,IAAUA,EAShD,SAAUe,EAASf,GACxB,MAAwB,kBAAVA,GAA+B,MAATA,EAS/B,SAAUuB,EAAQvB,GACvB,OAAOwB,MAAMD,QAAQvB,K,6BCndtB,+oCAwBayB,EAAKC,KAAKD,GACVE,EAASF,EAAK,EACdG,EAAUH,EAAK,IACfI,EAAU,IAAMJ,EAUvB,SAAUK,EAAc9B,EAAY+B,EAAaC,GACtD,OAAI,IAAehC,GAEXiC,EADPjC,EAAQ,IAAeA,GACE+B,EAAKC,GAExBhC,EAWF,SAAUkC,EAAMlC,EAAemC,EAAoBC,GACxD,IAAK,IAAeD,IAAcA,GAAa,EAAG,CAEjD,IAAIE,EAAUX,KAAKQ,MAAMlC,GAMzB,OALIoC,GACCC,EAAUrC,GAAS,IACtBqC,IAGKA,EAGP,IAAIC,EAAYZ,KAAKa,IAAI,GAAIJ,GAC7B,OAAOT,KAAKQ,MAAMlC,EAAQsC,GAAKA,EAW3B,SAAUE,EAAKxC,EAAemC,GACnC,IAAK,IAAeA,IAAcA,GAAa,EAC9C,OAAOT,KAAKc,KAAKxC,GAGjB,IAAIsC,EAAYZ,KAAKa,IAAI,GAAIJ,GAC7B,OAAOT,KAAKc,KAAKxC,EAAQsC,GAAKA,EAyB1B,SAAUL,EAAWjC,EAAeyC,EAAkCC,GAC3E,GAAI,IAAeD,GAAW,CAC7B,GAAI,IAAeC,IAAaA,EAAWD,EAAU,CACpD,IAAIE,EAAOD,EACXA,EAAWD,EACXA,EAAWE,EAGR3C,EAAQyC,IACXzC,EAAQyC,GAUV,OANI,IAAeC,IACd1C,EAAQ0C,IACX1C,EAAQ0C,GAIH1C,EASF,SAAU4C,EAAI5C,GACnB,OAAOkC,EAAMR,KAAKkB,IAAIhB,EAAU5B,GAAQ,IASnC,SAAU6C,EAAI7C,GACnB,OAAOkC,EAAMR,KAAKmB,IAAIjB,EAAU5B,GAAQ,IASnC,SAAU8C,EAAI9C,GACnB,OAAOkC,EAAMR,KAAKoB,IAAIlB,EAAU5B,GAAQ,IAcnC,SAAUgC,EAAIe,EAAWC,GAC9B,OAAI,IAAeD,GACd,IAAeC,IACdA,EAAQD,EACJC,EAODD,EAGE,IAAeC,GAClBA,EAGA,KAeH,SAAUjB,EAAIgB,EAAWC,GAC9B,OAAI,IAAeD,GACd,IAAeC,IACdA,EAAQD,EACJC,EAODD,EAGE,IAAeC,GAClBA,EAGA,KAWH,SAAUC,EAAQC,EAAkBC,GACzC,OAAOD,EAAOE,QAAO,SAASC,EAAMC,GACnC,OAAQ5B,KAAK6B,IAAID,EAAOH,GAAkBzB,KAAK6B,IAAIF,EAAOF,GAAkBG,EAAOD,KAW/E,SAAUG,EAAUC,EAAgBC,GACzC,IAAIC,EAAiB,IAAeF,EAAOG,OACvCC,EAAiB,IAAeH,EAAOE,OACvCE,EAAe,IAAeL,EAAOM,KACrCC,EAAe,IAAeN,EAAOK,KAEzC,OAAOrC,KAAKM,IAAI2B,EAAQE,IAAWnC,KAAKK,IAAI+B,EAAME,GAQ7C,SAAUC,EAAYC,GAC3B,IAAIN,EAAgB,IAAeM,EAAMN,OAEzC,MAAO,CAAEA,MAAO,EADE,IAAeM,EAAMH,KACdA,IAAK,EAAIH,GAU7B,SAAUO,EAAaV,EAAgBC,GAC5C,IAAIC,EAAiB,IAAeF,EAAOG,OACvCC,EAAiB,IAAeH,EAAOE,OACvCE,EAAe,IAAeL,EAAOM,KACrCC,EAAe,IAAeN,EAAOK,KACrCK,EAAmB1C,KAAKM,IAAI2B,EAAQE,GACpCQ,EAAiB3C,KAAKK,IAAI+B,EAAME,GAEpC,OAAIK,EAASD,OACZ,EAGO,CAAER,MAAOQ,EAAUL,IAAKM,GAc3B,SAAUC,EAAYC,EAAgBC,GAC3C,OAAKD,GAIAC,IACJA,EAAS,CAAEC,EAAG,EAAGC,EAAG,IAEdhD,KAAKiD,KAAKjD,KAAKa,IAAIb,KAAK6B,IAAIgB,EAAOE,EAAID,EAAOC,GAAI,GAAK/C,KAAKa,IAAIb,KAAK6B,IAAIgB,EAAOG,EAAIF,EAAOE,GAAI,KAN9F,EAmBH,SAAUE,EAAsBL,EAAgBC,GACrD,OAAKD,GAIAC,IACJA,EAAS,CAAEC,EAAG,EAAGC,EAAG,IAEdhD,KAAK6B,IAAIgB,EAAOE,EAAID,EAAOC,IAN1B,EAmBH,SAAUI,EAAoBN,EAAgBC,GACnD,OAAKD,GAIAC,IACJA,EAAS,CAAEC,EAAG,EAAGC,EAAG,IAEdhD,KAAK6B,IAAIgB,EAAOG,EAAIF,EAAOE,IAN1B,EAsBH,SAAUI,EAAsBP,EAAgBC,EAAgBO,EAAuBC,EAAuBC,GACnH,IAAKV,EACJ,OAAO,EAGHC,IACJA,EAAS,CAAEC,EAAG,EAAGC,EAAG,IAGrB,IAAIQ,EAAW,EACXC,EAAoBZ,EACxB,GAAIU,EAAY,EACf,IAAK,IAAIG,EAAI,EAAGA,GAAKH,EAAWG,IAAK,CACpC,IAAIC,EAAQC,EAAqBf,EAAQC,EAAQO,EAAeC,EAAeI,EAAIH,GACnFC,GAAYZ,EAAYa,EAAWE,GACnCF,EAAYE,EAGd,OAAOH,EAYF,SAAUK,EAAShB,EAAgBiB,EAAqBhB,EAAgBiB,GAC7E,IAAIC,EAA0BpB,EAAYkB,EAAaC,GACnDE,EAA0BrB,EAAYC,EAAQC,GAElD,OAAO9C,KAAK6B,IAAIoC,EAAkBD,GAU7B,SAAUE,EAAYrB,EAAgBC,EAAgBqB,GAK3D,OAJK,IAAeA,KACnBA,EAAW,IAGL,CACN,EAAMtB,EAAOE,GAAKD,EAAOC,EAAIF,EAAOE,GAAKoB,EACzC,EAAMtB,EAAOG,GAAKF,EAAOE,EAAIH,EAAOG,GAAKmB,GAoCrC,SAAUC,EAASvB,EAAgBC,GACnCA,IACJA,EAAS,CAAEC,EAAc,EAAXF,EAAOE,EAAOC,EAAc,EAAXH,EAAOG,IAEvC,IAAIqB,EAAgBvB,EAAOC,EAAIF,EAAOE,EAClCuB,EAAgBxB,EAAOE,EAAIH,EAAOG,EAClCuB,EAAgBvE,KAAKwE,MAAMF,EAAOD,GAASlE,EAI/C,OAHIoE,EAAQ,IACXA,GAAS,KAEHE,EAAeF,GA4CjB,SAAUG,EAAQC,GACvB,GAAIA,EAAQ,CACX,IAAI,EAASA,EAAOC,OAEpB,GAAe,IAAX,EAAc,CAMjB,IALA,IAEI,EAFAvD,OAAI,EACJC,OAAK,EAELuD,OAAM,EAEDC,EAAI,EAAGA,EAAI,EAAQA,IAAK,CAChC,IAAInB,EAAgBgB,EAAOG,KAEtB,IAAexD,IAAWqC,EAAMZ,EAAIzB,KACxCA,EAAQqC,EAAMZ,KAEV,IAAe1B,IAAUsC,EAAMZ,EAAI1B,KACvCA,EAAOsC,EAAMZ,KAGT,IAAe,IAASY,EAAMX,EAAI,KACtC,EAAMW,EAAMX,KAER,IAAe6B,IAAYlB,EAAMX,EAAI6B,KACzCA,EAASlB,EAAMX,GAIjB,MAAO,CAAED,EAAG1B,EAAM2B,EAAG,EAAK+B,MAAOzD,EAAQD,EAAM2D,OAAQH,EAAS,IAIlE,MAAO,CAAE9B,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,GAUlC,SAAUC,EAAmBC,GAClC,IAAIN,EAASM,EAAWN,OAExB,GAAe,IAAXA,EAAc,CAMjB,IALA,IAAIO,OAAI,EACJC,OAAI,EACJC,OAAI,EACJC,OAAI,EAECR,EAAI,EAAGA,EAAIF,EAAQE,IAAK,CAChC,IAAIS,EAAYL,EAAWJ,GAC3BK,EAAO9E,EAAIkF,EAAUxC,EAAGoC,GACxBC,EAAO/E,EAAIkF,EAAUvC,EAAGoC,GACxBC,EAAO/E,EAAIiF,EAAUxC,EAAIwC,EAAUR,MAAOM,GAC1CC,EAAOhF,EAAIiF,EAAUvC,EAAIuC,EAAUP,OAAQM,GAG5C,MAAO,CAAEvC,EAAGoC,EAAMnC,EAAGoC,EAAML,MAAOM,EAAOF,EAAMH,OAAQM,EAAOF,IAe1D,SAAUI,EAAyBC,EAAgBC,EAAgBC,EAAsBxB,GAG9F,MAAO,CAAEpB,GAFQ,EAAIoB,IAAa,EAAIA,GAAYsB,EAAO1C,EAAI,GAAK,EAAIoB,GAAYA,EAAWwB,EAAa5C,EAAIoB,EAAWA,EAAWuB,EAAO3C,EAE5HC,GADE,EAAImB,IAAa,EAAIA,GAAYsB,EAAOzC,EAAI,GAAK,EAAImB,GAAYA,EAAWwB,EAAa3C,EAAImB,EAAWA,EAAWuB,EAAO1C,GAgBtI,SAAUY,EAAqB6B,EAAgBC,EAAgBrC,EAAuBC,EAAuBa,GAClH,IAAIR,EAAgB,CAAEZ,EAAG,EAAGC,EAAG,GAC3B4C,EAAc,EAAIzB,EAClB0B,EAAcD,EAAMA,EACpBE,EAAcD,EAAMD,EAKxB,OAHAjC,EAAMZ,EAAI0C,EAAO1C,EAAI+C,EAAwB,EAAlBzC,EAAcN,EAAQ8C,EAAM1B,EAA6B,EAAlBb,EAAcP,EAAQ6C,EAAMzB,EAAWA,EAAWuB,EAAO3C,EAAIoB,EAAWA,EAAWA,EACrJR,EAAMX,EAAIyC,EAAOzC,EAAI8C,EAAwB,EAAlBzC,EAAcL,EAAQ6C,EAAM1B,EAA6B,EAAlBb,EAAcN,EAAQ4C,EAAMzB,EAAWA,EAAWuB,EAAO1C,EAAImB,EAAWA,EAAWA,EAE9IR,EAgBF,SAAUoC,EAAsBC,EAAYC,EAAYC,EAAYC,EAAYC,EAAkBC,GAGvG,OAFAD,EAAWE,EAAcF,GACzBC,EAAWC,EAAcD,GAClB,CAAEtD,IAAMiD,EAAGjD,EAAIkD,EAAGlD,EAAIqD,EAAWF,EAAGnD,GAAKqD,EAAWpD,IAAMgD,EAAGhD,EAAIiD,EAAGjD,EAAIqD,EAAWH,EAAGlD,GAAKqD,GAgB7F,SAAUE,EAAsBP,EAAYC,EAAYC,EAAYC,EAAYC,EAAkBC,GAGvG,OAFAD,EAAWE,EAAcF,GACzBC,EAAWC,EAAcD,GAClB,CAAEtD,GAAKkD,EAAGlD,EAAImD,EAAGnD,EAAIqD,EAAWD,EAAGpD,GAAKqD,EAAWpD,GAAKiD,EAAGjD,EAAIkD,EAAGlD,EAAIqD,EAAWF,EAAGnD,GAAKqD,GAW3F,SAAUC,EAAcE,GAC7B,OAAO,EAAIA,EAAU,KAWhB,SAAU/B,EAAenG,GAC9B,OAAa,KAATA,EACI,IAEDA,EAAQ,IAgBV,SAAUmI,EAAgBnI,EAAeoI,EAAoBC,GAElE,GAAID,EAAaC,EAAU,CAC1B,IAAI1F,EAAeyF,EACnBA,EAAaC,EACbA,EAAW1F,EAGZ3C,EAAQmG,EAAenG,GAEvB,IAAIsI,GAASF,EAAajC,EAAeiC,IAAe,IAiCxD,OA/BIpI,EAAQoI,IACXpI,GAAS,KAAOsI,EAAQ,IAMrBtI,EAAQqI,IAEPrI,EAAQ,IAAMoI,EACjBpI,GAAS,IAIRA,EADGA,EATeoI,GAAcC,EAAWD,GAAc,EAAI,IAUrDC,EAGAD,GAKPpI,EAAQoI,IAEVpI,EADGA,EAlBkBoI,GAAcC,EAAWD,GAAc,EAAI,IAmBxDA,EAGAC,GAIHrI,EAgBF,SAAUuI,EAAWH,EAAoBC,EAAkBG,GAEhE,IAAI3B,EAAO5G,OAAOwI,UACd3B,EAAO7G,OAAOwI,UACd1B,GAAQ9G,OAAOwI,UACfzB,GAAQ/G,OAAOwI,UAEfC,EAAU,GAET,IAAeF,KACnBA,EAAS,GAGVE,EAAQC,KAAKC,EAAYJ,EAAQJ,IACjCM,EAAQC,KAAKC,EAAYJ,EAAQH,IAKjC,IAHA,IAAIQ,EAAYnH,KAAKK,IAAkC,GAA9BL,KAAKU,MAAMgG,EAAa,IAAsC,GAA5B1G,KAAKU,MAAMiG,EAAW,KAC7ES,EAAUpH,KAAKM,IAAiC,GAA7BN,KAAKc,KAAK4F,EAAa,IAAqC,GAA3B1G,KAAKc,KAAK6F,EAAW,KAEpEpC,EAAQ4C,EAAW5C,GAAS6C,EAAS7C,GAAS,GAClDA,GAASmC,GAAcnC,GAASoC,GACnCK,EAAQC,KAAKC,EAAYJ,EAAQvC,IAInC,IAAK,IAAIO,EAAI,EAAGA,EAAIkC,EAAQpC,OAAQE,IAAK,CACxC,IAAIuC,EAAKL,EAAQlC,GACbuC,EAAGtE,EAAIoC,IAAQA,EAAOkC,EAAGtE,GACzBsE,EAAGrE,EAAIoC,IAAQA,EAAOiC,EAAGrE,GACzBqE,EAAGtE,EAAIsC,IAAQA,EAAOgC,EAAGtE,GACzBsE,EAAGrE,EAAIsC,IAAQA,EAAO+B,EAAGrE,GAG9B,MAAQ,CAAED,EAAGoC,EAAMnC,EAAGoC,EAAML,MAAOM,EAAOF,EAAMH,OAAQM,EAAOF,GAW1D,SAAU8B,EAAYJ,EAAgBQ,GAC3C,MAAQ,CAAEvE,EAAG+D,EAAS1F,EAAIkG,GAAMtE,EAAG8D,EAAS5F,EAAIoG,IAU3C,SAAUC,EAAc5D,EAAe4B,GAC5C,OAAI5B,EAAMZ,GAAKwC,EAAUxC,GAAKY,EAAMZ,GAAKwC,EAAUxC,EAAIwC,EAAUR,OAASpB,EAAMX,EAAIuC,EAAUvC,GAAKW,EAAMX,EAAIuC,EAAUvC,EAAIuC,EAAUP,S,gBCnyBtI9G,EAAOC,QAAU,EAAQ,M,6BCOzB,0HAsZWqJ,EAAW,IA3WtB,WAyHC,wBA/GO,KAAAC,OAA8D,IAAI,IAclE,KAAAC,OAAmB,GAQnB,KAAAC,aAA4C,GAOzC,KAAAC,UAAoB,EAQvB,KAAAC,kBAA8C,GAK3C,KAAAC,cAA6C,GAQhD,KAAAC,eAAqD,GAQrD,KAAAC,aAAsD,GAQtD,KAAAC,gBAAoC,GAQpC,KAAAC,iBAAqC,GAQrC,KAAAC,iBAAqC,GAQrC,KAAAC,iBAAuD,GAOvD,KAAAC,eAAwD,GAQxD,KAAAC,YAA6B,GAE7B,KAAAC,iBAAgD,GAEhD,KAAAC,MAAuB,GAG7BC,KAAKC,IAAMD,KAAKE,cAEhBF,KAAKV,eAAea,OAAS,GAC7BH,KAAKT,aAAaY,OAAS,GAC3BH,KAAKJ,eAAeO,OAAS,GAC7BH,KAAKL,iBAAiBQ,OAAS,GAG/BC,iBAAiB,eAAe,WAC/B,IAAY,EAAKP,aAAa,SAACQ,GAC9B,IAAMC,EAAMD,EAAOE,MAAMD,IACzBA,EAAIE,aAAa,UAAW,OAASF,EAAIG,YAAc,IAAMH,EAAII,oBAInEN,iBAAiB,cAAc,WAC9B,IAAY,EAAKP,aAAa,SAACQ,GAClBA,EAAOE,MAAMD,IACrBK,gBAAgB,iBAwNxB,OA9MQ,YAAAT,YAAP,WACC,IAAID,EAAMD,KAAKb,UAEf,OADAa,KAAKb,WAAa,EACX,MAAQc,GAShB,sBAAW,kBAAG,C,IAAd,WAIC,OAHKD,KAAKY,OACTZ,KAAKY,KAAO,IAAI,KAEVZ,KAAKY,M,gCAWN,YAAAC,SAAP,SAAgBC,EAAajL,EAAYkL,GACxC,IAAMC,IAAIhB,KAAKC,IAAKa,EAAKjL,EAAOkL,IAW1B,YAAAE,SAAP,SAAgBH,EAAajL,GAC5B,YAD4B,IAAAA,WAAA,GACrB,IAAMqL,IAAIlB,KAAKC,IAAKa,EAAKjL,IAY1B,YAAAsL,SAAP,SAAmDC,EAAgBC,GAE9DrB,KAAKhB,OAAOsC,UAAUF,KACrBC,GACHA,EAAKE,KAAOH,EACZC,EAAKG,OAASH,EAAKG,QAAUxB,KACvBA,KAAKhB,OAAQmC,SAASC,EAAW,CACtCG,KAAMH,EACNI,OAAQxB,QAIHA,KAAKhB,OAAQmC,SAASC,EAAW,CACtCG,KAAMH,EACNI,OAAQxB,SAaL,YAAAyB,oBAAP,SAA8DL,EAAgBC,GAEzErB,KAAKhB,OAAOsC,UAAUF,KACrBC,GACHA,EAAKE,KAAOH,EACZC,EAAKG,OAASH,EAAKG,QAAUxB,KACvBA,KAAKhB,OAAQyC,oBAAoBL,EAAWC,IAG5CrB,KAAKhB,OAAQyC,oBAAoBL,EAAW,CACjDG,KAAMH,EACNI,OAAQxB,SAYL,YAAA0B,eAAP,SAAsBZ,GACrB,OAAI,IAAed,KAAKX,cAAcyB,MAGtCd,KAAKX,cAAcyB,GAAO,cAAgBA,EAAM,IAAM,IAAe,GAAK,MAFlEd,KAAKX,cAAcyB,IAWrB,YAAAa,uBAAP,SAA8BC,GACzBA,EAAUC,OACb,IAAY7B,KAAKT,aAAaqC,EAAUC,QAASD,GAGjD,IAAY5B,KAAKT,aAAL,OAA6BqC,IAOpC,YAAAE,4BAAP,SAAmCF,GAC9BA,EAAUC,QACb,IAAc7B,KAAKT,aAAaqC,EAAUC,QAASD,GAGpD,IAAc5B,KAAKT,aAAL,OAA6BqC,IAOrC,YAAAG,oBAAP,SAA2B1B,GACtBA,EAAOwB,OACV,IAAW7B,KAAKV,eAAee,EAAOwB,QAASxB,GAG/C,IAAWL,KAAKV,eAAL,OAA+Be,IAOrC,YAAA2B,yBAAP,SAAgC3B,GAC3BA,EAAOwB,QACV,IAAc7B,KAAKV,eAAee,EAAOwB,QAASxB,GAGnD,IAAcL,KAAKV,eAAL,OAA+Be,IAOvC,YAAA4B,sBAAP,SAA6B5B,GACxBA,EAAOwB,OACV,IAAW7B,KAAKL,iBAAiBU,EAAOwB,QAASxB,GAGjD,IAAWL,KAAKL,iBAAL,OAAiCU,IAOvC,YAAA6B,2BAAP,SAAkC7B,GAC7BA,EAAOwB,QACV,IAAc7B,KAAKL,iBAAiBU,EAAOwB,QAASxB,GAGrD,IAAcL,KAAKL,iBAAL,OAAiCU,IAOzC,YAAA8B,oBAAP,SAA2B9B,GACtBA,EAAOwB,OACV,IAAW7B,KAAKJ,eAAeS,EAAOwB,QAASxB,GAG/C,IAAWL,KAAKJ,eAAL,OAA+BS,IAOrC,YAAA+B,yBAAP,SAAgC/B,GAC3BA,EAAOwB,QACV,IAAc7B,KAAKJ,eAAeS,EAAOwB,QAASxB,GAGnD,IAAcL,KAAKJ,eAAL,OAA+BS,IAE/C,EApWA,IAqXM,SAAUgC,EAAMC,EAAaC,GAClC,IAAMjI,EAAIyE,EAASK,kBAAkBmD,GACrC,OAAY,MAALjI,GAAagI,aAAkBhI,I,6BCzavC,8OAgBA,IAAIkI,EAAgB,SAASrK,EAAGsK,GAI5B,OAHAD,EAAgBE,OAAOC,gBAClB,CAAEC,UAAW,cAAgBvL,OAAS,SAAUc,EAAGsK,GAAKtK,EAAEyK,UAAYH,IACvE,SAAUtK,EAAGsK,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAI1K,EAAE0K,GAAKJ,EAAEI,MACpD1K,EAAGsK,IAGrB,SAASM,EAAU5K,EAAGsK,GAEzB,SAASO,IAAOhD,KAAKiD,YAAc9K,EADnCqK,EAAcrK,EAAGsK,GAEjBtK,EAAE+K,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,GAG5E,IAAII,EAAW,WAQlB,OAPAA,EAAWV,OAAOW,QAAU,SAAkBC,GAC1C,IAAK,IAAIrI,EAAGoB,EAAI,EAAGkH,EAAIC,UAAUrH,OAAQE,EAAIkH,EAAGlH,IAE5C,IAAK,IAAIwG,KADT5H,EAAIuI,UAAUnH,GACOqG,OAAOQ,UAAUJ,eAAe7M,KAAKgF,EAAG4H,KAAIS,EAAET,GAAK5H,EAAE4H,IAE9E,OAAOS,IAEKG,MAAMzD,KAAMwD,YA8BzB,SAASE,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUrO,GAAS,IAAMsO,EAAKL,EAAUM,KAAKvO,IAAW,MAAOwO,GAAKJ,EAAOI,IACpF,SAASC,EAASzO,GAAS,IAAMsO,EAAKL,EAAS,MAAUjO,IAAW,MAAOwO,GAAKJ,EAAOI,IACvF,SAASF,EAAKI,GAJlB,IAAe1O,EAIa0O,EAAOC,KAAOR,EAAQO,EAAO1O,QAJ1CA,EAIyD0O,EAAO1O,MAJhDA,aAAiBgO,EAAIhO,EAAQ,IAAIgO,GAAE,SAAUG,GAAWA,EAAQnO,OAIT4O,KAAKP,EAAWI,GAClGH,GAAML,EAAYA,EAAUL,MAAME,EAASC,GAAc,KAAKQ,WAI/D,SAASM,EAAYf,EAASgB,GACjC,IAAsGC,EAAGrK,EAAG+I,EAAGuB,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP1B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO2B,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAET,KAAMe,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrF,OAAU6E,EACvJ,SAASM,EAAK5B,GAAK,OAAO,SAAU+B,GAAK,OACzC,SAAcC,GACV,GAAIX,EAAG,MAAM,IAAIY,UAAU,mCAC3B,KAAOV,GAAG,IACN,GAAIF,EAAI,EAAGrK,IAAM+I,EAAY,EAARiC,EAAG,GAAShL,EAAC,OAAagL,EAAG,GAAKhL,EAAC,SAAe+I,EAAI/I,EAAC,SAAe+I,EAAErN,KAAKsE,GAAI,GAAKA,EAAE6J,SAAWd,EAAIA,EAAErN,KAAKsE,EAAGgL,EAAG,KAAKf,KAAM,OAAOlB,EAE3J,OADI/I,EAAI,EAAG+I,IAAGiC,EAAK,CAAS,EAARA,EAAG,GAAQjC,EAAEzN,QACzB0P,EAAG,IACP,KAAK,EAAG,KAAK,EAAGjC,EAAIiC,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAElP,MAAO0P,EAAG,GAAIf,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASxK,EAAIgL,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIO,MAAOX,EAAEG,KAAKQ,MAAO,SACxC,QACI,KAAkBnC,GAAZA,EAAIwB,EAAEG,MAAY9I,OAAS,GAAKmH,EAAEA,EAAEnH,OAAS,MAAkB,IAAVoJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAcjC,GAAMiC,EAAG,GAAKjC,EAAE,IAAMiC,EAAG,GAAKjC,EAAE,IAAM,CAAEwB,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQzB,EAAE,GAAI,CAAEwB,EAAEC,MAAQzB,EAAE,GAAIA,EAAIiC,EAAI,MAC7D,GAAIjC,GAAKwB,EAAEC,MAAQzB,EAAE,GAAI,CAAEwB,EAAEC,MAAQzB,EAAE,GAAIwB,EAAEI,IAAI1G,KAAK+G,GAAK,MACvDjC,EAAE,IAAIwB,EAAEI,IAAIO,MAChBX,EAAEG,KAAKQ,MAAO,SAEtBF,EAAKZ,EAAK1O,KAAK0N,EAASmB,GAC1B,MAAOT,GAAKkB,EAAK,CAAC,EAAGlB,GAAI9J,EAAI,EAjBrB,QAiBoCqK,EAAItB,EAAI,EACtD,GAAY,EAARiC,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE1P,MAAO0P,EAAG,GAAKA,EAAG,QAAK,EAAQf,MAAM,GArB9BL,CAAK,CAACZ,EAAG+B,MA6BtD,SAASI,EAASC,GACrB,IAAI1K,EAAsB,oBAAXmK,QAAyBA,OAAOC,SAAUO,EAAI3K,GAAK0K,EAAE1K,GAAIoB,EAAI,EAC5E,GAAIuJ,EAAG,OAAOA,EAAE3P,KAAK0P,GACrB,GAAIA,GAAyB,kBAAbA,EAAExJ,OAAqB,MAAO,CAC1CiI,KAAM,WAEF,OADIuB,GAAKtJ,GAAKsJ,EAAExJ,SAAQwJ,OAAI,GACrB,CAAE9P,MAAO8P,GAAKA,EAAEtJ,KAAMmI,MAAOmB,KAG5C,MAAM,IAAIH,UAAUvK,EAAI,0BAA4B,mCAGjD,SAAS4K,EAAOF,EAAGpC,GACtB,IAAIqC,EAAsB,oBAAXR,QAAyBO,EAAEP,OAAOC,UACjD,IAAKO,EAAG,OAAOD,EACf,IAAmBG,EAAYzB,EAA3BhI,EAAIuJ,EAAE3P,KAAK0P,GAAOI,EAAK,GAC3B,IACI,WAAc,IAANxC,GAAgBA,KAAM,MAAQuC,EAAIzJ,EAAE+H,QAAQI,MAAMuB,EAAGvH,KAAKsH,EAAEjQ,OAExE,MAAOmQ,GAAS3B,EAAI,CAAE2B,MAAOA,GAH7B,QAKI,IACQF,IAAMA,EAAEtB,OAASoB,EAAIvJ,EAAC,SAAauJ,EAAE3P,KAAKoG,GADlD,QAGU,GAAIgI,EAAG,MAAMA,EAAE2B,OAE7B,OAAOD,EAGJ,SAASE,IACZ,IAAK,IAAIF,EAAK,GAAI1J,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAC3C0J,EAAKA,EAAGG,OAAOL,EAAOrC,UAAUnH,KACpC,OAAO0J,I,6BC7II,SAASI,EAAuBC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EALT,mC,sCCqCgBE,EAAIN,8BAA+BO,mDAQtBC,MAElBrQ,MAAMA,8BACe6P,GAC7BO,EAAKpK,OAAS,IAAMoK,EAAKE,KAAK,KAAO,iEC5BxBC,EAAQ7Q,WACdA,KAAWA,EAAM8Q,YAKXC,EAAY/Q,WACtBA,aAYwBA,OACxBA,GAA0B,iBAAVA,EAAoB,OAAO,MAC1CgR,EAAQnE,OAAOoE,eAAejR,UAC5BgR,GAASA,IAAUnE,OAAOQ,UAf7BrN,CAEUA,IACdwB,MAAMD,QAAQvB,MACZA,EAAMkR,MACNlR,EAAMoN,YAAY8D,IACpBC,EAAMnR,IACNoR,EAAMpR,IAqCR,SAAgBqR,EAAKC,EAAUC,EAAWC,sBCrDZ,IDsDzBC,EAAYH,IACbE,EAAiB3E,OAAO6E,KAAOC,GAASL,GAAKM,SAAQ,mBACtDL,EAAKtG,EAAKqG,EAAIrG,GAAMqG,MAGrBA,EAAIM,SAAQ,SAACC,EAAYC,UAAeP,EAAKO,EAAOD,EAAOP,eAK7CG,EAAYM,OAErBC,EAAgCD,EAAMjB,UACrCkB,EACJA,EAAMC,EAAQ,EACbD,EAAMC,EAAQ,EACbD,EAAMC,EACRzQ,MAAMD,QAAQwQ,GCtEW,EDwEzBZ,EAAMY,GCvEiB,EDyEvBX,EAAMW,GCxEiB,EAHG,WDiFdG,EAAIH,EAAYI,UC/EL,IDgFnBV,EAAYM,GAChBA,EAAMG,IAAIC,GACVtF,OAAOQ,UAAUJ,eAAe7M,KAAK2R,EAAOI,YAIhC9G,EAAI0G,EAA2BI,UCtFpB,IDwFnBV,EAAYM,GAAyBA,EAAM1G,IAAI8G,GAAQJ,EAAMI,YAcrD3F,EAAG/H,EAAQC,UAEtBD,IAAMC,EACI,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,WAKVyM,EAAMxF,UACdyG,GAAUzG,aAAkB0G,aAIpBjB,EAAMzF,UACd2G,GAAU3G,aAAkB4G,aAGpBC,EAAOR,UACfA,EAAMS,GAAST,EAAMU,WAQbC,EAAYC,EAAWC,yBAClCrR,MAAMD,QAAQqR,GAAO,OAAOA,EAAKE,YAC/BC,EAAQlG,OAAOS,OAAOT,OAAOoE,eAAe2B,WAClDvB,EAAKuB,GAAM,SAAC3H,MACPA,IAAQ6F,OAGNkC,EAAOnG,OAAOoG,yBAAyBL,EAAM3H,GAC9CjL,EAASgT,EAAThT,MACDgT,EAAK3H,MACHwH,GAAepC,EAAI,GACxBzQ,EAAQgT,EAAK3H,IAAIjL,KAAKwS,IAEnBI,EAAKE,WACRH,EAAM9H,GAAOjL,EAEb6M,OAAOsG,eAAeJ,EAAO9H,EAAK,CACjCjL,QACAoT,YACAC,sBAIIN,WAGQO,EAAOhC,EAAUiC,GAC5B1C,EAAQS,IAAQkC,EAASlC,KAASP,EAAYO,KAC9CG,EAAYH,GAAO,IACtBA,EAAInG,IAAMmG,EAAImC,IAAMnC,EAAIoC,MAAQpC,EAAIqC,OAASC,GAE9C/G,OAAOyG,OAAOhC,GACViC,GAAMlC,EAAKC,GAAK,SAACrG,EAAKjL,UAAUsT,EAAOtT,SAAO,IAGnD,SAAS4T,IACRnD,EAAI,YAGW+C,EAASlC,UACb,MAAPA,GAA8B,iBAARA,GAEnBzE,OAAO2G,SAASlC,YE/IRuC,EACfC,OAEMC,EAASC,EAAQF,UAClBC,GACJtD,EAAmB,GAAIqD,GAGjBC,EC9BR,SAAgBE,WAERC,WAkBQC,EACfC,EACAC,GAEIA,IACHR,EAAU,WACVO,EAAME,EAAW,GACjBF,EAAMG,EAAkB,GACxBH,EAAMI,EAAiBH,YAITI,EAAYL,GAC3BM,EAAWN,GACXA,EAAMO,EAAQ/C,QAAQgD,GAEtBR,EAAMO,EAAU,cAGDD,EAAWN,GACtBA,IAAUF,IACbA,EAAeE,EAAMS,YAIPC,EAAWC,UAClBb,EArCD,CACNS,EAAS,GACTE,EAmCkCX,EAlClCc,EAkCgDD,EA/BhDE,KACAC,EAAoB,GAiCtB,SAASN,EAAYO,OACdnD,EAAoBmD,EAAMrE,GFtDG,IEwDlCkB,EAAMC,GFvD2B,IEwDjCD,EAAMC,EAEND,EAAMoD,IACFpD,EAAMqD,KAAW,SC3DPC,EAAc5G,EAAa0F,GAC1CA,EAAMc,EAAqBd,EAAMO,EAAQrO,WACnCiP,EAAYnB,EAAMO,EAAS,GAC3Ba,WAAa9G,GAAwBA,IAAW6G,SACjDnB,EAAMY,EAAOS,GACjB5B,EAAU,OAAO6B,EAAiBtB,EAAO1F,EAAQ8G,GAC9CA,GACCD,EAAUzE,GAAa6E,IAC1BlB,EAAYL,GACZ3D,EAAI,IAEDM,EAAYrC,KAEfA,EAASkH,EAASxB,EAAO1F,GACpB0F,EAAMS,GAASgB,EAAYzB,EAAO1F,IAEpC0F,EAAME,GACTT,EAAU,WAAWiC,EACpBP,EAAUzE,GACVpC,EACA0F,EAAME,EACNF,EAAMG,IAKR7F,EAASkH,EAASxB,EAAOmB,EAAW,IAErCd,EAAYL,GACRA,EAAME,GACTF,EAAMI,EAAgBJ,EAAME,EAAUF,EAAMG,GAEtC7F,IAAWqH,EAAUrH,SAG7B,SAASkH,EAASI,EAAuBhW,EAAYiW,MAEhDzC,EAASxT,GAAQ,OAAOA,MAEtBgS,EAAoBhS,EAAM8Q,OAE3BkB,SACJX,EACCrR,GACA,SAACiL,EAAKiL,UACLC,EAAiBH,EAAWhE,EAAOhS,EAAOiL,EAAKiL,EAAYD,SAGtDjW,KAGJgS,EAAMoE,IAAWJ,EAAW,OAAOhW,MAElCgS,EAAM2D,SACVE,EAAYG,EAAWhE,EAAMU,MACtBV,EAAMU,MAGTV,EAAMqE,EAAY,CACtBrE,EAAMqE,KACNrE,EAAMoE,EAAOlB,QACPxG,EH5D0B,IG8D/BsD,EAAMC,GH7DwB,IG6DQD,EAAMC,EACxCD,EAAMS,EAAQE,EAAYX,EAAMsE,MACjCtE,EAAMS,EAEVpB,EAAK3C,GAAe,SAACzD,EAAKiL,UACzBC,EAAiBH,EAAWhE,EAAOtD,EAAQzD,EAAKiL,EAAYD,MAG7DJ,EAAYG,EAAWtH,MAEnBuH,GAAQD,EAAU1B,GACrBT,EAAU,WAAW0C,EACpBvE,EACAiE,EACAD,EAAU1B,EACV0B,EAAUzB,UAINvC,EAAMS,EAGd,SAAS0D,EACRH,EACAQ,EACAC,EACAtE,EACA+D,EACAQ,MAGI7F,EAAQqF,GAAa,KASlBS,EAAMf,EAASI,EAAWE,EAP/BQ,GACAF,GH7FyB,IG8FzBA,EAAavE,IACZC,EAAKsE,EAA8CI,EAAYzE,GAC7DuE,EAAUrG,OAAO8B,WACjB0E,GJb0BC,EIgBZ3E,EJhByCnS,EIgBnC2W,EH5GC,KD6FpBlJ,EAAIgE,EADSM,EIgBd0E,IJdkB1E,EAAM5G,IAAI2L,EAAgB9W,GC7FvB,ID8FjByN,GACRsE,EAAM4B,OAAOmD,GACb/E,EAAM0B,IAAIzT,IACJ+R,EAAM+E,GAAkB9W,GIa1B6Q,EAAQ8F,GAEL,OADNX,EAAUf,KJpBb,IAAoBlD,EAAY+E,EAA6B9W,EACtDyN,OIuBF+I,IAAehK,EAAG0J,EAAY7K,EAAImL,EAAa9D,EAAOP,MAItDpB,EAAYmF,GAAa,KACvBF,EAAUhB,EAAO+B,GAAef,EAAUd,EAAqB,SAQpEU,EAASI,EAAWE,GAEfM,GAAgBA,EAAYJ,EAAOvB,GACvCgB,EAAYG,EAAWE,IAI1B,SAASL,EAAYzB,EAAmBpU,EAAYuT,sBAC/Ca,EAAMY,EAAO+B,GAAe3C,EAAMa,GACrC3B,EAAOtT,EAAOuT,GCgEhB,SAASyD,EAAK7B,EAAgBhD,OACvBH,EAAQmD,EAAMrE,GACdkC,EAAOiE,QAAQhE,yBACpBjB,EAAQQ,EAAOR,GAASmD,EACxBhD,UAEMa,GAAQA,EAAKhT,eAGLkX,EAAiBlF,OAC3BA,EAAM2D,EAAW,IACrB3D,EAAM2D,KJlN4B,IIoNjC3D,EAAMC,GJnN0B,IIoNhCD,EAAMC,EACL,KACKkF,EAAQnF,EAAMS,EAAQE,EAAYX,EAAMU,GAC9CrB,EAAKW,EAAM2C,GAAU,SAAC1J,EAAKjL,GAE1BmX,EAAKlM,GAAOjL,KAEbgS,EAAM2C,SAGH3C,EAAM6C,GACTqC,EAAiBlF,EAAM6C,IAK1B,SAASuC,EAAYpF,GACfA,EAAMS,IACVT,EAAMS,EAAQE,EAAYX,EAAMU,IC9ClC,SAAgB2E,EACftC,EACA/U,EACAsX,OAGMnC,EAAiBhE,EAAMnR,GAC1B6T,EAAU,UAAU0D,EAAUvX,EAAOsX,GACrClG,EAAMpR,GACN6T,EAAU,UAAU2D,EAAUxX,EAAOsX,GACrCvC,EAAMU,WDpKT7C,EACA0E,OAEM/V,EAAUC,MAAMD,QAAQqR,GACxBZ,EAAoB,CACzBC,EAAO1Q,EJnC0B,EADC,EIsClC6U,EAAQkB,EAASA,EAAOlB,EAASnC,IAEjC0B,KAEAU,KAEAO,EAAW,GAEX/B,EAASyC,EAET5E,EAAOE,EAEP0D,EAAQ,KAER3B,EAAS,GAETlC,EAAO,KAEP2C,EAAS,KACTqC,MASG9L,EAAYqG,EACZ0F,EAA2CC,EAC3CpW,IACHoK,EAAS,CAACqG,GACV0F,EAAQE,SAGeC,MAAMC,UAAUnM,EAAQ+L,GAAzCK,WAAQC,iBACfhG,EAAMsE,EAAS0B,EACfhG,EAAMoD,EAAU2C,EACTC,ECuHEvC,CACWzV,EAAOsX,GACxBzD,EAAU,OAAOoE,EAAgBjY,EAAOsX,UAE7BA,EAASA,EAAOlB,EAASnC,KACjCU,EAAQhM,KAAKwM,GACZA,E,kCCvHAnV,MJhFJkU,EKrBEgE,EACa,oBAAX3I,QAAiD,iBAAhBA,OAAO,KACnC6C,EAAwB,oBAARC,IAChBC,EAAwB,oBAARC,IAChB4F,EACK,oBAAVN,gBACAA,MAAMC,WACM,oBAAZb,QASKlB,EAAmBmC,EAC7B3I,OAAO,yBACJ,oBAAkB,GAUX2B,EAA2BgH,EACrC3I,OAAO,mBACN,qBAESuB,EAA6BoH,EACvC3I,OAAO,eACN,iBRkBSoC,GQdM,oBAAVpC,QAAyBA,OAAOC,SRerB,oBAAZyH,SAA2BA,QAAQtF,QACvCsF,QAAQtF,iBACD9E,OAAOuL,sBACd,mBACAvL,OAAOwL,oBAAoB/G,GAAKjB,OAC/BxD,OAAOuL,sBAAsB9G,KAEHzE,OAAOwL,qBE/ChCrE,EA4BF,GG4DE2D,EAAwC,CAC7CtM,aAAI2G,EAAOG,MACNA,IAASrB,EAAa,OAAOkB,MACnBsG,EAAUtG,EAAnB2C,MAGA3C,EAAM2D,GAAazD,EAAIoG,EAAQnG,UAC5BmG,EAAQnG,OAGVnS,EAAQwS,EAAOR,GAAOG,MACxBH,EAAMqE,IAAetF,EAAY/Q,UAC7BA,KAIJgS,EAAM2D,EAAW,IAEhB3V,IAAUgX,EAAKhF,EAAMU,EAAOP,GAAO,OAAOnS,EAG9CsY,EAAStG,EAAMS,SAGR6F,EAAQnG,GAAekF,EAC9BrF,EAAMoE,EAAOpB,EACbhV,EACAgS,IAGFE,aAAIF,EAAOG,UACHA,KAAQK,EAAOR,IAEvBL,iBAAQK,UACAiF,QAAQtF,QAAQa,EAAOR,KAE/B7G,aAAI6G,EAAOG,EAA+CnS,OACpDgS,EAAM2D,EAAW,KACf4C,EAAYvB,EAAKhF,EAAMU,EAAOP,MAIhBnS,EACjBwM,EAAG+L,EAAWvY,IAAUA,IAAUgS,EAAM2C,EAASxC,GACjD3F,EAAG+L,EAAWvY,IAAUmS,KAAQH,EAAMU,EACxB,OAAO,EACxB0E,EAAYpF,GACZkF,EAAiBlF,UAElBA,EAAM4E,EAAUzE,MAEhBH,EAAMS,EAAON,GAAQnS,MAGtBwY,wBAAexG,EAAOG,mBAEjB6E,EAAKhF,EAAMU,EAAOP,IAAuBA,KAAQH,EAAMU,GAC1DV,EAAM4E,EAAUzE,MAChBiF,EAAYpF,GACZkF,EAAiBlF,IACPA,EAAM4E,EAAUzE,WAEnBH,EAAM4E,EAAUzE,GAGpBH,EAAMS,UAAcT,EAAMS,EAAMN,OAKrCc,kCAAyBjB,EAAOG,OACzBsG,EAAQjG,EAAOR,GACfgB,EAAOiE,QAAQhE,yBAAyBwF,EAAOtG,UACjDa,IACHA,EAAKI,YACLJ,EAAKK,aJ5J2B,II6J/BrB,EAAMC,GAA0C,WAATE,GAElCa,GAERG,0BACC1C,EAAI,KAELQ,wBAAee,UACPnF,OAAOoE,eAAee,EAAMU,IAEpC5F,0BACC2D,EAAI,MAQAmH,EAA8C,GACpDvG,EAAKsG,GAAa,SAAC1M,EAAKyN,GAEvBd,EAAW3M,GAAO,kBACjB0C,UAAU,GAAKA,UAAU,GAAG,GACrB+K,EAAG9K,MAAMzD,KAAMwD,eAGxBiK,EAAWY,eAAiB,SAASxG,EAAOG,UAEpCwF,EAAYa,eAAgBpY,KAAK+J,KAAM6H,EAAM,GAAIG,IAEzDyF,EAAWzM,IAAM,SAAS6G,EAAOG,EAAMnS,UAE/B2X,EAAYxM,IAAK/K,KAAK+J,KAAM6H,EAAM,GAAIG,EAAMnS,EAAOgS,EAAM,SEnM3D+C,EAAQ,IDed,oBAAAvG,EAKamK,UAJWR,YAKY,kBAAvBQ,iBAAQC,aAClBzO,KAAK0O,cAAcF,EAAQC,YACM,kBAAvBD,iBAAQG,aAClB3O,KAAK4O,cAAcJ,EAAQG,iBACvBE,QAAU7O,KAAK6O,QAAQC,KAAK9O,WAC5B+O,mBAAqB/O,KAAK+O,mBAAmBD,KAAK9O,iCAsBxD6O,iBAAQpG,EAAWuG,EAAc9E,MAEZ,mBAATzB,GAAyC,mBAAXuG,EAAuB,KACzDC,EAAcD,EACpBA,EAASvG,MAEHrC,EAAOpG,YACN,SAENyI,6BAAOwG,8BACJ1I,0DAEIH,EAAKyI,QAAQpG,GAAM,SAACuC,kBAAmBgE,GAAO/Y,cAAKiZ,EAAMlE,UAAUzE,YAQxEhC,KAJkB,mBAAXyK,GAAuB1I,EAAI,YAClC4D,GAAwD,mBAAlBA,GACzC5D,EAAI,GAKDM,EAAY6B,GAAO,KAChBwB,EAAQU,EAAW3K,MACnB6N,EAAQX,EAAYlN,KAAMyI,UAC5B0G,KAAW,IAEd5K,EAASyK,EAAOnB,GAChBsB,KAHc,QAMVA,EAAU7E,EAAYL,GACrBM,EAAWN,SAEM,oBAAZlG,SAA2BQ,aAAkBR,QAChDQ,EAAOE,MACb,mBACCuF,EAAkBC,EAAOC,GAClBiB,EAAc5G,EAAQ0F,MAE9B,kBACCK,EAAYL,GACNjE,MAITgE,EAAkBC,EAAOC,GAClBiB,EAAc5G,EAAQ0F,QAE7B1F,EAASyK,EAAOvG,MACDmD,kBACXrH,IAAsBA,EAASkE,GAC/BzI,KAAK4M,GAAazD,EAAO5E,MACtBA,KAITwK,4BAAmBK,EAAWC,OAMzBC,EAAkBC,eALF,mBAATH,EACH,SAACvH,8BAAetB,0DACtBiJ,EAAKT,mBAAmBlH,GAAO,SAACmD,UAAeoE,gBAAKpE,UAAUzE,QAQzD,CAJWvG,KAAK6O,QAAQO,EAAMC,GAAM,SAACxM,EAAY4M,GACvDH,EAAUzM,EACV0M,EAAiBE,KAECH,EAAUC,MAG9BG,qBAAiCjH,GAC3B7B,EAAY6B,IAAOnC,EAAI,OACtB2D,EAAQU,EAAW3K,MACnB6N,EAAQX,EAAYlN,KAAMyI,UAAMiE,OACtCmB,EAAMlH,GAAa2G,KACnB/C,EAAWN,GACJ4D,KAGR8B,qBACC3E,EACAd,OAOeD,GALWe,GAASA,EAAMrE,IAKlCsF,SACPjC,EAAkBC,EAAOC,GAClBiB,SAAyBlB,MAQjC2E,uBAAc/Y,QACR+W,EAAc/W,KASpB6Y,uBAAc7Y,GACRmY,GACJ1H,EAAI,SAEAgF,EAAczV,KAGpB+Z,sBAAanH,EAAiB6G,OAGzBjT,MACCA,EAAIiT,EAAQnT,OAAS,EAAGE,GAAK,EAAGA,IAAK,KACnCwT,EAAQP,EAAQjT,MACI,IAAtBwT,EAAM/D,KAAK3P,QAA6B,YAAb0T,EAAMtK,GAAkB,CACtDkD,EAAOoH,EAAMha,iBAKTia,EAAmBpG,EAAU,WAAWqG,SAC1CrJ,EAAQ+B,GAEJqH,EAAiBrH,EAAM6G,GAGxBtP,KAAK6O,QAAQpG,GAAM,SAACuC,UAC1B8E,EAAiB9E,EAAOsE,EAAQ3G,MAAMtM,EAAI,UAzK7C,ICMawS,EAAoBjE,EAAMiE,QAOgBjE,EAAMmE,mBAAmBD,KAC/ElE,GAQ4BA,EAAMgE,cAAcE,KAAKlE,GAQzBA,EAAM8D,cAAcI,KAAKlE,GAO1BA,EAAMgF,aAAad,KAAKlE,GAMzBA,EAAM8E,YAAYZ,KAAKlE,GAUvBA,EAAM+E,YAAYb,KAAKlE,I,gBExFlD,OAOC,WACA,aAEA,IAAIoF,EAAS,GAAGlN,eAEhB,SAASmN,IAGR,IAFA,IAAIC,EAAU,GAEL7T,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAC1C,IAAI8T,EAAM3M,UAAUnH,GACpB,GAAK8T,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BF,EAAQ1R,KAAK2R,QACP,GAAI9Y,MAAMD,QAAQ+Y,IAAQA,EAAIhU,OAAQ,CAC5C,IAAIkU,EAAQJ,EAAWxM,MAAM,KAAM0M,GAC/BE,GACHH,EAAQ1R,KAAK6R,QAER,GAAgB,WAAZD,EACV,IAAK,IAAItP,KAAOqP,EACXH,EAAO/Z,KAAKka,EAAKrP,IAAQqP,EAAIrP,IAChCoP,EAAQ1R,KAAKsC,IAMjB,OAAOoP,EAAQzJ,KAAK,KAGgBhR,EAAOC,SAC3Cua,EAAWK,QAAUL,EACrBxa,EAAOC,QAAUua,QAGX,kBACL,OAAOA,GADF,QAAe,OAAf,aAtCP,I,4ECHc,SAASM,EAAeC,EAAKnU,GAC1C,OCLa,SAAyBmU,GACtC,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKnU,GACjD,GAAsB,qBAAX+I,QAA4BA,OAAOC,YAAY3C,OAAO8N,GAAjE,CACA,IAAIC,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKlE,EAET,IACE,IAAK,IAAiCmE,EAA7BC,EAAKN,EAAIpL,OAAOC,cAAmBqL,GAAMG,EAAKC,EAAG1M,QAAQI,QAChEiM,EAAKjS,KAAKqS,EAAGhb,QAETwG,GAAKoU,EAAKtU,SAAWE,GAH8CqU,GAAK,IAK9E,MAAOK,GACPJ,GAAK,EACLC,EAAKG,EACL,QACA,IACOL,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,GFnBuB,CAAqBD,EAAKnU,IAAM,OAAA2U,EAAA,GAA2BR,EAAKnU,IGLjF,WACb,MAAM,IAAImJ,UAAU,6IHIgF,K,gBILtG/P,EAAOC,QAAUC,EAAQ,M,6BCAzB,yZA+BM,SAAUsb,EAAS/U,GACxB,IAAI4P,EAAOoF,EAAOhV,EAAO,IACrBlB,EAAY,CAAEV,EAAG,EAAGC,EAAG,GAEvB4W,EAAU,IAAQC,gBACjB,IAAeD,KACnBA,EAAU,IAGX,IAAK,IAAI9U,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAInB,EAAQgB,EAAOG,GACf,IAAkBnB,EAAOF,GAAamW,IACzCrF,GAAQoF,EAAOhW,GACfF,EAAYE,GAGd,OAAO4Q,EAWF,SAAUwF,EAAOpW,GACtB,MAAO,KAAO,IAAYA,EAAMZ,EAAG,GAAK,IAAM,IAAYY,EAAMX,EAAG,GAAK,IAUnE,SAAU2W,EAAOhW,GACtB,MAAO,KAAO,IAAYA,EAAMZ,EAAG,GAAK,IAAM,IAAYY,EAAMX,EAAG,GAAK,IAWnE,SAAUgX,EAAiBrW,EAAegC,GAC/C,MAAO,KAAO,IAAYA,EAAa5C,EAAG,GACvC,IAAM,IAAY4C,EAAa3C,EAAG,GAAK,IAAM,IAAYW,EAAMZ,EAAG,GAClE,IAAM,IAAYY,EAAMX,EAAG,GAYzB,SAAUiX,EAAatW,EAAeN,EAAuBC,GAClE,MAAO,KAAO,IAAYD,EAAcN,EAAG,GACxC,IAAM,IAAYM,EAAcL,EAAG,GAAK,IAAM,IAAYM,EAAcP,EAAG,GAC3E,IAAM,IAAYO,EAAcN,EAAG,GAAK,IAAM,IAAYW,EAAMZ,EAAG,GACnE,IAAM,IAAYY,EAAMX,EAAG,GASzB,SAAUkX,IACf,MAAO,KAcF,SAAUC,EAAMzT,EAAoBY,EAAaR,EAAgBsT,GAEtE,GAAW,GAAP9S,EACH,MAAO,GAGH,IAAe8S,KACnBA,EAAUtT,GAGX,IAAIyN,EAAO,GACP8F,EAAI,IACJC,EAAWta,KAAKc,KAAKd,KAAK6B,IAAIyF,GAAO,KACrCiT,EAAI,EAEJjT,EAAM,IACTiT,EAAI,GAIL,IAAIC,EAAc,EACdC,EAAc,EAGdC,GAAc,IAAUhU,GAAcI,EACtC6T,GAAc,IAAUjU,GAAc0T,EAG1C,GAAI9S,EAAM,IAAOR,EAAS,IAAM,CAC/B,IAAIH,EAAWD,EAAaY,EAG5B,OAAOqS,EAAO,CAAE5W,EAFZ6X,EAAK,IAAY,IAAUjU,GAAYG,EAAQ,GAE5B9D,EADnB6X,EAAK,IAAY,IAAUlU,GAAYyT,EAAS,KAIrD,IAAK,IAAItV,EAAI,EAAGA,EAAIwV,EAAUxV,IAAK,CAClC,IAEI8V,EACAC,EAHAlU,EAAWD,EAAaY,EAAMgT,GAAYxV,EAAI,GAKlDyP,GAAQ,KAAOzN,EAASuT,EAAID,EAAUC,EAAI,EAAIA,EAAI,EAAIA,EAAIE,EAAIF,GAH1DO,EAAK,IAAY,IAAUjU,GAAYG,EAAS4T,EAAKF,EAAK,IAGSH,GAFnEQ,EAAK,IAAY,IAAUlU,GAAYyT,EAAUO,EAAKF,EAAK,IAI/DD,EAAMI,EACNH,EAAMI,EAEP,OAAOtG,EAiBF,SAAUjN,EAAIZ,EAAoBY,EAAaR,EAAgBgU,EAAsBV,EAAkBW,EAAuBC,GACnI,GAAW,GAAP1T,EACH,MAAO,GAOR,GAJK,IAAewT,KACnBA,EAAc,GAGD,GAAVhU,GAAegU,GAAe,EACjC,MAAO,GAGR,GAAIhU,EAASgU,EAAa,CACzB,IAAI7Z,EAAO6F,EACXA,EAASgU,EACTA,EAAc7Z,EAEV,IAAemZ,KAClBA,EAAUA,EAAUU,EAAchU,GAMzB,MAFXQ,EAAM,IAAUA,EAAK,QAGpByT,EAAe,EACfC,EAAoB,GAGrB,IAAIrU,EAAWD,EAAaY,EACxB2T,EAAQ,IAAU,IAAU3T,EAAK,IAAM,GAMvC4T,GAJJd,EAAU,IAAeA,GAAWA,EAAUtT,GAIhBA,EAAUgU,EAEpCK,EAAiBf,EAAUtT,GAL/BiU,EAAeA,GAAgB,GAM3BK,EAAsBhB,EAAUtT,GALpCkU,EAAoB,IAAeA,GAAqBA,EAAoBD,GAO5EA,EAAe,IAAiBA,EAAc,GAAIjU,EAASgU,GAAe,GAC1EK,EAAgB,IAAiBA,EAAe,GAAIf,EAAUc,GAAgB,GAE9EF,EAAoB,IAAiBA,EAAmB,GAAIlU,EAASgU,GAAe,GACpFM,EAAqB,IAAiBA,EAAoB,GAAIhB,EAAUc,GAAgB,GAExFH,EAAe,IAAY,IAAiBA,EAAc,EAAGjU,EAASmU,GAAQ,GAC9EE,EAAgB,IAAY,IAAiBA,EAAe,EAAGf,EAAUa,GAAQ,GAEjFD,EAAoB,IAAY,IAAiBA,EAAmB,EAAGF,EAAcG,GAAQ,GAC7FG,EAAqB,IAAY,IAAiBA,EAAoB,EAAGF,EAAeD,GAAQ,GAEhG,IAAII,EAAkBrb,KAAKsb,KAAKP,EAAejU,EAAS,GAAK,IAAgB,EACzEyU,EAAmBvb,KAAKsb,KAAKH,EAAgBf,EAAU,GAAK,IAAgB,EAE5EU,EAAcE,IACjBF,EAAcE,GAGXE,EAAeE,IAClBF,EAAeE,GAGhB,IAAII,EAAuBxb,KAAKsb,KAAKN,EAAoBF,EAAc,GAAK,IAAgB,EACxFW,EAAwBzb,KAAKsb,KAAKF,EAAqBF,EAAe,GAAK,IAAgB,EAE1F,IAAeM,KACnBA,EAAe,GAEX,IAAeC,KACnBA,EAAgB,GAGjB,IAAIC,EAAchV,EAAaY,EAAM,EACjCqU,EAAS,CAAE5Y,EAAG,IAAY,IAAU2Y,GAAeZ,EAAa,GAAI9X,EAAG,IAAU0Y,GAAeR,GAEhGU,EAAK,CAAE7Y,EAAG,IAAU2D,IAAeoU,EAAcE,GAAoBhY,EAAG,IAAU0D,IAAewU,EAAeE,IAChHS,EAAK,CAAE9Y,EAAG,IAAU2D,IAAeI,EAASiU,GAAe/X,EAAG,IAAU0D,IAAe0T,EAAUe,IACjGW,EAAK,CAAE/Y,EAAG,IAAU4D,IAAaG,EAASiU,GAAe/X,EAAG,IAAU2D,IAAayT,EAAUe,IAC7FY,EAAK,CAAEhZ,EAAG,IAAU4D,IAAamU,EAAcE,GAAoBhY,EAAG,IAAU2D,IAAauU,EAAeE,IAE5GY,EAAK,CAAEjZ,EAAG,IAAU2D,EAAa2U,GAAWvU,EAAQ9D,EAAG,IAAU0D,EAAa6U,GAAYnB,GAC1F6B,EAAK,CAAElZ,EAAG,IAAU4D,EAAW6U,GAAgBV,EAAa9X,EAAG,IAAU2D,EAAW8U,GAAiBP,GAGzGF,GAAqBA,EAAoB,IAAUQ,EAAe,GAClEJ,GAAsBA,EAAqB,IAAUK,EAAgB,GAEjED,GAAgB7U,EAAWD,GAAc,IAC5CuV,EAAKN,GAGN,IAAIpH,EAAe,GA0CnB,OAxCW,KAAPjN,EACHiN,EAAOwF,EAAO8B,IAIdtH,EAAOwF,EAAO6B,GACdrH,GAAQoF,EAAOkC,GACftH,GAAQ2H,EAAWF,EAAIjB,EAAcI,GAAe,IAIrD5G,GAAQ4F,EAAMzT,EAAa2U,EAAS/T,EAAM,EAAI+T,EAASvU,EAAQsT,GAG3D,IAAeU,IAA+B,GAAfA,GAGvB,KAAPxT,GAA8B,GAAhByT,EACjBxG,GAAQwF,EAAOgC,IAIfxH,GAAQ2H,EAAWJ,EAAIf,EAAcI,GAAe,GACpD5G,GAAQoF,EAAOoC,GACfxH,GAAQ2H,EAAWD,EAAIjB,EAAmBI,GAAoB,IAG/D7G,GAAQ4F,EAAMxT,EAAW6U,IAAgBlU,EAAM,EAAIkU,GAAeV,EAAaI,IAC3E5T,EAAM,KAAOyT,EAAe,KAC/BxG,GAAQ2H,EAAWN,EAAIZ,EAAmBI,GAAoB,IAE/D7G,GAAQoF,EAAOiC,KAGfrH,GAAQ2H,EAAWJ,EAAIf,EAAcI,GAAe,GAChD7T,EAAM,MACTiN,GAAQoF,EAAOiC,KAIVrH,EAgBF,SAAU2H,EAAWvY,EAAemD,EAAgBsT,EAAkB+B,EAAqBC,EAAwBC,GACxH,GAAc,GAAVvV,EACH,MAAO,GAMR,IAAIuT,EAAI,IAIR,MAAO,KAAOvT,EAASuT,EAAID,EAAUC,GARrCgC,EAAgBA,GAAiB,GAQwBhC,KAPzD+B,EAAeE,QAAQF,IAO0D/B,KANjF8B,EAAYG,QAAQH,IAMkF9B,EAAI,IAAY1W,EAAMZ,EAAG,GAAKsX,EAAI,IAAY1W,EAAMX,EAAG,GAaxJ,SAAUuC,EAAUR,EAAeC,EAAgBjC,EAAYC,GAOpE,OANK,IAAeD,KACnBA,EAAI,GAEA,IAAeC,KACnBA,EAAI,GAEE+W,EAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAAO2W,EAAO,CAAE5W,EAAGA,EAAIgC,EAAO/B,EAAGA,IAAO2W,EAAO,CAAE5W,EAAGA,EAAIgC,EAAO/B,EAAGA,EAAIgC,IAAY2U,EAAO,CAAE5W,EAAGA,EAAGC,EAAGA,EAAIgC,IArQ1H,KAgRF,SAAUuX,EAAWC,EAAkBC,GAC5C,IAAIpC,EAAI,IACJqC,EAAI,KACR,OAAID,EACI,IAAMD,EAAKzZ,EACfsX,EAAImC,EAAKxZ,EAAI0Z,EAAIF,EAAKzZ,EACtBsX,GAAKmC,EAAKxZ,EAAIwZ,EAAKxX,QAAU0X,GAAKF,EAAKzZ,EAAIyZ,EAAKzX,OAChDsV,GAAKmC,EAAKxZ,EAAIwZ,EAAKxX,QAAU0X,GAAKF,EAAKzZ,EAAIyZ,EAAKzX,OAChDsV,EAAImC,EAAKxZ,EAAI0Z,EAAIF,EAAKzZ,EACtBsX,EAAImC,EAAKxZ,EAGL,IAAMwZ,EAAKzZ,EACfsX,EAAImC,EAAKxZ,EAAI0Z,GAAKF,EAAKzZ,EAAIyZ,EAAKzX,OAChCsV,EAAImC,EAAKxZ,EAAI0Z,GAAKF,EAAKzZ,EAAIyZ,EAAKzX,OAChCsV,GAAKmC,EAAKxZ,EAAIwZ,EAAKxX,QAAU0X,EAAIF,EAAKzZ,EACtCsX,GAAKmC,EAAKxZ,EAAIwZ,EAAKxX,QAAU0X,EAAIF,EAAKzZ,EACtCsX,EAAImC,EAAKxZ,I,6BC/Yd,SAAS2Z,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQvT,EAAKqP,GACpE,IACE,IAAImE,EAAOH,EAAIrT,GAAKqP,GAChBta,EAAQye,EAAKze,MACjB,MAAOmQ,GAEP,YADA/B,EAAO+B,GAILsO,EAAK9P,KACPR,EAAQnO,GAERkO,QAAQC,QAAQnO,GAAO4O,KAAK2P,EAAOC,GAIxB,SAASE,EAAkBhG,GACxC,OAAO,WACL,IAAInI,EAAOpG,KACPuG,EAAO/C,UACX,OAAO,IAAIO,SAAQ,SAAUC,EAASC,GACpC,IAAIkQ,EAAM5F,EAAG9K,MAAM2C,EAAMG,GAEzB,SAAS6N,EAAMve,GACbqe,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQ,OAAQxe,GAGlE,SAASwe,EAAOtD,GACdmD,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQ,QAAStD,GAGnEqD,OAAM1H,OA/BZ,mC,uJCCW8H,G,MAEXC,IAAMC,cAAc,OCEpB,IAAIC,EAJJ,SAA0BC,GACxBA,KCEEC,EAAgB,CAClBC,OAAQ,cAGV,SAASC,IACP,IAAIJ,EDGGA,ECFHK,EAAQ,KACRC,EAAO,KACX,MAAO,CACL1L,MAAO,WACLyL,EAAQ,KACRC,EAAO,MAETH,OAAQ,WACNH,GAAM,WAGJ,IAFA,IAAIO,EAAWF,EAERE,GACLA,EAASN,WACTM,EAAWA,EAAS9Q,SAI1BlD,IAAK,WAIH,IAHA,IAAIiU,EAAY,GACZD,EAAWF,EAERE,GACLC,EAAU3W,KAAK0W,GACfA,EAAWA,EAAS9Q,KAGtB,OAAO+Q,GAETC,UAAW,SAAmBR,GAC5B,IAAIS,GAAe,EACfH,EAAWD,EAAO,CACpBL,SAAUA,EACVxQ,KAAM,KACNlL,KAAM+b,GASR,OANIC,EAAShc,KACXgc,EAAShc,KAAKkL,KAAO8Q,EAErBF,EAAQE,EAGH,WACAG,GAA0B,OAAVL,IACrBK,GAAe,EAEXH,EAAS9Q,KACX8Q,EAAS9Q,KAAKlL,KAAOgc,EAAShc,KAE9B+b,EAAOC,EAAShc,KAGdgc,EAAShc,KACXgc,EAAShc,KAAKkL,KAAO8Q,EAAS9Q,KAE9B4Q,EAAQE,EAAS9Q,SAO3B,IAAIkR,EAEJ,WACE,SAASA,EAAaC,EAAOC,GAC3BxV,KAAKuV,MAAQA,EACbvV,KAAKwV,UAAYA,EACjBxV,KAAKyV,YAAc,KACnBzV,KAAKmV,UAAYN,EACjB7U,KAAK0V,oBAAsB1V,KAAK0V,oBAAoB5G,KAAK9O,MAG3D,IAAI2V,EAASL,EAAapS,UAqC1B,OAnCAyS,EAAOC,aAAe,SAAsBV,GAE1C,OADAlV,KAAK6V,eACE7V,KAAKmV,UAAUC,UAAUF,IAGlCS,EAAOG,iBAAmB,WACxB9V,KAAKmV,UAAUL,UAGjBa,EAAOD,oBAAsB,WACvB1V,KAAK+V,eACP/V,KAAK+V,iBAITJ,EAAON,aAAe,WACpB,OAAOxB,QAAQ7T,KAAKyV,cAGtBE,EAAOE,aAAe,WACf7V,KAAKyV,cACRzV,KAAKyV,YAAczV,KAAKwV,UAAYxV,KAAKwV,UAAUI,aAAa5V,KAAK0V,qBAAuB1V,KAAKuV,MAAMH,UAAUpV,KAAK0V,qBACtH1V,KAAKmV,UAAYJ,MAIrBY,EAAOK,eAAiB,WAClBhW,KAAKyV,cACPzV,KAAKyV,cACLzV,KAAKyV,YAAc,KACnBzV,KAAKmV,UAAU5L,QACfvJ,KAAKmV,UAAYN,IAIdS,EA9CT,GCvBeW,MA9Cf,SAAkBC,GAChB,IAAIX,EAAQW,EAAKX,MACbY,EAAUD,EAAKC,QACfC,EAAWF,EAAKE,SAChBC,EAAeC,mBAAQ,WACzB,IAAIC,EAAe,IAAIjB,EAAaC,GAEpC,OADAgB,EAAaR,cAAgBQ,EAAaT,iBACnC,CACLP,MAAOA,EACPgB,aAAcA,KAEf,CAAChB,IACAiB,EAAgBF,mBAAQ,WAC1B,OAAOf,EAAMkB,aACZ,CAAClB,IACJmB,qBAAU,WACR,IAAIH,EAAeF,EAAaE,aAOhC,OANAA,EAAaV,eAETW,IAAkBjB,EAAMkB,YAC1BF,EAAaT,mBAGR,WACLS,EAAaP,iBACbO,EAAaR,cAAgB,QAE9B,CAACM,EAAcG,IAClB,IAAIG,EAAUR,GAAW3B,EACzB,OAAOC,IAAMmC,cAAcD,EAAQV,SAAU,CAC3CpgB,MAAOwgB,GACND,I,4CC3BMS,EAA8C,qBAAXC,QAAqD,qBAApBA,OAAOC,UAAqE,qBAAlCD,OAAOC,SAASH,cAAgCI,kBAAkBN,YCAvLO,EAAc,GACdC,EAAwB,CAAC,KAAM,MAUnC,SAASC,EAAyBtP,EAAOuP,GACvC,IAAIC,EAAcxP,EAAM,GACxB,MAAO,CAACuP,EAAOE,QAASD,EAAc,GAGxC,SAASE,EAAkCC,EAAYC,EAAYC,GACjEb,GAA0B,WACxB,OAAOW,EAAW/T,WAAM,EAAQgU,KAC/BC,GAGL,SAASC,EAAoBC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BnC,GAE3I8B,EAAiBM,QAAUH,EAC3BF,EAAeK,QAAUF,EACzBF,EAAkBI,SAAU,EAExBD,EAA0BC,UAC5BD,EAA0BC,QAAU,KACpCpC,KAIJ,SAASqC,EAAiBC,EAA0B7C,EAAOgB,EAAc8B,EAAoBT,EAAkBC,EAAgBC,EAAmBG,EAA2BnC,EAAkBwC,GAE7L,GAAKF,EAAL,CAEA,IAAIG,GAAiB,EACjBC,EAAkB,KAElBC,EAAkB,WACpB,IAAIF,EAAJ,CAMA,IACIG,EAAe1S,EADf2S,EAAmBpD,EAAMkB,WAG7B,IAGEiC,EAAgBL,EAAmBM,EAAkBf,EAAiBM,SACtE,MAAO7T,GACP2B,EAAQ3B,EACRmU,EAAkBnU,EAGf2B,IACHwS,EAAkB,MAIhBE,IAAkBb,EAAeK,QAC9BJ,EAAkBI,SACrBpC,KAOF+B,EAAeK,QAAUQ,EACzBT,EAA0BC,QAAUQ,EACpCZ,EAAkBI,SAAU,EAE5BI,EAA6B,CAC3B/W,KAAM,gBACN+V,QAAS,CACPtR,MAAOA,QAOfuQ,EAAaR,cAAgB0C,EAC7BlC,EAAaV,eAGb4C,IAiBA,OAfyB,WAKvB,GAJAF,GAAiB,EACjBhC,EAAaP,iBACbO,EAAaR,cAAgB,KAEzByC,EAMF,MAAMA,IAOZ,IAAII,EAAmB,WACrB,MAAO,CAAC,KAAM,IAGD,SAASC,EAexBC,EACA5C,QACe,IAATA,IACFA,EAAO,IAGT,IAAI6C,EAAQ7C,EACR8C,EAAuBD,EAAME,eAC7BA,OAA0C,IAAzBD,EAAkC,SAAUzW,GAC/D,MAAO,mBAAqBA,EAAO,KACjCyW,EACAE,EAAmBH,EAAMI,WACzBA,OAAkC,IAArBD,EAA8B,kBAAoBA,EAC/DE,EAAwBL,EAAMM,gBAC9BA,OAA4C,IAA1BD,OAAmC1M,EAAY0M,EACjEE,EAAwBP,EAAMX,yBAC9BA,OAAqD,IAA1BkB,GAA0CA,EACrEC,EAAiBR,EAAMS,SACvBA,OAA8B,IAAnBD,EAA4B,QAAUA,EAGjDE,GAFgBV,EAAMW,QAEHX,EAAMY,YACzBA,OAAkC,IAArBF,GAAsCA,EACnDG,EAAgBb,EAAM5C,QACtBA,OAA4B,IAAlByD,EAA2BpF,EAAoBoF,EACzDC,EAAiBC,YAA8Bf,EAAO,CAAC,iBAAkB,aAAc,kBAAmB,2BAA4B,WAAY,UAAW,aAAc,YAkB3KpC,EAAUR,EACd,OAAO,SAAyB4D,GAK9B,IAAIC,EAAuBD,EAAiBE,aAAeF,EAAiBxX,MAAQ,YAChF0X,EAAchB,EAAee,GAE7BE,EAAyBC,YAAS,GAAIN,EAAgB,CACxDZ,eAAgBA,EAChBE,WAAYA,EACZE,gBAAiBA,EACjBjB,yBAA0BA,EAC1BoB,SAAUA,EACVS,YAAaA,EACbD,qBAAsBA,EACtBD,iBAAkBA,IAGhBK,EAAOP,EAAeO,KAS1B,IAAIC,EAAkBD,EAAO9D,UAAU,SAAU1B,GAC/C,OAAOA,KAGT,SAAS0F,EAAgBC,GACvB,IAAIC,EAAWlE,mBAAQ,WAIrB,IAAImE,EAAeF,EAAME,aACrB1C,EAAe+B,YAA8BS,EAAO,CAAC,iBAEzD,MAAO,CAACA,EAAMpE,QAASsE,EAAc1C,KACpC,CAACwC,IACAG,EAAeF,EAAS,GACxBC,EAAeD,EAAS,GACxBzC,EAAeyC,EAAS,GAExBG,EAAerE,mBAAQ,WAGzB,OAAOoE,GAAgBA,EAAaE,UAAYC,4BAAkBpG,IAAMmC,cAAc8D,EAAaE,SAAU,OAASF,EAAe/D,IACpI,CAAC+D,EAAc/D,IAEdN,EAAeyE,qBAAWH,GAI1BI,EAAwBlH,QAAQ0G,EAAMhF,QAAU1B,QAAQ0G,EAAMhF,MAAMkB,WAAa5C,QAAQ0G,EAAMhF,MAAMpU,UAC3E0S,QAAQwC,IAAiBxC,QAAQwC,EAAad,OAO5E,IAAIA,EAAQwF,EAAwBR,EAAMhF,MAAQc,EAAad,MAC3D8C,EAAqB/B,mBAAQ,WAG/B,OA/CJ,SAA6Bf,GAC3B,OAAOuD,EAAgBvD,EAAMpU,SAAU+Y,GA8C9Bc,CAAoBzF,KAC1B,CAACA,IAEA0F,EAAY3E,mBAAQ,WACtB,IAAK8B,EAA0B,OAAOlB,EAGtC,IAAIX,EAAe,IAAIjB,EAAaC,EAAOwF,EAAwB,KAAO1E,EAAaE,cAKnFT,EAAmBS,EAAaT,iBAAiBhH,KAAKyH,GAC1D,MAAO,CAACA,EAAcT,KACrB,CAACP,EAAOwF,EAAuB1E,IAC9BE,EAAe0E,EAAU,GACzBnF,EAAmBmF,EAAU,GAI7BC,EAAyB5E,mBAAQ,WACnC,OAAIyE,EAIK1E,EAKF8D,YAAS,GAAI9D,EAAc,CAChCE,aAAcA,MAEf,CAACwE,EAAuB1E,EAAcE,IAGrC4E,EAAcC,qBAAWjE,EAA0BF,EAAa2B,GAEhEyC,EADeF,EAAY,GACc,GACzC7C,EAA+B6C,EAAY,GAG/C,GAAIE,GAA6BA,EAA0BrV,MACzD,MAAMqV,EAA0BrV,MAIlC,IAAI6R,EAAiByD,mBACjB1D,EAAmB0D,iBAAOvD,GAC1BE,EAA4BqD,mBAC5BxD,EAAoBwD,kBAAO,GAC3BtD,EAAmBqC,GAAgB,WAOrC,OAAIpC,EAA0BC,SAAWH,IAAiBH,EAAiBM,QAClED,EAA0BC,QAO5BG,EAAmB9C,EAAMkB,WAAYsB,KAC3C,CAACxC,EAAO8F,EAA2BtD,IAItCR,EAAkCI,EAAqB,CAACC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BnC,IAExKyB,EAAkCY,EAAkB,CAACC,EAA0B7C,EAAOgB,EAAc8B,EAAoBT,EAAkBC,EAAgBC,EAAmBG,EAA2BnC,EAAkBwC,GAA+B,CAAC/C,EAAOgB,EAAc8B,IAG/Q,IAAIkD,EAA2BjF,mBAAQ,WACrC,OAAO7B,IAAMmC,cAAcmD,EAAkBI,YAAS,GAAInC,EAAkB,CAC1EwD,IAAKf,OAEN,CAACA,EAAcV,EAAkB/B,IAepC,OAZoB1B,mBAAQ,WAC1B,OAAI8B,EAIK3D,IAAMmC,cAAc+D,EAAa1E,SAAU,CAChDpgB,MAAOqlB,GACNK,GAGEA,IACN,CAACZ,EAAcY,EAA0BL,IAK9C,IAAIO,EAAUrB,EAAO3F,IAAMiH,KAAKpB,GAAmBA,EAInD,GAHAmB,EAAQ1B,iBAAmBA,EAC3B0B,EAAQxB,YAAcA,EAElBN,EAAY,CACd,IAAIgC,EAAYlH,IAAMkF,YAAW,SAA2BY,EAAOiB,GACjE,OAAO/G,IAAMmC,cAAc6E,EAAStB,YAAS,GAAII,EAAO,CACtDE,aAAce,QAKlB,OAFAG,EAAU1B,YAAcA,EACxB0B,EAAU5B,iBAAmBA,EACtB6B,IAAaD,EAAW5B,GAGjC,OAAO6B,IAAaH,EAAS1B,IC9WjC,SAAS1X,EAAG/H,EAAGC,GACb,OAAID,IAAMC,EACK,IAAND,GAAiB,IAANC,GAAW,EAAID,IAAM,EAAIC,EAEpCD,IAAMA,GAAKC,IAAMA,EAIb,SAASshB,EAAaC,EAAMC,GACzC,GAAI1Z,EAAGyZ,EAAMC,GAAO,OAAO,EAE3B,GAAoB,kBAATD,GAA8B,OAATA,GAAiC,kBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,IAAIC,EAAQtZ,OAAO6E,KAAKuU,GACpBG,EAAQvZ,OAAO6E,KAAKwU,GACxB,GAAIC,EAAM7f,SAAW8f,EAAM9f,OAAQ,OAAO,EAE1C,IAAK,IAAIE,EAAI,EAAGA,EAAI2f,EAAM7f,OAAQE,IAChC,IAAKqG,OAAOQ,UAAUJ,eAAe7M,KAAK8lB,EAAMC,EAAM3f,MAAQgG,EAAGyZ,EAAKE,EAAM3f,IAAK0f,EAAKC,EAAM3f,KAC1F,OAAO,EAIX,OAAO,E,YCxBF,SAAS6f,EAAuBC,GACrC,OAAO,SAA8Bhb,EAAUib,GAC7C,IAAIC,EAAWF,EAAYhb,EAAUib,GAErC,SAASE,IACP,OAAOD,EAIT,OADAC,EAAiBC,mBAAoB,EAC9BD,GAUJ,SAASE,EAAqBC,GACnC,OAAwC,OAAjCA,EAAWF,wBAA+D7P,IAAjC+P,EAAWF,kBAAkC1I,QAAQ4I,EAAWF,mBAA2C,IAAtBE,EAAWtgB,OAc3I,SAASugB,EAAmBD,EAAYtD,GAC7C,OAAO,SAA2BhY,EAAU+U,GACxBA,EAAK+D,YAAvB,IAEIpM,EAAQ,SAAyB8O,EAAiBC,GACpD,OAAO/O,EAAM0O,kBAAoB1O,EAAM4O,WAAWE,EAAiBC,GAAY/O,EAAM4O,WAAWE,IAqBlG,OAjBA9O,EAAM0O,mBAAoB,EAE1B1O,EAAM4O,WAAa,SAAgCE,EAAiBC,GAClE/O,EAAM4O,WAAaA,EACnB5O,EAAM0O,kBAAoBC,EAAqBC,GAC/C,IAAIlC,EAAQ1M,EAAM8O,EAAiBC,GASnC,MAPqB,oBAAVrC,IACT1M,EAAM4O,WAAalC,EACnB1M,EAAM0O,kBAAoBC,EAAqBjC,GAC/CA,EAAQ1M,EAAM8O,EAAiBC,IAI1BrC,GAGF1M,GC5CI,OAfR,SAA0CgP,GAC/C,MAAqC,oBAAvBA,EAAoCH,EAAmBG,QAA4CnQ,GAE5G,SAAyCmQ,GAC9C,OAAQA,OAIHnQ,EAJwBwP,GAAuB,SAAU/a,GAC5D,MAAO,CACLA,SAAUA,OAIT,SAAwC0b,GAC7C,OAAOA,GAAoD,kBAAvBA,EAAkCX,GAAuB,SAAU/a,GACrG,OAAO2b,YAAmBD,EAAoB1b,WAC3CuL,ICNQ,OARR,SAAuCqQ,GAC5C,MAAkC,oBAApBA,EAAiCL,EAAmBK,QAAsCrQ,GAEnG,SAAsCqQ,GAC3C,OAAQA,OAEHrQ,EAFqBwP,GAAuB,WAC/C,MAAO,QCJJ,SAASc,EAAkBC,EAAYC,EAAeN,GAC3D,OAAOzC,YAAS,GAAIyC,EAAU,GAAIK,EAAY,GAAIC,GAgCrC,OARR,SAAkCC,GACvC,MAA6B,oBAAfA,EAvBT,SAA4BA,GACjC,OAAO,SAA6Bhc,EAAU+U,GAC1BA,EAAK+D,YAAvB,IAIImD,EAHAhD,EAAOlE,EAAKkE,KACZiD,EAAsBnH,EAAKmH,oBAC3BC,GAAa,EAEjB,OAAO,SAAyBL,EAAYC,EAAeN,GACzD,IAAIW,EAAkBJ,EAAWF,EAAYC,EAAeN,GAU5D,OARIU,EACGlD,GAASiD,EAAoBE,EAAiBH,KAAcA,EAAcG,IAE/ED,GAAa,EACbF,EAAcG,GAITH,IAK+BI,CAAmBL,QAAczQ,GAEtE,SAAiCyQ,GACtC,OAAQA,OAEJzQ,EAFiB,WACnB,OAAOsQ,KC9BJ,SAASS,EAAgCV,EAAiBF,EAAoBM,EAAYhc,GAC/F,OAAO,SAAkC0G,EAAO+U,GAC9C,OAAOO,EAAWJ,EAAgBlV,EAAO+U,GAAWC,EAAmB1b,EAAUyb,GAAWA,IAGzF,SAASc,EAA8BX,EAAiBF,EAAoBM,EAAYhc,EAAU+U,GACvG,IAIIrO,EACA+U,EACAK,EACAC,EACAE,EARAO,EAAiBzH,EAAKyH,eACtBC,EAAmB1H,EAAK0H,iBACxBC,EAAqB3H,EAAK2H,mBAC1BC,GAAoB,EAuCxB,SAASC,EAAsBC,EAAWC,GACxC,IAAIC,GAAgBN,EAAiBK,EAAcrB,GAC/CuB,GAAgBR,EAAeK,EAAWnW,GAG9C,OAFAA,EAAQmW,EACRpB,EAAWqB,EACPC,GAAgBC,GA1BpBlB,EAAaF,EAAgBlV,EAAO+U,GAChCC,EAAmBN,oBAAmBW,EAAgBL,EAAmB1b,EAAUyb,IACvFQ,EAAcD,EAAWF,EAAYC,EAAeN,IAyBhDsB,GApBAnB,EAAgBR,oBAAmBU,EAAaF,EAAgBlV,EAAO+U,IACvEC,EAAmBN,oBAAmBW,EAAgBL,EAAmB1b,EAAUyb,IACvFQ,EAAcD,EAAWF,EAAYC,EAAeN,IAmBhDuB,EAfN,WACE,IAAIC,EAAiBrB,EAAgBlV,EAAO+U,GACxCyB,GAAqBR,EAAmBO,EAAgBnB,GAG5D,OAFAA,EAAamB,EACTC,IAAmBjB,EAAcD,EAAWF,EAAYC,EAAeN,IACpEQ,EAUkBkB,GAClBlB,EAGT,OAAO,SAAgCY,EAAWC,GAChD,OAAOH,EAAoBC,EAAsBC,EAAWC,IAzC5DhB,EAAaF,EAFblV,EA2C4FmW,EA1C5FpB,EA0CuGqB,GAxCvGf,EAAgBL,EAAmB1b,EAAUyb,GAC7CQ,EAAcD,EAAWF,EAAYC,EAAeN,GACpDkB,GAAoB,EACbV,IA6CI,SAASmB,EAA0Bpd,EAAU4X,GAC1D,IAAIyF,EAAsBzF,EAAMyF,oBAC5BC,EAAyB1F,EAAM0F,uBAC/BC,EAAiB3F,EAAM2F,eACvBtC,EAAUtC,YAA8Bf,EAAO,CAAC,sBAAuB,yBAA0B,mBAEjGgE,EAAkByB,EAAoBrd,EAAUib,GAChDS,EAAqB4B,EAAuBtd,EAAUib,GACtDe,EAAauB,EAAevd,EAAUib,GAO1C,OADsBA,EAAQhC,KAAOsD,EAAgCD,GAC9CV,EAAiBF,EAAoBM,EAAYhc,EAAUib,GC5DpF,SAASuC,EAAMxO,EAAKyO,EAAWrc,GAC7B,IAAK,IAAIlG,EAAIuiB,EAAUziB,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAC9C,IAAIkI,EAASqa,EAAUviB,GAAG8T,GAC1B,GAAI5L,EAAQ,OAAOA,EAGrB,OAAO,SAAUpD,EAAUib,GACzB,MAAM,IAAIjmB,MAAM,gCAAkCga,EAAM,QAAU5N,EAAO,uCAAyC6Z,EAAQpC,qBAAuB,MAIrJ,SAAS6E,EAAY9nB,EAAG0L,GACtB,OAAO1L,IAAM0L,EAKR,SAASqc,EAAcC,GAC5B,IAAI7I,OAAiB,IAAV6I,EAAmB,GAAKA,EAC/BC,EAAkB9I,EAAK+I,WACvBA,OAAiC,IAApBD,EAA6BnG,EAAkBmG,EAC5DE,EAAwBhJ,EAAKiJ,yBAC7BA,OAAqD,IAA1BD,EAAmCE,EAAkCF,EAChGG,EAAwBnJ,EAAKoJ,4BAC7BA,OAAwD,IAA1BD,EAAmCE,EAAqCF,EACtGG,EAAwBtJ,EAAKuJ,oBAC7BA,OAAgD,IAA1BD,EAAmCE,EAA6BF,EACtFG,EAAuBzJ,EAAK4C,gBAC5BA,OAA2C,IAAzB6G,EAAkCC,EAAyBD,EAEjF,OAAO,SAAiB5C,EAAiBF,EAAoBM,EAAYpE,QACzD,IAAVA,IACFA,EAAQ,IAGV,IAAI8G,EAAQ9G,EACR+G,EAAaD,EAAMzF,KACnBA,OAAsB,IAAf0F,GAA+BA,EACtCC,EAAuBF,EAAMlC,eAC7BA,OAA0C,IAAzBoC,EAAkClB,EAAckB,EACjEC,EAAwBH,EAAMjC,iBAC9BA,OAA6C,IAA1BoC,EAAmCnE,EAAemE,EACrEC,EAAwBJ,EAAMhC,mBAC9BA,OAA+C,IAA1BoC,EAAmCpE,EAAeoE,EACvEC,EAAwBL,EAAMxC,oBAC9BA,OAAgD,IAA1B6C,EAAmCrE,EAAeqE,EACxEC,EAAerG,YAA8B+F,EAAO,CAAC,OAAQ,iBAAkB,mBAAoB,qBAAsB,wBAEzHrB,EAAsBG,EAAM5B,EAAiBoC,EAA0B,mBACvEV,EAAyBE,EAAM9B,EAAoByC,EAA6B,sBAChFZ,EAAiBC,EAAMxB,EAAYsC,EAAqB,cAC5D,OAAOR,EAAWnG,EAAiBqB,YAAS,CAE1ChB,WAAY,UAEZF,eAAgB,SAAwB1W,GACtC,MAAO,WAAaA,EAAO,KAG7B6V,yBAA0BvE,QAAQkJ,GAElCyB,oBAAqBA,EACrBC,uBAAwBA,EACxBC,eAAgBA,EAChBtE,KAAMA,EACNuD,eAAgBA,EAChBC,iBAAkBA,EAClBC,mBAAoBA,EACpBR,oBAAqBA,GACpB8C,KAKPrB,UChFO,SAASsB,IAOd,OANmBtF,qBAAWtG,GCVzB,SAAS6L,EAAgBlK,QACd,IAAZA,IACFA,EAAU3B,GAGZ,IAAI4L,EAAkBjK,IAAY3B,EAAoB8L,EAAyB,WAC7E,OAAOxF,qBAAW3E,IAEpB,OAAO,WAIL,OAHuBiK,IACM7K,OAqB1B,IAAIgL,EAEXF,IClCO,SAASG,EAAmBrK,QACjB,IAAZA,IACFA,EAAU3B,GAGZ,IAAI+L,EAAWpK,IAAY3B,EAAoBiM,EAAkBJ,EAAgBlK,GACjF,OAAO,WAEL,OADYoK,IACCpf,UAyBV,IAAIuf,EAEXF,ICqFO,If1HiCG,E,QAAAA,EgBG/BhM,0BhBFAA,EAAQgM,G,6BiBRjB,+jDAkCM,SAAUC,EAAQ/qB,IAUlB,SAAUgrB,EAAeC,EAAgBtf,GAQ9C,OAPA,IAAasf,GAAQ,SAAChgB,EAAKjL,GAEtB,IAAeA,KACZ2L,EAAQV,GAAOjL,MAIhB2L,EAMF,SAAUuf,EAAUC,GACzB,MAAO,SAASC,KAAKD,GAAK,GAGrB,SAAUE,IACf,IAAIF,EAAM,IAGV,GAAI,cAAY,CACf,IAAIG,EAAUpK,SAASoK,QACvB,GAAIA,EAAS,CACZA,EAAUJ,EAAUI,GACpB,IAAIC,EAAML,EAAUM,SAASC,MACzBH,IAAYC,IACfJ,EAAMI,EAAMJ,IAKf,OAAOA,EA4BF,SAAUhU,EAAK8T,EAAgBtf,GAIpC,OAHA,IAAasf,GAAQ,SAAChgB,EAAKjL,GACpB2L,EAAQV,GAAOjL,KAEf2L,EASF,SAAU+f,EAAW1rB,GAC1B,OAAO,IAAeA,IAAgC,KAArBA,EAAMG,WAYlC,SAAUwrB,EAAgBC,EAA2CC,GAC1E,OAAI,IAAeD,GACXA,EACc,MAAXA,GAAmB,IAAeA,EAAQ5rB,QAAU,IAAe6rB,GACtEA,EAAOD,EAAQ5rB,MAGf,EAiBH,SAAU8rB,EAAsBF,EAA2CC,EAAcE,GAC9F,IAAI/rB,EAkBJ,OAhBI,IAAe4rB,IAClB5rB,EAAQ4rB,GAEI,IAEV5rB,EADG+rB,EACKF,EAAO7rB,EAGP6rB,EAAO7rB,GAII,MAAX4rB,GAAmB,IAAeA,EAAQ5rB,SACpDA,EAAQ6rB,EAAOD,EAAQ5rB,OAGjBA,EA0BF,SAAUgsB,IAEf,OADY/K,OAAOgL,kBAAoB,EA8BlC,SAAUC,EAAWC,GAC1B,IAAIxR,EAAgBwR,EAAIC,MAAM,IAE9B,OADAzR,EAAI,GAAKA,EAAI,GAAG0R,cACT1R,EAAI/J,KAAK,IASX,SAAU0b,EAAUtsB,GACzB,OAAOusB,KAAKD,UAAUtsB,GASjB,SAAUwsB,EAAcxsB,GAC7B,OAAOA,EAAMa,QAAQ,2BAA4B,QAY5C,SAAU4rB,EAAqBC,EAAcC,EAAkBC,EAAqBC,GAGzF,GAAIH,EAAKpmB,QAAUqmB,EAClB,MAAO,CAACD,GAIT,IAAI/V,EAAgB,GAGpB,GAAIiW,EAUH,IALA,IAAIE,GAAwB,EAExBC,EADUL,EAAK7rB,QAAQ,8BAA+B,IAAuB,KAAO,KACpEurB,MAAM,KAGjB5lB,EAAI,EAAGA,EAAIumB,EAAMzmB,OAAQE,IAAK,CAGtC,IAAIwmB,EAAeD,EAAMvmB,GACrBymB,EAAqBD,EAAK1mB,OAG9B,GAAmB,IAAf2mB,EAAJ,CAYC,IAAIC,EANL,GAAID,EAAaN,GAShB,GANIE,IACHG,EAAOG,EAAcH,IAElBE,EAAiCF,EAAKlE,MAAM,IAAIsE,OAAO,OAAST,EAAW,IAAK,MAGzE,CACV,GAAIE,EACH,IAAK,IAAIpoB,EAAI,EAAGA,EAAIyoB,EAAM5mB,OAAQ7B,IACjCyoB,EAAMzoB,GAAK0oB,EAAcD,EAAMzoB,IAKjCkS,EAAMA,EAAItG,OAAO6c,SAMI,IAAlBJ,IACHnW,EAAIhO,KAAK,IACTmkB,EAAe,GAIVnW,EAAImW,GAAcxmB,OAAS2mB,EAAa,EAAKN,GAAmC,KAAtBhW,EAAImW,KACnEnW,EAAIhO,KAAK,IACTmkB,KAIDnW,EAAImW,IAAiBE,EAKtBF,EAAenW,EAAIrQ,OAAS,QAQ7B,GAFI4mB,EAAiCR,EAAK5D,MAAM,IAAIsE,OAAO,OAAST,EAAW,IAAK,MAEzE,CACV,GAAIE,EACH,IAASpoB,EAAI,EAAGA,EAAIyoB,EAAM5mB,OAAQ7B,IACjCyoB,EAAMzoB,GAAK0oB,EAAcD,EAAMzoB,IAIjCkS,EAAMuW,EAYR,OAJkB,GAAdvW,EAAIrQ,QAAesmB,GAAcjW,EAAI,GAAGrQ,OAASqmB,IACpDhW,EAAM,IAGAA,EAkBF,SAAU0W,EAAqBX,EAAcC,EAAkBW,EAAkBV,EAAqBC,GAE3G,OAAIH,EAAKpmB,QAAUqmB,EACXD,IAIRC,GAAYW,EAAShnB,QACN,IACdqmB,EAAW,IAKAF,EAAqBC,EAAMC,EAAUC,EAAWC,GAG9C,IAAM,IAAMS,GASrB,SAAUC,EAAKpB,GACpB,OAAOA,EAAItrB,QAAQ,qCAAsC,IASpD,SAAU2sB,EAAMrB,GACrB,OAAOA,EAAItrB,QAAQ,oBAAqB,IASnC,SAAU4sB,EAAMtB,GACrB,OAAOA,EAAItrB,QAAQ,oBAAqB,IASnC,SAAUssB,EAAchB,GAC7B,OAAOA,EAAIC,MAAM,IAAIsB,UAAU9c,KAAK,IA0B/B,SAAU+c,EAAU3tB,EAAYwb,EAAiBoS,GAKtD,YALqC,IAAApS,MAAA,QAAiB,IAAAoS,MAAA,KACjC,kBAAV5tB,IACVA,EAAQA,EAAMG,YAGRqb,EAAMxb,EAAMsG,OAAS9E,MAAMga,EAAMxb,EAAMsG,OAAS,GAAGsK,KAAKgd,GAAQ5tB,EAAQA,EAU1E,SAAU6tB,EAAUC,GAGzB,GAAsB,qBAAXA,EACV,OAAO,IAaR,IAAIC,GAHJD,GAHAA,GAHAA,EAASA,EAAOE,cAAcntB,QAAQ,cAAe,KAGrCA,QAAQ,aAAc,KAGtB0sB,QAG4BzE,MAAM,6BAElD,OAAIiF,EACIA,EAAM,GAIVD,IAAW,IACP,IAGJA,IAAW,IACP,IAGJA,IAAW,IACP,IAIJA,EAAOhF,MAAM,QACT,IAIJgF,EAAOhF,MAAM,sBACT,IAID,IAWF,SAAUmF,EAAYH,GAC3B,OAAOA,EAAOjtB,QAAQ,6BAA8B,IAS/C,SAAUqtB,EAAUxB,GACzB,OAAOA,EAAOA,EAAK7rB,QAAQ,WAAY,IAAM6rB,EASxC,SAAUyB,EAAUzB,GACzB,OAAOA,EAAOwB,EAAUxB,EAAK7rB,QAAQ,WAAY,OAAS6rB,EAkBrD,SAAU0B,EAAepuB,GAE9B,GAAI,IAAYA,GACf,MAAO,MAGR,GAAIA,IAAUquB,IACb,MAAO,WAGR,GAAIruB,KAAWquB,IACd,MAAO,YAIR,GAAe,IAAVruB,GAAiB,EAAIA,KAAWquB,IACpC,MAAO,KAIR,IAAIC,EAAWtuB,EAAQ,EAEvBA,EAAQ0B,KAAK6B,IAAIvD,GAGjB,IAII2W,EAJA4X,EAAS,IAAe,gDAAgDnD,KAAK,GAAKprB,IAClFwuB,EAASD,EAAO,GAChBE,EAAWF,EAAO,IAAM,GAK5B,GAAiB,MAAbA,EAAO,GACV5X,EAAoB,KAAb8X,EAAkBD,EAASA,EAAS,IAAMC,MAE3C,CACN,IAAIC,GAAYH,EAAO,GAGvB,GAAIvuB,EAAQ,EAAG,CACd,IAAI2uB,EAAQD,EAAW,EAEvB/X,EAAM,KAAO,IAAe,IAAKgY,GAASH,EAASC,MAG7C,CAIL9X,EADa,KAFVgY,EAAQD,EAAWD,EAASnoB,QAGzBkoB,EAASC,EAELE,EAAQ,EACZH,EAASC,EAAS3b,MAAM,EAAG6b,GAAS,IAAMF,EAAS3b,MAAM6b,GAGzDH,EAASC,EAAW,IAAe,IAAKE,IAKjD,OAAOL,EAAW,IAAM3X,EAAMA,EASzB,SAAUiY,EAAU5uB,GACzB,GAAI,IAAaA,GAEhB,OAAO,IAAI6uB,KAAK7uB,GAGZ,GAAI,IAAeA,GACvB,OAAO,IAAI6uB,KAAK7uB,GAKhB,IAAI8uB,EAAM7uB,OAAOD,GAEjB,OAAK,IAAe8uB,GAIZ,IAAID,KAAKC,GAHT,IAAID,KAAK7uB,GAcb,SAAU+uB,EAAY/uB,GAC3B,GAAI,IAAaA,GAChB,OAAOA,EAAMgvB,UAGT,GAAI,IAAehvB,GACvB,OAAOA,EAGH,GAAI,IAAeA,GAAQ,CAE/B,IAAI8uB,EAAM7uB,OAAOD,GAEjB,OAAK,IAAe8uB,GAKZA,OAHP,GAwBG,SAAUG,EAAWC,EAAYC,QAAA,IAAAA,OAAA,GACtC,IAAMvrB,EAAQ,IAAIirB,KAAKK,EAAKE,cAAe,EAAG,GACxCC,EAAQH,EAAKF,UAAYprB,EAAMorB,UAAuE,IAAxDprB,EAAM0rB,oBAAsBJ,EAAKI,qBAA4B,IAEjH,OAAO5tB,KAAKU,MAAMitB,EADH,OAYV,SAAUE,EAAQL,EAAYC,QAAA,IAAAA,OAAA,GACnC,IAAMK,EAAMP,EAAWC,EAAMC,GAAO,EAChCM,EAAO/tB,KAAKU,OAAOotB,GAAON,EAAKQ,UAAY,GAAK,IAAM,GAO1D,OANa,IAATD,EACHA,EAAO,GAEU,KAATA,IACRA,EAAO,GAEDA,EAUF,SAAUE,EAAaT,EAAYC,QAAA,IAAAA,OAAA,GACxC,IAAMS,EAAYL,EAAQ,IAAIV,KAAKK,EAAKE,cAAeF,EAAKW,WAAY,GAAIV,GACxEW,EAAcP,EAAQL,EAAMC,GAIhC,OAHmB,GAAfW,IACHA,EAAc,IAERA,EAAcF,EAAY,EAY5B,SAAUG,EAAeN,EAAcO,EAAcC,EAAqBd,QAArB,IAAAc,MAAA,QAAqB,IAAAd,OAAA,GAC/E,IAAID,EAAO,IAAIL,KAAKmB,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,GAKzC,OAJIb,GACHD,EAAKgB,eAAeF,GAEJ,EAAPP,EAAWQ,IAAYf,EAAKQ,UAAY,GAAK,GAUlD,SAAUS,EAAWC,EAAexd,GAOzC,OANIwd,EAAQ,GACXA,GAAS,GAES,IAAVA,IACRA,EAAQ,IAEF,IAAexd,GAAQwd,GAASxd,EAAO,GAAKwd,EAY9C,SAAUC,EAAYnB,EAAYoB,EAAuBC,EAA0BpB,GACxF,QADuC,IAAAmB,OAAA,QAAuB,IAAAC,OAAA,QAA0B,IAAApB,OAAA,GACpFA,EACH,OAAOmB,EAAO,6BAA+B,MAE9C,IAAIE,EAAOtB,EAAKuB,eAAe,OAC3BC,EAAMxB,EAAKuB,eAAe,MAAO,CAAEE,aAAcL,EAAO,OAAS,UAAWM,OAAOJ,EAAKlqB,QAK5F,OAHgB,IAAZiqB,IACHG,EAAMA,EAAI7vB,QAAQ,uCAAwC,MAEpD6vB,EA8BF,SAAUG,EAAU7wB,EAAe+B,EAAaC,GACrD,OAAIhC,EAAQgC,EACJA,EAEChC,EAAQ+B,EACTA,EAED/B,EAoBF,SAAU8wB,EAAkB9wB,EAAe+B,EAAaC,GAC7D,IAAI+uB,EAAM/uB,EAAMD,EAOhB,OANI/B,EAAQgC,GAGHhC,EAAQ+B,KAFhB/B,EAAQ+B,GAAO/B,EAAQ+wB,EAAMrvB,KAAKU,MAAMpC,EAAQ+wB,KAK1C/wB,EAkBF,SAAUgxB,EAAiB3rB,EAAemF,GAC/C,IAAI/F,EAAYY,EAAMZ,EAClBC,EAAYW,EAAMX,EAClBusB,EAAoB,GACxB,GAAIzmB,EAAQ,CACX,KAAO,IAAeA,EAAO8M,SAC5B2Z,EAAQtoB,KAAK6B,GACbA,EAASA,EAAO8M,OAGjB2Z,EAAQvD,UAER,IAAK,IAAIlnB,EAAI,EAAGA,EAAIyqB,EAAQ3qB,OAAQE,IAAK,CACxC,IAAI,EAAiByqB,EAAQzqB,GACzBP,EAAgB,EAAOirB,SAEvBC,EAAY1sB,EAAI,EAAO2sB,OAAS,EAAOC,GACvCC,EAAY5sB,EAAI,EAAO6sB,OAAS,EAAOC,GAEvC,EAAOC,KACVhtB,GAAK,EAAOgtB,IAET,EAAOC,KACVhtB,GAAK,EAAOgtB,IAGb,IAAIC,EAAQ,EAAOA,MAGhB,EAAOC,QACTD,EAAQ,EAAOC,MAAMD,OAGtBltB,GAAK,KAAWwB,GAASkrB,EAAY,KAAWlrB,GAASqrB,GAAaK,EAAQ,EAAOE,iBACrFntB,GAAK,KAAWuB,GAASqrB,EAAY,KAAWrrB,GAASkrB,GAAaQ,EAAQ,EAAOG,iBAIvF,MAAO,CAAErtB,EAAGA,EAAGC,EAAGA,GAWb,SAAUqtB,EAAiB1sB,EAAemF,GAC/C,IAAI/F,EAAYY,EAAMZ,EAClBC,EAAYW,EAAMX,EAEtB,GAAI8F,EACH,KAAO,IAAeA,EAAO8M,SAAS,CACrC,IAAIrR,EAAgBuE,EAAO0mB,SAE3BzsB,GAAK+F,EAAOqnB,iBAAmBrnB,EAAO6mB,GACtC3sB,GAAK8F,EAAOsnB,gBAAkBtnB,EAAOgnB,GAErC,IAAIG,EAAQnnB,EAAOmnB,MAGhBnnB,EAAOonB,QACTD,EAAQnnB,EAAOonB,MAAMD,OAGtB,IAAIR,EAAY3mB,EAAO4mB,QAAW3sB,EAAI,IAAUwB,GAASvB,EAAI,IAAUuB,IAAW0rB,EAC9EL,EAAY9mB,EAAO+mB,QAAW9sB,EAAI,IAAUwB,GAASvB,EAAI,IAAUuB,IAAW0rB,EAE9EnnB,EAAOinB,KACVN,GAAa3mB,EAAOinB,IAEjBjnB,EAAOknB,KACVJ,GAAa9mB,EAAOknB,IAGrBjtB,EAAI0sB,EACJzsB,EAAI4sB,EAEJ9mB,EAASA,EAAO8M,OAGlB,MAAO,CAAE7S,EAAGA,EAAGC,EAAGA,GAYb,SAAUstB,EAAoB3sB,EAAemF,EAAgBynB,GAClE,OAAOjB,EAAiBe,EAAiB1sB,EAAOmF,GAASynB,GAyBpD,SAAUC,EAAgBhU,EAAkB1T,GACjD,IAAI7C,EAAaoqB,EAAiB7T,EAAM1T,GACpC5C,EAAamqB,EAAiB,CAAEttB,EAAGyZ,EAAKzZ,EAAIyZ,EAAKzX,MAAO/B,EAAGwZ,EAAKxZ,EAAIwZ,EAAKxX,QAAU8D,GACvF,MAAO,CAAE/F,EAAGkD,EAAGlD,EAAGC,EAAGiD,EAAGjD,EAAG+B,MAAOmB,EAAGnD,EAAIkD,EAAGlD,EAAGiC,OAAQkB,EAAGlD,EAAIiD,EAAGjD,GAU5D,SAAUytB,EAAmB9sB,EAAe+sB,EAA2BC,GAC5E,IACC,IAAIC,EAAOF,EAAaG,wBAMxB,OAJK,IAAeF,KACnBA,EAAW,GAGL,CACN,GAAMhtB,EAAMZ,EAAI6tB,EAAKvvB,MAAQsvB,EAC7B,GAAMhtB,EAAMX,EAAI4tB,EAAKE,KAAOH,GAG9B,MAAO7jB,GACN,OAAOnJ,GAWH,SAAUotB,EAAmBptB,EAAe+sB,GACjD,IACC,IAAIE,EAAOF,EAAaG,wBAExB,MAAO,CACN,EAAKltB,EAAMZ,EAAI6tB,EAAKvvB,KACpB,EAAKsC,EAAMX,EAAI4tB,EAAKE,KAGtB,MAAOhkB,GACN,OAAOnJ,GAYH,SAAUqtB,EAAsBrtB,EAAemF,GACpD,OAAIA,GAAUA,EAAOmoB,cAEb3B,EADgBmB,EAAmB9sB,EAAO,IAAemF,EAAOmoB,eAAgBnoB,EAAO4nB,aAAaC,UACzE7nB,GAG3BnF,EAWH,SAAUutB,EAAsBvtB,EAAemF,GACpD,OAAIA,GAAUA,EAAOmoB,cAEbF,EADgBV,EAAiB1sB,EAAOmF,GACX,IAAeA,EAAOmoB,gBAGnDttB,EAqBH,SAAUoB,EAAMosB,GAErB,IAAIC,EAAKC,iBAAiBF,GAEtBG,EAAWC,WAAWH,EAAGI,aAAeD,WAAWH,EAAGK,cACtDC,EAAUH,WAAWH,EAAGO,iBAAmBJ,WAAWH,EAAGQ,kBAE7D,OAAOT,EAAQjoB,YAAcooB,EAAWI,EAWnC,SAAU1sB,EAAOmsB,GAEtB,IAAIC,EAAKC,iBAAiBF,GAEtBU,EAAWN,WAAWH,EAAGU,YAAcP,WAAWH,EAAGW,eACrDC,EAAUT,WAAWH,EAAGa,gBAAkBV,WAAWH,EAAGc,mBAE5D,OAAOf,EAAQhoB,aAAe0oB,EAAWG,EAUpC,SAAUG,GAAcC,GAC7B,IAAIhL,GAAS,GAAKgL,GAAQhL,MAAM,oCAChC,OAAKA,EACEpnB,KAAKM,IAAI,GAAI8mB,EAAM,GAAKA,EAAM,GAAGxiB,OAAS,IAAMwiB,EAAM,IAAMA,EAAM,GAAK,IADzD,EAqBtB,IAAMiL,GAAY,8GAQZ,SAAUC,GAAS7I,GACxB,IAAMrC,EAAQiL,GAAU3I,KAAKD,GAE7B,MAAO,CACN8I,SAAWnL,GAASA,EAAM,IAAO,GACjCoL,UAAYpL,GAASA,EAAM,IAAO,GAClCqL,UAAYrL,GAASA,EAAM,IAAO,GAClCsL,OAAStL,GAASA,EAAM,IAAO,GAC/BuL,KAAOvL,GAASA,EAAM,IAAO,GAC7B7S,KAAO6S,GAASA,EAAM,IAAO,GAC7BwL,MAAQxL,GAASA,EAAM,IAAO,GAC9ByL,KAAOzL,GAASA,EAAM,IAAO,IASzB,SAAU0L,GAAarJ,GAC5B,OAAOA,EAAI8I,SAAW9I,EAAI+I,UAAY/I,EAAIgJ,UAAYhJ,EAAIiJ,OAASjJ,EAAIkJ,KAAOlJ,EAAIlV,KAAOkV,EAAImJ,MAAQnJ,EAAIoJ,KAS1G,SAASE,GAActJ,GACtB,MAAwB,KAAjBA,EAAI8I,UACQ,KAAlB9I,EAAI+I,WACc,KAAlB/I,EAAIgJ,WACW,KAAfhJ,EAAIiJ,QACS,KAAbjJ,EAAIkJ,KASA,SAAUK,GAAQ3xB,EAAcC,GACrC,IAAM2xB,EAAaX,GAASjxB,GACtB6xB,EAAcZ,GAAShxB,GAE7B,GAAIyxB,GAAcE,GACjB,MAAM,IAAIr0B,MAAM,4BAGjB,GAAIm0B,GAAcG,GAAc,CAE/B,GAAyB,KAArBA,EAAY3e,KACf,GAA4B,MAAxB2e,EAAY3e,KAAK,GACpB0e,EAAW1e,KAAO2e,EAAY3e,SAGxB,CACN,IAAM4e,EAAWF,EAAW1e,KAAKmW,MAAM,MACjC0I,EAAYF,EAAY3e,KAAKmW,MAAM,MAgBzC,GAbwB,IAApByI,EAASvuB,OACa,IAArBwuB,EAAUxuB,QACbuuB,EAASlsB,KAAK,IAGLksB,EAASvuB,OAAS,GAC5BuuB,EAASjlB,MAGV,IAAeilB,EAAUC,GAEzBH,EAAW1e,KAAO4e,EAASjkB,KAAK,KAER,KAApB+jB,EAAW1e,MAAsC,MAAvB0e,EAAW1e,KAAK,GAC7C,MAAM,IAAI3V,MAAM,8BASnB,OAHAq0B,EAAWL,MAAQM,EAAYN,MAC/BK,EAAWJ,KAAOK,EAAYL,KAEvBC,GAAaG,GAGpB,OAAOH,GAAaI,GAShB,SAAUG,KACf,QAAe9T,OAAQ+T,wBAAgC9T,SAAU+T,e,6BC/vClE,spBAoBM,SAAUh0B,EAAWi0B,EAAqBl1B,GAG/C,IAFA,IAAMsG,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,IAAUE,EAE7B,GAAI0uB,EAAM1uB,KAAOxG,EAChB,OAAOwG,EAIT,OAAQ,EAcH,SAAU2uB,EAAOD,EAAqBE,GAG3C,IAFA,IAAM9uB,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,IAAUE,EAC7B,GAAI4uB,EAAKF,EAAM1uB,IACd,OAAO,EAIT,OAAO,EAWF,SAAU6uB,EAAUH,EAAqBxc,GAI9C,IAHA,IAAMpS,EAAS4uB,EAAM5uB,OACfgvB,EAAS,IAAI9zB,MAAM8E,GAEhBE,EAAI,EAAGA,EAAIF,IAAUE,EAC7B8uB,EAAO9uB,GAAKkS,EAAGwc,EAAM1uB,GAAIA,GAG1B,OAAO8uB,EAUF,SAAUjkB,EAAQ6jB,EAAqBxc,GAG5C,IAFA,IAAMpS,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,IAAUE,EAC7BkS,EAAGwc,EAAM1uB,GAAIA,GAWT,SAAU+uB,EAAeL,EAAqBxc,GAGnD,IAFA,IAAIlS,EAAI0uB,EAAM5uB,OAEPE,KACNkS,EAAGwc,EAAM1uB,GAAIA,GAaT,SAAUgvB,EAAgBN,EAAqBxc,GAGpD,IAFA,IAAMpS,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,GACdoS,EAAGwc,EAAM1uB,GAAIA,KADWA,IAazB,SAAUivB,EAAaP,EAAiBpjB,GAG7C,IAFA,IAAMxL,EAAS4uB,EAAM5uB,OAEZE,EAAIsL,EAAOtL,EAAIF,IAAUE,EACjC0uB,EAAM1uB,EAAIsL,GAASojB,EAAM1uB,GAG1B0uB,EAAM5uB,OAASA,EAASwL,EA4DnB,SAAU4jB,EAAWR,EAAiBS,GAG3C,IAFA,IAAMrvB,EAASqvB,EAAMrvB,OAEZE,EAAI,EAAGA,EAAIF,IAAUE,EAC7B0uB,EAAMvsB,KAAKgtB,EAAMnvB,IAab,SAAUovB,EAAUV,EAAiBrC,GAC1C,IAAIgD,GAAiB,EACjB/jB,EAAgBojB,EAAMj0B,QAAQ4xB,GAElC,IAAe,IAAX/gB,EAAc,CACjB+jB,GAAQ,EACRX,EAAMY,OAAOhkB,EAAO,GAIpB,IAFA,IAAI,EAAiBojB,EAAM5uB,OAEpBwL,EAAQ,GAEVojB,EAAMpjB,KAAW+gB,GACpBqC,EAAMY,OAAOhkB,EAAO,KAClB,KAGAA,EAKL,OAAO+jB,EAeF,SAAUE,EAAQb,EAAiBrC,EAAYmD,GAGpD,IAAIlkB,EAAQ7Q,EAAQi0B,EAAOrC,IAGZ,IAAX/gB,GACHmkB,EAAYf,EAAOpjB,GAGL,MAAXkkB,EACHd,EAAMvsB,KAAKkqB,GAEXqD,EAAYhB,EAAOc,EAASnD,GAcxB,SAAUpf,EAAOyhB,EAAiBrC,EAAY/gB,GAE9C,IAAeA,GAKD,IAAVA,EACRojB,EAAMiB,QAAQtD,GAIdqC,EAAMY,OAAOhkB,EAAO,EAAG+gB,GATvBqC,EAAMvsB,KAAKkqB,GAuBP,SAAUhyB,EAAWq0B,EAAiBrC,EAAY/gB,GAEvD,IAAIskB,EAAclB,EAAMj0B,QAAQ4xB,IAGnB,IAATuD,GACHlB,EAAMY,OAAOM,EAAK,GAId,IAAetkB,GAKnBojB,EAAMY,OAAOhkB,EAAO,EAAG+gB,GAJvBqC,EAAMvsB,KAAKkqB,GAcP,SAAUwD,EAAWV,GAC1B,OAAIn0B,MAAMD,QAAQo0B,GACVA,EAGA,CAACA,GAqBJ,SAAUxe,EAAQ+d,GAMvB,IALA,IAAM5uB,EAAS4uB,EAAM5uB,OAGfgvB,EAAS,IAAI9zB,MAAM8E,GAEhBE,EAAI,EAAGA,EAAIF,IAAUE,EAG7B8uB,EAAO9uB,GAAK0uB,EAAM1uB,GAGnB,OAAO8uB,EAgCF,SAAUY,EAAehB,EAAiBpjB,EAAe9R,GAC9Dk1B,EAAMY,OAAOhkB,EAAO,EAAG9R,GASlB,SAAUi2B,EAAef,EAAiBpjB,GAC/CojB,EAAMY,OAAOhkB,EAAO,GAsBf,SAAUwkB,EAAkBpB,EAAqBqB,EAA2Cv2B,GAKjG,IAJA,IAAI4D,EAAQ,EACRG,EAAQmxB,EAAM5uB,OACduvB,GAAQ,EAELjyB,EAAQG,GAAK,CAEnB,IAAMyyB,EAAS5yB,EAAQG,GAAQ,EAEzB0yB,EAAQF,EAASv2B,EAAOk1B,EAAMsB,IAGhCC,EAAQ,EACX1yB,EAAMyyB,EAGc,IAAVC,GACVZ,GAAQ,EACRjyB,EAAQ4yB,EAAQ,GAIhB5yB,EAAQ4yB,EAAQ,EAIlB,MAAO,CACNX,MAAOA,EACP/jB,MAAQ+jB,EAAQjyB,EAAQ,EAAIA,GAiBxB,SAAU8yB,EAAaxB,EAAqByB,GAGjD,IAFA,IAAMrwB,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,IAAUE,EAC7B,GAAImwB,EAAQzB,EAAM1uB,GAAIA,GACrB,OAAOA,EAIT,OAAQ,EAkDH,SAAUowB,EAAU1B,EAAiB2B,GAI1C,IAHA,IAAIvwB,EAAS4uB,EAAM5uB,OACfE,EAAI,EAEDA,EAAIF,GACNuwB,EAAK3B,EAAM1uB,MACZA,GAGF0uB,EAAMY,OAAOtvB,EAAG,KACdF,K,6BC1iBU,SAASwwB,EAAgBxlB,EAAKrG,EAAKjL,GAYhD,OAXIiL,KAAOqG,EACTzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAC9BjL,MAAOA,EACPkT,YAAY,EACZG,cAAc,EACdD,UAAU,IAGZ9B,EAAIrG,GAAOjL,EAGNsR,EAZT,mC,8BCAe,SAASylB,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAItnB,UAAU,qCAFxB,mC,6BCAA,8CAEA,SAASgC,EAAQlF,EAAQ+E,GACvB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAEvB,GAAII,OAAOuL,sBAAuB,CAChC,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GACvC+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAEtDxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAGxB,OAAOxlB,EAGM,SAAS2lB,EAAe1rB,GACrC,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CACzC,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAE/CA,EAAI,EACNmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAC9C,YAAeU,EAAQV,EAAKggB,EAAOhgB,OAE5B4B,OAAOyqB,0BAChBzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAEjEtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GACxC4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAKjF,OAAOU,I,iBCjCT,YAOmE/L,EAAOC,QAGjE,WAAc,aAEnB,IAAI23B,EA4HAC,EA1HJ,SAASC,IACL,OAAOF,EAAa5pB,MAAM,KAAMD,WASpC,SAASpM,EAAQo0B,GACb,OACIA,aAAiBn0B,OACyB,mBAA1CqL,OAAOQ,UAAUlN,SAASC,KAAKu1B,GAIvC,SAAS50B,EAAS40B,GAGd,OACa,MAATA,GAC0C,oBAA1C9oB,OAAOQ,UAAUlN,SAASC,KAAKu1B,GAIvC,SAASgC,EAAWz2B,EAAG0L,GACnB,OAAOC,OAAOQ,UAAUJ,eAAe7M,KAAKc,EAAG0L,GAGnD,SAASgrB,EAActmB,GACnB,GAAIzE,OAAOwL,oBACP,OAAkD,IAA3CxL,OAAOwL,oBAAoB/G,GAAKhL,OAEvC,IAAIuxB,EACJ,IAAKA,KAAKvmB,EACN,GAAIqmB,EAAWrmB,EAAKumB,GAChB,OAAO,EAGf,OAAO,EAIf,SAASC,EAAYnC,GACjB,YAAiB,IAAVA,EAGX,SAASj1B,EAASi1B,GACd,MACqB,kBAAVA,GACmC,oBAA1C9oB,OAAOQ,UAAUlN,SAASC,KAAKu1B,GAIvC,SAASr0B,EAAOq0B,GACZ,OACIA,aAAiB9G,MACyB,kBAA1ChiB,OAAOQ,UAAUlN,SAASC,KAAKu1B,GAIvC,SAASN,EAAI1a,EAAKjC,GACd,IACIlS,EADAmQ,EAAM,GAEV,IAAKnQ,EAAI,EAAGA,EAAImU,EAAIrU,SAAUE,EAC1BmQ,EAAIhO,KAAK+P,EAAGiC,EAAInU,GAAIA,IAExB,OAAOmQ,EAGX,SAASohB,EAAO72B,EAAG0L,GACf,IAAK,IAAIpG,KAAKoG,EACN+qB,EAAW/qB,EAAGpG,KACdtF,EAAEsF,GAAKoG,EAAEpG,IAYjB,OARImxB,EAAW/qB,EAAG,cACd1L,EAAEf,SAAWyM,EAAEzM,UAGfw3B,EAAW/qB,EAAG,aACd1L,EAAE82B,QAAUprB,EAAEorB,SAGX92B,EAGX,SAAS+2B,EAAUtC,EAAO7H,EAAQoK,EAAQC,GACtC,OAAOC,GAAiBzC,EAAO7H,EAAQoK,EAAQC,GAAQ,GAAMhJ,MAyBjE,SAASkJ,EAAgBtoB,GAIrB,OAHa,MAATA,EAAEuoB,MACFvoB,EAAEuoB,IAtBC,CACHC,OAAO,EACPC,aAAc,GACdC,YAAa,GACbC,UAAW,EACXC,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACLC,SAAU,KACVC,SAAS,EACTC,iBAAiB,IAQdvpB,EAAEuoB,IAsBb,SAASiB,EAAQxpB,GACb,GAAkB,MAAdA,EAAEypB,SAAkB,CACpB,IAAIC,EAAQpB,EAAgBtoB,GACxB2pB,EAAcjC,EAAKr3B,KAAKq5B,EAAMP,iBAAiB,SAAU1yB,GACrD,OAAY,MAALA,KAEXmzB,GACK55B,MAAMgQ,EAAE+K,GAAGkU,YACZyK,EAAMf,SAAW,IAChBe,EAAMlB,QACNkB,EAAMZ,aACNY,EAAMX,eACNW,EAAMG,iBACNH,EAAMH,kBACNG,EAAMb,YACNa,EAAMV,gBACNU,EAAMT,mBACLS,EAAML,UAAaK,EAAML,UAAYM,GAU/C,GARI3pB,EAAE8pB,UACFF,EACIA,GACwB,IAAxBF,EAAMd,eACwB,IAA9Bc,EAAMjB,aAAalyB,aACDuQ,IAAlB4iB,EAAMK,SAGS,MAAnBjtB,OAAO2G,UAAqB3G,OAAO2G,SAASzD,GAG5C,OAAO4pB,EAFP5pB,EAAEypB,SAAWG,EAKrB,OAAO5pB,EAAEypB,SAGb,SAASO,EAAcN,GACnB,IAAI1pB,EAAIkoB,EAAU+B,KAOlB,OANa,MAATP,EACA1B,EAAOM,EAAgBtoB,GAAI0pB,GAE3BpB,EAAgBtoB,GAAGipB,iBAAkB,EAGlCjpB,EA7DP0nB,EADAj2B,MAAM6L,UAAUoqB,KACTj2B,MAAM6L,UAAUoqB,KAEhB,SAAUwC,GACb,IAEIzzB,EAFAiH,EAAIZ,OAAO1C,MACXqR,EAAM/N,EAAEnH,SAAW,EAGvB,IAAKE,EAAI,EAAGA,EAAIgV,EAAKhV,IACjB,GAAIA,KAAKiH,GAAKwsB,EAAI75B,KAAK+J,KAAMsD,EAAEjH,GAAIA,EAAGiH,GAClC,OAAO,EAIf,OAAO,GAqDf,IAAIysB,EAAoBxC,EAAMwC,iBAAmB,GAC7CC,GAAmB,EAEvB,SAASC,EAAWC,EAAIC,GACpB,IAAI9zB,EAAG2L,EAAMooB,EAiCb,GA/BKzC,EAAYwC,EAAKE,oBAClBH,EAAGG,iBAAmBF,EAAKE,kBAE1B1C,EAAYwC,EAAKrf,MAClBof,EAAGpf,GAAKqf,EAAKrf,IAEZ6c,EAAYwC,EAAKG,MAClBJ,EAAGI,GAAKH,EAAKG,IAEZ3C,EAAYwC,EAAKI,MAClBL,EAAGK,GAAKJ,EAAKI,IAEZ5C,EAAYwC,EAAKT,WAClBQ,EAAGR,QAAUS,EAAKT,SAEjB/B,EAAYwC,EAAKK,QAClBN,EAAGM,KAAOL,EAAKK,MAEd7C,EAAYwC,EAAKM,UAClBP,EAAGO,OAASN,EAAKM,QAEhB9C,EAAYwC,EAAKO,WAClBR,EAAGQ,QAAUP,EAAKO,SAEjB/C,EAAYwC,EAAKhC,OAClB+B,EAAG/B,IAAMD,EAAgBiC,IAExBxC,EAAYwC,EAAKQ,WAClBT,EAAGS,QAAUR,EAAKQ,SAGlBZ,EAAiB5zB,OAAS,EAC1B,IAAKE,EAAI,EAAGA,EAAI0zB,EAAiB5zB,OAAQE,IAGhCsxB,EADLyC,EAAMD,EADNnoB,EAAO+nB,EAAiB1zB,OAGpB6zB,EAAGloB,GAAQooB,GAKvB,OAAOF,EAIX,SAASU,EAAOpiB,GACZyhB,EAAWjwB,KAAMwO,GACjBxO,KAAK2Q,GAAK,IAAI+T,KAAkB,MAAblW,EAAOmC,GAAanC,EAAOmC,GAAGkU,UAAYgL,KACxD7vB,KAAKovB,YACNpvB,KAAK2Q,GAAK,IAAI+T,KAAKmL,OAIE,IAArBG,IACAA,GAAmB,EACnBzC,EAAMsD,aAAa7wB,MACnBgwB,GAAmB,GAI3B,SAASc,EAAS3pB,GACd,OACIA,aAAeypB,GAAkB,MAAPzpB,GAAuC,MAAxBA,EAAIkpB,iBAIrD,SAASU,EAAKvqB,IAEgC,IAAtC+mB,EAAMyD,6BACa,qBAAZC,SACPA,QAAQF,MAERE,QAAQF,KAAK,wBAA0BvqB,GAI/C,SAAS0qB,EAAU1qB,EAAK+H,GACpB,IAAI4iB,GAAY,EAEhB,OAAOvD,GAAO,WAIV,GAHgC,MAA5BL,EAAM6D,oBACN7D,EAAM6D,mBAAmB,KAAM5qB,GAE/B2qB,EAAW,CACX,IACIhhB,EACA9T,EACAyE,EAHAyF,EAAO,GAIX,IAAKlK,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAEnC,GADA8T,EAAM,GACsB,kBAAjB3M,UAAUnH,GAAiB,CAElC,IAAKyE,KADLqP,GAAO,MAAQ9T,EAAI,KACPmH,UAAU,GACdgqB,EAAWhqB,UAAU,GAAI1C,KACzBqP,GAAOrP,EAAM,KAAO0C,UAAU,GAAG1C,GAAO,MAGhDqP,EAAMA,EAAIxH,MAAM,GAAI,QAEpBwH,EAAM3M,UAAUnH,GAEpBkK,EAAK/H,KAAK2R,GAEd4gB,EACIvqB,EACI,gBACAnP,MAAM6L,UAAUyF,MAAM1S,KAAKsQ,GAAME,KAAK,IACtC,MACA,IAAItQ,OAAQk7B,OAEpBF,GAAY,EAEhB,OAAO5iB,EAAG9K,MAAMzD,KAAMwD,aACvB+K,GAGP,IAgFIhH,EAhFA+pB,EAAe,GAEnB,SAASC,EAAgBhvB,EAAMiE,GACK,MAA5B+mB,EAAM6D,oBACN7D,EAAM6D,mBAAmB7uB,EAAMiE,GAE9B8qB,EAAa/uB,KACdwuB,EAAKvqB,GACL8qB,EAAa/uB,IAAQ,GAO7B,SAASivB,EAAWhG,GAChB,MACyB,qBAAbiG,UAA4BjG,aAAiBiG,UACX,sBAA1C/uB,OAAOQ,UAAUlN,SAASC,KAAKu1B,GA2BvC,SAASkG,EAAaC,EAAcC,GAChC,IACI5pB,EADAwE,EAAMohB,EAAO,GAAI+D,GAErB,IAAK3pB,KAAQ4pB,EACLpE,EAAWoE,EAAa5pB,KACpBpR,EAAS+6B,EAAa3pB,KAAUpR,EAASg7B,EAAY5pB,KACrDwE,EAAIxE,GAAQ,GACZ4lB,EAAOphB,EAAIxE,GAAO2pB,EAAa3pB,IAC/B4lB,EAAOphB,EAAIxE,GAAO4pB,EAAY5pB,KACF,MAArB4pB,EAAY5pB,GACnBwE,EAAIxE,GAAQ4pB,EAAY5pB,UAEjBwE,EAAIxE,IAIvB,IAAKA,KAAQ2pB,EAELnE,EAAWmE,EAAc3pB,KACxBwlB,EAAWoE,EAAa5pB,IACzBpR,EAAS+6B,EAAa3pB,MAGtBwE,EAAIxE,GAAQ4lB,EAAO,GAAIphB,EAAIxE,KAGnC,OAAOwE,EAGX,SAASqlB,EAAOrjB,GACE,MAAVA,GACAxO,KAAKgB,IAAIwN,GAmCjB,SAASsjB,EAASnI,EAAQoI,EAAcC,GACpC,IAAIC,EAAY,GAAK16B,KAAK6B,IAAIuwB,GAC1BuI,EAAcH,EAAeE,EAAU91B,OAE3C,OADWwtB,GAAU,EAERqI,EAAY,IAAM,GAAM,KACjCz6B,KAAKa,IAAI,GAAIb,KAAKM,IAAI,EAAGq6B,IAAcl8B,WAAWywB,OAAO,GACzDwL,EA1GR1E,EAAMyD,6BAA8B,EACpCzD,EAAM6D,mBAAqB,KAsEvB7pB,EADA7E,OAAO6E,KACA7E,OAAO6E,KAEP,SAAUJ,GACb,IAAI9K,EACAmQ,EAAM,GACV,IAAKnQ,KAAK8K,EACFqmB,EAAWrmB,EAAK9K,IAChBmQ,EAAIhO,KAAKnC,GAGjB,OAAOmQ,GA6Bf,IAAI2lB,EAAmB,yMACnBC,EAAwB,6CACxBC,EAAkB,GAClBC,EAAuB,GAM3B,SAASC,EAAeC,EAAOC,EAAQC,EAAS9d,GAC5C,IAAI+d,EAAO/d,EACa,kBAAbA,IACP+d,EAAO,WACH,OAAO3yB,KAAK4U,OAGhB4d,IACAF,EAAqBE,GAASG,GAE9BF,IACAH,EAAqBG,EAAO,IAAM,WAC9B,OAAOX,EAASa,EAAKlvB,MAAMzD,KAAMwD,WAAYivB,EAAO,GAAIA,EAAO,MAGnEC,IACAJ,EAAqBI,GAAW,WAC5B,OAAO1yB,KAAK4yB,aAAaF,QACrBC,EAAKlvB,MAAMzD,KAAMwD,WACjBgvB,KAuChB,SAASK,EAAajtB,EAAG+d,GACrB,OAAK/d,EAAEwpB,WAIPzL,EAASmP,EAAanP,EAAQ/d,EAAEgtB,cAChCP,EAAgB1O,GACZ0O,EAAgB1O,IAjCxB,SAA4BA,GACxB,IACItnB,EACAF,EAVwBqvB,EAQxBT,EAAQpH,EAAOhF,MAAMwT,GAIzB,IAAK91B,EAAI,EAAGF,EAAS4uB,EAAM5uB,OAAQE,EAAIF,EAAQE,IACvCi2B,EAAqBvH,EAAM1uB,IAC3B0uB,EAAM1uB,GAAKi2B,EAAqBvH,EAAM1uB,IAEtC0uB,EAAM1uB,IAhBcmvB,EAgBcT,EAAM1uB,IAftCsiB,MAAM,YACL6M,EAAM90B,QAAQ,WAAY,IAE9B80B,EAAM90B,QAAQ,MAAO,IAgB5B,OAAO,SAAUq8B,GACb,IACI12B,EADA8uB,EAAS,GAEb,IAAK9uB,EAAI,EAAGA,EAAIF,EAAQE,IACpB8uB,GAAUqG,EAAWzG,EAAM1uB,IACrB0uB,EAAM1uB,GAAGpG,KAAK88B,EAAKpP,GACnBoH,EAAM1uB,GAEhB,OAAO8uB,GAYoB6H,CAAmBrP,GAE3C0O,EAAgB1O,GAAQ/d,IAPpBA,EAAEgtB,aAAaK,cAU9B,SAASH,EAAanP,EAAQoK,GAC1B,IAAI1xB,EAAI,EAER,SAAS62B,EAA4B1H,GACjC,OAAOuC,EAAOoF,eAAe3H,IAAUA,EAI3C,IADA4G,EAAsBgB,UAAY,EAC3B/2B,GAAK,GAAK+1B,EAAsBnH,KAAKtH,IACxCA,EAASA,EAAOjtB,QACZ07B,EACAc,GAEJd,EAAsBgB,UAAY,EAClC/2B,GAAK,EAGT,OAAOsnB,EAkFX,IAAI0P,EAAU,GAEd,SAASC,EAAaC,EAAMC,GACxB,IAAIC,EAAYF,EAAK1P,cACrBwP,EAAQI,GAAaJ,EAAQI,EAAY,KAAOJ,EAAQG,GAAaD,EAGzE,SAASG,EAAeC,GACpB,MAAwB,kBAAVA,EACRN,EAAQM,IAAUN,EAAQM,EAAM9P,oBAChCnX,EAGV,SAASknB,EAAqBC,GAC1B,IACIC,EACA9rB,EAFA+rB,EAAkB,GAItB,IAAK/rB,KAAQ6rB,EACLrG,EAAWqG,EAAa7rB,KACxB8rB,EAAiBJ,EAAe1rB,MAE5B+rB,EAAgBD,GAAkBD,EAAY7rB,IAK1D,OAAO+rB,EAGX,IAAIC,EAAa,GAEjB,SAASC,EAAgBV,EAAMW,GAC3BF,EAAWT,GAAQW,EAiBvB,SAASC,EAAWtO,GAChB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,EAGlE,SAASuO,EAASzK,GACd,OAAIA,EAAS,EAEFpyB,KAAKc,KAAKsxB,IAAW,EAErBpyB,KAAKU,MAAM0xB,GAI1B,SAAS0K,EAAMC,GACX,IAAIC,GAAiBD,EACjBz+B,EAAQ,EAMZ,OAJsB,IAAlB0+B,GAAuBC,SAASD,KAChC1+B,EAAQu+B,EAASG,IAGd1+B,EAGX,SAAS4+B,EAAWlB,EAAMmB,GACtB,OAAO,SAAU7+B,GACb,OAAa,MAATA,GACA8+B,EAAM30B,KAAMuzB,EAAM19B,GAClB03B,EAAMsD,aAAa7wB,KAAM00B,GAClB10B,MAEAkB,EAAIlB,KAAMuzB,IAK7B,SAASryB,EAAI6xB,EAAKQ,GACd,OAAOR,EAAI3D,UACL2D,EAAIpiB,GAAG,OAASoiB,EAAItC,OAAS,MAAQ,IAAM8C,KAC3C1D,IAGV,SAAS8E,EAAM5B,EAAKQ,EAAM19B,GAClBk9B,EAAI3D,YAAcx5B,MAAMC,KAEX,aAAT09B,GACAY,EAAWpB,EAAIlN,SACC,IAAhBkN,EAAI6B,SACW,KAAf7B,EAAIhO,QAEJlvB,EAAQw+B,EAAMx+B,GACdk9B,EAAIpiB,GAAG,OAASoiB,EAAItC,OAAS,MAAQ,IAAM8C,GACvC19B,EACAk9B,EAAI6B,QACJC,GAAYh/B,EAAOk9B,EAAI6B,WAG3B7B,EAAIpiB,GAAG,OAASoiB,EAAItC,OAAS,MAAQ,IAAM8C,GAAM19B,IAgC7D,IAmBIi/B,EAnBAC,EAAS,KACTC,EAAS,OACTC,EAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BAInBC,GAAY,wJAKhB,SAASC,GAAcvD,EAAOwD,EAAOC,GACjCnB,EAAQtC,GAAShB,EAAWwE,GACtBA,EACA,SAAUE,EAAUtD,GAChB,OAAOsD,GAAYD,EAAcA,EAAcD,GAI7D,SAASG,GAAsB3D,EAAOhkB,GAClC,OAAKgf,EAAWsH,EAAStC,GAIlBsC,EAAQtC,GAAOhkB,EAAOkhB,QAASlhB,EAAOmiB,SAHlC,IAAI1N,OAQRmT,GAR8B5D,EAU5B97B,QAAQ,KAAM,IACdA,QAAQ,uCAAuC,SAC5C2/B,EACA74B,EACAC,EACAC,EACA44B,GAEA,OAAO94B,GAAMC,GAAMC,GAAM44B,OAKzC,SAASF,GAAYn7B,GACjB,OAAOA,EAAEvE,QAAQ,yBAA0B,QApC/Co+B,EAAU,GAuCV,IA6CIh+B,GA7CAy/B,GAAS,GAEb,SAASC,GAAchE,EAAO5d,GAC1B,IAAIvY,EACAs2B,EAAO/d,EASX,IARqB,kBAAV4d,IACPA,EAAQ,CAACA,IAETj8B,EAASqe,KACT+d,EAAO,SAAUnH,EAAOT,GACpBA,EAAMnW,GAAYyf,EAAM7I,KAG3BnvB,EAAI,EAAGA,EAAIm2B,EAAMr2B,OAAQE,IAC1Bk6B,GAAO/D,EAAMn2B,IAAMs2B,EAI3B,SAAS8D,GAAkBjE,EAAO5d,GAC9B4hB,GAAchE,GAAO,SAAUhH,EAAOT,EAAOvc,EAAQgkB,GACjDhkB,EAAOkoB,GAAKloB,EAAOkoB,IAAM,GACzB9hB,EAAS4W,EAAOhd,EAAOkoB,GAAIloB,EAAQgkB,MAI3C,SAASmE,GAAwBnE,EAAOhH,EAAOhd,GAC9B,MAATgd,GAAiBgC,EAAW+I,GAAQ/D,IACpC+D,GAAO/D,GAAOhH,EAAOhd,EAAOooB,GAAIpoB,EAAQgkB,GAmChD,SAASqC,GAAYhP,EAAM+O,GACvB,GAAIh/B,MAAMiwB,IAASjwB,MAAMg/B,GACrB,OAAO/E,IAEX,IAzBYv1B,EAyBRu8B,GAAejC,GAzBPt6B,EAyBc,IAxBRA,GAAKA,EA0BvB,OADAurB,IAAS+O,EAAQiC,GAAY,GACT,IAAbA,EACD1C,EAAWtO,GACP,GACA,GACJ,GAAOgR,EAAW,EAAK,EAxB7B//B,GADAO,MAAM6L,UAAUpM,QACNO,MAAM6L,UAAUpM,QAEhB,SAAU6O,GAEhB,IAAItJ,EACJ,IAAKA,EAAI,EAAGA,EAAI2D,KAAK7D,SAAUE,EAC3B,GAAI2D,KAAK3D,KAAOsJ,EACZ,OAAOtJ,EAGf,OAAQ,GAmBhBk2B,EAAe,IAAK,CAAC,KAAM,GAAI,MAAM,WACjC,OAAOvyB,KAAK40B,QAAU,KAG1BrC,EAAe,MAAO,EAAG,GAAG,SAAU5O,GAClC,OAAO3jB,KAAK4yB,aAAakE,YAAY92B,KAAM2jB,MAG/C4O,EAAe,OAAQ,EAAG,GAAG,SAAU5O,GACnC,OAAO3jB,KAAK4yB,aAAamE,OAAO/2B,KAAM2jB,MAK1C2P,EAAa,QAAS,KAItBW,EAAgB,QAAS,GAIzB8B,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,OAAO,SAAUG,EAAUnI,GACrC,OAAOA,EAAOiJ,iBAAiBd,MAEnCH,GAAc,QAAQ,SAAUG,EAAUnI,GACtC,OAAOA,EAAOkJ,YAAYf,MAG9BM,GAAc,CAAC,IAAK,OAAO,SAAUhL,EAAOT,GACxCA,EA7EQ,GA6EOsJ,EAAM7I,GAAS,KAGlCgL,GAAc,CAAC,MAAO,SAAS,SAAUhL,EAAOT,EAAOvc,EAAQgkB,GAC3D,IAAIoC,EAAQpmB,EAAOmiB,QAAQuG,YAAY1L,EAAOgH,EAAOhkB,EAAOkhB,SAE/C,MAATkF,EACA7J,EApFI,GAoFW6J,EAEf1G,EAAgB1f,GAAQmgB,aAAenD,KAM/C,IAAI2L,GAAsB,wFAAwFlV,MAC1G,KAEJmV,GAA2B,kDAAkDnV,MACzE,KAEJoV,GAAmB,gCACnBC,GAA0BxB,GAC1ByB,GAAqBzB,GA8BzB,SAAS0B,GAAkBC,EAAW9T,EAAQqK,GAC1C,IAAI3xB,EACAq7B,EACA3E,EACA4E,EAAMF,EAAUG,oBACpB,IAAK53B,KAAK63B,aAKN,IAHA73B,KAAK63B,aAAe,GACpB73B,KAAK83B,iBAAmB,GACxB93B,KAAK+3B,kBAAoB,GACpB17B,EAAI,EAAGA,EAAI,KAAMA,EAClB02B,EAAMjF,EAAU,CAAC,IAAMzxB,IACvB2D,KAAK+3B,kBAAkB17B,GAAK2D,KAAK82B,YAC7B/D,EACA,IACF6E,oBACF53B,KAAK83B,iBAAiBz7B,GAAK2D,KAAK+2B,OAAOhE,EAAK,IAAI6E,oBAIxD,OAAI5J,EACe,QAAXrK,GAEe,KADf+T,EAAK5gC,GAAQb,KAAK+J,KAAK+3B,kBAAmBJ,IACvBD,EAAK,MAGT,KADfA,EAAK5gC,GAAQb,KAAK+J,KAAK83B,iBAAkBH,IACtBD,EAAK,KAGb,QAAX/T,GAEY,KADZ+T,EAAK5gC,GAAQb,KAAK+J,KAAK+3B,kBAAmBJ,MAK3B,KADfD,EAAK5gC,GAAQb,KAAK+J,KAAK83B,iBAAkBH,IAF9BD,EAGa,MAGZ,KADZA,EAAK5gC,GAAQb,KAAK+J,KAAK83B,iBAAkBH,MAK1B,KADfD,EAAK5gC,GAAQb,KAAK+J,KAAK+3B,kBAAmBJ,IAF/BD,EAGa,KA4DpC,SAASM,GAASjF,EAAKl9B,GACnB,IAAIoiC,EAEJ,IAAKlF,EAAI3D,UAEL,OAAO2D,EAGX,GAAqB,kBAAVl9B,EACP,GAAI,QAAQo1B,KAAKp1B,GACbA,EAAQw+B,EAAMx+B,QAId,IAAKU,EAFLV,EAAQk9B,EAAIH,aAAasE,YAAYrhC,IAGjC,OAAOk9B,EAOnB,OAFAkF,EAAa1gC,KAAKK,IAAIm7B,EAAIhO,OAAQ8P,GAAY9B,EAAIlN,OAAQhwB,IAC1Dk9B,EAAIpiB,GAAG,OAASoiB,EAAItC,OAAS,MAAQ,IAAM,SAAS56B,EAAOoiC,GACpDlF,EAGX,SAASmF,GAAYriC,GACjB,OAAa,MAATA,GACAmiC,GAASh4B,KAAMnK,GACf03B,EAAMsD,aAAa7wB,MAAM,GAClBA,MAEAkB,EAAIlB,KAAM,SAgDzB,SAASm4B,KACL,SAASC,EAAUrhC,EAAG0L,GAClB,OAAOA,EAAEtG,OAASpF,EAAEoF,OAGxB,IAGIE,EACA02B,EAJAsF,EAAc,GACdC,EAAa,GACbC,EAAc,GAGlB,IAAKl8B,EAAI,EAAGA,EAAI,GAAIA,IAEhB02B,EAAMjF,EAAU,CAAC,IAAMzxB,IACvBg8B,EAAY75B,KAAKwB,KAAK82B,YAAY/D,EAAK,KACvCuF,EAAW95B,KAAKwB,KAAK+2B,OAAOhE,EAAK,KACjCwF,EAAY/5B,KAAKwB,KAAK+2B,OAAOhE,EAAK,KAClCwF,EAAY/5B,KAAKwB,KAAK82B,YAAY/D,EAAK,KAO3C,IAHAsF,EAAYG,KAAKJ,GACjBE,EAAWE,KAAKJ,GAChBG,EAAYC,KAAKJ,GACZ/7B,EAAI,EAAGA,EAAI,GAAIA,IAChBg8B,EAAYh8B,GAAK+5B,GAAYiC,EAAYh8B,IACzCi8B,EAAWj8B,GAAK+5B,GAAYkC,EAAWj8B,IAE3C,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBk8B,EAAYl8B,GAAK+5B,GAAYmC,EAAYl8B,IAG7C2D,KAAKy4B,aAAe,IAAIxV,OAAO,KAAOsV,EAAY9xB,KAAK,KAAO,IAAK,KACnEzG,KAAK04B,kBAAoB14B,KAAKy4B,aAC9Bz4B,KAAK24B,mBAAqB,IAAI1V,OAC1B,KAAOqV,EAAW7xB,KAAK,KAAO,IAC9B,KAEJzG,KAAK44B,wBAA0B,IAAI3V,OAC/B,KAAOoV,EAAY5xB,KAAK,KAAO,IAC/B,KAiDR,SAASoyB,GAAWhT,GAChB,OAAOsO,EAAWtO,GAAQ,IAAM,IA5CpC0M,EAAe,IAAK,EAAG,GAAG,WACtB,IAAIh4B,EAAIyF,KAAK6lB,OACb,OAAOtrB,GAAK,KAAOu3B,EAASv3B,EAAG,GAAK,IAAMA,KAG9Cg4B,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAOvyB,KAAK6lB,OAAS,OAGzB0M,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,EAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAI1Ce,EAAa,OAAQ,KAIrBW,EAAgB,OAAQ,GAIxB8B,GAAc,IAAKJ,IACnBI,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,OAAQP,GAAWN,IACjCa,GAAc,QAASN,GAAWN,IAClCY,GAAc,SAAUN,GAAWN,IAEnCqB,GAAc,CAAC,QAAS,UAlYb,GAmYXA,GAAc,QAAQ,SAAUhL,EAAOT,GACnCA,EApYO,GAqYc,IAAjBS,EAAMrvB,OAAeoxB,EAAMuL,kBAAkBtN,GAAS6I,EAAM7I,MAEpEgL,GAAc,MAAM,SAAUhL,EAAOT,GACjCA,EAxYO,GAwYOwC,EAAMuL,kBAAkBtN,MAE1CgL,GAAc,KAAK,SAAUhL,EAAOT,GAChCA,EA3YO,GA2YOgO,SAASvN,EAAO,OAWlC+B,EAAMuL,kBAAoB,SAAUtN,GAChC,OAAO6I,EAAM7I,IAAU6I,EAAM7I,GAAS,GAAK,KAAO,MAKtD,IAAIwN,GAAavE,EAAW,YAAY,GAMxC,SAASwE,GAAW1+B,EAAGqL,EAAGzN,EAAG+gC,EAAGC,EAAGl+B,EAAGm+B,GAGlC,IAAIrU,EAYJ,OAVIxqB,EAAI,KAAOA,GAAK,GAEhBwqB,EAAO,IAAIL,KAAKnqB,EAAI,IAAKqL,EAAGzN,EAAG+gC,EAAGC,EAAGl+B,EAAGm+B,GACpC5E,SAASzP,EAAKE,gBACdF,EAAKsU,YAAY9+B,IAGrBwqB,EAAO,IAAIL,KAAKnqB,EAAGqL,EAAGzN,EAAG+gC,EAAGC,EAAGl+B,EAAGm+B,GAG/BrU,EAGX,SAASuU,GAAc/+B,GACnB,IAAIwqB,EAAMxe,EAcV,OAZIhM,EAAI,KAAOA,GAAK,IAChBgM,EAAOlP,MAAM6L,UAAUyF,MAAM1S,KAAKuN,YAE7B,GAAKjJ,EAAI,IACdwqB,EAAO,IAAIL,KAAKA,KAAK6U,IAAI91B,MAAM,KAAM8C,IACjCiuB,SAASzP,EAAKyU,mBACdzU,EAAKgB,eAAexrB,IAGxBwqB,EAAO,IAAIL,KAAKA,KAAK6U,IAAI91B,MAAM,KAAMD,YAGlCuhB,EAIX,SAAS0U,GAAgB5T,EAAM6T,EAAKC,GAChC,IACIC,EAAM,EAAIF,EAAMC,EAIpB,QAFa,EAAIL,GAAczT,EAAM,EAAG+T,GAAKC,YAAcH,GAAO,EAElDE,EAAM,EAI1B,SAASE,GAAmBjU,EAAMP,EAAMQ,EAAS4T,EAAKC,GAClD,IAGII,EACAC,EAFAC,EAAY,EAAI,GAAK3U,EAAO,IAFZ,EAAIQ,EAAU4T,GAAO,EACxBD,GAAgB5T,EAAM6T,EAAKC,GAgB5C,OAXIM,GAAa,EAEbD,EAAenB,GADfkB,EAAUlU,EAAO,GACoBoU,EAC9BA,EAAYpB,GAAWhT,IAC9BkU,EAAUlU,EAAO,EACjBmU,EAAeC,EAAYpB,GAAWhT,KAEtCkU,EAAUlU,EACVmU,EAAeC,GAGZ,CACHpU,KAAMkU,EACNE,UAAWD,GAInB,SAASE,GAAWnH,EAAK2G,EAAKC,GAC1B,IAEIQ,EACAJ,EAHAK,EAAaX,GAAgB1G,EAAIlN,OAAQ6T,EAAKC,GAC9CrU,EAAO/tB,KAAKU,OAAO86B,EAAIkH,YAAcG,EAAa,GAAK,GAAK,EAehE,OAXI9U,EAAO,EAEP6U,EAAU7U,EAAO+U,GADjBN,EAAUhH,EAAIlN,OAAS,EACe6T,EAAKC,GACpCrU,EAAO+U,GAAYtH,EAAIlN,OAAQ6T,EAAKC,IAC3CQ,EAAU7U,EAAO+U,GAAYtH,EAAIlN,OAAQ6T,EAAKC,GAC9CI,EAAUhH,EAAIlN,OAAS,IAEvBkU,EAAUhH,EAAIlN,OACdsU,EAAU7U,GAGP,CACHA,KAAM6U,EACNtU,KAAMkU,GAId,SAASM,GAAYxU,EAAM6T,EAAKC,GAC5B,IAAIS,EAAaX,GAAgB5T,EAAM6T,EAAKC,GACxCW,EAAiBb,GAAgB5T,EAAO,EAAG6T,EAAKC,GACpD,OAAQd,GAAWhT,GAAQuU,EAAaE,GAAkB,EAyJ9D,SAASC,GAAcC,EAAIj3B,GACvB,OAAOi3B,EAAG7xB,MAAMpF,EAAG,GAAG2C,OAAOs0B,EAAG7xB,MAAM,EAAGpF,IArJ7CgvB,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAIrCe,EAAa,OAAQ,KACrBA,EAAa,UAAW,KAIxBW,EAAgB,OAAQ,GACxBA,EAAgB,UAAW,GAI3B8B,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAE/ByB,GAAkB,CAAC,IAAK,KAAM,IAAK,OAAO,SACtCjL,EACAlG,EACA9W,EACAgkB,GAEAlN,EAAKkN,EAAM/L,OAAO,EAAG,IAAM4N,EAAM7I,MAsCrC+G,EAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,GAAG,SAAU5O,GACjC,OAAO3jB,KAAK4yB,aAAa6H,YAAYz6B,KAAM2jB,MAG/C4O,EAAe,MAAO,EAAG,GAAG,SAAU5O,GAClC,OAAO3jB,KAAK4yB,aAAa8H,cAAc16B,KAAM2jB,MAGjD4O,EAAe,OAAQ,EAAG,GAAG,SAAU5O,GACnC,OAAO3jB,KAAK4yB,aAAa+H,SAAS36B,KAAM2jB,MAG5C4O,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1Be,EAAa,MAAO,KACpBA,EAAa,UAAW,KACxBA,EAAa,aAAc,KAG3BW,EAAgB,MAAO,IACvBA,EAAgB,UAAW,IAC3BA,EAAgB,aAAc,IAI9B8B,GAAc,IAAKX,IACnBW,GAAc,IAAKX,IACnBW,GAAc,IAAKX,IACnBW,GAAc,MAAM,SAAUG,EAAUnI,GACpC,OAAOA,EAAO6M,iBAAiB1E,MAEnCH,GAAc,OAAO,SAAUG,EAAUnI,GACrC,OAAOA,EAAO8M,mBAAmB3E,MAErCH,GAAc,QAAQ,SAAUG,EAAUnI,GACtC,OAAOA,EAAO+M,cAAc5E,MAGhCO,GAAkB,CAAC,KAAM,MAAO,SAAS,SAAUjL,EAAOlG,EAAM9W,EAAQgkB,GACpE,IAAI1M,EAAUtX,EAAOmiB,QAAQoK,cAAcvP,EAAOgH,EAAOhkB,EAAOkhB,SAEjD,MAAX5J,EACAR,EAAKntB,EAAI2tB,EAEToI,EAAgB1f,GAAQihB,eAAiBjE,KAIjDiL,GAAkB,CAAC,IAAK,IAAK,MAAM,SAAUjL,EAAOlG,EAAM9W,EAAQgkB,GAC9DlN,EAAKkN,GAAS6B,EAAM7I,MAkCxB,IAAIwP,GAAwB,2DAA2D/Y,MAC/E,KAEJgZ,GAA6B,8BAA8BhZ,MAAM,KACjEiZ,GAA2B,uBAAuBjZ,MAAM,KACxDkZ,GAAuBrF,GACvBsF,GAA4BtF,GAC5BuF,GAA0BvF,GAiC9B,SAASwF,GAAoBC,EAAa5X,EAAQqK,GAC9C,IAAI3xB,EACAq7B,EACA3E,EACA4E,EAAM4D,EAAY3D,oBACtB,IAAK53B,KAAKw7B,eAKN,IAJAx7B,KAAKw7B,eAAiB,GACtBx7B,KAAKy7B,oBAAsB,GAC3Bz7B,KAAK07B,kBAAoB,GAEpBr/B,EAAI,EAAGA,EAAI,IAAKA,EACjB02B,EAAMjF,EAAU,CAAC,IAAM,IAAIzI,IAAIhpB,GAC/B2D,KAAK07B,kBAAkBr/B,GAAK2D,KAAKy6B,YAC7B1H,EACA,IACF6E,oBACF53B,KAAKy7B,oBAAoBp/B,GAAK2D,KAAK06B,cAC/B3H,EACA,IACF6E,oBACF53B,KAAKw7B,eAAen/B,GAAK2D,KAAK26B,SAAS5H,EAAK,IAAI6E,oBAIxD,OAAI5J,EACe,SAAXrK,GAEe,KADf+T,EAAK5gC,GAAQb,KAAK+J,KAAKw7B,eAAgB7D,IACpBD,EAAK,KACN,QAAX/T,GAEQ,KADf+T,EAAK5gC,GAAQb,KAAK+J,KAAKy7B,oBAAqB9D,IACzBD,EAAK,MAGT,KADfA,EAAK5gC,GAAQb,KAAK+J,KAAK07B,kBAAmB/D,IACvBD,EAAK,KAGb,SAAX/T,GAEY,KADZ+T,EAAK5gC,GAAQb,KAAK+J,KAAKw7B,eAAgB7D,MAK3B,KADZD,EAAK5gC,GAAQb,KAAK+J,KAAKy7B,oBAAqB9D,MAK7B,KADfD,EAAK5gC,GAAQb,KAAK+J,KAAK07B,kBAAmB/D,IAN/BD,EAOa,KACN,QAAX/T,GAEK,KADZ+T,EAAK5gC,GAAQb,KAAK+J,KAAKy7B,oBAAqB9D,MAKhC,KADZD,EAAK5gC,GAAQb,KAAK+J,KAAKw7B,eAAgB7D,MAKxB,KADfD,EAAK5gC,GAAQb,KAAK+J,KAAK07B,kBAAmB/D,IAN/BD,EAOa,MAGZ,KADZA,EAAK5gC,GAAQb,KAAK+J,KAAK07B,kBAAmB/D,MAK9B,KADZD,EAAK5gC,GAAQb,KAAK+J,KAAKw7B,eAAgB7D,MAKxB,KADfD,EAAK5gC,GAAQb,KAAK+J,KAAKy7B,oBAAqB9D,IANjCD,EAOa,KA4KpC,SAASiE,KACL,SAASvD,EAAUrhC,EAAG0L,GAClB,OAAOA,EAAEtG,OAASpF,EAAEoF,OAGxB,IAIIE,EACA02B,EACA6I,EACAC,EACAC,EARAC,EAAY,GACZ1D,EAAc,GACdC,EAAa,GACbC,EAAc,GAMlB,IAAKl8B,EAAI,EAAGA,EAAI,EAAGA,IAEf02B,EAAMjF,EAAU,CAAC,IAAM,IAAIzI,IAAIhpB,GAC/Bu/B,EAAOxF,GAAYp2B,KAAKy6B,YAAY1H,EAAK,KACzC8I,EAASzF,GAAYp2B,KAAK06B,cAAc3H,EAAK,KAC7C+I,EAAQ1F,GAAYp2B,KAAK26B,SAAS5H,EAAK,KACvCgJ,EAAUv9B,KAAKo9B,GACfvD,EAAY75B,KAAKq9B,GACjBvD,EAAW95B,KAAKs9B,GAChBvD,EAAY/5B,KAAKo9B,GACjBrD,EAAY/5B,KAAKq9B,GACjBtD,EAAY/5B,KAAKs9B,GAIrBC,EAAUvD,KAAKJ,GACfC,EAAYG,KAAKJ,GACjBE,EAAWE,KAAKJ,GAChBG,EAAYC,KAAKJ,GAEjBp4B,KAAKg8B,eAAiB,IAAI/Y,OAAO,KAAOsV,EAAY9xB,KAAK,KAAO,IAAK,KACrEzG,KAAKi8B,oBAAsBj8B,KAAKg8B,eAChCh8B,KAAKk8B,kBAAoBl8B,KAAKg8B,eAE9Bh8B,KAAKm8B,qBAAuB,IAAIlZ,OAC5B,KAAOqV,EAAW7xB,KAAK,KAAO,IAC9B,KAEJzG,KAAKo8B,0BAA4B,IAAInZ,OACjC,KAAOoV,EAAY5xB,KAAK,KAAO,IAC/B,KAEJzG,KAAKq8B,wBAA0B,IAAIpZ,OAC/B,KAAO8Y,EAAUt1B,KAAK,KAAO,IAC7B,KAMR,SAAS61B,KACL,OAAOt8B,KAAKimB,QAAU,IAAM,GAqChC,SAASgJ,GAASuD,EAAO+J,GACrBhK,EAAeC,EAAO,EAAG,GAAG,WACxB,OAAOxyB,KAAK4yB,aAAa3D,SACrBjvB,KAAKimB,QACLjmB,KAAKw8B,UACLD,MAiBZ,SAASE,GAAcvG,EAAUnI,GAC7B,OAAOA,EAAO2O,eArDlBnK,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG+J,IAClC/J,EAAe,IAAK,CAAC,KAAM,GAAI,GAN/B,WACI,OAAOvyB,KAAKimB,SAAW,MAO3BsM,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAK+J,GAAQ74B,MAAMzD,MAAQ8xB,EAAS9xB,KAAKw8B,UAAW,MAG/DjK,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACA+J,GAAQ74B,MAAMzD,MACd8xB,EAAS9xB,KAAKw8B,UAAW,GACzB1K,EAAS9xB,KAAK28B,UAAW,MAIjCpK,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAKvyB,KAAKimB,QAAU6L,EAAS9xB,KAAKw8B,UAAW,MAGxDjK,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACAvyB,KAAKimB,QACL6L,EAAS9xB,KAAKw8B,UAAW,GACzB1K,EAAS9xB,KAAK28B,UAAW,MAcjC1N,GAAS,KAAK,GACdA,GAAS,KAAK,GAIdqE,EAAa,OAAQ,KAGrBW,EAAgB,OAAQ,IAQxB8B,GAAc,IAAK0G,IACnB1G,GAAc,IAAK0G,IACnB1G,GAAc,IAAKX,IACnBW,GAAc,IAAKX,IACnBW,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,KAAMX,GAAWJ,GAE/Be,GAAc,MAAOV,IACrBU,GAAc,QAAST,IACvBS,GAAc,MAAOV,IACrBU,GAAc,QAAST,IAEvBkB,GAAc,CAAC,IAAK,MAzjCT,GA0jCXA,GAAc,CAAC,IAAK,OAAO,SAAUhL,EAAOT,EAAOvc,GAC/C,IAAIouB,EAASvI,EAAM7I,GACnBT,EA5jCO,GA4jCkB,KAAX6R,EAAgB,EAAIA,KAEtCpG,GAAc,CAAC,IAAK,MAAM,SAAUhL,EAAOT,EAAOvc,GAC9CA,EAAOquB,MAAQruB,EAAOmiB,QAAQmM,KAAKtR,GACnChd,EAAOuuB,UAAYvR,KAEvBgL,GAAc,CAAC,IAAK,OAAO,SAAUhL,EAAOT,EAAOvc,GAC/Cuc,EAnkCO,GAmkCOsJ,EAAM7I,GACpB0C,EAAgB1f,GAAQmhB,SAAU,KAEtC6G,GAAc,OAAO,SAAUhL,EAAOT,EAAOvc,GACzC,IAAIwuB,EAAMxR,EAAMrvB,OAAS,EACzB4uB,EAxkCO,GAwkCOsJ,EAAM7I,EAAM/E,OAAO,EAAGuW,IACpCjS,EAxkCS,GAwkCOsJ,EAAM7I,EAAM/E,OAAOuW,IACnC9O,EAAgB1f,GAAQmhB,SAAU,KAEtC6G,GAAc,SAAS,SAAUhL,EAAOT,EAAOvc,GAC3C,IAAIyuB,EAAOzR,EAAMrvB,OAAS,EACtB+gC,EAAO1R,EAAMrvB,OAAS,EAC1B4uB,EA/kCO,GA+kCOsJ,EAAM7I,EAAM/E,OAAO,EAAGwW,IACpClS,EA/kCS,GA+kCOsJ,EAAM7I,EAAM/E,OAAOwW,EAAM,IACzClS,EA/kCS,GA+kCOsJ,EAAM7I,EAAM/E,OAAOyW,IACnChP,EAAgB1f,GAAQmhB,SAAU,KAEtC6G,GAAc,OAAO,SAAUhL,EAAOT,EAAOvc,GACzC,IAAIwuB,EAAMxR,EAAMrvB,OAAS,EACzB4uB,EAtlCO,GAslCOsJ,EAAM7I,EAAM/E,OAAO,EAAGuW,IACpCjS,EAtlCS,GAslCOsJ,EAAM7I,EAAM/E,OAAOuW,OAEvCxG,GAAc,SAAS,SAAUhL,EAAOT,EAAOvc,GAC3C,IAAIyuB,EAAOzR,EAAMrvB,OAAS,EACtB+gC,EAAO1R,EAAMrvB,OAAS,EAC1B4uB,EA5lCO,GA4lCOsJ,EAAM7I,EAAM/E,OAAO,EAAGwW,IACpClS,EA5lCS,GA4lCOsJ,EAAM7I,EAAM/E,OAAOwW,EAAM,IACzClS,EA5lCS,GA4lCOsJ,EAAM7I,EAAM/E,OAAOyW,OAWvC,IAsCIC,GAjCAC,GAAa3I,EAAW,SAAS,GAUjC4I,GAAa,CACbC,SA7iDkB,CAClBC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAwiDVzK,eAl7CwB,CACxB0K,IAAK,YACLC,GAAI,SACJ7pB,EAAG,aACH8pB,GAAI,eACJC,IAAK,sBACLC,KAAM,6BA66CNhL,YAh5CqB,eAi5CrBP,QA34CiB,KA44CjBwL,uBA34CgC,UA44ChCC,aAt4CsB,CACtBC,OAAQ,QACRC,KAAM,SACNpjC,EAAG,gBACHqjC,GAAI,aACJ14B,EAAG,WACH24B,GAAI,aACJrF,EAAG,UACHsF,GAAI,WACJrmC,EAAG,QACHsmC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJxF,EAAG,UACHyF,GAAI,YACJrkC,EAAG,SACHskC,GAAI,YAw3CJ9H,OAAQI,GACRL,YAAaM,GAEb9R,KAzlBoB,CACpBoU,IAAK,EACLC,IAAK,GAylBLgB,SAAUK,GACVP,YAAaS,GACbR,cAAeO,GAEf6D,cAhC6B,iBAoC7BC,GAAU,GACVC,GAAiB,GAGrB,SAASC,GAAaC,EAAMC,GACxB,IAAI9iC,EACA+iC,EAAO7nC,KAAKK,IAAIsnC,EAAK/iC,OAAQgjC,EAAKhjC,QACtC,IAAKE,EAAI,EAAGA,EAAI+iC,EAAM/iC,GAAK,EACvB,GAAI6iC,EAAK7iC,KAAO8iC,EAAK9iC,GACjB,OAAOA,EAGf,OAAO+iC,EAGX,SAASC,GAAgBv+B,GACrB,OAAOA,EAAMA,EAAI+iB,cAAcntB,QAAQ,IAAK,KAAOoK,EAsCvD,SAASw+B,GAAW/8B,GAChB,IAAIg9B,EAAY,KAGhB,QACsB7yB,IAAlBqyB,GAAQx8B,IACU,qBAAX9M,GACPA,GACAA,EAAOC,QAEP,IACI6pC,EAAYpC,GAAaqC,MAEzBC,kGACAC,GAAmBH,GACrB,MAAOl7B,GAGL06B,GAAQx8B,GAAQ,KAGxB,OAAOw8B,GAAQx8B,GAMnB,SAASm9B,GAAmB5+B,EAAK/H,GAC7B,IAAIsI,EAqBJ,OApBIP,KAEIO,EADAssB,EAAY50B,GACL4mC,GAAU7+B,GAEV8+B,GAAa9+B,EAAK/H,IAKzBokC,GAAe97B,EAEQ,qBAAZ4vB,SAA2BA,QAAQF,MAE1CE,QAAQF,KACJ,UAAYjwB,EAAM,2CAM3Bq8B,GAAaqC,MAGxB,SAASI,GAAar9B,EAAMiM,GACxB,GAAe,OAAXA,EAAiB,CACjB,IAAIuf,EACA4D,EAAe0L,GAEnB,GADA7uB,EAAOqxB,KAAOt9B,EACO,MAAjBw8B,GAAQx8B,GACRgvB,EACI,uBACA,2OAKJI,EAAeoN,GAAQx8B,GAAMu9B,aAC1B,GAA2B,MAAvBtxB,EAAOuxB,aACd,GAAoC,MAAhChB,GAAQvwB,EAAOuxB,cACfpO,EAAeoN,GAAQvwB,EAAOuxB,cAAcD,YACzC,CAEH,GAAc,OADd/R,EAASuR,GAAW9wB,EAAOuxB,eAWvB,OAPKf,GAAexwB,EAAOuxB,gBACvBf,GAAexwB,EAAOuxB,cAAgB,IAE1Cf,GAAexwB,EAAOuxB,cAAcvhC,KAAK,CACrC+D,KAAMA,EACNiM,OAAQA,IAEL,KATPmjB,EAAe5D,EAAO+R,QA0BlC,OAbAf,GAAQx8B,GAAQ,IAAIsvB,EAAOH,EAAaC,EAAcnjB,IAElDwwB,GAAez8B,IACfy8B,GAAez8B,GAAMkF,SAAQ,SAAUnN,GACnCslC,GAAatlC,EAAEiI,KAAMjI,EAAEkU,WAO/BkxB,GAAmBn9B,GAEZw8B,GAAQx8B,GAIf,cADOw8B,GAAQx8B,GACR,KAkDf,SAASo9B,GAAU7+B,GACf,IAAIitB,EAMJ,GAJIjtB,GAAOA,EAAI6vB,SAAW7vB,EAAI6vB,QAAQ6O,QAClC1+B,EAAMA,EAAI6vB,QAAQ6O,QAGjB1+B,EACD,OAAOq8B,GAGX,IAAK/lC,EAAQ0J,GAAM,CAGf,GADAitB,EAASuR,GAAWx+B,GAEhB,OAAOitB,EAEXjtB,EAAM,CAACA,GAGX,OA5MJ,SAAsBk/B,GAOlB,IANA,IACIC,EACA77B,EACA2pB,EACA9L,EAJA5lB,EAAI,EAMDA,EAAI2jC,EAAM7jC,QAAQ,CAKrB,IAHA8jC,GADAhe,EAAQod,GAAgBW,EAAM3jC,IAAI4lB,MAAM,MAC9B9lB,OAEViI,GADAA,EAAOi7B,GAAgBW,EAAM3jC,EAAI,KACnB+H,EAAK6d,MAAM,KAAO,KACzBge,EAAI,GAAG,CAEV,GADAlS,EAASuR,GAAWrd,EAAMtZ,MAAM,EAAGs3B,GAAGx5B,KAAK,MAEvC,OAAOsnB,EAEX,GACI3pB,GACAA,EAAKjI,QAAU8jC,GACfhB,GAAahd,EAAO7d,IAAS67B,EAAI,EAGjC,MAEJA,IAEJ5jC,IAEJ,OAAO8gC,GA+KA+C,CAAap/B,GAOxB,SAASq/B,GAAcv6B,GACnB,IAAI2oB,EACAx3B,EAAI6O,EAAEgxB,GAuCV,OArCI7/B,IAAsC,IAAjCm3B,EAAgBtoB,GAAG2oB,WACxBA,EACIx3B,EA93CA,GA83CW,GAAKA,EA93ChB,GA83C2B,GA93C3B,EAg4CMA,EA/3CP,GA+3CiB,GAAKA,EA/3CtB,GA+3CgC89B,GAAY99B,EAj4C5C,GAi4CqDA,EAh4CpD,IACD,EAi4COA,EAh4CP,GAg4CiB,GACVA,EAj4CP,GAi4CiB,IACG,KAAZA,EAl4CR,KAm4C0B,IAAdA,EAl4CV,IAm4C2B,IAAdA,EAl4Cb,IAm4CgC,IAAnBA,EAl4CR,IAHP,EAu4COA,EAt4CL,GAs4CiB,GAAKA,EAt4CtB,GAs4CkC,GAt4ClC,EAw4CKA,EAv4CL,GAu4CiB,GAAKA,EAv4CtB,GAu4CkC,GAv4ClC,EAy4CKA,EAx4CA,GAw4CiB,GAAKA,EAx4CtB,GAw4CuC,IAx4CvC,GA04CC,EAGPm3B,EAAgBtoB,GAAGw6B,qBAClB7R,EAp5CF,GAo5CqBA,EAl5CrB,KAo5CCA,EAp5CD,GAs5CCL,EAAgBtoB,GAAGy6B,iBAAgC,IAAd9R,IACrCA,EAl5CD,GAo5CCL,EAAgBtoB,GAAG06B,mBAAkC,IAAd/R,IACvCA,EAp5CE,GAu5CNL,EAAgBtoB,GAAG2oB,SAAWA,GAG3B3oB,EAKX,IAAI26B,GAAmB,iJACnBC,GAAgB,6IAChBC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,uBACjB,CAAC,aAAc,mBACf,CAAC,eAAgB,kBACjB,CAAC,aAAc,eAAe,GAC9B,CAAC,WAAY,eACb,CAAC,UAAW,cAAc,GAC1B,CAAC,aAAc,cACf,CAAC,WAAY,SACb,CAAC,aAAc,eACf,CAAC,YAAa,eAAe,GAC7B,CAAC,UAAW,SACZ,CAAC,SAAU,SAAS,GACpB,CAAC,OAAQ,SAAS,IAGtBC,GAAW,CACP,CAAC,gBAAiB,uBAClB,CAAC,gBAAiB,sBAClB,CAAC,WAAY,kBACb,CAAC,QAAS,aACV,CAAC,cAAe,qBAChB,CAAC,cAAe,oBAChB,CAAC,SAAU,gBACX,CAAC,OAAQ,YACT,CAAC,KAAM,SAEXC,GAAkB,qBAElB1R,GAAU,0LACV2R,GAAa,CACTC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAIb,SAASC,GAAchzB,GACnB,IAAInS,EACAyV,EAGA2vB,EACAC,EACAC,EACAC,EALAC,EAASrzB,EAAOsC,GAChB6N,EAAQ4hB,GAAiBtf,KAAK4gB,IAAWrB,GAAcvf,KAAK4gB,GAMhE,GAAIljB,EAAO,CAGP,IAFAuP,EAAgB1f,GAAQsgB,KAAM,EAEzBzyB,EAAI,EAAGyV,EAAI4uB,GAASvkC,OAAQE,EAAIyV,EAAGzV,IACpC,GAAIqkC,GAASrkC,GAAG,GAAG4kB,KAAKtC,EAAM,IAAK,CAC/B+iB,EAAahB,GAASrkC,GAAG,GACzBolC,GAA+B,IAAnBf,GAASrkC,GAAG,GACxB,MAGR,GAAkB,MAAdqlC,EAEA,YADAlzB,EAAO6gB,UAAW,GAGtB,GAAI1Q,EAAM,GAAI,CACV,IAAKtiB,EAAI,EAAGyV,EAAI6uB,GAASxkC,OAAQE,EAAIyV,EAAGzV,IACpC,GAAIskC,GAAStkC,GAAG,GAAG4kB,KAAKtC,EAAM,IAAK,CAE/BgjB,GAAchjB,EAAM,IAAM,KAAOgiB,GAAStkC,GAAG,GAC7C,MAGR,GAAkB,MAAdslC,EAEA,YADAnzB,EAAO6gB,UAAW,GAI1B,IAAKoS,GAA2B,MAAdE,EAEd,YADAnzB,EAAO6gB,UAAW,GAGtB,GAAI1Q,EAAM,GAAI,CACV,IAAI8hB,GAAQxf,KAAKtC,EAAM,IAInB,YADAnQ,EAAO6gB,UAAW,GAFlBuS,EAAW,IAMnBpzB,EAAO8hB,GAAKoR,GAAcC,GAAc,KAAOC,GAAY,IAC3DE,GAA0BtzB,QAE1BA,EAAO6gB,UAAW,EA2B1B,SAAS0S,GAAeC,GACpB,IAAInc,EAAOkT,SAASiJ,EAAS,IAC7B,OAAInc,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,EA6CX,SAASoc,GAAkBzzB,GACvB,IACI0zB,EADAvjB,EAAQuQ,GAAQjO,KAAuBzS,EAAOsC,GAxC7Cpa,QAAQ,oBAAqB,KAC7BA,QAAQ,WAAY,KACpBA,QAAQ,SAAU,IAClBA,QAAQ,SAAU,KAuCvB,GAAIioB,EAAO,CASP,GARAujB,EA/ER,SACIF,EACAG,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIh+B,EAAS,CACTw9B,GAAeC,GACf5K,GAAyBtgC,QAAQqrC,GACjCpJ,SAASqJ,EAAQ,IACjBrJ,SAASsJ,EAAS,IAClBtJ,SAASuJ,EAAW,KAOxB,OAJIC,GACAh+B,EAAO/F,KAAKu6B,SAASwJ,EAAW,KAG7Bh+B,EA2DWi+B,CACV7jB,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,KA3ClB,SAAsB8jB,EAAYC,EAAal0B,GAC3C,OAAIi0B,GAEsBxH,GAA2BnkC,QAAQ2rC,KACrC,IAAI/d,KAChBge,EAAY,GACZA,EAAY,GACZA,EAAY,IACdnd,WAEF2I,EAAgB1f,GAAQ2gB,iBAAkB,EAC1C3gB,EAAO6gB,UAAW,GACX,GAiCNsT,CAAahkB,EAAM,GAAIujB,EAAa1zB,GACrC,OAGJA,EAAOooB,GAAKsL,EACZ1zB,EAAOgiB,KAhCf,SAAyBoS,EAAWC,EAAgBC,GAChD,GAAIF,EACA,OAAO/B,GAAW+B,GACf,GAAIC,EAEP,OAAO,EAEP,IAAIE,EAAKhK,SAAS+J,EAAW,IACzBl9B,EAAIm9B,EAAK,IAEb,OADSA,EAAKn9B,GAAK,IACR,GAAKA,EAsBFo9B,CAAgBrkB,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAExDnQ,EAAOmC,GAAK2oB,GAAc71B,MAAM,KAAM+K,EAAOooB,IAC7CpoB,EAAOmC,GAAGsyB,cAAcz0B,EAAOmC,GAAGuyB,gBAAkB10B,EAAOgiB,MAE3DtC,EAAgB1f,GAAQ0gB,SAAU,OAElC1gB,EAAO6gB,UAAW,EA6C1B,SAAS8T,GAASpsC,EAAG0L,EAAGmP,GACpB,OAAS,MAAL7a,EACOA,EAEF,MAAL0L,EACOA,EAEJmP,EAoBX,SAASwxB,GAAgB50B,GACrB,IAAInS,EACA0oB,EAEAse,EACAC,EACAC,EAHA/X,EAAQ,GAKZ,IAAIhd,EAAOmC,GAAX,CAgCA,IA5BA0yB,EA7BJ,SAA0B70B,GAEtB,IAAIg1B,EAAW,IAAI9e,KAAK6I,EAAMkW,OAC9B,OAAIj1B,EAAOk1B,QACA,CACHF,EAAShK,iBACTgK,EAASG,cACTH,EAASI,cAGV,CAACJ,EAASve,cAAeue,EAAS9d,WAAY8d,EAASK,WAmBhDC,CAAiBt1B,GAG3BA,EAAOkoB,IAAyB,MAAnBloB,EAAOooB,GAtsDjB,IAssDyD,MAApBpoB,EAAOooB,GAvsD3C,IAixDZ,SAA+BpoB,GAC3B,IAAIkwB,EAAGqF,EAAUze,EAAMQ,EAAS4T,EAAKC,EAAKnhC,EAAMwrC,EAAiBC,EAGrD,OADZvF,EAAIlwB,EAAOkoB,IACLwN,IAAqB,MAAPxF,EAAEyF,GAAoB,MAAPzF,EAAE0F,GACjC1K,EAAM,EACNC,EAAM,EAMNoK,EAAWZ,GACPzE,EAAEwF,GACF11B,EAAOooB,GAhyDR,GAiyDCsD,GAAWmK,KAAe,EAAG,GAAGxe,MAEpCP,EAAO6d,GAASzE,EAAEyF,EAAG,KACrBre,EAAUqd,GAASzE,EAAE0F,EAAG,IACV,GAAKte,EAAU,KACzBke,GAAkB,KAGtBtK,EAAMlrB,EAAOmiB,QAAQ2T,MAAM5K,IAC3BC,EAAMnrB,EAAOmiB,QAAQ2T,MAAM3K,IAE3BsK,EAAU/J,GAAWmK,KAAe3K,EAAKC,GAEzCoK,EAAWZ,GAASzE,EAAE6F,GAAI/1B,EAAOooB,GA9yD9B,GA8yDwCqN,EAAQpe,MAGnDP,EAAO6d,GAASzE,EAAEA,EAAGuF,EAAQ3e,MAElB,MAAPoZ,EAAEvmC,IAEF2tB,EAAU4Y,EAAEvmC,GACE,GAAK2tB,EAAU,KACzBke,GAAkB,GAER,MAAPtF,EAAEr6B,GAETyhB,EAAU4Y,EAAEr6B,EAAIq1B,GACZgF,EAAEr6B,EAAI,GAAKq6B,EAAEr6B,EAAI,KACjB2/B,GAAkB,IAItBle,EAAU4T,GAGdpU,EAAO,GAAKA,EAAO+U,GAAY0J,EAAUrK,EAAKC,GAC9CzL,EAAgB1f,GAAQ6xB,gBAAiB,EACf,MAAnB2D,EACP9V,EAAgB1f,GAAQ8xB,kBAAmB,GAE3C9nC,EAAOshC,GAAmBiK,EAAUze,EAAMQ,EAAS4T,EAAKC,GACxDnrB,EAAOooB,GA10DJ,GA00Dep+B,EAAKqtB,KACvBrX,EAAOg2B,WAAahsC,EAAKyhC,WAlIzBwK,CAAsBj2B,GAID,MAArBA,EAAOg2B,aACPjB,EAAYJ,GAAS30B,EAAOooB,GA9sDzB,GA8sDmCyM,EA9sDnC,KAitDC70B,EAAOg2B,WAAa3L,GAAW0K,IACT,IAAtB/0B,EAAOg2B,cAEPtW,EAAgB1f,GAAQ4xB,oBAAqB,GAGjDrb,EAAOuU,GAAciK,EAAW,EAAG/0B,EAAOg2B,YAC1Ch2B,EAAOooB,GAvtDH,GAutDe7R,EAAK4e,cACxBn1B,EAAOooB,GAvtDJ,GAutDe7R,EAAK6e,cAQtBvnC,EAAI,EAAGA,EAAI,GAAqB,MAAhBmS,EAAOooB,GAAGv6B,KAAcA,EACzCmS,EAAOooB,GAAGv6B,GAAKmvB,EAAMnvB,GAAKgnC,EAAYhnC,GAI1C,KAAOA,EAAI,EAAGA,IACVmS,EAAOooB,GAAGv6B,GAAKmvB,EAAMnvB,GACD,MAAhBmS,EAAOooB,GAAGv6B,GAAoB,IAANA,EAAU,EAAI,EAAKmS,EAAOooB,GAAGv6B,GAKrC,KAApBmS,EAAOooB,GA1uDJ,IA2uDmB,IAAtBpoB,EAAOooB,GA1uDF,IA2uDiB,IAAtBpoB,EAAOooB,GA1uDF,IA2uDsB,IAA3BpoB,EAAOooB,GA1uDG,KA4uDVpoB,EAAOk2B,UAAW,EAClBl2B,EAAOooB,GAhvDJ,GAgvDe,GAGtBpoB,EAAOmC,IAAMnC,EAAOk1B,QAAUpK,GAAgBL,IAAYx1B,MACtD,KACA+nB,GAEJ8X,EAAkB90B,EAAOk1B,QACnBl1B,EAAOmC,GAAGkpB,YACVrrB,EAAOmC,GAAG4U,SAIG,MAAf/W,EAAOgiB,MACPhiB,EAAOmC,GAAGsyB,cAAcz0B,EAAOmC,GAAGuyB,gBAAkB10B,EAAOgiB,MAG3DhiB,EAAOk2B,WACPl2B,EAAOooB,GAlwDJ,GAkwDe,IAKlBpoB,EAAOkoB,IACgB,qBAAhBloB,EAAOkoB,GAAGv+B,GACjBqW,EAAOkoB,GAAGv+B,IAAMmrC,IAEhBpV,EAAgB1f,GAAQ2gB,iBAAkB,IAwElD,SAAS2S,GAA0BtzB,GAE/B,GAAIA,EAAO8hB,KAAO/C,EAAMoX,SAIxB,GAAIn2B,EAAO8hB,KAAO/C,EAAMqX,SAAxB,CAIAp2B,EAAOooB,GAAK,GACZ1I,EAAgB1f,GAAQ4f,OAAQ,EAGhC,IACI/xB,EACAqmC,EACAnM,EACA/D,EACAqS,EAGA7V,EARA6S,EAAS,GAAKrzB,EAAOsC,GAMrBg0B,EAAejD,EAAO1lC,OACtB4oC,EAAyB,EAM7B,IAHAxO,EACIzD,EAAatkB,EAAO8hB,GAAI9hB,EAAOmiB,SAAShS,MAAMwT,IAAqB,GAElE91B,EAAI,EAAGA,EAAIk6B,EAAOp6B,OAAQE,IAC3Bm2B,EAAQ+D,EAAOl6B,IACfqmC,GAAeb,EAAOljB,MAAMwX,GAAsB3D,EAAOhkB,KACrD,IAAI,OAEJq2B,EAAUhD,EAAOpb,OAAO,EAAGob,EAAO/qC,QAAQ4rC,KAC9BvmC,OAAS,GACjB+xB,EAAgB1f,GAAQ8f,YAAY9vB,KAAKqmC,GAE7ChD,EAASA,EAAOl5B,MACZk5B,EAAO/qC,QAAQ4rC,GAAeA,EAAYvmC,QAE9C4oC,GAA0BrC,EAAYvmC,QAGtCm2B,EAAqBE,IACjBkQ,EACAxU,EAAgB1f,GAAQ4f,OAAQ,EAEhCF,EAAgB1f,GAAQ6f,aAAa7vB,KAAKg0B,GAE9CmE,GAAwBnE,EAAOkQ,EAAal0B,IACrCA,EAAOkhB,UAAYgT,GAC1BxU,EAAgB1f,GAAQ6f,aAAa7vB,KAAKg0B,GAKlDtE,EAAgB1f,GAAQggB,cACpBsW,EAAeC,EACflD,EAAO1lC,OAAS,GAChB+xB,EAAgB1f,GAAQ8f,YAAY9vB,KAAKqjC,GAKzCrzB,EAAOooB,GAl5DJ,IAk5DgB,KACiB,IAApC1I,EAAgB1f,GAAQmhB,SACxBnhB,EAAOooB,GAp5DJ,GAo5De,IAElB1I,EAAgB1f,GAAQmhB,aAAUjjB,GAGtCwhB,EAAgB1f,GAAQugB,gBAAkBvgB,EAAOooB,GAAGjuB,MAAM,GAC1DulB,EAAgB1f,GAAQygB,SAAWzgB,EAAOuuB,UAE1CvuB,EAAOooB,GA55DA,GA46DX,SAAyB7I,EAAQiX,EAAM/V,GACnC,IAAIgW,EAEJ,OAAgB,MAAZhW,EAEO+V,EAEgB,MAAvBjX,EAAOmX,aACAnX,EAAOmX,aAAaF,EAAM/V,GACX,MAAflB,EAAO+O,OAEdmI,EAAOlX,EAAO+O,KAAK7N,KACP+V,EAAO,KACfA,GAAQ,IAEPC,GAAiB,KAATD,IACTA,EAAO,GAEJA,GAGAA,EArCOG,CACd32B,EAAOmiB,QACPniB,EAAOooB,GA95DJ,GA+5DHpoB,EAAOuuB,WAKC,QADZ/N,EAAMd,EAAgB1f,GAAQwgB,OAE1BxgB,EAAOooB,GAx6DJ,GAw6DepoB,EAAOmiB,QAAQyU,gBAAgBpW,EAAKxgB,EAAOooB,GAx6D1D,KA26DPwM,GAAgB50B,GAChB2xB,GAAc3xB,QA/EVyzB,GAAkBzzB,QAJlBgzB,GAAchzB,GAwMtB,SAAS62B,GAAc72B,GACnB,IAAIgd,EAAQhd,EAAOsC,GACf6S,EAASnV,EAAO8hB,GAIpB,OAFA9hB,EAAOmiB,QAAUniB,EAAOmiB,SAAWgP,GAAUnxB,EAAO+hB,IAEtC,OAAV/E,QAA8B9e,IAAXiX,GAAkC,KAAV6H,EACpCoE,EAAc,CAAEnB,WAAW,KAGjB,kBAAVjD,IACPhd,EAAOsC,GAAK0a,EAAQhd,EAAOmiB,QAAQ2U,SAAS9Z,IAG5CsF,EAAStF,GACF,IAAIoF,EAAOuP,GAAc3U,KACzBr0B,EAAOq0B,GACdhd,EAAOmC,GAAK6a,EACLp0B,EAAQusB,GA1GvB,SAAkCnV,GAC9B,IAAI+2B,EACAC,EACAC,EACAppC,EACAqpC,EACAC,EACAC,GAAoB,EAExB,GAAyB,IAArBp3B,EAAO8hB,GAAGn0B,OAGV,OAFA+xB,EAAgB1f,GAAQogB,eAAgB,OACxCpgB,EAAOmC,GAAK,IAAI+T,KAAKmL,MAIzB,IAAKxzB,EAAI,EAAGA,EAAImS,EAAO8hB,GAAGn0B,OAAQE,IAC9BqpC,EAAe,EACfC,GAAmB,EACnBJ,EAAatV,EAAW,GAAIzhB,GACN,MAAlBA,EAAOk1B,UACP6B,EAAW7B,QAAUl1B,EAAOk1B,SAEhC6B,EAAWjV,GAAK9hB,EAAO8hB,GAAGj0B,GAC1BylC,GAA0ByD,GAEtBnW,EAAQmW,KACRI,GAAmB,GAIvBD,GAAgBxX,EAAgBqX,GAAY/W,cAG5CkX,GAAkE,GAAlDxX,EAAgBqX,GAAYlX,aAAalyB,OAEzD+xB,EAAgBqX,GAAYM,MAAQH,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbE,MAAfE,GACAC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,GAAoB,IAWpChY,EAAOpf,EAAQg3B,GAAcD,GAkDzBO,CAAyBt3B,GAClBmV,EACPme,GAA0BtzB,GAYlC,SAAyBA,GACrB,IAAIgd,EAAQhd,EAAOsC,GACf6c,EAAYnC,GACZhd,EAAOmC,GAAK,IAAI+T,KAAK6I,EAAMkW,OACpBtsC,EAAOq0B,GACdhd,EAAOmC,GAAK,IAAI+T,KAAK8G,EAAMqC,WACH,kBAAVrC,EAldtB,SAA0Bhd,GACtB,IAAI6nB,EAAUuK,GAAgB3f,KAAKzS,EAAOsC,IAC1B,OAAZulB,GAKJmL,GAAchzB,IACU,IAApBA,EAAO6gB,kBACA7gB,EAAO6gB,SAKlB4S,GAAkBzzB,IACM,IAApBA,EAAO6gB,kBACA7gB,EAAO6gB,SAKd7gB,EAAOkhB,QACPlhB,EAAO6gB,UAAW,EAGlB9B,EAAMwY,wBAAwBv3B,MAtB9BA,EAAOmC,GAAK,IAAI+T,MAAM2R,EAAQ,IAgd9B2P,CAAiBx3B,GACVpX,EAAQo0B,IACfhd,EAAOooB,GAAK1L,EAAIM,EAAM7iB,MAAM,IAAI,SAAUxB,GACtC,OAAO4xB,SAAS5xB,EAAK,OAEzBi8B,GAAgB50B,IACT5X,EAAS40B,GA1ExB,SAA0Bhd,GACtB,IAAIA,EAAOmC,GAAX,CAIA,IAAItU,EAAIu3B,EAAqBplB,EAAOsC,IAChCm1B,OAAsBv5B,IAAVrQ,EAAEgpB,IAAoBhpB,EAAE0oB,KAAO1oB,EAAEgpB,IACjD7W,EAAOooB,GAAK1L,EACR,CAAC7uB,EAAEwpB,KAAMxpB,EAAEu4B,MAAOqR,EAAW5pC,EAAE2oC,KAAM3oC,EAAE6pC,OAAQ7pC,EAAE8pC,OAAQ9pC,EAAE+pC,cAC3D,SAAUj/B,GACN,OAAOA,GAAO4xB,SAAS5xB,EAAK,OAIpCi8B,GAAgB50B,IA6DZ63B,CAAiB73B,GACVjY,EAASi1B,GAEhBhd,EAAOmC,GAAK,IAAI+T,KAAK8G,GAErB+B,EAAMwY,wBAAwBv3B,GA7B9B83B,CAAgB93B,GAGf4gB,EAAQ5gB,KACTA,EAAOmC,GAAK,MAGTnC,IA0BX,SAASyf,GAAiBzC,EAAO7H,EAAQoK,EAAQC,EAAQuY,GACrD,IAAI30B,EAAI,GA2BR,OAzBe,IAAX+R,IAA8B,IAAXA,IACnBqK,EAASrK,EACTA,OAASjX,IAGE,IAAXqhB,IAA8B,IAAXA,IACnBC,EAASD,EACTA,OAASrhB,IAIR9V,EAAS40B,IAAUiC,EAAcjC,IACjCp0B,EAAQo0B,IAA2B,IAAjBA,EAAMrvB,UAEzBqvB,OAAQ9e,GAIZkF,EAAEye,kBAAmB,EACrBze,EAAE8xB,QAAU9xB,EAAE6e,OAAS8V,EACvB30B,EAAE2e,GAAKxC,EACPnc,EAAEd,GAAK0a,EACP5Z,EAAE0e,GAAK3M,EACP/R,EAAE8d,QAAU1B,EA7FhB,SAA0Bxf,GACtB,IAAIhC,EAAM,IAAIokB,EAAOuP,GAAckF,GAAc72B,KAOjD,OANIhC,EAAIk4B,WAEJl4B,EAAIlD,IAAI,EAAG,KACXkD,EAAIk4B,cAAWh4B,GAGZF,EAuFAg6B,CAAiB50B,GAG5B,SAASyyB,GAAY7Y,EAAO7H,EAAQoK,EAAQC,GACxC,OAAOC,GAAiBzC,EAAO7H,EAAQoK,EAAQC,GAAQ,GAte3DT,EAAMwY,wBAA0B7U,EAC5B,kVAIA,SAAU1iB,GACNA,EAAOmC,GAAK,IAAI+T,KAAKlW,EAAOsC,IAAMtC,EAAOk1B,QAAU,OAAS,QAuLpEnW,EAAMoX,SAAW,aAGjBpX,EAAMqX,SAAW,aAySjB,IAAI6B,GAAevV,EACX,sGACA,WACI,IAAIwV,EAAQrC,GAAY5gC,MAAM,KAAMD,WACpC,OAAIxD,KAAKovB,WAAasX,EAAMtX,UACjBsX,EAAQ1mC,KAAOA,KAAO0mC,EAEtB9W,OAInB+W,GAAezV,EACX,sGACA,WACI,IAAIwV,EAAQrC,GAAY5gC,MAAM,KAAMD,WACpC,OAAIxD,KAAKovB,WAAasX,EAAMtX,UACjBsX,EAAQ1mC,KAAOA,KAAO0mC,EAEtB9W,OAUvB,SAASgX,GAAOr4B,EAAIs4B,GAChB,IAAIr6B,EAAKnQ,EAIT,GAHuB,IAAnBwqC,EAAQ1qC,QAAgB/E,EAAQyvC,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQ1qC,OACT,OAAOkoC,KAGX,IADA73B,EAAMq6B,EAAQ,GACTxqC,EAAI,EAAGA,EAAIwqC,EAAQ1qC,SAAUE,EACzBwqC,EAAQxqC,GAAG+yB,YAAayX,EAAQxqC,GAAGkS,GAAI/B,KACxCA,EAAMq6B,EAAQxqC,IAGtB,OAAOmQ,EAgBX,IAII4f,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,eAyCJ,SAAS0a,GAASC,GACd,IAAIhT,EAAkBH,EAAqBmT,GACvCC,EAAQjT,EAAgBlO,MAAQ,EAChCohB,EAAWlT,EAAgBmT,SAAW,EACtCnQ,EAAShD,EAAgBa,OAAS,EAClCuS,EAAQpT,EAAgBzO,MAAQyO,EAAgBqT,SAAW,EAC3DC,EAAOtT,EAAgB1O,KAAO,EAC9BY,EAAQ8N,EAAgBiR,MAAQ,EAChCxI,EAAUzI,EAAgBmS,QAAU,EACpCvJ,EAAU5I,EAAgBoS,QAAU,EACpCmB,EAAevT,EAAgBqS,aAAe,EAElDpmC,KAAKqvB,SAlDT,SAAyBzpB,GACrB,IAAI9E,EAEAzE,EADAkrC,GAAiB,EAErB,IAAKzmC,KAAO8E,EACR,GACI4nB,EAAW5nB,EAAG9E,MAEuB,IAAjChK,GAAQb,KAAKm2B,GAAUtrB,IACZ,MAAV8E,EAAE9E,IAAiBlL,MAAMgQ,EAAE9E,KAGhC,OAAO,EAIf,IAAKzE,EAAI,EAAGA,EAAI+vB,GAASjwB,SAAUE,EAC/B,GAAIuJ,EAAEwmB,GAAS/vB,IAAK,CAChB,GAAIkrC,EACA,OAAO,EAEPze,WAAWljB,EAAEwmB,GAAS/vB,OAASg4B,EAAMzuB,EAAEwmB,GAAS/vB,OAChDkrC,GAAiB,GAK7B,OAAO,EAuBSC,CAAgBzT,GAGhC/zB,KAAKynC,eACAH,EACS,IAAV3K,EACU,IAAVH,EACQ,IAARvW,EAAe,GAAK,GAGxBjmB,KAAK0nC,OAASL,EAAe,EAARF,EAIrBnnC,KAAK2nC,SAAW5Q,EAAoB,EAAXkQ,EAAuB,GAARD,EAExChnC,KAAK4nC,MAAQ,GAEb5nC,KAAK2wB,QAAUgP,KAEf3/B,KAAK6nC,UAGT,SAASC,GAAW3gC,GAChB,OAAOA,aAAe2/B,GAG1B,SAASiB,GAASpe,GACd,OAAIA,EAAS,GACyB,EAA3BpyB,KAAKQ,OAAO,EAAI4xB,GAEhBpyB,KAAKQ,MAAM4xB,GAuB1B,SAASqe,GAAOxV,EAAOzI,GACnBwI,EAAeC,EAAO,EAAG,GAAG,WACxB,IAAIwV,EAAShoC,KAAKioC,YACdC,EAAO,IAKX,OAJIF,EAAS,IACTA,GAAUA,EACVE,EAAO,KAGPA,EACApW,KAAYkW,EAAS,IAAK,GAC1Bje,EACA+H,IAAWkW,EAAS,GAAI,MAKpCA,GAAO,IAAK,KACZA,GAAO,KAAM,IAIbjS,GAAc,IAAKF,IACnBE,GAAc,KAAMF,IACpBW,GAAc,CAAC,IAAK,OAAO,SAAUhL,EAAOT,EAAOvc,GAC/CA,EAAOk1B,SAAU,EACjBl1B,EAAOgiB,KAAO2X,GAAiBtS,GAAkBrK,MAQrD,IAAI4c,GAAc,kBAElB,SAASD,GAAiBE,EAASxG,GAC/B,IAEI9e,EACAyZ,EAHAhQ,GAAWqV,GAAU,IAAIljB,MAAM0pB,GAKnC,OAAgB,OAAZ7b,EACO,KAOQ,KAFnBgQ,EAAuB,IADvBzZ,IADQyJ,EAAQA,EAAQrwB,OAAS,IAAM,IACtB,IAAIwiB,MAAMypB,KAAgB,CAAC,IAAK,EAAG,IAClC,GAAW/T,EAAMtR,EAAM,KAElB,EAAiB,MAAbA,EAAM,GAAayZ,GAAWA,EAI7D,SAAS8L,GAAgB9c,EAAO+c,GAC5B,IAAI/7B,EAAK0Y,EACT,OAAIqjB,EAAM9X,QACNjkB,EAAM+7B,EAAM3/B,QACZsc,GACK4L,EAAStF,IAAUr0B,EAAOq0B,GACrBA,EAAMqC,UACNwW,GAAY7Y,GAAOqC,WAAarhB,EAAIqhB,UAE9CrhB,EAAImE,GAAG63B,QAAQh8B,EAAImE,GAAGkd,UAAY3I,GAClCqI,EAAMsD,aAAarkB,GAAK,GACjBA,GAEA63B,GAAY7Y,GAAOid,QAIlC,SAASC,GAAc9iC,GAGnB,OAAQrO,KAAKQ,MAAM6N,EAAE+K,GAAGwU,qBA0J5B,SAASwjB,KACL,QAAO3oC,KAAKovB,WAAYpvB,KAAKywB,QAA2B,IAAjBzwB,KAAK0wB,QApJhDnD,EAAMsD,aAAe,aAwJrB,IAAI+X,GAAc,wDAIdC,GAAW,sKAEf,SAASC,GAAetd,EAAO1qB,GAC3B,IAGIonC,EACAa,EACAC,EALAjC,EAAWvb,EAEX7M,EAAQ,KAkEZ,OA7DImpB,GAAWtc,GACXub,EAAW,CACP3N,GAAI5N,EAAMic,cACVtvC,EAAGqzB,EAAMkc,MACTvO,EAAG3N,EAAMmc,SAENpxC,EAASi1B,KAAW51B,OAAO41B,IAClCub,EAAW,GACPjmC,EACAimC,EAASjmC,IAAQ0qB,EAEjBub,EAASO,cAAgB9b,IAErB7M,EAAQiqB,GAAY3nB,KAAKuK,KACjC0c,EAAoB,MAAbvpB,EAAM,IAAc,EAAI,EAC/BooB,EAAW,CACPxsC,EAAG,EACHpC,EAAGk8B,EAAM1V,EApjFV,IAojFyBupB,EACxBhP,EAAG7E,EAAM1V,EApjFV,IAojFyBupB,EACxBtiC,EAAGyuB,EAAM1V,EApjFR,IAojFyBupB,EAC1BjtC,EAAGo5B,EAAM1V,EApjFR,IAojFyBupB,EAC1B9O,GAAI/E,EAAM0T,GAA8B,IAArBppB,EApjFb,KAojF2CupB,KAE7CvpB,EAAQkqB,GAAS5nB,KAAKuK,KAC9B0c,EAAoB,MAAbvpB,EAAM,IAAc,EAAI,EAC/BooB,EAAW,CACPxsC,EAAG0uC,GAAStqB,EAAM,GAAIupB,GACtB/O,EAAG8P,GAAStqB,EAAM,GAAIupB,GACtBxJ,EAAGuK,GAAStqB,EAAM,GAAIupB,GACtB/vC,EAAG8wC,GAAStqB,EAAM,GAAIupB,GACtBhP,EAAG+P,GAAStqB,EAAM,GAAIupB,GACtBtiC,EAAGqjC,GAAStqB,EAAM,GAAIupB,GACtBjtC,EAAGguC,GAAStqB,EAAM,GAAIupB,KAEP,MAAZnB,EAEPA,EAAW,GAES,kBAAbA,IACN,SAAUA,GAAY,OAAQA,KAE/BiC,EAiDR,SAA2BvgC,EAAMi+B,GAC7B,IAAIl6B,EACJ,OAAM/D,EAAK2mB,WAAasX,EAAMtX,WAI9BsX,EAAQ4B,GAAgB5B,EAAOj+B,GAC3BA,EAAKygC,SAASxC,GACdl6B,EAAM28B,GAA0B1gC,EAAMi+B,KAEtCl6B,EAAM28B,GAA0BzC,EAAOj+B,IACnC6+B,cAAgB96B,EAAI86B,aACxB96B,EAAIuqB,QAAUvqB,EAAIuqB,QAGfvqB,GAZI,CAAE86B,aAAc,EAAGvQ,OAAQ,GApDxBqS,CACN/E,GAAY0C,EAAS5W,MACrBkU,GAAY0C,EAAS7W,MAGzB6W,EAAW,IACF3N,GAAK4P,EAAQ1B,aACtBP,EAAS5N,EAAI6P,EAAQjS,QAGzBgS,EAAM,IAAIjC,GAASC,GAEfe,GAAWtc,IAAUgC,EAAWhC,EAAO,aACvCud,EAAIpY,QAAUnF,EAAMmF,SAGpBmX,GAAWtc,IAAUgC,EAAWhC,EAAO,cACvCud,EAAI1Z,SAAW7D,EAAM6D,UAGlB0Z,EAMX,SAASE,GAASI,EAAKnB,GAInB,IAAI17B,EAAM68B,GAAOvgB,WAAWugB,EAAI3yC,QAAQ,IAAK,MAE7C,OAAQd,MAAM4W,GAAO,EAAIA,GAAO07B,EAGpC,SAASiB,GAA0B1gC,EAAMi+B,GACrC,IAAIl6B,EAAM,GAUV,OARAA,EAAIuqB,OACA2P,EAAM9R,QAAUnsB,EAAKmsB,QAAyC,IAA9B8R,EAAM7gB,OAASpd,EAAKod,QACpDpd,EAAKG,QAAQU,IAAIkD,EAAIuqB,OAAQ,KAAKuS,QAAQ5C,MACxCl6B,EAAIuqB,OAGVvqB,EAAI86B,cAAgBZ,GAASj+B,EAAKG,QAAQU,IAAIkD,EAAIuqB,OAAQ,KAEnDvqB,EAsBX,SAAS+8B,GAAYC,EAAWjnC,GAC5B,OAAO,SAAU6tB,EAAKqZ,GAClB,IAASC,EAmBT,OAjBe,OAAXD,GAAoB7zC,OAAO6zC,KAC3BlY,EACIhvB,EACA,YACIA,EACA,uDACAA,EACA,kGAGRmnC,EAAMtZ,EACNA,EAAMqZ,EACNA,EAASC,GAIbC,GAAY3pC,KADN8oC,GAAe1Y,EAAKqZ,GACHD,GAChBxpC,MAIf,SAAS2pC,GAAY5W,EAAKgU,EAAU6C,EAAU/Y,GAC1C,IAAIyW,EAAeP,EAASU,cACxBJ,EAAOU,GAAShB,EAASW,OACzB3Q,EAASgR,GAAShB,EAASY,SAE1B5U,EAAI3D,YAKTyB,EAA+B,MAAhBA,GAA8BA,EAEzCkG,GACAiB,GAASjF,EAAK7xB,EAAI6xB,EAAK,SAAWgE,EAAS6S,GAE3CvC,GACA1S,EAAM5B,EAAK,OAAQ7xB,EAAI6xB,EAAK,QAAUsU,EAAOuC,GAE7CtC,GACAvU,EAAIpiB,GAAG63B,QAAQzV,EAAIpiB,GAAGkd,UAAYyZ,EAAesC,GAEjD/Y,GACAtD,EAAMsD,aAAakC,EAAKsU,GAAQtQ,IA5FxC+R,GAAev6B,GAAKu4B,GAAS5jC,UAC7B4lC,GAAee,QA9Xf,WACI,OAAOf,GAAejZ,MA4d1B,IAAIvmB,GAAMigC,GAAY,EAAG,OACrBO,GAAWP,IAAa,EAAG,YAE/B,SAAS9yC,GAAS+0B,GACd,MAAwB,kBAAVA,GAAsBA,aAAiBue,OAIzD,SAASC,GAAcxe,GACnB,OACIsF,EAAStF,IACTr0B,EAAOq0B,IACP/0B,GAAS+0B,IACTj1B,EAASi1B,IAgDjB,SAA+BA,GAC3B,IAAIye,EAAY7yC,EAAQo0B,GACpB0e,GAAe,EAOnB,OANID,IACAC,EAGkB,IAFd1e,EAAMwB,QAAO,SAAUmd,GACnB,OAAQ5zC,EAAS4zC,IAAS1zC,GAAS+0B,MACpCrvB,QAEJ8tC,GAAaC,EAxDhBE,CAAsB5e,IAO9B,SAA6BA,GACzB,IA4BInvB,EACAguC,EA7BAC,EAAa1zC,EAAS40B,KAAWiC,EAAcjC,GAC/C+e,GAAe,EACfC,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,MAKR,IAAKnuC,EAAI,EAAGA,EAAImuC,EAAWruC,OAAQE,GAAK,EACpCguC,EAAWG,EAAWnuC,GACtBkuC,EAAeA,GAAgB/c,EAAWhC,EAAO6e,GAGrD,OAAOC,GAAcC,EA3CjBE,CAAoBjf,IACV,OAAVA,QACU9e,IAAV8e,EAwDR,SAASkf,GAAelf,GACpB,IAUInvB,EAVAiuC,EAAa1zC,EAAS40B,KAAWiC,EAAcjC,GAC/C+e,GAAe,EACfC,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,YAKR,IAAKnuC,EAAI,EAAGA,EAAImuC,EAAWruC,OAAQE,GAAK,EAEpCkuC,EAAeA,GAAgB/c,EAAWhC,EAD/Bgf,EAAWnuC,IAI1B,OAAOiuC,GAAcC,EAyKzB,SAASI,GAAU5zC,EAAG0L,GAClB,GAAI1L,EAAEguB,OAAStiB,EAAEsiB,OAGb,OAAQ4lB,GAAUloC,EAAG1L,GAGzB,IAAI6zC,EAAyC,IAAvBnoC,EAAEojB,OAAS9uB,EAAE8uB,SAAgBpjB,EAAEmyB,QAAU79B,EAAE69B,SAE7DiW,EAAS9zC,EAAE6R,QAAQU,IAAIshC,EAAgB,UAe3C,QAASA,GAXLnoC,EAAIooC,EAAS,GAGHpoC,EAAIooC,IAAWA,EAFf9zC,EAAE6R,QAAQU,IAAIshC,EAAiB,EAAG,YAMlCnoC,EAAIooC,IAFJ9zC,EAAE6R,QAAQU,IAAIshC,EAAiB,EAAG,UAETC,MAIF,EAmHzC,SAAS9c,GAAOjtB,GACZ,IAAIgqC,EAEJ,YAAYp+B,IAAR5L,EACOd,KAAK2wB,QAAQ6O,OAGC,OADrBsL,EAAgBnL,GAAU7+B,MAEtBd,KAAK2wB,QAAUma,GAEZ9qC,MA1HfutB,EAAMwd,cAAgB,uBACtBxd,EAAMyd,iBAAmB,yBA6HzB,IAAIC,GAAO/Z,EACP,mJACA,SAAUpwB,GACN,YAAY4L,IAAR5L,EACOd,KAAK4yB,aAEL5yB,KAAK+tB,OAAOjtB,MAK/B,SAAS8xB,KACL,OAAO5yB,KAAK2wB,QAShB,SAASua,GAAMC,EAAUC,GACrB,OAASD,EAAWC,EAAWA,GAAWA,EAG9C,SAASC,GAAiB9wC,EAAGqL,EAAGzN,GAE5B,OAAIoC,EAAI,KAAOA,GAAK,EAET,IAAImqB,KAAKnqB,EAAI,IAAKqL,EAAGzN,GAXb,YAaR,IAAIusB,KAAKnqB,EAAGqL,EAAGzN,GAAG01B,UAIjC,SAASyd,GAAe/wC,EAAGqL,EAAGzN,GAE1B,OAAIoC,EAAI,KAAOA,GAAK,EAETmqB,KAAK6U,IAAIh/B,EAAI,IAAKqL,EAAGzN,GArBb,YAuBRusB,KAAK6U,IAAIh/B,EAAGqL,EAAGzN,GAsb9B,SAASozC,GAAarV,EAAUnI,GAC5B,OAAOA,EAAOyd,cAActV,GAehC,SAASuV,KACL,IAIIpvC,EACAyV,EALA45B,EAAa,GACbC,EAAa,GACbC,EAAe,GACfrT,EAAc,GAGdsT,EAAO7rC,KAAK6rC,OAEhB,IAAKxvC,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAClCsvC,EAAWntC,KAAK43B,GAAYyV,EAAKxvC,GAAGkG,OACpCmpC,EAAWltC,KAAK43B,GAAYyV,EAAKxvC,GAAGwjC,OACpC+L,EAAaptC,KAAK43B,GAAYyV,EAAKxvC,GAAGyvC,SAEtCvT,EAAY/5B,KAAK43B,GAAYyV,EAAKxvC,GAAGkG,OACrCg2B,EAAY/5B,KAAK43B,GAAYyV,EAAKxvC,GAAGwjC,OACrCtH,EAAY/5B,KAAK43B,GAAYyV,EAAKxvC,GAAGyvC,SAGzC9rC,KAAK+rC,WAAa,IAAI9oB,OAAO,KAAOsV,EAAY9xB,KAAK,KAAO,IAAK,KACjEzG,KAAKgsC,eAAiB,IAAI/oB,OAAO,KAAO0oB,EAAWllC,KAAK,KAAO,IAAK,KACpEzG,KAAKisC,eAAiB,IAAIhpB,OAAO,KAAOyoB,EAAWjlC,KAAK,KAAO,IAAK,KACpEzG,KAAKksC,iBAAmB,IAAIjpB,OACxB,KAAO2oB,EAAanlC,KAAK,KAAO,IAChC,KAcR,SAAS0lC,GAAuB3Z,EAAO4Z,GACnC7Z,EAAe,EAAG,CAACC,EAAOA,EAAMr2B,QAAS,EAAGiwC,GAoFhD,SAASC,GAAqB7gB,EAAOlG,EAAMQ,EAAS4T,EAAKC,GACrD,IAAI2S,EACJ,OAAa,MAAT9gB,EACO0O,GAAWl6B,KAAM05B,EAAKC,GAAK9T,MAG9BP,GADJgnB,EAAcjS,GAAY7O,EAAOkO,EAAKC,MAElCrU,EAAOgnB,GAEJC,GAAWt2C,KAAK+J,KAAMwrB,EAAOlG,EAAMQ,EAAS4T,EAAKC,IAIhE,SAAS4S,GAAWxI,EAAUze,EAAMQ,EAAS4T,EAAKC,GAC9C,IAAI6S,EAAgB1S,GAAmBiK,EAAUze,EAAMQ,EAAS4T,EAAKC,GACjE5U,EAAOuU,GAAckT,EAAc3mB,KAAM,EAAG2mB,EAAcvS,WAK9D,OAHAj6B,KAAK6lB,KAAKd,EAAKyU,kBACfx5B,KAAK40B,MAAM7P,EAAK4e,eAChB3jC,KAAK+kB,KAAKA,EAAK6e,cACR5jC,KA5YXuyB,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,KAAM,EAAG,EAAG,WAC3BA,EAAe,MAAO,EAAG,EAAG,WAC5BA,EAAe,OAAQ,EAAG,EAAG,WAC7BA,EAAe,QAAS,EAAG,EAAG,aAE9BA,EAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,EAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,EAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WAEpCwD,GAAc,IAAKwV,IACnBxV,GAAc,KAAMwV,IACpBxV,GAAc,MAAOwV,IACrBxV,GAAc,QAmOd,SAAsBG,EAAUnI,GAC5B,OAAOA,EAAO0e,cAAcvW,MAnOhCH,GAAc,SAsOd,SAAwBG,EAAUnI,GAC9B,OAAOA,EAAO2e,gBAAgBxW,MArOlCM,GAAc,CAAC,IAAK,KAAM,MAAO,OAAQ,UAAU,SAC/ChL,EACAT,EACAvc,EACAgkB,GAEA,IAAIxD,EAAMxgB,EAAOmiB,QAAQgc,UAAUnhB,EAAOgH,EAAOhkB,EAAOkhB,SACpDV,EACAd,EAAgB1f,GAAQwgB,IAAMA,EAE9Bd,EAAgB1f,GAAQkgB,WAAalD,KAI7CuK,GAAc,IAAKL,IACnBK,GAAc,KAAML,IACpBK,GAAc,MAAOL,IACrBK,GAAc,OAAQL,IACtBK,GAAc,MAsNd,SAA6BG,EAAUnI,GACnC,OAAOA,EAAO6e,sBAAwBlX,MArN1Cc,GAAc,CAAC,IAAK,KAAM,MAAO,QA13GtB,GA23GXA,GAAc,CAAC,OAAO,SAAUhL,EAAOT,EAAOvc,EAAQgkB,GAClD,IAAI7T,EACAnQ,EAAOmiB,QAAQic,uBACfjuB,EAAQ6M,EAAM7M,MAAMnQ,EAAOmiB,QAAQic,uBAGnCp+B,EAAOmiB,QAAQkc,oBACf9hB,EAl4GG,GAk4GWvc,EAAOmiB,QAAQkc,oBAAoBrhB,EAAO7M,GAExDoM,EAp4GG,GAo4GWgO,SAASvN,EAAO,OA4OtC+G,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAOvyB,KAAK+jC,WAAa,OAG7BxR,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAOvyB,KAAK8sC,cAAgB,OAOhCX,GAAuB,OAAQ,YAC/BA,GAAuB,QAAS,YAChCA,GAAuB,OAAQ,eAC/BA,GAAuB,QAAS,eAIhC7Y,EAAa,WAAY,MACzBA,EAAa,cAAe,MAI5BW,EAAgB,WAAY,GAC5BA,EAAgB,cAAe,GAI/B8B,GAAc,IAAKJ,IACnBI,GAAc,IAAKJ,IACnBI,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,OAAQP,GAAWN,IACjCa,GAAc,OAAQP,GAAWN,IACjCa,GAAc,QAASN,GAAWN,IAClCY,GAAc,QAASN,GAAWN,IAElCsB,GAAkB,CAAC,OAAQ,QAAS,OAAQ,UAAU,SAClDjL,EACAlG,EACA9W,EACAgkB,GAEAlN,EAAKkN,EAAM/L,OAAO,EAAG,IAAM4N,EAAM7I,MAGrCiL,GAAkB,CAAC,KAAM,OAAO,SAAUjL,EAAOlG,EAAM9W,EAAQgkB,GAC3DlN,EAAKkN,GAASjF,EAAMuL,kBAAkBtN,MAsE1C+G,EAAe,IAAK,EAAG,KAAM,WAI7Be,EAAa,UAAW,KAIxBW,EAAgB,UAAW,GAI3B8B,GAAc,IAAKhB,GACnByB,GAAc,KAAK,SAAUhL,EAAOT,GAChCA,EAnvHQ,GAmvH4B,GAApBsJ,EAAM7I,GAAS,MAanC+G,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAIrCe,EAAa,OAAQ,KAGrBW,EAAgB,OAAQ,GAIxB8B,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/Be,GAAc,MAAM,SAAUG,EAAUnI,GAEpC,OAAOmI,EACDnI,EAAOgf,yBAA2Bhf,EAAOif,cACzCjf,EAAOkf,kCAGjBzW,GAAc,CAAC,IAAK,MAnxHT,GAoxHXA,GAAc,MAAM,SAAUhL,EAAOT,GACjCA,EArxHO,GAqxHOsJ,EAAM7I,EAAM7M,MAAMyW,IAAW,OAK/C,IAAI8X,GAAmBzY,EAAW,QAAQ,GAI1ClC,EAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAI3Ce,EAAa,YAAa,OAG1BW,EAAgB,YAAa,GAI7B8B,GAAc,MAAOR,IACrBQ,GAAc,OAAQd,GACtBuB,GAAc,CAAC,MAAO,SAAS,SAAUhL,EAAOT,EAAOvc,GACnDA,EAAOg2B,WAAanQ,EAAM7I,MAiB9B+G,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCe,EAAa,SAAU,KAIvBW,EAAgB,SAAU,IAI1B8B,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/BwB,GAAc,CAAC,IAAK,MAz0HP,GA60Hb,IAAI2W,GAAe1Y,EAAW,WAAW,GAIzClC,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCe,EAAa,SAAU,KAIvBW,EAAgB,SAAU,IAI1B8B,GAAc,IAAKX,IACnBW,GAAc,KAAMX,GAAWJ,GAC/BwB,GAAc,CAAC,IAAK,MA91HP,GAk2Hb,IA8CIhE,GAAO4a,GA9CPC,GAAe5Y,EAAW,WAAW,GA+CzC,IA3CAlC,EAAe,IAAK,EAAG,GAAG,WACtB,SAAUvyB,KAAKomC,cAAgB,QAGnC7T,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,SAAUvyB,KAAKomC,cAAgB,OAGnC7T,EAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,EAAe,EAAG,CAAC,OAAQ,GAAI,GAAG,WAC9B,OAA4B,GAArBvyB,KAAKomC,iBAEhB7T,EAAe,EAAG,CAAC,QAAS,GAAI,GAAG,WAC/B,OAA4B,IAArBvyB,KAAKomC,iBAEhB7T,EAAe,EAAG,CAAC,SAAU,GAAI,GAAG,WAChC,OAA4B,IAArBvyB,KAAKomC,iBAEhB7T,EAAe,EAAG,CAAC,UAAW,GAAI,GAAG,WACjC,OAA4B,IAArBvyB,KAAKomC,iBAEhB7T,EAAe,EAAG,CAAC,WAAY,GAAI,GAAG,WAClC,OAA4B,IAArBvyB,KAAKomC,iBAEhB7T,EAAe,EAAG,CAAC,YAAa,GAAI,GAAG,WACnC,OAA4B,IAArBvyB,KAAKomC,iBAKhB9S,EAAa,cAAe,MAI5BW,EAAgB,cAAe,IAI/B8B,GAAc,IAAKR,GAAWR,GAC9BgB,GAAc,KAAMR,GAAWP,GAC/Be,GAAc,MAAOR,GAAWN,GAG3BzC,GAAQ,OAAQA,GAAMr2B,QAAU,EAAGq2B,IAAS,IAC7CuD,GAAcvD,GAAOkD,IAGzB,SAAS4X,GAAQ9hB,EAAOT,GACpBA,EAr5Hc,GAq5HOsJ,EAAuB,KAAhB,KAAO7I,IAGvC,IAAKgH,GAAQ,IAAKA,GAAMr2B,QAAU,EAAGq2B,IAAS,IAC1CgE,GAAchE,GAAO8a,IAGzBF,GAAoB3Y,EAAW,gBAAgB,GAI/ClC,EAAe,IAAK,EAAG,EAAG,YAC1BA,EAAe,KAAM,EAAG,EAAG,YAY3B,IAAI1rB,GAAQ+pB,EAAO1tB,UAgHnB,SAASqqC,GAAmB1L,GACxB,OAAOA,EA/GXh7B,GAAMyC,IAAMA,GACZzC,GAAMy2B,SAjoCN,SAAoBkQ,EAAMC,GAEG,IAArBjqC,UAAUrH,SACN6tC,GAAcxmC,UAAU,KACxBgqC,EAAOhqC,UAAU,GACjBiqC,OAAU/gC,GACHg+B,GAAelnC,UAAU,MAChCiqC,EAAUjqC,UAAU,GACpBgqC,OAAO9gC,IAKf,IAAI+2B,EAAM+J,GAAQnJ,KACdqJ,EAAMpF,GAAgB7E,EAAKzjC,MAAM2tC,QAAQ,OACzChqB,EAAS4J,EAAMqgB,eAAe5tC,KAAM0tC,IAAQ,WAC5CviB,EACIsiB,IACCjc,EAAWic,EAAQ9pB,IACd8pB,EAAQ9pB,GAAQ1tB,KAAK+J,KAAMyjC,GAC3BgK,EAAQ9pB,IAEtB,OAAO3jB,KAAK2jB,OACRwH,GAAUnrB,KAAK4yB,aAAa0K,SAAS3Z,EAAQ3jB,KAAMqkC,GAAYZ,MA2mCvE58B,GAAM+B,MAvmCN,WACI,OAAO,IAAIgoB,EAAO5wB,OAumCtB6G,GAAMqe,KA/hCN,SAAcsG,EAAOmI,EAAOka,GACxB,IAAIC,EAAMC,EAAW5iB,EAErB,IAAKnrB,KAAKovB,UACN,OAAOS,IAKX,KAFAie,EAAOxF,GAAgB9c,EAAOxrB,OAEpBovB,UACN,OAAOS,IAOX,OAJAke,EAAoD,KAAvCD,EAAK7F,YAAcjoC,KAAKioC,aAErCtU,EAAQD,EAAeC,IAGnB,IAAK,OACDxI,EAASwf,GAAU3qC,KAAM8tC,GAAQ,GACjC,MACJ,IAAK,QACD3iB,EAASwf,GAAU3qC,KAAM8tC,GACzB,MACJ,IAAK,UACD3iB,EAASwf,GAAU3qC,KAAM8tC,GAAQ,EACjC,MACJ,IAAK,SACD3iB,GAAUnrB,KAAO8tC,GAAQ,IACzB,MACJ,IAAK,SACD3iB,GAAUnrB,KAAO8tC,GAAQ,IACzB,MACJ,IAAK,OACD3iB,GAAUnrB,KAAO8tC,GAAQ,KACzB,MACJ,IAAK,MACD3iB,GAAUnrB,KAAO8tC,EAAOC,GAAa,MACrC,MACJ,IAAK,OACD5iB,GAAUnrB,KAAO8tC,EAAOC,GAAa,OACrC,MACJ,QACI5iB,EAASnrB,KAAO8tC,EAGxB,OAAOD,EAAU1iB,EAASiJ,EAASjJ,IAk/BvCtkB,GAAMmnC,MA1uBN,SAAera,GACX,IAAI6Z,EAAMS,EAEV,QAAcvhC,KADdinB,EAAQD,EAAeC,KACc,gBAAVA,IAA4B3zB,KAAKovB,UACxD,OAAOpvB,KAKX,OAFAiuC,EAAcjuC,KAAKywB,OAAS6a,GAAiBD,GAErC1X,GACJ,IAAK,OACD6Z,EAAOS,EAAYjuC,KAAK6lB,OAAS,EAAG,EAAG,GAAK,EAC5C,MACJ,IAAK,UACD2nB,EACIS,EACIjuC,KAAK6lB,OACL7lB,KAAK40B,QAAW50B,KAAK40B,QAAU,EAAK,EACpC,GACA,EACR,MACJ,IAAK,QACD4Y,EAAOS,EAAYjuC,KAAK6lB,OAAQ7lB,KAAK40B,QAAU,EAAG,GAAK,EACvD,MACJ,IAAK,OACD4Y,EACIS,EACIjuC,KAAK6lB,OACL7lB,KAAK40B,QACL50B,KAAK+kB,OAAS/kB,KAAK8lB,UAAY,GAC/B,EACR,MACJ,IAAK,UACD0nB,EACIS,EACIjuC,KAAK6lB,OACL7lB,KAAK40B,QACL50B,KAAK+kB,QAAU/kB,KAAKkuC,aAAe,GAAK,GACxC,EACR,MACJ,IAAK,MACL,IAAK,OACDV,EAAOS,EAAYjuC,KAAK6lB,OAAQ7lB,KAAK40B,QAAS50B,KAAK+kB,OAAS,GAAK,EACjE,MACJ,IAAK,OACDyoB,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GAzIM,KA2IFtC,GACIsC,GAAQxtC,KAAKywB,OAAS,EA7ItB,IA6I0BzwB,KAAKioC,aA5IjC,MA+IF,EACJ,MACJ,IAAK,SACDuF,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GApJQ,IAoJgBtC,GAAMsC,EApJtB,KAoJ6C,EACrD,MACJ,IAAK,SACDA,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GAzJQ,IAyJgBtC,GAAMsC,EAzJtB,KAyJ6C,EAM7D,OAFAxtC,KAAK2Q,GAAG63B,QAAQgF,GAChBjgB,EAAMsD,aAAa7wB,MAAM,GAClBA,MAyqBX6G,GAAM8c,OAp5BN,SAAgBwqB,GACPA,IACDA,EAAcnuC,KAAK2oC,QACbpb,EAAMyd,iBACNzd,EAAMwd,eAEhB,IAAI5f,EAAS0H,EAAa7yB,KAAMmuC,GAChC,OAAOnuC,KAAK4yB,aAAawb,WAAWjjB,IA84BxCtkB,GAAMspB,KA34BN,SAAcqd,EAAMa,GAChB,OACIruC,KAAKovB,YACH0B,EAAS0c,IAASA,EAAKpe,WAAciV,GAAYmJ,GAAMpe,WAElD0Z,GAAe,CAAE5Y,GAAIlwB,KAAMmwB,KAAMqd,IACnCzf,OAAO/tB,KAAK+tB,UACZugB,UAAUD,GAERruC,KAAK4yB,aAAaK,eAm4BjCpsB,GAAM0nC,QA/3BN,SAAiBF,GACb,OAAOruC,KAAKmwB,KAAKkU,KAAegK,IA+3BpCxnC,GAAMqpB,GA53BN,SAAYsd,EAAMa,GACd,OACIruC,KAAKovB,YACH0B,EAAS0c,IAASA,EAAKpe,WAAciV,GAAYmJ,GAAMpe,WAElD0Z,GAAe,CAAE3Y,KAAMnwB,KAAMkwB,GAAIsd,IACnCzf,OAAO/tB,KAAK+tB,UACZugB,UAAUD,GAERruC,KAAK4yB,aAAaK,eAo3BjCpsB,GAAM2nC,MAh3BN,SAAeH,GACX,OAAOruC,KAAKkwB,GAAGmU,KAAegK,IAg3BlCxnC,GAAM3F,IAnjIN,SAAmByyB,GAEf,OAAInC,EAAWxxB,KADf2zB,EAAQD,EAAeC,KAEZ3zB,KAAK2zB,KAET3zB,MA+iIX6G,GAAM4nC,UAznBN,WACI,OAAOvgB,EAAgBluB,MAAMuuB,UAynBjC1nB,GAAMyiC,QA7mCN,SAAiB9d,EAAOmI,GACpB,IAAI+a,EAAa5d,EAAStF,GAASA,EAAQ6Y,GAAY7Y,GACvD,SAAMxrB,KAAKovB,YAAasf,EAAWtf,aAIrB,iBADduE,EAAQD,EAAeC,IAAU,eAEtB3zB,KAAK6tB,UAAY6gB,EAAW7gB,UAE5B6gB,EAAW7gB,UAAY7tB,KAAK4I,QAAQ+kC,QAAQha,GAAO9F,YAqmClEhnB,GAAMqiC,SAjmCN,SAAkB1d,EAAOmI,GACrB,IAAI+a,EAAa5d,EAAStF,GAASA,EAAQ6Y,GAAY7Y,GACvD,SAAMxrB,KAAKovB,YAAasf,EAAWtf,aAIrB,iBADduE,EAAQD,EAAeC,IAAU,eAEtB3zB,KAAK6tB,UAAY6gB,EAAW7gB,UAE5B7tB,KAAK4I,QAAQolC,MAAMra,GAAO9F,UAAY6gB,EAAW7gB,YAylChEhnB,GAAM8nC,UArlCN,SAAmBxe,EAAMD,EAAIyD,EAAOib,GAChC,IAAIC,EAAY/d,EAASX,GAAQA,EAAOkU,GAAYlU,GAChD2e,EAAUhe,EAASZ,GAAMA,EAAKmU,GAAYnU,GAC9C,SAAMlwB,KAAKovB,WAAayf,EAAUzf,WAAa0f,EAAQ1f,cAK/B,OAFxBwf,EAAcA,GAAe,MAEZ,GACP5uC,KAAKspC,QAAQuF,EAAWlb,IACvB3zB,KAAKkpC,SAAS2F,EAAWlb,MACZ,MAAnBib,EAAY,GACP5uC,KAAKkpC,SAAS4F,EAASnb,IACtB3zB,KAAKspC,QAAQwF,EAASnb,MAykCrC9sB,GAAMkoC,OArkCN,SAAgBvjB,EAAOmI,GACnB,IACIqb,EADAN,EAAa5d,EAAStF,GAASA,EAAQ6Y,GAAY7Y,GAEvD,SAAMxrB,KAAKovB,YAAasf,EAAWtf,aAIrB,iBADduE,EAAQD,EAAeC,IAAU,eAEtB3zB,KAAK6tB,YAAc6gB,EAAW7gB,WAErCmhB,EAAUN,EAAW7gB,UAEjB7tB,KAAK4I,QAAQ+kC,QAAQha,GAAO9F,WAAamhB,GACzCA,GAAWhvC,KAAK4I,QAAQolC,MAAMra,GAAO9F,aAyjCjDhnB,GAAMooC,cApjCN,SAAuBzjB,EAAOmI,GAC1B,OAAO3zB,KAAK+uC,OAAOvjB,EAAOmI,IAAU3zB,KAAKspC,QAAQ9d,EAAOmI,IAojC5D9sB,GAAMqoC,eAjjCN,SAAwB1jB,EAAOmI,GAC3B,OAAO3zB,KAAK+uC,OAAOvjB,EAAOmI,IAAU3zB,KAAKkpC,SAAS1d,EAAOmI,IAijC7D9sB,GAAMuoB,QAxoBN,WACI,OAAOA,EAAQpvB,OAwoBnB6G,GAAMokC,KAAOA,GACbpkC,GAAMknB,OAASA,GACflnB,GAAM+rB,WAAaA,GACnB/rB,GAAMhP,IAAM8uC,GACZ9/B,GAAMjP,IAAM6uC,GACZ5/B,GAAMsoC,aA1oBN,WACI,OAAOvhB,EAAO,GAAIM,EAAgBluB,QA0oBtC6G,GAAM7F,IA1jIN,SAAmB2yB,EAAO99B,GACtB,GAAqB,kBAAV89B,EAAoB,CAE3B,IACIt3B,EADA+yC,EAzFZ,SAA6BC,GACzB,IACIC,EADA3b,EAAQ,GAEZ,IAAK2b,KAAKD,EACF7hB,EAAW6hB,EAAUC,IACrB3b,EAAMn1B,KAAK,CAAE+0B,KAAM+b,EAAGpb,SAAUF,EAAWsb,KAMnD,OAHA3b,EAAM6E,MAAK,SAAUzhC,EAAG0L,GACpB,OAAO1L,EAAEm9B,SAAWzxB,EAAEyxB,YAEnBP,EA8Ee4b,CADlB5b,EAAQC,EAAqBD,IAG7B,IAAKt3B,EAAI,EAAGA,EAAI+yC,EAAYjzC,OAAQE,IAChC2D,KAAKovC,EAAY/yC,GAAGk3B,MAAMI,EAAMyb,EAAY/yC,GAAGk3B,YAInD,GAAI/B,EAAWxxB,KADf2zB,EAAQD,EAAeC,KAEnB,OAAO3zB,KAAK2zB,GAAO99B,GAG3B,OAAOmK,MA6iIX6G,GAAM8mC,QA/zBN,SAAiBha,GACb,IAAI6Z,EAAMS,EAEV,QAAcvhC,KADdinB,EAAQD,EAAeC,KACc,gBAAVA,IAA4B3zB,KAAKovB,UACxD,OAAOpvB,KAKX,OAFAiuC,EAAcjuC,KAAKywB,OAAS6a,GAAiBD,GAErC1X,GACJ,IAAK,OACD6Z,EAAOS,EAAYjuC,KAAK6lB,OAAQ,EAAG,GACnC,MACJ,IAAK,UACD2nB,EAAOS,EACHjuC,KAAK6lB,OACL7lB,KAAK40B,QAAW50B,KAAK40B,QAAU,EAC/B,GAEJ,MACJ,IAAK,QACD4Y,EAAOS,EAAYjuC,KAAK6lB,OAAQ7lB,KAAK40B,QAAS,GAC9C,MACJ,IAAK,OACD4Y,EAAOS,EACHjuC,KAAK6lB,OACL7lB,KAAK40B,QACL50B,KAAK+kB,OAAS/kB,KAAK8lB,WAEvB,MACJ,IAAK,UACD0nB,EAAOS,EACHjuC,KAAK6lB,OACL7lB,KAAK40B,QACL50B,KAAK+kB,QAAU/kB,KAAKkuC,aAAe,IAEvC,MACJ,IAAK,MACL,IAAK,OACDV,EAAOS,EAAYjuC,KAAK6lB,OAAQ7lB,KAAK40B,QAAS50B,KAAK+kB,QACnD,MACJ,IAAK,OACDyoB,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GAAQtC,GACJsC,GAAQxtC,KAAKywB,OAAS,EAzElB,IAyEsBzwB,KAAKioC,aAxE7B,MA2EN,MACJ,IAAK,SACDuF,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GAAQtC,GAAMsC,EA/EN,KAgFR,MACJ,IAAK,SACDA,EAAOxtC,KAAK2Q,GAAGkd,UACf2f,GAAQtC,GAAMsC,EApFN,KA0FhB,OAFAxtC,KAAK2Q,GAAG63B,QAAQgF,GAChBjgB,EAAMsD,aAAa7wB,MAAM,GAClBA,MAowBX6G,GAAMijC,SAAWA,GACjBjjC,GAAMqlB,QAjrBN,WACI,IAAItmB,EAAI5F,KACR,MAAO,CACH4F,EAAEigB,OACFjgB,EAAEgvB,QACFhvB,EAAEmf,OACFnf,EAAEo/B,OACFp/B,EAAEsgC,SACFtgC,EAAEugC,SACFvgC,EAAEwgC,gBAyqBVv/B,GAAM2oC,SArqBN,WACI,IAAI5pC,EAAI5F,KACR,MAAO,CACHgnC,MAAOphC,EAAEigB,OACTkR,OAAQnxB,EAAEgvB,QACV7P,KAAMnf,EAAEmf,OACRkB,MAAOrgB,EAAEqgB,QACTuW,QAAS52B,EAAE42B,UACXG,QAAS/2B,EAAE+2B,UACX2K,aAAc1hC,EAAE0hC,iBA6pBxBzgC,GAAM4oC,OAvrBN,WACI,OAAO,IAAI/qB,KAAK1kB,KAAK6tB,YAurBzBhnB,GAAM6oC,YAx+BN,SAAqBC,GACjB,IAAK3vC,KAAKovB,UACN,OAAO,KAEX,IAAIpK,GAAqB,IAAf2qB,EACN/pC,EAAIof,EAAMhlB,KAAK4I,QAAQoc,MAAQhlB,KACnC,OAAI4F,EAAEigB,OAAS,GAAKjgB,EAAEigB,OAAS,KACpBgN,EACHjtB,EACAof,EACM,iCACA,gCAGVwM,EAAW9M,KAAKxhB,UAAUwsC,aAEtB1qB,EACOhlB,KAAKyvC,SAASC,cAEd,IAAIhrB,KAAK1kB,KAAK6tB,UAA+B,GAAnB7tB,KAAKioC,YAAmB,KACpDyH,cACAh5C,QAAQ,IAAKm8B,EAAajtB,EAAG,MAGnCitB,EACHjtB,EACAof,EAAM,+BAAiC,+BA+8B/Cne,GAAM+oC,QAr8BN,WACI,IAAK5vC,KAAKovB,UACN,MAAO,qBAAuBpvB,KAAK8Q,GAAK,OAE5C,IAEI++B,EACAhqB,EAEAiqB,EALAnd,EAAO,SACPod,EAAO,GAcX,OATK/vC,KAAKgwC,YACNrd,EAA4B,IAArB3yB,KAAKioC,YAAoB,aAAe,mBAC/C8H,EAAO,KAEXF,EAAS,IAAMld,EAAO,MACtB9M,EAAO,GAAK7lB,KAAK6lB,QAAU7lB,KAAK6lB,QAAU,KAAO,OAAS,SAE1DiqB,EAASC,EAAO,OAET/vC,KAAK2jB,OAAOksB,EAAShqB,EAHjB,wBAGmCiqB,IAm7B5B,qBAAX1qC,QAAwC,MAAdA,OAAO6qC,MACxCppC,GAAMzB,OAAO6qC,IAAI,+BAAiC,WAC9C,MAAO,UAAYjwC,KAAK2jB,SAAW,MAG3C9c,GAAMqpC,OAjqBN,WAEI,OAAOlwC,KAAKovB,UAAYpvB,KAAK0vC,cAAgB,MAgqBjD7oC,GAAM7Q,SAp/BN,WACI,OAAOgK,KAAK4I,QAAQmlB,OAAO,MAAMpK,OAAO,qCAo/B5C9c,GAAMspC,KArsBN,WACI,OAAO54C,KAAKU,MAAM+H,KAAK6tB,UAAY,MAqsBvChnB,GAAMgnB,QA1sBN,WACI,OAAO7tB,KAAK2Q,GAAGkd,UAAkC,KAArB7tB,KAAK0wB,SAAW,IA0sBhD7pB,GAAMupC,aAppBN,WACI,MAAO,CACH5kB,MAAOxrB,KAAK8Q,GACZ6S,OAAQ3jB,KAAKswB,GACbvC,OAAQ/tB,KAAK2wB,QACb4V,MAAOvmC,KAAKywB,OACZzC,OAAQhuB,KAAK0vB,UA+oBrB7oB,GAAMwpC,QAzgBN,WACI,IAAIh0C,EACAyV,EACAse,EACAyb,EAAO7rC,KAAK4yB,aAAaiZ,OAC7B,IAAKxvC,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAAG,CAIrC,GAFA+zB,EAAMpwB,KAAK2tC,QAAQ,OAAO9f,UAEtBge,EAAKxvC,GAAGi0C,OAASlgB,GAAOA,GAAOyb,EAAKxvC,GAAGk0C,MACvC,OAAO1E,EAAKxvC,GAAGkG,KAEnB,GAAIspC,EAAKxvC,GAAGk0C,OAASngB,GAAOA,GAAOyb,EAAKxvC,GAAGi0C,MACvC,OAAOzE,EAAKxvC,GAAGkG,KAIvB,MAAO,IAyfXsE,GAAM2pC,UAtfN,WACI,IAAIn0C,EACAyV,EACAse,EACAyb,EAAO7rC,KAAK4yB,aAAaiZ,OAC7B,IAAKxvC,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAAG,CAIrC,GAFA+zB,EAAMpwB,KAAK2tC,QAAQ,OAAO9f,UAEtBge,EAAKxvC,GAAGi0C,OAASlgB,GAAOA,GAAOyb,EAAKxvC,GAAGk0C,MACvC,OAAO1E,EAAKxvC,GAAGyvC,OAEnB,GAAID,EAAKxvC,GAAGk0C,OAASngB,GAAOA,GAAOyb,EAAKxvC,GAAGi0C,MACvC,OAAOzE,EAAKxvC,GAAGyvC,OAIvB,MAAO,IAseXjlC,GAAM4pC,QAneN,WACI,IAAIp0C,EACAyV,EACAse,EACAyb,EAAO7rC,KAAK4yB,aAAaiZ,OAC7B,IAAKxvC,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAAG,CAIrC,GAFA+zB,EAAMpwB,KAAK2tC,QAAQ,OAAO9f,UAEtBge,EAAKxvC,GAAGi0C,OAASlgB,GAAOA,GAAOyb,EAAKxvC,GAAGk0C,MACvC,OAAO1E,EAAKxvC,GAAGwjC,KAEnB,GAAIgM,EAAKxvC,GAAGk0C,OAASngB,GAAOA,GAAOyb,EAAKxvC,GAAGi0C,MACvC,OAAOzE,EAAKxvC,GAAGwjC,KAIvB,MAAO,IAmdXh5B,GAAM6pC,QAhdN,WACI,IAAIr0C,EACAyV,EACA6+B,EACAvgB,EACAyb,EAAO7rC,KAAK4yB,aAAaiZ,OAC7B,IAAKxvC,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAMlC,GALAs0C,EAAM9E,EAAKxvC,GAAGi0C,OAASzE,EAAKxvC,GAAGk0C,MAAQ,GAAM,EAG7CngB,EAAMpwB,KAAK2tC,QAAQ,OAAO9f,UAGrBge,EAAKxvC,GAAGi0C,OAASlgB,GAAOA,GAAOyb,EAAKxvC,GAAGk0C,OACvC1E,EAAKxvC,GAAGk0C,OAASngB,GAAOA,GAAOyb,EAAKxvC,GAAGi0C,MAExC,OACKtwC,KAAK6lB,OAAS0H,EAAMse,EAAKxvC,GAAGi0C,OAAOzqB,QAAU8qB,EAC9C9E,EAAKxvC,GAAG2rC,OAKpB,OAAOhoC,KAAK6lB,QA0bhBhf,GAAMgf,KAAOmT,GACbnyB,GAAMstB,WAvkHN,WACI,OAAOA,EAAWn0B,KAAK6lB,SAukH3Bhf,GAAMk9B,SAjUN,SAAwBvY,GACpB,OAAO6gB,GAAqBp2C,KACxB+J,KACAwrB,EACAxrB,KAAKslB,OACLtlB,KAAK8lB,UACL9lB,KAAK4yB,aAAa0R,MAAM5K,IACxB15B,KAAK4yB,aAAa0R,MAAM3K,MA2ThC9yB,GAAMimC,YAvTN,SAA2BthB,GACvB,OAAO6gB,GAAqBp2C,KACxB+J,KACAwrB,EACAxrB,KAAKonC,UACLpnC,KAAKkuC,aACL,EACA,IAiTRrnC,GAAMqgC,QAAUrgC,GAAMogC,SA/OtB,SAAuBzb,GACnB,OAAgB,MAATA,EACDj0B,KAAKc,MAAM2H,KAAK40B,QAAU,GAAK,GAC/B50B,KAAK40B,MAAoB,GAAbpJ,EAAQ,GAAUxrB,KAAK40B,QAAU,IA6OvD/tB,GAAM+tB,MAAQsD,GACdrxB,GAAMguB,YA9tHN,WACI,OAAOA,GAAY70B,KAAK6lB,OAAQ7lB,KAAK40B,UA8tHzC/tB,GAAMye,KAAOze,GAAMsgC,MA/6GnB,SAAoB3b,GAChB,IAAIlG,EAAOtlB,KAAK4yB,aAAatN,KAAKtlB,MAClC,OAAgB,MAATwrB,EAAgBlG,EAAOtlB,KAAKsJ,IAAqB,GAAhBkiB,EAAQlG,GAAW,MA86G/Dze,GAAMugC,QAAUvgC,GAAM+pC,SA36GtB,SAAuBplB,GACnB,IAAIlG,EAAO4U,GAAWl6B,KAAM,EAAG,GAAGslB,KAClC,OAAgB,MAATkG,EAAgBlG,EAAOtlB,KAAKsJ,IAAqB,GAAhBkiB,EAAQlG,GAAW,MA06G/Dze,GAAMwzB,YA1SN,WACI,IAAIwW,EAAW7wC,KAAK4yB,aAAa0R,MACjC,OAAOjK,GAAYr6B,KAAK6lB,OAAQgrB,EAASnX,IAAKmX,EAASlX,MAyS3D9yB,GAAMiqC,gBAtSN,WACI,IAAID,EAAW7wC,KAAK4yB,aAAa0R,MACjC,OAAOjK,GAAYr6B,KAAK+jC,WAAY8M,EAASnX,IAAKmX,EAASlX,MAqS/D9yB,GAAMkqC,eApTN,WACI,OAAO1W,GAAYr6B,KAAK6lB,OAAQ,EAAG,IAoTvChf,GAAMmqC,sBAjTN,WACI,OAAO3W,GAAYr6B,KAAK8sC,cAAe,EAAG,IAiT9CjmC,GAAMke,KAAOmoB,GACbrmC,GAAMwe,IAAMxe,GAAMwgC,KA5pGlB,SAAyB7b,GACrB,IAAKxrB,KAAKovB,UACN,OAAgB,MAAT5D,EAAgBxrB,KAAO6vB,IAElC,IAAIxK,EAAMrlB,KAAKywB,OAASzwB,KAAK2Q,GAAGkpB,YAAc75B,KAAK2Q,GAAG4U,SACtD,OAAa,MAATiG,GACAA,EAzNR,SAAsBA,EAAOuC,GACzB,MAAqB,kBAAVvC,EACAA,EAGN51B,MAAM41B,GAKU,kBADrBA,EAAQuC,EAAOgN,cAAcvP,IAElBA,EAGJ,KARIuN,SAASvN,EAAO,IAmNfylB,CAAazlB,EAAOxrB,KAAK4yB,cAC1B5yB,KAAKsJ,IAAIkiB,EAAQnG,EAAK,MAEtBA,GAopGfxe,GAAMif,QAhpGN,SAA+B0F,GAC3B,IAAKxrB,KAAKovB,UACN,OAAgB,MAAT5D,EAAgBxrB,KAAO6vB,IAElC,IAAI/J,GAAW9lB,KAAKqlB,MAAQ,EAAIrlB,KAAK4yB,aAAa0R,MAAM5K,KAAO,EAC/D,OAAgB,MAATlO,EAAgB1F,EAAU9lB,KAAKsJ,IAAIkiB,EAAQ1F,EAAS,MA4oG/Djf,GAAMqnC,WAzoGN,SAA4B1iB,GACxB,IAAKxrB,KAAKovB,UACN,OAAgB,MAAT5D,EAAgBxrB,KAAO6vB,IAOlC,GAAa,MAATrE,EAAe,CACf,IAAI1F,EAjOZ,SAAyB0F,EAAOuC,GAC5B,MAAqB,kBAAVvC,EACAuC,EAAOgN,cAAcvP,GAAS,GAAK,EAEvC51B,MAAM41B,GAAS,KAAOA,EA6NX0lB,CAAgB1lB,EAAOxrB,KAAK4yB,cAC1C,OAAO5yB,KAAKqlB,IAAIrlB,KAAKqlB,MAAQ,EAAIS,EAAUA,EAAU,GAErD,OAAO9lB,KAAKqlB,OAAS,GA6nG7Bxe,GAAMozB,UAhMN,SAAyBzO,GACrB,IAAIyO,EACA1iC,KAAKQ,OACAiI,KAAK4I,QAAQ+kC,QAAQ,OAAS3tC,KAAK4I,QAAQ+kC,QAAQ,SAAW,OAC/D,EACR,OAAgB,MAATniB,EAAgByO,EAAYj6B,KAAKsJ,IAAIkiB,EAAQyO,EAAW,MA4LnEpzB,GAAMm+B,KAAOn+B,GAAMof,MAAQmX,GAC3Bv2B,GAAMq/B,OAASr/B,GAAM21B,QAAU2Q,GAC/BtmC,GAAMs/B,OAASt/B,GAAM81B,QAAU0Q,GAC/BxmC,GAAMu/B,YAAcv/B,GAAMygC,aAAe8F,GACzCvmC,GAAMohC,UA7mDN,SAAsBzc,EAAO2lB,EAAeC,GACxC,IACIC,EADArJ,EAAShoC,KAAK0wB,SAAW,EAE7B,IAAK1wB,KAAKovB,UACN,OAAgB,MAAT5D,EAAgBxrB,KAAO6vB,IAElC,GAAa,MAATrE,EAAe,CACf,GAAqB,kBAAVA,GAEP,GAAc,QADdA,EAAQ2c,GAAiBtS,GAAkBrK,IAEvC,OAAOxrB,UAEJzI,KAAK6B,IAAIoyB,GAAS,KAAO4lB,IAChC5lB,GAAgB,IAwBpB,OAtBKxrB,KAAKywB,QAAU0gB,IAChBE,EAAc3I,GAAc1oC,OAEhCA,KAAK0wB,QAAUlF,EACfxrB,KAAKywB,QAAS,EACK,MAAf4gB,GACArxC,KAAKsJ,IAAI+nC,EAAa,KAEtBrJ,IAAWxc,KACN2lB,GAAiBnxC,KAAKsxC,kBACvB3H,GACI3pC,KACA8oC,GAAetd,EAAQwc,EAAQ,KAC/B,GACA,GAEIhoC,KAAKsxC,oBACbtxC,KAAKsxC,mBAAoB,EACzB/jB,EAAMsD,aAAa7wB,MAAM,GACzBA,KAAKsxC,kBAAoB,OAG1BtxC,KAEP,OAAOA,KAAKywB,OAASuX,EAASU,GAAc1oC,OAukDpD6G,GAAMme,IArjDN,SAAwBmsB,GACpB,OAAOnxC,KAAKioC,UAAU,EAAGkJ,IAqjD7BtqC,GAAM4hC,MAljDN,SAA0B0I,GAStB,OARInxC,KAAKywB,SACLzwB,KAAKioC,UAAU,EAAGkJ,GAClBnxC,KAAKywB,QAAS,EAEV0gB,GACAnxC,KAAK8pC,SAASpB,GAAc1oC,MAAO,MAGpCA,MA0iDX6G,GAAM0qC,UAviDN,WACI,GAAiB,MAAbvxC,KAAKwwB,KACLxwB,KAAKioC,UAAUjoC,KAAKwwB,MAAM,GAAO,QAC9B,GAAuB,kBAAZxwB,KAAK8Q,GAAiB,CACpC,IAAI0gC,EAAQrJ,GAAiBvS,GAAa51B,KAAK8Q,IAClC,MAAT0gC,EACAxxC,KAAKioC,UAAUuJ,GAEfxxC,KAAKioC,UAAU,GAAG,GAG1B,OAAOjoC,MA6hDX6G,GAAM4qC,qBA1hDN,SAA8BjmB,GAC1B,QAAKxrB,KAAKovB,YAGV5D,EAAQA,EAAQ6Y,GAAY7Y,GAAOyc,YAAc,GAEzCjoC,KAAKioC,YAAczc,GAAS,KAAO,IAqhD/C3kB,GAAM6qC,MAlhDN,WACI,OACI1xC,KAAKioC,YAAcjoC,KAAK4I,QAAQgsB,MAAM,GAAGqT,aACzCjoC,KAAKioC,YAAcjoC,KAAK4I,QAAQgsB,MAAM,GAAGqT,aAghDjDphC,GAAMmpC,QAt/CN,WACI,QAAOhwC,KAAKovB,YAAapvB,KAAKywB,QAs/ClC5pB,GAAM8qC,YAn/CN,WACI,QAAO3xC,KAAKovB,WAAYpvB,KAAKywB,QAm/CjC5pB,GAAM8hC,MAAQA,GACd9hC,GAAM0/B,MAAQoC,GACd9hC,GAAM+qC,SAzFN,WACI,OAAO5xC,KAAKywB,OAAS,MAAQ,IAyFjC5pB,GAAMgrC,SAtFN,WACI,OAAO7xC,KAAKywB,OAAS,6BAA+B,IAsFxD5pB,GAAMirC,MAAQ5gB,EACV,kDACAgc,IAEJrmC,GAAMkwB,OAAS7F,EACX,mDACAgH,IAEJrxB,GAAMmgC,MAAQ9V,EACV,iDACA8H,IAEJnyB,GAAMkpC,KAAO7e,EACT,4GA3lDJ,SAAoB1F,EAAO2lB,GACvB,OAAa,MAAT3lB,GACqB,kBAAVA,IACPA,GAASA,GAGbxrB,KAAKioC,UAAUzc,EAAO2lB,GAEfnxC,OAECA,KAAKioC,eAolDrBphC,GAAMkrC,aAAe7gB,EACjB,2GAniDJ,WACI,IAAKvD,EAAY3tB,KAAKgyC,eAClB,OAAOhyC,KAAKgyC,cAGhB,IACItL,EADA90B,EAAI,GAcR,OAXAqe,EAAWre,EAAG5R,OACd4R,EAAIyzB,GAAczzB,IAEZglB,IACF8P,EAAQ90B,EAAE6e,OAAS3C,EAAUlc,EAAEglB,IAAMyN,GAAYzyB,EAAEglB,IACnD52B,KAAKgyC,cACDhyC,KAAKovB,WAtOjB,SAAuB6iB,EAAQC,EAAQC,GACnC,IAGI91C,EAHAgV,EAAM9Z,KAAKK,IAAIq6C,EAAO91C,OAAQ+1C,EAAO/1C,QACrCi2C,EAAa76C,KAAK6B,IAAI64C,EAAO91C,OAAS+1C,EAAO/1C,QAC7Ck2C,EAAQ,EAEZ,IAAKh2C,EAAI,EAAGA,EAAIgV,EAAKhV,KAEZ81C,GAAeF,EAAO51C,KAAO61C,EAAO71C,KACnC81C,GAAe9d,EAAM4d,EAAO51C,MAAQg4B,EAAM6d,EAAO71C,MAEnDg2C,IAGR,OAAOA,EAAQD,EAyNWE,CAAc1gC,EAAEglB,GAAI8P,EAAMxa,WAAa,GAE7DlsB,KAAKgyC,eAAgB,EAGlBhyC,KAAKgyC,iBAgiDhB,IAAIO,GAAU1gB,EAAO3uB,UAuCrB,SAASsvC,GAAM7uB,EAAQhc,EAAO8qC,EAAOC,GACjC,IAAI3kB,EAAS4R,KACT3a,EAAM8I,IAAY9sB,IAAI0xC,EAAQ/qC,GAClC,OAAOomB,EAAO0kB,GAAOztB,EAAKrB,GAG9B,SAASgvB,GAAehvB,EAAQhc,EAAO8qC,GAQnC,GAPIl8C,EAASotB,KACThc,EAAQgc,EACRA,OAASjX,GAGbiX,EAASA,GAAU,GAEN,MAAThc,EACA,OAAO6qC,GAAM7uB,EAAQhc,EAAO8qC,EAAO,SAGvC,IAAIp2C,EACAu2C,EAAM,GACV,IAAKv2C,EAAI,EAAGA,EAAI,GAAIA,IAChBu2C,EAAIv2C,GAAKm2C,GAAM7uB,EAAQtnB,EAAGo2C,EAAO,SAErC,OAAOG,EAWX,SAASC,GAAiBC,EAAcnvB,EAAQhc,EAAO8qC,GACvB,mBAAjBK,GACHv8C,EAASotB,KACThc,EAAQgc,EACRA,OAASjX,GAGbiX,EAASA,GAAU,KAGnBhc,EADAgc,EAASmvB,EAETA,GAAe,EAEXv8C,EAASotB,KACThc,EAAQgc,EACRA,OAASjX,GAGbiX,EAASA,GAAU,IAGvB,IAEItnB,EAFA0xB,EAAS4R,KACToT,EAAQD,EAAe/kB,EAAOuW,MAAM5K,IAAM,EAE1CkZ,EAAM,GAEV,GAAa,MAATjrC,EACA,OAAO6qC,GAAM7uB,GAAShc,EAAQorC,GAAS,EAAGN,EAAO,OAGrD,IAAKp2C,EAAI,EAAGA,EAAI,EAAGA,IACfu2C,EAAIv2C,GAAKm2C,GAAM7uB,GAAStnB,EAAI02C,GAAS,EAAGN,EAAO,OAEnD,OAAOG,EAxGXL,GAAQjV,SAj9IR,SAAkBx8B,EAAKiyB,EAAK0Q,GACxB,IAAItY,EAASnrB,KAAKgzC,UAAUlyC,IAAQd,KAAKgzC,UAAL,SACpC,OAAOxhB,EAAWrG,GAAUA,EAAOl1B,KAAK88B,EAAK0Q,GAAOtY,GAg9IxDonB,GAAQpf,eAt1IR,SAAwBryB,GACpB,IAAI6iB,EAAS3jB,KAAKizC,gBAAgBnyC,GAC9BoyC,EAAclzC,KAAKizC,gBAAgBnyC,EAAIohB,eAE3C,OAAIyB,IAAWuvB,EACJvvB,GAGX3jB,KAAKizC,gBAAgBnyC,GAAOoyC,EACvBv0B,MAAMwT,GACNjH,KAAI,SAAUioB,GACX,MACY,SAARA,GACQ,OAARA,GACQ,OAARA,GACQ,SAARA,EAEOA,EAAIxqC,MAAM,GAEdwqC,KAEV1sC,KAAK,IAEHzG,KAAKizC,gBAAgBnyC,KAg0IhCyxC,GAAQtf,YA3zIR,WACI,OAAOjzB,KAAKozC,cA2zIhBb,GAAQ7f,QArzIR,SAAiB/I,GACb,OAAO3pB,KAAKqzC,SAAS38C,QAAQ,KAAMizB,IAqzIvC4oB,GAAQjN,SAAWiI,GACnBgF,GAAQnE,WAAab,GACrBgF,GAAQpU,aAjyIR,SAAsBxU,EAAQ0kB,EAAexM,EAAQyR,GACjD,IAAInoB,EAASnrB,KAAKuzC,cAAc1R,GAChC,OAAOrQ,EAAWrG,GACZA,EAAOxB,EAAQ0kB,EAAexM,EAAQyR,GACtCnoB,EAAOz0B,QAAQ,MAAOizB,IA8xIhC4oB,GAAQiB,WA3xIR,SAAoBtuB,EAAMiG,GACtB,IAAIxH,EAAS3jB,KAAKuzC,cAAcruB,EAAO,EAAI,SAAW,QACtD,OAAOsM,EAAW7N,GAAUA,EAAOwH,GAAUxH,EAAOjtB,QAAQ,MAAOy0B,IA0xIvEonB,GAAQvxC,IA7iJR,SAAawN,GACT,IAAIxG,EAAM3L,EACV,IAAKA,KAAKmS,EACFgf,EAAWhf,EAAQnS,KAEfm1B,EADJxpB,EAAOwG,EAAOnS,IAEV2D,KAAK3D,GAAK2L,EAEVhI,KAAK,IAAM3D,GAAK2L,GAI5BhI,KAAK8/B,QAAUtxB,EAIfxO,KAAKitC,+BAAiC,IAAIhqB,QACrCjjB,KAAK+sC,wBAAwBjsB,QAAU9gB,KAAKgtC,cAAclsB,QACvD,IACA,UAAUA,SA2hJtByxB,GAAQ1G,KA1qBR,SAAoBjmC,EAAG+d,GACnB,IAAItnB,EACAyV,EACAiT,EACA8mB,EAAO7rC,KAAKyzC,OAAS9T,GAAU,MAAM8T,MACzC,IAAKp3C,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAAG,CACrC,cAAewvC,EAAKxvC,GAAGi0C,OACnB,IAAK,SAEDvrB,EAAOwI,EAAMse,EAAKxvC,GAAGi0C,OAAO3C,QAAQ,OACpC9B,EAAKxvC,GAAGi0C,MAAQvrB,EAAK8I,UAI7B,cAAege,EAAKxvC,GAAGk0C,OACnB,IAAK,YACD1E,EAAKxvC,GAAGk0C,MAAQ,IAChB,MACJ,IAAK,SAEDxrB,EAAOwI,EAAMse,EAAKxvC,GAAGk0C,OAAO5C,QAAQ,OAAO9f,UAC3Cge,EAAKxvC,GAAGk0C,MAAQxrB,EAAK8I,WAIjC,OAAOge,GAkpBX0G,GAAQ5F,UA/oBR,SAAyB0D,EAAS1sB,EAAQqK,GACtC,IAAI3xB,EACAyV,EAEAvP,EACAs9B,EACAiM,EAHAD,EAAO7rC,KAAK6rC,OAMhB,IAFAwE,EAAUA,EAAQnuB,cAEb7lB,EAAI,EAAGyV,EAAI+5B,EAAK1vC,OAAQE,EAAIyV,IAAKzV,EAKlC,GAJAkG,EAAOspC,EAAKxvC,GAAGkG,KAAK2f,cACpB2d,EAAOgM,EAAKxvC,GAAGwjC,KAAK3d,cACpB4pB,EAASD,EAAKxvC,GAAGyvC,OAAO5pB,cAEpB8L,EACA,OAAQrK,GACJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIkc,IAASwQ,EACT,OAAOxE,EAAKxvC,GAEhB,MAEJ,IAAK,OACD,GAAIkG,IAAS8tC,EACT,OAAOxE,EAAKxvC,GAEhB,MAEJ,IAAK,QACD,GAAIyvC,IAAWuE,EACX,OAAOxE,EAAKxvC,QAIrB,GAAI,CAACkG,EAAMs9B,EAAMiM,GAAQh1C,QAAQu5C,IAAY,EAChD,OAAOxE,EAAKxvC,IA2mBxBk2C,GAAQnN,gBAtmBR,SAA+BpW,EAAKnJ,GAChC,IAAI8qB,EAAM3hB,EAAIshB,OAASthB,EAAIuhB,MAAQ,GAAM,EACzC,YAAa7jC,IAATmZ,EACO0H,EAAMyB,EAAIshB,OAAOzqB,OAEjB0H,EAAMyB,EAAIshB,OAAOzqB,QAAUA,EAAOmJ,EAAIgZ,QAAU2I,GAkmB/D4B,GAAQ/G,cAjgBR,SAAuBtV,GAInB,OAHK1I,EAAWxtB,KAAM,mBAClByrC,GAAiBx1C,KAAK+J,MAEnBk2B,EAAWl2B,KAAKisC,eAAiBjsC,KAAK+rC,YA8fjDwG,GAAQ9F,cAzgBR,SAAuBvW,GAInB,OAHK1I,EAAWxtB,KAAM,mBAClByrC,GAAiBx1C,KAAK+J,MAEnBk2B,EAAWl2B,KAAKgsC,eAAiBhsC,KAAK+rC,YAsgBjDwG,GAAQ7F,gBA5fR,SAAyBxW,GAIrB,OAHK1I,EAAWxtB,KAAM,qBAClByrC,GAAiBx1C,KAAK+J,MAEnBk2B,EAAWl2B,KAAKksC,iBAAmBlsC,KAAK+rC,YA0fnDwG,GAAQxb,OAl9HR,SAAsBnxB,EAAG+d,GACrB,OAAK/d,EAKExO,EAAQ4I,KAAK2nC,SACd3nC,KAAK2nC,QAAQ/hC,EAAEgvB,SACf50B,KAAK2nC,SACA3nC,KAAK2nC,QAAQ+L,UAAYrc,IAAkBpM,KAAKtH,GAC3C,SACA,cACR/d,EAAEgvB,SAVCx9B,EAAQ4I,KAAK2nC,SACd3nC,KAAK2nC,QACL3nC,KAAK2nC,QAAL,YA+8Hd4K,GAAQzb,YAp8HR,SAA2BlxB,EAAG+d,GAC1B,OAAK/d,EAKExO,EAAQ4I,KAAK2zC,cACd3zC,KAAK2zC,aAAa/tC,EAAEgvB,SACpB50B,KAAK2zC,aACDtc,GAAiBpM,KAAKtH,GAAU,SAAW,cAC7C/d,EAAEgvB,SARCx9B,EAAQ4I,KAAK2zC,cACd3zC,KAAK2zC,aACL3zC,KAAK2zC,aAAL,YAi8HdpB,GAAQrb,YAz4HR,SAA2BO,EAAW9T,EAAQqK,GAC1C,IAAI3xB,EAAG02B,EAAKiD,EAEZ,GAAIh2B,KAAK4zC,kBACL,OAAOpc,GAAkBvhC,KAAK+J,KAAMy3B,EAAW9T,EAAQqK,GAY3D,IATKhuB,KAAK63B,eACN73B,KAAK63B,aAAe,GACpB73B,KAAK83B,iBAAmB,GACxB93B,KAAK+3B,kBAAoB,IAMxB17B,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBA02B,EAAMjF,EAAU,CAAC,IAAMzxB,IACnB2xB,IAAWhuB,KAAK83B,iBAAiBz7B,KACjC2D,KAAK83B,iBAAiBz7B,GAAK,IAAI4mB,OAC3B,IAAMjjB,KAAK+2B,OAAOhE,EAAK,IAAIr8B,QAAQ,IAAK,IAAM,IAC9C,KAEJsJ,KAAK+3B,kBAAkB17B,GAAK,IAAI4mB,OAC5B,IAAMjjB,KAAK82B,YAAY/D,EAAK,IAAIr8B,QAAQ,IAAK,IAAM,IACnD,MAGHs3B,GAAWhuB,KAAK63B,aAAax7B,KAC9B25B,EACI,IAAMh2B,KAAK+2B,OAAOhE,EAAK,IAAM,KAAO/yB,KAAK82B,YAAY/D,EAAK,IAC9D/yB,KAAK63B,aAAax7B,GAAK,IAAI4mB,OAAO+S,EAAMt/B,QAAQ,IAAK,IAAK,MAI1Ds3B,GACW,SAAXrK,GACA3jB,KAAK83B,iBAAiBz7B,GAAG4uB,KAAKwM,GAE9B,OAAOp7B,EACJ,GACH2xB,GACW,QAAXrK,GACA3jB,KAAK+3B,kBAAkB17B,GAAG4uB,KAAKwM,GAE/B,OAAOp7B,EACJ,IAAK2xB,GAAUhuB,KAAK63B,aAAax7B,GAAG4uB,KAAKwM,GAC5C,OAAOp7B,IA01HnBk2C,GAAQtb,YAxxHR,SAAqBf,GACjB,OAAIl2B,KAAK4zC,mBACApmB,EAAWxtB,KAAM,iBAClBm4B,GAAmBliC,KAAK+J,MAExBk2B,EACOl2B,KAAK24B,mBAEL34B,KAAKy4B,eAGXjL,EAAWxtB,KAAM,kBAClBA,KAAKy4B,aAAelB,IAEjBv3B,KAAK24B,oBAAsBzC,EAC5Bl2B,KAAK24B,mBACL34B,KAAKy4B,eAywHnB8Z,GAAQvb,iBA7yHR,SAA0Bd,GACtB,OAAIl2B,KAAK4zC,mBACApmB,EAAWxtB,KAAM,iBAClBm4B,GAAmBliC,KAAK+J,MAExBk2B,EACOl2B,KAAK44B,wBAEL54B,KAAK04B,oBAGXlL,EAAWxtB,KAAM,uBAClBA,KAAK04B,kBAAoBpB,IAEtBt3B,KAAK44B,yBAA2B1C,EACjCl2B,KAAK44B,wBACL54B,KAAK04B,oBA8xHnB6Z,GAAQjtB,KArhHR,SAAoByN,GAChB,OAAOmH,GAAWnH,EAAK/yB,KAAKskC,MAAM5K,IAAK15B,KAAKskC,MAAM3K,KAAKrU,MAqhH3DitB,GAAQsB,eAzgHR,WACI,OAAO7zC,KAAKskC,MAAM3K,KAygHtB4Y,GAAQuB,eA9gHR,WACI,OAAO9zC,KAAKskC,MAAM5K,KA+gHtB6Y,GAAQ5X,SAz5GR,SAAwB/0B,EAAG+d,GACvB,IAAIgX,EAAWvjC,EAAQ4I,KAAK+zC,WACtB/zC,KAAK+zC,UACL/zC,KAAK+zC,UACDnuC,IAAW,IAANA,GAAc5F,KAAK+zC,UAAUL,SAASzoB,KAAKtH,GAC1C,SACA,cAEhB,OAAa,IAAN/d,EACD20B,GAAcI,EAAU36B,KAAKskC,MAAM5K,KACnC9zB,EACA+0B,EAAS/0B,EAAEyf,OACXsV,GA84GV4X,GAAQ9X,YAn4GR,SAA2B70B,GACvB,OAAa,IAANA,EACD20B,GAAcv6B,KAAKg0C,aAAch0C,KAAKskC,MAAM5K,KAC5C9zB,EACA5F,KAAKg0C,aAAapuC,EAAEyf,OACpBrlB,KAAKg0C,cA+3GfzB,GAAQ7X,cA54GR,SAA6B90B,GACzB,OAAa,IAANA,EACD20B,GAAcv6B,KAAKi0C,eAAgBj0C,KAAKskC,MAAM5K,KAC9C9zB,EACA5F,KAAKi0C,eAAeruC,EAAEyf,OACtBrlB,KAAKi0C,gBAw4Gf1B,GAAQxX,cApzGR,SAA6BQ,EAAa5X,EAAQqK,GAC9C,IAAI3xB,EAAG02B,EAAKiD,EAEZ,GAAIh2B,KAAKk0C,oBACL,OAAO5Y,GAAoBrlC,KAAK+J,KAAMu7B,EAAa5X,EAAQqK,GAU/D,IAPKhuB,KAAKw7B,iBACNx7B,KAAKw7B,eAAiB,GACtBx7B,KAAK07B,kBAAoB,GACzB17B,KAAKy7B,oBAAsB,GAC3Bz7B,KAAKm0C,mBAAqB,IAGzB93C,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BA02B,EAAMjF,EAAU,CAAC,IAAM,IAAIzI,IAAIhpB,GAC3B2xB,IAAWhuB,KAAKm0C,mBAAmB93C,KACnC2D,KAAKm0C,mBAAmB93C,GAAK,IAAI4mB,OAC7B,IAAMjjB,KAAK26B,SAAS5H,EAAK,IAAIr8B,QAAQ,IAAK,QAAU,IACpD,KAEJsJ,KAAKy7B,oBAAoBp/B,GAAK,IAAI4mB,OAC9B,IAAMjjB,KAAK06B,cAAc3H,EAAK,IAAIr8B,QAAQ,IAAK,QAAU,IACzD,KAEJsJ,KAAK07B,kBAAkBr/B,GAAK,IAAI4mB,OAC5B,IAAMjjB,KAAKy6B,YAAY1H,EAAK,IAAIr8B,QAAQ,IAAK,QAAU,IACvD,MAGHsJ,KAAKw7B,eAAen/B,KACrB25B,EACI,IACAh2B,KAAK26B,SAAS5H,EAAK,IACnB,KACA/yB,KAAK06B,cAAc3H,EAAK,IACxB,KACA/yB,KAAKy6B,YAAY1H,EAAK,IAC1B/yB,KAAKw7B,eAAen/B,GAAK,IAAI4mB,OAAO+S,EAAMt/B,QAAQ,IAAK,IAAK,MAI5Ds3B,GACW,SAAXrK,GACA3jB,KAAKm0C,mBAAmB93C,GAAG4uB,KAAKsQ,GAEhC,OAAOl/B,EACJ,GACH2xB,GACW,QAAXrK,GACA3jB,KAAKy7B,oBAAoBp/B,GAAG4uB,KAAKsQ,GAEjC,OAAOl/B,EACJ,GACH2xB,GACW,OAAXrK,GACA3jB,KAAK07B,kBAAkBr/B,GAAG4uB,KAAKsQ,GAE/B,OAAOl/B,EACJ,IAAK2xB,GAAUhuB,KAAKw7B,eAAen/B,GAAG4uB,KAAKsQ,GAC9C,OAAOl/B,IAwvGnBk2C,GAAQzX,cA3sGR,SAAuB5E,GACnB,OAAIl2B,KAAKk0C,qBACA1mB,EAAWxtB,KAAM,mBAClB27B,GAAqB1lC,KAAK+J,MAE1Bk2B,EACOl2B,KAAKm8B,qBAELn8B,KAAKg8B,iBAGXxO,EAAWxtB,KAAM,oBAClBA,KAAKg8B,eAAiBb,IAEnBn7B,KAAKm8B,sBAAwBjG,EAC9Bl2B,KAAKm8B,qBACLn8B,KAAKg8B,iBA4rGnBuW,GAAQ1X,mBAxrGR,SAA4B3E,GACxB,OAAIl2B,KAAKk0C,qBACA1mB,EAAWxtB,KAAM,mBAClB27B,GAAqB1lC,KAAK+J,MAE1Bk2B,EACOl2B,KAAKo8B,0BAELp8B,KAAKi8B,sBAGXzO,EAAWxtB,KAAM,yBAClBA,KAAKi8B,oBAAsBb,IAExBp7B,KAAKo8B,2BAA6BlG,EACnCl2B,KAAKo8B,0BACLp8B,KAAKi8B,sBAyqGnBsW,GAAQ3X,iBArqGR,SAA0B1E,GACtB,OAAIl2B,KAAKk0C,qBACA1mB,EAAWxtB,KAAM,mBAClB27B,GAAqB1lC,KAAK+J,MAE1Bk2B,EACOl2B,KAAKq8B,wBAELr8B,KAAKk8B,oBAGX1O,EAAWxtB,KAAM,uBAClBA,KAAKk8B,kBAAoBb,IAEtBr7B,KAAKq8B,yBAA2BnG,EACjCl2B,KAAKq8B,wBACLr8B,KAAKk8B,oBAupGnBqW,GAAQzV,KAr+FR,SAAoBtR,GAGhB,MAAgD,OAAxCA,EAAQ,IAAI3H,cAAcuwB,OAAO,IAm+F7C7B,GAAQtjB,SAz9FR,SAAwBhJ,EAAOuW,EAAS6X,GACpC,OAAIpuB,EAAQ,GACDouB,EAAU,KAAO,KAEjBA,EAAU,KAAO,MAijGhC3U,GAAmB,KAAM,CACrBmM,KAAM,CACF,CACIyE,MAAO,aACPC,MAAO,IACPvI,OAAQ,EACRzlC,KAAM,cACNupC,OAAQ,KACRjM,KAAM,MAEV,CACIyQ,MAAO,aACPC,OAAO,IACPvI,OAAQ,EACRzlC,KAAM,gBACNupC,OAAQ,KACRjM,KAAM,OAGd3B,uBAAwB,uBACxBxL,QAAS,SAAU/I,GACf,IAAIlnB,EAAIknB,EAAS,GAWjB,OAAOA,GATgC,IAA/B0K,EAAO1K,EAAS,IAAO,IACjB,KACM,IAANlnB,EACA,KACM,IAANA,EACA,KACM,IAANA,EACA,KACA,SAOtB8qB,EAAM0d,KAAO/Z,EACT,wDACAwO,IAEJnS,EAAM+mB,SAAWpjB,EACb,gEACAyO,IAGJ,IAAI4U,GAAUh9C,KAAK6B,IAmBnB,SAASo7C,GAAczN,EAAUvb,EAAO31B,EAAO2zC,GAC3C,IAAI9C,EAAQoC,GAAetd,EAAO31B,GAMlC,OAJAkxC,EAASU,eAAiB+B,EAAY9C,EAAMe,cAC5CV,EAASW,OAAS8B,EAAY9C,EAAMgB,MACpCX,EAASY,SAAW6B,EAAY9C,EAAMiB,QAE/BZ,EAASc,UAapB,SAAS4M,GAAQ9qB,GACb,OAAIA,EAAS,EACFpyB,KAAKU,MAAM0xB,GAEXpyB,KAAKc,KAAKsxB,GA2DzB,SAAS+qB,GAAarN,GAGlB,OAAe,KAAPA,EAAe,OAG3B,SAASsN,GAAa5d,GAElB,OAAiB,OAATA,EAAmB,KA4D/B,SAAS6d,GAAOC,GACZ,OAAO,WACH,OAAO70C,KAAK80C,GAAGD,IAIvB,IAAIE,GAAiBH,GAAO,MACxBI,GAAYJ,GAAO,KACnBK,GAAYL,GAAO,KACnBM,GAAUN,GAAO,KACjBO,GAASP,GAAO,KAChBQ,GAAUR,GAAO,KACjBS,GAAWT,GAAO,KAClBU,GAAaV,GAAO,KACpBW,GAAUX,GAAO,KAWrB,SAASY,GAAWjzC,GAChB,OAAO,WACH,OAAOvC,KAAKovB,UAAYpvB,KAAK4nC,MAAMrlC,GAAQstB,KAInD,IAAIyX,GAAekO,GAAW,gBAC1B7Y,GAAU6Y,GAAW,WACrBhZ,GAAUgZ,GAAW,WACrBvvB,GAAQuvB,GAAW,SACnBnO,GAAOmO,GAAW,QAClBze,GAASye,GAAW,UACpBxO,GAAQwO,GAAW,SAMnBz9C,GAAQR,KAAKQ,MACb09C,GAAa,CACTnX,GAAI,GACJrjC,EAAG,GACH2K,EAAG,GACHszB,EAAG,GACH/gC,EAAG,GACHumC,EAAG,KACHvF,EAAG,IAIX,SAASuc,GAAkB7T,EAAQlY,EAAQ0kB,EAAeiF,EAAUvlB,GAChE,OAAOA,EAAOoQ,aAAaxU,GAAU,IAAK0kB,EAAexM,EAAQyR,GAoGrE,IAAIqC,GAAQp+C,KAAK6B,IAEjB,SAAS8uC,GAAK5tC,GACV,OAAQA,EAAI,IAAMA,EAAI,KAAOA,EAGjC,SAASs7C,KAQL,IAAK51C,KAAKovB,UACN,OAAOpvB,KAAK4yB,aAAaK,cAG7B,IAGIuJ,EACAvW,EACA+gB,EACA/rC,EAEA46C,EACAC,EACAC,EACAC,EAXArZ,EAAUgZ,GAAM31C,KAAKynC,eAAiB,IACtCJ,EAAOsO,GAAM31C,KAAK0nC,OAClB3Q,EAAS4e,GAAM31C,KAAK2nC,SAKpBsO,EAAQj2C,KAAKg1C,YAMjB,OAAKiB,GAOLzZ,EAAUpI,EAASuI,EAAU,IAC7B1W,EAAQmO,EAASoI,EAAU,IAC3BG,GAAW,GACXH,GAAW,GAGXwK,EAAQ5S,EAAS2C,EAAS,IAC1BA,GAAU,GAGV97B,EAAI0hC,EAAUA,EAAQuZ,QAAQ,GAAGx/C,QAAQ,SAAU,IAAM,GAEzDm/C,EAAYI,EAAQ,EAAI,IAAM,GAC9BH,EAAS5N,GAAKloC,KAAK2nC,WAAaO,GAAK+N,GAAS,IAAM,GACpDF,EAAW7N,GAAKloC,KAAK0nC,SAAWQ,GAAK+N,GAAS,IAAM,GACpDD,EAAU9N,GAAKloC,KAAKynC,iBAAmBS,GAAK+N,GAAS,IAAM,GAGvDJ,EACA,KACC7O,EAAQ8O,EAAS9O,EAAQ,IAAM,KAC/BjQ,EAAS+e,EAAS/e,EAAS,IAAM,KACjCsQ,EAAO0O,EAAW1O,EAAO,IAAM,KAC/BphB,GAASuW,GAAWG,EAAU,IAAM,KACpC1W,EAAQ+vB,EAAU/vB,EAAQ,IAAM,KAChCuW,EAAUwZ,EAAUxZ,EAAU,IAAM,KACpCG,EAAUqZ,EAAU/6C,EAAI,IAAM,KA9BxB,MAkCf,IAAIk7C,GAAUrP,GAAS5jC,UAwGvB,OAtGAizC,GAAQ/mB,QA/3ER,WACI,OAAOpvB,KAAKqvB,UA+3EhB8mB,GAAQ/8C,IA3YR,WACI,IAAIiI,EAAOrB,KAAK4nC,MAahB,OAXA5nC,KAAKynC,cAAgB8M,GAAQv0C,KAAKynC,eAClCznC,KAAK0nC,MAAQ6M,GAAQv0C,KAAK0nC,OAC1B1nC,KAAK2nC,QAAU4M,GAAQv0C,KAAK2nC,SAE5BtmC,EAAKimC,aAAeiN,GAAQlzC,EAAKimC,cACjCjmC,EAAKs7B,QAAU4X,GAAQlzC,EAAKs7B,SAC5Bt7B,EAAKm7B,QAAU+X,GAAQlzC,EAAKm7B,SAC5Bn7B,EAAK4kB,MAAQsuB,GAAQlzC,EAAK4kB,OAC1B5kB,EAAK01B,OAASwd,GAAQlzC,EAAK01B,QAC3B11B,EAAK2lC,MAAQuN,GAAQlzC,EAAK2lC,OAEnBhnC,MA8XXm2C,GAAQ7sC,IAhXR,SAAekiB,EAAO31B,GAClB,OAAO2+C,GAAcx0C,KAAMwrB,EAAO31B,EAAO,IAgX7CsgD,GAAQrM,SA5WR,SAAoBte,EAAO31B,GACvB,OAAO2+C,GAAcx0C,KAAMwrB,EAAO31B,GAAQ,IA4W9CsgD,GAAQrB,GA/RR,SAAYnhB,GACR,IAAK3zB,KAAKovB,UACN,OAAOS,IAEX,IAAIwX,EACAtQ,EACAuQ,EAAetnC,KAAKynC,cAIxB,GAAc,WAFd9T,EAAQD,EAAeC,KAEY,YAAVA,GAAiC,SAAVA,EAG5C,OAFA0T,EAAOrnC,KAAK0nC,MAAQJ,EAAe,MACnCvQ,EAAS/2B,KAAK2nC,QAAU+M,GAAarN,GAC7B1T,GACJ,IAAK,QACD,OAAOoD,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,QAKxB,OADAsQ,EAAOrnC,KAAK0nC,MAAQnwC,KAAKQ,MAAM48C,GAAa30C,KAAK2nC,UACzChU,GACJ,IAAK,OACD,OAAO0T,EAAO,EAAIC,EAAe,OACrC,IAAK,MACD,OAAOD,EAAOC,EAAe,MACjC,IAAK,OACD,OAAc,GAAPD,EAAYC,EAAe,KACtC,IAAK,SACD,OAAc,KAAPD,EAAcC,EAAe,IACxC,IAAK,SACD,OAAc,MAAPD,EAAeC,EAAe,IAEzC,IAAK,cACD,OAAO/vC,KAAKU,MAAa,MAAPovC,GAAgBC,EACtC,QACI,MAAM,IAAInxC,MAAM,gBAAkBw9B,KAyPlDwiB,GAAQpB,eAAiBA,GACzBoB,GAAQnB,UAAYA,GACpBmB,GAAQlB,UAAYA,GACpBkB,GAAQjB,QAAUA,GAClBiB,GAAQhB,OAASA,GACjBgB,GAAQf,QAAUA,GAClBe,GAAQd,SAAWA,GACnBc,GAAQb,WAAaA,GACrBa,GAAQZ,QAAUA,GAClBY,GAAQtoB,QA5PR,WACI,OAAK7tB,KAAKovB,UAINpvB,KAAKynC,cACQ,MAAbznC,KAAK0nC,MACJ1nC,KAAK2nC,QAAU,GAAM,OACK,QAA3BtT,EAAMr0B,KAAK2nC,QAAU,IANd9X,KA2PfsmB,GAAQtO,QA5WR,WACI,IAIIlL,EACAH,EACAvW,EACA+gB,EACAoP,EARA9O,EAAetnC,KAAKynC,cACpBJ,EAAOrnC,KAAK0nC,MACZ3Q,EAAS/2B,KAAK2nC,QACdtmC,EAAOrB,KAAK4nC,MAgDhB,OArCSN,GAAgB,GAAKD,GAAQ,GAAKtQ,GAAU,GAC5CuQ,GAAgB,GAAKD,GAAQ,GAAKtQ,GAAU,IAGjDuQ,GAAuD,MAAvCmN,GAAQE,GAAa5d,GAAUsQ,GAC/CA,EAAO,EACPtQ,EAAS,GAKb11B,EAAKimC,aAAeA,EAAe,IAEnC3K,EAAUvI,EAASkT,EAAe,KAClCjmC,EAAKs7B,QAAUA,EAAU,GAEzBH,EAAUpI,EAASuI,EAAU,IAC7Bt7B,EAAKm7B,QAAUA,EAAU,GAEzBvW,EAAQmO,EAASoI,EAAU,IAC3Bn7B,EAAK4kB,MAAQA,EAAQ,GAErBohB,GAAQjT,EAASnO,EAAQ,IAGzBmwB,EAAiBhiB,EAASsgB,GAAarN,IACvCtQ,GAAUqf,EACV/O,GAAQoN,GAAQE,GAAayB,IAG7BpP,EAAQ5S,EAAS2C,EAAS,IAC1BA,GAAU,GAEV11B,EAAKgmC,KAAOA,EACZhmC,EAAK01B,OAASA,EACd11B,EAAK2lC,MAAQA,EAENhnC,MAyTXm2C,GAAQvtC,MAlOR,WACI,OAAOkgC,GAAe9oC,OAkO1Bm2C,GAAQj1C,IA/NR,SAAeyyB,GAEX,OADAA,EAAQD,EAAeC,GAChB3zB,KAAKovB,UAAYpvB,KAAK2zB,EAAQ,OAAS9D,KA8NlDsmB,GAAQ7O,aAAeA,GACvB6O,GAAQxZ,QAAUA,GAClBwZ,GAAQ3Z,QAAUA,GAClB2Z,GAAQlwB,MAAQA,GAChBkwB,GAAQ9O,KAAOA,GACf8O,GAAQhP,MAlNR,WACI,OAAO/S,EAASp0B,KAAKqnC,OAAS,IAkNlC8O,GAAQpf,OAASA,GACjBof,GAAQnP,MAAQA,GAChBmP,GAAQ7H,SAlIR,SAAkB+H,EAAeC,GAC7B,IAAKt2C,KAAKovB,UACN,OAAOpvB,KAAK4yB,aAAaK,cAG7B,IAEIlF,EACA5C,EAHAorB,GAAa,EACbC,EAAKf,GAyBT,MArB6B,kBAAlBY,IACPC,EAAgBD,EAChBA,GAAgB,GAES,mBAAlBA,IACPE,EAAaF,GAEY,kBAAlBC,IACPE,EAAK9zC,OAAOW,OAAO,GAAIoyC,GAAYa,GACZ,MAAnBA,EAAcr7C,GAAiC,MAApBq7C,EAAchY,KACzCkY,EAAGlY,GAAKgY,EAAcr7C,EAAI,IAIlC8yB,EAAS/tB,KAAK4yB,aACdzH,EAxFJ,SAAwBsrB,EAAgBpI,EAAeoH,EAAY1nB,GAC/D,IAAIgZ,EAAW+B,GAAe2N,GAAgBr9C,MAC1CujC,EAAU5kC,GAAMgvC,EAAS+N,GAAG,MAC5BtY,EAAUzkC,GAAMgvC,EAAS+N,GAAG,MAC5B7uB,EAAQluB,GAAMgvC,EAAS+N,GAAG,MAC1BzN,EAAOtvC,GAAMgvC,EAAS+N,GAAG,MACzB/d,EAASh/B,GAAMgvC,EAAS+N,GAAG,MAC3B3N,EAAQpvC,GAAMgvC,EAAS+N,GAAG,MAC1B9N,EAAQjvC,GAAMgvC,EAAS+N,GAAG,MAC1B/9C,EACK4lC,GAAW8Y,EAAWnX,IAAM,CAAC,IAAK3B,IAClCA,EAAU8Y,EAAWx6C,GAAK,CAAC,KAAM0hC,IACjCH,GAAW,GAAK,CAAC,MACjBA,EAAUiZ,EAAW7vC,GAAK,CAAC,KAAM42B,IACjCvW,GAAS,GAAK,CAAC,MACfA,EAAQwvB,EAAWvc,GAAK,CAAC,KAAMjT,IAC/BohB,GAAQ,GAAK,CAAC,MACdA,EAAOoO,EAAWt9C,GAAK,CAAC,KAAMkvC,GAgBvC,OAdoB,MAAhBoO,EAAW/W,IACX3nC,EACIA,GACCowC,GAAS,GAAK,CAAC,MACfA,EAAQsO,EAAW/W,GAAK,CAAC,KAAMyI,KAExCpwC,EAAIA,GACCggC,GAAU,GAAK,CAAC,MAChBA,EAAS0e,EAAWtc,GAAK,CAAC,KAAMpC,IAChCiQ,GAAS,GAAK,CAAC,MAAS,CAAC,KAAMA,IAElC,GAAKqH,EACPt3C,EAAE,IAAM0/C,EAAiB,EACzB1/C,EAAE,GAAKg3B,EACA2nB,GAAkBjyC,MAAM,KAAM1M,GAuD5B2/C,CAAe12C,MAAOu2C,EAAYC,EAAIzoB,GAE3CwoB,IACAprB,EAAS4C,EAAOylB,YAAYxzC,KAAMmrB,IAG/B4C,EAAOqgB,WAAWjjB,IAoG7BgrB,GAAQzG,YAAckG,GACtBO,GAAQngD,SAAW4/C,GACnBO,GAAQjG,OAAS0F,GACjBO,GAAQpoB,OAASA,GACjBooB,GAAQvjB,WAAaA,GAErBujB,GAAQQ,YAAczlB,EAClB,sFACA0kB,IAEJO,GAAQlL,KAAOA,GAIf1Y,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1BwD,GAAc,IAAKJ,IACnBI,GAAc,IA9tJO,wBA+tJrBS,GAAc,KAAK,SAAUhL,EAAOT,EAAOvc,GACvCA,EAAOmC,GAAK,IAAI+T,KAAyB,IAApBoE,WAAW0C,OAEpCgL,GAAc,KAAK,SAAUhL,EAAOT,EAAOvc,GACvCA,EAAOmC,GAAK,IAAI+T,KAAK2P,EAAM7I,OAK/B+B,EAAMqpB,QAAU,SA/9KZvpB,EAi+KYgX,GAEhB9W,EAAMhf,GAAK1H,GACX0mB,EAAM31B,IAv/EN,WACI,IAAI2O,EAAO,GAAGoC,MAAM1S,KAAKuN,UAAW,GAEpC,OAAOojC,GAAO,WAAYrgC,IAq/E9BgnB,EAAM11B,IAl/EN,WACI,IAAI0O,EAAO,GAAGoC,MAAM1S,KAAKuN,UAAW,GAEpC,OAAOojC,GAAO,UAAWrgC,IAg/E7BgnB,EAAMkW,IA7+EI,WACN,OAAO/e,KAAK+e,IAAM/e,KAAK+e,OAAS,IAAI/e,MA6+ExC6I,EAAMvI,IAAM8I,EACZP,EAAM4iB,KA1oBN,SAAoB3kB,GAChB,OAAO6Y,GAAoB,IAAR7Y,IA0oBvB+B,EAAMwJ,OAlhBN,SAAoBpT,EAAQhc,GACxB,OAAOgrC,GAAehvB,EAAQhc,EAAO,WAkhBzC4lB,EAAMp2B,OAASA,EACfo2B,EAAMQ,OAAS2R,GACfnS,EAAMsc,QAAUja,EAChBrC,EAAMwZ,SAAW+B,GACjBvb,EAAMuD,SAAWA,EACjBvD,EAAMoN,SAhhBN,SAAsBmY,EAAcnvB,EAAQhc,GACxC,OAAOkrC,GAAiBC,EAAcnvB,EAAQhc,EAAO,aAghBzD4lB,EAAMgkB,UA9oBN,WACI,OAAOlN,GAAY5gC,MAAM,KAAMD,WAAW+tC,aA8oB9ChkB,EAAMqF,WAAa+M,GACnBpS,EAAMua,WAAaA,GACnBva,EAAMuJ,YAxhBN,SAAyBnT,EAAQhc,GAC7B,OAAOgrC,GAAehvB,EAAQhc,EAAO,gBAwhBzC4lB,EAAMkN,YA7gBN,SAAyBqY,EAAcnvB,EAAQhc,GAC3C,OAAOkrC,GAAiBC,EAAcnvB,EAAQhc,EAAO,gBA6gBzD4lB,EAAMqS,aAAeA,GACrBrS,EAAMspB,aAn4GN,SAAsBt0C,EAAMiM,GACxB,GAAc,MAAVA,EAAgB,CAChB,IAAIuf,EACA+oB,EACAnlB,EAAe0L,GAEE,MAAjB0B,GAAQx8B,IAA+C,MAA9Bw8B,GAAQx8B,GAAMw9B,aAEvChB,GAAQx8B,GAAMvB,IAAI0wB,EAAaqN,GAAQx8B,GAAMu9B,QAAStxB,KAIrC,OADjBsoC,EAAYxX,GAAW/8B,MAEnBovB,EAAemlB,EAAUhX,SAE7BtxB,EAASkjB,EAAaC,EAAcnjB,GACnB,MAAbsoC,IAIAtoC,EAAOqxB,KAAOt9B,IAElBwrB,EAAS,IAAI8D,EAAOrjB,IACbuxB,aAAehB,GAAQx8B,GAC9Bw8B,GAAQx8B,GAAQwrB,GAIpB2R,GAAmBn9B,QAGE,MAAjBw8B,GAAQx8B,KAC0B,MAA9Bw8B,GAAQx8B,GAAMw9B,cACdhB,GAAQx8B,GAAQw8B,GAAQx8B,GAAMw9B,aAC1Bx9B,IAASm9B,MACTA,GAAmBn9B,IAEC,MAAjBw8B,GAAQx8B,WACRw8B,GAAQx8B,IAI3B,OAAOw8B,GAAQx8B,IA01GnBgrB,EAAMwR,QA/zGN,WACI,OAAOx3B,EAAKw3B,KA+zGhBxR,EAAMmN,cArhBN,SAA2BoY,EAAcnvB,EAAQhc,GAC7C,OAAOkrC,GAAiBC,EAAcnvB,EAAQhc,EAAO,kBAqhBzD4lB,EAAMmG,eAAiBA,EACvBnG,EAAMwpB,qBAtNN,SAAoCC,GAChC,YAAyBtqC,IAArBsqC,EACOj/C,GAEqB,oBAArBi/C,IACPj/C,GAAQi/C,GACD,IAiNfzpB,EAAM0pB,sBA3MN,SAAqCC,EAAWC,GAC5C,YAA8BzqC,IAA1B+oC,GAAWyB,UAGDxqC,IAAVyqC,EACO1B,GAAWyB,IAEtBzB,GAAWyB,GAAaC,EACN,MAAdD,IACAzB,GAAWnX,GAAK6Y,EAAQ,IAErB,KAiMX5pB,EAAMqgB,eAr5DN,SAA2BwJ,EAAU3T,GACjC,IAAIve,EAAOkyB,EAASlyB,KAAKue,EAAK,QAAQ,GACtC,OAAOve,GAAQ,EACT,WACAA,GAAQ,EACR,WACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,WACA,YAw4DVqI,EAAMrqB,UAAY2D,GAGlB0mB,EAAM8pB,UAAY,CACdC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnBC,KAAM,aACNC,KAAM,QACNC,aAAc,WACdC,QAAS,eACTC,KAAM,aACNC,MAAO,WAGJvqB,EA1hLyEwqB,K,mDCCpF,scA+BM,SAAUC,EAAajtB,GAC5B,OAAO,SAACvsB,GAGP,IAFA,IAAMrC,EAAS4uB,EAAM5uB,OAEZE,EAAI,EAAGA,EAAIF,GACdqC,EAAKusB,EAAM1uB,MADaA,KAY1B,SAAUF,EAAUiL,GACzB,IAAI6wC,EAAM,EAOV,OALA7wC,GAAK,SAACtC,GAEL,QADEmzC,GACK,KAGDA,EAOF,SAAU/rB,EAAW9kB,GAC1B,IAAM+jB,EAAmB,GAOzB,OALA/jB,GAAK,SAACvR,GAEL,OADAs1B,EAAO3sB,KAAK3I,IACL,KAGDs1B,EASF,SAAUE,EAAgBjkB,EAAmBmH,GAClDnH,EAAKmH,GASA,SAAUrH,EAAQE,EAAmBmH,GAC1CnH,GAAK,SAACvR,GAEL,OADA0Y,EAAG1Y,IACI,KAUH,SAAU2iC,EAAQpxB,EAAmBmH,GAC1C,OAAOypC,EAAU9rB,EAAQ9kB,GAAMoxB,KAAKjqB,IAS/B,SAAU2c,EAAU9jB,EAAmBmH,GAC5C,OAAO,SAAC/P,GAAS,OAAA4I,GAAK,SAACvR,GAAU,OAAA2I,EAAK+P,EAAL,QAwB5B,SAAUrI,I,IAAU,sDACzB,OAAO,SAAC1H,GAOP,IANA,IAAI05C,GAAK,EAEHC,EAAQ,SAACtiD,GAAa,OAACqiD,EAAK15C,EAAN,IAEtBrC,EAASoK,EAAKpK,OAEXE,EAAI,EAAGA,EAAIF,IACnBoK,EAAKlK,GAAG87C,GAEHD,KAHwB77C,KAc1B,SAAU+7C,EAAWhxC,GAC1B,OAAO,SAAC5I,GACP,IAAI05C,GAAK,EAEHC,EAAQ,SAACtiD,GAAa,OAACqiD,EAAK15C,EAAN,IAE5B4I,GAAK,SAACvR,GAEL,OADAA,EAAMsiD,GACCD,MAWJ,SAAUG,EAAWjxC,GAC1B,OAAO,SAAC5I,GACP,IAAImJ,EAAQ,EAEZP,GAAK,SAACvR,GAAU,OAAA2I,EAAK,CAACmJ,IAAN,QAkCZ,SAAU2wC,EAAQlxC,EAAmBolB,GAC1C,IAAIrB,EAYJ,OAVA/jB,GAAK,SAACvR,GACL,OAAI22B,EAAQ32B,KACXs1B,EAASt1B,GACF,MAOFs1B,EAiCF,SAAUotB,EAAYnxC,EAAmBolB,GAC9C,IAAIrB,GAAS,EAYb,OAVA/jB,GAAK,SAACvR,GACL,OAAI22B,EAAQ32B,KACXs1B,GAAS,GACF,MAOFA,EAkHR,iBAeC,WAAYqtB,EAAmBr1C,GARxB,KAAAs1C,gBAA0B,EAShCz4C,KAAKw4C,KAAOA,EACZx4C,KAAK04C,QAAUv1C,EACfnD,KAAK24C,QAoDP,OAjDC,YAAAA,MAAA,WACC34C,KAAK44C,UAAY1sB,EAAQlsB,KAAKw4C,KAAKnzC,aAGpC,YAAAkE,MAAA,WACCvJ,KAAK44C,UAAUz8C,OAAS,GAGzB,YAAA08C,SAAA,WACC,OAAO74C,KAAK84C,WAAW,IAGxB,YAAAC,QAAA,WACC,OAAO/4C,KAAK84C,WAAW94C,KAAK44C,UAAUz8C,OAAS,IAGhD,YAAAm8C,KAAA,SAAK/pC,GACJ,IAAI5G,EAAgB,IAAiB3H,KAAK44C,UAAWrqC,GAErD,IAAe,IAAX5G,EAAc,CACjB,IAAIwiC,EAAOnqC,KAAK44C,UAAUjxC,GAG1B,OADA,IAAc3H,KAAK44C,UAAWzO,GACvBA,EAGP,OAAOnqC,KAAK+4C,WAId,YAAAC,WAAA,SAAW7O,GACV,OAAO,IAAcnqC,KAAK44C,UAAWzO,IAG5B,YAAA2O,WAAV,SAAqBnxC,GACpB,GAAIA,GAAS,GAAKA,EAAQ3H,KAAK44C,UAAUz8C,OAAQ,CAChD,IAAIguC,EAAOnqC,KAAK44C,UAAUjxC,GAG1B,OADA,IAAc3H,KAAK44C,UAAWzO,GACvBA,EAED,GAAInqC,KAAKy4C,eACf,OAAOz4C,KAAK04C,WAId,YAAArzC,SAAA,WACC,OAAO2yC,EAAUh4C,KAAK44C,YAExB,EAtEA,I,6BC7YA,SAASK,EAAkBz3C,EAAQ+Y,GACjC,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CACrC,IAAI68C,EAAa3+B,EAAMle,GACvB68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EACjDmwC,EAAWhwC,cAAe,EACtB,UAAWgwC,IAAYA,EAAWjwC,UAAW,GACjDvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAInC,SAASC,EAAarsB,EAAassB,EAAYC,GAG5D,OAFID,GAAYH,EAAkBnsB,EAAY5pB,UAAWk2C,GACrDC,GAAaJ,EAAkBnsB,EAAausB,GACzCvsB,EAbT,mC,6BCAA,sGAmCA,iBAYC,WAAYrL,GACXzhB,KAAKs5C,OAAS73B,EA0DhB,OArBC,sBAAW,oBAAK,C,IAAhB,WACC,OAAOzhB,KAAKs5C,OAAS,K,gCAQtB,sBAAW,sBAAO,C,IAAlB,WACC,OAAOt5C,KAAKs5C,Q,gCAGN,YAAAtjD,SAAP,WACC,OAAYgK,KAAKs5C,OAAS,KAO5B,EAvEA,GAuFM,SAAU73B,EAAQ5rB,GACvB,OAAO,IAAI0jD,EAAQ1jD,GAWd,SAAU2jD,EAAU3jD,GACzB,OAAOA,aAAiB0jD,I,6BCvIV,SAASE,EAAgB9zC,GAItC,OAHA8zC,EAAkB/2C,OAAOC,eAAiBD,OAAOoE,eAAiB,SAAyBnB,GACzF,OAAOA,EAAE/C,WAAaF,OAAOoE,eAAenB,KAEvBA,GCJV,SAAS+zC,IACtB,GAAuB,qBAAZ5sC,UAA4BA,QAAQ6sC,UAAW,OAAO,EACjE,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVlsC,MAAsB,OAAO,EAExC,IAEE,OADAgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAClD,EACP,MAAOrgB,GACP,OAAO,GCTI,SAASw1C,EAAQ1yC,GAa9B,OATE0yC,EADoB,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB8B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAI9GA,G,6CCXF,SAAS2yC,EAA2B1zC,EAAMnQ,GACvD,OAAIA,GAA2B,WAAlB4jD,EAAQ5jD,IAAsC,oBAATA,EAI3C,OAAA8jD,EAAA,GAAsB3zC,GAHpBnQ,ECDI,SAAS+jD,EAAaC,GACnC,OAAO,WACL,IACI11C,EADA21C,EAAQ,EAAeD,GAG3B,GAAI,IAA4B,CAC9B,IAAIE,EAAY,EAAen6C,MAAMiD,YACrCsB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAE7C51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAG7B,OAAO,EAA0BxD,KAAMuE,M,6BCf5B,SAAS61C,EAAgBz0C,EAAG9C,GAMzC,OALAu3C,EAAkB13C,OAAOC,gBAAkB,SAAyBgD,EAAG9C,GAErE,OADA8C,EAAE/C,UAAYC,EACP8C,IAGcA,EAAG9C,GCLb,SAASw3C,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI/0C,UAAU,sDAGtB80C,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CACrED,YAAa,CACXpN,MAAOykD,EACPrxC,UAAU,EACVC,cAAc,KAGdqxC,GAAY,EAAeD,EAAUC,G,4HCV3C,SAAS/yC,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAG7gB,IAAIi5C,EAAsB,CACxBC,aAAc,OACdC,eAAgB,UAChBC,YAAY,GAed,IAAIC,EAAW,SAAkBtgC,GAC/B,IAAIugC,EAAOvgC,EAAMugC,KACbC,EAAYxgC,EAAMwgC,UAClBC,EAAUzgC,EAAMygC,QAChBC,EAAQ1gC,EAAM0gC,MACdP,EAAengC,EAAMmgC,aACrBC,EAAiBpgC,EAAMogC,eACvBO,EAAYC,YAAyB5gC,EAAO,CAAC,OAAQ,YAAa,UAAW,QAAS,eAAgB,mBAEtG6gC,EAASX,EAYb,GAVIC,IACFU,EAAS,CACPV,aAAcA,EACdC,eAAgBA,GAAkBU,YAAkBX,KAIxDY,cACAC,YAAQC,YAAiBV,GAAO,0CAA0C50C,OAAO40C,KAE5EU,YAAiBV,GACpB,OAAO,KAGT,IAAIt5C,EAASs5C,EAQb,OANIt5C,GAAiC,oBAAhBA,EAAOs5C,OAC1Bt5C,EAASg5C,EAAcA,EAAc,GAAIh5C,GAAS,GAAI,CACpDs5C,KAAMt5C,EAAOs5C,KAAKM,EAAOV,aAAcU,EAAOT,mBAI3Cc,YAASj6C,EAAOs5C,KAAM,OAAO50C,OAAO1E,EAAOe,MAAOi4C,EAAc,CACrEO,UAAWA,EACXC,QAASA,EACTC,MAAOA,EACP,YAAaz5C,EAAOe,KACpBjG,MAAO,MACPC,OAAQ,MACRm/C,KAAM,eACN,cAAe,QACdR,KAGLL,EAAS5gC,YAAc,YACvB4gC,EAASc,iBAlDT,WACE,OAAOnB,EAAc,GAAIC,IAkD3BI,EAASe,iBA3DT,SAA0B1lC,GACxB,IAAIwkC,EAAexkC,EAAKwkC,aACpBC,EAAiBzkC,EAAKykC,eAC1BF,EAAoBC,aAAeA,EACnCD,EAAoBE,eAAiBA,GAAkBU,YAAkBX,GACzED,EAAoBG,aAAeD,GAuDtBE,QCvER,SAASgB,EAAgBC,GAC9B,IAAIC,EAAwBC,YAAuBF,GAC/CG,EAAyB1rC,YAAewrC,EAAuB,GAC/DrB,EAAeuB,EAAuB,GACtCtB,EAAiBsB,EAAuB,GAE5C,OAAOC,EAAUN,iBAAiB,CAChClB,aAAcA,EACdC,eAAgBA,ICDpBkB,EAAgB,WAChB,IAAIM,EAAO1nC,cAAiB,SAAU8F,EAAOiB,GAC3C,IAAIu/B,EAAYxgC,EAAMwgC,UAClBD,EAAOvgC,EAAMugC,KACbsB,EAAO7hC,EAAM6hC,KACbC,EAAS9hC,EAAM8hC,OACfC,EAAW/hC,EAAM+hC,SACjBtB,EAAUzgC,EAAMygC,QAChBc,EAAevhC,EAAMuhC,aACrBZ,EAAYC,YAAyB5gC,EAAO,CAAC,YAAa,OAAQ,OAAQ,SAAU,WAAY,UAAW,iBAE3GgiC,EAActsC,IAAW,UAAW0c,YAAgB,GAAI,WAAWzmB,OAAO40C,EAAKv4C,MAAOsR,QAAQinC,EAAKv4C,OAAQw4C,GAC3GyB,EAAiBvsC,IAAW,CAC9B,iBAAkBmsC,GAAsB,YAAdtB,EAAKv4C,OAE7Bk6C,EAAeH,OAEE5vC,IAAjB+vC,GAA8BzB,IAChCyB,GAAgB,GAGlB,IAAIC,EAAWL,EAAS,CACtBM,YAAa,UAAUz2C,OAAOm2C,EAAQ,QACtCO,UAAW,UAAU12C,OAAOm2C,EAAQ,cAClC3vC,EAEAqvC,EAAwBC,YAAuBF,GAC/CG,EAAyB1rC,YAAewrC,EAAuB,GAC/DrB,EAAeuB,EAAuB,GACtCtB,EAAiBsB,EAAuB,GAE5C,OAAOxnC,gBAAoB,OAAQ/R,OAAOW,OAAO,CAC/Cw5C,KAAM,MACN,aAAc/B,EAAKv4C,MAClB24C,EAAW,CACZ1/B,IAAKA,EACL8gC,SAAUG,EACVzB,QAASA,EACTD,UAAWwB,IACT9nC,gBAAoBynC,EAAW,CACjCnB,UAAWyB,EACX1B,KAAMA,EACNJ,aAAcA,EACdC,eAAgBA,EAChBM,MAAOyB,QAGXP,EAAKliC,YAAc,WACnBkiC,EAAKW,gBD5CE,WACL,IAAI1B,EAASc,EAAUP,mBAEvB,OAAKP,EAAOR,WAIL,CAACQ,EAAOV,aAAcU,EAAOT,gBAH3BS,EAAOV,cCyClByB,EAAKN,gBAAkBA,EACRM,O,6BC5Df,gIA4CA,aA4BC,WAAYY,GACX/8C,KAAKs5C,OAASyD,EAyKhB,OAjKC,sBAAW,kBAAG,C,IAAd,WACC,OAAO/8C,KAAKs5C,Q,gCAQb,sBAAW,kBAAG,C,IAAd,WACC,OAAOt5C,KAAKs5C,OAAS,IAAiBt5C,KAAKs5C,QAAU,Q,gCAStD,sBAAW,mBAAI,C,IAAf,WACC,OAAOt5C,KAAKs5C,OAAS,IAAkBt5C,KAAKs5C,QAAU,Q,gCAQvD,sBAAW,oBAAK,C,IAWhB,WACC,OAAmB,MAAft5C,KAAKs5C,QAAmC,MAAjBt5C,KAAKs5C,OAAOviD,EAC/BiJ,KAAKs5C,OAAOviD,EAGZ,G,IAhBT,SAAiBlB,GACZmK,KAAKs5C,SACRt5C,KAAKs5C,OAAOviD,EAAIlB,I,gCAuBlB,sBAAW,yBAAU,C,IASrB,WAIC,OAHKmK,KAAKg9C,cACTh9C,KAAKg9C,YAAc,IAAIC,EAAM,CAAEn3C,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,OAE5CzC,KAAKg9C,a,IAbb,SAAsBD,GACrB/8C,KAAKg9C,YAAcD,G,gCAoBpB,sBAAW,wBAAS,C,IASpB,WAIC,OAHK/8C,KAAKk9C,aACTl9C,KAAKk9C,WAAa,IAAID,EAAM,CAAEn3C,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,KAEvCzC,KAAKk9C,Y,IAbb,SAAqBH,GACpB/8C,KAAKk9C,WAAaH,G,gCAsBZ,YAAA/mD,SAAP,WACC,OAAOgK,KAAKm9C,MAAQ,EAAIn9C,KAAKo9C,KAAOp9C,KAAKq9C,KAYnC,YAAAC,QAAP,SAAe77B,GACd,OAAO,IAAIw7B,EAAM,IAAgBj9C,KAAKu9C,IAAK97B,KAYrC,YAAA+7B,SAAP,SAAgB/7B,GACf,OAAO,IAAIw7B,EAAM,IAAiBj9C,KAAKu9C,IAAK97B,KAatC,YAAAg8B,SAAP,SAAgBC,GACf,OAAO,IAAIT,EAAM,IAAiBj9C,KAAKu9C,IAAKG,KAe7C,sBAAW,0BAAW,C,IAAtB,WACC,GAAgB,MAAZ19C,KAAKu9C,IACR,OAAO,IAAgBv9C,KAAKu9C,KAAOv9C,KAAK29C,UAAY39C,KAAK49C,WAGzD,MAAM,IAAIznD,MAAM,yB,gCAGnB,EAtMA,GAgNM,SAAU4mD,EAAMlnD,EAA+BsnD,GAEpD,IAAK,IAAetnD,GACnB,OAAO,IAAIonD,OAAMvwC,GAGlB,GAAoB,iBAAT7W,EAAmB,CAC7B,IAAIgoD,EAAU,UAAYhoD,EAAQ,KAAOsnD,GAAS,KAC9CW,EAAS,IAAS78C,SAAS48C,GAC/B,GAAIC,EACH,OAAO,IAAIb,EAAM,CAChBn3C,EAAGg4C,EAAOh4C,EACVjB,EAAGi5C,EAAOj5C,EACVpC,EAAGq7C,EAAOr7C,EACV1L,EAAG+mD,EAAO/mD,IAGZ,IAAIwmD,EAAM,IAAY1nD,EAAOsnD,GAE7B,OADA,IAASt8C,SAASg9C,EAASN,GACpB,IAAIN,EAAMM,GAIlB,OAAI1nD,aAAiBonD,GAChB,IAAeE,KAClBtnD,EAAMsnD,MAAQA,GAERtnD,GAID,IAAIonD,EAAMpnD,GA6BZ,SAAUkoD,EAAQloD,GACvB,OAAI,IAAeA,KArBd,SAAkBA,GACvB,OAAOA,aAAiBonD,EAoBMe,CAAQnoD,GAXjC,SAAoBA,GACzB,OAAOknD,EAAMlnD,GAWLooD,CAAUpoD,GAEXA,I,6BC5TR,uWA2BM,SAAUqoD,EAAgB57C,GAC/B,OAAO,SAAC9D,GAEP,IAAK,IAAIsC,KAAOwB,EACf,GAAI67C,EAAO77C,EAAQxB,KACbtC,EAAK,CAACsC,EAA4BwB,EAAOxB,KAC7C,OAaC,SAAUyG,EAAajF,GAC5B,IAAM6oB,EAAS,GAEf,IAAK,IAAIrqB,KAAOwB,EACX67C,EAAO77C,EAAQxB,IAClBqqB,EAAO3sB,KAAKsC,GAId,OAAOqqB,EAsBF,SAAUgzB,EAAyC77C,EAAgBxB,GACxE,MAAO,GAAGgC,eAAe7M,KAAKqM,EAAQxB,GAuBjC,SAAUuqB,EAAqB/oB,EAAgBiM,GACpD,IAAK,IAAIzN,KAAOwB,EACf,GAAI67C,EAAO77C,EAAQxB,KACbyN,EAAGzN,EAA4BwB,EAAOxB,IAC1C,MAYE,SAAUoG,EAAa5E,EAAgBiM,GAC5C8c,EAAa/oB,GAAQ,SAACxB,EAAKjL,GAE1B,OADA0Y,EAAGzN,EAAKjL,IACD,KAYH,SAAUuoD,EAAoB97C,EAAgBiM,EAA6E8vC,GAChI,IAnEK,SAA8B/7C,EAAgBgqB,GACnD,OAAO/kB,EAAKjF,GAAQk2B,KAAKlM,GAkEbgyB,CAAYh8C,EAAQ+7C,IAAM,SAACv9C,GACtCyN,EAAGzN,EAAKwB,EAAOxB,OAsBX,SAAUy9C,EAAwBC,EAAkBC,GACzD,OAAO/7C,OAAOW,OAAO,GAAIm7C,EAASC,GAS7B,SAAU71C,EAActG,GAC7B,OAAO8f,KAAKs8B,MAAMt8B,KAAKD,UAAU7f,IAW5B,SAAUue,EAAeC,EAAgCtf,EAAgC+F,GAC9F,IAAYA,GAAM,SAACzG,GACd,IAAeggB,EAAOhgB,MACzBU,EAAOV,GAAOggB,EAAOhgB,OA+BlB,SAAU69C,EAAoB79B,EAAgCtf,EAAgC+F,GACnG,IAAYA,GAAM,SAACzG,GAClBU,EAAOV,GAAOggB,EAAOhgB,MAUjB,SAAU89C,EAAkBzuB,EAA8BD,GAC/DrP,EAAesP,EAAMD,EAAI3oB,EAAK4oB,M,+KChN/B,aAwBC,WAAYpF,EAAiBtxB,EAAeG,GAC3CoG,KAAK6+C,OAAS9zB,EACd/qB,KAAK8+C,OAASrlD,EACduG,KAAK++C,KAAOnlD,EAyEd,OAjEQ,YAAAyL,SAAP,sBACC,OAAO,SAAC7G,GACP,GAAI,EAAKsgD,SAAW,EAAKC,KACxB,GAAI,EAAKD,OAAS,EAAKC,KACtB,IAAK,IAAI1iD,EAAI,EAAKyiD,OAAQziD,EAAI,EAAK0iD,MAC7BvgD,EAAK,EAAKqgD,OAAOxiD,MADoBA,QAO3C,IAASA,EAAI,EAAKyiD,OAAS,EAAGziD,GAAK,EAAK0iD,MAClCvgD,EAAK,EAAKqgD,OAAOxiD,MADyBA,MAe7C,YAAA2iD,UAAP,WACC,OAAO,IAAIC,EAAgBj/C,KAAK6+C,OAAQ7+C,KAAK++C,KAAM/+C,KAAK8+C,SAWlD,YAAA/kD,MAAP,SAAaN,EAAeG,GAC3B,GAAIH,GAASG,EAAK,CACjB,GAAIoG,KAAK8+C,SAAW9+C,KAAK++C,KACxB,OAAO/+C,KAED,GAAIA,KAAK8+C,OAAS9+C,KAAK++C,KAAM,CACnC,IAAM75B,EAAOtrB,EAAMH,EAKnB,OAHAA,EAAQlC,KAAKM,IAAImI,KAAK8+C,OAASrlD,EAAOuG,KAAK8+C,QAC3CllD,EAAMrC,KAAKK,IAAI6B,EAAQyrB,EAAMllB,KAAK++C,MAE3B,IAAIE,EAAgBj/C,KAAK6+C,OAAQplD,EAAOG,GAGzCsrB,EAAOtrB,EAAMH,EAKnB,OAHAA,EAAQlC,KAAKM,IAAImI,KAAK8+C,OAASrlD,EAAOuG,KAAK++C,MAC3CnlD,EAAMrC,KAAKM,IAAI4B,EAAQyrB,EAAMllB,KAAK++C,MAE3B,IAAIE,EAAgBj/C,KAAK6+C,OAAQplD,EAAOG,GAIhD,MAAM,IAAIzD,MAAM,6CAInB,EApGA,GAgUA,GA5JA,YAqFC,WACCqiD,EAMA0G,EACA1mB,GARD,MAUC,YAAM,CACLggB,EAAKx5C,OAAOmgD,GAAG,YAAY,SAAC7kD,GAC3B,IAAMzE,EAAQyE,EAAE8kD,SACVt+C,EAAM,EAAKu+C,QAAQxpD,GAErB8R,EAAQ,EAEZ,IAAmB6wC,EAAKnzC,YAAY,SAAC/K,GACpC,OAAIA,IAAMzE,IAGC,EAAKwpD,QAAQ/kD,KAAOwG,KAC5B6G,GAGI,MAGR,EAAK23C,QAAQzpD,EAAOiL,EAAK6G,UACvB+E,GAAW,GAEd8rC,EAAKx5C,OAAOmgD,GAAG,WAAW,SAAC7kD,GAC1B,EAAKilD,QAAQjlD,EAAEklD,iBACb9yC,GAAW,MACb,K,OAtGK,EAAA+yC,MAAuB,GAKvB,EAAAC,QAAuC,GAmG9C,EAAKL,QAAUH,EACf,EAAKS,MAAQnnB,EAEb,IAAWggB,EAAKnzC,YAAY,SAAC/K,GAC5B,EAAKglD,QAAQhlD,EAAG4kD,EAAO5kD,O,EA7HU,iBA+B3B,YAAAglD,QAAR,SAAgBhlD,EAAMwG,EAAa6G,GAClC,GAAyB,MAArB3H,KAAK0/C,QAAQ5+C,GAAc,CAC9Bd,KAAK0/C,QAAQ5+C,GAAO,GAGd,mCAAE4qB,EAAA,EAAAA,MAAO,IAAA/jB,MAEf,GAAI+jB,EACH,MAAM,IAAIv1B,MAAM,uBAAyB2K,GAGzC,IAAmBd,KAAKy/C,MAAO,EAAO3+C,GAI3B,MAAT6G,EACH3H,KAAK0/C,QAAQ5+C,GAAKtC,KAAKlE,GAGvB,IAAmB0F,KAAK0/C,QAAQ5+C,GAAM6G,EAAOrN,IASvC,YAAAilD,QAAR,SAAgBjlD,GACf,IAAMwG,EAAMd,KAAKq/C,QAAQ/kD,GAEnBvB,EAASiH,KAAK0/C,QAAQ5+C,GAE5B,GAAc,MAAV/H,IACH,IAAcA,EAAQuB,GAEA,IAAlBvB,EAAOoD,QAAc,QACjB6D,KAAK0/C,QAAQ5+C,GAEd,mCAAE4qB,EAAA,EAAAA,MAAO/jB,EAAA,EAAAA,MAEf,IAAI+jB,EAIH,MAAM,IAAIv1B,MAAM,sBAAwB2K,GAHxC,IAAmBd,KAAKy/C,MAAO93C,KA+D5B,YAAAtC,SAAP,sBACC,OAAO,IAAc,IAAU,IAAgBrF,KAAKy/C,QAAQ,SAAC3+C,GAC5D,OAAO,IAAgB,EAAK4+C,QAAQ5+C,SA1IvC,CAAoC,KA4JpC,YACC,WAAY03C,EAAmBoH,QAAA,IAAAA,OAAA,GAA/B,WACC,GAAIA,EAAiB,CACpB,IAAM,EAAWpH,EAAKx5C,OAAOmgD,GAAG,WAAW,SAAC7kD,GAC3CA,EAAEklD,SAASK,iBACTnzC,GAAW,GAEd,eAAM,WACL,EAASmzC,UAGT,IAAWrH,EAAKnzC,YAAY,SAAC/K,GAC5BA,EAAEulD,iBAEF,UAGF,eAAM,WAEL,IAAWrH,EAAKnzC,YAAY,SAAC/K,GAC5BA,EAAEulD,iBAEF,K,SAGL,OAzBuD,iBAyBvD,EAzBA,CAAuD,MAiCvD,SAASC,EAAYn4C,EAAe0J,GACnC,KAAM1J,GAAS,GAAKA,EAAQ0J,GAC3B,MAAM,IAAIlb,MAAM,wBAA0BwR,GAQ5C,iBAiBC,WAAYo4C,QAAA,IAAAA,MAAA,IAPL,KAAA/gD,OAAyD,IAAI,IAQnEgB,KAAKggD,QAAUD,EAwiBjB,OA5hBC,sBAAW,qBAAM,C,IAAjB,WACC,OAAO//C,KAAKggD,S,gCASN,YAAAzH,SAAP,SAAgB1iD,GACf,OAAwC,IAAjCmK,KAAKggD,QAAQlpD,QAAQjB,IAQtB,YAAAoqD,YAAP,SAAmBpqD,GAIlB,IAHA,IAAIwG,EAAI,EACJF,EAAS6D,KAAKggD,QAAQ7jD,OAEnBE,EAAIF,GAEN6D,KAAKggD,QAAQ3jD,KAAOxG,GACvBmK,KAAK8rB,YAAYzvB,KACfF,KAGAE,GAWE,YAAAvF,QAAP,SAAejB,GACd,OAAO,IAAemK,KAAKggD,QAASnqD,IASrC,sBAAW,qBAAM,C,IAAjB,WACC,OAAOmK,KAAKggD,QAAQ7jD,Q,gCASd,YAAA+jD,SAAP,SAAgBv4C,GACf,OAAOA,GAAS,GAAKA,EAAQ3H,KAAKggD,QAAQ7jD,QASpC,YAAAgkD,SAAP,SAAgBx4C,GACf,OAAO3H,KAAKggD,QAAQr4C,IAYd,YAAAy4C,SAAP,SAAgBz4C,EAAe9R,GAC9BiqD,EAAYn4C,EAAO3H,KAAKggD,QAAQ7jD,QAEhC,IAAMqjD,EAAWx/C,KAAKggD,QAAQr4C,GAiC9B,OA9BI63C,IAAa3pD,IAChBmK,KAAKggD,QAAQr4C,GAAS9R,EAElBmK,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACR2H,MAAOA,EACP63C,SAAUA,EACVJ,SAAUvpD,IAIRmK,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACRw/C,SAAUA,IAIRx/C,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACRo/C,SAAUvpD,KAKN2pD,GAUD,YAAAzzB,YAAP,SAAmBpkB,EAAe9R,GACjCiqD,EAAYn4C,EAAO3H,KAAKggD,QAAQ7jD,OAAS,GAEzC,IAAmB6D,KAAKggD,QAASr4C,EAAO9R,GAEpCmK,KAAKhB,OAAOsC,UAAU,gBACzBtB,KAAKhB,OAAOyC,oBAAoB,cAAe,CAC9CF,KAAM,cACNC,OAAQxB,KACR2H,MAAOA,EACPy3C,SAAUvpD,IAIRmK,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACRo/C,SAAUvpD,KAaL,YAAAwqD,eAAR,SAAuBC,EAAaC,EAAcj0B,GACjD,GAAIg0B,EAAMC,EAAM,CACf,IAAM19C,EAAI7C,KAAKwgD,eAAeF,EAAKC,EAAMj0B,GACzCtsB,KAAKqgD,eAAeC,EAAKz9C,EAAGypB,GAC5BtsB,KAAKqgD,eAAex9C,EAAI,EAAG09C,EAAMj0B,KAa3B,YAAAk0B,eAAR,SAAuBF,EAAaC,EAAcj0B,GAOjD,IANA,IAAMvzB,EAASiH,KAAKggD,QACd3zB,EAAQtzB,EAAOunD,GAEjBjkD,EAAIikD,EAAM,EACVrgB,EAAIsgB,EAAO,IAEL,CACT,KACGlkD,QACMiwB,EAAMvzB,EAAOsD,GAAIgwB,GAAS,GAEnC,KACG4T,QACM3T,EAAMvzB,EAAOknC,GAAI5T,GAAS,GAEnC,GAAIhwB,GAAK4jC,EACR,OAAOA,EAGPjgC,KAAKygD,KAAKpkD,EAAG4jC,KAUT,YAAAzH,KAAP,SAAYlM,GAIXtsB,KAAKqgD,eAAe,EAAGrgD,KAAKggD,QAAQ7jD,OAAS,EAAGmwB,IAS1C,YAAAm0B,KAAP,SAAY1pD,EAAW0L,GACtB,IAAM4O,EAAMrR,KAAKggD,QAAQ7jD,OAKzB,GAHA2jD,EAAY/oD,EAAGsa,GACfyuC,EAAYr9C,EAAG4O,GAEXta,IAAM0L,EAAG,CACZ,IAAMi+C,EAAU1gD,KAAKggD,QAAQjpD,GACvB4pD,EAAU3gD,KAAKggD,QAAQv9C,GAE7BzC,KAAKggD,QAAQjpD,GAAK4pD,EAEd3gD,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACR2H,MAAO5Q,EACPyoD,SAAUkB,EACVtB,SAAUuB,IAIZ3gD,KAAKggD,QAAQv9C,GAAKi+C,EAEd1gD,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACR2H,MAAOlF,EACP+8C,SAAUmB,EACVvB,SAAUsB,MAYP,YAAA50B,YAAP,SAAmBnkB,GAClBm4C,EAAYn4C,EAAO3H,KAAKggD,QAAQ7jD,QAEhC,IAAMqjD,EAAWx/C,KAAKggD,QAAQr4C,GAqB9B,OAnBA,IAAmB3H,KAAKggD,QAASr4C,GAE7B3H,KAAKhB,OAAOsC,UAAU,gBACzBtB,KAAKhB,OAAOyC,oBAAoB,cAAe,CAC9CF,KAAM,cACNC,OAAQxB,KACR2H,MAAOA,EACP63C,SAAUA,IAIRx/C,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACRw/C,SAAUA,IAILA,GAYD,YAAAoB,UAAP,SAAiB/qD,EAAUg2B,GAE1B,IAAIlkB,EAAQ3H,KAAKlJ,QAAQjB,GAGzB,IAAe,IAAX8R,EAAc,CACjB,IAAM63C,EAAWx/C,KAAKggD,QAAQr4C,GAE9B,IAAmB3H,KAAKggD,QAASr4C,GAE7B3H,KAAKhB,OAAOsC,UAAU,gBACzBtB,KAAKhB,OAAOyC,oBAAoB,cAAe,CAC9CF,KAAM,cACNC,OAAQxB,KACR2H,MAAOA,EACP63C,SAAUA,IAKE,MAAX3zB,GACHA,EAAU7rB,KAAKggD,QAAQ7jD,OACvB6D,KAAKggD,QAAQxhD,KAAK3I,IAGlB,IAAmBmK,KAAKggD,QAASn0B,EAASh2B,GAGvCmK,KAAKhB,OAAOsC,UAAU,gBACzBtB,KAAKhB,OAAOyC,oBAAoB,cAAe,CAC9CF,KAAM,cACNC,OAAQxB,KACR2H,MAAOkkB,EACPuzB,SAAUvpD,KAIG,IAAX8R,GACC3H,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACRo/C,SAAUvpD,KAWP,YAAA2I,KAAP,SAAyB3I,GACxB,IAAM8R,EAAQ3H,KAAKggD,QAAQxhD,KAAK3I,GAAS,EAmBzC,OAjBImK,KAAKhB,OAAOsC,UAAU,gBACzBtB,KAAKhB,OAAOyC,oBAAoB,cAAe,CAC9CF,KAAM,cACNC,OAAQxB,KACR2H,MAAOA,EACPy3C,SAAUvpD,IAIRmK,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACRo/C,SAAUvpD,IAILA,GAQD,YAAAm2B,QAAP,SAAen2B,GACdmK,KAAK+rB,YAAY,EAAGl2B,IAQd,YAAA01B,QAAP,SAAexyB,GAAf,WACC,IAAYA,GAAQ,SAAClD,GACpB,EAAK2I,KAAK3I,OASL,YAAAgrD,SAAP,SAAgB//B,GACf9gB,KAAKurB,QAAQzK,EAAOk/B,UAQd,YAAAv6C,IAAP,WAEC,OADYzF,KAAKggD,QAAQ7jD,OAAS,EACnB,OAAIuQ,EAAY1M,KAAK8rB,YAAY9rB,KAAKggD,QAAQ7jD,OAAS,IAQhE,YAAA42C,MAAP,WACC,OAAO/yC,KAAKggD,QAAQ7jD,OAAS6D,KAAK8rB,YAAY,QAAKpf,GAU7C,YAAAo0C,OAAP,SAAcC,GAAd,WAEOC,EAAW,IAAYhhD,KAAKggD,SAElChgD,KAAKggD,QAAQ7jD,OAAS,EAEtB,IAAY4kD,GAAU,SAAClrD,GACtB,EAAKmqD,QAAQxhD,KAAK3I,MAGfmK,KAAKhB,OAAOsC,UAAU,WACzBtB,KAAKhB,OAAOyC,oBAAoB,SAAU,CACzCF,KAAM,SACNC,OAAQxB,KACRghD,SAAUA,EACVD,SAAU/gD,KAAKggD,UAIbhgD,KAAKhB,OAAOsC,UAAU,YACzB,IAAY0/C,GAAU,SAAC1mD,GACtB,EAAK0E,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQ,EACRg+C,SAAUllD,OAKT0F,KAAKhB,OAAOsC,UAAU,aACzB,IAAYtB,KAAKggD,SAAS,SAAC1lD,GAC1B,EAAK0E,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQ,EACR49C,SAAU9kD,QASP,YAAAiP,MAAP,WACCvJ,KAAK8gD,OAAO,KAQN,YAAAz7C,SAAP,WACC,OAAO,IAAgBrF,KAAKggD,UAMrB,YAAC56C,OAAOC,UAAhB,W,oEACOlJ,EAAS6D,KAAKggD,QAAQ7jD,OAEnBE,EAAI,E,wBAAGA,EAAIF,EACnB,GAAM6D,KAAKggD,QAAQ3jD,IADM,M,OACzB,S,yBAD6BA,E,4BAWxB,YAAA6K,KAAP,SAAYtC,GACX,IAAY5E,KAAKggD,QAASp7C,IAYpB,YAAA7K,MAAP,SAAaN,EAAeG,GAC3B,GAAIH,GAASG,EAAK,CACjB,IAAMsrB,EAAOtrB,EAAMH,EAKnB,OAHAA,EAAQlC,KAAKM,IAAI4B,EAAO,GACxBG,EAAMrC,KAAKK,IAAI6B,EAAQyrB,EAAMllB,KAAKggD,QAAQ7jD,QAEnC,IAAI8iD,EAAgBj/C,KAAKggD,QAASvmD,EAAOG,GAGhD,MAAM,IAAIzD,MAAM,6CAUX,YAAA6oD,UAAP,WACC,OAAO,IAAIC,EAAgBj/C,KAAKggD,QAAShgD,KAAKggD,QAAQ7jD,OAAQ,IAGhE,EA1jBA,GAskBA,cAaC,WAAmBmH,GAAnB,MACC,cAAO,K,OACP,EAAK29C,SAAW39C,E,EAuElB,OAtFiF,iBAwBhF,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOtD,KAAKkhD,W,IATb,SAAoB57C,GACnBA,EAAE67C,YAAa,EACfnhD,KAAKkhD,UAAY57C,G,gCAeX,YAAAu7C,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOzb,YAAY,SAACxP,GAC9B,EAAK2I,KAAK3I,EAAM+S,aAaX,YAAAzF,OAAP,SAAci+C,GACb,IAAMx4C,EACI,MAARw4C,EACE,IAAIA,EACJphD,KAAKihD,SAASr4C,QAIlB,OAFA5I,KAAKxB,KAAKoK,GAEHA,GAQD,YAAAA,MAAP,WAOC,IANA,IAAMgqC,EAAM,IAAIyO,EAAarhD,KAAKihD,UAE5BloD,EAASiH,KAAKjH,OAEdoD,EAASpD,EAAOoD,OAEbE,EAAI,EAAGA,EAAIF,IAAUE,EAC7Bu2C,EAAIp0C,KAAKzF,EAAOsD,GAAGuM,SAGpB,OAAOgqC,GAGT,EAtFA,CAAiF0O,I,yFC97BlE,SAASC,EAAmB/wC,GACzC,OCJa,SAA4BA,GACzC,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAO,OAAAgxC,EAAA,GAAiBhxC,GDGzC,CAAkBA,IELZ,SAA0BpJ,GACvC,GAAsB,qBAAXhC,QAA0BA,OAAOC,YAAY3C,OAAO0E,GAAO,OAAO/P,MAAM84B,KAAK/oB,GFIvD,CAAgBoJ,IAAQ,OAAAQ,EAAA,GAA2BR,IGLvE,WACb,MAAM,IAAIhL,UAAU,wIHIwE,K,kGID/E,SAAS+K,EAAeC,EAAKnU,GAC1C,OAAO,OAAAolD,EAAA,GAAejxC,ICLT,SAA+BA,EAAKnU,GACjD,IAAIyU,EAAY,MAAPN,EAAc,KAAyB,qBAAXpL,QAA0BoL,EAAIpL,OAAOC,WAAamL,EAAI,cAE3F,GAAU,MAANM,EAAJ,CACA,IAIID,EAAID,EAJJH,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKG,EAAKA,EAAG7a,KAAKua,KAAQE,GAAMG,EAAKC,EAAG1M,QAAQI,QAC9CiM,EAAKjS,KAAKqS,EAAGhb,QAETwG,GAAKoU,EAAKtU,SAAWE,GAH4BqU,GAAK,IAK5D,MAAOK,GACPJ,GAAK,EACLC,EAAKG,EACL,QACA,IACOL,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,GDtBuB,CAAqBD,EAAKnU,IAAM,OAAA2U,EAAA,GAA2BR,EAAKnU,IAAM,OAAAqlD,EAAA,O,+LEoBtG,aAiBC,WAAY7B,GACX7/C,KAAK2hD,WAAY,EACjB3hD,KAAK4hD,SAAW/B,EAsBlB,OAdQ,YAAAgC,WAAP,WACC,OAAO7hD,KAAK2hD,WAMN,YAAA9B,QAAP,WACM7/C,KAAK2hD,YACT3hD,KAAK2hD,WAAY,EACjB3hD,KAAK4hD,aAIR,EAzCA,GAgDA,cACC,WAAYE,G,OACX,aAAM,WACL,IAAYA,GAAW,SAACxnD,GACvBA,EAAEulD,iBAEF,KAEJ,OARmC,iBAQnC,EARA,CAAmCkC,GAmBnC,cAeC,mBACC,aAAM,WACD,IAAe,EAAKC,aACvB,EAAKA,UAAUnC,UACf,EAAKmC,eAAYt1C,OAEjB,K,SAkCJ,OAvD+D,iBA6BvD,YAAAxL,IAAP,WACC,OAAOlB,KAAKs5C,QASN,YAAAt4C,IAAP,SAAWnL,EAAoBosD,GAC1B,IAAejiD,KAAKgiD,YACvBhiD,KAAKgiD,UAAUnC,UAGhB7/C,KAAKgiD,UAAYC,EACjBjiD,KAAKs5C,OAASzjD,GAMR,YAAA8iD,MAAP,WACC34C,KAAKgB,SAAI0L,OAAWA,IAGtB,EAvDA,CAA+Dq1C,GA6D/D,yE,OAOS,EAAAG,SAAmB,E,EAqB5B,OA5BqC,iBAc7B,YAAAC,UAAP,sBAKC,QAHEniD,KAAKkiD,SAGA,IAAIH,GAAS,aACjB,EAAKG,SAEe,IAAlB,EAAKA,UACR,EAAKrC,cAKT,EA5BA,CAAqCkC,I,6BCzJrC,4qBA+YIK,EA/YJ,uDAsBaC,EAAgB,6BAOhBC,EAAgB,gCAOhBC,EAAgB,+BAYvB,SAAUniD,EAAkCoiD,EAAkBjhD,EAAc2T,EAA8BkH,GAK/G,OAFAomC,EAAIpiD,iBAAiBmB,EAAqB2T,EAAUkH,IAAW,GAExD,IAAI,KAAS,WACnBomC,EAAIC,oBAAoBlhD,EAAqB2T,EAAUkH,IAAW,MAe9D,SAAUsmC,EAAWC,GAC1B,GAAI,IAAeA,GAAK,CACvB,IAAIt+C,EAAoB0S,SAAS6rC,eAAeD,GAMhD,GAJS,MAALt+C,IACHA,EAAI0S,SAAS8rC,uBAAuBF,GAAI,IAGrCt+C,aAAay+C,YAChB,OAAOz+C,OAGF,GAAIs+C,aAAcG,YACxB,OAAOH,EAWH,SAAUI,EAASr6B,EAAsCqyB,GAC9D,GAAKryB,EAGL,GAAIA,EAAQs6B,UACXt6B,EAAQs6B,UAAU15C,IAAIyxC,OAElB,CACJ,IAAIkI,EAAmBv6B,EAAQw6B,aAAa,SACxCD,EACHv6B,EAAQloB,aAAa,QAASyiD,EAAiBhhC,MAAM,KAAK+K,QAAO,SAACmd,GACjE,OAAOA,IAAS4Q,KACdt0C,KAAK,KAAO,IAAMs0C,GAGrBryB,EAAQloB,aAAa,QAASu6C,IAa3B,SAAUoI,EAAYz6B,EAAsCqyB,GACjE,GAAKryB,EAGL,GAAIA,EAAQs6B,UACXt6B,EAAQs6B,UAAUv3B,OAAOsvB,OAErB,CACJ,IAAIkI,EAAmBv6B,EAAQw6B,aAAa,SACxCD,GACHv6B,EAAQloB,aAAa,QAASyiD,EAAiBhhC,MAAM,KAAK+K,QAAO,SAACmd,GACjE,OAAOA,IAAS4Q,KACdt0C,KAAK,OAYL,SAAU28C,EAAS16B,EAAsC2hB,EAAkBx0C,GAC1E6yB,EAAQuyB,MAAO5Q,GAAYx0C,EAQ5B,SAAU+yB,EAAiBF,EAAkB2hB,GAElD,OAAU3hB,EAAS26B,aACL36B,EAAS26B,aAAahZ,GAG7BtzB,SAASusC,YAAY16B,iBAAiBF,EAAS,MAAM66B,iBAAiBlZ,GAQxE,SAAUmZ,IACf,IAAIh4B,EAAQzU,SAASH,cAAc,SACnC4U,EAAMyvB,MAAMv/C,SAAW,QACvB8vB,EAAMyvB,MAAM5yB,IAAM,MAClBmD,EAAMyvB,MAAMriD,KAAO,WACnBme,SAASpS,KAAK8+C,YAAYj4B,GAC1BA,EAAMk4B,QACNl4B,EAAMg4B,OACNzsC,SAASpS,KAAKg/C,YAAYn4B,GA2ErB,SAAU+sB,EAASxhD,EAAgC0L,GAGxD,IAFA,IAAImhD,EAAenhD,IAEN,CACZ,GAAI1L,IAAM6sD,EACT,OAAO,EAED,GAAyB,MAArBA,EAAOC,WAAoB,CAErC,GAAiC,MAAhBD,EAAQE,KACxB,OAAO,EAGPF,EAAsBA,EAAQE,UAI/BF,EAASA,EAAOC,YAWb,SAAUE,EAAchtD,GAG7B,IAFA,IAAI6sD,EAAe7sD,IAEN,CACZ,GAAyB,MAArB6sD,EAAOC,WAEV,OAAiC,MAAhBD,EAAQE,KACLF,EAGZ,KAIRA,EAASA,EAAOC,YAWb,SAAUG,EAAQjtD,GAMvB,IAJA,IAAMuX,EAAQvX,EAAEktD,cAEZL,EAAe7sD,IAEN,CACZ,GAAyB,MAArB6sD,EAAOC,WAGV,OAAID,IAAWt1C,GAAsC,MAAhBs1C,EAAQE,KACdF,EAGvB,KAIRA,EAASA,EAAOC,YAab,SAAUK,EAAYC,GAC3B,MAAyC,oBAAxBA,EAAOC,aACVD,EAAOC,eAAe,GAG5BD,EAAM3iD,OA2BT,SAAU6iD,EAAgB1B,GAC/B,aAAU,WAGT,IACC,IAAM5uC,EAAO4uC,EAAGv6B,wBAEV,EAAOrU,EAAKnb,KAAOrB,KAAKQ,MAAMgc,EAAKnb,MACnC,EAAMmb,EAAKsU,IAAM9wB,KAAKQ,MAAMgc,EAAKsU,KAE1B,IAAT,GACH,aAAW,WACVs6B,EAAG1H,MAAMriD,KAAO,EAAO,QAIb,IAAR,GACH,aAAW,WACV+pD,EAAG1H,MAAM5yB,IAAM,EAAM,QAItB,MAAOhkB,QAmEX,kBA+BC,WAAYqkB,EAA4B47B,EAAkBC,GAA1D,WACOC,EAhFR,SAAuB97B,GACtB,GAAe,MAAXA,EAAiB,CACpB,IAAK,IAAe05B,IAEb/9C,EAAI0S,SAASH,cAAc,UAC/BrV,KAAO,WACY,IAAjB,IAAQkjD,OACXpgD,EAAE7D,aAAa,QAAS,IAAQikD,OAEjC1tC,SAAS2tC,KAAKjB,YAAYp/C,GAC1B+9C,EAAiB/9C,EAAEsgD,MAGpB,OAAOvC,EAIP,IAAM/9C,EAMN,OANMA,EAAI0S,SAASH,cAAc,UAC/BrV,KAAO,WACY,IAAjB,IAAQkjD,OACXpgD,EAAE7D,aAAa,QAAS,IAAQikD,OAEjC/7B,EAAQ+6B,YAAYp/C,GACbA,EAAEsgD,MAyDIC,CAAcl8B,G,OAG3B,eAAM,WAEL,IAAM/gB,EAAQ,IAAe68C,EAAKK,SAAU,EAAKC,OAEjD,IAAe,IAAXn9C,EACH,MAAM,IAAIxR,MAAM,+BAIhBquD,EAAKO,WAAWp9C,OAEhB,MAEGm9C,MA7DP,SAA0BN,EAAqBF,GAC9C,IAAM38C,EAAQ68C,EAAKK,SAAS1oD,OAI5B,OAFAqoD,EAAKQ,WAAWV,EAAW,KAAM38C,GAE1B68C,EAAKK,SAASl9C,GAwDPs9C,CAAiBT,EAAMF,GAEpC,IAAaC,GAAQ,SAACzjD,EAAKjL,GAC1B,EAAKutD,SAAStiD,EAAKjL,M,EAkCtB,OArF+B,iBAc9B,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAK8kD,MAAMI,c,IARnB,SAAoBZ,GACnBtkD,KAAK8kD,MAAMI,aAAeZ,G,gCA8CnB,YAAAa,qBAAR,SAA6B5iD,EAAc1M,GAC1C,IAAMolD,EAAQj7C,KAAK8kD,MAAM7J,MACzBA,EAAMmK,YAAY,WAAa7iD,EAAM1M,EAAO,IAC5ColD,EAAMmK,YAAY,QAAU7iD,EAAM1M,EAAO,IACzColD,EAAMmK,YAAY,OAAS7iD,EAAM1M,EAAO,IACxColD,EAAMmK,YAAY,MAAQ7iD,EAAM1M,EAAO,IACvColD,EAAMmK,YAAY7iD,EAAM1M,EAAO,KASzB,YAAAutD,SAAP,SAAgB7gD,EAAc1M,GAChB,eAAT0M,EACHvC,KAAKmlD,qBAAqB5iD,EAAM1M,GAGhCmK,KAAK8kD,MAAM7J,MAAMmK,YAAY7iD,EAAM1M,EAAO,KAI7C,EArFA,CAA+B,KA4F3BwvD,EAAkB,GAMtB,YAaC,WAAY38B,EAA4B67B,EAAoChiD,GAA5E,WACOw4C,EACH,IAAex4C,GAGdA,EADA,cAAgB8iD,EAAW,K,OAG/B,cAAM38B,EAAS,IAAMqyB,EAAWwJ,IAAO,MAElCe,WAAavK,E,EAtBY,iBA8B/B,sBAAW,wBAAS,C,IAQpB,WACC,OAAO/6C,KAAKslD,Y,IATb,SAAqB/iD,GACpBvC,KAAKslD,WAAa/iD,EAClBvC,KAAKskD,SAAW,IAAM/hD,G,gCAchB,YAAAvM,SAAP,WACC,OAAOgK,KAAKslD,YA/Cd,CAAgCC,GAqD1B,SAAUC,EAAM5gD,GACrB,GAA4B,YAAxBmS,SAAS0uC,WACZ7gD,QAEM,CAQNmS,SAAS3W,iBAAiB,oBAPT,SAAX,IACuB,YAAxB2W,SAAS0uC,aACZ1uC,SAAS0rC,oBAAoB,mBAAoB,GACjD79C,SAgBE,SAAU8gD,EAASh9B,GAGxB,IAAIi9B,EAAO/8B,EAAiBF,EAAS,eAErC,GAAKi9B,EAWJ,OAAgBA,EAThB,IAAI,EAASj9B,EAAQk9B,eAA0Bl9B,EAAQm7B,WACvD,OAAI,EACI6B,EAAS,QAGhB,EAiBG,SAAUG,EAAan9B,GAG5B,IAAIi9B,EAAO/8B,EAAiBF,EAAS,aAErC,GAAKi9B,EAWJ,OAAgBA,EAThB,IAAI,EAASj9B,EAAQk9B,eAA0Bl9B,EAAQm7B,WACvD,OAAI,EACIgC,EAAa,QAGpB,EA4BG,SAAUC,EAAoBnD,EAAiBoD,GAGpD,IAAIhyC,EAAO4uC,EAAGv6B,wBAGR49B,EAAU,IAAcD,GAAkBA,EAAiBA,EAAiB,CAACA,GAAkB,GAGrG,GAAIC,EAAQ7pD,OAAQ,CACnB,IAAK,IAAIE,EAAI,EAAGA,EAAI2pD,EAAQ7pD,OAAQE,IAAK,CAExC,IAAMmF,EAASwkD,EAAQ3pD,GAGvB,IAAKypD,EAAoBtkD,GACxB,OAAO,EAIR,IAAIykD,EAAezkD,EAAO4mB,wBAC1B,GACCrU,EAAKsU,KAAO,GACZtU,EAAKnb,MAAQ,GACbmb,EAAKsU,KAAQ49B,EAAa59B,IAAM49B,EAAa1pD,QAC7CwX,EAAKnb,MAASqtD,EAAartD,KAAOqtD,EAAa3pD,MAE/C,OAAO,EAIT,OAAO,EAGR,OACCyX,EAAKsU,KAAO,GACZtU,EAAKnb,MAAQ,GACbmb,EAAKsU,MAAQvR,OAAOovC,aAAenvC,SAASovC,gBAAgBzlD,eAC5DqT,EAAKnb,OAASke,OAAOsvC,YAAcrvC,SAASovC,gBAAgB1lD,e,6BCluB9D,+VA6Ma4lD,EAAgD,CAAC,OAAQ,cAAe,SAAU,gBAAiB,cAAe,kBAAmB,mBAAoB,gBAAiB,kBAqEvL,cA0sBC,mBAGC,cAAO,K,OAvrBD,EAAA7b,WAAkC,GAUlC,EAAA8b,iBAA0E,IAAI,IAAsB,GAgCnG,EAAAC,UAA0C,GAQxC,EAAAC,aAAuB,EAEvB,EAAAC,SAAmB,EAYnB,EAAAC,SAAmB,EAOnB,EAAAC,QAAkB,EA+BrB,EAAAC,UAAoB,EAOjB,EAAAC,WAAqB,EAOxB,EAAAC,WAAqB,EASrB,EAAAC,sBAAgC,EAO7B,EAAAC,WAAqB,EAOrB,EAAAC,MAAQ,IAAI,IAkBZ,EAAAC,mBAA6B,EAe7B,EAAAC,UAAY,IAAI,IAmEhB,EAAAC,WAAa,IAAI,IAKjB,EAAAC,aAAuB,EAuDvB,EAAAC,MAAoB,CAAEhtD,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,GAsEvD,EAAAstC,SAAmB,EAOnB,EAAA0d,iBAA2B,EAe3B,EAAAC,eAAoE,GA6EpE,EAAAC,eAAyB,EAkBtB,EAAAC,mBAA6B,EAC7B,EAAAC,oBAA8B,EAejC,EAAAC,QAAkB,EAIlB,EAAAC,SAAmB,EAInB,EAAAC,OAAiB,EAIjB,EAAAC,UAAoB,EAMpB,EAAAC,YAAsB,EAItB,EAAAC,aAAuB,EAIvB,EAAAC,WAAqB,EAIrB,EAAAC,cAAwB,EAErB,EAAAC,YAAsB,EAEtB,EAAAC,YAAsB,EAKtB,EAAAC,WAAqB,EAErB,EAAAC,mBAA6B,EAE7B,EAAAC,iBAA2B,EAI3B,EAAAC,0BAAoC,EAavC,EAAAC,aAAuB,EAcvB,EAAAC,cAAwB,EAOxB,EAAAC,aAAuB,EAyCvB,EAAAC,UAAoB,EAQpB,EAAA3hC,GAAa,EAQb,EAAAG,GAAa,EAkBb,EAAAyhC,iBAA2B,EAY3B,EAAAC,eAAyB,EAOzB,EAAAC,aAAuB,EAMvB,EAAAC,cAAwB,EAc9B,EAAKlO,UAAY,SAEjB,EAAKmO,WAAW1qD,KAAK,EAAK8nD,kBAG1B,IAAY,EAAKrmD,KAGjB,EAAKwnB,MAAQ,EAAKlnB,MAAM4oD,SAAS,KAIjC,EAAKC,iBAAiB,QAAS,GAC/B,EAAKA,iBAAiB,WAAY,GAClC,EAAKA,iBAAiB,QAAS,QAC/B,EAAKA,iBAAiB,SAAU,QAChC,EAAKA,iBAAiB,gBAAgB,GACtC,EAAKA,iBAAiB,WAAW,GACjC,EAAKA,iBAAiB,kBAAmB,SACzC,EAAKA,iBAAiB,iBAAkB,QACxC,EAAKA,iBAAiB,mBAAoB,QAE1C,EAAKA,iBAAiB,WAAY,YAAQ,KAC1C,EAAKA,iBAAiB,WAAY,YAAQ,KAE1C,EAAKA,iBAAiB,YAAa,GACnC,EAAKA,iBAAiB,eAAgB,GACtC,EAAKA,iBAAiB,aAAc,GACpC,EAAKA,iBAAiB,cAAe,GAErC,EAAKA,iBAAiB,KAAM,GAC5B,EAAKA,iBAAiB,KAAM,GAE5B,EAAKA,iBAAiB,aAAc,GACpC,EAAKA,iBAAiB,gBAAiB,GACvC,EAAKA,iBAAiB,eAAgB,GACtC,EAAKA,iBAAiB,cAAe,GAErC,EAAKA,iBAAiB,aAAa,GACnC,EAAKA,iBAAiB,UAAU,GAChC,EAAKA,iBAAiB,YAAa,SACnC,EAAKA,iBAAiB,qBAAqB,GAC3C,EAAKA,iBAAiB,gBAAiB,SAEvC,EAAKC,mBAAqB,EAC1B,EAAKC,oBAAsB,EAC3B,EAAKC,eAAiB,EACtB,EAAKC,gBAAkB,EAEvB,EAAKC,aAAc,EAGnB,EAAKC,aAKL,EAAKC,aAkBL,EAAKT,WAAW1qD,KAAK,EAAKQ,QAC1B,EAAKkqD,WAAW1qD,KAAK,EAAKipB,OAC1B,EAAKyhC,WAAW1qD,KAAK,EAAKyoD,OAC1B,EAAKiC,WAAW1qD,KAAK,EAAK2oD,WAC1B,EAAK+B,WAAW1qD,KAAK,EAAK4oD,YAI1B,EAAK8B,WAAW1qD,KAAK,IAAI,KAAS,WACjC,IAAa,EAAK+nD,WAAW,SAACzlD,EAAKjL,GAClCA,EAAMgqD,iBAIR,EAAKuJ,iBAAiB,uBAAuB,G,EAuyQ/C,OA/kS4B,iBAuC3B,sBAAW,qBAAM,C,IAAjB,WACC,OAAOppD,KAAKsmD,kB,gCAab,sBAAW,sBAAO,C,IAAlB,WAIC,OAHKtmD,KAAK4pD,YACT5pD,KAAK4pD,UAAY,IAAI,IAAgC5pD,OAE/CA,KAAK4pD,W,gCAiwBN,YAAAD,WAAP,WACC,YAAMA,WAAU,WACZ,IAAQE,kBACX7pD,KAAK8pD,gBAUA,YAAAC,iBAAP,WACC,IAAM9qD,EAASe,KAAKgqD,QAEpB,GAAI/qD,EACH,OAAOA,EAGP,IAAM,EAASe,KAAKiqD,QAEpB,OAAI,EACI,EAAOF,mBAGP,IAAS9qD,QAWT,YAAAirD,sBAAV,WAIClqD,KAAKyoD,0BAA2B,GAY1B,YAAAiB,WAAP,WACK1pD,KAAKmqD,UAAYnqD,KAAKwmD,aAOrBxmD,KAAK6pC,UACT7pC,KAAK6pC,SAAU,EACf,IAAS9nC,oBAAoB/B,MAC7B,IAAOoqD,iBAWF,YAAAC,SAAP,WACCrqD,KAAKyB,oBAAoB,mBAapBzB,KAAKyoD,0BACTzoD,KAAKkqD,wBAGNlqD,KAAKsqD,aACLtqD,KAAKuqD,OAELvqD,KAAK6pC,SAAU,EAEf,IAAS7nC,yBAAyBhC,MAClCA,KAAKwqD,aAQC,YAAAC,mBAAP,WACKzqD,KAAKmqD,UAAYnqD,KAAKwmD,aAGrBxmD,KAAKunD,kBACTvnD,KAAKunD,iBAAkB,EACvB,IAAStlD,sBAAsBjC,MAC/B,IAAOoqD,iBAWF,YAAAM,iBAAP,WAEC,IAAIzjC,EAASjnB,KAAKinB,OACdG,EAASpnB,KAAKonB,OACdE,EAAKtnB,KAAKsnB,GACVC,EAAKvnB,KAAKunB,GAEVjtB,EAAY2sB,EAASK,EACrB/sB,EAAY6sB,EAASG,EAErBvnB,KAAKwoD,kBACJxoD,KAAKuoD,kBACRvoD,KAAKynB,MAAMkjC,KAAK,CAAE,QAAW,SAGxB3qD,KAAKmqD,UACTnqD,KAAK4qD,mBAAmB,WAG1B5qD,KAAKwoD,iBAAkB,GAGxB,IAAIqC,EAAuB7qD,KAAK8qD,UAG5BC,EAA6B/qD,KAAKynB,MAAMujC,gBAE5ChrD,KAAKynB,MAAMnW,OAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAC7ByF,KAAKynB,MAAMV,SAAW/mB,KAAK+mB,SACvB/mB,KAAKirD,WACRjrD,KAAKynB,MAAMD,MAAQxnB,KAAKwnB,MAAQxnB,KAAKkrD,YAGrClrD,KAAKynB,MAAMD,MAAQxnB,KAAKwnB,OAGrBujC,GAAsB/qD,KAAKynB,MAAMujC,iBAAmBH,KAE7B,MAAtBE,EACH/qD,KAAKmB,SAAS,eAGdnB,KAAKyB,oBAAoB,eAG1BzB,KAAKmB,SAAS,mBAEY,OAAtBnB,KAAKmrD,eAAgD,UAAtBnrD,KAAKmrD,eACvCnrD,KAAKorD,yBAMHnkC,EAASK,GAAMhtB,GAAK8sB,EAASG,GAAMhtB,IACtC,IAAS2H,2BAA2BlC,MACpCA,KAAKunD,iBAAkB,GAExB,IAAI8D,EAAgBrrD,KAAKsrD,eAErBD,GACHrrD,KAAKurD,aAAaj6C,OAAO,CAAEhX,EAAG+wD,EAAc/wD,EAAI2sB,EAAQ1sB,EAAG8wD,EAAc9wD,EAAI6sB,KASrE,YAAAkjC,WAAV,aASU,YAAAC,KAAV,aAUU,YAAAC,UAAV,W,QAOC,IANIxqD,KAAKwrD,YAAwC,SAA1BxrD,KAAKyrD,kBAAuD,SAAxBzrD,KAAK0rD,iBAC/D1rD,KAAK2rD,iBAKD3rD,KAAK0mD,QAmDT1mD,KAAKmB,SAAS,iBAnDI,CAClB,GAAInB,KAAK4pD,U,IAER,IAAgB,kBAAA5pD,KAAK4pD,UAAUriD,QAAM,8BAAE,CAAlC,IAAIzG,EAAG,QACX,OAAQA,GACP,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,mBACL,IAAK,gBACL,IAAK,iBACL,IAAK,iBACL,IAAK,WACL,IAAK,aACL,IAAK,aAIEd,KAAMc,GAAad,KAAMc,K,iGAMnCd,KAAK4rD,eAEL5rD,KAAK6rD,QAAU7rD,KAAK6rD,QACpB7rD,KAAK8rD,oBAAsB9rD,KAAKujD,iBAAiB,uBAEjDvjD,KAAK0mD,SAAU,EAEV1mD,KAAK+rD,aACT/rD,KAAK6oD,UAAW,GAGb7oD,KAAKgsD,QACRhsD,KAAKisD,KAAK,GAGXjsD,KAAKksD,YACLlsD,KAAKmB,SAAS,aACdnB,KAAKmB,SAAS,UACdnB,KAAKmsD,gBAMoB,UAAtBnsD,KAAKmrD,iBACJnrD,KAAK6rD,SAAY7rD,KAAKmqD,UAAanqD,KAAKosD,WAI3CpsD,KAAKqsD,YAAY,GAHjBrsD,KAAKssD,gBAaD,YAAAH,cAAP,WACMnsD,KAAKusD,YACTvsD,KAAK2mD,QAAS,EACd3mD,KAAKmB,SAAS,WAYT,YAAAqrD,OAAP,WACCxsD,KAAK0mD,SAAU,EACf1mD,KAAKysD,SAASzsD,KAAK0sD,cACnB1sD,KAAK0pD,cAQC,YAAAiD,kBAAP,WACC3sD,KAAKmB,SAAS,sBAEVnB,KAAK4sD,mBACR5sD,KAAK6sD,YAAc7sD,KAAK6sD,aAGrB7sD,KAAKirD,YACRjrD,KAAK0qD,mBAGN1qD,KAAK8sD,qBASI,YAAAA,kBAAV,sBACC,IAAW9sD,KAAK+sD,QAAQ1nD,YAAY,SAAC2nB,GACpCA,EAAOxF,MAAQ,EAAK0jC,gBASZ,YAAA8B,mBAAV,WACC,IAAShrD,yBAAyBhC,MAClC,IAASkC,2BAA2BlC,OAQ9B,YAAA6gD,SAAP,SAAgB//B,GAAhB,WACC,YAAM+/B,SAAQ,UAAC//B,GAEf9gB,KAAKwrD,WAAa1qC,EAAO0qC,WAEzBxrD,KAAKitD,OAAOpM,SAAS//B,EAAOmsC,QAExBnsC,EAAOisC,QAAQ5wD,OAAS,GAC3B2kB,EAAOisC,QAAQ7lD,MAAK,SAAC8lB,GACpB,EAAK+/B,QAAQvuD,KAAKwuB,EAAOpkB,YAGvBkY,EAAO8oC,WACV5pD,KAAKktD,QAAQrM,SAAS//B,EAAO8oC,WAIpB9oC,EAAO,cAChB9gB,KAAKmtD,aAAatM,SAAS//B,EAAOqsC,cAGzBrsC,EAAO,UAChB9gB,KAAK6J,QAAQg3C,SAAS//B,EAAOjX,SAG9B7J,KAAKotD,YAActsC,EAAOssC,YAE1BptD,KAAKynD,cAAgB3mC,EAAO2mC,cAK5BznD,KAAKmqD,SAAWrpC,EAAOqpC,SAEvBnqD,KAAKqtD,cAAgBvsC,EAAOusC,cAE5BrtD,KAAKstD,WAAaxsC,EAAOwsC,WAOrBxsC,EAAOysC,WACNvtD,KAAKutD,SACRvtD,KAAKutD,SAAS1M,SAAS//B,EAAO0sC,SAG1B1sC,EAAOmoC,aACVjpD,KAAKwtD,QAAU1sC,EAAO0sC,QAAQ5kD,QAG9B5I,KAAKutD,SAAWzsC,EAAO0sC,SAS1BxtD,KAAKytD,mBAAqB3sC,EAAO4sC,kBAEjC,IAAsB5sC,EAAO0mC,eAAgBxnD,KAAKwnD,gBAClD,IAAsB1mC,EAAO0pB,WAAYxqC,MAErC8gB,EAAO6sC,eACV3tD,KAAK2tD,aAAe7sC,EAAO6sC,aAAa/kD,SAGrCkY,EAAO8sC,iBACV5tD,KAAK4tD,eAAiB9sC,EAAO8sC,eAAehlD,UAOvC,YAAAi3C,QAAP,WACC,IAAK7/C,KAAK6hD,aAAc,CAQvB,GAN0B,UAAtB7hD,KAAKmrD,eAA6BnrD,KAAKwtD,SAC1CxtD,KAAKwtD,QAAQvB,OAGdjsD,KAAKyB,oBAAoB,kBAErBzB,KAAK2oD,aAAc,CACtB,GAAI3oD,KAAKwoB,cACR,KAAOxoB,KAAKwoB,cAAcqlC,WAAW1xD,OAAS,GAC7C6D,KAAKwoB,cAAcm7B,YAAY3jD,KAAKwoB,cAAcslC,YAIpD9tD,KAAK2oD,cAAe,EAUrB,GAPA,YAAM9I,QAAO,WAGT7/C,KAAK4pD,WACR5pD,KAAK4pD,UAAUrgD,QAGZvJ,KAAKynD,eACJznD,KAAK+tD,QACR,IAAK,IAAI1xD,EAAI2D,KAAK+tD,QAAQ5xD,OAAS,EAAGE,GAAK,EAAGA,IAAK,CACtC2D,KAAK+tD,QAAQ5N,SAAS9jD,GAC5BwjD,UAKL7/C,KAAKguD,eACRhuD,KAAKguD,cAAcnO,UAGhB7/C,KAAKiuD,uBACRjuD,KAAKiuD,qBAAqBpO,UAC1B7/C,KAAKiuD,0BAAuBvhD,GAGzB1M,KAAKkuD,cACRluD,KAAKkuD,aAAarO,UAGnB7/C,KAAKgtD,qBAEDhtD,KAAK0oB,SACR1oB,KAAK0oB,QAAQm3B,UAEV7/C,KAAKynB,OACRznB,KAAKynB,MAAMo4B,UAGR7/C,KAAKmuD,kBACRnuD,KAAKmuD,iBAAiBtO,UAGnB7/C,KAAKouD,cACRpuD,KAAKouD,aAAavO,UAGnB,IAAIwO,EAASruD,KAAKquD,QACdA,GAAYA,aAAkB,MAAUA,EAAOxO,SAC9C7/C,KAAKsuD,YAActuD,KAAKsuD,WAAWD,QAAUA,GAIhDA,EAAOxO,UAKT,IAAInE,EAAO17C,KAAK07C,KAgBhB,IAfIA,GAAUA,aAAgB,MAAUA,EAAKmE,SACxC7/C,KAAKsuD,YAActuD,KAAKsuD,WAAW5S,MAAQA,GAI9CA,EAAKmE,UAKH,IAAe7/C,KAAKuuD,KACvBvuD,KAAKkrB,IAAIsjC,UAAUxuD,KAAKuuD,IAGzBvuD,KAAKmN,YAAST,EACV1M,KAAKyuD,SACR,KAAOzuD,KAAKyuD,SAAStyD,OAAS,GAAG,CAChC,IAAI6wB,EAAiBhtB,KAAKyuD,SAAStO,SAAS,GAC5CnzB,EAAO6yB,UACP7/C,KAAKyuD,SAASxO,YAAYjzB,GAI5BhtB,KAAK0uD,0BAAuBhiD,IAgB9B,sBAAW,yBAAU,C,IAyBrB,WACC,OAAO1M,KAAKwmD,a,IA1Bb,SAAsB3wD,GACrBA,EAAQ,IAAgBA,GACpBmK,KAAKwmD,aAAe3wD,IACvBmK,KAAKwmD,YAAc3wD,EAEfmK,gBAAgB,KACnB,IAAWA,KAAKoW,SAAS/Q,YAAY,SAACspD,GACrCA,EAAMxN,WAAatrD,KAIjBA,GACHmK,KAAKmN,OAASnN,KAAKiqD,QACnBjqD,KAAKgtD,sBAGLhtD,KAAK0pD,e,gCAmBR,sBAAW,gCAAiB,C,IAW5B,WACC,OAAK,IAAe1pD,KAAKytD,oBAWlBztD,KAAKytD,mBAVPztD,KAAKqtD,cACDrtD,KAAKqtD,cAAcK,oBAElB1tD,KAAKiqD,SACNjqD,KAAKiqD,QAAQyD,mB,IAjBvB,SAA6B73D,GAC5BA,EAAQ,IAAgBA,GACpBmK,KAAKytD,oBAAsB53D,IAC9BmK,KAAKytD,mBAAqB53D,EAC1BmK,KAAK4uD,uB,gCAuCP,sBAAW,wBAAS,C,IAApB,WACC,OAAI5uD,KAAK6uD,WACD7uD,KAAK6uD,WAGR7uD,KAAKiqD,QACDjqD,KAAKiqD,QAAQ6E,eADrB,G,IAUF,SAAqBj5D,GACpBmK,KAAK6uD,WAAah5D,G,gCAQnB,sBAAW,qBAAM,C,IAmFjB,WACC,OAAOmK,KAAKiqD,S,IApFb,SAAkB98C,GACjB,IAAInN,KAAKwmD,YAAT,CAKA,IAAYxmD,KAAKO,OAEjB,IAAIwuD,EAAY/uD,KAAKiqD,QACjB8E,GAAa5hD,IAEZ4hD,GACHA,EAAU34C,SAAS6pC,YAAYjgD,MAGhCA,KAAKiqD,QAAU98C,EAEXA,GAEHnN,KAAK8uD,UAAY3hD,EAAO2hD,UAEpB3hD,EAAOg0C,aACVnhD,KAAKmhD,YAAa,GAGnBnhD,KAAK6B,OAASsL,EAAOtL,OAErBsL,EAAOiJ,SAAS5X,KAAKwB,MAGjBA,KAAKutD,WAAavtD,KAAKgvD,oBAC1BhvD,KAAKutD,SAASpgD,OAASA,EAAO8hD,kBAG1BjvD,KAAKkvD,YACTlvD,KAAKmvD,SAAWhiD,EAAOgiD,UAGxBnvD,KAAKovD,0BAELpvD,KAAKyB,oBAAoB,cAGzBzB,KAAK8uD,eAAYpiD,K,gCAQV,YAAA2iD,iBAAV,WACCrvD,KAAKssD,eAMI,YAAA8C,wBAAV,WACC,IAAI/uD,EAAiBL,KAEjBsvD,EAAetvD,KAAK0uD,qBASxB,GARIY,GACH,IAAYA,GAAc,SAACC,GAC1BA,EAAY1P,aAId7/C,KAAK0uD,qBAAuB,GAEF,UAAtB1uD,KAAKmrD,cACR,UAAiBz+C,GAAVrM,GAAqB,CAC3B,IAAI4hD,EAAW5hD,EAAOrB,OAAOmgD,GAAG,oBAAqBn/C,KAAKqvD,iBAAkBrvD,MAAM,GAClFA,KAAKwvD,YAAYvN,GACjBjiD,KAAK0uD,qBAAqBlwD,KAAKyjD,GAC/B5hD,EAASA,EAAO8M,SA2BnB,sBAAW,4BAAa,C,IAOxB,WACC,OAAOnN,KAAKyvD,gB,IARb,SAAyB55D,GACxBmK,KAAKyvD,eAAiB55D,G,gCAmBhB,YAAA65D,WAAP,WAEK1vD,KAAK2vD,eACR3vD,KAAKO,MAAMqvD,UAAU5vD,KAAK2vD,eAG3B,IAAIjU,EAAY17C,KAAK07C,KAEjBA,GAAQA,EAAKhzB,SAChB1oB,KAAKO,MAAMqvD,UAAUlU,EAAKhzB,SAG3B,IAAI2lC,EAAcruD,KAAKquD,OAKvB,GAJIA,GAAUA,EAAO3lC,SACpB1oB,KAAKO,MAAMqvD,UAAUvB,EAAO3lC,SAGzB1oB,KAAK2tD,cAAgB3tD,KAAK07C,gBAAgB,IAAO,CACpD,IAAI,EAAY17C,KAAK2tD,aAAakC,OAAO7vD,KAAK07C,MAC1C,GAAQ,EAAKhzB,SAChB1oB,KAAKO,MAAMqvD,UAAU,EAAKlnC,SAI5B,GAAI1oB,KAAK4tD,gBAAkB5tD,KAAKquD,kBAAkB,IAAO,CACxD,IAAI,EAAcruD,KAAK4tD,eAAeiC,OAAO7vD,KAAKquD,QAC9C,GAAU,EAAO3lC,SACpB1oB,KAAKO,MAAMqvD,UAAU,EAAOlnC,SAI1B1oB,KAAK8vD,WACR9vD,KAAKO,MAAMqvD,UAAU5vD,KAAK8vD,YAGF,IAArB9vD,KAAKqnD,cACRrnD,KAAKstD,YAAa,IAmBpB,sBAAW,kBAAG,C,IAAd,WACC,IAAMjlC,EAAMroB,KAAK8uD,UAEjB,OAAIzmC,EACIA,EAAI6C,KACAlrB,KAAKY,OAChBZ,KAAKY,KAAO,IAAI,KAGVZ,KAAKY,O,gCAOb,sBAAW,yBAAU,C,IAArB,WACC,IAAMynB,EAAMroB,KAAK8uD,UAEjB,OAAIzmC,EACIA,EAAI0nC,YACA/vD,KAAKgwD,cAChBhwD,KAAKgwD,YAAc,IAAI,KAGjBhwD,KAAKgwD,c,gCAgBb,sBAAW,iBAAE,C,IAkBb,WACC,OAAOhwD,KAAKiwD,K,IAnBb,SAAcp6D,GACb,GAAImK,KAAKiwD,KAAOp6D,EAAO,CAEtB,GADAmK,KAAKiwD,IAAMp6D,EACPmK,KAAKkrB,IAAIizB,OAAOtoD,GACnB,MAAMM,MAAM,iBAAmBN,EAAQ,+BAGvCmK,KAAKkrB,IAAIglC,OAAOr6D,EAAOmK,MAEpB,IAAQ6pD,kBACX7pD,KAAK8pD,iB,gCA0BR,sBAAW,kBAAG,C,IAAd,WACC,OAAO9pD,KAAKynB,MAAM0oC,M,gCAkBnB,sBAAW,oBAAK,C,IA0BhB,WACC,GAAInwD,KAAKowD,OACR,OAAOpwD,KAAKowD,OAGZ,IAAI,EAASpwD,KAAKiqD,QAClB,OAAI,EACI,EAAO1pD,MAIT,e,IArCR,SAAiBA,GAChBP,KAAKqwD,SAAS9vD,I,gCASR,YAAA8vD,SAAP,SAAgB9vD,GAGf,OAFeP,KAAKowD,QAEJ7vD,IACfP,KAAKowD,OAAS7vD,EAEdP,KAAK0vD,cACE,IA+BT,sBAAW,4BAAa,C,IAOxB,WACC,GAAI1vD,KAAKswD,eACR,OAAOtwD,KAAKswD,eAGZ,IAAI,EAAStwD,KAAKiqD,QAClB,OAAI,EACI,EAAOzhC,mBADf,G,IAbF,SAAyBA,GACxBxoB,KAAKswD,eAAiB9nC,G,gCAwBvB,sBAAW,2BAAY,C,IAAvB,WAKC,OAJKxoB,KAAKuwD,gBACTvwD,KAAKuwD,cAAgBvwD,KAAKO,MAAM+I,IAAI,SACpCtJ,KAAKynB,MAAMne,IAAItJ,KAAKuwD,gBAEdvwD,KAAKuwD,e,gCASb,sBAAW,iCAAkB,C,IAA7B,WAKC,OAJKvwD,KAAKwwD,sBACTxwD,KAAKwwD,oBAAsBxwD,KAAKO,MAAM+I,IAAI,QAC1CtJ,KAAKynB,MAAMne,IAAItJ,KAAKwwD,sBAEdxwD,KAAKwwD,qB,gCAUb,sBAAW,sBAAO,C,IAAlB,WAOC,OANKxwD,KAAKyuD,WACTzuD,KAAKyuD,SAAW,IAAI,IAEpBzuD,KAAKkpD,WAAW1qD,KAAKwB,KAAKyuD,SAASzvD,OAAOyxD,MAAMzwD,KAAK4rD,aAAc5rD,OACnEA,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAawB,KAAKyuD,YAErCzuD,KAAKyuD,U,gCASH,YAAAiC,iBAAV,WACC1wD,KAAK07C,KAAO17C,KAAK07C,KACjB17C,KAAK2wD,QAAU3wD,KAAK2wD,QACpB3wD,KAAK4wD,YAAc5wD,KAAK4wD,YACxB5wD,KAAKquD,OAASruD,KAAKquD,OACnBruD,KAAK6wD,cAAgB7wD,KAAK6wD,cAC1B7wD,KAAK8wD,eAAiB9wD,KAAK8wD,eAC3B9wD,KAAK+wD,gBAAkB/wD,KAAK+wD,gBAC5B/wD,KAAKgxD,iBAAmBhxD,KAAKgxD,iBAC7BhxD,KAAKixD,cAAgBjxD,KAAKixD,cAC1BjxD,KAAKkxD,eAAiBlxD,KAAKkxD,eAC3BlxD,KAAKmxD,UAAYnxD,KAAKmxD,UACtBnxD,KAAKoxD,SAAWpxD,KAAKoxD,SACrBpxD,KAAK68C,KAAO78C,KAAK68C,MASR,YAAAwU,gBAAV,SAA0BC,GACzBtxD,KAAKynB,MAAMkjC,KAAK2G,IAQP,YAAA1G,mBAAV,SAA6B0G,GAC5BtxD,KAAKynB,MAAM8pC,WAAWD,IAUhB,YAAAxH,aAAP,WAEC,IAAI/O,EAAY/6C,KAAK+6C,UACjByW,EAAkB,IAAQA,gBAE1BxxD,KAAK0oB,SACR1oB,KAAK0oB,QAAQq6B,SAASyO,EAAkBzW,GAGzC/6C,KAAKynB,MAAMs7B,SAASyO,EAAkBzW,EAAY,UAE9C,IAAe/6C,KAAKuuD,KACvBvuD,KAAKynB,MAAMs7B,SAASyO,EAAkBxxD,KAAKuuD,IAGxCvuD,KAAKyxD,eACRzxD,KAAKynB,MAAMs7B,SAAS/iD,KAAKyxD,gBAWpB,YAAAC,QAAP,WAEC,OADA1xD,KAAKqxD,gBAAgB,CAAE,GAAMrxD,KAAKC,MAC3BD,KAAKC,KAQH,YAAA0xD,eAAV,WACC,IAAMjpC,EAAU1oB,KAAKurD,aAEjB7iC,GACHA,EAAQpX,OAAO,CAAEhX,EAAG0F,KAAK4xD,KAAK3qC,OAAQ1sB,EAAGyF,KAAK4xD,KAAKxqC,UAQ3C,YAAAyqC,eAAV,WACC,IAAK7xD,KAAK8vD,UAAW,CACpB9vD,KAAK8vD,UAAY9vD,KAAKO,MAAM4oD,SAAS,YACrCnpD,KAAKO,MAAMqvD,UAAU5vD,KAAK8vD,WAC1B9vD,KAAKkpD,WAAW1qD,KAAKwB,KAAK8vD,WAC1B,IAAIvB,EAAa,IAASruD,cAC1BF,KAAK8vD,UAAUnF,KAAK,CAAE,GAAM4D,IAC5BvuD,KAAKynB,MAAMkjC,KAAK,CAAE,YAAa,QAAW,MAAsB4D,EAAK,SAU7D,YAAArC,UAAV,WACC,IAAI0F,EAAO5xD,KAAK4xD,KAEhB,GAAI5xD,KAAK8vD,WAAa8B,EAErB,GAAIA,aAAgB,IAAW,CAC9B5xD,KAAKurD,aAAaZ,KAAK,CAAE,MAAS,IAAU,EAAGiH,EAAKE,YAAa,OAAU,IAAU,EAAGF,EAAKG,eAE7F,IAAI72D,EAAQ,IAA2B,CAAEZ,EAAGs3D,EAAK3qC,OAAQ1sB,EAAGq3D,EAAKxqC,QAAUwqC,EAAKzkD,OAAQnN,MAExFA,KAAK8vD,UAAUx1D,EAAIY,EAAMZ,EACzB0F,KAAK8vD,UAAUv1D,EAAIW,EAAMX,OAIrBq3D,EAAKlpC,SAAWkpC,EAAKlpC,SAAW1oB,KAAKurD,eACxCvrD,KAAKurD,aAAeqG,EAAKlpC,QACzB1oB,KAAK8vD,UAAUxmD,IAAItJ,KAAKurD,eAGzBvrD,KAAK8vD,UAAUtoC,MAAQoqC,EAAKpqC,MAC5BxnB,KAAK8vD,UAAUx1D,EAAIs3D,EAAK3qC,OACxBjnB,KAAK8vD,UAAUv1D,EAAIq3D,EAAKxqC,OACxBpnB,KAAK8vD,UAAU/oC,SAAW6qC,EAAK7qC,UAUxB,YAAA6kC,aAAV,sBAGC,GAAI5rD,KAAKyuD,UAAYzuD,KAAKyuD,SAAStyD,OAAS,EAAG,CAE9C,IAAI,EAAQ,IACR,EAAS,IAER6D,KAAK2vD,cAKT3vD,KAAK2vD,cAAcqC,oBAJnBhyD,KAAK2vD,cAAgB3vD,KAAKO,MAAM4oD,SAAS,UACzCnpD,KAAKkpD,WAAW1qD,KAAKwB,KAAK2vD,gBAM3B3vD,KAAKO,MAAMqvD,UAAU5vD,KAAK2vD,eAE1B,IAAIpB,EAAa,UAAYvuD,KAAKC,IAClCD,KAAK2vD,cAAchF,KAAK,CAAE,GAAM4D,IAEhC,IAAWvuD,KAAK+sD,QAAQ1nD,YAAY,SAAC2nB,GACpCA,EAAO3sB,OAAS,EAChB2sB,EAAOzsB,MAAQ,EAAKA,MAEpB,EAAKovD,cAAchF,KAAK,CAACsH,YAAYjlC,EAAOilC,cAE5CjlC,EAAOklC,iBAAiB,EAAKvC,eAEzB3iC,EAAO1wB,MAAQ,IAClB,EAAQ0wB,EAAO1wB,OAEZ0wB,EAAOzwB,OAAS,IACnB,EAASywB,EAAOzwB,QAGjBywB,EAAOxF,MAAQ,EAAK0jC,eAGrB,IAAIxsB,EAAI,EAAQ,IACZxF,EAAI,EAAS,IAWjBl5B,KAAK2vD,cAAchF,KAAK,CAAE,MAASjsB,EAAG,OAAUxF,EAAG,IAAO,EAAQ,KAAO,EAAI,IAAK,IAAO,EAAS,KAAO,EAAI,MAE7Gl5B,KAAKynB,MAAMkjC,KAAK,CAAE,OAAU,QAAW,MAAsB4D,EAAK,YAE1DvuD,KAAK2vD,gBACb3vD,KAAKynB,MAAM8pC,WAAW,UACtBvxD,KAAK2vD,cAAcqC,qBAUX,YAAAG,eAAV,WACKnyD,KAAK8vD,YAER9vD,KAAKoyD,cAAcpyD,KAAK8vD,WACxB9vD,KAAK8vD,eAAYpjD,IAWZ,YAAA2lD,WAAP,SAAkB3pC,GACjB1oB,KAAK0oB,QAAUA,EACf1oB,KAAK0wD,mBACL1wD,KAAK4uD,sBAUN,sBAAW,sBAAO,C,IAgClB,WACC,OAAO5uD,KAAKsyD,U,IAjCb,SAAmB5pC,GAGlB1oB,KAAKuyD,gBAGLvyD,KAAKsyD,SAAW5pC,EAMhB1oB,KAAKynB,MAAMne,IAAIof,GAEXA,EAAQynC,gBAAgBqC,iBAC3BxyD,KAAKymD,SAAU,GAKXzmD,KAAK6pC,SACT7pC,KAAKqqD,WAGF,IAAQR,kBACX7pD,KAAK8pD,gB,gCAiBP,sBAAW,2BAAY,C,IAAvB,WACC,OAAI9pD,KAAKguD,cACDhuD,KAAKguD,cAEJhuD,KAAKiqD,QACNjqD,KAAKiqD,QAAQhiC,kBADhB,G,IAUN,SAAwBA,GACvBjoB,KAAKguD,cAAgB/lC,G,gCAUZ,YAAA0jC,eAAV,WAEC,GAAI3rD,KAAK0oB,QACR,GAAI1oB,KAAKyyD,YACRzyD,KAAKsnD,MAAQtnD,KAAKyyD,gBAEd,CACJ,IAAIC,EAAsB1yD,KAAK0oB,QAAQzsB,UACvC+D,KAAKsnD,MAAQ,CAAEhtD,EAAGo4D,EAAQp4D,EAAGC,EAAGm4D,EAAQn4D,EAAG+B,MAAOo2D,EAAQp2D,MAAOC,OAAQm2D,EAAQn2D,UAa7E,YAAAo2D,aAAP,WACC,GAAI3yD,KAAK0oB,QAAS,CACjB,IAAIkqC,EAA+B5yD,KAAK0oB,QAAQsiC,gBAE5C7iC,EAAOnoB,KAAKmoB,KAEZjB,EAAK,EACLG,EAAK,EAELwrC,EAAW1qC,EAAK7tB,EAChBw4D,EAAW3qC,EAAK5tB,EAEhBw4D,EAAe5qC,EAAK7rB,MACpB02D,EAAgB7qC,EAAK5rB,OAErBmrB,EAAmB1nB,KAAK0nB,iBACxBurC,EAAoBjzD,KAAKizD,kBACzBtrC,EAAkB3nB,KAAK2nB,gBACvBurC,EAAqBlzD,KAAKkzD,mBAG1BC,EAAgB,IAAUJ,EAAerrC,EAAmBurC,EAAmBjzD,KAAK8xD,YACpFsB,EAAiB,IAAUJ,EAAgBrrC,EAAkBurC,EAAoBlzD,KAAK+xD,aAGtFn5D,EAAOuvB,EAAK7tB,EACZzB,EAAQsvB,EAAK7tB,EAAI64D,EAEjB,EAAMhrC,EAAK5tB,EACX6B,EAAS+rB,EAAK5tB,EAAI64D,EAElB3H,EAAmBzrD,KAAKyrD,iBACxBC,EAAiB1rD,KAAK0rD,eAE1B,OAAQD,GACP,IAAK,OACJvkC,EAAK2rC,EAAWnrC,EAChB,MACD,IAAK,OACJR,EAAKQ,EACL,MACD,IAAK,SACJR,EAAKQ,GAAoBqrC,EAAeE,EAAoBvrC,GAAoB,EAChF,MACD,IAAK,QACJR,GAAM+rC,EAAoBF,EAI5B,OAAQrH,GACP,IAAK,OACJrkC,EAAKyrC,EAAWnrC,EAChB,MACD,IAAK,MACJN,EAAKM,EACL,MACD,IAAK,SACJN,EAAKM,GAAmBqrC,EAAgBE,EAAqBvrC,GAAmB,EAChF,MACD,IAAK,SACJN,GAAM6rC,EAAqBF,EAI7BhzD,KAAKwpD,gBAAkB4J,EACvBpzD,KAAKupD,eAAiB4J,EAEtB,IAAI74D,EAAY,IAAY4sB,EAAK2rC,EAAU7yD,KAAKknD,oBAAoB,GAChE3sD,EAAY,IAAY8sB,EAAKyrC,EAAU9yD,KAAKknD,oBAAoB,GAEpElnD,KAAKknB,GAAK5sB,EAAIotB,EACd1nB,KAAKqnB,GAAK9sB,EAAIotB,EAEd3nB,KAAK4nD,QAAUhvD,EAAO0B,EAAIotB,EAC1B1nB,KAAK6nD,SAAWhvD,EAAQyB,EAAIotB,EAE5B1nB,KAAK8nD,OAAS,EAAMvtD,EAAIotB,EACxB3nB,KAAK+nD,UAAY3rD,EAAS7B,EAAIotB,EAE1B3nB,KAAKqzD,eACR/4D,GAAK,GACLC,GAAK,IAGNyF,KAAK0oB,QAAQpX,OAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAE3Bq4D,GAAwB5yD,KAAK0oB,QAAQsiC,iBACxChrD,KAAKyB,oBAAoB,iBAarB,YAAAqpD,QAAP,WAEC9qD,KAAK2yD,eAEL,IAAIQ,EAAgBnzD,KAAKupD,eACrB6J,EAAiBpzD,KAAKwpD,gBAGtB5wD,EAAOoH,KAAK4nD,QACZ/uD,EAAQmH,KAAK6nD,SAEbx/B,EAAMroB,KAAK8nD,OACX1rD,EAAS4D,KAAK+nD,UAGlB/nD,KAAK0nD,mBAAqByL,EAC1BnzD,KAAK2nD,oBAAsByL,EAE3B,IAAIE,EAAoBtzD,KAAKknD,mBAS7B,GAPAlnD,KAAKgoD,YAAchoD,KAAK4nD,QACxB5nD,KAAKioD,aAAejoD,KAAK6nD,SACzB7nD,KAAKkoD,WAAaloD,KAAK8nD,OACvB9nD,KAAKmoD,cAAgBnoD,KAAK+nD,UAIJ,IAAlB/nD,KAAK+mB,UAAiC,IAAf/mB,KAAKwnB,MAAa,CAGxCxnB,KAAK4sD,mBACR5sD,KAAK6sD,YAAc7sD,KAAK6sD,aAGzB,IAAIvsD,EAAMN,KAAKO,MAAMD,IAEjBizD,EAAoBjzD,EAAIkzD,kBACxBzsC,EAAmB/mB,KAAK+mB,SAE5BwsC,EAAOx8D,EAAI,IAAUgwB,GAAY/mB,KAAKwnB,MACtC+rC,EAAO3hD,GAAM,IAAUmV,GAAY/mB,KAAKwnB,MACxC+rC,EAAOlvD,EAAI,EACXkvD,EAAO9wD,EAAI,IAAUskB,GAAY/mB,KAAKwnB,MACtC+rC,EAAOp7D,EAAI,IAAU4uB,GAAY/mB,KAAKwnB,MACtC+rC,EAAO3uD,EAAI,EAEX,IAAIpH,EAAe8C,EAAImzD,iBACvBj2D,EAAGlD,EAAI1B,EACP4E,EAAGjD,EAAI8tB,EAEP,IAAI5qB,EAAe6C,EAAImzD,iBACvBh2D,EAAGnD,EAAIzB,EACP4E,EAAGlD,EAAI8tB,EAEP,IAAI3qB,EAAe4C,EAAImzD,iBACvB/1D,EAAGpD,EAAIzB,EACP6E,EAAGnD,EAAI6B,EAEP,IAAIk6B,EAAeh2B,EAAImzD,iBACvBn9B,EAAGh8B,EAAI1B,EACP09B,EAAG/7B,EAAI6B,EAEP,IAAIs3D,EAAgBl2D,EAAGm2D,gBAAgBJ,GACnCK,EAAgBn2D,EAAGk2D,gBAAgBJ,GACnCM,EAAgBn2D,EAAGi2D,gBAAgBJ,GACnCO,EAAgBx9B,EAAGq9B,gBAAgBJ,GAEvC36D,EAAOrB,KAAKK,IAAI87D,EAAIp5D,EAAGs5D,EAAIt5D,EAAGu5D,EAAIv5D,EAAGw5D,EAAIx5D,GACzCzB,EAAQtB,KAAKM,IAAI67D,EAAIp5D,EAAGs5D,EAAIt5D,EAAGu5D,EAAIv5D,EAAGw5D,EAAIx5D,GAC1C+tB,EAAM9wB,KAAKK,IAAI87D,EAAIn5D,EAAGq5D,EAAIr5D,EAAGs5D,EAAIt5D,EAAGu5D,EAAIv5D,GAGxC44D,EAAgBt6D,EAAQD,EACxBw6D,GAHAh3D,EAAS7E,KAAKM,IAAI67D,EAAIn5D,EAAGq5D,EAAIr5D,EAAGs5D,EAAIt5D,EAAGu5D,EAAIv5D,IAGjB8tB,EAE1BroB,KAAK4nD,QAAU,IAAYhvD,EAAM06D,GAAmB,GACpDtzD,KAAK6nD,SAAW,IAAYhvD,EAAOy6D,GAAmB,GACtDtzD,KAAK8nD,OAAS,IAAYz/B,EAAKirC,GAAmB,GAClDtzD,KAAK+nD,UAAY,IAAY3rD,EAAQk3D,GAAmB,GAQzD,OALAtzD,KAAKupD,eAAiB,IAAY4J,EAAeG,GAAmB,GACpEtzD,KAAKwpD,gBAAkB,IAAY4J,EAAgBE,GAAmB,IAIlEtzD,KAAKupD,gBAAkBvpD,KAAKqpD,oBAAsBrpD,KAAKwpD,iBAAmBxpD,KAAKspD,uBAClFtpD,KAAKspD,oBAAsBtpD,KAAKwpD,gBAChCxpD,KAAKqpD,mBAAqBrpD,KAAKupD,eAG/BvpD,KAAKmB,SAAS,gBAETnB,KAAK+zD,SAAiC,OAAtB/zD,KAAKmrD,eAAgD,UAAtBnrD,KAAKmrD,gBAA8BnrD,KAAKwtD,SAAWxtD,KAAKwtD,QAAQ3B,UAAY,IAAe7rD,KAAKg0D,cAAgB,IAAeh0D,KAAKi0D,eACvLj0D,KAAKorD,yBAGC,IAYF,YAAA8I,aAAP,SAAoB7zD,GACnB,IAAI8M,EAASnN,KAAKiqD,QAElB,GAAI98C,EAAQ,CACX,IAAIxF,EAAgBwF,EAAOiJ,SAAStf,QAAQuJ,IAC7B,IAAXsH,IACHwF,EAAOiJ,SAASwqC,UAAU5gD,KAAM2H,GAChCwF,EAAOgnD,gBAIT,OAAOn0D,MASD,YAAAo0D,YAAP,SAAmB/zD,GAClB,IAAI8M,EAASnN,KAAKiqD,QAElB,GAAI98C,EAAQ,CACX,IAAIxF,EAAgBwF,EAAOiJ,SAAStf,QAAQuJ,IAC7B,IAAXsH,IACHwF,EAAOiJ,SAASwqC,UAAU5gD,KAAM2H,EAAQ,GACxCwF,EAAOgnD,gBAIT,OAAOn0D,MAWE,YAAAuyD,cAAV,WAEKvyD,KAAKsyD,WACRtyD,KAAKoyD,cAAcpyD,KAAKsyD,UACxBtyD,KAAKsyD,cAAW5lD,IAaX,YAAA2nD,aAAP,SAAoBx+D,GACnB,OAAIA,aAAiB,IACbA,EAAMA,MAELmK,KAAKiqD,QACNp0D,EAAQmK,KAAKiqD,QAAQ7D,WAEtB,GAYD,YAAAkO,aAAP,SAAoBz+D,GACnB,OAAIA,aAAiB,IACbA,EAAMA,MAELmK,KAAKiqD,QACNp0D,EAAQmK,KAAKiqD,QAAQ/D,YAEtB,GAcD,YAAAqO,UAAP,SAAiB1+D,GAKhB,IAAI2+D,EAAgB,EACpB,GAAI,IAAe3+D,GAClB2+D,EAAQ3+D,OAEJ,GAAIA,aAAiB,IAAS,CAClC,IAAI4+D,EAAmB5+D,EAAMA,MAEzBmK,KAAKiqD,UACRuK,EAAQ,IAAYx0D,KAAKiqD,QAAQ7D,WAAaqO,EAAUz0D,KAAKknD,oBAAoB,IAGnF,OAAOsN,GAcD,YAAAE,UAAP,SAAiB7+D,GAKhB,IAAI2+D,EAAgB,EACpB,GAAI,IAAe3+D,GAClB2+D,EAAQ3+D,OAEJ,GAAIA,aAAiB,IAAS,CAClC,IAAI4+D,EAAmB5+D,EAAMA,MAEzBmK,KAAKiqD,UACRuK,EAAQ,IAAYx0D,KAAKiqD,QAAQ/D,YAAcuO,EAAUz0D,KAAKknD,oBAAoB,IAIpF,OAAOsN,GAoBD,YAAAljD,OAAP,SAAcpW,EAAe6rB,EAAmBS,EAAgBmtC,GAC3D30D,KAAK20D,YAAcA,IAGnBz5D,IACC,IAAeA,EAAMZ,IACxB0F,KAAKopD,iBAAiB,IAAK,IAAYluD,EAAMZ,EAAG0F,KAAKknD,oBAAoB,IAEtE,IAAehsD,EAAMX,IACxByF,KAAKopD,iBAAiB,IAAK,IAAYluD,EAAMX,EAAGyF,KAAKknD,oBAAoB,KAIvE,IAAengC,KAClB/mB,KAAK+mB,SAAWA,GAGb,IAAeS,KAClBxnB,KAAKwnB,MAAQA,GAIdxnB,KAAKyqD,uBASN,sBAAW,mBAAI,C,IA4Cf,WACC,OAAKzqD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,OAAQzD,KAAKinD,MAAM/lD,OAHxClB,KAAKinD,MAAM/lD,O,IA9CpB,SAAgB0wD,GAAhB,WACK5xD,KAAKinD,MAAM/lD,QAAU0wD,IAEpBA,GAEH5xD,KAAK6xD,iBAECD,aAAgB,IAOrB5xD,KAAKurD,aAAevrD,KAAKO,MAAM+I,IAAI,SANnCsoD,EAAKpG,YAAa,EACdoG,EAAKlpC,UACR1oB,KAAKurD,aAAeqG,EAAKlpC,UAOvB1oB,KAAKurD,cACRvrD,KAAK8vD,UAAUxmD,IAAItJ,KAAKurD,cAGzBvrD,KAAKinD,MAAMjmD,IAAI4wD,EAAM,IAAI,IAAc,CAEtCA,EAAK5yD,OAAOmgD,GAAG,kBAAkB,WAAY,EAAKyV,QAAU,EAAK1I,mBAAkBx/C,GAAW,GAC9FklD,EAAK5yD,OAAOmgD,GAAG,YAAan/C,KAAKksD,UAAWlsD,MAAM,GAClD4xD,EAAK5yD,OAAOmgD,GAAG,kBAAmBn/C,KAAKksD,UAAWlsD,MAAM,MAGzDA,KAAKksD,cAGLlsD,KAAKinD,MAAMtO,QACX34C,KAAKynB,MAAM8pC,WAAW,aACtBvxD,KAAKmyD,oB,gCAgCR,sBAAW,4BAAa,C,IAsBxB,WACC,OAAOnyD,KAAKsrD,gB,IAvBb,SAAyBv3C,GACpBA,GAEH/T,KAAK6xD,iBAEA7xD,KAAKurD,eACTvrD,KAAKurD,aAAevrD,KAAKO,MAAM+I,IAAI,QACnCtJ,KAAK8vD,UAAUxmD,IAAItJ,KAAKurD,eAEzBvrD,KAAKurD,aAAaZ,KAAK,CAAE,MAAS52C,EAAKzX,MAAO,OAAUyX,EAAKxX,WAG7DyD,KAAKmyD,iBACLnyD,KAAKurD,kBAAe7+C,GAErB1M,KAAKsrD,eAAiBv3C,G,gCAiBvB,sBAAW,yBAAU,C,IAoBrB,WACC,OAAO/T,KAAKypD,a,IArBb,SAAsB5zD,IACrBA,EAAQ,IAAgBA,MAGvBmK,KAAKupD,eAAiB,EACtBvpD,KAAKwpD,gBAAkB,GAKpBxpD,KAAKypD,aAAe5zD,IACvBmK,KAAKypD,YAAc5zD,EACnBmK,KAAKyqD,uB,gCAoBA,YAAAoK,QAAP,SAAex0D,GAEVL,KAAK6pC,SACR7pC,KAAKqqD,WAEFhqD,EAAOwpC,SACVxpC,EAAOgqD,WAGR,IAAIyK,EAAM90D,KAAKinB,OACX8tC,EAAM/0D,KAAKonB,OACX4tC,EAAMF,EAAM90D,KAAKmzD,cACjB8B,EAAMF,EAAM/0D,KAAKozD,eAEjB8B,EAAM70D,EAAO4mB,OACbkuC,EAAM90D,EAAO+mB,OACbguC,EAAMF,EAAM70D,EAAO8yD,cACnBkC,EAAMF,EAAM90D,EAAO+yD,eAEvB,QAAS8B,EAAMF,GAAOI,EAAMN,GAAOK,EAAMF,GAAOI,EAAMN,IAevD,sBAAW,qBAAM,C,IAAjB,WACC,OAAO/0D,KAAK0mD,S,gCAWN,YAAA6F,QAAP,WACC,OAAOvsD,KAAK2mD,QASb,sBAAW,qBAAM,C,IAAjB,WACC,IAAK3mD,KAAKs1D,QAAS,CAClB,IAAMztD,EAAQ,IAAI,IAGlB7H,KAAKs1D,QAAU,IAAI,IAA+EztD,GAGlG7H,KAAKkpD,WAAW1qD,KAAKwB,KAAKs1D,QAAQt2D,OAAOmgD,GAAG,YAAan/C,KAAKu1D,aAAcv1D,MAAM,IAClFA,KAAKkpD,WAAW1qD,KAAKwB,KAAKs1D,QAAQt2D,OAAOmgD,GAAG,SAAUn/C,KAAKu1D,aAAcv1D,MAAM,IAE/EA,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAmBwB,KAAKs1D,UACjDt1D,KAAKkpD,WAAW1qD,KAAKqJ,GAEtB,OAAO7H,KAAKs1D,S,gCAUb,sBAAW,0BAAW,C,IAAtB,WACC,IAAKt1D,KAAKitD,OAAO/N,OAAO,UAAW,CAClC,IAAIsW,EAAcx1D,KAAKitD,OAAO9pD,OAAO,UACrCqyD,EAAYhrB,WAAWmmB,QAAU,EACjC6E,EAAYhrB,WAAWqhB,SAAU,EAGlC,OAAO7rD,KAAKitD,OAAO/N,OAAO,W,gCAU3B,sBAAW,2BAAY,C,IAAvB,WAEMl/C,KAAKitD,OAAO/N,OAAO,aACJl/C,KAAKitD,OAAO9pD,OAAO,WACzBqnC,WAAWmmB,QAAU,GAGnC,OAAO3wD,KAAKitD,OAAO/N,OAAO,Y,gCAajB,YAAAqW,aAAV,SAAuBpR,GACtB,IAAIt8C,EAA4Ds8C,EAAM/E,SAgBtE,GAfAv3C,EAAMxH,OAASL,KACf6H,EAAMtF,KAAO4hD,EAAMrjD,KACfd,KAAKitD,OAAO9O,OAAO,UAAmC,SAAtBn+C,KAAKmrD,gBAA6B,IAAenrD,KAAKi0D,cAAgB,IAAej0D,KAAKg0D,iBAC7Hh0D,KAAKy1D,WAAY,IAGdz1D,KAAKitD,OAAO9O,OAAO,SAAkC,SAAtBn+C,KAAKmrD,gBAA6B,IAAenrD,KAAKi0D,cAAgB,IAAej0D,KAAKg0D,iBAC5Hh0D,KAAK01D,WAAY,GAGd11D,KAAKitD,OAAO9O,OAAO,WACtBn+C,KAAKmxD,WAAY,GAIdnxD,KAAKynD,cAIR,IAHA,IAAMkO,EAAS31D,KAAK21D,OAAO58D,OACrB,EAAS48D,EAAOx5D,OAEbE,EAAI,EAAGA,EAAI,IAAUA,EAAG,CAChC,IAAMuM,EAAQ+sD,EAAOt5D,GAChBuM,EAAMi5C,cACVj5C,EAAMqkD,OAAOiD,OAAOroD,EAAMtF,KAAMsF,KAapC,sBAAW,yBAAU,C,IAArB,WAKC,OAJK7H,KAAK41D,cACT51D,KAAK41D,YAAc,GACnB51D,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAkBwB,KAAK41D,eAE1C51D,KAAK41D,a,gCAUN,YAAAC,YAAP,SAAmB36D,GAClB,IAEC,IAAIitB,EAAOnoB,KAAKwoB,cAAcJ,wBAE9B,MAAO,CACN,EAAKltB,EAAMZ,EAAI6tB,EAAKvvB,KACpB,EAAKsC,EAAMX,EAAI4tB,EAAKE,KAGtB,MAAOhkB,GACN,OAAOnJ,IAaF,YAAA46D,QAAP,SAAeC,EAAuEhvB,EAAkBivB,GACvG,OAAO,IAAI,IAAUh2D,KAAM+1D,EAAkBhvB,EAAUivB,GAAQv8D,SAkBzD,YAAAgzD,SAAP,SAAgB52D,EAAoEogE,EAA6BD,GAChH,IAAInuD,EACJ,GAAIhS,aAAiB,IACpBmK,KAAKitD,OAAOiD,OAAOr6D,EAAM0M,KAAM1M,GAC/BgS,EAAQhS,OAIR,KADAgS,EAAQ7H,KAAKitD,OAAO/N,OAAOrpD,IAE1B,OAUF,GAAkB,SAAdgS,EAAMtF,KAAiB,CAC1B,GAAIvC,KAAKk2D,SACR,OAEDl2D,KAAK+zD,SAAU,EA0BhB,MAvBkB,UAAdlsD,EAAMtF,KACTvC,KAAK4mD,UAAW,EAGX5mD,KAAK6rD,SACT7rD,KAAKm2D,cAActuD,EAAM2iC,WAAWqhB,SAAW7rD,KAAK0sD,aAAaliB,WAAWqhB,SAI5D,UAAdhkD,EAAMtF,OACTvC,KAAKo2D,UAAW,GAKZ,IAAeH,KACnBA,EAAqBpuD,EAAMouD,oBAGvB,IAAeD,KACnBA,EAASnuD,EAAMwuD,kBAGTr2D,KAAKs2D,UAAUzuD,EAAOouD,EAAoBD,IAiB3C,YAAAO,kBAAP,SAAyBxvB,GAIxB,IAAIyvB,EAAuCx2D,KAAKysD,SAASzsD,KAAK0sD,aAAc3lB,GAmB5E,OAjBI/mC,KAAK+zD,UACRyC,EAAYx2D,KAAKysD,SAAS,QAAS1lB,IAGhC/mC,KAAKy2D,QAAUz2D,KAAKmtD,aAAauJ,aAAav6D,SACjDq6D,EAAYx2D,KAAKysD,SAAS,OAAQ1lB,IAGnC/mC,KAAK22D,UAAY32D,KAAK22D,UAElB32D,KAAKo2D,WACRI,EAAYx2D,KAAKysD,SAAS,SAAU1lB,GAChC/mC,KAAK+zD,SAAW/zD,KAAKitD,OAAO9O,OAAO,iBACtCqY,EAAYx2D,KAAKysD,SAAS,cAAe1lB,KAIpCyvB,GAcE,YAAAF,UAAV,SAAoBzuD,EAA2Dk/B,EAAkBivB,GAAjG,IAIEY,EAJF,OAEKx6C,EAAqC,GACxCy6C,EAAahvD,EAAMivD,UAkCpB,GA7BA,IAAaD,GAAY,SAACE,EAAcC,GACvC,IAAIC,EAA0B,EAAMF,GAOpC,GALIC,GAAcC,QAA8DvqD,GAA9C,EAAKggD,aAAaliB,WAAWusB,KAC9D,EAAKrK,aAAaliB,WAAWusB,GAAgBE,GAIvB,WAAdD,EAAyB,CACjC,IAAIE,EAAkC,CAAE/mC,KAAM8mC,EAAc/mC,GAAS8mC,EAAY3sB,SAAU0sB,GAC3F36C,EAAQ5d,KAAK04D,OAIX96C,EAAQjgB,OAAS,KACpBy6D,EAAa52D,KAAK81D,QAAQ15C,EAAS2qB,EAAUivB,MAC1BY,EAAWO,aAG7Bn3D,KAAKkpD,WAAW1qD,KAAKo4D,EAAW53D,OAAOmgD,GAAG,kBAAkB,WAC3D,EAAK19C,oBAAoB,uBAI1BzB,KAAKyB,oBAAoB,oBAKvBoG,EAAMklD,QAAQ5wD,OAAS,EAAG,CAC7B,IAAI,EAAuB,GAE3B,IAAW0L,EAAMklD,QAAQ1nD,YAAY,SAAC+xD,GACrC,IAAIC,EAA4BD,EAAYxuD,QAC5C,EAAWpK,KAAK64D,GAChB,IAAItB,EAAwC,GAE5C,IAAW,EAAKhJ,QAAQ1nD,YAAY,SAACiyD,GAEhCA,EAAcvc,WAAasc,EAAUtc,YAEnC,IAAe,EAAK2R,aAAaK,QAAQ1nD,YAAY,SAAC/K,GAAM,OAAAA,EAAEygD,YAAcsc,EAAhB,cAChE,EAAK3K,aAAaK,QAAQvuD,KAAK84D,GAGhC,IAAaD,EAAU7sB,YAAY,SAACusB,EAAc3X,GACjD,IAAI6X,EAAqBK,EAAe9sB,WAAWusB,GAE/CE,GAAgB7X,GACnB2W,EAAiBv3D,KAAK,CAAE6rC,SAAU0sB,EAAc5mC,KAAM8mC,EAAc/mC,GAAIkvB,WAM5EiY,EAAUvB,QAAQC,EAAkBhvB,EAAUivB,MAE/Ch2D,KAAK+sD,QAAQxjD,QACbvJ,KAAK+sD,QAAQxhC,QAAQ,GAGtB,OAAOqrC,GASD,YAAAW,eAAP,WACC,OAAOv3D,KAAKw3D,WAAWr7D,OAAS,GASjC,sBAAW,sBAAO,C,IAsBlB,WACC,QAAI6D,KAAKy3D,iBACDz3D,KAAKmtD,aAAa4G,S,IAxB3B,SAAmBl+D,IAClBA,EAAQ,IAAgBA,MACVmK,KAAK+zD,SACd/zD,KAAKy3D,kBACRz3D,KAAKmtD,aAAa4G,QAAUl+D,EACxBA,EACHmK,KAAK03D,cAGL13D,KAAKmtD,aAAawK,aAAc,EAChC33D,KAAK43D,e,gCAwBT,sBAAW,wBAAS,C,IAApB,WACC,OAAO53D,KAAKooD,Y,gCAQb,sBAAW,wBAAS,C,IAApB,WACC,OAAOpoD,KAAKqoD,Y,gCASb,sBAAW,qBAAM,C,IAgBjB,WACC,QAAIroD,KAAKy3D,iBACDz3D,KAAKmtD,aAAasJ,Q,IAlB3B,SAAkB5gE,GACjBA,EAAQ,IAAgBA,GACpBmK,KAAKy3D,iBAAmBz3D,KAAKy2D,QAAU5gE,IAC1CmK,KAAKmtD,aAAasJ,OAAS5gE,EACvBA,EACHmK,KAAK63D,aAGL73D,KAAK83D,a,gCAoBR,sBAAW,wBAAS,C,IAkBpB,WACC,QAAI93D,KAAKy3D,iBACDz3D,KAAKmtD,aAAawJ,W,IApB3B,SAAqB9gE,GACpBA,EAAQ,IAAgBA,GACpBmK,KAAKmxD,WAAanxD,KAAK22D,WAAa9gE,GACnCmK,KAAKy3D,kBACRz3D,KAAKmtD,aAAawJ,UAAY9gE,GAChB,IAAVA,EACHmK,KAAK+3D,cAGL/3D,KAAKg4D,e,gCAsBT,sBAAW,uBAAQ,C,IA2BnB,WACC,OAAOh4D,KAAKgnD,W,IA5Bb,SAAoBnxD,GACnBmK,KAAKi4D,UAAUpiE,I,gCAIN,YAAAoiE,UAAV,SAAoBpiE,GAEnBA,EAAQ,IAAgBA,GACpBmK,KAAKgnD,YAAcnxD,IACtBmK,KAAKgnD,UAAYnxD,EACbA,GAASmK,KAAKitD,OAAO9O,OAAO,WAC/Bn+C,KAAKysD,SAAS,UACVzsD,KAAK+zD,SAAW/zD,KAAKitD,OAAO9O,OAAO,gBACtCn+C,KAAKysD,SAAS,gBAIfzsD,KAAKu2D,oBAGNv2D,KAAKyB,oBAAoB,aAsB3B,sBAAW,uBAAQ,C,IAOnB,WAIC,IAAIyW,EAAUlY,KAAKujD,iBAAiB,YACpC,OAAI,IAAerrC,GACXA,EAGHlY,KAAKqtD,cACDrtD,KAAKqtD,cAAclD,WAEvBnqD,KAAKiqD,SACDjqD,KAAKiqD,QAAQE,U,IApBvB,SAAoBt0D,GACnBmK,KAAKk4D,YAAYriE,I,gCA0BR,YAAAqiE,YAAV,SAAsBriE,GAGrB,GAFAA,EAAQ,IAAgBA,GACVmK,KAAKujD,iBAAiB,aACrB1tD,EAAO,CAErB,GADAmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,GACrCA,EACHmK,KAAKmN,OAASnN,KAAKiqD,QACnBjqD,KAAKgtD,qBACLhtD,KAAKynB,MAAMkjC,KAAK,CAAE,QAAW,SAC7B3qD,KAAKmB,SAAS,gBAEV,CACJ,GAAInB,KAAKiqD,QAAS,CACjB,IAAIxiC,EAAeznB,KAAKiqD,QAAQvhC,QAC3BjB,EAAM0wC,SAASn4D,KAAKynB,QACxBA,EAAMne,IAAItJ,KAAKynB,OAIbznB,gBAAgB,KACnBA,KAAKo4D,iBACDp4D,KAAKq4D,aACRr4D,KAAKq4D,YAAY3O,cAIlB1pD,KAAK0pD,aAED1pD,KAAKosD,YACTpsD,KAAK4qD,mBAAmB,WAEzB5qD,KAAKmB,SAAS,WAKf,OAFAnB,KAAKmB,SAAS,eACd,IAAOipD,gBACA,EAER,OAAO,GAWR,sBAAW,yBAAU,C,IAYrB,WACC,OAAOpqD,KAAKuoD,mB,IAbb,SAAsB1yD,GACjBmK,KAAKuoD,mBAAqB1yD,IAC7BmK,KAAKuoD,kBAAoB1yD,EACzBmK,KAAKwoD,iBAAkB,EACvBxoD,KAAKyqD,uB,gCAiDP,sBAAW,8BAAe,C,IAQ1B,WACC,OAAIzqD,KAAKmuD,iBACDnuD,KAAKmuD,iBAEJnuD,KAAKqtD,cACNrtD,KAAKqtD,cAAciL,gBAElBt4D,KAAKiqD,QACNjqD,KAAKiqD,QAAQqO,iBAErBt4D,KAAKmuD,iBAAmB,IAAI,IAC5BnuD,KAAKmuD,iBAAiBoK,SAAWv4D,KAAKu4D,SAC/Bv4D,KAAKs4D,kB,IApBb,SAA2BziE,GAC1BmK,KAAKmuD,iBAAmBt4D,EACxBmK,KAAKmuD,iBAAiBoK,SAAWv4D,KAAKu4D,U,gCAiDvC,sBAAW,4BAAa,C,IAQxB,WACC,OAAIv4D,KAAKw4D,eACDx4D,KAAKw4D,eAEJx4D,KAAKqtD,cACNrtD,KAAKqtD,cAAcoL,cAElBz4D,KAAKiqD,QACNjqD,KAAKiqD,QAAQwO,eAErBz4D,KAAKw4D,eAAiB,IAAI,IAC1Bx4D,KAAKw4D,eAAeD,SAAWv4D,KAAKu4D,SAC7Bv4D,KAAKy4D,gB,IApBb,SAAyB5iE,GACxBmK,KAAKw4D,eAAiB3iE,EACtBmK,KAAKw4D,eAAeD,SAAWv4D,KAAKu4D,U,gCAkCrC,sBAAW,gCAAiB,C,IAQ5B,WACC,OAAIv4D,KAAK04D,mBACD14D,KAAK04D,mBAEJ14D,KAAKqtD,cACNrtD,KAAKqtD,cAAcsL,kBAElB34D,KAAKiqD,QACNjqD,KAAKiqD,QAAQ0O,mBAErB34D,KAAK04D,mBAAqB,IAAI,IAC9B14D,KAAK04D,mBAAmBH,SAAWv4D,KAAKu4D,SACjCv4D,KAAK24D,oB,IApBb,SAA6B9iE,GAC5BmK,KAAK04D,mBAAqB7iE,EAC1BmK,KAAK04D,mBAAmBH,SAAWv4D,KAAKu4D,U,gCA+BzC,sBAAW,uBAAQ,C,IA6BnB,WACC,IAAIA,EAAWv4D,KAAKmnD,UAAUjmD,MAC9B,OAAIq3D,IAGKv4D,KAAKqtD,cACNrtD,KAAKqtD,cAAckL,SAElBv4D,KAAKiqD,QACNjqD,KAAKiqD,QAAQsO,UAErBA,EAAW,IAAI,IACfv4D,KAAKu4D,SAAWA,EACTA,K,IA1CR,SAAoB1iE,GAApB,WACKmK,KAAKmnD,UAAUjmD,QAAUrL,GAC5BmK,KAAKmnD,UAAUnmD,IAAInL,EAAOA,EAAMmJ,OAAOmgD,GAAG,iBAAiB,SAACyZ,GAU3D,GATI,EAAKzK,mBACR,EAAKA,iBAAiBoK,SAAW,EAAKA,UAEnC,EAAKC,iBACR,EAAKA,eAAeD,SAAW,EAAKA,UAEjC,EAAKG,qBACR,EAAKA,mBAAmBH,SAAW,EAAKA,UAErC,EAAKnR,WAAWlmD,MAAO,CAC1B,IAAM23D,EAAY,EAAKzR,WAAWlmD,MAClC23D,EAAUP,gBAAgBC,SAAW,EAAKA,SAC1CM,EAAUJ,cAAcF,SAAW,EAAKA,SACxCM,EAAUF,kBAAkBJ,SAAW,EAAKA,SAC5CM,EAAUN,SAAW,EAAKA,SAEvB,aAAgB,KACnB,EAAKH,sB,gCA+DF,YAAAU,eAAP,SAAsBj3B,EAAgBstB,GACrC,GAAI,IAAettB,GAAS,CAC3BA,EAAS,IAAiBA,GAE1B,IAAIk3B,GADJl3B,EAAS,cAAmBm3B,OAAOn3B,IACjBljB,MAAM,gBACpBtiB,OAAC,EACL,GAAI08D,EACH,IAAK18D,EAAI,EAAGA,EAAI08D,EAAK58D,OAAQE,IAAK,CACjC,IAAI48D,EAAMF,EAAK18D,GAAG3F,QAAQ,cAAe,MACrCb,EAAQmK,KAAKk5D,YAAYD,EAAK,GAAI9J,GAEjC,IAAet5D,KACnBA,EAAQ,IAGTgsC,EAASA,EAAO5f,MAAM82C,EAAK18D,IAAIoK,KAAK5Q,GAGtCgsC,EAAS,cAAmBs3B,SAASt3B,QAGrCA,EAAS,GAEV,OAAK7hC,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkBo+B,GAHvCA,GAwBF,YAAAq3B,YAAP,SAAmBE,EAAiBz1C,EAAiBwrC,GACpD,IAAIt5D,EACC,IAAes5D,KACnBA,EAAWnvD,KAAKmvD,UAQjB,IAJA,IAEI3iC,EAFAzJ,EAAe,GACfs2C,EAAM,8BAMO,QAFhB7sC,EAAU6sC,EAAIp4C,KAAKm4C,KAMnB,GAAI5sC,EAAQ,GAEXzJ,EAAMvkB,KAAK,CACVwJ,KAAMwkB,EAAQ,SAGX,CAGJ,IAAI8sC,EAAgB,GACpB,GAA+B,IAA3B,IAAY9sC,EAAQ,IAIvB,IAHA,IAAI+sC,EAAO,kCACPC,OAAQ,EAKM,QAFjBA,EAAWD,EAAKt4C,KAAKuL,EAAQ,MAM7B8sC,EAAO96D,KAAKg7D,EAAS,IAAMA,EAAS,IAAMA,EAAS,IAGrDz2C,EAAMvkB,KAAK,CACVi7D,OAAQjtC,EAAQ,GAChB8sC,OAAQA,IAOX,GAAInK,EAAU,CAIbt5D,EAAQmK,KAAK05D,sBAAsB32C,EAAOosC,EAASp2D,QAG9C,IAAelD,KAAU,IAAeA,KAC5CA,EAAQmK,KAAK05D,sBAAsB32C,EAAOosC,IAI3C,IAAIwK,EAAmBxK,EAASwK,aAC3B,IAAe9jE,IAAU8jE,IAC7B9jE,EAAQmK,KAAK05D,sBAAsB32C,EAAOosC,EAASwK,cAG9C,IAAe9jE,IAAU8jE,EAAYA,cACzC9jE,EAAQmK,KAAK05D,sBAAsB32C,EAAO42C,EAAYA,gBAKnD,IAAe9jE,IAAUs5D,EAASvtD,WAAautD,EAASvtD,UAAUutD,WAAaA,IACnFt5D,EAAQs5D,EAASvtD,UAAUs3D,YAAYE,EAASz1C,IAclD,OATK,IAAe9tB,KACnBA,EAAQmK,KAAK05D,sBAAsB32C,EAAO/iB,KAAK45D,oBAA2B55D,QAItE,IAAenK,IAAUmK,KAAKiqD,UAClCp0D,EAAQmK,KAAKiqD,QAAQiP,YAAYE,EAASz1C,IAGpC9tB,GAcD,YAAA6jE,sBAAP,SAA6B32C,EAAczgB,EAAaqhB,GAGvD,IAFA,IAAIzL,EAAe5V,EACfu3D,GAAgB,EACXx9D,EAAI,EAAGgV,EAAM0R,EAAM5mB,OAAQE,EAAIgV,EAAKhV,IAAK,CACjD,IAAIy9D,EAAO/2C,EAAM1mB,GACjB,GAAIy9D,EAAK9xD,MAGR,GADAkQ,EAAUA,EAAQ4hD,EAAK9xD,OAClB,IAAekQ,GAEnB,YAMD,OAAQ4hD,EAAKL,QACZ,IAAK,eACJ,IAAIM,EAAc,IAAmB7hD,GACjC,IAAe6hD,KAClB7hD,EAAUlY,KAAKs4D,gBAAgB30C,OAC9Bo2C,EACAp2C,GAAUm2C,EAAKR,OAAO,SAAM5sD,GAE7BmtD,GAAgB,GAEjB,MACD,IAAK,aACJ,IAAIG,OAAS,EAOb,GALCA,EADG,IAAe9hD,GACNlY,KAAKy4D,cAAc/Z,MAAMxmC,GAGzB,IAAiBA,IAEzB,IAAa8hD,IAAc,IAAYA,EAAUn1C,WAGrD,OAEG,IAAem1C,KAClB9hD,EAAUlY,KAAKy4D,cAAc90C,OAC5Bq2C,EACAr2C,GAAUm2C,EAAKR,OAAO,SAAM5sD,GAE7BmtD,GAAgB,GAEjB,MACD,IAAK,iBACJ,IAAII,EAAgB,IAAmB/hD,GACnC,IAAe+hD,KAClB/hD,EAAUlY,KAAK24D,kBAAkBh1C,OAChCs2C,EACAt2C,GAAUm2C,EAAKR,OAAO,SAAM5sD,EAC5BotD,EAAKR,OAAO,SAAM5sD,GAEnBmtD,GAAgB,GAEjB,MACD,IAAK,YACL,IAAK,qBACJ3hD,EAAUgiD,mBAAmBhiD,GAC7B,MACD,QACKA,EAAQ4hD,EAAKL,SAChBvhD,EAAQ4hD,EAAKL,QAAQh2D,MAAMzD,KAAM85D,EAAKR,SAQ3C,IAAKO,EAAe,CAEnB,IAAIM,EAAc,CAAC,CAClBV,OAAQ,GACRH,OAAQ31C,IAGT,GAAK,IAAeA,GAcf,CAIJ,IAAIy2C,EAAwB,IAAiBz2C,GAGzCy2C,IAAkB,IACrBD,EAAY,GAAGV,OAAS,eAEhBW,IAAkB,IAC1BD,EAAY,GAAGV,OAAS,aAEhBW,IAAkB,MAC1BD,EAAY,GAAGV,OAAS,uBAxBrB,IAAevhD,IAClBiiD,EAAY,GAAGV,OAAS,eACxBU,EAAY,GAAGb,OAAS,IAEhB,IAAaphD,KACrBiiD,EAAY,GAAGV,OAAS,aACxBU,EAAY,GAAGb,OAAS,IAwBtBa,EAAY,GAAGV,SAClBvhD,EAAUlY,KAAK05D,sBAAsBS,EAAajiD,IAKpD,OAAOA,GAUR,sBAAW,uBAAQ,C,IASnB,WACC,IAAKlY,KAAKkvD,UAAW,CACpB,GAAIlvD,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAc8B,SAE3B,GAAInvD,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQkF,SAGtB,OAAOnvD,KAAKkvD,W,IAlBb,SAAoBC,GAGnBnvD,KAAKq6D,YAAYlL,I,gCA0BR,YAAAkL,YAAV,SAAsBlL,GAAtB,WACC,GAAInvD,KAAKkvD,WAAaC,EAAU,CAE/B,GADAnvD,KAAKkvD,UAAYC,EACbA,EAAU,CACb,GAAInvD,KAAKotD,YAAa,CACrB,IAAI,EAAmB+B,EAASwK,YAC5B,IACH35D,KAAKwO,OAAS,EAAYxO,KAAKotD,cAC1BptD,KAAKwO,QAAU,EAAYmrD,cAC/B35D,KAAKwO,OAAS,EAAYmrD,YAAY35D,KAAKotD,eAK9C,IAAI,EAAmB+B,EAASwK,YAEhC,GAAI,EAAa,CAEhB,IAAI,EAAe,EAAYA,YAE/B,IAAa35D,KAAKwnD,gBAAgB,SAACuP,EAAcuD,GAChD,GAAI,IAAe,EAAYA,IACX,EACXvD,GAAgB,EAAYuD,QAGpC,GAAI,EAAc,CACjB,IAAIzkE,EAAQ,EAAaykE,GACzB,GAAI,IAAezkE,GACC,EACXkhE,GAAgBlhE,OAQ9BmK,KAAK0pD,eAsBA,YAAAnG,iBAAP,SAA+DwT,GAC9D,IAAIwD,EAAsCv6D,KAAKwqC,WAAWusB,GAS1D,OANK/2D,KAAKwmD,aACLxmD,KAAK4pD,YACR2Q,EAAYv6D,KAAK4pD,UAAUnmD,MAAMszD,EAAmBwD,IAI/CA,GAIE,YAAAC,iBAAV,SAAiEnwB,EAAex0C,EAA0E6zD,GACzJ,IAAIuN,EAAej3D,KAAKwqC,WAAWH,GACnC,QAAIx0C,aAAiB,KAASohE,aAAwB,KAASphE,EAAMG,YAAcihE,EAAajhE,aAIxFgK,KAAKopD,iBAAiB/e,EAAUx0C,EAAO6zD,IAKtC,YAAA+Q,mBAAV,SAAmEpwB,EAAex0C,EAAyB6zD,EAAsB9M,EAAqB5kD,EAAoBC,GAGzK,GAFApC,EAAQ,IAAwBA,GAE5B,IAAeA,GAKlB,OAJG,IAAemC,KACjBnC,EAAQ,IAAYA,EAAOmC,EAAWC,IAGhC+H,KAAKopD,iBAAiB/e,EAAUx0C,EAAO6zD,EAAY9M,GAG1D,IAAIqa,EAAej3D,KAAKwqC,WAAWH,GAEnC,QAAIx0C,aAAiB,KAAWohE,aAAwB,KAAWphE,EAAMA,OAASohE,EAAaphE,QAIvFmK,KAAKopD,iBAAiB/e,EAAUx0C,EAAO6zD,EAAY9M,IAiBtD,YAAAwM,iBAAP,SAA8D/e,EAAex0C,EAAY6zD,EAAsB9M,GAC9G,GAAI58C,KAAKwqC,WAAWH,KAAcx0C,IAAUmK,KAAK6hD,aAAc,CAG9D,GAFA7hD,KAAKwqC,WAAWH,GAAYx0C,EAExBmK,KAAKhB,OAAOsC,UAAU,mBAAoB,CAE7C,IAAM,EAAyD,CAC9DC,KAAM,kBACNC,OAAQxB,KACRqqC,SAAkBA,GAEnBrqC,KAAKhB,OAAOyC,oBAAoB,kBAAmB,GAWpD,GARIioD,GACH1pD,KAAK0pD,aAGF9M,GACH58C,KAAKyqD,qBAGFzqD,KAAKynD,cAIR,IAHA,IAAMkO,EAAS31D,KAAK21D,OAAO58D,OACrB,EAAS48D,EAAOx5D,OAEbE,EAAI,EAAGA,EAAI,IAAUA,EAAG,CAChC,IAAMuM,EAAQ+sD,EAAOt5D,GAEhBuM,EAAMi5C,eAEJj5C,EAAOyhC,GAAYx0C,GAI5B,OAAO,EAER,OAAO,GAyBD,YAAAiZ,KAAP,SAICu7B,EACAvpB,EACA45C,EACAC,GAPD,gBAMC,IAAAD,MAAA,GAGI,IAAe16D,KAAKumD,UAAkBlc,KACzCrqC,KAAKumD,UAAkBlc,GAAUwV,UAIlC7/C,KAAKqqC,GAAYvpB,EAAO45C,GAGxB16D,KAAKumD,UAAkBlc,GAAYvpB,EAAO9hB,OAAOmgD,GAAG,mBAAmB,SAACgF,GACvE,GAAIA,EAAM9Z,WAAaqwB,EAAgB,CACtC,IAAI7kE,EAAmBirB,EAAO45C,GAE1BC,IACH9kE,EAAQ8kE,EAAS9kE,IAIlB,EAAKw0C,GAAYx0C,OAeb,YAAA+kE,QAAP,SAAkBvwB,EAA6Bn1B,EAAqFiB,EAAayyC,GAAjJ,WACC,OAAO,IAAI,IAAc,IAAW,IAAeve,IAAW,SAACriC,GAC9D,OAAO,EAAKhJ,OAAOmgD,GAAG,mBAAmB,SAAC96C,GACrCA,EAAEgmC,WAAariC,GAClBkN,EAASjf,KAAKkgB,EAAS9R,KAEtB8R,EAASyyC,QAmBJ,YAAAgG,mBAAV,WAGC,IAAIiM,EAAQ76D,KAAK86D,YAChBC,EAAc/6D,KAAKg7D,kBACnBne,EAAO78C,KAAK68C,KACZmP,EAAShsD,KAAKi7D,aACdC,EAAUl7D,KAAKm7D,cACfC,EAAWp7D,KAAKq7D,eAChBC,EAAOt7D,KAAKu7D,WACZC,EAAcx7D,KAAKy7D,kBACnBC,EAAW17D,KAAK27D,eAChBC,EAAY57D,KAAK67D,gBAGdC,EAA0B,GAC7BC,EAA2B,GAExBC,EAAqBh8D,KAAKi8D,iBAC1BD,GACHF,EAAct9D,KAAKw9D,GAGpB,IAAIE,EAAsBl8D,KAAKm8D,kBAmB/B,GAlBID,GACHH,EAAev9D,KAAK09D,IAIhBl8D,KAAK0tD,mBAAqBmN,IAE7BE,EADGA,EACWF,EAAQ,OAASE,EAGjBF,EAEfA,OAAQnuD,IAMLmuD,GAAUE,GAAgB/6D,KAAK0tD,kBAoB9B,CAEJ,GAAImN,EAAO,CACV,IAAIuB,EAAep8D,KAAKo8D,aACpBC,EAAUr8D,KAAKC,IAAM,SACrBm8D,EAAajM,KAAKmM,aAAezB,IACpCuB,EAAajM,KAAKmM,YAAczB,EAChCuB,EAAazR,KAAK,CAAE4D,GAAI8N,KAEzBP,EAAct9D,KAAK69D,QAEXr8D,KAAKuwD,gBACbvwD,KAAKynB,MAAM8qC,cAAcvyD,KAAKuwD,eAC9BvwD,KAAKuwD,mBAAgB7jD,GAGtB,IAAI6vD,EAAgBv8D,KAAKC,IAAM,eAC/B,GAAI86D,EAAa,CAChB,IAAIyB,EAAqBx8D,KAAKw8D,mBAE1BA,EAAmBrM,KAAKmM,aAAevB,IAC1CyB,EAAmBrM,KAAKmM,YAAcvB,EACtCyB,EAAmB7R,KAAK,CAAE4D,GAAIgO,KAE/BR,EAAev9D,KAAK+9D,QAEZv8D,KAAKwwD,sBACbxwD,KAAKynB,MAAM8qC,cAAcvyD,KAAKwwD,qBAC9BxwD,KAAKwwD,yBAAsB9jD,EAC3B,IAAcqvD,EAAgBQ,SA7C/Bv8D,KAAKqxD,gBAAgB,CACpB,aAAcwJ,IAIf76D,KAAK4qD,mBAAmB,oBACpB5qD,KAAKuwD,gBACRvwD,KAAKynB,MAAM8qC,cAAcvyD,KAAKuwD,eAC9BvwD,KAAKuwD,mBAAgB7jD,GAElB1M,KAAKwwD,sBACRxwD,KAAKynB,MAAM8qC,cAAcvyD,KAAKwwD,qBAC9BxwD,KAAKwwD,yBAAsB9jD,GAuCzBovD,EAAc3/D,OACjB6D,KAAKqxD,gBAAgB,CAAE,kBAAmByK,EAAcr1D,KAAK,OAG7DzG,KAAK4qD,mBAAmB,mBAGrBmR,EAAe5/D,OAClB6D,KAAKqxD,gBAAgB,CAAE,mBAAoB0K,EAAet1D,KAAK,OAG/DzG,KAAK4qD,mBAAmB,oBAIrB/N,EACH78C,KAAKqxD,gBAAgB,CAAE,KAAQxU,IAG/B78C,KAAK4qD,mBAAmB,QAIrBoB,EACHhsD,KAAKqxD,gBAAgB,CAAE,cAAe,SAGtCrxD,KAAK4qD,mBAAmB,eAIrBsQ,EACHl7D,KAAKqxD,gBAAgB,CAAE,eAAgB,UAEnB,IAAZ6J,EACRl7D,KAAKqxD,gBAAgB,CAAE,eAAgB,UAGvCrxD,KAAK4qD,mBAAmB,gBAIrBwQ,EACHp7D,KAAKqxD,gBAAgB,CAAE,gBAAiB+J,IAExCp7D,KAAK4qD,mBAAmB,iBAIrB0Q,EACHt7D,KAAKqxD,gBAAgB,CAAE,YAAaiK,IAEpCt7D,KAAK4qD,mBAAmB,aAIrB4Q,EACHx7D,KAAKqxD,gBAAgB,CAAE,mBAAoBmK,IAE3Cx7D,KAAK4qD,mBAAmB,oBAIrB8Q,EACH17D,KAAKqxD,gBAAgB,CAAE,gBAAiBqK,IAExC17D,KAAK4qD,mBAAmB,iBAIrBgR,EACH57D,KAAKqxD,gBAAgB,CAAE,iBAAkBuK,IAEzC57D,KAAK4qD,mBAAmB,mBAS1B,sBAAW,0BAAW,C,IAUtB,WACC,IAAMiQ,EAAQ76D,KAAKujD,iBAAiB,eACpC,OAAI,IAAesX,IAAU76D,KAAKmvD,SAC1BnvD,KAAK84D,eAAe+B,GAErBA,G,IAfR,SAAuBhlE,GACtBA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAK4uD,sB,gCAoBP,sBAAW,gCAAiB,C,IAU5B,WACC,OAAO5uD,KAAKujD,iBAAiB,sB,IAX9B,SAA6B1tD,GAC5BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,oBAAqBvzD,IAC9CmK,KAAK4uD,sB,gCAiBP,sBAAW,mBAAI,C,IAef,WACC,OAAO5uD,KAAKujD,iBAAiB,S,IAhB9B,SAAgB1tD,GACfA,EAAe,IAAaA,GACxBmK,KAAKopD,iBAAiB,OAAQvzD,KACjCmK,KAAK4uD,qBAEQ,UAAT/4D,IACHmK,KAAKqxD,gBAAgB,CAAE,gBAAiB,MACxCrxD,KAAKqxD,gBAAgB,CAAE,gBAAiB,W,gCAkB3C,sBAAW,2BAAY,C,IAUvB,WACC,OAAOrxD,KAAKujD,iBAAiB,iB,IAX9B,SAAwB1tD,GACvBA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,eAAgBvzD,IACzCmK,KAAK4uD,sB,gCAkBP,sBAAW,4BAAa,C,IAWxB,WACC,OAAO5uD,KAAKujD,iBAAiB,kB,IAZ9B,SAAyB1tD,GACxBA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,IAC1CmK,KAAK4uD,sB,gCAmBP,sBAAW,6BAAc,C,IAWzB,WACC,OAAO5uD,KAAKujD,iBAAiB,mB,IAZ9B,SAA0B1tD,GACzBA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAK4uD,sB,gCAmBP,sBAAW,yBAAU,C,IAWrB,WACC,OAAO5uD,KAAKujD,iBAAiB,e,IAZ9B,SAAsB1tD,GACrBA,EAAkB,IAAaA,GAC3BmK,KAAKopD,iBAAiB,aAAcvzD,IACvCmK,KAAK4uD,sB,gCAmBP,sBAAW,+BAAgB,C,IAW3B,WACC,OAAO5uD,KAAKujD,iBAAiB,qB,IAZ9B,SAA4B1tD,GAC3BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,mBAAoBvzD,IAC7CmK,KAAK4uD,sB,gCAmBP,sBAAW,gCAAiB,C,IAW5B,WACC,OAAO5uD,KAAKujD,iBAAiB,sB,IAZ9B,SAA6B1tD,GAC5BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,oBAAqBvzD,IAC9CmK,KAAK4uD,sB,gCAkBP,sBAAW,gCAAiB,C,IAU5B,WACC,OAAO5uD,KAAKujD,iBAAiB,sB,IAX9B,SAA6B1tD,GAC5BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,oBAAqBvzD,IAC9CmK,KAAK4uD,sB,gCAiBP,sBAAW,6BAAc,C,IAUzB,WACC,OAAO5uD,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAK4uD,sB,gCAiBP,sBAAW,8BAAe,C,IAU1B,WACC,OAAO5uD,KAAKujD,iBAAiB,oB,IAX9B,SAA2B1tD,GAC1BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,kBAAmBvzD,IAC5CmK,KAAK4uD,sB,gCAwBP,sBAAW,8BAAe,C,IAA1B,WACC,IAAK5uD,KAAKmtD,aAAasP,gBAAiB,CACvC,GAAIz8D,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAcoP,gBAE3B,GAAIz8D,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQwS,gBAGtB,OAAOz8D,KAAKmtD,aAAasP,iB,gCA+B1B,sBAAW,2BAAY,C,IAAvB,WACC,IAAKz8D,KAAKmtD,aAAauP,aAAc,CACpC,GAAI18D,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAcqP,aAE3B,GAAI18D,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQyS,aAGtB,OAAO18D,KAAKmtD,aAAauP,c,gCAY1B,sBAAW,2BAAY,C,IAAvB,WACC,IAAK18D,KAAK28D,aAAc,CACvB,IAAMC,EAAc,cAAiBC,eAAe78D,KAAKwiD,KACzDxiD,KAAK28D,aAAeC,EACpB58D,KAAK28D,aAAajH,UAAY11D,KAAK01D,UACnC11D,KAAK28D,aAAalH,UAAYz1D,KAAKy1D,UACnCz1D,KAAK28D,aAAaG,UAAY98D,KAAK88D,UACnC98D,KAAK28D,aAAaI,UAAY/8D,KAAK+8D,UACnC/8D,KAAK28D,aAAaK,UAAYh9D,KAAKg9D,UACnCh9D,KAAK28D,aAAaM,UAAYj9D,KAAKi9D,UACnCj9D,KAAK28D,aAAaO,UAAYl9D,KAAKk9D,UACnCl9D,KAAK28D,aAAaQ,oBAAsBn9D,KAAKm9D,oBAC7Cn9D,KAAK28D,aAAaS,MAAQp9D,KAAKo9D,MAC/Bp9D,KAAK28D,aAAat8D,OAASL,KAC3BA,KAAKkpD,WAAW1qD,KAAKwB,KAAK28D,cAE3B,OAAO38D,KAAK28D,c,gCAON,YAAAlF,cAAP,WACC,QAAIz3D,KAAK28D,cAkCV,sBAAW,wBAAS,C,IA+BpB,WACC,OAAO38D,KAAKujD,iBAAiB,c,IAhC9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAKmtD,aAAagE,UAAYt7D,EAC1BA,GACHmK,KAAKqxD,gBAAgB,CAAE,UAAax7D,IAC/BmK,KAAKq9D,YACTr9D,KAAKoxD,SAAW,KAIjBpxD,KAAK4qD,mBAAmB,aACxB5qD,KAAKoxD,cAAW1kD,GAIjB1M,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,WAAI,IAAc,CACrF,EAAKmJ,OAAOmgD,GAAG,OAAQ,EAAK6Y,WAAY,GAAM,GAC9C,EAAKh5D,OAAOmgD,GAAG,QAAS,EAAK4Y,YAAa,GAAM,U,gCAmB7C,YAAAA,YAAP,SAAmBa,GACd54D,KAAKmxD,YACJnxD,KAAK8uD,YACR9uD,KAAK8uD,UAAUyO,YAAa,GAEzBv9D,KAAKw9D,aAGRx9D,KAAK+sD,QAAQvuD,KAAKwB,KAAKw9D,aAEpBx9D,KAAKy9D,eAERz9D,KAAK+zD,SAAU,EACf/zD,KAAK03D,gBAWD,YAAAM,WAAP,SAAkBY,GACb54D,KAAKmxD,YACJnxD,KAAK8uD,YACR9uD,KAAK8uD,UAAUyO,YAAa,GAEzBv9D,KAAKw9D,aAGRx9D,KAAK+sD,QAAQ9M,YAAYjgD,KAAKw9D,aAE3Bx9D,KAAKy9D,eAERz9D,KAAK+zD,SAAU,EACf/zD,KAAK43D,eAwCR,sBAAW,0BAAW,C,IAAtB,WAOC,IAAM4F,EAAcx9D,KAAKouD,aAEzB,OAAIoP,IAGAx9D,KAAKqtD,cACDrtD,KAAKqtD,cAAcmQ,YAElBx9D,KAAKiqD,QACNjqD,KAAKiqD,QAAQuT,iBADhB,I,IAaN,SAAuB3nE,GACtBmK,KAAKouD,aAAev4D,G,gCAcrB,sBAAW,2BAAY,C,IASvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAV9B,SAAwB1tD,GACnBA,IAAUmK,KAAKy9D,cAClBz9D,KAAKopD,iBAAiB,eAAgBvzD,I,gCAwBxC,sBAAW,uBAAQ,C,IAoBnB,WACC,IAAM8R,EAAQ3H,KAAKq9D,UAEnB,OAAa,MAAT11D,EACIA,EAEC3H,KAAKqtD,cACNrtD,KAAKqtD,cAAc+D,SAElBpxD,KAAKiqD,QACNjqD,KAAKiqD,QAAQmH,cADhB,G,IA7BN,SAAoBv7D,GACnBA,EAAQ,IAAeA,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,IAAU,IAAeA,KAC9DmK,KAAKmtD,aAAaiE,SAAWv7D,EAC7BmK,KAAKqxD,gBAAgB,CAAE,SAAYx7D,IACnCmK,KAAKq9D,UAAYxnE,EAEhBmK,KAAKmxD,UADFt7D,GAAS,QAIK6W,I,gCA+CpB,sBAAW,6BAAc,C,IAAzB,WACC,OAAK1M,KAAKmtD,aAAauQ,gBAClB19D,KAAKiqD,QACDjqD,KAAKiqD,QAAQyT,eAGf19D,KAAKmtD,aAAauQ,gB,gCAQ1B,sBAAW,wBAAS,C,IA8BpB,WACC,OAAO19D,KAAKujD,iBAAiB,c,IA/B9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KAEjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAa4P,UAAYlnE,EAQ9BmK,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,WAAI,IAAc,CACrF,EAAKmJ,OAAOmgD,GAAG,OAAQ,EAAK0Y,WAAY,GAAM,GAC9C,EAAK74D,OAAOmgD,GAAG,YAAa,EAAKye,gBAAiB,GAAM,GACxD,EAAK5+D,OAAOmgD,GAAG,OAAQ,EAAK0e,eAAgB,GAAM,GAClD,EAAK7+D,OAAOmgD,GAAG,WAAY,EAAK2e,eAAgB,GAAM,U,gCAkBhD,YAAAF,gBAAV,SAA0BhF,GACpB54D,KAAKmtD,aAAa4Q,kBAAqBnF,EAAGoF,QAC9Ch+D,KAAKmtD,aAAa8Q,iBAAmB,CACpC3jE,EAAG0F,KAAKinB,OACR1sB,EAAGyF,KAAKonB,QAETpnB,KAAKooD,YAAa,EAClBpoD,KAAKqsD,YAAY,KAkBZ,YAAA6R,UAAP,SAAiBC,GAGhBn+D,KAAKooD,YAAa,EAClB,cAAiB8V,UAAUl+D,KAAKmtD,aAAcgR,IAQrC,YAAAL,eAAV,SAAyBlF,GACnB54D,KAAKmtD,aAAa4Q,kBAAqBnF,EAAGoF,QAC9Ch+D,KAAKooD,YAAa,EAClBpoD,KAAKssD,cACLtsD,KAAKmtD,aAAa8Q,sBAAmBvxD,IAUhC,YAAA0xD,SAAP,SAAgBD,EAAoBE,GAEnCr+D,KAAKooD,YAAa,EAClB,cAAiBgW,SAASp+D,KAAKmtD,aAAcgR,EAASE,IAWhD,YAAAR,eAAP,SAAsBjF,GACrB,IAAK54D,KAAKmtD,aAAa4Q,mBAAqBnF,EAAGoF,MAAO,CACrD,IAAI9iE,EAA0B8E,KAAKmtD,aAAa8Q,iBAEhD,GAAI/iE,GAAS8E,KAAKooD,WAAY,CAC7B,IAAI8C,EAAclrD,KAAKiqD,QAAQiB,YAAclrD,KAAKioB,aAAaC,SAC/DloB,KAAKsR,OAAO,CAAEhX,EAAGY,EAAMZ,EAAIs+D,EAAG7lB,MAAMz4C,EAAI4wD,EAAa3wD,EAAGW,EAAMX,EAAIq+D,EAAG7lB,MAAMx4C,EAAI2wD,QAAex+C,OAAWA,GAAW,GAGrH1M,KAAKyB,oBAAoB,UAAWm3D,KActC,sBAAW,oBAAK,C,IAehB,WACC,OAAO54D,KAAKujD,iBAAiB,U,IAhB9B,SAAiB1tD,GAChBA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,QAASvzD,KAC7BA,GAAUmK,KAAKy3D,mBAInBz3D,KAAKmtD,aAAaiQ,MAAQvnE,I,gCAyB7B,sBAAW,2BAAY,C,IAAvB,WACC,IAAKmK,KAAKmtD,aAAamR,aAAc,CACpC,GAAIt+D,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAciR,aAE3B,GAAIt+D,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQqU,aAGtB,OAAOt+D,KAAKmtD,aAAamR,c,gCAW1B,sBAAW,wBAAS,C,IAsBpB,WACC,OAAOt+D,KAAKujD,iBAAiB,c,IAvB9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAasI,UAAY5/D,EAG9BmK,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,WAAI,IAAc,CACrF,EAAKmJ,OAAOmgD,GAAG,OAAQ,EAAKuY,WAAY,GAAM,GAC9C,EAAK14D,OAAOmgD,GAAG,MAAO,EAAKyY,UAAW,GAAM,U,gCAqBzC,YAAAF,WAAP,SAAkBkB,GAIjB,GAHI54D,KAAKu+D,aACRv+D,KAAKu+D,YAAY1e,UAEd7/C,KAAK+zD,QAAS,CAEb/zD,KAAKitD,OAAO9O,OAAO,WAGjBn+C,KAAKk2D,UACTl2D,KAAKu2D,qBAGP,IAAIr7D,OAAK,EACL09D,GAAMA,EAAGuF,UACZjjE,EAAQ,IAA0B09D,EAAGuF,QAAQjjE,MAAO8E,KAAKioB,aAAau2C,aAAcx+D,KAAKioB,aAAaC,WAG7E,SAAtBloB,KAAKmrD,eACRnrD,KAAKssD,YAAYpxD,OAIQ,SAAtB8E,KAAKmrD,eACRnrD,KAAKqsD,eAEDrsD,KAAKk2D,UAAYl2D,KAAKitD,OAAO9O,OAAO,UACxCn+C,KAAKu2D,qBAcD,YAAAqB,UAAP,SAAiBgB,GAAjB,WACK54D,KAAKwtD,SAAWxtD,KAAKwtD,QAAQiR,cAAgBz+D,MAAQA,KAAKwtD,QAAQkR,gBACrE1+D,KAAKu+D,YAAcv+D,KAAK2+D,YAAW,WAC7B,EAAKnR,QAAQuG,UACb,EAAKvG,QAAQiR,cAAgB,GAChC,EAAKpS,cAEN,EAAKkS,YAAc,EAAKI,WAAW,EAAKC,cAAc9vD,KAAK,GAAO,EAAK45C,iBAEtE,KAGsB,SAAtB1oD,KAAKmrD,eACRnrD,KAAKqsD,cAENrsD,KAAKu+D,YAAcv+D,KAAK2+D,WAAW3+D,KAAK4+D,cAAc9vD,KAAK9O,MAAOA,KAAK0oD,gBASjE,YAAAkW,cAAP,WACM5+D,KAAKk2D,UAAal2D,KAAK4mD,WAAY5mD,KAAKitD,OAAO9O,OAAO,UAC1Dn+C,KAAKu2D,qBAoBP,sBAAW,yBAAU,C,IAArB,WACC,IAAKv2D,KAAKmtD,aAAa0R,WAAY,CAClC,GAAI7+D,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAcwR,WAE3B,GAAI7+D,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQ4U,WAGtB,OAAO7+D,KAAKmtD,aAAa0R,Y,gCASnB,YAAAhH,WAAP,SAAkBe,GAC6B,IAA1C54D,KAAKmtD,aAAauJ,aAAav6D,SAClC6D,KAAKmtD,aAAa8Q,iBAAmB,CACpC3jE,EAAG0F,KAAKinB,OACR1sB,EAAGyF,KAAKonB,QAETpnB,KAAKmtD,aAAa2R,cAAgB9+D,KAAK+mB,SACvC/mB,KAAKmtD,aAAa4R,cAAgB/+D,KAAKwnB,MACnCxnB,KAAKitD,OAAO9O,OAAO,SACtBn+C,KAAKysD,SAAS,UAWV,YAAAqL,SAAP,SAAgBc,GAAhB,WAMC54D,KAAKqoD,YAAa,EACdroD,KAAKitD,OAAO9O,OAAO,SACtBn+C,KAAKu2D,oBAEoB,OAAtBv2D,KAAKmrD,gBACRnrD,KAAKorD,sBAAsBwN,EAAGuF,QAAQjjE,OACtC8E,KAAKkpD,WAAW1qD,KAAK,IAASQ,OAAOggE,KAAK,aAAa,WACtD,EAAK1S,kBAGNtsD,KAAKkpD,WAAW1qD,KAAK,cAAiBmG,KAAK3F,OAAOggE,KAAK,QAAQ,SAACpG,GAC/D,EAAKvM,oBAiBR,sBAAW,wBAAS,C,IAsBpB,WACC,OAAOrsD,KAAKujD,iBAAiB,c,IAvB9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAauI,UAAY7/D,EAG9BmK,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,WAAI,IAAc,CACrF,EAAKmJ,OAAOmgD,GAAG,OAAQ,EAAK0Y,WAAY,GAAM,GAC9C,EAAK74D,OAAOmgD,GAAG,KAAM,EAAK2Y,SAAU,GAAM,U,gCAqB9C,sBAAW,wBAAS,C,IAgBpB,WACC,OAAO93D,KAAKujD,iBAAiB,c,IAjB9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,kBAKnBz3D,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,SAAKmJ,OAAOmgD,GAAG,MAAO,EAAK8f,aAAc,GAAzC,O,gCAkBhE,YAAAA,aAAP,SAAoBrG,GACnB54D,KAAKo2D,UAAYp2D,KAAKo2D,UAUvB,sBAAW,kCAAmB,C,IAU9B,WACC,OAAOp2D,KAAKujD,iBAAiB,wB,IAX9B,SAA+B1tD,GAC9BA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,sBAAuBvzD,KAChDmK,KAAKmtD,aAAagQ,oBAAsBtnE,I,gCAwC1C,sBAAW,kBAAG,C,IAoBd,WACC,OAAOmK,KAAKujD,iBAAiB,Q,IArB9B,SAAe1tD,GACVmK,KAAKopD,iBAAiB,MAAOvzD,KAC5BmK,KAAKkuD,cACRluD,KAAKkuD,aAAarO,UAIf,IAAkBhqD,KACrBmK,KAAKkuD,aAAeluD,KAAKhB,OAAOmgD,GAAG,MAAOn/C,KAAKk/D,WAAYl/D,MAAM,GAGjEA,KAAK01D,WAAY,EACjB11D,KAAKm/D,gBAAkB,IAAiBhB,W,gCAkB3C,sBAAW,qBAAM,C,IAUjB,WAKC,OAJKn+D,KAAKo/D,SAAWp/D,KAAKiqD,UACzBjqD,KAAK6B,OAAS7B,KAAKiqD,QAAQpoD,QAGrB7B,KAAKo/D,S,IAfb,SAAkBvpE,GACjBmK,KAAKq/D,UAAUxpE,I,gCAiBN,YAAAwpE,UAAV,SAAoBxpE,GACfA,GAASmK,KAAKo/D,UACbp/D,KAAK6pC,UACR7pC,KAAK6pC,SAAU,EACf,IAAS7nC,yBAAyBhC,MAClCA,KAAK0pD,cAEN1pD,KAAKo/D,QAAUvpE,IAqCjB,sBAAW,yBAAU,C,IAArB,WACC,OAAImK,KAAK2oD,aACD3oD,KAECA,KAAKiqD,QACNjqD,KAAKiqD,QAAQqV,gBADhB,G,gCAkBN,sBAAW,wBAAS,C,IAOpB,WACC,OAAOt/D,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,I,gCAgB7B,YAAAqpE,WAAP,SAAkBtG,GAEjB,GAAI,IAAkB54D,KAAKghB,KAAM,CAEhC,IAAIA,EAAMhhB,KAAK84D,eAAe94D,KAAKghB,KACZ,UAAnBhhB,KAAKu/D,UACRzoD,OAAOuK,SAASC,KAAON,EAGvBlK,OAAO0oD,KAAKx+C,EAAKhhB,KAAKu/D,aAkBzB,sBAAW,2BAAY,C,IAAvB,WACC,IAAKv/D,KAAKmtD,aAAasS,aAAc,CACpC,GAAIz/D,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAcoS,aAE3B,GAAIz/D,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQwV,aAGtB,OAAOz/D,KAAKmtD,aAAasS,c,gCAc1B,sBAAW,wBAAS,C,IAiBpB,WACC,OAAOz/D,KAAKujD,iBAAiB,c,IAlB9B,SAAqB1tD,GACpBA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACtCmK,KAAK29D,oBACA9nE,GAAUmK,KAAKy3D,mBAInBz3D,KAAKmtD,aAAa6P,UAAYnnE,K,gCAiCjC,sBAAW,wBAAS,C,IAiBpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAlB9B,SAAqB1tD,GACpBA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAa2P,UAAYjnE,I,gCA6BjC,sBAAW,wBAAS,C,IAgBpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAjB9B,SAAqB1tD,GAChBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAa+P,UAAYrnE,I,gCAoCjC,sBAAW,wBAAS,C,IAqBpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAtB9B,SAAqB1tD,GAArB,WACCA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,YAAavzD,KACjCA,GAAUmK,KAAKy3D,mBAInBz3D,KAAK29D,mBACL39D,KAAKmtD,aAAa8P,UAAYpnE,EAE9BmK,KAAKmtD,aAAamQ,iBAAiB,mBAAoBznE,GAAO,WAAM,WAAI,IAAc,CACrF,EAAKmJ,OAAOmgD,GAAG,OAAQ,EAAK0Y,WAAY,GAAM,GAC9C,EAAK74D,OAAOmgD,GAAG,SAAU,EAAKugB,aAAc,GAAM,U,gCAsB/C,YAAAA,aAAP,SAAoB9G,GACnB,KAAK54D,KAAKmtD,aAAa4Q,mBAAqBnF,EAAGoF,SAC9Ch+D,KAAKqoD,YAAa,EAElBroD,KAAKwnB,MAAQxnB,KAAKmtD,aAAa4R,cAAgBnG,EAAGpxC,MAElDxnB,KAAK0qD,mBAQD1qD,KAAK+8D,WAAa/8D,KAAK8oD,iBAAiB,CAC3C9oD,KAAKooD,YAAa,EAClB,IAAIuX,EAAoB,IAA0B/G,EAAGx+D,OAAQ4F,KAAKwoB,cAAexoB,KAAKioB,aAAaC,UAC/F03C,EAAoB,IAA0BhH,EAAGv+D,OAAQ2F,KAAKwoB,cAAexoB,KAAKioB,aAAaC,UAC/F23C,EAAsB,IAAkBF,EAAWC,GAEnDE,EAAuB,IAA6BlH,EAAGv9D,YAAa2E,KAAKiqD,SACzE8V,EAAuB,IAA6BnH,EAAGt9D,YAAa0E,KAAKiqD,SAEzEgU,EAAqCj+D,KAAKmtD,aAAa8Q,iBACvDc,EAAwB/+D,KAAKmtD,aAAa4R,cAE9C,GAAId,EAAkB,CACrB,IAAI+B,EAAuB,CAAE1lE,GAAIwlE,EAAaxlE,EAAI2jE,EAAiB3jE,GAAKykE,EAAexkE,GAAIulE,EAAavlE,EAAI0jE,EAAiB1jE,GAAKwkE,GAC9HkB,EAAuB,CAAE3lE,GAAIylE,EAAazlE,EAAI2jE,EAAiB3jE,GAAKykE,EAAexkE,GAAIwlE,EAAaxlE,EAAI0jE,EAAiB1jE,GAAKwkE,GAE9HmB,EAAyB,IAAkBF,EAAcC,GAEzDE,EAAsB,IAAwBN,EAAa7/D,KAAKiqD,SACpEjqD,KAAKsR,OAAO,CAAEhX,EAAG6lE,EAAY7lE,EAAI4lE,EAAe5lE,EAAI0F,KAAKwnB,MAAOjtB,EAAG4lE,EAAY5lE,EAAI2lE,EAAe3lE,EAAIyF,KAAKwnB,YAAS9a,OAAWA,GAAW,MA0B9I,sBAAW,4BAAa,C,IAAxB,WACC,IAAK1M,KAAKmtD,aAAaiT,cAAe,CACrC,GAAIpgE,KAAKqtD,cACR,OAAOrtD,KAAKqtD,cAAc+S,cAE3B,GAAIpgE,KAAKiqD,QACR,OAAOjqD,KAAKiqD,QAAQmW,cAGtB,OAAOpgE,KAAKmtD,aAAaiT,e,gCA4B1B,sBAAW,8BAAe,C,IAA1B,SAA2BnlB,GACrBj7C,KAAKogE,cAAcC,YACvBrgE,KAAKmtD,aAAaiT,cAAgB,CACjCE,aAActgE,KAAKogE,cAAcE,eAGnCtgE,KAAKogE,cAAcC,UAAYplB,EAC/B,cAAiBslB,qBAAqBvgE,KAAKmtD,e,gCA4B5C,sBAAW,8BAAe,C,IAA1B,SAA2BlS,GAC1Bj7C,KAAKogE,cAAcI,UAAYvlB,G,gCASzB,YAAA0iB,iBAAP,aAsBA,sBAAW,kCAAmB,C,IAmB9B,WAEC,OAAc,IADF39D,KAAKujD,iBAAiB,yBAI9BvjD,KAAKqtD,cACDrtD,KAAKqtD,cAAcvB,qBAEvB9rD,KAAKiqD,SACDjqD,KAAKiqD,QAAQ6B,sB,IA5BtB,SAA+Bj2D,GAG9B,GAFAA,EAAQ,IAAgBA,GAEpBmK,KAAKopD,iBAAiB,sBAAuBvzD,GAAQ,CACxD,IAAI4qE,EAAgB,KACf5qE,EAKJmK,KAAKynB,MAAM0oC,KAAKlV,MAAMwlB,cAAgB,GAJtCA,EAAgB,OAMjBzgE,KAAKynB,MAAM0oC,KAAKlV,MAAMwlB,cAAgBA,I,gCA0CxC,sBAAW,wBAAS,C,IAOpB,WACC,OAAOzgE,KAAK0gE,gB,IARb,SAAqBC,GACpB3gE,KAAKonD,WAAWpmD,IAAI2/D,EAAKA,I,gCAehB,YAAAD,aAAV,WACC,IAAIE,EAAU5gE,KAAKonD,WAAWlmD,MAE9B,OAAI0/D,KAIC5gE,KAAK+mD,sBAAyB/mD,KAAKiqD,QAU/BjqD,KAAKiqD,QAAQ4O,YATpB+H,EAAU,IAAI,IAAO5gE,KAAKioB,aAAau2C,eAC/Bn+D,OAASL,KACjB4gE,EAAQrI,SAAWv4D,KAAKu4D,SACxBqI,EAAQtI,gBAAkBt4D,KAAKs4D,gBAC/BsI,EAAQnI,cAAgBz4D,KAAKy4D,cAC7BmI,EAAQjI,kBAAoB34D,KAAK24D,kBACjC34D,KAAKonD,WAAWpmD,IAAI4/D,EAASA,GAMxBA,KAUR,sBAAW,yBAAU,C,IAgBrB,WACC,OAAO5gE,KAAKqnD,a,IAjBb,SAAsBxxD,GACrB,IAAMoyB,EAAejoB,KAAKioB,aAC1BjoB,KAAKqnD,YAAcxxD,EACfoyB,IACCpyB,EACH,IAAcoyB,EAAa44C,qBAAsB7gE,OAEmB,GAA5D,IAAeioB,EAAa44C,qBAAsB7gE,OAC1DioB,EAAa44C,qBAAqBriE,KAAKwB,Q,gCA2BlC,YAAA8gE,YAAR,SAAoBjrE,GAEnB,OADAA,EAAQ,IAAQ27D,gBAAkB37D,GAcnC,sBAAW,oBAAK,C,IAAhB,WACC,IAAMoyB,EAAejoB,KAAKioB,aAC1B,GAAIA,EAAc,CACjB,IAAM84C,EAAQ94C,EAAa84C,MAI3B,OAHKA,EAAM7T,QAAQnlD,IAAI,cAAe/H,KAAK8gE,cAC1CC,EAAM7T,QAAQ5jD,IAAI,cAAetJ,KAAK8gE,aAEhCC,I,gCAeF,YAAAC,UAAP,SAAiBz+C,EAAcs4C,GAC9B,IAAM5yC,EAAejoB,KAAKioB,aAC1B,GAAIA,EACH,OAAOA,EAAa+4C,UAAUz+C,EAAMs4C,IAO/B,YAAAoG,WAAP,WACC,IAAMh5C,EAAejoB,KAAKioB,aACtBA,GACHA,EAAag5C,cASf,sBAAW,qBAAM,C,IAAjB,WACC,IAAMh5C,EAAejoB,KAAKioB,aAC1B,GAAIA,EAAc,CACjB,IAAMi5C,EAASj5C,EAAai5C,OAM5B,OALAA,EAAOjgB,SAAS5gD,OAASL,KAEpBkhE,EAAOjgB,SAASiM,QAAQnlD,IAAI,cAAe/H,KAAK8gE,cACpDI,EAAOjgB,SAASiM,QAAQ5jD,IAAI,cAAetJ,KAAK8gE,aAE1CI,I,gCAgBF,YAAAC,UAAP,SAAiB5+C,EAAcs4C,GAC9B,IAAM5yC,EAAejoB,KAAKioB,aAC1B,GAAIA,EACH,OAAOA,EAAak5C,UAAU5+C,EAAMs4C,IAO/B,YAAAuG,eAAP,WACC,IAAMn5C,EAAejoB,KAAKioB,aACtBA,GACHA,EAAam5C,kBAoBf,sBAAW,gBAAC,C,IASZ,WACC,OAAOphE,KAAKujD,iBAAiB,M,IAV9B,SAAa1tD,GACPmK,KAAK20D,WACT30D,KAAKy6D,mBAAmB,IAAK5kE,GAAO,GAAO,EAAMmK,KAAKknD,oBAAoB,I,gCAiB5E,sBAAW,qBAAM,C,IAAjB,WACC,IAAIrxD,EAAQ,IAAiBmK,KAAKu0D,UAAUv0D,KAAK1F,GAAI0F,KAAKtD,KAAMsD,KAAKpD,MACrE,OAAKoD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,SAAU5N,GAH/BA,G,gCAaT,sBAAW,wBAAS,C,IAApB,WACC,OAAKmK,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,YAAazD,KAAKq0D,aAAar0D,KAAK1F,IAHzD0F,KAAKq0D,aAAar0D,KAAK1F,I,gCAehC,sBAAW,mBAAI,C,IAWf,WACC,OAAO0F,KAAKujD,iBAAiB,S,IAZ9B,SAAgB1tD,GACX,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,OAAQvzD,GAAO,GAAO,K,gCAoB9C,sBAAW,mBAAI,C,IAWf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAZ9B,SAAgB1tD,GACX,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,OAAQvzD,GAAO,GAAO,K,gCAoB9C,sBAAW,gBAAC,C,IASZ,WACC,OAAOmK,KAAKujD,iBAAiB,M,IAV9B,SAAa1tD,GACPmK,KAAK20D,WACT30D,KAAKy6D,mBAAmB,IAAK5kE,GAAO,GAAO,EAAMmK,KAAKknD,oBAAoB,I,gCAiB5E,sBAAW,qBAAM,C,IAAjB,WACC,IAAIrxD,EAAQ,IAAiBmK,KAAK00D,UAAU10D,KAAKzF,GAAIyF,KAAKrD,KAAMqD,KAAKnD,MACrE,OAAKmD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,SAAU5N,GAH/BA,G,gCAaT,sBAAW,wBAAS,C,IAApB,WACC,OAAKmK,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,YAAazD,KAAKq0D,aAAar0D,KAAKzF,IAHzDyF,KAAKq0D,aAAar0D,KAAKzF,I,gCAehC,sBAAW,mBAAI,C,IAWf,WACC,OAAOyF,KAAKujD,iBAAiB,S,IAZ9B,SAAgB1tD,GACX,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,OAAQvzD,GAAO,GAAO,K,gCAoB9C,sBAAW,mBAAI,C,IAWf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAZ9B,SAAgB1tD,GACX,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,OAAQvzD,GAAO,GAAO,K,gCAmB9C,sBAAW,iBAAE,C,IAUb,WACC,OAAOmK,KAAKujD,iBAAiB,O,IAX9B,SAAc1tD,GACT,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,KAAMvzD,GAAO,GAAO,K,gCAkB5C,sBAAW,iBAAE,C,IAUb,WACC,OAAOmK,KAAKujD,iBAAiB,O,IAX9B,SAAc1tD,GACT,IAAeA,KAClBA,EAAQ,IAAYA,EAAOmK,KAAKknD,oBAAoB,GACpDlnD,KAAKopD,iBAAiB,KAAMvzD,GAAO,GAAO,K,gCAmB5C,sBAAW,uBAAQ,C,IAWnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAZ9B,SAAoB1tD,GACnBA,EAAQ,IAAeA,GAClB,IAAeA,KACnBA,EAAQ,GAETmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,GAAO,I,gCAiBjD,sBAAW,oBAAK,C,IAYhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAb9B,SAAiB1tD,GAChBA,EAAe,IAAaA,GACxBmK,KAAKopD,iBAAiB,QAASvzD,IAC9BmK,KAAKiqD,SACRjqD,KAAKiqD,QAAQoX,oB,gCAmBhB,sBAAW,qBAAM,C,IAYjB,WACC,OAAOrhE,KAAKujD,iBAAiB,W,IAb9B,SAAkB1tD,GACjBA,EAAuB,IAAaA,GAChCmK,KAAKopD,iBAAiB,SAAUvzD,IAC/BmK,KAAKiqD,SACRjqD,KAAKiqD,QAAQoX,oB,gCAoBhB,sBAAW,+BAAgB,C,IAU3B,WACC,OAAOrhE,KAAKujD,iBAAiB,qB,IAX9B,SAA4B1tD,GAC3BA,EAA0B,IAAaA,GACnCmK,KAAKopD,iBAAiB,mBAAoBvzD,IAC7CmK,KAAK2yD,gB,gCAmBP,sBAAW,6BAAc,C,IAUzB,WACC,OAAO3yD,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBA,EAAwB,IAAaA,GACjCmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAK2yD,gB,gCAwBP,sBAAW,uBAAQ,C,IA0BnB,WACC,IAAI2O,EAAWthE,KAAKujD,iBAAiB,YAErC,IAAK,IAAe+d,IACfthE,KAAKiqD,QAAS,CACjB,IAAIsX,EAAcvhE,KAAKiqD,QAAQqX,SAI/B,MAH2B,YAAvBthE,KAAKiqD,QAAQuX,QAAsC,QAAdxhE,KAAKyhE,YAAiC/0D,GAAd1M,KAAKyhE,QACrEF,EAAcA,EAAcvhE,KAAK0hE,gBAAkB1hE,KAAK2hE,kBAElDJ,EAGT,OAAOD,G,IAtCR,SAAoBzrE,GACnBmK,KAAK4hE,YAAY/rE,I,gCAGR,YAAA+rE,YAAV,SAAsB/rE,GACrB,IAAIgsE,EAAY7hE,KAAKshE,SACjBQ,EAAa9hE,KAAK+hE,UACtB,GAAI/hE,KAAKopD,iBAAiB,WAAYvzD,GAAQ,CACzC,IAAemK,KAAKgiE,gBACvBhiE,KAAK0pD,aAGN,IAAM,EAAwD,CAC7DnoD,KAAM,iBACNC,OAAQxB,KACRiiE,cAAeJ,EACfK,eAAgBJ,GAGjB9hE,KAAKyB,oBAAoB,iBAAkB,KA2B7C,sBAAW,wBAAS,C,IA6BpB,WACC,IAAIsgE,EAAY/hE,KAAKujD,iBAAiB,aACtC,IAAK,IAAewe,IACf/hE,KAAKiqD,QAAS,CACjB,IAAIkY,EAAeniE,KAAKiqD,QAAQ8X,UAIhC,MAH2B,YAAvB/hE,KAAKiqD,QAAQuX,QAAuC,QAAfxhE,KAAKoiE,aAAmC11D,GAAf1M,KAAKoiE,SACtED,EAAeA,EAAeniE,KAAKqiE,eAAiBriE,KAAKsiE,mBAEnDH,EAGT,OAAOJ,G,IAxCR,SAAqBlsE,GACpBmK,KAAKuiE,aAAa1sE,I,gCAGT,YAAA0sE,aAAV,SAAuB1sE,GAEtB,IAAIgsE,EAAY7hE,KAAKshE,SACjBQ,EAAa9hE,KAAK+hE,UAEtB,GAAI/hE,KAAKopD,iBAAiB,YAAavzD,GAAQ,CAE1C,IAAemK,KAAKwiE,iBACvBxiE,KAAK0pD,aAGN,IAAM,EAAwD,CAC7DnoD,KAAM,iBACNC,OAAQxB,KACRiiE,cAAeJ,EACfK,eAAgBJ,GAGjB9hE,KAAKyB,oBAAoB,iBAAkB,KA4B7C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOzB,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCA2B3C,sBAAW,oBAAK,C,IA2BhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IA5B9B,SAAiB1tD,GAEOmK,KAAKy6D,mBAAmB,QAAS5kE,GAAO,GAAM,EAAOmK,KAAKknD,oBAAoB,KAGpGlnD,KAAKyiE,kBAAe/1D,EACpB1M,KAAKgiE,mBAAgBt1D,EAEjB7W,aAAiB,KACpBmK,KAAKyiE,aAAe5sE,EAAM4rB,QACtB,IAAezhB,KAAK0iE,eACvB1iE,KAAKshE,cAAW50D,GAEjB1M,KAAK0iE,iBAAch2D,IAGnB1M,KAAK0iE,YAAc5sE,OAAOD,GAE1BmK,KAAKshE,SAAWthE,KAAK0iE,aAEtB1iE,KAAKyqD,uB,gCA4BP,sBAAW,qBAAM,C,IA4BjB,WACC,OAAOzqD,KAAKujD,iBAAiB,W,IA7B9B,SAAkB1tD,GAEMmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAOmK,KAAKknD,oBAAoB,KAGrGlnD,KAAK2iE,mBAAgBj2D,EACrB1M,KAAK4iE,qBAAkBl2D,EAEnB7W,aAAiB,KACpBmK,KAAK2iE,cAAgB9sE,EAAM4rB,QACvB,IAAezhB,KAAK6iE,gBACvB7iE,KAAK+hE,eAAYr1D,GAElB1M,KAAK6iE,kBAAen2D,IAGpB1M,KAAK6iE,aAAe/sE,OAAOD,GAE3BmK,KAAK+hE,UAAY/hE,KAAK6iE,cAGvB7iE,KAAKyqD,uB,gCAiBP,sBAAW,yBAAU,C,IAArB,WACC,IAAInuD,EAEHA,EADG,IAAe0D,KAAKyiE,cACfziE,KAAKshE,SAEL,IAAethE,KAAK0iE,aACpB1iE,KAAK0iE,YAGL,EAGT,IAAMI,EAAW9iE,KAAK8iE,SAEN,MAAZA,GAAoBxmE,EAAQwmE,IAC/BxmE,EAAQwmE,GAET,IAAIjtE,EAAQ,IAAYyG,EAAO0D,KAAKknD,oBAAoB,GACxD,OAAKlnD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,aAAc5N,GAHnCA,G,gCAaT,sBAAW,0BAAW,C,IAAtB,WACC,IAAI0G,EAEHA,EADG,IAAeyD,KAAK2iE,eACd3iE,KAAK+hE,UAEN,IAAe/hE,KAAK6iE,cACnB7iE,KAAK6iE,aAGL,EAGV,IAAME,EAAY/iE,KAAK+iE,UAEN,MAAbA,GAAqBxmE,EAASwmE,IACjCxmE,EAASwmE,GAEV,IAAIltE,EAAQ,IAAY0G,EAAQyD,KAAKknD,oBAAoB,GACzD,OAAKlnD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,cAAe5N,GAHpCA,G,gCAaT,sBAAW,4BAAa,C,IAWxB,WACC,IAAMmsE,EAAgBhiE,KAAKgjE,eAE3B,GAAI,IAAehB,GAClB,OAAKhiE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,gBAAiBu+D,GAHtCA,G,IAhBV,SAAyBnsE,GACpBmK,KAAKgjE,gBAAkBntE,IAC1BmK,KAAKgjE,eAAiBntE,I,gCA4BxB,sBAAW,6BAAc,C,IAWzB,WACC,IAAM2sE,EAAiBxiE,KAAK4iE,gBAE5B,GAAI,IAAeJ,GAClB,OAAKxiE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkB++D,GAHvCA,G,IAhBV,SAA0B3sE,GACrBmK,KAAK4iE,iBAAmB/sE,IAC3BmK,KAAK4iE,gBAAkB/sE,I,gCA+BzB,sBAAW,4BAAa,C,IAAxB,WAEC,OAAImK,KAAKmqD,UAAYnqD,KAAKosD,WAClB,EAEHpsD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,gBAAiBzD,KAAKupD,gBAH3CvpD,KAAKupD,gB,gCAkBd,sBAAW,6BAAc,C,IAAzB,WAEC,OAAIvpD,KAAKmqD,UAAYnqD,KAAKosD,WAClB,EAKHpsD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkBzD,KAAKwpD,iBAH5CxpD,KAAKwpD,iB,gCAcd,sBAAW,yBAAU,C,IAArB,WACC,IAAI3zD,EAAQmK,KAAK8xD,WAAa9xD,KAAK2hE,iBAAmB3hE,KAAK0hE,gBAC3D,OAAK1hE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,aAAc5N,GAHnCA,G,gCAcT,sBAAW,0BAAW,C,IAAtB,WACC,IAAIA,EAAQmK,KAAK+xD,YAAc/xD,KAAKqiE,eAAiBriE,KAAKsiE,kBAC1D,OAAKtiE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,cAAe5N,GAHpCA,G,gCAgBT,sBAAW,yBAAU,C,IAArB,WACC,IAAIA,EAAQ0B,KAAKM,IAAI,EAAGmI,KAAK8xD,WAAa9xD,KAAKizD,kBAAoBjzD,KAAK0nB,kBACxE,OAAK1nB,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,aAAc5N,GAHnCA,G,gCAgBT,sBAAW,0BAAW,C,IAAtB,WACC,IAAIA,EAAQ0B,KAAKM,IAAI,EAAGmI,KAAK+xD,YAAc/xD,KAAK2nB,gBAAkB3nB,KAAKkzD,oBACvE,OAAKlzD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,cAAe5N,GAHpCA,G,gCAkBT,sBAAW,0BAAW,C,IAAtB,WACC,IAAI2xB,EAAgBxnB,KAAKwnB,MAIzB,OAHIxnB,KAAKiqD,UACRziC,GAAgBxnB,KAAKiqD,QAAQiB,aAEzBlrD,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,cAAe+jB,GAHpCA,G,gCAkBT,sBAAW,oBAAK,C,IAchB,WACC,OAAOxnB,KAAKujD,iBAAiB,U,IAf9B,SAAiB1tD,IAChBA,EAAQ,IAAeA,IACX,IACXA,EAAQ,GAELA,GAASmK,KAAKujD,iBAAiB,WAClCvjD,KAAKopD,iBAAiB,QAASvzD,GAAO,GAAO,GAC7CmK,KAAK2sD,sB,gCAsBA,YAAAsW,OAAP,SAAc56C,EAAaxvB,EAAeuD,EAAgBxD,GAKzD,OAJAoH,KAAKkjE,UAAY76C,EACjBroB,KAAKmjE,YAActqE,EACnBmH,KAAKojE,aAAehnE,EACpB4D,KAAKqjE,WAAazqE,EACXoH,MAQR,sBAAW,yBAAU,C,IAOrB,WACC,OAAOA,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKy6D,mBAAmB,aAAc5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAenF,sBAAW,0BAAW,C,IAOtB,WACC,OAAOlnD,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAepF,sBAAW,wBAAS,C,IAOpB,WACC,OAAOlnD,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKy6D,mBAAmB,YAAa5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAelF,sBAAW,2BAAY,C,IAOvB,WACC,OAAOlnD,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKy6D,mBAAmB,eAAgB5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAgBrF,sBAAW,+BAAgB,C,IAA3B,WACC,IAAIrxD,EAAQmK,KAAKu0D,UAAUv0D,KAAKmjE,aAChC,OAAKnjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,mBAAoB5N,GAHzCA,G,gCAcT,sBAAW,kCAAmB,C,IAA9B,WAEC,IAAIA,EAAQmK,KAAKq0D,aAAar0D,KAAKmjE,aACnC,OAAKnjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,sBAAuB5N,GAH5CA,G,gCAaT,sBAAW,8BAAe,C,IAA1B,WACC,IAAIA,EAAQmK,KAAKu0D,UAAUv0D,KAAKqjE,YAChC,OAAKrjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,kBAAmB5N,GAHxCA,G,gCAaT,sBAAW,iCAAkB,C,IAA7B,WAEC,IAAIA,EAAQmK,KAAKq0D,aAAar0D,KAAKqjE,YACnC,OAAKrjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,qBAAsB5N,GAH3CA,G,gCAaT,sBAAW,6BAAc,C,IAAzB,WACC,IAAIA,EAAQmK,KAAK00D,UAAU10D,KAAKkjE,WAChC,OAAKljE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkB5N,GAHvCA,G,gCAaT,sBAAW,gCAAiB,C,IAA5B,WAEC,IAAIA,EAAQmK,KAAKs0D,aAAat0D,KAAKkjE,WACnC,OAAKljE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,oBAAqB5N,GAH1CA,G,gCAaT,sBAAW,gCAAiB,C,IAA5B,WACC,IAAIA,EAAQmK,KAAK00D,UAAU10D,KAAKojE,cAChC,OAAKpjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,oBAAqB5N,GAH1CA,G,gCAaT,sBAAW,mCAAoB,C,IAA/B,WAEC,IAAIA,EAAQmK,KAAKs0D,aAAat0D,KAAKojE,cACnC,OAAKpjE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,uBAAwB5N,GAH7CA,G,gCAgBF,YAAAytE,QAAP,SAAej7C,EAAaxvB,EAAeuD,EAAgBxD,GAK1D,OAJAoH,KAAKqpB,WAAahB,EAClBroB,KAAKgpB,aAAenwB,EACpBmH,KAAKspB,cAAgBltB,EACrB4D,KAAK+oB,YAAcnwB,EACZoH,MAQR,sBAAW,0BAAW,C,IAOtB,WACC,OAAOA,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAepF,sBAAW,2BAAY,C,IAOvB,WACC,OAAOlnD,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKy6D,mBAAmB,eAAgB5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAerF,sBAAW,yBAAU,C,IAOrB,WACC,OAAOlnD,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKy6D,mBAAmB,aAAc5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAenF,sBAAW,4BAAa,C,IAOxB,WACC,OAAOlnD,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKy6D,mBAAmB,gBAAiB5kE,GAAO,GAAM,EAAMmK,KAAKknD,oBAAoB,I,gCAgBtF,sBAAW,gCAAiB,C,IAA5B,WACC,OAAOlnD,KAAKu0D,UAAUv0D,KAAKgpB,e,gCAS5B,sBAAW,mCAAoB,C,IAA/B,WAEC,OAAOhpB,KAAKq0D,aAAar0D,KAAKgpB,e,gCAS/B,sBAAW,+BAAgB,C,IAA3B,WACC,OAAOhpB,KAAKu0D,UAAUv0D,KAAK+oB,c,gCAS5B,sBAAW,kCAAmB,C,IAA9B,WAEC,OAAO/oB,KAAKq0D,aAAar0D,KAAK+oB,c,gCAS/B,sBAAW,8BAAe,C,IAA1B,WACC,OAAO/oB,KAAK00D,UAAU10D,KAAKqpB,a,gCAS5B,sBAAW,iCAAkB,C,IAA7B,WAEC,OAAOrpB,KAAKs0D,aAAat0D,KAAKqpB,a,gCAS/B,sBAAW,iCAAkB,C,IAA7B,WACC,OAAOrpB,KAAK00D,UAAU10D,KAAKspB,gB,gCAS5B,sBAAW,oCAAqB,C,IAAhC,WAEC,OAAOtpB,KAAKs0D,aAAat0D,KAAKspB,gB,gCAc/B,sBAAW,mBAAI,C,IAuCf,WACC,OAAOtpB,KAAKujD,iBAAiB,S,IAxC9B,SAAgB1tD,GACfmK,KAAKujE,QAAQ1tE,I,gCAMJ,YAAA0tE,QAAV,SAAkB1tE,GACjB,QAAImK,KAAKopD,iBAAiB,OAAQvzD,KAE7BmK,KAAK4pD,YACR/zD,EAAQmK,KAAK4pD,UAAUnmD,MAAM,OAAQ5N,IAGjCmK,KAAKymD,UACJzmD,KAAK0oB,WAAY1oB,KAAK0oB,QAAQynC,MAAUnwD,KAAK0oB,QAAQynC,gBAAgBqC,kBACzExyD,KAAK0oB,QAAU1oB,KAAKO,MAAM+I,IAAI,SAE/BtJ,KAAKymD,SAAU,GAEZ,IAAe5wD,GAClBmK,KAAK0oB,QAAQiiC,KAAK,CAAE,EAAK90D,IAGzBmK,KAAK0oB,QAAQ6oC,WAAW,KAEzBvxD,KAAKyqD,qBAEAzqD,KAAK40D,QACT50D,KAAKhB,OAAOggE,KAAK,SAAUh/D,KAAK0qD,iBAAkB1qD,MAAM,IAElD,IAkBT,sBAAW,2BAAY,C,IASvB,WACC,OAAOA,KAAKujD,iBAAiB,iB,IAV9B,SAAwB1tD,GACnBmK,KAAKopD,iBAAiB,eAAgBvzD,IACzCmK,KAAKwjE,QAAQxjE,KAAK07C,O,gCAiBpB,sBAAW,6BAAc,C,IAOzB,WACC,OAAO17C,KAAKujD,iBAAiB,mB,IAR9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GAAO,I,gCAiBhD,sBAAW,0BAAW,C,IAUtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAX9B,SAAuB1tD,GACtBA,EAAQ,IAAoBA,EAAO,EAAG,GAClCmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAKqxD,gBAAgB,CAAE,eAAgBx7D,K,gCAgBzC,sBAAW,mBAAI,C,IA4Cf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IA7C9B,SAAgB1tD,GACfmK,KAAKwjE,QAAQ3tE,I,gCAUJ,YAAA2tE,QAAV,SAAkB3tE,GAKjB,GAJK,IAAeA,MAAU,MAAOA,KACpCA,EAAQ,YAAQA,IAGbmK,KAAKw6D,iBAAiB,OAAQ3kE,IAAUmK,KAAK2tD,aAWhD,GATI93D,aAAiB,KAChBmK,KAAK2tD,eACR93D,EAAQmK,KAAK2tD,aAAakC,OAAOh6D,IAInCmK,KAAKyjE,SAAW5tE,EAGZA,aAAiB,IACpBmK,KAAKqxD,gBAAgB,CAAE,KAAQx7D,EAAMG,kBAEjC,GAAK,IAAeH,IAGpB,GAASA,aAAiB,KAAgBA,aAAiB,KAAuBA,aAAiB,IAAgB,CACvH,IAAI6lD,EAAO7lD,EACX6lD,EAAKn7C,MAAQP,KAAKO,MAClBP,KAAKqxD,gBAAgB,CAAE,KAAQ,QAAW,MAAsB3V,EAAK6S,GAAK,aAL1EvuD,KAAK4qD,mBAAmB,SAkC3B,sBAAW,sBAAO,C,IAUlB,WACC,OAAO5qD,KAAKujD,iBAAiB,Y,IAX9B,SAAmB1tD,GAClBA,EAAQ,IAAoBA,EAAO,EAAG,GAClCmK,KAAKopD,iBAAiB,UAAWvzD,IACpCmK,KAAKqxD,gBAAgB,CAAE,QAAWx7D,K,gCAgBpC,sBAAW,qBAAM,C,IAiDjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAlD9B,SAAkB1tD,GACjBmK,KAAK0jE,UAAU7tE,I,gCAUN,YAAA6tE,UAAV,SAAoB7tE,GAKnB,GAJK,IAAeA,MAAU,MAAOA,KACpCA,EAAQ,YAAQA,IAGbmK,KAAKw6D,iBAAiB,SAAU3kE,IAAUmK,KAAK4tD,eAWlD,GARI/3D,aAAiB,KAChBmK,KAAK4tD,iBACR/3D,EAAQmK,KAAK4tD,eAAeiC,OAAOh6D,IAIrCmK,KAAK2jE,WAAa9tE,EAEdA,aAAiB,IACH,QAAbA,EAAMwnD,IACTr9C,KAAK4qD,mBAAmB,UAGxB5qD,KAAKqxD,gBAAgB,CAAE,OAAUx7D,EAAMG,kBAGpC,GAAK,IAAeH,IAGpB,GAASA,aAAiB,KAAgBA,aAAiB,KAAuBA,aAAiB,IAAgB,CACvH,IAAIw4D,EAASx4D,EACbw4D,EAAO9tD,MAAQP,KAAKO,MACpBP,KAAKqxD,gBAAgB,CAAE,OAAU,QAAW,MAAsBhD,EAAOE,GAAK,aAL9EvuD,KAAK4qD,mBAAmB,WAwB3B,sBAAW,4BAAa,C,IAUxB,WACC,OAAO5qD,KAAKujD,iBAAiB,kB,IAX9B,SAAyB1tD,GACxBA,EAAQ,IAAoBA,EAAO,EAAG,GAClCmK,KAAKopD,iBAAiB,gBAAiBvzD,IAC1CmK,KAAKqxD,gBAAgB,CAAE,iBAAkBx7D,K,gCAiB3C,sBAAW,+BAAgB,C,IAU3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAX9B,SAA4B1tD,GAC3BA,EAAQ,IAAgBA,GACpBmK,KAAKopD,iBAAiB,mBAAoBvzD,KAC7CmK,KAAK6sD,YAAc7sD,KAAK6sD,c,gCAiB1B,sBAAW,yBAAU,C,IASrB,WACC,OAAO7sD,KAAKujD,iBAAiB,e,IAV9B,SAAsB1tD,GAErBA,EAAQ,IAAgBA,GACxBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,GAAO,I,gCAenD,sBAAW,0BAAW,C,IAgBtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAjB9B,SAAuB1tD,GACtBA,EAAQ,IAAeA,GACvBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,GAExCmK,KAAK4sD,mBACH,IAAe/2D,KACnBA,EAAQ,GAETA,GAAgBmK,KAAKkrD,aAEtBlrD,KAAKqxD,gBAAgB,CAAE,eAAgBx7D,K,gCAkBxC,sBAAW,8BAAe,C,IAU1B,WACC,OAAOmK,KAAKujD,iBAAiB,oB,IAX9B,SAA2B1tD,GAC1BA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,kBAAmBvzD,IAC5CmK,KAAKqxD,gBAAgB,CAAE,mBAAoBx7D,K,gCAoB7C,sBAAW,+BAAgB,C,IAU3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAX9B,SAA4B1tD,GAC3BA,EAAQ,IAAeA,GACnBmK,KAAKopD,iBAAiB,mBAAoBvzD,IAC7CmK,KAAKqxD,gBAAgB,CAAE,oBAAqBx7D,K,gCAiB9C,sBAAW,4BAAa,C,IASxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAV9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,IAC1CmK,KAAKqxD,gBAAgB,CAAE,iBAAkBx7D,K,gCAiB3C,sBAAW,6BAAc,C,IASzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAV9B,SAA0B1tD,GACrBmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAKqxD,gBAAgB,CAAE,kBAAmBx7D,K,gCAoB5C,sBAAW,6BAAc,C,IAUzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBA,EAAwB,IAAaA,GACjCmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAKqxD,gBAAgB,CAAE,kBAAmBx7D,K,gCAyB5C,sBAAW,2BAAY,C,IAevB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAhB9B,SAAwB1tD,GACvBA,EAAQ,IAAgBA,GAEvBmK,KAAKknD,mBADFrxD,EACuB,EAGA,EAG3BmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAqB9C,sBAAW,kBAAG,C,IAWd,WACC,OAAI,IAAemK,KAAK4jE,MAChB5jE,KAAK4jE,OAEL5jE,KAAK6uD,YACL7uD,KAAK6uD,WAAWnsC,K,IAhBzB,SAAe7sB,GACdA,EAAQ,IAAgBA,GACrBmK,KAAK2oD,eACP3oD,KAAK8uD,UAAUpsC,IAAM7sB,GAEtBmK,KAAK4jE,KAAO/tE,G,gCAmCN,YAAAguE,KAAP,SAAY98B,GACX,OAAO/mC,KAAK8jE,SAAS/8B,IAUZ,YAAA+8B,SAAV,SAAmB/8B,GAAnB,WACC,IAAI/mC,KAAKgpD,YAAT,CAGA,IAAI4N,EAEEpsB,EAAaxqC,KAAK0sD,aAAaliB,WAErC,IAAKxqC,KAAKmqD,WAAanqD,KAAKk2D,WAAal2D,KAAK6rD,SAAW7rD,KAAK4mD,UAAmC,MAAtBpc,EAAWmmB,SAAmB3wD,KAAK2wD,QAAUnmB,EAAWmmB,UAAY3wD,KAAK8mD,aAAgB9mD,KAAK6hD,aAAc,CAGlL7hD,KAAK6pC,SACR7pC,KAAKqqD,WAGFrqD,KAAKunD,iBACRvnD,KAAK0qD,mBAGD,IAAe3jB,KACnBA,EAAW/mC,KAAK0sD,aAAauJ,oBAG1Bj2D,KAAK+jE,iBACR/jE,KAAK+jE,eAAeC,OACpBhkE,KAAK+jE,oBAAiBr3D,GAInB1M,KAAKikE,mBACRjkE,KAAKoyD,cAAcpyD,KAAKikE,mBAGzBjkE,KAAK6mD,WAAY,EACjB7mD,KAAK4mD,UAAW,EAChB5mD,KAAK8mD,WAAY,GAGjB8P,EAAa52D,KAAKu2D,kBAAkBxvB,MAEjB6vB,EAAWO,cAE7Bn3D,KAAKikE,kBAAoBrN,EAAW53D,OAAOmgD,GAAG,kBAAkB,WAC/D,EAAK2H,WAAY,KAGlB9mD,KAAKkpD,WAAW1qD,KAAKwB,KAAKikE,oBAG1BjkE,KAAK8mD,WAAY,EAGlB,IAAI+E,EAAU7rD,KAAK0sD,aAAaliB,WAAWqhB,QACtC,IAAeA,KACnBA,GAAU,GAEX7rD,KAAK6rD,QAAUA,EAGf7rD,KAAKi7D,cAAe,EAGpBj7D,KAAKyB,oBAAoB,SAG1B,OAAOm1D,IAyBD,YAAA3K,KAAP,SAAYllB,GACX,OAAO/mC,KAAKkkE,SAASn9B,IAUZ,YAAAm9B,SAAV,SAAmBn9B,GAAnB,IACK6vB,EADL,OAGC,IAAK52D,KAAK4mD,UAAY5mD,KAAK6rD,UAAY7rD,KAAK6hD,aAAc,CAErD7hD,KAAKwtD,SAAWxtD,KAAKwtD,QAAQ2W,eAAiBnkE,MACjDA,KAAKqsD,YAAY,GAGdrsD,KAAK+jE,iBACR/jE,KAAK+jE,eAAeC,OACpBhkE,KAAK+jE,oBAAiBr3D,GAGvB1M,KAAK8mD,WAAY,EAGb9mD,KAAKikE,mBACRjkE,KAAKoyD,cAAcpyD,KAAKikE,mBAIzB,IAAI,EAAcjkE,KAAKw1D,YAGnB,GAIHoB,EAAa52D,KAAKysD,SAAS,EAAa1lB,OAAUr6B,MAE/BkqD,EAAWO,cAC7Bn3D,KAAK+jE,eAAiBnN,EACtB52D,KAAKikE,kBAAoBrN,EAAW53D,OAAOmgD,GAAG,kBAAkB,WAC/D,EAAKyH,UAAW,EAChB,EAAKC,WAAY,EACoB,GAAlC,EAAYrc,WAAWqhB,UACzB,EAAKA,SAAU,KAEd7rD,MAEHA,KAAKkpD,WAAW1qD,KAAKwB,KAAKikE,mBAI1BjkE,KAAKkpD,WAAW1qD,KAAKo4D,KAGrB52D,KAAK4mD,UAAW,EAChB5mD,KAAK6mD,WAAY,IAKlB7mD,KAAK6rD,SAAU,EACf7rD,KAAK4mD,UAAW,EAChB5mD,KAAK6mD,WAAY,GAIlB7mD,KAAKi7D,cAAe,EAGpBj7D,KAAKyB,oBAAoB,UACzBzB,KAAK0pD,aAON,OAJK,IAAe3iB,KACnBA,EAAW/mC,KAAKw1D,YAAYS,oBAGtBW,GAQR,sBAAW,sBAAO,C,IAUlB,WACC,OAAO52D,KAAKokE,iB,IAXb,SAAmBvuE,GAClBA,EAAQ,IAAgBA,GACxBmK,KAAKm2D,cAActgE,I,gCAgBV,YAAAuuE,cAAV,WACC,IAAIvuE,EAAQmK,KAAKujD,iBAAiB,WAIlC,OAHK,IAAe1tD,KACnBA,GAAQ,GAEFA,GAaD,YAAAsgE,cAAP,SAAqBtgE,GACpB,GAAImK,KAAKopD,iBAAiB,UAAWvzD,KAChCA,EACHmK,KAAKynB,MAAM8pC,WAAW,cAGtBvxD,KAAKynB,MAAMkjC,KAAK,CAAE,WAAc,WAI7B3qD,KAAKhB,OAAOsC,UAAU,sBAAsB,CAC/C,IAAM,EAA2D,CAChEC,KAAM,oBACNC,OAAQxB,KACR6rD,QAASh2D,GAEVmK,KAAKhB,OAAOyC,oBAAoB,oBAAqB,KAexD,sBAAW,qBAAM,C,IAUjB,WACC,OAAOzB,KAAKujD,iBAAiB,W,IAX9B,SAAkB1tD,GACjBA,EAAQ,IAAeA,GACnBmK,KAAKopD,iBAAiB,SAAUvzD,IACnCmK,KAAKmB,SAAS,kB,gCAeT,YAAAkjE,QAAP,WACC,IAAIl3D,EAASnN,KAAKiqD,QACd98C,GAAUA,EAAOiJ,SAAStf,QAAQkJ,OAASmN,EAAOiJ,SAASja,OAAS,IACvEgR,EAAOiJ,SAASwqC,UAAU5gD,KAAMmN,EAAOiJ,SAASja,OAAS,GACzD6D,KAAKmB,SAAS,mBAQT,YAAAmjE,OAAP,WACC,IAAIn3D,EAASnN,KAAKiqD,QACd98C,GAA2C,GAAjCA,EAAOiJ,SAAStf,QAAQkJ,QACrCmN,EAAOiJ,SAASwqC,UAAU5gD,KAAM,GAChCA,KAAKmB,SAAS,mBAYhB,sBAAW,4BAAa,C,IAYxB,WACC,OAAOnB,KAAKujD,iBAAiB,kB,IAb9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,MACrCA,GAASmK,KAAKyxD,eAClBzxD,KAAKynB,MAAM07B,YAAYnjD,KAAKyxD,eAE7BzxD,KAAK8pD,iB,gCAyBP,sBAAW,sBAAO,C,IAgBlB,WACC,OAAI9pD,KAAKutD,SACDvtD,KAAKutD,SAEJvtD,KAAKqtD,cACNrtD,KAAKqtD,cAAcG,QAElBxtD,KAAKiqD,QACNjqD,KAAKiqD,QAAQuD,aADhB,G,IAvBN,SAAmBA,GACdxtD,KAAKutD,UAERvtD,KAAKoyD,cAAcpyD,KAAKutD,UAGzBvtD,KAAKutD,SAAWC,EAEZA,IACHA,EAAQrgD,OAASnN,KAAKivD,mB,gCA2BxB,sBAAW,8BAAe,C,IAQ1B,WACC,IAAMsV,EAAkBvkE,KAAKwkE,iBAE7B,OAAID,GAIIvkE,KAAKmvD,U,IAfd,SAA2Bt5D,GAE1BmK,KAAKwkE,iBAAmB3uE,G,gCAyBzB,sBAAW,iCAAkB,C,IAO7B,WACC,OAAOmK,KAAKykE,qB,IARb,SAA8BpkE,GAC7BL,KAAKykE,oBAAsBpkE,G,gCAoBrB,YAAAisD,YAAP,SAAmBpxD,GAEQ,UAAtB8E,KAAKmrD,gBAA8BnrD,KAAKutD,UAAYvtD,KAAKwtD,UAC5DxtD,KAAKutD,SAAWvtD,KAAKwtD,QAAQ5kD,UAGzB1N,GAAiC,WAAxB8E,KAAK0kE,iBAAgC1kE,KAAK+zD,UACvD74D,EAAQ,IAA0B,cAAiBypE,YAAYzpE,MAAO8E,KAAKioB,aAAau2C,aAAcx+D,KAAKioB,aAAaC,WAKzH,IADA,IAAI7nB,EAAiBL,UACJ0M,GAAVrM,GAAqB,CAC3B,IAAKA,EAAOwrD,SAAWxrD,EAAO8pD,UAAY9pD,EAAO+rD,WAIhD,YAHIpsD,KAAKutD,UAAYvtD,KAAKutD,SAAS1B,SAClC7rD,KAAKutD,SAAStB,KAAK,IAIrB5rD,EAASA,EAAO8M,OAGjB,GAAI,IAAenN,KAAKg0D,cAAgB,IAAeh0D,KAAKi0D,aAAc,CACzE,IAAIzG,EAAUxtD,KAAKwtD,QACf+W,EAAkBvkE,KAAKukE,gBAE3B,GAAI/W,EAAS,CAEZA,EAAQiR,aAAez+D,KAEvB,IAAI,EAAsBA,KACtB,EAAqBA,KAAK4kE,mBAmB9B,IAlBKpX,EAAQqX,qBAAuBrX,EAAQsX,oBAAsB,IAC7D,EAAmB3jB,WAClBojB,GACH,IAAoBA,EAAgBz9C,SAAS,SAACzmB,GAC7C,OAAIA,EAAOiuD,YAAc,IACxB,EAAcjuD,GACP,MAOV,EAAc,GAKZmtD,EAAQqX,oBAAqB,CAIhC,IAHA,IAAIxW,EAASruD,KAAKquD,OACdvtC,EAAiB,OAEGpU,GAAjBoU,EAAO3T,cAECT,IADd2hD,EAASvtC,EAAOutC,UAEfvtC,EAASA,EAAO3T,aAEHT,GAAV2hD,KAKDA,aAAkB,IACrBb,EAAQuX,WAAWjP,QAAQ,CAAEzrB,SAAU,SAAUna,GAAIm+B,GAAUb,EAAQwX,mBAGvExX,EAAQuX,WAAW1W,OAASA,EAQ9B,GAHAb,EAAQ2B,SAAWoV,EACnB/W,EAAQzoD,MAAM60D,mBAAqB55D,KAE/BwtD,EAAQsX,kBAAmB,CAE9B,IAAIppB,EAAO17C,KAAK07C,KAIhB,IAFI56B,EAAiB,OAEGpU,GAAjBoU,EAAO3T,QAEb,QAAYT,IADZgvC,EAAO56B,EAAO46B,OACYA,aAAgB,UAAqBhvC,GAAZgvC,EAAK6B,IACvDz8B,EAASA,EAAO3T,YAEZ,QAAYT,GAARgvC,EACR,WAIUhvC,GAARgvC,IACHA,EAAO,YAAM,YAGVA,aAAgB,KACd8R,EAAQ3B,QAIZ2B,EAAQuX,WAAWjP,QAAQ,CAAEzrB,SAAU,OAAQna,GAAIwrB,GAAQ8R,EAAQwX,mBAIpExX,EAAQuX,WAAWrpB,KAAOA,EAGvB8R,EAAQyX,eAAiBvpB,aAAgB,MAC5C8R,EAAQzoD,MAAM22C,KAAOA,EAAKwpB,aAK5B,IAAI3iD,EAAO,GAUX,GATIviB,KAAKi0D,cACRzG,EAAQ2X,KAAOnlE,KAAKi0D,YACpB1xC,EAAOviB,KAAKi0D,aAETj0D,KAAKg0D,cACRxG,EAAQjrC,KAAOviB,KAAKg0D,YACpBzxC,EAAOviB,KAAKg0D,aAGTh0D,KAAKorD,sBAAsBlwD,GAAQ,CAUtC,GAPAsyD,EAAQ2O,kBAAoBn8D,KAAK0xD,UAG7BlE,EAAQzoD,MAAM8kC,SACjB2jB,EAAQzoD,MAAMslD,gBAGH39C,GAAR6V,GAA6B,IAARA,GAA2C,IAA7BirC,EAAQzoD,MAAMqgE,YAAmB,CAGnE5X,IAAYA,EAAQrgD,SACvBqgD,EAAQrgD,OAASnN,KAAKivD,kBAKvB,IAAIloB,EAAWymB,EAAQd,aAAauJ,mBAOpC,OANIlvB,GAAY,IACfA,EAAW,GAGZymB,EAAQqW,KAAK98B,GACbymB,EAAQ2W,cAAgBnkE,MACjB,EAGPA,KAAKqsD,YAAY,QAIlBrsD,KAAKqsD,YAAY,IAIpB,OAAO,GAME,YAAAjB,sBAAV,SAAgClwD,GAAhC,WACC,GAA4B,WAAxB8E,KAAK0kE,gBAaJ,CAEJ,IAAIW,EAAc,IAAwB,CACzC,EAAKrlE,KAAKslE,cACV,EAAKtlE,KAAKulE,eACRvlE,MACH,OAAOA,KAAKwlE,eAAeH,GAV3B,GAPIrlE,KAAKiuD,sBACRjuD,KAAKiuD,qBAAqBpO,UAG3B7/C,KAAKiuD,qBAAuB,cAAiBtpD,KAAK3F,OAAOmgD,GAAG,SAAS,SAACyZ,GACrE,OAAO,EAAK4M,eAAe,IAA0B5M,EAAG19D,MAAO,EAAK+sB,aAAau2C,aAAc,EAAKv2C,aAAaC,WAAW,MAEzHhtB,EACH,OAAO8E,KAAKwlE,eAAetqE,GAAO,IAmB3B,YAAAsqE,eAAV,SAAyBtqE,EAAeuqE,GACvC,IAAIjY,EAAUxtD,KAAKwtD,QACnB,GAAIA,GAAWxtD,KAAK8uD,UAAW,CAE9B,GAAItB,EAAQkY,eAEX,OADAlY,EAAQmY,QAAQzqE,EAAOuqE,IAChB,EAGR,GAAI,IAAoBvqE,EAAO,CAAEZ,EAAG,EAAGC,EAAG,EAAG+B,MAAO0D,KAAK8uD,UAAUwS,SAAU/kE,OAAQyD,KAAK8uD,UAAUiT,YAEnG,OADAvU,EAAQmY,QAAQzqE,EAAOuqE,IAChB,EAGT,OAAO,GAQD,YAAApZ,YAAP,SAAmBtlB,GAElB,GAA0B,UAAtB/mC,KAAKmrD,cAAT,CAIA,IAAIqC,EAAUxtD,KAAKwtD,QACfA,IACCA,EAAQiR,cAAgBz+D,OAC3BwtD,EAAQiR,kBAAe/xD,GAExB8gD,EAAQvB,KAAKllB,GACT/mC,KAAKiuD,uBACRjuD,KAAKiuD,qBAAqBpO,UAC1B7/C,KAAKiuD,0BAAuBvhD,MAc/B,sBAAW,0BAAW,C,IAetB,WACC,OAAO1M,KAAKujD,iBAAiB,gB,IAhB9B,SAAuB1tD,GACtBA,EAAQ,IAAaA,GACrBmK,KAAKy1D,WAAY,EACbz1D,KAAKopD,iBAAiB,cAAevzD,IACpCmK,KAAKwtD,SACJxtD,KAAKwtD,QAAQ3B,SAChB7rD,KAAKssD,e,gCAyBT,sBAAW,0BAAW,C,IAiBtB,WACC,OAAOtsD,KAAKujD,iBAAiB,gB,IAlB9B,SAAuB1tD,IACtBA,EAAQ,IAAaA,MAEpBmK,KAAKy1D,WAAY,GAEdz1D,KAAKopD,iBAAiB,cAAevzD,IACpCmK,KAAKwtD,SACJxtD,KAAKwtD,QAAQ3B,SAChB7rD,KAAKssD,e,gCAuBT,sBAAW,+BAAgB,C,IAQ3B,WACC,OAAItsD,KAAKgvD,kBACDhvD,KAAKgvD,kBAEJhvD,KAAKiqD,QACNjqD,KAAKiqD,QAAQgF,sBADhB,G,IAZN,SAA4Bp5D,GAC3BmK,KAAKgvD,kBAAoBn5D,G,gCAqB1B,sBAAW,uBAAQ,C,IASnB,WACC,OAAOmK,KAAKslE,e,IAVb,SAAoBzvE,GACfmK,KAAKy6D,mBAAmB,WAAY5kE,IAAUmK,KAAKwtD,SACtDxtD,KAAKwtD,QAAQ9D,c,gCAwBf,sBAAW,gCAAiB,C,IAU5B,WACC,MAAiD,UAA1C1pD,KAAKujD,iBAAiB,kB,IAX9B,SAA6B1tD,IAC5BA,EAAQ,IAAgBA,MAEvBmK,KAAKmrD,cAAgB,W,gCAiEvB,sBAAW,4BAAa,C,IAmBxB,WACC,OAAOnrD,KAAKujD,iBAAiB,kB,IApB9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,KAC7B,OAATA,IACHmK,KAAK01D,WAAY,GAEd11D,KAAKwtD,UACK,UAAT33D,EACHmK,KAAKssD,cAGLtsD,KAAKovD,6B,gCAmBT,sBAAW,8BAAe,C,IAO1B,WACC,OAAOpvD,KAAKujD,iBAAiB,oB,IAR9B,SAA2B1tD,GAC1BmK,KAAKopD,iBAAiB,kBAAmBvzD,I,gCAe1C,sBAAW,uBAAQ,C,IASnB,WACC,OAAOmK,KAAKulE,e,IAVb,SAAoB1vE,GACfmK,KAAKy6D,mBAAmB,WAAY5kE,IAAUmK,KAAKwtD,SACtDxtD,KAAKwtD,QAAQ9D,c,gCAiBR,YAAA4b,YAAP,WAEC,IAMIzvE,EANAyE,EAAI0F,KAAKujD,iBAAiB,YAmB9B,OAjBK,IAAejpD,KACnBA,EAAI,YAAQ,KAIT,IAAeA,KAClBzE,EAAQyE,GAGLA,aAAa,MAChBzE,EAAQmK,KAAKgoD,YAAchoD,KAAK0nD,mBAAqBptD,EAAEzE,MAAQmK,KAAK0nB,iBAAmB1nB,KAAKknB,IAGxF,IAAerxB,KACnBA,EAAQ,GAGFA,GASD,YAAA0vE,YAAP,WACC,IAMI1vE,EANA0E,EAAIyF,KAAKujD,iBAAiB,YAmB9B,OAjBK,IAAehpD,KACnBA,EAAI,YAAQ,KAIT,IAAeA,KAClB1E,EAAQ0E,GAGLA,aAAa,MAChB1E,EAAQmK,KAAKkoD,WAAaloD,KAAK2nD,oBAAsBptD,EAAE1E,MAAQmK,KAAK2nB,gBAAkB3nB,KAAKqnB,IAGvF,IAAexxB,KACnBA,EAAQ,GAGFA,GAWD,YAAA+vE,mBAAP,SAA0BvhE,EAAUwhE,GAE/B7lE,KAAKioB,eACHjoB,KAAK4pD,UAIT5pD,KAAK+gE,MAAM+E,QAAU9lE,KAAK4pD,UAAUnmD,MAAM,gBAAiBY,GAAG0hE,QAH9D/lE,KAAK+gE,MAAM+E,QAAUzhE,EAAE0hE,QAMnBF,EAIJ7lE,KAAK+gE,MAAM8E,UAAW,EAHtB7lE,KAAKmqD,UAAW,EAMZ,IAAQ6b,gBACZhmE,KAAK+gE,MAAMvB,QAIT,IAAQyG,SACXh1C,QAAQi1C,IAAI7hE,IAUP,YAAA8hE,cAAP,SAAqB33D,GAEhBA,IAGC,IAAeA,EAAOo2D,qBAAuB,IAAep2D,EAAOo2D,qBAAuB5kE,KAAKkrB,IAAIizB,OAAO3vC,EAAOo2D,sBACpHp2D,EAAOo2D,mBAAqB5kE,KAAKkrB,IAAIg0B,OAAO1wC,EAAOo2D,qBAIhD,IAAep2D,EAAO2wD,kBAAoB,IAAe3wD,EAAO2wD,mBACnE3wD,EAAO2wD,gBAAkBn/D,KAAKomE,eAAe53D,EAAO2wD,kBAEjD,IAAe3wD,EAAO63D,iBAAmB,IAAe73D,EAAO63D,kBAClE73D,EAAO63D,eAAiBrmE,KAAKomE,eAAe53D,EAAO63D,iBAEhD,IAAe73D,EAAO4xD,iBACrB,IAAe5xD,EAAO4xD,cAAcC,YAAc,IAAe7xD,EAAO4xD,cAAcC,aACzF7xD,EAAO4xD,cAAcC,UAAYrgE,KAAKomE,eAAe53D,EAAO4xD,cAAcC,YAEvE,IAAe7xD,EAAO4xD,cAAcI,YAAc,IAAehyD,EAAO4xD,cAAcI,aACzFhyD,EAAO4xD,cAAcI,UAAYxgE,KAAKomE,eAAe53D,EAAO4xD,cAAcI,cAM7E,YAAM2F,cAAa,UAAC33D,GAEpBxO,KAAKsmE,qBAUE,YAAAF,eAAR,SAAuBnrB,GACtB,OAAQA,GACP,IAAK,OACJ,OAAO,IAAiBsrB,KACzB,IAAK,WACJ,OAAO,IAAiBC,SACzB,IAAK,UACJ,OAAO,IAAiBrI,QACzB,IAAK,mBACJ,OAAO,IAAiBsI,iBACzB,IAAK,iBACJ,OAAO,IAAiBC,eACzB,QACC,OAAO,IAAiBp2D,UAcjB,YAAAq2D,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAGM,sBAAL1L,EACD,EAEM,sBAAL0L,GACA,EAGD,YAAMkkE,YAAW,UAAC5vE,EAAG0L,IAS9B,sBAAW,uBAAQ,C,IAAnB,WACC,OAAIzC,KAAK6mD,UACD7mD,KAAK6mD,YAEJ7mD,KAAKiqD,SACNjqD,KAAKiqD,QAAQiM,U,gCAkBtB,sBAAW,yBAAU,C,IA0ErB,WACC,OAAOl2D,KAAKujD,iBAAiB,e,IA3E9B,SAAsB1tD,GACrBA,EAAQ,IAAgBA,GACxBmK,KAAK4mE,cAAc/wE,I,gCAMV,YAAA+wE,cAAV,SAAwB/wE,GACnBmK,KAAKopD,iBAAiB,aAAcvzD,KAClCmK,KAAKmhD,cACLtrD,GAAUmK,KAAK40D,QAAW50D,KAAKgsD,OAU9BhsD,KAAK6mE,qBACR7mE,KAAK6mE,oBAAoBhnB,WAV1B7/C,KAAK6mE,oBAAsB,IAAI,IAAc,CAC5C,IAAS7nE,OAAOggE,KAAK,aAAch/D,KAAK8mE,cAAe9mE,MACvDA,KAAKhB,OAAOggE,KAAK,kBAAmBh/D,KAAK8mE,cAAe9mE,MAAM,GAC9DA,KAAKhB,OAAOmgD,GAAG,SAAUn/C,KAAK+mE,OAAQ/mE,MAAM,KAG7CA,KAAKkpD,WAAW1qD,KAAKwB,KAAK6mE,yBAcpB,YAAAC,cAAV,WACM9mE,KAAK6hD,eACT7hD,KAAK6oD,UAAW,EAEX7oD,KAAK40D,QACT50D,KAAKisD,KAAK,KAQN,YAAA8a,OAAP,sBAKC,GAJA/mE,KAAK6oD,UAAW,EACX7oD,KAAKgsD,QAAWhsD,KAAKk2D,UACzBl2D,KAAKisD,KAAK,GAENjsD,KAAKgsD,OAgBThsD,KAAK6oD,UAAW,EAChB7oD,KAAKmB,SAAS,gBAjBG,CAEjB,IAAIq1D,EAAYx2D,KAAK6jE,OAEjBrN,IAAcA,EAAUW,aAC3Bn3D,KAAKwvD,YAAYgH,EAAUx3D,OAAOmgD,GAAG,kBAAkB,WACtD,EAAK0J,UAAW,EAChB,EAAK1nD,SAAS,iBAIfnB,KAAK6oD,UAAW,EAChB7oD,KAAKmB,SAAS,eAwBjB,sBAAW,qBAAM,C,IAQjB,WACC,OAAOnB,KAAKujD,iBAAiB,W,IAT9B,SAAkB1tD,GACjBA,EAAQ,IAAgBA,GACxBmK,KAAKopD,iBAAiB,SAAUvzD,I,gCAgBjC,sBAAW,mBAAI,C,IAAf,WACC,OAAImK,KAAKyyD,YACDzyD,KAAKyyD,YAENzyD,KAAKsnD,O,gCAUb,sBAAW,sBAAO,C,IAAlB,sBASC,OARKtnD,KAAKgnE,WACThnE,KAAKgnE,SAAW,IAAI,IACpBhnE,KAAKkpD,WAAW1qD,KAAKwB,KAAKgnE,SAAShoE,OAAOmgD,GAAG,YAAY,SAACyZ,GACzDA,EAAGxZ,SAAS59C,OAAS,EACrBo3D,EAAGxZ,SAAS6nB,WAEbjnE,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAawB,KAAKgnE,YAErChnE,KAAKgnE,U,gCASN,YAAAE,cAAP,SAAqBC,GACpBnnE,KAAKqqD,YAQC,YAAA+c,uBAAP,WACC,OAAO,GAQD,YAAAC,yBAAP,WACCrnE,KAAK0qD,oBAQC,YAAA4c,uBAAP,aAGD,EA/kSA,CAA4B,KAulS5B,IAASloE,kBAAT,OAAuCmoE,G,6BCj2SvC,IAAYC,EARZ,kCAQA,SAAYA,GAER,qBAEA,qBAEA,iCAEA,yBAEA,qBAEA,2BAEA,mBAdJ,CAAYA,MAAQ,M,6BCRpB,oLA+MA,cAwIC,mBAGC,cAAO,K,OArHE,EAAAC,kBAA8B,GA4B9B,EAAAC,mBAAoD,IAAI,IAsB3D,EAAAnK,YAAsB,EAMtB,EAAAoK,kBAA8B,GAK9B,EAAAC,eAAyB,EAEtB,EAAAC,eAAyB,EAEzB,EAAAC,gBAA0B,EAyB1B,EAAAC,eAA2B,GAK3B,EAAAC,gBAA0B,EAc7B,EAAAC,WAAqB,IAS3B,EAAKltB,UAAY,YAEjB,EAAKuX,SAAW,EAAK/xD,MAAM4oD,SAAS,KACpC,EAAK1hC,MAAMne,IAAI,EAAKof,SAEpB,EAAK0gC,iBAAiB,gBAAgB,GACtC,EAAKA,iBAAiB,SAAU,YAChC,EAAKA,iBAAiB,kBAAkB,GAExC,EAAKA,iBAAiB,iBAAkB,QACxC,EAAKA,iBAAiB,mBAAoB,QAE1C,EAAKlC,mBAAqB,EAE1B,EAAKgC,WAAW1qD,KAAK,IAAI,IAAmB,EAAKkpE,qBAEjD,EAAKtxD,SAASpX,OAAOmgD,GAAG,WAAY,EAAK+oB,iBAAkB,GAC3D,EAAK9xD,SAASpX,OAAOmgD,GAAG,UAAW,EAAKgpB,mBAAoB,GAE5D,EAAKxe,a,EA80DP,OA7+D+B,iBA0KvB,YAAAue,iBAAP,SAAwB/jB,GACvBnkD,KAAKooE,aAAajkB,EAAM/E,WAMlB,YAAAgpB,aAAP,SAAoBzZ,GAEnB,IACC3uD,KAAK0nE,mBAAmBW,UAAU1Z,EAAM1uD,IAAK,IAAI,IAAc,CAE9D0uD,EAAM3vD,OAAOmgD,GAAG,cAAen/C,KAAKsoE,qBAAsBtoE,MAC1D2uD,EAAM3vD,OAAOmgD,GAAG,gBAAiBn/C,KAAKuoE,WAAYvoE,SAGpD,MAAO+Q,IAIH/Q,KAAK0oB,SACW1oB,KAAK0oB,QAClBpf,IAAIqlD,EAAMlnC,OAGjBknC,EAAMxhD,OAASnN,KACf2uD,EAAMpuD,MAAQP,KAAKO,MAEnBP,KAAKyB,oBAAoB,aAAc,CAAEF,KAAM,aAAc69C,SAAUuP,IAEvE3uD,KAAK0pD,cAMI,YAAA6e,WAAV,WACCvoE,KAAKm0D,eACLn0D,KAAKwoE,eAUC,YAAAL,mBAAP,SAA0BhkB,GACzB,IAAIwK,EAAgBxK,EAAM3E,UAG1Bx/C,KAAK0nE,mBAAmBlZ,UAAUG,EAAM1uD,KAEpCD,KAAK0oB,UACW1oB,KAAK0oB,QAClB6pC,cAAc5D,EAAMlnC,OAGvBknC,EAAMnD,YACTxrD,KAAKqhE,mBAGNrhE,KAAKyB,oBAAoB,eAAgB,CAAEF,KAAM,eAAgBi+C,SAAUmP,KAUrE,YAAA2Z,qBAAP,SAA4BnkB,GACPA,EAAM3iD,OAChBgqD,YACTxrD,KAAKqhE,oBASA,YAAAA,iBAAP,WACKrhE,KAAK4nE,eAAiB5nE,KAAKmqD,UAAYnqD,KAAKmhD,YAA6B,QAAfnhD,KAAKwhE,QAAoBxhE,KAAKosD,aAI5FpsD,KAAK4nE,eAAgB,EACrB,IAASzlE,oBAAoBnC,MAC7B,IAAOoqD,iBAYD,YAAAV,WAAP,WACC,YAAMA,WAAU,WAChB1pD,KAAKqhE,oBAUC,YAAAjJ,eAAP,WACC,YAAM1O,WAAU,WAGhB,IAAY1pD,KAAKynE,mBAAmB,SAAC9Y,GAChCA,aAAiB8Z,EACpB9Z,EAAMyJ,iBAGNzJ,EAAMjF,gBAIR1pD,KAAKqhE,oBASN,sBAAW,uBAAQ,C,IAAnB,WAMC,OAJKrhE,KAAK0oE,YACT1oE,KAAK0oE,UAAY,IAAI,KAGf1oE,KAAK0oE,W,gCASb,sBAAW,uBAAQ,C,IASnB,WACC,OAAO1oE,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,IACrCmK,KAAKqhE,oB,gCAiBP,sBAAW,wBAAS,C,IASpB,WACC,OAAOrhE,KAAKujD,iBAAiB,c,IAV9B,SAAqB1tD,GAChBmK,KAAKopD,iBAAiB,YAAavzD,IACtCmK,KAAKqhE,oB,gCAmBG,YAAA9O,cAAV,aAWO,YAAA4B,aAAP,sBAIC,GAFAn0D,KAAKynE,kBAAoB,GAEN,QAAfznE,KAAKwhE,QAAmC,YAAfxhE,KAAKwhE,QAAyBxhE,KAAKwhE,OAM3D,CAEJ,IAAI,EAAkB,GAClB,EAAqB,GAEzB,IAAWxhE,KAAKoW,SAAS/Q,YAAY,SAACspD,GAClB,cAAf,EAAK6S,QAAyC,QAAf,EAAKA,OAClC,IAAe7S,EAAM8T,cAIzB,EAASjkE,KAAKmwD,GAHd,EAAMnwD,KAAKmwD,GAMW,YAAf,EAAK6S,QACR,IAAe7S,EAAMgU,eAIzB,EAASnkE,KAAKmwD,GAGf,EAAMnwD,KAAKmwD,MAKb3uD,KAAKynE,kBAAoB,EAAMvhE,OAAO,QA7BtClG,KAAKynE,kBAAoBznE,KAAKoW,SAASrd,OAgCxCiH,KAAK2oE,yBASC,YAAAA,sBAAP,sBACKC,EAA6B,EAC7BC,EAA8B,EAElC,IAAY7oE,KAAKynE,mBAAmB,SAAC9Y,GAEhCA,EAAMnD,aACL,IAAemD,EAAM8T,gBACxBmG,GAAsBja,EAAM8T,cAEzB,IAAe9T,EAAMgU,iBACxBkG,GAAuBla,EAAMgU,mBAKhC,IAAY3iE,KAAKynE,mBAAmB,SAAC9Y,GAChCA,EAAMnD,aACU,cAAf,EAAKgW,SACJ,IAAe7S,EAAM8T,gBACxB9T,EAAMqT,cAAgBrT,EAAM8T,aAAemG,GAExC,IAAeja,EAAMgU,iBACxBhU,EAAM6T,eAAiB7T,EAAMgU,cAAgB,MAG5B,YAAf,EAAKnB,SACJ,IAAe7S,EAAMgU,iBACxBhU,EAAM6T,eAAiB7T,EAAMgU,cAAgBkG,GAE1C,IAAela,EAAM8T,gBACxB9T,EAAMqT,cAAgBrT,EAAM8T,aAAe,MAI1B,QAAf,EAAKjB,SACJ,IAAe7S,EAAMgU,iBACxBhU,EAAM6T,eAAiB7T,EAAMgU,cAAgB,KAE1C,IAAehU,EAAM8T,gBACxB9T,EAAMqT,cAAgBrT,EAAM8T,aAAe,OAI3B,YAAf,EAAKjB,QAAyB7S,EAAMnD,aACnC,IAAemD,EAAM8T,gBACxB9T,EAAMqT,cAAgBrT,EAAM8T,aAAe,KAExC,IAAe9T,EAAMgU,iBACxBhU,EAAM6T,eAAiB7T,EAAMgU,cAAgB,UAWvC,YAAA6F,YAAV,WAKC,GAAIxoE,KAAK0oB,QAAS,CACjB,IAAIogD,EAAW,IAAY9oE,KAAKoW,SAASrd,QAErCgwE,EAAYD,EAAS59C,KAAI,SAAS7pB,EAAM2nE,GAC3C,MAAO,CAAEA,IAAKA,EAAK3nE,KAAMA,MAG1B0nE,EAAUvwC,MAAK,SAASzhC,EAAQ0L,GAC/B,IAAMwmE,EAAMlyE,EAAEsK,KAAK6nE,QAAU,EACvBC,EAAM1mE,EAAEpB,KAAK6nE,QAAU,EAC7B,OAAID,EAAKE,GAAc,EACnBF,EAAKE,EAAa,EACfpyE,EAAEiyE,IAAMvmE,EAAEumE,OAGlBF,EAAWC,EAAU79C,KAAI,SAASkF,GACjC,OAAOA,EAAI/uB,QAGZ,IAAI,EAAerB,KAAK0oB,QAGpB0gD,GAAY,EAEhB,GAAI,EAAMjZ,MAAQ,EAAMA,KAAKtC,WAC5B,IAAK,IAAIxxD,EAAI,EAAGgV,EAAM,EAAM8+C,KAAKtC,WAAW1xD,OAAQE,EAAIgV,EAAKhV,IAC5D,GAAI,EAAM8zD,KAAKtC,WAAWxxD,IAAMysE,EAASzsE,GAAGorB,MAAM0oC,KAAM,CACvDiZ,GAAY,EACZ,MAKEA,IACJ,IAAYN,GAAU,SAACna,GAClBA,EAAMlnC,OACT,EAAMne,IAAIqlD,EAAMlnC,UAKdznB,KAAKq4D,aACRr4D,KAAKynB,MAAM4hD,UAAUrpE,KAAKq4D,YAAY5wC,OAGvCznB,KAAKqhE,sBAYD,YAAAiI,YAAP,SAAqCC,GACpC,IAAIlpE,EAAS,IAAIkpE,EAEjB,OADAlpE,EAAO8M,OAASnN,KACTK,GAQD,YAAAmpE,eAAP,WAGC,KAAOxpE,KAAKoW,SAASja,OAAS,GAAG,CAChC,IAAIwyD,EAAgB3uD,KAAKoW,SAAS+pC,SAAS,GAC3CwO,EAAMxhD,YAAST,EACf1M,KAAKoW,SAAS6pC,YAAY0O,KAUrB,YAAA8a,gBAAP,WAEC,KAAOzpE,KAAKoW,SAASja,OAAS,GAAG,CAChC,IAAIwyD,EAAgB3uD,KAAKoW,SAAS+pC,SAAS,GAC3CwO,EAAM9O,UACN7/C,KAAKoW,SAAS6pC,YAAY0O,KAS5B,sBAAW,yBAAU,C,IAqCrB,WAMC,OALK3uD,KAAKq4D,cACTr4D,KAAKq4D,YAAcr4D,KAAK0pE,mBACxB1pE,KAAK2pE,qBAGC3pE,KAAKq4D,a,IA3Cb,SAAsB0M,GACjB/kE,KAAKq4D,aAAer4D,KAAK+kE,YAAcA,GAC1C/kE,KAAKoyD,cAAcpyD,KAAKq4D,aAGrB0M,IACH/kE,KAAKq4D,YAAc0M,EACnB/kE,KAAKkpD,WAAW1qD,KAAKumE,GACrB/kE,KAAK2pE,sB,gCASA,YAAAhd,kBAAP,WACC,YAAMA,kBAAiB,WACvB3sD,KAAKoW,SAASlP,MAAK,SAACynD,GACnBA,EAAMhC,wBAUD,YAAA+c,iBAAP,WACC,OAAY,IAAI,KAoBV,YAAAC,kBAAP,WACC,IAAI5E,EAAa/kE,KAAKq4D,YAClB0M,IACHA,EAAWvZ,YAAa,EACxBxrD,KAAKq4D,YAAY3c,MAAO,IAAI,KAAoBkuB,OAAO,cACvD7E,EAAW53D,OAASnN,KACpB+kE,EAAWvZ,YAAa,EACxBxrD,KAAKoW,SAAS6pC,YAAY8kB,GAC1B/kE,KAAKkpD,WAAW1qD,KAAKumE,GACrB/kE,KAAKynB,MAAM4hD,UAAUrpE,KAAKq4D,YAAY5wC,SAWjC,YAAAoiD,eAAP,sBAEC,IAASznE,yBAAyBpC,MAElCA,KAAK4nE,eAAgB,EAWrB5nE,KAAK8pE,gBAAkB9pE,KAAKomD,WAC5BpmD,KAAK+pE,iBAAmB/pE,KAAKkmD,YAE7B,IAAIiN,EAAgB,EAChBC,EAAiB,EAEjB4W,GAAW,EAEXhqE,KAAKoW,WAERpW,KAAKm0D,eAGL,IAAYn0D,KAAKynE,mBAAmB,SAAC9Y,GACpC,IAAI2S,EACAS,EA+BJ,GA7BI,IAAepT,EAAMqT,gBACxBV,EAAW,IAAY,EAAKwI,gBAAkBnb,EAAMqT,cAAe,GAChD,cAAf,EAAKR,SACRF,GAAY3S,EAAMgT,iBAAmBhT,EAAM+S,kBAIzB,cAAf,EAAKF,QACJ7S,EAAM9kB,SACT8kB,EAAMtE,WAKL,IAAesE,EAAM6T,iBACxBT,EAAY,IAAY,EAAKgI,iBAAmBpb,EAAM6T,eAAgB,GACnD,YAAf,EAAKhB,SACRO,GAAapT,EAAM0T,eAAiB1T,EAAM2T,oBAIxB,YAAf,EAAKd,QACJ7S,EAAM9kB,SACT8kB,EAAMtE,WAMY,GAAjBsE,EAAM9kB,SAUT,GARI,IAAe8kB,EAAMqT,iBACxBrT,EAAM2S,SAAWA,GAGd,IAAe3S,EAAM6T,kBACxB7T,EAAMoT,UAAYA,GAGfpT,EAAMnD,WAAY,CAEF,cAAf,EAAKgW,SACH,IAAe7S,EAAM8T,eACrB9T,EAAMwE,cAAgB,IACzB,EAAK2W,iBAAmBnb,EAAMwE,cAAgBxE,EAAM+S,gBAAkB/S,EAAMgT,mBAM5D,YAAf,EAAKH,SACH,IAAe7S,EAAMgU,gBACrBhU,EAAMyE,eAAiB,IAC1B,EAAK2W,kBAAoBpb,EAAMyE,eAAiBzE,EAAM0T,eAAiB1T,EAAM2T,oBAKhF,IAAI2H,EAAqBtb,EAAMwE,cAC3B+W,EAAsBvb,EAAMyE,eAEb,QAAfzE,EAAM8S,QACTwI,GAAsBtb,EAAM+S,gBAAkB/S,EAAMgT,kBAEjC,QAAhBhT,EAAMyT,SACT8H,GAAuBvb,EAAM0T,eAAiB1T,EAAM2T,mBAGrDnP,EAAgB57D,KAAKM,IAAIs7D,EAAe8W,GACxC7W,EAAiB77D,KAAKM,IAAIu7D,EAAgB8W,SAMvCvb,EAAMnD,aACL,IAAemD,EAAMqT,gBACpBrT,EAAM2S,UAAYA,IACrB3S,EAAM2S,SAAWA,EACjB0I,GAAW,GAGT,IAAerb,EAAM6T,iBACpB7T,EAAMoT,WAAaA,IACtBpT,EAAMoT,UAAYA,EAElBiI,GAAW,QAQjBhqE,KAAK6nE,eAAiB1U,EACtBnzD,KAAK8nE,gBAAkB1U,EAGnB4W,GACHhqE,KAAKmqE,WAWA,YAAAA,QAAP,eAmBKvxE,EACAC,EACAwvB,EACAjsB,EAeAguE,EACAC,EACAC,EA+CAC,EACAC,EACAC,EACAC,EAzFL,OACKt0D,EAAWpW,KAAKoW,SAShB+8C,EAAwB,EACxBC,EAAyB,EAKzBhN,EAAqB,IAAUpmD,KAAKomD,WAAYpmD,KAAK6nE,gBACrD3hB,EAAsB,IAAUlmD,KAAKkmD,YAAalmD,KAAK8nE,iBAOvD/+C,EAAsB/oB,KAAK0nB,iBAC3BsB,EAAuBhpB,KAAKizD,kBAC5B5pC,EAAqBrpB,KAAK2nB,gBAC1B2B,EAAwBtpB,KAAKkzD,mBAE7ByX,EAAgB,EAChBC,EAAgB,EAChBC,EAAc,EACdC,EAAiB,EAEjBC,EAAwB,GACxBC,EAAsB,GAMtB1J,EAAWthE,KAAKshE,SAChBS,EAAY/hE,KAAK+hE,UACjBe,EAAW9iE,KAAK8iE,SAChBC,EAAY/iE,KAAK+iE,UAEjBkI,EAAe,IAAY70D,EAASrd,QAMxC,GALIiH,KAAKkrE,cACRD,EAAa1nD,UAIK,QAAfvjB,KAAKwhE,OAAkB,CAE1B6I,EAAe/I,EACf8I,EAAe,EAEf,IAAK,IAAI/tE,EAAI,EAAGgV,EAAM45D,EAAa9uE,OAAQE,EAAIgV,EAAKhV,IAAK,CAExD,IADIsyD,EAAQsc,EAAa5uE,IACfmvD,aAAemD,EAAMxE,WAAawE,EAAMvC,WAAY,CAC7D,IAAI6d,EAAqBtb,EAAMwE,cAC3B8W,EAAqBI,IACxBA,EAAeJ,GAEZA,EAAqBG,IACxBA,EAAeH,IAKlBI,EAAe,IAAiBA,EAAc,EAAG/I,GACjD8I,EAAe,IAAiBA,EAAc,EAAG9I,GAIhDgJ,EADGtqE,KAAKmrE,eACM7J,EAAW8I,EAGX9I,EAAW+I,EAG1BC,EAAc,IAAU,EAAG/yE,KAAKU,MAAMqyE,IACtCA,EAAc,IAAUtqE,KAAKorE,WAAYd,GACzCS,EAAc/qE,KAAKqrE,eAAeJ,EAAcX,EAAaF,GAa9D,IAAS/tE,EAAI,EAAGgV,EAAM45D,EAAa9uE,OAAQE,EAAIgV,EAAKhV,IAAK,CACxD,IAAIsyD,EAEJ,KAFIA,EAAQsc,EAAa5uE,IAEfmvD,YAAemD,EAAMxE,UAAawE,EAAMvC,WA+MjDuC,EAAMjE,uBA/MuD,CAE7D,IAAIpwD,OAA4BoS,EAC5BnS,OAA4BmS,EAE5B4+D,EAA0B3c,EAAM+S,gBAChC6J,EAA2B5c,EAAMgT,iBACjC6J,EAAyB7c,EAAM0T,eAC/BoJ,EAA4B9c,EAAM2T,kBAElCoJ,EAAqB/c,EAAMwE,cAC3BwY,EAAsBhd,EAAMyE,eAE5BwY,OAAS,EACTC,OAAU,EACVC,OAAQ,EACRC,OAAW,EAEf,OAAQ/rE,KAAKwhE,QACZ,IAAK,OACJ,MAED,IAAK,WAEJ,OAAQ7S,EAAM8S,OACb,IAAK,OACJnnE,EAAIgxE,EAAkB3c,EAAM/G,QAC5B,MACD,IAAK,SACJttD,GAAK8rD,EAAaslB,GAAc,EAAI/c,EAAM/G,QAC1C,MACD,IAAK,QACJttD,EAAI8rD,EAAamlB,EAAmB5c,EAAM9G,SAC1C,MACD,QACO8G,EAAMr0D,aAAa,MACxBA,EAAIq0D,EAAM1nC,QAMb,OAAQ0nC,EAAMyT,QACb,IAAK,MACJ7nE,EAAIixE,EAAiB7c,EAAM7G,OAC3B,MACD,IAAK,SACJvtD,GAAK2rD,EAAcylB,GAAe,EAAIhd,EAAM7G,OAC5C,MACD,IAAK,SACJvtD,EAAI2rD,EAAculB,EAAoB9c,EAAM5G,UAC5C,MACD,QACO4G,EAAMp0D,aAAa,MACxBA,EAAIo0D,EAAMvnC,QAKb,MAED,IAAK,WAKJ,OAAQunC,EAAM8S,OACb,IAAK,OACJnnE,EAAIgxE,EAAkB3c,EAAM/G,QAC5B,MACD,IAAK,SACJttD,GAAK8rD,EAAaslB,GAAc,EAAI/c,EAAM/G,QAC1C,MACD,IAAK,QACJttD,EAAI8rD,EAAamlB,EAAmB5c,EAAM9G,SAC1C,MACD,QACCvtD,EAAIq0D,EAAM1nC,OAKZ2jD,GADArwE,EAAIqwE,EAAQY,EAAiB7c,EAAM7G,QACvB6G,EAAM5G,UAAY0jB,EAC9B,MAGD,IAAK,aAMJ,OAAQ9c,EAAMyT,QACb,IAAK,MACJ7nE,EAAIixE,EAAiB7c,EAAM7G,OAC3B,MACD,IAAK,SACJvtD,GAAK2rD,EAAcylB,GAAe,EAAIhd,EAAM7G,OAC5C,MACD,IAAK,SACJvtD,EAAI2rD,EAAculB,EAAoB9c,EAAM5G,UAC5C,MACD,QACCxtD,EAAIo0D,EAAMvnC,OAKZujD,GADArwE,EAAIqwE,EAAQW,EAAkB3c,EAAM/G,SACxB+G,EAAM9G,SAAW0jB,EAE7B,MAED,IAAK,OAEJ,OADAjxE,EAAIqwE,EAAQW,EAAkB3c,EAAM/G,QAC5B+G,EAAMyT,QACb,IAAK,MACJ7nE,EAAIqwE,EAAQY,EAAiB7c,EAAM7G,OACnC,MACD,IAAK,SACJvtD,EAAIqwE,GAAS1kB,EAAcylB,GAAe,EAAIhd,EAAM7G,OACpD,MACD,IAAK,SACJvtD,EAAIqwE,EAAQ1kB,EAAculB,EAAoB9c,EAAM5G,UACpD,MACD,QACCxtD,EAAIqwE,EAAQjc,EAAM7G,OAIpB6iB,GAASI,EAAYD,GAErBE,EAAUH,GAAO,IAAUG,EAAUH,GAAMc,GAG3C,IAAIK,EAAkBjB,IAFtBD,GAQA,GAJK,IAAekB,KACnBA,EAAkB5B,GAGfO,EAAQ,IAAU3qE,KAAKomD,WAAYkb,GAAY0K,EAAkB,GAAKlB,EAASR,EAAa,CAC/FA,EAAcQ,EAEdH,EAAQ,EACRC,EAAQ,EAERC,EAAM,EACNC,EAAS,EAETC,EAAc/qE,KAAKqrE,eAAeJ,EAAcX,EAAaF,GAC7DY,EAAY,GAEZ3uE,GAAK,EACL,SAGGyuE,GAAUR,IACbQ,EAAS,EACTF,GAASI,EAAUH,GACnBA,IACAF,EAAQ,GAKS,SAAhB3qE,KAAKwhE,SACR7S,EAAMr9C,OAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAExBqxE,EAAYtxE,EAAIq0D,EAAM/G,QAAU0jB,EAChCO,EAAavxE,EAAIq0D,EAAM9G,SAAW0jB,EAClCO,EAAWvxE,EAAIo0D,EAAM7G,OAAS0jB,EAC9BO,EAAcxxE,EAAIo0D,EAAM5G,UAAY0jB,GAEhCI,EAAahzE,IAAU,IAAeA,MACzCA,EAAQgzE,IAGLD,EAAYhzE,IAAS,IAAeA,MACvCA,EAAOgzE,IAGJE,EAAWzjD,IAAQ,IAAeA,MACrCA,EAAMyjD,IAGHC,EAAc3vE,IAAW,IAAeA,MAC3CA,EAAS2vE,IAGNF,EAAarB,IAAiB,IAAeA,MAChDA,EAAeqB,IAGZD,EAAYrB,IAAgB,IAAeA,MAC9CA,EAAcqB,IAGXE,EAAWrB,IAAe,IAAeA,MAC5CA,EAAaqB,IAGVC,EAAcrB,IAAkB,IAAeA,MAClDA,EAAgBA,KASpB,GAAmB,QAAf1qE,KAAKwhE,OAAkB,CAC1B,IAAIyK,GAAWjsE,KAAKmoB,KACpBvvB,EAAOqzE,GAAS3xE,EAChBzB,EAAQozE,GAAS3xE,EAAI2xE,GAAS3vE,MAC9B+rB,EAAM4jD,GAAS1xE,EACf6B,EAAS6vE,GAAS1xE,EAAI0xE,GAAS1vE,OAG3B,IAAe3D,KACnBA,EAAO,EACP2xE,EAAc,GAGV,IAAe1xE,KAEnB2xE,EADA3xE,EAAQmH,KAAK8pE,iBAIT,IAAezhD,KACnBA,EAAM,EACNoiD,EAAa,GAGT,IAAeruE,KAEnBsuE,EADAtuE,EAAS4D,KAAK+pE,kBAIV,IAAeU,KACnBA,EAAa,GAGT,IAAeC,KACnBA,EAAgBD,GAGZ,IAAeF,KACnBA,EAAc,GAGV,IAAeC,KACnBA,EAAeD,GAGhBpX,EAAgBt6D,EAAQD,EACxBw6D,EAAiBh3D,EAASisB,EAEtB,IAAeroB,KAAKgiE,iBAEvBppE,EAAO,EACPC,EAFAs6D,EAAgBmO,EAAWv4C,EAAcC,GAKtC,IAAehpB,KAAKwiE,kBAEvBn6C,EAAM,EACNjsB,EAFAg3D,EAAiB2O,EAAY14C,EAAaC,GAKvC,IAAetpB,KAAK0iE,eACvB9pE,EAAO,EACPu6D,EAAgBnzD,KAAK0iE,YAAc35C,EAAcC,GAG9C,IAAe85C,IAAa3P,EAAgB2P,IAC/ClqE,EAAO,EACPu6D,EAAgBnzD,KAAK8iE,SAAW/5C,EAAcC,GAG3C,IAAehpB,KAAK6iE,gBACvBx6C,EAAM,EACN+qC,EAAiBpzD,KAAK6iE,aAAex5C,EAAaC,GAG/C,IAAey5C,IAAc3P,EAAiB2P,IACjD16C,EAAM,EACN+qC,EAAiB2P,EAAY15C,EAAaC,GAG3C,IAAI4iD,GAAuB1B,EAAeD,EACtC4B,GAAwBzB,EAAgBD,EAG5C,GAAmB,QAAfzqE,KAAKwhE,SAAqBxhE,KAAKosE,cAAgBpsE,KAAKqsE,gBAAkBj2D,EAASja,OAAS,EAAG,CAC9F,IAAI,GACA,GAEAmwE,GAAMnZ,EACNoZ,GAAMnZ,EACNkZ,GAAMJ,KACTI,GAAMJ,IAGHK,GAAMJ,KACTI,GAAMJ,IAGkB,UAArBnsE,KAAKosE,eACR,IAAME,GAAMJ,IAAwB,GAEZ,SAArBlsE,KAAKosE,eACR,GAAKE,GAAMJ,IAEc,UAAtBlsE,KAAKqsE,gBACR,IAAME,GAAMJ,IAAyB,GAEZ,UAAtBnsE,KAAKqsE,gBACR,GAAKE,GAAMJ,IAGR,IAAe,KAClB,IAAW/1D,EAAS/Q,YAAY,SAACspD,GAChC,IAAIid,EAAoBjd,EAAM/G,QAE1B4kB,EAAc,GAEC,cAAf,EAAKhL,SACR7S,EAAMr0D,EAAIq0D,EAAM1nC,OAASulD,GAGP,QAAf,EAAKhL,SACR7S,EAAMr0D,EAAIq0D,EAAM1nC,OAASulD,GAEP,YAAf,EAAKhL,SACRgL,GAAO7d,EAAM+S,gBACM,QAAf/S,EAAM8S,QACT9S,EAAMr0D,EAAIkyE,EAAMZ,IAIC,YAAf,EAAKpK,SACRgL,GAAO7d,EAAM+S,gBACM,QAAf/S,EAAM8S,QACT9S,EAAMr0D,EAAIkyE,EAAMZ,OAMhB,IAAe,KAClB,IAAWx1D,EAAS/Q,YAAY,SAACspD,GAChC,IAAImd,EAAmBnd,EAAM7G,OAEzB2kB,EAAc,GAEC,cAAf,EAAKjL,SACRiL,GAAO9d,EAAM0T,eACO,QAAhB1T,EAAMyT,SACTzT,EAAMp0D,EAAIkyE,EAAMX,IAIC,QAAf,EAAKtK,SACRiL,GAAO9d,EAAM0T,eACb1T,EAAMp0D,EAAIkyE,EAAMX,GAEE,YAAf,EAAKtK,SACR7S,EAAMp0D,EAAIo0D,EAAMvnC,OAASqlD,GAGP,YAAf,EAAKjL,SACRiL,GAAO9d,EAAM0T,eAEO,QAAhB1T,EAAMyT,SACTzT,EAAMp0D,EAAIkyE,EAAMX,OAOrB,IAAIY,GAAU1sE,KAAKmoB,KAgBnBgrC,EAAgB,IAAUA,EAAe2P,GACzC1P,EAAiB,IAAUA,EAAgB2P,GAE3C/iE,KAAK2sE,aAAexZ,EACpBnzD,KAAK4sE,cAAgBxZ,EAErBD,EAAgB,IAAUA,EAAemO,GACzClO,EAAiB,IAAUA,EAAgB2O,GAE3C/hE,KAAKsnD,MAAQ,CAAEhtD,EAAG1B,EAAM2B,EAAG8tB,EAAK/rB,MAAO62D,EAAe52D,OAAQ62D,GAE9D,IAAIyZ,GAAW7sE,KAAK4nD,QAChBklB,GAAU9sE,KAAK8nD,OACfilB,GAAc/sE,KAAK+nD,UACnBilB,GAAYhtE,KAAK6nD,SAIrB,GAFA7nD,KAAK8qD,WAED+hB,IAAY7sE,KAAK4nD,SAAWolB,IAAahtE,KAAK6nD,UAAYilB,IAAW9sE,KAAK8nD,QAAUilB,IAAe/sE,KAAK+nD,YACvG/nD,KAAKhB,OAAOsC,UAAU,eAAgB,CACzC,IAAI,GAAwD,CAC3DC,KAAM,cACNC,OAAQxB,MAEL0sE,KACH,GAAMO,UAAYP,GAAQpwE,MAAQ,IAAM62D,EAAgB,KAAOuZ,GAAQnwE,OAAS,IAAM62D,GAGvFpzD,KAAKhB,OAAOyC,oBAAoB,cAAe,IAIjDzB,KAAKyB,oBAAoB,oBASnB,YAAAkxD,aAAP,WACC,YAAMA,aAAY,WAClB3yD,KAAKktE,oBASC,YAAAA,iBAAP,WACC,IAAInI,EAAqB/kE,KAAKq4D,YAE1B0M,IACHA,EAAWzqE,EAAI0F,KAAK4nD,QACpBmd,EAAWxqE,EAAIyF,KAAK8nD,OACpBid,EAAWzoE,MAAQ0D,KAAK6nD,SAAW7nD,KAAK4nD,QACxCmd,EAAWxoE,OAASyD,KAAK+nD,UAAY/nD,KAAK8nD,SAYrC,YAAAujB,eAAP,SAAsBj1D,EAAoBk0D,EAAqBF,GAA/D,WACKW,EAAwB,GACxBD,EAAiB,EAmBrB,OAjBA,IAAY10D,GAAU,SAACu4C,IAClBA,EAAMnD,YAAemD,EAAMxE,UAAawE,EAAMvC,aAC7C,EAAK+e,eACRJ,EAAYD,GAAUV,EAGtBW,EAAYD,GAAU,IAAUC,EAAYD,GAASnc,EAAMwE,cAAgBxE,EAAMgT,iBAAmBhT,EAAM+S,mBAG3GoJ,GAEcR,IACbQ,EAAS,OAKLC,GAaR,sBAAW,qBAAM,C,IASjB,WACC,OAAO/qE,KAAKujD,iBAAiB,W,IAV9B,SAAkB1tD,GACbmK,KAAKopD,iBAAiB,SAAUvzD,IACnCmK,KAAKqhE,oB,gCAkBP,sBAAW,4BAAa,C,IAOxB,WACC,OAAOrhE,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAiB/C,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAkB9C,sBAAW,6BAAc,C,IAOzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAR9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GAAO,I,gCAehD,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAiB5C,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAiB9C,sBAAW,iCAAkB,C,IAO7B,WACC,OAAOmK,KAAKujD,iBAAiB,uB,IAR9B,SAA8B1tD,GAC7BmK,KAAKopD,iBAAiB,qBAAsBvzD,GAAO,I,gCAgB7C,YAAAs3E,aAAP,SAAoBjyE,GACnB,IAAIZ,EAAIY,EAAMZ,EACVC,EAAIW,EAAMX,EAEd,OAAID,IADY,IACOA,GAAK0F,KAAK8xD,WADjB,IAC2Cv3D,IAD3C,IAC8DA,GAAKyF,KAAK+xD,YADxE,IAeV,YAAAlR,SAAP,SAAgB//B,GAAhB,WACC,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKwhE,OAAS1gD,EAAO0gD,OACrBxhE,KAAKotE,mBAAqBtsD,EAAOssD,mBAE7BtsD,EAAOu3C,cACVr4D,KAAK+kE,WAAajkD,EAAOu3C,YAAYzvD,QACrC5I,KAAK+kE,WAAWlkB,SAAS//B,EAAOu3C,cAGjC,IAAWv3C,EAAO1K,SAAS/Q,YAAY,SAACspD,GACnCA,EAAM/F,cACiB+F,EAAM/lD,QACpBuE,OAAS,OAUxB,sBAAW,wBAAS,C,IAcpB,WACC,IAAMkgE,EAAYrtE,KAAKstE,WAEvB,OAAID,IAGKrtE,KAAKmN,OACNnN,KAAKmN,OAAOkgE,eADf,I,IApBN,SAAqBA,GAChBrtE,KAAKstE,YACRttE,KAAKoyD,cAAcpyD,KAAKstE,YAEzBttE,KAAKstE,WAAaD,EACdA,IACHA,EAAUlgE,OAASnN,KAAKivD,iBACxBjvD,KAAKkpD,WAAW1qD,KAAK6uE,K,gCAwBhB,YAAAhd,SAAP,SAAgB9vD,GAAhB,WACKgtE,EAAU,YAAMld,SAAQ,UAAC9vD,GAY7B,OAVIgtE,IACCvtE,KAAKq4D,cACRr4D,KAAKq4D,YAAY93D,MAAQA,EACzBP,KAAKq4D,YAAYvJ,UAAY9uD,KAAK8uD,WAEnC9uD,KAAKoW,SAASlP,MAAK,SAACynD,GACnBA,EAAM0B,SAAS9vD,GACfouD,EAAMG,UAAY,EAAKA,cAGlBye,GAQE,YAAAvgB,mBAAV,WACC,YAAMA,mBAAkB,WACxB,IAAS5qD,yBAAyBpC,OASzB,YAAAq6D,YAAV,SAAsBlL,GAIjBnvD,KAAKkvD,WAAaC,IACrB,IAAWnvD,KAAKoW,SAAS/Q,YAAY,SAACspD,GACrCA,EAAMQ,SAAWA,KAGdnvD,KAAKq4D,cACRr4D,KAAKq4D,YAAYlJ,SAAWA,IAI9B,YAAMkL,YAAW,UAAClL,IAQZ,YAAAxD,eAAP,WACK3rD,KAAKmqD,UAAYnqD,KAAKmhD,YAA6B,QAAfnhD,KAAKwhE,QAAoBxhE,KAAKosD,YAIrEpsD,KAAK6pE,kBAYP,sBAAW,yBAAU,C,IAUrB,WACC,OAAO7pE,KAAKujD,iBAAiB,e,IAX9B,SAAsB1tD,GACjBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,KAC9CmK,KAAKqxD,gBAAgB,CAAE,cAAex7D,IACtCmK,KAAKwtE,qB,gCAmBP,sBAAW,uBAAQ,C,IAUnB,WACC,OAAOxtE,KAAKujD,iBAAiB,a,IAX9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,KAC5CmK,KAAKqxD,gBAAgB,CAAE,YAAax7D,IACpCmK,KAAKwtE,qB,gCAcA,YAAAA,iBAAP,WACCxtE,KAAKoW,SAASlP,MAAK,SAACynD,GAETA,EAAM,gBACTA,EAAM,iBAEZA,EAAM3vD,OAAOggE,KAAK,YAAmBrQ,EAAO8e,eAAgB9e,GAAO,IAE3DA,aAAiB8Z,GACzB9Z,EAAM6e,uBAYT,sBAAW,yBAAU,C,IAQrB,WACC,OAAOxtE,KAAKujD,iBAAiB,e,IAT9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GACpCmK,KAAKqxD,gBAAgB,CAAE,cAAex7D,K,gCAiBvC,sBAAW,6BAAc,C,IAQzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAT9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GACxCmK,KAAKqxD,gBAAgB,CAAE,kBAAmBx7D,K,gCAapC,YAAAgqD,QAAP,WACK7/C,KAAKq4D,aACRr4D,KAAKq4D,YAAYxY,UAElB7/C,KAAK+nE,eAAiB,GACtB/nE,KAAKypE,kBACL,YAAM5pB,QAAO,YAkBP,YAAA4M,SAAP,SAAgB52D,EAAoEogE,EAA6BD,GAEhH,IAAI0X,EAAY73E,EAyBhB,OAxBIA,aAAiB,MACpB63E,EAAY73E,EAAM0M,MAGfvC,KAAKotE,oBACR,IAAWptE,KAAKoW,SAAS/Q,YAAY,SAACspD,GACrCA,EAAMlC,SAASihB,EAAWzX,EAAoBD,GAG7B,UAAb0X,IACH/e,EAAMyH,UAAW,MAIhBp2D,KAAKq4D,aACRr4D,KAAKq4D,YAAY5L,SAASihB,GAGvB1tE,KAAK2nE,kBAAkBxrE,QAC1B,IAAY6D,KAAK2nE,mBAAmB,SAACx9B,GACpCA,EAAKsiB,SAASihB,EAAWzX,EAAoBD,MAIxC,YAAMvJ,SAAQ,UAAC52D,EAAOogE,EAAoBD,IAIxC,YAAAiC,UAAV,SAAoBpiE,GACnB,YAAMoiE,UAAS,UAACpiE,GACZmK,KAAKq4D,cACRr4D,KAAKq4D,YAAYjC,SAAWvgE,IAQvB,YAAAs2D,cAAP,sBACC,IAAKnsD,KAAKusD,YAAcvsD,KAAK6hD,aAAc,CAC1C,IAAI,GAAW,EAEf,IAAmB7hD,KAAKoW,SAAS/Q,YAAY,SAAChF,GAC7C,SAAKA,EAAO+rD,YAAe/rD,EAAO8pD,UAAa9pD,EAAOksD,aACrD,GAAW,GACJ,MAOT,IAAoBvsD,KAAK+nE,gBAAgB,SAAC1nE,GACzC,SAAKA,EAAO+rD,YAAe/rD,EAAO8pD,UAAa9pD,EAAOksD,aACrD,GAAW,GACJ,MAOL,EACH,YAAMJ,cAAa,WAGnB,IAASntD,OAAOggE,KAAK,aAAa,WACjC,EAAK7S,gBACL,IAAO/B,sBACL19C,GAAW,KAWV,YAAAw6D,cAAP,SAAqBC,GACpBnnE,KAAKoW,SAASlP,MAAK,SAACynD,GACfA,EAAM9kB,UACJ8kB,EAAMyY,yBAGFzY,EAAMQ,UAAYR,EAAMQ,SAASvtD,WAAa+sD,EAAMQ,SAASvtD,UAAU+rE,YAC/ExG,EAAe3oE,KAAKmwD,GAGpBA,EAAMtE,WANN8c,EAAe3oE,KAAKmwD,OAWvB,YAAMuY,cAAa,UAACC,IAQd,YAAAE,yBAAP,WACCrnE,KAAKoW,SAASlP,MAAK,SAAC7G,GACfA,EAAOknD,iBACVlnD,EAAOqqD,sBAIT,YAAM2c,yBAAwB,YAQxB,YAAAC,uBAAP,WACKtnE,KAAK4nE,gBAAkB5nE,KAAK6hD,cAC/B7hD,KAAK6pE,kBAqBP,sBAAW,4BAAa,C,IASxB,WACC,OAAO7pE,KAAKgoE,gB,IAVb,SAAyBnyE,GACpBmK,KAAKgoE,gBAAkBnyE,GAC1BmK,KAAK4tE,iBAAiB/3E,I,gCAWd,YAAA+3E,iBAAV,SAA2B/3E,GAA3B,WACCmK,KAAKgoE,eAAiBnyE,EACtBmK,KAAKmtD,aAAa4Q,iBAAmBloE,EAEjCA,GACHmK,KAAKmtD,aAAamQ,iBAAiB,0BAA2BznE,GAAO,WAAM,WAAI,IAAc,CAC5F,EAAKmJ,OAAOmgD,GAAG,MAAO,EAAK0uB,oBAAqB,GAAM,GACtD,EAAK7uE,OAAOmgD,GAAG,OAAQ,EAAK2uB,eAAgB,GAAM,GAClD,EAAK9uE,OAAOmgD,GAAG,QAAS,EAAK2uB,eAAgB,GAAM,GAEnD,cAAiBnpE,KAAK3F,OAAOmgD,GAAG,QAAQ,SAACyZ,GACnC,cAAiBmV,eAAenV,EAAGuF,QAAS,EAAK59D,MAAMD,IAAK,EAAKL,MACrE,EAAK+tE,oCAEJ,GAAM,QAIX,eAMS,YAAAH,oBAAV,WACC7tE,KAAKmtD,aAAa4Q,kBAAmB,EACrC/9D,KAAK8tE,kBAGI,YAAAE,gCAAV,WACChuE,KAAKmtD,aAAa4Q,kBAAmB,GAG5B,YAAA+P,eAAV,sBACK9tE,KAAKiuE,uBACRjuE,KAAKiuE,sBAAsBpuB,UAExB7/C,KAAKkuE,gBAAkBluE,KAAKmtD,aAAa4Q,kBAAoB/9D,KAAKioE,aACrEjoE,KAAKiuE,sBAAwBjuE,KAAK2+D,YAAW,WAC5C,EAAKqP,oCACHhuE,KAAKioE,cAaH,YAAAkG,kBAAP,SAAyBC,GACxB,IAAIC,EAAe,IAAgBD,GACnC,GAAIC,EAAc,CACjB,IAAMC,EAAStuE,KAAKioB,aACpBqmD,EAAOF,YAAcC,EACrBC,EAAOF,YAAY3qB,YAAY6qB,EAAO9P,cACtC8P,EAAOC,aACPD,EAAOxjB,eAEA,IAAesjB,IAA+B,IAAfA,GACtC,IAAOlI,IAAI,mBAAqBkI,EAAc,gBASzC,YAAAI,WAAP,WACC,GAAI,IAAQC,kBACX,OAAO,EAER,IAAK,IAAIpyE,EAAI,EAAGA,EAAI,IAAQqyE,SAASvyE,OAAQE,IAC5C,GAAI,IAAQqyE,SAASryE,GAAGsiB,MAAM,aAC7B,OAAO,EAGT,OAAO,GAET,EA7+DA,CAA+B,KAq/D/B,IAASvf,kBAAT,UAA0CqpE,G,qjBC7nE1C,cAoBC,mBACC,cAAO,K,OACP,EAAK1tB,UAAY,QACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,SAC9B,EAAKqgD,aAEL,EAAKrtD,MAAQ,GACb,EAAKC,OAAS,G,EAsGhB,OAjI2B,iBAmCnB,YAAAguD,KAAP,WAEC,GADA,YAAMA,KAAI,WACNvqD,KAAKshB,KAAM,CAEd,IAAIhlB,EAAQ0D,KAAKomD,WACb7pD,EAASyD,KAAKkmD,YAEd,IAAelmD,KAAK2uE,cACvBryE,EAAQC,EAASyD,KAAK2uE,WACtB3uE,KAAK1D,MAAQA,GAGV,IAAe0D,KAAK4uE,eACvBryE,EAASD,EAAQ0D,KAAK4uE,YACtB5uE,KAAKzD,OAASA,GAIfyD,KAAK0oB,QAAQiiC,KAAK,CACjB,MAASruD,EACT,OAAUC,IAEXyD,KAAK0oB,QAAQmmD,OAAO,IAAY,aAAc7uE,KAAKshB,QASrD,sBAAW,mBAAI,C,IAOf,WACC,OAAOthB,KAAKujD,iBAAiB,S,IAR9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAkBtC,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAkB5C,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAgB7C,sBAAW,mBAAI,C,IAAf,WACC,MAAO,CACNyE,EAAG,EACHC,EAAG,EACH+B,MAAO0D,KAAK8xD,WACZv1D,OAAQyD,KAAK+xD,c,gCAGhB,EAjIA,CAA2BwV,EAAA,GAyI3B,IAASnoE,kBAAT,MAAsC,E,yECvItC,cAoBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,UAEjB,EAAK+zB,qBAAuB,GAC5B,EAAKC,qBAAuB,GAE5B,EAAKplB,a,EAqGP,OAhI6B,iBAmCrB,YAAAqlB,SAAP,WACChvE,KAAKivE,UAAY,EACjB,IAAIp9D,EAAW7R,KAAK6R,SAEpB,GAAIA,GAAYA,EAAS1V,OAAS,EAAG,CACpC,IAAI2P,EAAe,GACnB9L,KAAKkvE,cAAgB,GAErB,IAAK,IAAI7yE,EAAI,EAAGgV,EAAMQ,EAAS1V,OAAQE,EAAIgV,EAAKhV,IAAK,CACpD,IAAIH,EAAmB2V,EAASxV,GAC5B8yE,EAAuB,GAE3B,GADAnvE,KAAKkvE,cAAc1wE,KAAK2wE,GACpBjzE,EAAOC,OAAS,EAAG,CACtB2P,GAAQ,IAAa5P,EAAO,IAE5B,IAAK,IAAI2G,EAAI,EAAGA,EAAI3G,EAAOC,OAAQ0G,IAAK,CACvC,IAAI7F,EAAiBd,EAAO2G,EAAI,GAC5B5F,EAAiBf,EAAO2G,GAExBusE,EAAqB,IAAkBnyE,EAAQD,GAC/CqyE,EAAqBD,EAAapvE,KAAK8uE,qBACvCC,EAA+B/uE,KAAK+uE,qBACpCjzE,GAAiB,IAAekB,EAAQC,GAIxCqyE,EAAwB,CAAEh1E,EAFZ0C,EAAO1C,GAAK2C,EAAO3C,EAAI0C,EAAO1C,GAAKy0E,EAAuB,GAAMM,EAAa,IAAUvzE,GAEnEvB,EADpByC,EAAOzC,GAAK0C,EAAO1C,EAAIyC,EAAOzC,GAAKw0E,EAAuB,GAAMM,EAAa,IAAUvzE,IAKrGyzE,EAAwB,CAAEj1E,EAFX0C,EAAO1C,GAAK2C,EAAO3C,EAAI0C,EAAO1C,GAAKy0E,EAAuB,IAAMM,EAAa,IAAUvzE,GAEnEvB,EADpByC,EAAOzC,GAAK0C,EAAO1C,EAAIyC,EAAOzC,GAAKw0E,EAAuB,IAAMM,EAAa,IAAUvzE,IAG1GgQ,GAAQ,IAAmB7O,EAAQqyE,EAAeC,GAGlD,IAAIz0E,EAAoBvD,KAAKc,KAAK+2E,GAC9Bp0E,EAAoBgC,EACxB,GAAIlC,EAAY,EACf,IAAK,IAAI,EAAY,EAAG,GAAKA,EAAW,IAAK,CAC5C,IAAII,EAAgB,IAA2B8B,EAAQC,EAAQqyE,EAAeC,EAAe,EAAIz0E,GACjGq0E,EAAW3wE,KAAKtD,GAChB8E,KAAKivE,WAAa,IAAkBj0E,EAAWE,GAC/CF,EAAYE,OAIbi0E,EAAW3wE,KAAKxB,KAKpBgD,KAAK8L,KAAOA,IAUd,sBAAW,mCAAoB,C,IAQ/B,WACC,OAAO9L,KAAKujD,iBAAiB,yB,IAT9B,SAAgC1tD,GAC/BmK,KAAKopD,iBAAiB,uBAAwBvzD,GAC9CmK,KAAKgvE,Y,gCAkBN,sBAAW,mCAAoB,C,IAQ/B,WACC,OAAOhvE,KAAKujD,iBAAiB,yB,IAT9B,SAAgC1tD,GAC/BmK,KAAKopD,iBAAiB,uBAAwBvzD,GAC9CmK,KAAKgvE,Y,gCAUP,EAhIA,CAA6BQ,EAAA,GAwI7B,IAASpwE,kBAAT,QAAwC,E,oBCzLxC,cA2EC,WAAYqwE,GAAZ,MACC,cAAO,K,OAnCE,EAAAC,QAAwB,GAK3B,EAAAC,cAAwB,IAOxB,EAAAC,YAAyC,IAUzC,EAAAC,eAAyB,EAKzB,EAAAC,WAAqB,EAS3B,EAAK/0B,UAAY,UACjB,EAAK00B,UAAYA,EACjB,EAAK9lB,a,EAsdP,OAriB6B,iBA0FrB,YAAAomB,eAAP,SAAsBC,EAAuCjpC,EAAmBivB,GAC/E,IAAI95D,EAAsC8D,KAAKyvE,UAAUQ,cACzD,GAAG/zE,GAAU8zE,EAAS,CACrBhwE,KAAKkwE,WAAWh0E,GAChB8D,KAAKkwE,WAAWF,GAEhBhwE,KAAKmwE,qBAAuB,GAC5BnwE,KAAKowE,mBAAqB,GAErB,IAAerpC,KACnBA,EAAW/mC,KAAK2vE,eAGZ,IAAe3Z,KACnBA,EAASh2D,KAAK4vE,aAGf5vE,KAAKmwE,qBAAuBnwE,KAAKqwE,gBAAgBL,EAAU9zE,GAC3D8D,KAAKowE,mBAAqBpwE,KAAKqwE,gBAAgBn0E,EAAQ8zE,GAEvDhwE,KAAKyvE,UAAUQ,cAAgBjwE,KAAKmwE,qBAEpC,IAAI3Z,EAAY,IAAI8Z,EAAA,EAAUtwE,KAAM,CAAEqqC,SAAU,gBAAiBla,KAAM,EAAGD,GAAI,GAAK6W,EAAUivB,GAG7F,OAFAh2D,KAAKkpD,WAAW1qD,KAAKg4D,GACrBA,EAAU/8D,QACH+8D,IAaF,YAAA6Z,gBAAP,SAAuBE,EAAsCC,GAC5D,IAAK,IAAIn0E,EAAI,EAAGgV,EAAMk/D,EAAQp0E,OAAQE,EAAIgV,EAAKhV,IAAK,CACnD,IAAIo0E,EAA0BF,EAAQl0E,GAAG,GAErCq0E,EAAuBH,EAAQl0E,GAAG,GAClCs0E,EAAoB,IAAe,IAAcF,IAEjDG,EAAUD,EAAMr2E,EAAIq2E,EAAMr0E,MAC1Bu0E,EAAUF,EAAMp2E,EAAIo2E,EAAMp0E,OAY9B,GATKi0E,EAAQn0E,KACZm0E,EAAQn0E,GAAK,IAIVo0E,IAAaD,EAAQn0E,GAAG,KAC3Bm0E,EAAQn0E,GAAG,GAAK,CAAC,CAAE/B,EAAGs2E,EAASr2E,EAAGs2E,GAAW,CAAEv2E,EAAGs2E,EAASr2E,EAAGs2E,KAG3DL,EAAQn0E,GAAG,GAAI,CAClBm0E,EAAQn0E,GAAG,GAAK2D,KAAK8wE,UAAUN,EAAQn0E,GAAG,GAAIo0E,EAASt0E,QAKvD,IAHA,IAAIpB,EAAWmpB,IACX6sD,EAAU,EAELh6E,EAAI,EAAGA,EAAIy5E,EAAQn0E,GAAG,GAAGF,OAAQpF,IAAK,CAC9C,IAAIi6E,EAAc,IAAkBR,EAAQn0E,GAAG,GAAGtF,GAAI05E,EAAS,IAC3DO,EAAcj2E,IACjBg2E,EAAUh6E,EACVgE,EAAWi2E,GAIb,IAAIC,EAAQT,EAAQn0E,GAAG,GAAGsM,MAAM,EAAGooE,GAC/BG,EAAQV,EAAQn0E,GAAG,GAAGsM,MAAMooE,GAChCP,EAAQn0E,GAAG,GAAK60E,EAAMhrE,OAAO+qE,GAI1BP,IACEF,EAAQn0E,GAAG,KACfm0E,EAAQn0E,GAAG,GAAK,CAAC,CAAE/B,EAAGs2E,EAASr2E,EAAGs2E,GAAW,CAAEv2E,EAAGs2E,EAASr2E,EAAGs2E,KAE/DL,EAAQn0E,GAAG,GAAK2D,KAAK8wE,UAAUN,EAAQn0E,GAAG,GAAIq0E,EAAMv0E,SAItD,OAAOq0E,GAWD,YAAAN,WAAP,SAAkBh0E,GACjBA,EAAOs8B,MAAK,SAASzhC,EAAG0L,GACvB,IAAI0uE,EAAoB,IAAe,IAAcp6E,EAAE,KACnDq6E,EAAoB,IAAe,IAAc3uE,EAAE,KAEvD,OAAI0uE,EAAM70E,MAAQ60E,EAAM50E,OAAS60E,EAAM90E,MAAQ80E,EAAM70E,QAC5C,EAGD,KAKT,IADA,IAAI80E,EAAuB,GAClBh1E,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAIi1E,EAAoBp1E,EAAOG,GAAG,GAC9Bi1E,GACHD,EAAO7yE,KAAK,IAAe,IAAc8yE,KAI3C,OAAO,IAAyBD,IAW1B,YAAAE,cAAP,SAAqBlzE,EAAiB0oC,EAAmBivB,GACxD,IAAI95D,EAAsC8D,KAAKyvE,UAAUvzE,OAErDs1E,EAAaxxE,KAAKkwE,WAAWh0E,GAEjC8D,KAAKmwE,qBAAuB,GAC5BnwE,KAAKowE,mBAAqB,GAErB,IAAerpC,KACnBA,EAAW/mC,KAAK2vE,eAGZ,IAAe3Z,KACnBA,EAASh2D,KAAK4vE,aAIf,IAAK,IAAIvzE,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAIi1E,EAAoBp1E,EAAOG,GAAG,GAC9Bo1E,EAAiBv1E,EAAOG,GAAG,GAK/B,GAHA2D,KAAKmwE,qBAAqB9zE,GAAK,GAC/B2D,KAAKowE,mBAAmB/zE,GAAK,GAEzBi1E,EAAS,CAEZ,IAAItB,EAAqBsB,EACrBI,EAAuBJ,EACvBnpD,EAAmB,IAAe,IAAcupD,IAEhD1xE,KAAK6vE,gBACR1nD,EAAO,IAAeqpD,IAGvB,IAAIZ,EAAkBzoD,EAAK7tB,EAAI6tB,EAAK7rB,MAAQ,EACxCu0E,EAAkB1oD,EAAK5tB,EAAI4tB,EAAK5rB,OAAS,EACzCo1E,EAAqCtzE,EACpC,IAAeszE,KACnBA,EAAap6E,KAAKK,IAAIuwB,EAAK7rB,MAAQ,EAAG6rB,EAAK5rB,OAAS,IAGrDyzE,EAAW,GAGX,IAAI/xE,EAAqB,IAAe,CAAE3D,EAAGs2E,EAASr2E,EAAGs2E,GAAWS,EAAQ,IACxEnzE,EAAgB,IAEhBmzE,EAAQn1E,OAASgC,IACpBA,EAAQmzE,EAAQn1E,QAQjB,IAFA,IAAIL,EAAgB,MAFpBqC,GADAuzE,EAAa1xE,KAAK8wE,UAAUQ,EAASnzE,IAClBhC,QAEgB,GAE1BpF,EAAY,EAAGA,EAAIoH,EAAOpH,IAAK,CACvC,IAAI66E,EAAoB91E,EAAQ/E,EAAIkH,EAChC4zE,EAAwB,CAAEv3E,EAAGs2E,EAAUe,EAAa,IAAUC,GAAYr3E,EAAGs2E,EAAUc,EAAa,IAAUC,IAClH5B,EAASj5E,GAAK86E,EAGf,GAAIJ,GAAQA,EAAKt1E,OAAS,EACzB,IAAK,IAAI,EAAI,EAAG21E,EAAOL,EAAKt1E,OAAQ,EAAI21E,EAAM,IAC7C9B,EAASxxE,KAAK,CAAElE,EAAGs2E,EAASr2E,EAAGs2E,IAIjC7wE,KAAKmwE,qBAAqB9zE,GAAG,GAAKq1E,EAClC1xE,KAAKowE,mBAAmB/zE,GAAG,GAAK2zE,GAIlChwE,KAAKyvE,UAAUQ,cAAgBjwE,KAAKmwE,qBAEpC,IAAI3Z,EAAY,IAAI8Z,EAAA,EAAUtwE,KAAM,CAAEqqC,SAAU,gBAAiBla,KAAM,EAAGD,GAAI,GAAK6W,EAAUivB,GAG7F,OAFAh2D,KAAKkpD,WAAW1qD,KAAKg4D,GACrBA,EAAU/8D,QACH+8D,GAYD,YAAAsa,UAAP,SAAiB50E,EAAkB61E,GAGlC,IAFA,IAAIC,EAA4Bz6E,KAAKQ,MAAMg6E,EAAgB71E,EAAOC,QAC9D81E,EAAsB,GACjB51E,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAI61E,EAAiBh2E,EAAOG,GACxBjC,OAAM,EAETA,EADGiC,GAAKH,EAAOC,OAAS,EACfD,EAAO,GAGPA,EAAOG,EAAI,GAGrB41E,EAAUzzE,KAAK0zE,GAEf,IAAK,IAAIrvE,EAAY,EAAGA,EAAImvE,EAAmBnvE,IAAK,CACnD,IAAI4e,EAAkB5e,EAAImvE,EACtBG,EAAqB,CAAE73E,EAAG43E,EAAO53E,GAAKF,EAAOE,EAAI43E,EAAO53E,GAAKmnB,EAASlnB,EAAG23E,EAAO33E,GAAKH,EAAOG,EAAI23E,EAAO33E,GAAKknB,GAChHwwD,EAAUzzE,KAAK2zE,GAIZF,EAAU91E,OAASD,EAAOC,OAASE,GAAK01E,IAC3CC,EAAoB,GAItB,GAAIC,EAAU91E,OAAS41E,GAAiB71E,EAAOC,OAAS,EACvD,KAAIi2E,EAAoBl2E,EAAOA,EAAOC,OAAS,GAC/C,IAAS0G,EAAYovE,EAAU91E,OAAQ0G,EAAIkvE,EAAelvE,IAEzDovE,EAAUzzE,KAAK,CAAElE,EAAG83E,EAAU93E,EAAGC,EAAG63E,EAAU73E,IAIhD,OAAO03E,GAYD,YAAAI,iBAAP,SAAwB/1E,EAAgBC,EAAiBwqC,EAAmBivB,GAC3E,IAAI95D,EAAsC8D,KAAKyvE,UAAUvzE,OAEzD8D,KAAKkwE,WAAWh0E,GAEhB8D,KAAKmwE,qBAAuB,GAC5BnwE,KAAKowE,mBAAqB,GAErB,IAAerpC,KACnBA,EAAW/mC,KAAK2vE,eAGZ,IAAe3Z,KACnBA,EAASh2D,KAAK4vE,aAMf,IAAK,IAAIvzE,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAIi1E,EAAoBp1E,EAAOG,GAAG,GAC9Bo1E,EAAiBv1E,EAAOG,GAAG,GAK/B,GAHA2D,KAAKmwE,qBAAqB9zE,GAAK,GAC/B2D,KAAKowE,mBAAmB/zE,GAAK,GAEzBi1E,EAAS,CAEZ,IAAItB,EAAqBsB,EACrBI,EAAuBJ,EACvBnpD,EAAmBnoB,KAAK0vE,QAAQrzE,GAIhC2D,KAAK6vE,cAMT,IAAIv1E,EAAY6tB,EAAK7tB,EACjBC,EAAY4tB,EAAK5tB,EAEjB+3E,EAAoCh2E,EACpCi2E,EAAqCh2E,EAazC,GAXK,IAAe+1E,KACnBA,EAAYnqD,EAAK7rB,OAEb,IAAei2E,KACnBA,EAAapqD,EAAK5rB,QAGnByzE,EAAW,CAAC,CAAE11E,EAAGA,EAAGC,EAAGA,GAAK,CAAED,EAAGA,EAAIg4E,EAAW/3E,EAAGA,GAAK,CAAED,EAAGA,EAAIg4E,EAAW/3E,EAAGA,EAAIg4E,GAAc,CAAEj4E,EAAGA,EAAGC,EAAGA,EAAIg4E,IAChHvC,EAAWhwE,KAAK8wE,UAAUd,EAAUsB,EAAQn1E,QAGxCm1E,EAAQn1E,OAAS,EACpB,IAAK,IAAI,EAAIm1E,EAAQn1E,OAAQ,EAAI,EAAG,IACnC6zE,EAASxxE,KAAK,CAAElE,EAAGg3E,EAAQ,GAAGh3E,EAAGC,EAAG+2E,EAAQ,GAAG/2E,IAGjD,GAAIk3E,GAAQA,EAAKt1E,OAAS,EAIzB,IAHA,IAAIy0E,EAAkBzoD,EAAK7tB,EAAI6tB,EAAK7rB,MAAQ,EACxCu0E,EAAkB1oD,EAAK5tB,EAAI4tB,EAAK5rB,OAAS,EAEpC,EAAI,EAAGu1E,EAAOL,EAAKt1E,OAAQ,EAAI21E,EAAM,IAC7C9B,EAASxxE,KAAK,CAAElE,EAAGs2E,EAASr2E,EAAGs2E,IAIjC7wE,KAAKmwE,qBAAqB9zE,GAAG,GAAKq1E,EAClC1xE,KAAKowE,mBAAmB/zE,GAAG,GAAK2zE,GAIlChwE,KAAKyvE,UAAUQ,cAAgBjwE,KAAKmwE,qBAEpC,IAAI3Z,EAAY,IAAI8Z,EAAA,EAAUtwE,KAAM,CAAEqqC,SAAU,gBAAiBla,KAAM,EAAGD,GAAI,GAAK6W,EAAUivB,GAG7F,OAFAh2D,KAAKkpD,WAAW1qD,KAAKg4D,GACrBA,EAAU/8D,QACH+8D,GAUR,sBAAW,4BAAa,C,IA4DxB,WACC,OAAOx2D,KAAKwyE,gB,IA7Db,SAAyB38E,GACxBmK,KAAKwyE,eAAiB38E,EAEtB,IAAIo6E,EAA6C,GAEjD,GAAa,MAATp6E,EAAe,CAClB,IAAI67E,EAA0D1xE,KAAKmwE,qBAC/DH,EAAwDhwE,KAAKowE,mBAEjE,GAAkB,MAAdsB,GAAkC,MAAZ1B,EAEzB,IAAK,IAAI3zE,EAAI,EAAGgV,EAAMqgE,EAAWv1E,OAAQE,EAAIgV,EAAKhV,IAAK,CAEtD,IAAIo2E,EAAoC,GACxCxC,EAAczxE,KAAKi0E,GAEnB,IAAIC,EAAwBhB,EAAWr1E,GAAG,GACtCs2E,EAAqBjB,EAAWr1E,GAAG,GAEnCu2E,EAAsB5C,EAAS3zE,GAAG,GAClCw2E,EAAmB7C,EAAS3zE,GAAG,GAEnC,GAAIq2E,GAAeA,EAAYv2E,OAAS,GAAKy2E,GAAaA,EAAUz2E,OAAS,EAAG,CAI/E,IAFA,IAAI22E,EAA2B,GAEtB,EAAI,EAAGC,EAAOL,EAAYv2E,OAAQ,EAAI42E,EAAM,IAAK,CACzD,IAAIb,EAAiBQ,EAAY,GAC7Bt4E,EAAiBw4E,EAAU,GAE3BI,EAAuB,CAAE14E,EAAG43E,EAAO53E,GAAKF,EAAOE,EAAI0F,KAAK8vE,WAAaoC,EAAO53E,GAAKzE,EAAO0E,EAAG23E,EAAO33E,GAAKH,EAAOG,EAAIyF,KAAK8vE,WAAaoC,EAAO33E,GAAK1E,GAEpJi9E,EAAet0E,KAAKw0E,GAErBP,EAAY,GAAKK,EAElB,GAAIH,GAAYA,EAASx2E,OAAS,GAAK02E,GAAUA,EAAO12E,OAAS,EAAG,CAEnE,IADA,IAAI82E,EAAwB,GACnB,EAAI,EAAGnB,EAAOa,EAASx2E,OAAQ,EAAI21E,EAAM,IAAK,CAClDI,EAAiBS,EAAS,GAC1Bv4E,EAAiBy4E,EAAO,GAExBG,EAAuB,CAAE14E,EAAG43E,EAAO53E,GAAKF,EAAOE,EAAI0F,KAAK8vE,WAAaoC,EAAO53E,GAAKzE,EAAO0E,EAAG23E,EAAO33E,GAAKH,EAAOG,EAAIyF,KAAK8vE,WAAaoC,EAAO33E,GAAK1E,GAEpJo9E,EAAYz0E,KAAKw0E,GAElBP,EAAY,GAAKQ,IAMrBjzE,KAAKyvE,UAAUQ,cAAgBA,G,gCAmBzB,YAAAiD,UAAP,SAAiBnsC,EAAmBivB,GACnCh2D,KAAKowE,mBAAqBpwE,KAAKmwE,qBAC/BnwE,KAAKmwE,qBAAuBnwE,KAAKyvE,UAAUQ,cAEtC,IAAelpC,KACnBA,EAAW/mC,KAAK2vE,eAGZ,IAAe3Z,KACnBA,EAASh2D,KAAK4vE,aAGf,IAAIpZ,EAAY,IAAI8Z,EAAA,EAAUtwE,KAAM,CAAEqqC,SAAU,gBAAiBla,KAAM,EAAGD,GAAI,GAAK6W,EAAUivB,GAG7F,OAFAh2D,KAAKkpD,WAAW1qD,KAAKg4D,GACrBA,EAAU/8D,QACH+8D,GAQR,sBAAW,yBAAU,C,IAArB,WAKC,OAJKx2D,KAAK41D,cACT51D,KAAK41D,YAAc,GACnB51D,KAAKkpD,WAAW1qD,KAAK,IAAI8xE,EAAA,EAAkBtwE,KAAK41D,eAE1C51D,KAAK41D,a,gCAGd,EAriBA,CAA6Bud,EAAA,GCwC7B,cA+BC,mBACC,cAAO,K,OACP,EAAKp4B,UAAY,UACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9B,EAAKwnD,eAAiB,OACtB,EAAKsiB,eAAiB,GACtB,EAAKzpB,a,EAmNP,OAxP6B,iBA8C5B,sBAAW,qBAAM,C,IAQjB,WACC,IAAIztD,EAAS8D,KAAKujD,iBAAiB,UAC/Bz3C,EAAO9L,KAAK8L,KAEhB,GAAIA,KAAU5P,GAA2B,GAAjBA,EAAOC,QAAc,CAM5C,IAJA,IAEI0V,EAFW/F,EAAKnD,MAAM,EAAGmD,EAAK3P,OAAS,GAET8lB,MAAM,MAE/BhnB,EAAI,EAAGA,EAAI4W,EAAS1V,OAAQlB,IAAK,CACzC,IAAIo4E,EAAUxhE,EAAS5W,GACvB,GAAIo4E,EAAQl3E,OAAS,EAAG,CACvB,IAAIm3E,EAAWD,EAAQpxD,MAAM,KAEzBsxD,EAAUD,EAAS,GACnBE,EAAUF,EAAS,GAEvB,GAAIC,GAAWA,EAAQp3E,OAAS,EAAG,CAElC,IAAIs3E,EAAYF,EAAQtxD,MAAM,KAC9B,GAAIwxD,EAAUt3E,OAAS,EAAG,CAEzB,IAAIu3E,EAAiB,GAEjBC,EAAoC,CAACD,GACzCx3E,EAAOsC,KAAKm1E,GAEZ,IAAK,IAAI9wE,EAAI,EAAGA,EAAI4wE,EAAUt3E,OAAQ0G,IAAK,CAC1C,IAAI+wE,EAASH,EAAU5wE,GAAGof,MAAM,KAChCyxD,EAAKl1E,KAAK,CAAElE,GAAIs5E,EAAO,GAAIr5E,GAAIq5E,EAAO,KAGvC,GAAIJ,GAAWA,EAAQr3E,OAAS,EAAG,CAClC,IAAI,EAAYq3E,EAAQvxD,MAAM,KAC9B,GAAI,EAAU9lB,OAAS,EAAG,CACzB,IAAIs1E,EAAiB,GACrBkC,EAAYn1E,KAAKizE,GACjB,IAAS5uE,EAAI,EAAU1G,OAAS,EAAG0G,GAAK,EAAGA,IAAK,CAC3C+wE,EAAS,EAAU/wE,GAAGof,MAAM,KAChCwvD,EAAKjzE,KAAK,CAAElE,GAAIs5E,EAAO,GAAIr5E,GAAIq5E,EAAO,WAS7C5zE,KAAKopD,iBAAiB,SAAUltD,GAChC8D,KAAKozE,eAAiBl3E,EAEvB,OAAOA,G,IA5DR,SAAkBA,GACjB8D,KAAKopD,iBAAiB,SAAUltD,GAAQ,GACxC8D,KAAKozE,eAAiBl3E,G,gCAmEvB,sBAAW,4BAAa,C,IAUxB,WAIC,OAHK8D,KAAKozE,gBAAgD,GAA9BpzE,KAAKozE,eAAej3E,SAAgB6D,KAAK8L,OACpE9L,KAAKozE,eAAiBpzE,KAAK9D,QAErB8D,KAAKozE,gB,IAdb,SAAyBl3E,GACpB8D,KAAKozE,gBAAkBl3E,IAC1B8D,KAAKozE,eAAiBl3E,EACtB8D,KAAKuqD,S,gCAmBA,YAAAA,KAAP,WACC,IAGI3xD,EACAC,EACAwvB,EACAjsB,EANA0P,EAAe,GACf5P,EAAsC8D,KAAKozE,eAO/C,GAAIl3E,EAAOC,OAAS,EAAG,CAEtB,IAAK,IAAIE,EAAI,EAAGgV,EAAMnV,EAAOC,OAAQE,EAAIgV,EAAKhV,IAAK,CAElD,IAAIi1E,EAAoBp1E,EAAOG,GAAG,GAC9Bo1E,EAAiBv1E,EAAOG,GAAG,GAE/B,GAAIi1E,GAAWA,EAAQn1E,OAAS,EAAG,CAClC,IAAIjB,EAAgBo2E,EAAQ,GAE5BxlE,GAAQ,IAAa5Q,GAErB,IAAK,IAAID,EAAY,EAAGA,EAAIq2E,EAAQn1E,OAAQlB,IAC3CC,EAAQo2E,EAAQr2E,GAChB6Q,GAAQ,IAAa5Q,KAEhB,IAAerC,IAAWA,EAAQqC,EAAMZ,KAC5CzB,EAAQqC,EAAMZ,KAEV,IAAe1B,IAAUA,EAAOsC,EAAMZ,KAC1C1B,EAAOsC,EAAMZ,KAGT,IAAe+tB,IAASA,EAAMntB,EAAMX,KACxC8tB,EAAMntB,EAAMX,KAER,IAAe6B,IAAYA,EAASlB,EAAMX,KAC9C6B,EAASlB,EAAMX,GAKlB,GAAIk3E,GAAQA,EAAKt1E,OAAS,EAAG,CACxBjB,EAAgBu2E,EAAK,GACzB3lE,GAAQ,IAAa5Q,GAErB,IAAK,IAAIg+B,EAAI,EAAG44C,EAAOL,EAAKt1E,OAAQ+8B,EAAI44C,EAAM54C,IAC7Ch+B,EAAQu2E,EAAKv4C,GACbptB,GAAQ,IAAa5Q,IAIpB4Q,IACHA,GAAQ,OAGT9L,KAAKmoB,KAAK7tB,EAAI1B,EACdoH,KAAKmoB,KAAK5tB,EAAI8tB,EACdroB,KAAKmoB,KAAK7rB,MAAQzD,EAAQD,EAC1BoH,KAAKmoB,KAAK5rB,OAASH,EAASisB,EAE5B,YAAMk7C,QAAO,UAACz3D,KAON,YAAAy3D,QAAV,SAAkB1tE,GACjB,QAAI,YAAM0tE,QAAO,UAAC1tE,KACjBmK,KAAK9D,OAAS,GACd8D,KAAKsnD,MAAQtnD,KAAKynB,MAAMxrB,WACjB,IASC,YAAA0vD,eAAV,aAYA,sBAAW,0BAAW,C,IAAtB,WACC,MAAO,CAAErxD,EAAG0F,KAAKmoB,KAAK7tB,EAAI0F,KAAKmoB,KAAK7rB,MAAQ,EAAG/B,EAAGyF,KAAKmoB,KAAK5tB,EAAIyF,KAAKmoB,KAAK5rB,OAAS,I,gCAUpF,sBAAW,sBAAO,C,IAAlB,WAKC,OAJKyD,KAAK6zE,WACT7zE,KAAK6zE,SAAW,IAAI,EAAQ7zE,MAC5BA,KAAKkpD,WAAW1qD,KAAKwB,KAAK6zE,WAEpB7zE,KAAK6zE,U,gCAGd,EAxPA,CAA6BtM,EAAA,GAgQ7B,IAASnoE,kBAAT,QAAwC,E,sCC9OxC,cAiDC,mBAGC,cAAO,KACP,EAAK27C,UAAY,YAGjB,EAAKz+C,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KAEtB,IAAIu3E,EAAkB,IAAIC,EAAA,EAGtBC,EAA4B,EAAK1K,YAAYb,EAAA,GACjDuL,EAAeprB,aAAc,EAG7B,IAAIqrB,EAAyBD,EAAe1K,YAAY4K,EAAA,GACxDD,EAAgBrrB,aAAc,EAC9BqrB,EAAgB51E,OAAS,GACzB41E,EAAgBp1E,IAAM,IACtBo1E,EAAgBv4B,KAAOo4B,EAAgBlK,OAAO,QAC9CqK,EAAgBrjB,YAAc,GAC9BqjB,EAAgB5hE,YAAc,GAC9B4hE,EAAgBzoB,YAAa,EAC7B,EAAKyoB,gBAAkBA,EAGvB,IAAIE,EAAuBH,EAAe1K,YAAY4K,EAAA,GACtDC,EAAcvrB,aAAc,EAC5BurB,EAAc91E,OAAS,GACvB81E,EAAc9hE,YAAc,GAC5B8hE,EAAcz4B,KAAOo4B,EAAgBlK,OAAO,yBAC5CuK,EAAcvjB,YAAc,GAC5BujB,EAAc3oB,YAAa,EAC3B,EAAK2oB,cAAgBA,EAGrB,IAAIpvE,EAAeivE,EAAe1K,YAAY8K,EAAA,G,OAC9CrvE,EAAM6jD,aAAc,EACpB7jD,EAAM0mD,iBAAmB,SACzB1mD,EAAM2mD,eAAiB,SACvB3mD,EAAMymD,YAAa,EACnBzmD,EAAM22C,KAAOo4B,EAAgBlK,OAAO,QACpC7kE,EAAM08D,MAAQ,SACd18D,EAAMq9D,OAAS,SACfr9D,EAAMsvE,UAAY,SAClBtvE,EAAM6rD,YAAc,GACpB,EAAK7rD,MAAQA,EAGb,EAAKggE,WAAWpU,QAAU,EAC1B,EAAKoU,WAAWrpB,KAAOo4B,EAAgBlK,OAAO,cAC9C,EAAKwC,aAAe,SACpB,EAAKC,cAAgB,SACrB,EAAKiI,MAAQ,IAGK,EAAKrnB,OAAO9pD,OAAO,UACzBqnC,WAAWmmB,QAAU,EAGjC,EAAK9E,SAAU,EACf,EAAKI,KAAK,GACV,EAAKG,YAAa,EAIlB,EAAKlD,WAAW1qD,KAAK,EAAKy1E,iBAC1B,EAAK/qB,WAAW1qD,KAAK,EAAK21E,eAC1B,EAAKjrB,WAAW1qD,KAAK,EAAKuG,OAC1B,EAAKmkD,WAAW1qD,KAAKw1E,G,EAuGvB,OA/N+B,iBAuI9B,sBAAW,uBAAQ,C,IA8DnB,WACC,OAAOh0E,KAAKujD,iBAAiB,a,IA/D9B,SAAoB1tD,GAApB,WACCmK,KAAKosD,YAAa,EAElBpsD,KAAK6pE,iBAEL7pE,KAAKopD,iBAAiB,WAAYvzD,GAMlCmK,KAAKm0E,cAAct1E,IAAM,IAAMhJ,EAE3BmK,KAAK+E,QACR/E,KAAK+E,MAAMwd,KAAOhrB,KAAKQ,MAAc,IAARlC,GAAe,KAGzCA,GAAS,GAGRmK,KAAKu0E,WACRv0E,KAAKu0E,cAAW7nE,GAIjB,IAAS1N,OAAOggE,KAAK,cAAc,WAClC,IAAIxI,EAAY,EAAKvK,OACjBuK,IAAcA,EAAUW,aAC3BX,EAAUx3D,OAAOggE,KAAK,kBAAkB,WACvC,EAAK5S,YAAa,KAInB,EAAKA,YAAa,KAGpBpsD,KAAK8rD,qBAAsB,EAC3B9rD,KAAKopD,iBAAiB,WAAY,IAE1BvzD,EAAQ,IACZmK,KAAKs0E,MACHt0E,KAAKu0E,SAGAv0E,KAAKu0E,SAAWv0E,KAAKs0E,QAAU,IAAI5vD,MAAOG,YACnD7kB,KAAKosD,YAAa,EAClBpsD,KAAK6jE,OACL7jE,KAAK8rD,qBAAsB,GAL3B9rD,KAAKu0E,UAAW,IAAI7vD,MAAOG,WAS5B7kB,KAAKosD,YAAa,EAClBpsD,KAAK6jE,OACL7jE,KAAK8rD,qBAAsB,K,gCAwB9B,sBAAW,oBAAK,C,IAOhB,WACC,OAAO9rD,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,I,gCAUjC,EA/NA,CAA+B4yE,EAAA,GAuO/B,IAASrpE,kBAAT,UAA0C,E,0BChQ1C,cAoBC,mBAGC,cAAO,KACP,EAAK27C,UAAY,cAEjB,EAAKuoB,QAAQ,EAAG,EAAG,EAAG,GACtB,EAAK5V,mBAAoB,EAEzB,EAAKpxD,MAAQ,GACb,EAAKC,OAAS,GAEd,IAAIu3E,EAAkB,IAAIC,EAAA,EAE1B,EAAK5U,gBAAkBqV,EAAA,EAAiBrW,QAExC,IAAI4G,EAA+B,EAAKA,WACxCA,EAAWzyD,aAAa,GAAI,GAAI,GAAI,IAEpC,IAAImiE,EAAMX,EAAgBlK,OAAO,cACjC7E,EAAWrpB,KAAO+4B,EAClB1P,EAAW1W,OAASylB,EAAgBlK,OAAO,iBAC3C7E,EAAWlU,cAAgB,EAC3BkU,EAAWlY,YAAc,EAEzB,IAAI6nB,EAAYZ,EAAgBlK,OAAO,uBAEnC+K,EAAK5P,EAAW9X,OAAO/N,OAAO,SAClCy1B,EAAInqC,WAAWqiB,YAAc,EAC7B8nB,EAAInqC,WAAWkR,KAAO+4B,EAEtB,IAAIG,EAAM7P,EAAW9X,OAAO/N,OAAO,QACnC01B,EAAIpqC,WAAW6jB,OAASqmB,EACxBE,EAAIpqC,WAAWkR,KAAO+4B,EAGtB,IAAI35B,EAAe,IAAIysB,EAAA,E,OACvBzsB,EAAKpyB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9BwxC,EAAKuT,OAAS0W,EAAW1W,OAEzB,EAAKvT,KAAOA,EAGZ,EAAK6O,a,EA4BP,OA3FiC,iBAkEzB,YAAAU,SAAP,WACC,YAAMA,SAAQ,WAEd,IAAI3rB,EAAI1+B,KAAK8xD,WAAa,EACtB54B,EAAIl5B,KAAK+xD,YAAc,EAEvBjmD,EAAO,IAAa,CAAExR,GAAIokC,EAAI,EAAGnkC,GAAI2+B,EAAI,IAC7CptB,GAAQ,IAAa,CAAExR,EAAGokC,EAAI,EAAGnkC,EAAG2+B,EAAI,IACxCptB,GAAQ,IAAa,CAAExR,EAAGokC,EAAI,EAAGnkC,GAAI2+B,EAAI,IACzCptB,GAAQ,IAAa,CAAExR,GAAIokC,EAAI,EAAGnkC,EAAG2+B,EAAI,IACzCl5B,KAAK86C,KAAKhvC,KAAOA,EACjB9L,KAAKqhE,oBAOI,YAAAnX,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,WAI9C,EA3FA,CAAiCC,EAAA,GAmGjC,IAAS11E,kBAAT,YAA4C,EC/F5C,kBA0CC,mBAGC,cAAO,KACP,EAAK27C,UAAY,eAEjB,EAAKg6B,SAAW,EAGhB,EAAKvT,OAAS,aACd,EAAK4K,aAAe,SACpB,EAAKC,cAAgB,SACrB,EAAK/I,QAAQ,EAAG,GAAI,EAAG,IACvB,EAAK8J,oBAAqB,EAC1B,EAAKngB,OAAO9pD,OAAO,UAEnB,IAAI2wE,EAAkB,IAAIC,EAAA,EAGtBiB,EAAY,IAAIZ,EAAA,EACpBY,EAAUpkB,YAAc,GACbokB,EAAU/nB,OAAO9pD,OAAO,UAC9BqnC,WAAWomB,YAAc,EAC9BokB,EAAU5e,UAAW,EACrB,EAAK4e,UAAYA,EAEjB,IAAIC,EAAS,IAAIH,EAAA,EACbI,EAAS,IAAIC,EAAA,EACjBF,EAAO5I,cAAgB,OACvB4I,EAAO3R,QAAQ,EAAG,EAAG,EAAG,GACxB4R,EAAO72E,OAAS,GAChB42E,EAAOn6B,KAAOo6B,EACdD,EAAOn6B,KAAKsnB,OAAS,SACrB6S,EAAOlwE,WAAQ2H,EACf,IAAI0oE,EAAO,YAAQ,KACnBH,EAAOlQ,WAAWzyD,aAAa8iE,EAAMA,EAAMA,EAAMA,GACjDH,EAAO34E,MAAwB,IAAhB44E,EAAO72E,OACtB42E,EAAO14E,OAAyB,IAAhB24E,EAAO72E,OACvB42E,EAAO5R,WAAa,EACpB4R,EAAO9R,YAAc,EACrB8R,EAAOI,WAAY,EACnBH,EAAO5tD,GAAsB,IAAhB4tD,EAAO72E,OACpB62E,EAAOx5B,KAAOo4B,EAAgBlK,OAAO,iBAE5BsL,EAAOjoB,OAAO9pD,OAAO,SAC3BqnC,WAAWkR,KAAOo4B,EAAgBlK,OAAO,sBAE5C,IAAI90B,EAAKogC,EAAOjoB,OAAO9pD,OAAO,UAC9B2xC,EAAGtK,WAAWkR,KAAOo4B,EAAgBlK,OAAO,uBAC5C90B,EAAGtK,WAAWljB,GAAqB,GAAhB4tD,EAAO72E,OAE1B,EAAKi3E,aAAeL,EAEpB,EAAKj2E,OAAOmgD,GAAG,WAAW,WACzB,EAAK61B,UAAU5e,UAAY,EAAKA,SAChC,EAAKmf,WAAWnf,SAAW,EAAKA,YAIjC,IAAImf,EAAa,IAAInB,EAAA,E,OACrBmB,EAAW3kB,YAAc,GAEd2kB,EAAWtoB,OAAO9pD,OAAO,UAC/BqnC,WAAWomB,YAAc,EAC9B,EAAK2kB,WAAaA,EAIlB,EAAK14B,KAAO,SACZ,EAAKsU,WAAY,EAEjBokB,EAAWnT,OAAS,SACpB4S,EAAU5S,OAAS,SACnB6S,EAAO7S,OAAS,SAGhB,EAAKzY,a,EA8FP,OApNkC,iBA8HjC,sBAAW,wBAAS,C,IAgBpB,WACC,OAAO3pD,KAAKw1E,Y,IAjBb,SAAqBzwE,GAChB/E,KAAKw1E,YACRx1E,KAAKoyD,cAAcpyD,KAAKw1E,YAEzBx1E,KAAKw1E,WAAazwE,EACdA,IACHA,EAAMoI,OAASnN,KACf+E,EAAM+mD,qBAAsB,EAC5B/mD,EAAM6jD,aAAc,EACpB5oD,KAAKkpD,WAAW1qD,KAAKwB,KAAKw1E,c,gCAgB5B,sBAAW,yBAAU,C,IAgBrB,WACC,OAAOx1E,KAAKy1E,a,IAjBb,SAAsB1wE,GACjB/E,KAAKy1E,aACRz1E,KAAKoyD,cAAcpyD,KAAKy1E,aAEzBz1E,KAAKy1E,YAAc1wE,EACfA,IACHA,EAAMoI,OAASnN,KACf+E,EAAM+mD,qBAAsB,EAC5B/mD,EAAM6jD,aAAc,EACpB5oD,KAAKkpD,WAAW1qD,KAAKwB,KAAKy1E,e,gCAc5B,sBAAW,qBAAM,C,IAAjB,WACC,OAAOz1E,KAAK01E,e,gCAQb,sBAAW,2BAAY,C,IAAvB,SAAwBT,GACnBj1E,KAAK01E,eACR11E,KAAKoyD,cAAcpyD,KAAK01E,eAEzB11E,KAAK01E,cAAgBT,EACjBA,IACHA,EAAO9nE,OAASnN,KAChBi1E,EAAOrsB,aAAc,EACrB5oD,KAAKkpD,WAAW1qD,KAAKwB,KAAK01E,iB,gCASrB,YAAA70B,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACXA,EAAOk0D,WACVh1E,KAAKg1E,UAAUn0B,SAAS//B,EAAOk0D,WAE5Bl0D,EAAOy0D,YACVv1E,KAAKu1E,WAAW10B,SAAS//B,EAAOy0D,YAE7Bz0D,EAAOw0D,cACVt1E,KAAKs1E,aAAaz0B,SAAS//B,EAAOw0D,eAGrC,EApNA,CAAkC7M,EAAA,GA4NlC,IAASrpE,kBAAT,aAA6C,E,YCrO7C,cAoBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,SAEjB,EAAK46B,MAAMhlB,QAAU,EACrB,EAAKglB,MAAM7pB,qBAAsB,EACjC,EAAK8pB,QAAQjlB,QAAU,EACvB,EAAKilB,QAAQ9pB,qBAAsB,EAEnC,EAAK+pB,UAAU72E,OAAOmgD,GAAG,QAAQ,WAChC,EAAKy2B,QAAQt7E,EAAI,EAAKu7E,UAAUv7E,EAChC,EAAKs7E,QAAQr7E,EAAI,EAAKs7E,UAAUt7E,KAGjC,EAAKovD,a,EAiDP,OAnF4B,iBAyC3B,sBAAc,oBAAK,C,IAAnB,WACC,OAAO3pD,KAAK8+C,Q,IAGb,SAAoBjpD,K,gCAOpB,sBAAW,kBAAG,C,IAAd,WACC,OAAOmK,KAAK8+C,Q,IAQb,SAAepjD,K,gCAUf,sBAAW,oBAAK,C,IAShB,WACC,OAAOsE,KAAK8+C,Q,IAVb,SAAiBpjD,GACXsE,KAAK81E,UACT91E,KAAK+1E,QAAUr6E,I,gCAUlB,EAnFA,C,OAA4B,GA2F5B,IAAS0D,kBAAT,OAAuC,E,sCCvFvC,G,4BAAA,YAoBC,mBAGC,cAAO,KACP,EAAK27C,UAAY,aAEjB,EAAKuoB,QAAQ,GAAI,GAAI,GAAI,IAEzB,EAAK5V,mBAAoB,EAEzB,IAAIomB,EAAkB,IAAIC,EAAA,EAEtBhP,EAA+B,EAAKA,WACxCA,EAAWzyD,aAAa,GAAI,GAAI,GAAI,IACpCyyD,EAAWrpB,KAAOo4B,EAAgBlK,OAAO,iBACzC7E,EAAW1W,OAASylB,EAAgBlK,OAAO,uBAC3C7E,EAAWlU,cAAgB,EAE3BkU,EAAW9X,OAAO/N,OAAO,SAAS1U,WAAWkR,KAAOo4B,EAAgBlK,OAAO,sBAC3E7E,EAAW9X,OAAO/N,OAAO,QAAQ1U,WAAWkR,KAAOo4B,EAAgBlK,OAAO,uBAG1E,IAAIoM,EAAqB,IAAIC,EAAA,EAC7BD,EAASxsC,UAAY,QACrBwsC,EAAS15E,MAAQ,EACjB05E,EAASz5E,OAAS,GAClBy5E,EAAS3S,WAAa,EACtB2S,EAAS7S,YAAc,EACvB6S,EAASvqB,iBAAmB,SAC5BuqB,EAAStqB,eAAiB,SAE1BsqB,EAAS3nB,OAASylB,EAAgBlK,OAAO,qBACzCoM,EAASt6B,KAAOs6B,EAAS3nB,OACzB,EAAKvT,KAAOk7B,EAGZ,IAAIE,EAA6B,IAAIC,EAAA,EACrCD,EAAS55E,MAAQ,GACjB45E,EAAS35E,OAAS,GAClB25E,EAASzqB,iBAAmB,SAC5ByqB,EAASxqB,eAAiB,SAC1BwqB,EAAS5jE,aAAa,EAAG,EAAG,EAAG,GAE/B4jE,EAAS7nB,OAASylB,EAAgBlK,OAAO,qBACzCsM,EAASx6B,KAAOs6B,EAAS3nB,OAEzB,EAAKgnB,WAAY,EAEjB,IAAIe,EAAc,EAAKnpB,OAAO9pD,OAAO,U,OACrCizE,EAAYngB,mBAAqB,EACjCmgB,EAAY5rC,WAAWsQ,KAAOo7B,EAE9B,EAAKxpB,aAAauJ,mBAAqB,EAGvC,EAAKtM,a,EAcP,OAzFgC,iBAkFrB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,UAI9C,EAzFA,CAAgCC,EAAA,IAiGhC,IAAS11E,kBAAT,WAA2C,E,gLCpG3C,cAQC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,yBACjB,EAAKs7B,SAAW,IAAIC,EAAA,EACpB,EAAK3sB,a,EAQP,OApB4C,iBAgBpC,YAAA9I,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKq2E,SAAWv1D,EAAOu1D,SAASztE,SAElC,EApBA,C,OAA4C,GA4B5C,IAASxJ,kBAAT,uBAAuD,E,aCvDvD,cAeC,mBACC,cAAO,K,OACP,EAAKorC,WAAL,IAAyB,EACzB,EAAK+rC,MAAQ,EAAKh2E,MAAM+I,IAAI,QAC5B,EAAKktE,WAAW,EAAKD,O,EAwEvB,OA3FiC,iBAyBtB,YAAAhsB,KAAV,WAKC,GAJA,YAAMA,KAAI,WACNhzD,KAAKQ,MAAMiI,KAAK+mB,SAAW,KAAO/mB,KAAK+mB,SAAW,KACrD/mB,KAAKwqC,WAAL,eAAoC,QAEjCxqC,KAAKu2E,MAAO,CACf,IAAI73C,EAAI1+B,KAAK1D,MACT48B,EAAIl5B,KAAKzD,OAETuP,EAAO,GAEX,GAAK9L,KAAK4mB,IAeT,IAHA,IAAIziB,EAAOnE,KAAK4mB,IAAM5mB,KAAK6sD,YACvB1uD,EAAQ6B,KAAKzD,OAAS4H,EAEjB9H,GAAK8B,EAAQ,EAAG9B,EAAY,IAAR8B,EAAa9B,IACrC9E,KAAKQ,MAAMiI,KAAK+mB,SAAW,KAAO/mB,KAAK+mB,SAAW,IACrDjb,GAAQ,IAAa,CAAExR,GAAIokC,EAAGnkC,GAAI8B,EAAI,IAAO8H,IAAU,IAAa,CAAE7J,EAAO,EAAJokC,EAAOnkC,GAAI8B,EAAI,IAAO8H,IAE/FnE,KAAKwqC,WAAL,UAA+BxqC,KAAK1D,MAAQ,EAC5C0D,KAAKwqC,WAAL,UAA+BxqC,KAAKzD,OAAS,GAG7CuP,GAAQ,IAAa,CAAExR,GAAIokC,EAAGnkC,EAAG8B,EAAI8H,IAAU,IAAa,CAAE7J,EAAO,EAAJokC,EAAOnkC,EAAG8B,EAAI8H,SAtB7E5M,KAAKQ,MAAMiI,KAAK+mB,SAAW,KAAO/mB,KAAK+mB,SAAW,IACrDjb,EAAO,IAAa,CAAExR,GAAIokC,EAAGnkC,EAAG2+B,EAAI,IAAO,IAAa,CAAE5+B,EAAO,EAAJokC,EAAOnkC,EAAG2+B,EAAI,IAE3El5B,KAAKwqC,WAAL,UAA+BxqC,KAAK1D,MAAQ,EAC5C0D,KAAKwqC,WAAL,UAA+BxqC,KAAKzD,OAAS,GAG7CuP,EAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGokC,EAAGnkC,EAAG,IAoBhEyF,KAAKu2E,MAAM5rB,KAAK,CAAE,EAAK7+C,MAgBzB,sBAAW,kBAAG,C,IAQd,WACC,OAAO9L,KAAKwqC,WAAL,K,IATR,SAAe30C,GACdmK,KAAKwqC,WAAL,IAAyB30C,EACzBmK,KAAKuqD,Q,gCASP,EA3FA,CAAiCksB,EAAA,GAmGjC,IAASr3E,kBAAT,YAA4C,ECpF5C,kBAeC,mBACC,cAAO,K,OACP,EAAKorC,WAAL,OAA4B,EAC5B,EAAKksC,QAAU,EAAKn2E,MAAM+I,IAAI,UAC9B,EAAKktE,WAAW,EAAKE,SACrB,EAAK5lB,eAAiB,O,EA8BxB,OAlDmC,iBA0BxB,YAAAvG,KAAV,WACC,YAAMA,KAAI,WACNvqD,KAAK02E,SACR12E,KAAK02E,QAAQ/rB,KAAK,CAAE,EAAK3qD,KAAK3B,OAAQ,GAAM2B,KAAK1D,MAAQ,EAAG,GAAK0D,KAAKzD,OAAS,KASjF,sBAAW,qBAAM,C,IAQjB,WACC,OAAOyD,KAAKwqC,WAAL,Q,IATR,SAAkB30C,GACjBmK,KAAKwqC,WAAL,OAA4B30C,EAC5BmK,KAAKuqD,Q,gCAUP,EAlDA,CAAmCksB,EAAA,GA0DnC,IAASr3E,kBAAT,cAA8C,ECzD9C,kBAeC,mBACC,cAAO,K,OACP,EAAKu3E,WAAa,EAClB,EAAKC,UAAY,EACjB,EAAKC,MAAQ,EAAKt2E,MAAM+I,IAAI,QAC5B,EAAKktE,WAAW,EAAKK,O,EAiDvB,OArEiC,iBA0BtB,YAAAtsB,KAAV,WACC,YAAMA,KAAI,WACVvqD,KAAKwqC,WAAL,UAA+BxqC,KAAK1D,MAAQ,EAC5C0D,KAAKwqC,WAAL,UAA+BxqC,KAAKzD,OAAS,EACzCyD,KAAK62E,OACR72E,KAAK62E,MAAMlsB,KAAK,CAAE,MAAS3qD,KAAK42E,UAAW,OAAU52E,KAAK22E,WAAY,GAAK32E,KAAK1D,MAAQ0D,KAAK42E,WAAa,EAAG,GAAK52E,KAAKzD,OAASyD,KAAK22E,YAAc,KASrJ,sBAAW,wBAAS,C,IAQpB,WACC,OAAO32E,KAAKwqC,WAAL,W,IATR,SAAqB30C,GACpBmK,KAAKwqC,WAAL,UAA+B30C,EAC/BmK,KAAKuqD,Q,gCAeN,sBAAW,yBAAU,C,IAQrB,WACC,OAAOvqD,KAAKwqC,WAAL,Y,IATR,SAAsB30C,GACrBmK,KAAKwqC,WAAL,WAAgC30C,EAChCmK,KAAKuqD,Q,gCAUP,EArEA,CAAiCksB,EAAA,GA6EjC,IAASr3E,kBAAT,YAA4C,E,aCjE5C,cAuBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,iBAMjB,EAAK+7B,cAAgB,EAAKv2E,MAAM+I,IAAI,iBACpC,EAAKwtE,cAAcnsB,KAAK,CAAE,KAAQ,WAElC,EAAKosB,iBAAiBv4E,KAAK,EAAKs4E,eAGhC,EAAKE,UAAY,EAEjB,EAAKrtB,a,EA+EP,OAtHoC,iBAgD5B,YAAAstB,YAAP,WAEC,IAGInxE,EACAjB,EACApC,EALApG,EAAY2D,KAAKg3E,UACjBt/C,EAAK,EAAIr7B,EAMP0gD,EAAQ/8C,KAAK+8C,MAEfA,GAASA,EAAMQ,KAClBz3C,EAAIi3C,EAAMQ,IAAIz3C,EAAI,IAAMzJ,EACxBwI,EAAIk4C,EAAMQ,IAAI14C,EAAI,IAAMxI,EACxBoG,EAAIs6C,EAAMQ,IAAI96C,EAAI,IAAMpG,IAGxByJ,EAAI,EACJjB,EAAI,EACJpC,EAAI,GAGLzC,KAAK82E,cAAcnsB,KAAK,CAAE,OAAUjzB,EAAK,UAAY5xB,EAAI,MAAQ4xB,EAAK,QAAU7yB,EAAI,QAAU6yB,EAAK,MAAQj1B,EAAI,gBAahH,sBAAW,oBAAK,C,IAQhB,WACC,OAAOzC,KAAKwqC,WAAL,O,IATR,SAAiB30C,GAChBmK,KAAKwqC,WAAL,MAA2B30C,EAC3BmK,KAAKi3E,e,gCAqBN,sBAAW,wBAAS,C,IAQpB,WACC,OAAOj3E,KAAKwqC,WAAWwsC,W,IATxB,SAAqBnhF,GACpBmK,KAAKwqC,WAAWwsC,UAAYnhF,EAC5BmK,KAAKi3E,e,gCAUP,EAtHA,CAAoCC,EAAA,GA+HpC,IAAS93E,kBAAT,eAA+C,E,aCnG/C,G,OAAA,YAuBC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,aAOjB,EAAKo8B,eAAiB,EAAK52E,MAAM+I,IAAI,kBACrC,EAAK6tE,eAAexsB,KAAK,CAAE,OAAU,UAAW,GAAM,kBACtD,EAAKosB,iBAAiBv4E,KAAK,EAAK24E,gBAGhC,EAAK76E,MAAQ,IACb,EAAKC,OAAS,IACd,EAAKinD,KAAO,IAEZ,EAAKmG,a,EAuBP,OAjEgC,iBAqD/B,sBAAW,mBAAI,C,IAQf,WACC,OAAO3pD,KAAKwqC,WAAWgZ,M,IATxB,SAAgB3tD,GACfmK,KAAKwqC,WAAWgZ,KAAO3tD,EACvBmK,KAAKm3E,eAAexsB,KAAK,CAAE,aAAgB90D,EAAQmK,KAAKwnB,S,gCAU1D,EAjEA,CAAgC0vD,EAAA,IAyEhC,IAAS93E,kBAAT,WAA2C,EC1F3C,kBAmDC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,cAMjB,EAAKq8B,QAAU,EAAK72E,MAAM+I,IAAI,WAC9B,EAAK8tE,QAAQzsB,KAAK,CAAE,eAAe,IAAIopB,EAAA,GAAoBnK,OAAO,sBAAuB,OAAU,SACnG,EAAKmN,iBAAiBv4E,KAAK,EAAK44E,SAEhC,EAAKC,aAAe,EAAK92E,MAAM+I,IAAI,gBACnC,EAAK+tE,aAAa1sB,KAAK,CAAE,OAAU,SAAU,GAAM,gBAAiB,SAAY,SAAU,OAAU,MACpG,EAAKosB,iBAAiBv4E,KAAK,EAAK64E,cAEhC,EAAKP,cAAgB,EAAKv2E,MAAM+I,IAAI,iBACpC,EAAKwtE,cAAcnsB,KAAK,CAAE,OAAU,OAAQ,GAAM,SAAU,KAAQ,SAAU,OAAU,4CACxF,EAAKosB,iBAAiBv4E,KAAK,EAAKs4E,eAEhC,EAAKQ,YAAc,EAAK/2E,MAAM+I,IAAI,eAClC,EAAKguE,YAAY3sB,KAAK,CAAE,OAAU,OAAQ,GAAM,OAAQ,IAAO,OAAQ,SAAY,OACnF,EAAKosB,iBAAiBv4E,KAAK,EAAK84E,aAEhC,EAAKC,QAAU,EAAKh3E,MAAM+I,IAAI,WAC9B,EAAKiuE,QAAQ5sB,KAAK,CAAE,GAAM,gBAAiB,IAAO,OAAQ,KAAQ,WAClE,EAAKosB,iBAAiBv4E,KAAK,EAAK+4E,SAGhC,EAAKj7E,MAAQ,IACb,EAAKC,OAAS,IAEd,EAAKotD,a,EAyEP,OA7JiC,iBA4FhC,sBAAW,qBAAM,C,IAQjB,WACC,OAAO3pD,KAAKwqC,WAAL,Q,IATR,SAAkB30C,GACjBmK,KAAKwqC,WAAL,OAA4B30C,EAC5BmK,KAAKo3E,QAAQzsB,KAAK,CAAE,cAAe90D,K,gCAepC,sBAAW,0BAAW,C,IAQtB,WACC,OAAOmK,KAAKwqC,WAAL,a,IATR,SAAuB30C,GACtBmK,KAAKwqC,WAAL,YAAiC30C,EACjCmK,KAAKq3E,aAAa1sB,KAAK,CAAE,OAAU90D,K,gCAepC,sBAAW,sBAAO,C,IAQlB,WACC,OAAOmK,KAAKwqC,WAAL,S,IATR,SAAmB30C,GAClBmK,KAAKwqC,WAAL,QAA6B30C,EAC7BmK,KAAK82E,cAAcnsB,KAAK,CAAE,OAAU,uCAAyC90D,EAAQ,Q,gCAmB5E,YAAA2hF,UAAV,SAAoB3hF,GACfmK,KAAKy3E,SAAWz3E,KAAKy3E,SAAW5hF,GACnCmK,KAAKy3E,QAAQhwD,MAAMiwD,YAAY,WAEhC7hF,EAAM4xB,MAAMkwD,SAAS,CACpB,QAAW,SAEZ,YAAMH,UAAS,UAAC3hF,IAGlB,EA7JA,CAAiCqhF,EAAA,G,qCCtBjC,I,OAAA,YAsCC,mBACC,cAAO,KAlCE,EAAAU,MAAmB,GAKnB,EAAAC,aAAuB,EAMvB,EAAAC,YAAsB,EAMtB,EAAAC,aAAuB,EAO1B,EAAAC,UAAmB,IAAI/6B,EAAA,EAAM,CACnCn3C,EAAG,IACHjB,EAAG,IACHpC,EAAG,MAQH,EAAKs4C,UAAY,aAGjB,IAAM+4B,EAAkB,IAAIC,EAAA,E,OAG5B,EAAKv7B,KAAO,CACX,EAAKy/B,eAAe,IAAM,GAAI,EAAG,GACjC,EAAKC,eAAe,GAAI,EAAG,GAC3B,EAAKD,eAAe,KAAO,GAAI,EAAG,GAClC,EAAKE,iBAAiB,GAAI,GAAG,GAC7B,EAAKF,eAAe,EAAG,GAAI,GAC3B,EAAKC,eAAe,GAAI,GAAI,GAAG,GAC/B,EAAKD,eAAe,EAAG,EAAG,GAC1B,EAAKC,eAAe,EAAG,EAAG,GAC1B,EAAKD,eAAe,IAAM,GAAI,EAAG,EAAG,OACpC,EAAKE,iBAAiB,EAAG,GAAG,GAC5B,EAAKF,eAAe,KAAO,GAAI,EAAG,EAAG,OACrC,EAAKC,eAAe,GAAI,GAAI3gF,KAAKiD,KAAK,KACtC,EAAKy9E,eAAe,KAAO,GAAI,EAAG,GAClC,EAAKC,eAAe,GAAI,EAAG,GAC3B,EAAKD,eAAe,IAAM,GAAI,EAAG,GACjC,EAAKA,eAAe,IAAM,EAAG,EAAG,GAChC,EAAKC,eAAe,GAAI,GAAI,IAC5B,EAAKD,eAAe,IAAM,GAAI,EAAG,IAGlC,EAAKD,UAAYlE,EAAgBlK,OAAO,UACxC,EAAKjgB,a,EAuLP,OA3PgC,iBAuExB,YAAAsuB,eAAP,SAAsBG,EAAcrxD,EAAkBsxD,EAAmBzxD,EAAc0xD,GACtF,IAAIC,EAAU,IAAI,EAQlB,OAPAA,EAAQj8E,MAAQ87E,EAChBG,EAAQh8E,OAAS67E,EACjBG,EAAQlqB,OAASruD,KAAKg4E,UACtBO,EAAQ3xD,IAAMA,EACd2xD,EAAQxnB,gBAAkBunB,EAC1BC,EAAQ1rB,YAAcwrB,EACtBE,EAAQxxD,SAAWA,EACZwxD,GAGD,YAAAL,eAAP,SAAsBE,EAAcrxD,EAAkBsxD,EAAmBG,GACxE,IAAID,EAAU,IAAI,EAqBlB,OApBAA,EAAQj8E,MAAQ87E,EAChBG,EAAQh8E,OAAS67E,EACjBG,EAAQ3B,UAAYyB,EACpBE,EAAQ5B,WAAa0B,EAElBG,GACFD,EAAQlqB,OAASruD,KAAKg4E,UACtBO,EAAQ1rB,YAAc,EACtB0rB,EAAQ3nB,YAAc,IAGtB2nB,EAAQ78B,KAAO17C,KAAKg4E,UACpBO,EAAQ1rB,YAAc,GAGR,GAAZ9lC,IACFwxD,EAAQznB,eAAiB,QAG1BynB,EAAQxxD,SAAWA,EACZwxD,GAGD,YAAAJ,iBAAP,SAAwBC,EAAc/5E,EAAgBm6E,GACrD,IAAID,EAAU,IAAI,EAclB,OAbAA,EAAQj8E,MAAQ87E,EAChBG,EAAQh8E,OAAS67E,EACjBG,EAAQznB,eAAiB,OACzBynB,EAAQl6E,OAASA,EACdm6E,GACFD,EAAQlqB,OAASruD,KAAKg4E,UACtBO,EAAQ1rB,YAAc,EACtB0rB,EAAQ3nB,YAAc,IAGtB2nB,EAAQ78B,KAAO17C,KAAKg4E,UACpBO,EAAQ1rB,YAAc,GAEhB0rB,GAQR,sBAAW,mBAAI,C,IAQf,WACC,OAAOv4E,KAAK43E,O,IATb,SAAgB/hF,GACfmK,KAAK43E,MAAQ/hF,EACbmK,KAAK24C,S,gCAeC,YAAAv0C,KAAP,WACC,IAAMm0E,EAAUv4E,KAAKmgD,SAASngD,KAAKy4E,aAEnC,OADAz4E,KAAK63E,eACEU,GASD,YAAAp4B,SAAP,SAAgB9jD,GAEf,KAAO2D,KAAKw4C,KAAKr8C,QAAUE,GAC1B2D,KAAK04E,mBAGN,OADU14E,KAAKw4C,KAAKn8C,GACLuM,SAMR,YAAA8vE,iBAAR,WACC,IAAMv6E,EAAQ6B,KAAKw4C,KAAKr8C,QAAU6D,KAAK+3E,aAAe,GACtD/3E,KAAK+3E,eACL,IAAK,IAAI17E,EAAI,EAAGA,EAAI8B,EAAO9B,IAC1B2D,KAAKw4C,KAAKh6C,KAAKwB,KAAKw4C,KAAKn8C,GAAGuM,UAUvB,YAAA+vC,MAAP,WACC34C,KAAK63E,aAAe73E,KAAK83E,aAY1B,sBAAW,0BAAW,C,IAOtB,WACC,OAAO93E,KAAK63E,c,IARb,SAAuBhiF,GACtBmK,KAAK63E,aAAehiF,G,gCAiBrB,sBAAW,yBAAU,C,IAQrB,WACC,OAAOmK,KAAK83E,a,IATb,SAAsBjiF,GACrBmK,KAAK83E,YAAcjiF,EACnBmK,KAAK24C,S,gCAgBC,YAAAwtB,cAAP,SAAqB33D,GAapB,YAAM23D,cAAa,UAAC33D,IAGtB,EA3PA,CAAgC2kE,EAAA,IAmQhC,IAAS/zE,kBAAT,WAA2C,G,+DCnQ3C,WAuBC,aAZU,KAAAuiD,WAAqB,EAOrB,KAAAuH,WAA+B,GAalC,YAAA+d,KAAP,aAUO,YAAAplB,WAAP,WACC,OAAO7hD,KAAK2hD,WAMN,YAAA9B,QAAP,WACC,IAAK7/C,KAAK2hD,UAAW,CACpB3hD,KAAK2hD,WAAY,EAEjB,IAAM5qD,EAAIiJ,KAAKkpD,WAIf,IAFAlpD,KAAKkpD,WAAkB,KAEH,IAAbnyD,EAAEoF,QAAc,CACLpF,EAAEg8C,QACV8M,aA1Db,G,4ECmBA,I,OAAA,YAqBC,mBAGC,cAAO,KACP,EAAK9E,UAAY,eAEjB,EAAKqnB,OAAS,SAEd,IAAIjqE,EAAI,GACR,EAAKw4D,QAAU,GACf,EAAKjE,aAAaliB,WAAWmmB,QAAU,GACvC,EAAK3vC,IAAM,4BACX,EAAKu+C,UAAY,SAEjB,EAAK7R,mBAAoB,EACzB,EAAKoN,YAAc,uCACnB,EAAKx+D,MAAQ,GACb,EAAKC,OAAS,GACd,EAAKwoE,WAAWpU,QAAU,EAE1B,IAAIgoB,EAAS,YAAM,WACiD,YAAhE,IAAI5E,EAAA,GAAoBnK,OAAO,cAAc1E,YAAY7nB,MAC5Ds7B,EAAS,YAAM,YAGhB,IAAIC,EAAY,IAAIC,EAAA,EAEpBD,EAAUE,SAASH,GACnBC,EAAUE,SAASH,EAAQ,EAAG,KAC9BC,EAAUE,SAAS,YAAM,WAAY,EAAG,MACxCF,EAAU7xD,UAAY,GAEtB,IAAIgyD,EAAUH,EAEVhzE,EAAI,EAAK0jE,YAAY0P,EAAA,GACzBpzE,EAAEgjD,aAAc,EAChBhjD,EAAE4lD,YAAa,EACf5lD,EAAEiM,SAAW,CAAC,CAAC,CAAEvX,EAAG,GAAQC,EAAG,IAAU,CAAED,EAAG,GAAQC,EAAG,IAAU,CAAED,EAAG,GAASC,EAAG,GAAU,CAAED,EAAG,KAASC,EAAG,MAAU,CAAED,EAAG,GAASC,EAAG,GAAU,CAAED,EAAG,GAASC,EAAG,IAAU,CAAED,EAAG,GAASC,EAAG,MAChMqL,EAAEinD,YAAc,EAAI10D,EACpByN,EAAEjI,SAAW,GACbiI,EAAEhI,SAAW,EAEbgI,EAAEyoD,OAAS,YAAM,WAEjB,IAAIt3D,EAAI,EAAKuyE,YAAY0P,EAAA,GACzBjiF,EAAE6xD,aAAc,EAChB7xD,EAAEy0D,YAAa,EACfz0D,EAAE8a,SAAW,CAAC,CAAC,CAAEvX,EAAG,EAAQC,EAAG,IAAU,CAAED,EAAG,GAAQC,EAAG,IAAU,CAAED,EAAG,GAAQC,EAAG,GAAKpC,GAAK,CAAEmC,EAAG,KAASC,EAAG,IAAU,CAAED,EAAG,GAASC,EAAG,IAAU,CAAED,EAAG,GAASC,EAAG,MACpKxD,EAAE81D,YAAc,EAAI10D,EACpBpB,EAAE4G,SAAW,IACb5G,EAAE6G,SAAW,EACb7G,EAAEs3D,OAAS0qB,EAEX,EAAK7vB,WAAW1qD,KAAKzH,GAErB,IAAIkiF,EAAmB,IAAIC,EAAA,EAC3B,EAAKnsB,QAAQvuD,KAAKy6E,GAElB,IAAIE,EAAwB,IAAID,EAAA,EAChCC,EAAsBz7B,WAAa,EAEnC,IAAI07B,EAAa,EAAKnsB,OAAO9pD,OAAO,S,OACpCi2E,EAAW5uC,WAAWmmB,QAAU,EAChCyoB,EAAWrsB,QAAQvuD,KAAK26E,GAGxB,EAAKxvB,a,EAGP,OA1FkC,iBA0FlC,EA1FA,CAAkC8e,EAAA,I,UCpBlC,SAASa,GAA8B8E,EAAmD7E,GACzF,IAAI/gD,EAAgB,IAAgB4lD,GAGhCiL,GAAe,EAWnB,GAVK7wD,KACJA,EAAgBzR,SAASH,cAAc,QACzBqkC,MAAM3+C,MAAQ,QAC5BksB,EAAcyyB,MAAM1+C,OAAS,QAC7BisB,EAAcyyB,MAAMq+B,WAAa,SACjC9wD,EAAcyyB,MAAMv/C,SAAW,WAC/Bqb,SAASpS,KAAK8+C,YAAYj7B,GAC1B6wD,GAAe,GAGZ7wD,EAAe,CAElBA,EAAc+wD,UAAY,GAG1B,IAAI,EAAS,IAAI/a,EAAA,EAAah2C,GAC1BjoB,EAAQ,IAAIi5E,EAAA,EAAM,EAAOhb,aAAc,QAAU,IAAcriE,OAAS,IAMxE,EAAY,IAAIssE,EAAA,EACpB,EAAUjgD,cAAgBA,EAC1B,EAAUP,aAAe,EACzB,EAAU3rB,MAAQ,YAAQ,KAC1B,EAAUC,OAAS,YAAQ,KAC3B,EAAUwoE,WAAWnU,YAAc,EACnC,EAAUrwD,MAAQA,EAClBA,EAAMk5E,OAAO,EAAUhyD,OAGnB4xD,GACH,KAAW,WACV,EAAUlL,kBAAkBC,MAK9B,EAAUpM,cAAgB,EAC1B,EAAUQ,eAAiB,EAE3B,EAAOkX,UAAY,EAGnB,IAAI,EAAS,EAAUpQ,YAAYC,GACnC,EAAOza,UAAY,EACnB,IAAI7uD,EAAM,EAAOA,IAEjB,IAASX,eAAeW,GAAO,GAC/B,IAASV,aAAaU,GAAO,GAC7B,IAASN,iBAAiBM,GAAO,GACjC,IAASL,eAAeK,GAAO,GAE/B,EAAU4B,OAAS5B,EAEnB,EAAO0oD,cAAe,EACtB,EAAO6U,YAAc,IAAI,EACzB,IAAS39D,YAAYrB,KAAK,GAC1B,IAASsB,iBAAiBG,GAAO,EAEjC,EAAOorD,cAAgB,CAAE/wD,EAAG,EAAGC,EAAG,EAAG+B,MAAO/E,KAAKM,IAAI,EAAOyE,OAAS,EAAG,GAAIC,OAAQhF,KAAKM,IAAI,EAAO0E,QAAU,EAAG,IAGjH,EAAUyC,OAAOmgD,GAAG,kBAAkB,SAACgF,GACX,GAAvBA,EAAM8d,eAA8C,GAAxB9d,EAAM+d,gBACrC,EAAU9J,iBAEP,EAAO/M,gBACV,EAAOA,cAAgB,CAAE/wD,EAAG,EAAGC,EAAG,EAAG+B,MAAO/E,KAAKM,IAAI,EAAOyE,OAAS,EAAG,GAAIC,OAAQhF,KAAKM,IAAI,EAAO0E,QAAU,EAAG,QAInH,IAAI,EAA2B,MAGlB,SAAP,IACA,EAAOslD,aAkBX,EAAY,KAjBoB,MAA5B,IAAa,EAAOW,MACnB,IAAQm3B,aACX,EAAUnxD,mBAAgB9b,EAC1B,EAAO0hE,iBAAc1hE,EACrB,EAAOmzC,WAGP,KAAU,yBAA0B,EAAO5/C,KAG5C,EAAY,MAGZ,EAAY6W,OAAO6nD,WAAW,EAAM,KAQvC,GAEA,EAAOnP,YAAY,IAAIzN,GAAA,GAAS,WACb,OAAd,GACH63B,aAAa,GAEd,KAAc,IAAS/5E,YAAa,GACpC,IAASC,iBAAiB,EAAOG,UAAOyM,MAIzC,EAAO8iD,YAAY,GAGnB,IAAI,EAA8B,EAAU8Z,YAAYb,EAAA,GACxD,EAAiB3Z,UAAY,EAC7B,EAAiBxyD,MAAQ,YAAQ,KACjC,EAAiBC,OAAS,YAAQ,KAClC,EAAiBivD,YAAa,EAC9B,EAAUyD,iBAAmB,EAE7B,EAAOzB,QAAU,IAAIqsB,EAAA,EACrB,EAAOrsB,QAAQvB,KAAK,GACpB,EAAOuB,QAAQssB,UAAU,CAAEx/E,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAiBglE,SAAU/kE,OAAQ,EAAiBwlE,YAElG,EAAiB/iE,OAAOmgD,GAAG,kBAAkB,WAC5C,IAAe,EAAOqO,SAASssB,UAAU,CAAEx/E,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAiBglE,SAAU/kE,OAAQ,EAAiBwlE,mBAChHr1D,GAAW,GAId,IAAI,EAAY,IAAI,EAOpB,GANA,EAAU1N,OAAOmgD,GAAG,UAAU,WAC7B,EAAUiN,YAAa,SACrB1/C,GAAW,GACd,EAAU2gE,UAAY,EAGlB,aAAkB5E,EAAA,IAAc,EAAO+F,aAAc,CACxD,IAAI,EAAO,EAAiBlF,YAAY,IACxC,EAAiBtqE,OAAOmgD,GAAG,kBAAkB,SAACyZ,GACxC,EAAiB0I,UAAY,KAAS,EAAiBS,WAAa,GACxE,EAAK9V,QAEG,EAAKiK,UAAY,EAAKtP,WAC9B,EAAKid,cAEJn3D,GAAW,GACd,EAAOqtE,KAAO,EACd,EAAKtY,MAAQ,OACb,EAAKW,OAAS,SASf,GANA,KAAY,EAAO9J,iBAInB,EAAUvR,sBAAuB,EAE7B,IAAQizB,mBACX,GAAK,IAAyBxxD,EAAe,IAAQu9B,gBAyB5C,IAAQhmD,OAChBk6E,GAAW,OA1B0D,CACrE,EAAO7tB,YAAa,EACpB,EAAO6C,iBAAiB7C,YAAa,EAErC,IAAItK,EAAY,CACf,IAAsBhrC,OAAQ,oBAAoB,WAAaojE,GAAgB,MAC/E,IAAsBpjE,OAAQ,QAAQ,WAAaojE,GAAgB,MACnE,IAAsBpjE,OAAQ,UAAU,WAAaojE,GAAgB,MACrE,IAAsBpjE,OAAQ,UAAU,WAAaojE,GAAgB,OAGtE,GAAI,IAAQn0B,eAEX,IADA,IAAMC,EAAU,IAAc,IAAQD,gBAAkB,IAAQA,eAAiB,IAAQA,eAAiB,CAAC,IAAQA,gBAAkB,GAC5H1pD,EAAI,EAAGA,EAAI2pD,EAAQ7pD,OAAQE,IAAK,CACxC,IAAMmF,EAASwkD,EAAQ3pD,GACvBylD,EAAUtjD,KAAK,IAAsBgD,EAAQ,UAAU,WAAa04E,GAAgB,OACpFp4B,EAAUtjD,KAAK,IAAsBgD,EAAQ,UAAU,WAAa04E,GAAgB,OAItF,IAAIj4B,EAAW,IAAI,KAAcH,GAEjC,EAAO0N,YAAYvN,GACnB,EAAOk4B,WAAal4B,OAMb,IAAQliD,OAChBk6E,GAAW,GAGZ,OAAO,EAIP,MADA,IAAO/T,IAAI,4BACL,IAAI/vE,MAAM,4BAaZ,SAAU8jF,GAAW55E,IACa,GAAnC,IAASN,MAAMjJ,QAAQuJ,KAC1BA,EAAO+rD,YAAa,EACpB/rD,EAAO4uD,iBAAiB7C,YAAa,EACrC/rD,EAAOrB,OAAOo7E,YAAY,YAEG,GAAzB,IAASr6E,MAAM5D,SAClB,IAAS6C,OAAOggE,KAAK,aAAa,WACjCqb,GAAah6E,MAEd,IAAO+pD,gBAGR/pD,EAAOmvD,YAAY,IAAIzN,GAAA,GAAS,WAC/Bu4B,GAAgBj6E,OAGjB,IAASN,MAAMvB,KAAK6B,IAIhB,SAAUi6E,GAAgBj6E,GAC/B,IAAIsH,EAAQ,IAAS5H,MAAMjJ,QAAQuJ,GACnC,GAAIsH,GAAS,EAAG,CACf,IAAS5H,MAAM4rB,OAAO,IAAS5rB,MAAMjJ,QAAQuJ,GAAS,GACtD,IAAIk6E,EAAa,IAASx6E,MAAM4H,GAC5B4yE,GACHF,GAAaE,IAKV,SAAUL,GAAgB75E,GAC3BA,EAAO+rD,YAAc,IAAyB/rD,EAAOmoB,cAAe,IAAQu9B,kBAE3E1lD,EAAO85E,YACV95E,EAAO85E,WAAWt6B,UAGnBo6B,GAAW55E,IAIP,SAAUg6E,GAAah6E,GAC5BA,EAAO+rD,YAAa,EACpB/rD,EAAO4uD,iBAAiB7C,YAAa,EACrC/rD,EAAOrB,OAAOw7E,WAAW,YACzBn6E,EAAOc,SAAS,oBAEZd,EAAO0rD,YACV1rD,EAAOrB,OAAOmgD,GAAG,YAAY,WAC5Bm7B,GAAgBj6E,MAIdA,EAAO85E,YACV95E,EAAO85E,WAAWt6B,UAEfx/C,aAAkBooE,EAAA,GACrBpoE,EAAOmtE,mBAGJntE,EAAO4uD,kBACV5uD,EAAO4uD,iBAAiBoS,mBAErBhhE,aAAkBo6E,EAAA,GACrBp6E,EAAOq6E,iBACPr6E,EAAOmsD,SAEPnsD,EAAOrB,OAAOggE,KAAK,iBAAiB,WAC/B3+D,EAAO0rD,WACV1rD,EAAO0mE,SAGPuT,GAAgBj6E,QAKlBA,EAAOmsD,SACPnsD,EAAOrB,OAAOggE,KAAK,UAAU,WAC5Bsb,GAAgBj6E,MAEbA,EAAO0rD,YACV1rD,EAAO0mE,UA6BJ,SAAU5jE,GAAyBirE,EAAmD7E,GAM3F,IAAIoR,EACA,IAAepR,KACd,IAAe,IAASnqE,kBAAkBmqE,IAC7CA,EAAY,IAASnqE,kBAAkBmqE,IAGvCA,EAAY,IAASnqE,kBAAT,UACZu7E,EAAa,IAAIxkF,MAAM,UAAYozE,EAAY,sBAKjD,IAAIqR,EAAQtR,GAAY8E,EAAa7E,GAOrC,OAJIoR,GACHC,EAAMhV,mBAAmB+U,GAGnBC,EA6IF,SAAUC,GAAShlF,IACgB,IAApC,IAASoJ,OAAOnI,QAAQjB,IAC3B,IAASoJ,OAAOT,KAAK3I,K,8BCphBvB,IAAIilF,EAAU,CAIZC,UAAW,EAKXC,UAAW,EAKXC,IAAK,EAKLC,WAAY,GAKZC,MAAO,GAKPC,MAAO,GAKPC,KAAM,GAKNC,IAAK,GAKLC,MAAO,GAKPC,UAAW,GAKXC,IAAK,GAKLC,MAAO,GAKPC,QAAS,GAKTC,UAAW,GAKXC,IAAK,GAKLC,KAAM,GAKNC,KAAM,GAKNC,GAAI,GAKJC,MAAO,GAKPC,KAAM,GAKNC,aAAc,GAKdC,OAAQ,GAKRC,OAAQ,GAKRC,KAAM,GAKNC,IAAK,GAKLC,IAAK,GAKLC,MAAO,GAKPC,KAAM,GAKNC,KAAM,GAKNC,IAAK,GAKLC,MAAO,GAKPC,MAAO,GAKPC,KAAM,GAKNC,cAAe,GAKfC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHh5C,EAAG,GAKHi5C,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHzpE,EAAG,GAKHklB,EAAG,GAKHwkD,EAAG,GAKHC,EAAG,GAKH/5E,EAAG,GAKHg6E,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKH/5C,EAAG,GAKHg6C,EAAG,GAKHC,EAAG,GAKHC,EAAG,GAKHC,KAAM,GAKNC,cAAe,GAKfC,aAAc,GAKdC,SAAU,GAKVC,QAAS,GAKTC,QAAS,GAKTC,UAAW,GAKXC,SAAU,IAKVC,SAAU,IAKVC,QAAS,IAKTC,UAAW,IAKXC,UAAW,IAKXC,SAAU,IAKVC,aAAc,IAKdC,SAAU,IAKVC,UAAW,IAKXC,WAAY,IAKZC,aAAc,IAKdC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,GAAI,IAKJC,IAAK,IAKLC,IAAK,IAKLC,IAAK,IAKLC,QAAS,IAKTC,UAAW,IAKXC,KAAM,IAKNC,OAAQ,IAKRC,MAAO,IAKPC,OAAQ,IAKRC,MAAO,IAKPC,WAAY,IAKZC,aAAc,IAKdC,oBAAqB,IAKrBC,UAAW,IAKXC,qBAAsB,IAKtBC,QAAS,IAKTC,YAAa,IAKbC,QAAS,IAMTC,wBAAyB,SAAiC98E,GACxD,IAAI+8E,EAAU/8E,EAAE+8E,QAEhB,GAAI/8E,EAAEg9E,SAAWh9E,EAAEi9E,SAAWj9E,EAAEk9E,SAChCH,GAAWtG,EAAQ0E,IAAM4B,GAAWtG,EAAQqF,IAC1C,OAAO,EAKT,OAAQiB,GACN,KAAKtG,EAAQQ,IACb,KAAKR,EAAQU,UACb,KAAKV,EAAQ0D,aACb,KAAK1D,EAAQO,KACb,KAAKP,EAAQoB,KACb,KAAKpB,EAAQe,IACb,KAAKf,EAAQW,IACb,KAAKX,EAAQgB,KACb,KAAKhB,EAAQsB,OACb,KAAKtB,EAAQiB,KACb,KAAKjB,EAAQmG,YACb,KAAKnG,EAAQwD,KACb,KAAKxD,EAAQsF,QACb,KAAKtF,EAAQI,WACb,KAAKJ,EAAQc,UACb,KAAKd,EAAQa,QACb,KAAKb,EAAQS,MACb,KAAKT,EAAQqB,aACb,KAAKrB,EAAQmB,MACb,KAAKnB,EAAQM,MACb,KAAKN,EAAQkB,GACb,KAAKlB,EAAQkG,QACb,KAAKlG,EAAQyD,cACX,OAAO,EAET,QACE,OAAO,IAObiD,eAAgB,SAAwBJ,GACtC,GAAIA,GAAWtG,EAAQwB,MAAQ8E,GAAWtG,EAAQiC,KAChD,OAAO,EAGT,GAAIqE,GAAWtG,EAAQ2D,UAAY2C,GAAWtG,EAAQqE,aACpD,OAAO,EAGT,GAAIiC,GAAWtG,EAAQmC,GAAKmE,GAAWtG,EAAQuD,EAC7C,OAAO,EAIT,IAAsD,IAAlDvnE,OAAO2qE,UAAUC,UAAU5qF,QAAQ,WAAgC,IAAZsqF,EACzD,OAAO,EAGT,OAAQA,GACN,KAAKtG,EAAQY,MACb,KAAKZ,EAAQkC,cACb,KAAKlC,EAAQsE,SACb,KAAKtE,EAAQuE,UACb,KAAKvE,EAAQwE,WACb,KAAKxE,EAAQyE,aACb,KAAKzE,EAAQuF,UACb,KAAKvF,EAAQwF,KACb,KAAKxF,EAAQyF,OACb,KAAKzF,EAAQ0F,MACb,KAAK1F,EAAQ2F,OACb,KAAK3F,EAAQ4F,MACb,KAAK5F,EAAQ6F,WACb,KAAK7F,EAAQ8F,aACb,KAAK9F,EAAQ+F,oBACb,KAAK/F,EAAQgG,UACb,KAAKhG,EAAQiG,qBACX,OAAO,EAET,QACE,OAAO,KAIAjG,O,svBC9iBf,cAyBC,mBAGC,cAAO,KACP,EAAK//B,UAAY,OAEjB,IAAMpyB,EAAK,IAAIorD,EAAA,EAGf,EAAKvS,OAAS,WAGd,EAAK8B,QAAQ,GAAI,GAAI,GAAI,IACzB,EAAKL,OAAO,EAAG,EAAG,EAAG,GACrB,EAAK8B,WAAWnU,YAAc,GAC9B,EAAKmU,WAAWzyD,aAAa,GAAI,GAAI,GAAI,IAGzC,IAAIwoC,EAAe,IAAIysB,EAAA,EACvBzsB,EAAKpyB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,IAAIwC,EAAO,IAAa,CAAExR,GAAI,EAAGC,EAAG,I,OACpCuR,GAAQ,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAChCuR,GAAQ,IAAa,CAAExR,GAAI,EAAGC,GAAI,IAClCuR,GAAQ,IAAa,CAAExR,EAAG,EAAGC,GAAI,KACjCuR,GAAQ,IAAa,CAAExR,EAAG,EAAGC,GAAI,IACjCuR,GAAQ,IAAa,CAAExR,GAAI,EAAGC,EAAG,IACjCuR,GAAQ,IAAa,CAAExR,EAAG,EAAGC,EAAG,KAChCuR,GAAQ,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAChCugD,EAAKhvC,KAAOA,EACZgvC,EAAK+R,YAAc,EACnB/R,EAAK8V,YAAc,EAEnB9V,EAAKuY,cAAe,EACpBvY,EAAKwoB,QAAQ,EAAG,EAAG,EAAG,GACtBxoB,EAAKuT,OAAS1lC,EAAGihD,OAAO,QACxB9uB,EAAK+V,cAAgB,GACrB/V,EAAK2mB,MAAQ,SACb3mB,EAAKsnB,OAAS,SACd,EAAKtnB,KAAOA,EAEZ,EAAK/1C,MAAM86C,UACX,EAAK96C,WAAQ2H,EAGb,EAAKhR,SAAW,QAGhB,EAAKimF,cAAgB,IACrB,EAAK3iF,OAAOmgD,GAAG,SAAS,SAACyZ,GACpB,EAAKgpB,kBACR,EAAKA,iBAAiB/hC,UAEnB,EAAK8hC,gBACR,EAAKC,iBAAmB,EAAKjjB,YAAW,WACvC,EAAK1S,SACH,EAAK01B,mBAIV,EAAK3iF,OAAOmgD,GAAG,QAAQ,SAACyZ,GACnB,EAAKgpB,kBACR,EAAKA,iBAAiB/hC,aAIxB,EAAK7gD,OAAOmgD,GAAG,OAAO,SAACyZ,GAClB,EAAK+oB,gBACR,EAAKC,iBAAmB,EAAKjjB,YAAW,WACvC,EAAK1S,SACH,EAAK01B,mBAKV,EAAKh4B,a,EA2FP,OA/L0B,iBA+GzB,sBAAW,uBAAQ,C,IA2DnB,WACC,OAAO3pD,KAAKujD,iBAAiB,a,IA5D9B,SAAoB1tD,GACnB,GAAImK,KAAKopD,iBAAiB,WAAYvzD,GACrC,OAAOA,GACN,IAAK,OACJmK,KAAKyhE,MAAQ,OACbzhE,KAAKoiE,OAAS,SACdpiE,KAAKyrD,iBAAmB,OACxBzrD,KAAK0rD,eAAiB,SACtB1rD,KAAK86C,KAAK/zB,SAAW,EACrB/mB,KAAK1D,WAAQoQ,EACb1M,KAAKzD,OAAS,YAAQ,IACtB,MAED,IAAK,QACJyD,KAAKyhE,MAAQ,QACbzhE,KAAKoiE,OAAS,SACdpiE,KAAKyrD,iBAAmB,QACxBzrD,KAAK0rD,eAAiB,SACtB1rD,KAAK86C,KAAK/zB,SAAW,EACrB/mB,KAAK1D,WAAQoQ,EACb1M,KAAKzD,OAAS,YAAQ,IACtB,MAED,IAAK,MACJyD,KAAKyhE,MAAQ,SACbzhE,KAAKoiE,OAAS,MACdpiE,KAAKyrD,iBAAmB,SACxBzrD,KAAK0rD,eAAiB,MACtB1rD,KAAK86C,KAAK/zB,SAAW,GACrB/mB,KAAK1D,MAAQ,YAAQ,IACrB0D,KAAKzD,YAASmQ,EACd,MAED,IAAK,SACJ1M,KAAKyhE,MAAQ,SACbzhE,KAAKoiE,OAAS,SACdpiE,KAAKyrD,iBAAmB,SACxBzrD,KAAK0rD,eAAiB,SACtB1rD,KAAK86C,KAAK/zB,SAAW,GACrB/mB,KAAK1D,MAAQ,YAAQ,IACrB0D,KAAKzD,YAASmQ,EACd,MAED,QACC1M,KAAKyhE,MAAQ,SACbzhE,KAAKoiE,OAAS,SACdpiE,KAAKyrD,iBAAmB,SACxBzrD,KAAK0rD,eAAiB,SACtB1rD,KAAK86C,KAAK/zB,SAAW,GACrB/mB,KAAK1D,MAAQ,YAAQ,IACrB0D,KAAKzD,YAASmQ,I,gCAmBlB,sBAAW,4BAAa,C,IAOxB,WACC,OAAO1M,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,I,gCAUzC,EA/LA,CAA0Bi/E,EAAA,GAuM1B,IAAS11E,kBAAT,KAAqC,E,oCCnOrC,cAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,gBACjB,EAAK4O,a,EAGP,OAhBmC,iBAgBnC,EAhBA,CAAmCk4B,EAAA,GA8DnC,cAmDC,mBAGC,cAAO,KAEP,GAfS,EAAAC,QAAU,IAAI,IAenB,EAAK7+E,cAAgB8+E,EACxB,MAAM,IAAI5rF,MAAM,8EAEjB,EAAK4kD,UAAY,QAGjB,IAAMkG,EAAW,IAAImzB,EAAA,EACrB,EAAK4N,OAAS,IAAI1gC,EAAA,EAAoBL,GACtC,EAAKiI,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAK0gC,SAC3C,EAAK94B,WAAW1qD,KAAKyiD,GAGrB,EAAK3kD,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KACtB,EAAKilE,OAAS,WAGd,IAAIygB,EAAqC,EAAK3Y,YAAYb,EAAA,GAC1DwZ,EAAwBr5B,aAAc,EACtCq5B,EAAwBzgB,OAAS,WACjCygB,EAAwB3lF,MAAQ,YAAQ,KACxC2lF,EAAwB1lF,OAAS,YAAQ,KACzC,EAAK0lF,wBAA0BA,EAG/B,IAAIC,EAAiBD,EAAwB3Y,YAAYb,EAAA,G,OACzDyZ,EAAet5B,aAAc,EAC7Bs5B,EAAe5lF,MAAQ,YAAQ,KAC/B4lF,EAAe3lF,OAAS,YAAQ,KAChC,EAAK2lF,eAAiBA,EAEtB,EAAKn2B,YAAa,EAElB,EAAK7C,WAAW1qD,KAAK,EAAKsjF,SAI1B,EAAKE,OAAOhjF,OAAOmgD,GAAG,YAAY,SAACp6C,GAClC,EAAKo9E,aAAap9E,GAClB,EAAKq9E,gCACH,GAAM,GACT,EAAKJ,OAAOhjF,OAAOmgD,GAAG,WAAW,SAACp6C,GACjC,EAAKq9E,gCACH,GAAM,GAOT,EAAKvlC,KAAO,SAEZ,EAAK6P,aAAauJ,mBAAqB,EAGvC,EAAKtM,a,EA+PP,OA9W2B,iBAsHhB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,WAStC,YAAAtqB,KAAP,WACCvqD,KAAKqiF,YACL,YAAM93B,KAAI,YAMD,YAAA83B,UAAV,WACC,IAAIC,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CACX,IAAIL,EAA0BjiF,KAAKiiF,wBAC/BC,EAAiBliF,KAAKkiF,eAK1B,OAJAA,EAAe5nF,OAAIoS,EACnBw1E,EAAe3nF,OAAImS,EACnB41E,EAAOhoF,OAAIoS,EACX41E,EAAO/nF,OAAImS,EACH41E,EAAO5mF,UACd,IAAK,OACJumF,EAAwBzgB,OAAS,aACjC8gB,EAAOhe,SACP,MAED,IAAK,QACJ2d,EAAwBzgB,OAAS,aACjC8gB,EAAOje,UACP,MAED,IAAK,MACJ4d,EAAwBzgB,OAAS,WACjC8gB,EAAOhe,SACP,MAED,IAAK,SACJ2d,EAAwBzgB,OAAS,WACjC8gB,EAAOje,aAQD,YAAAke,WAAV,aAaU,YAAAJ,aAAV,SAAuBh+B,GACtB,IAAI0W,EAAe1W,EAAM/E,SASzB,OARAyb,EAAM1tD,OAASnN,KACf66D,EAAMyJ,SACNzJ,EAAMjS,aAAc,EACpBiS,EAAM4G,MAAQ,SAId5G,EAAMnJ,UACCmJ,GAUD,YAAAunB,4BAAP,WACC,GAAIpiF,KAAKgiF,OAAO7lF,OAAQ,CACvB,IAAI,EAA0B,GAC9B,IAAW6D,KAAKgiF,OAAO38E,YAAY,SAACw1D,GACnC,EAASr8D,KAAKq8D,EAAM56D,QAErBD,KAAKqxD,gBAAgB,CAAE,kBAAmB,EAAS5qD,KAAK,YAGxDzG,KAAK4qD,mBAAmB,oBAW1B,sBAAW,qBAAM,C,IAOjB,WACC,OAAO5qD,KAAK8hF,QAAQ5gF,O,IARrB,SAAkBohF,GACjBtiF,KAAKwiF,UAAUF,I,gCAeN,YAAAE,UAAV,SAAoBF,GAApB,WACKtiF,KAAK8hF,QAAQ5gF,QAAUohF,IACtBA,GACHA,EAAOhhB,SAAW,IAElBghB,EAAOn1E,OAASnN,KAAKiiF,wBAErBjiF,KAAK8hF,QAAQ9gF,IAAIshF,EAAQA,EAAOtjF,OAAOmgD,GAAG,mBAAmB,SAACgF,GACvC,YAAlBA,EAAM9Z,UACT,EAAKg4C,mBAEJ31E,GAAW,IAEd41E,EAAO9yB,YAAY,IAAIzN,EAAA,GAAS,WAC/B,EAAKugC,YAAS51E,OAIf1M,KAAK8hF,QAAQnpC,QAGd34C,KAAKuiF,eAQA,YAAA1iC,QAAP,WAEK7/C,KAAKsiF,QACRtiF,KAAKsiF,OAAOziC,UAEb,YAAMA,QAAO,YASP,YAAAsmB,cAAP,SAAqB33D,GAEhBA,GAGC,IAAeA,EAAO8zE,UAAY,IAAe9zE,EAAO8zE,OAAO/gF,QAClEiN,EAAO8zE,OAAO/gF,KAAO,UAKvB,YAAM4kE,cAAa,UAAC33D,IASd,YAAAqyC,SAAP,SAAgB//B,GACf9gB,KAAKgiF,OAAOnhC,SAAS//B,EAAOkhE,QAC5BhiF,KAAKkiF,eAAerhC,SAAS//B,EAAOohE,gBAChCphE,EAAOwhE,SACVtiF,KAAKsiF,OAASxhE,EAAOwhE,OAAO15E,QAC5B5I,KAAKsiF,OAAO9Y,kBAEb,YAAM3oB,SAAQ,UAAC//B,IAYhB,sBAAW,uBAAQ,C,IAOnB,sBACC,IAAK9gB,KAAKyiF,UAAW,CACpB,IAAI,EAAOziF,KAAKivD,iBAAiBqa,YAAY,GAC7C,EAAK7H,MAAQ,QACb,EAAKW,OAAS,SACd,EAAKnW,KAAK,GAEV,EAAKjtD,OAAOmgD,GAAG,QAAQ,SAACyZ,GACnBA,EAAGoF,QACN,EAAKlS,qBAAsB,MAI7B,EAAK9sD,OAAOmgD,GAAG,MAAM,SAACyZ,GACrB,EAAK9M,qBAAsB,KAG5B9rD,KAAKhB,OAAOmgD,GAAG,QAAQ,SAACyZ,GACnBA,EAAGoF,OACN,EAAK6F,UAIP7jE,KAAKyiF,UAAY,EAElB,OAAOziF,KAAKyiF,W,IAhCb,SAAoB5sF,GACnBmK,KAAKyiF,UAAY5sF,G,gCAkClB,sBAAW,wBAAS,C,IAIpB,WACC,OAAOmK,KAAKmN,OAAOgkD,W,IALpB,SAAqBt7D,GACpBmK,KAAKmN,OAAOgkD,WAAY,G,gCAM1B,EA9WA,CAA2BspB,EAAA,GAsX3B,IAASr7E,kBAAT,MAAsC,EAWtC,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBC,QAChC/6E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAO,CAC5B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAOjC,OANIrhF,EAAOkmB,iBAAmB,KAC7B7f,EAAM2iC,WAAWzhB,YAAc,IAE5BvnB,EAAOyxD,kBAAoB,KAC9BprD,EAAM2iC,WAAWxhB,aAAe,IAE1BnhB,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBG,SAChCj7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAO,CAC5B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAOjC,OANIrhF,EAAOmmB,gBAAkB,KAC5B9f,EAAM2iC,WAAWnhB,WAAa,IAE3B7nB,EAAO0xD,mBAAqB,KAC/BrrD,EAAM2iC,WAAWlhB,cAAgB,IAE3BzhB,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBI,SAChCl7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAO,CAC5B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAGjC,OAFAh7E,EAAM2iC,WAAWzhB,YAAc,EAC/BlhB,EAAM2iC,WAAWxhB,aAAe,EACzBnhB,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBK,UAChCn7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAO,CAC5B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAGjC,OAFAh7E,EAAM2iC,WAAWnhB,WAAa,EAC9BxhB,EAAM2iC,WAAWlhB,cAAgB,EAC1BzhB,EAGR,OAAO,Q,qBC7cT,cAoBC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,SACjB,EAAKyQ,YAAa,EAClB,EAAKy3B,SAAW,EAChB,EAAKlO,SAAW,EAChB,EAAKvT,OAAS,OAEd,EAAK/Z,eAAgB,EAErB,EAAKy7B,oBAAqB,EAE1B,EAAKv5B,a,EA2HP,OA3J4B,iBAwC3B,sBAAW,wBAAS,C,IAYpB,WACC,OAAO3pD,KAAKujD,iBAAiB,c,IAb9B,SAAqB1tD,GACpB,GAAGmK,KAAKopD,iBAAiB,YAAavzD,GAAO,CAC5C,IAAIs5D,EAAWnvD,KAAKmvD,SACjBA,GAAYA,EAASvtD,WACvButD,EAASvtD,UAAU8nD,e,gCAiBtB,sBAAW,wBAAS,C,IAYpB,WACC,OAAO1pD,KAAKujD,iBAAiB,c,IAb9B,SAAqB1tD,GACpB,GAAGmK,KAAKopD,iBAAiB,YAAavzD,GAAO,CAC5C,IAAIs5D,EAAWnvD,KAAKmvD,SACjBA,GAAYA,EAASvtD,WACvButD,EAASvtD,UAAU8nD,e,gCAkBtB,sBAAW,qBAAM,C,IAOjB,WACC,OAAO1pD,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAyBxC,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAiB3C,sBAAW,iCAAkB,C,IAO7B,WACC,OAAOmK,KAAKujD,iBAAiB,uB,IAR9B,SAA8B1tD,GAC7BmK,KAAKopD,iBAAiB,qBAAsBvzD,I,gCAU9C,EA3JA,CAA4B4yE,EAAA,GAmK5B,IAASrpE,kBAAT,OAAuC,EAUvC,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBQ,KAChCt7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAQ,CAC7B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,Q,6DC/NT,cA8CC,mBACC,cAAO,K,OAZD,EAAAu7E,iBAA2B,EAajC,EAAKroC,UAAY,iBACjB,EAAK4O,a,EA+MP,OAhQoC,iBAyDnC,sBAAW,oBAAK,C,IAAhB,sBACC,IAAK3pD,KAAKqjF,OAAQ,CACjB,IAAI,EAAQrjF,KAAK4B,UAAU0hF,OAAOngF,SAClCnD,KAAKqjF,OAAS,EACdrjF,KAAKujF,UAAU,GACfvjF,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAM2O,OAASnN,KAAKwjF,cAEpBxjF,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,IAAe,EAAKngD,YACvB,EAAKA,UAAU0hF,OAAOrjC,YAAY,OAIrC,OAAOjgD,KAAKqjF,Q,gCAgCb,sBAAW,oBAAK,C,IAOhB,WACC,OAAOrjF,KAAKwqC,WAAWuS,O,IARxB,SAAiBlnD,GAChBmK,KAAKolD,YAAY,QAASvvD,I,gCAe3B,sBAAW,yBAAU,C,IAArB,sBACC,IAAKmK,KAAKyjF,YAAa,CACtB,IAAI,EAAazjF,KAAK4B,UAAU8hF,YAAYvgF,SAC5CnD,KAAKyjF,YAAc,EAEnBzjF,KAAKujF,UAAU,GACfvjF,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAW2O,OAASnN,KAAKwjF,cAEzBxjF,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,IAAe,EAAKngD,YACvB,EAAKA,UAAU8hF,YAAYzjC,YAAY,OAI1C,OAAOjgD,KAAKyjF,a,gCASb,sBAAW,4BAAa,C,IAAxB,sBACC,IAAKzjF,KAAK2jF,eAAgB,CAEzB,IAAI,EAAY3jF,KAAK4B,UAEjB,EAAgB,EAAUgiF,eAAezgF,SAC7C,EAAcgK,OAAS,EACvBnN,KAAK2jF,eAAiB,EACtB3jF,KAAKujF,UAAU,GACfvjF,KAAKkpD,WAAW1qD,KAAK,GAGjB,EAAc62E,WACjB,EAAcr2E,OAAOmgD,GAAG,WAAW,SAACyZ,GACnC,EAAUirB,eAAqBjrB,EAAGp3D,OAAO2tD,iBACvCziD,GAAW,GAKX,EAAcykD,YACjB,EAAcnyD,OAAOmgD,GAAG,OAAO,SAACyZ,GAG/B,EAAUkrB,iBAAcp3E,SACtBA,GAAW,GACd,EAAc1N,OAAOmgD,GAAG,SAAS,SAACyZ,GACjC,EAAUkrB,YAAoBlrB,EAAGp3D,OAAO2tD,gBACtCziD,GAAW,GACd,EAAc1N,OAAOmgD,GAAG,QAAQ,SAACyZ,GAChC,EAAUkrB,iBAAcp3E,SACtBA,GAAW,IAGf1M,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,IAAe,EAAKngD,YACvB,EAAKA,UAAUgiF,eAAe3jC,YAAY,OAIxCjgD,KAAK25D,YAAYjI,UACpB,EAAc2J,eAAiBr7D,KAAK25D,YAAYjI,UAChD,EAAcuK,iBAAmBj8D,KAAK25D,YAAYjI,WAGnD,IAAIrxD,EAAcL,KAAK25D,YACvB,IAAKt5D,aAAkBwhF,EAAA,GAAYxhF,aAAkBknE,EAAA,KAAYlnE,EAAOwhD,aAAc,CACrF,IAAMkiC,EAAoB,SAASnrB,GAClC,EAAcuC,cAAgBvC,EAAG/M,QACjC,EAAc7sD,OAAOo7E,YAAY,WACjC,EAAchkB,UAAYwC,EAAG/M,QAC7B,EAAc7sD,OAAOw7E,WAAW,YAGjCn6E,EAAOmvD,YAAY,IAAIzN,EAAA,GAAS,WAC3B,EAAKngD,WACR,EAAKA,UAAUoiF,UAAUv4D,OAAO,OAI9BprB,aAAkBknE,EAAA,GACrB,EAAc/X,YACbnvD,EAAOrB,OAAOmgD,GAAG,oBAAqB4kC,OAAmBr3E,GAAW,IAGrE,EAAc8iD,YACbnvD,EAAOrB,OAAOmgD,GAAG,UAAU,SAACyZ,GAC3B,EAAcuC,eAAgB,EAC9B,EAAcn8D,OAAOo7E,YAAY,WACjC,EAAchkB,UAAW,EACzB,EAAcp3D,OAAOw7E,WAAW,kBAC9B9tE,GAAW,IAEf,EAAc8iD,YACbnvD,EAAOrB,OAAOmgD,GAAG,SAAS,SAACyZ,GAC1B,EAAcuC,eAAgB,EAC9B,EAAcn8D,OAAOo7E,YAAY,WACjC,EAAchkB,UAAW,EACzB,EAAcp3D,OAAOw7E,WAAW,kBAC9B9tE,GAAW,KAIf,EAAc8iD,YACbnvD,EAAOrB,OAAOmgD,GAAG,oBAAqB4kC,OAAmBr3E,GAAW,KAKxE,OAAO1M,KAAK2jF,gB,gCAQb,sBAAW,qBAAM,C,IAAjB,sBACC,IAAK3jF,KAAKikF,QAAS,CAClB,IAAI,EAASjkF,KAAK4B,UAAUsiF,QAAQ/gF,SACpCnD,KAAKikF,QAAU,EACf,EAAO92E,OAASnN,KAAKwjF,cACrBxjF,KAAKujF,UAAU,GACfvjF,KAAKkpD,WAAW1qD,KAAK,GAErBwB,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,IAAe,EAAKngD,YACvB,EAAKA,UAAUsiF,QAAQjkC,YAAY,OAItC,OAAOjgD,KAAKikF,S,gCAEd,EAhQA,CAAoCpC,EAAA,GAmRpC,aA6BQ,KAAAsC,cAAwB,GA+FhC,cA4DC,mBACC,cAAO,KACP,EAAKppC,UAAY,SAGjB,EAAKymB,OAAS,OACd,EAAKpY,iBAAiB,oBAAoB,GAC1C,EAAKA,iBAAiB,cAAc,GACpC,EAAKA,iBAAiB,eAAgB,UAGtC,IAAIo6B,EAA2B,IAAI/a,EAAA,EACnC+a,EAAc/7B,eAAgB,EAC9B+7B,EAAclgB,QAAQ,EAAG,EAAG,EAAG,GAC/BkgB,EAAcvgB,OAAO,EAAG,GAAI,EAAG,IAC/BugB,EAAchiB,OAAS,aACvBgiB,EAAc9tB,WAAY,EAC1B8tB,EAAcryB,WAAY,EAC1BqyB,EAAc3mC,KAAO,SACrB2mC,EAAcnO,WAAY,EAC1BmO,EAAcrkB,gBAAkBqV,EAAA,EAAiBrW,QACjDqlB,EAAcze,WAAWnU,YAAc,EAGvC,EAAKgzB,eAAiB,IAAItiC,EAAA,EAAwBkiC,GAClD,EAAKt6B,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAKsiC,iBAC3C,EAAK16B,WAAW1qD,KAAK,EAAKolF,eAAe3iC,UAGzC,EAAKiI,WAAW1qD,KAAK,cAAiBmG,KAAK3F,OAAOmgD,GAAG,SAAS,SAACyZ,GAC9D,GAAI,IAASwrB,MAAMxrB,EAAGzU,MAAO,UAAY,EAAK2/B,YAAa,CAC1D,IAAMA,EAAc,EAAKA,YACnBtiF,EAASsiF,EAAYN,cACvBhiF,EAAO6zE,UACV,EAAKwO,eAAeC,GAEZtiF,EAAOk0D,WAAal0D,EAAOxC,OAAOsC,UAAU,SACpDE,EAAOC,oBAAoB,MAAO,CAAE0iD,MAAOyU,IAI3C,EAAKkrB,YAAcA,MAGnB,IAEH,IAAIhQ,EAAkB,IAAIC,EAAA,EAGtBsQ,EAAoB,IAAI5b,EAAA,EAC5B4b,EAAO/nF,MAAQ,GACf+nF,EAAO9nF,OAAS,GAChB8nF,EAAOv4B,qBAAsB,EAC7Bu4B,EAAO58B,eAAgB,EACvB48B,EAAOjX,oBAAqB,EAC5BiX,EAAOtf,WAAWnU,YAAc,EAChCyzB,EAAOtf,WAAWlU,cAAgB,EAClCwzB,EAAO78B,eAAe9L,KAAO,OAC7B2oC,EAAOjiB,OAAS,SAEhB,IAAIkiB,EAAgBxQ,EAAgBlK,OAAO,sBAE3Cya,EAAOrlF,OAAOmgD,GAAG,cAAc,SAACgF,GAC/B,IACIiyB,EADQjyB,EAAM/E,SACM6N,OAAO9pD,OAAO,UACtCizE,EAAY5rC,WAAW6jB,OAASi2B,EAChClO,EAAY5rC,WAAWkR,KAAO4oC,KAG/B,EAAKJ,QAAU,IAAI5iC,EAAA,EAAwB+iC,GAC3C,EAAKn7B,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAK4iC,UAC3C,EAAKh7B,WAAW1qD,KAAK,EAAK0lF,QAAQjjC,UAGlC,IAAInkD,EAA8BunF,EAAO/a,YAAY6M,EAAA,GACrDr5E,EAAUR,MAAQ,YAAQ,KAC1BQ,EAAUP,OAAS,YAAQ,KAC3BO,EAAU2qD,eAAgB,EAC1B3qD,EAAU0qD,eAAe9L,KAAO,OAChC5+C,EAAU+zD,cAAgB,EAG1B,IAAI9rD,EAAe,IAAIqvE,EAAA,EACvBrvE,EAAMwd,KAAO,SACbxd,EAAMk+D,OAAO,EAAG,EAAG,EAAG,GACtBl+D,EAAMq9D,OAAS,SACfr9D,EAAM0iD,eAAgB,EACtB1iD,EAAMkoD,OAAO9pD,OAAO,UAAUqnC,WAAWkR,KAAOo4B,EAAgBlK,OAAO,sBACvE,EAAK0Z,OAAS,IAAIhiC,EAAA,EAAoBv8C,GACtC,EAAKmkD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAKgiC,SAC3C,EAAKp6B,WAAW1qD,KAAK,EAAK8kF,OAAOriC,UACjCl8C,EAAM+mD,qBAAsB,EAC5B/mD,EAAMw/E,UAAW,EACjBx/E,EAAM0d,WAAY,EAGlB,IAAI+hE,EAAoB,IAAIpQ,EAAA,E,OAC5BoQ,EAAWvhB,OAAO,EAAG,EAAG,EAAG,GAC3BuhB,EAAWpiB,OAAS,SACpBoiB,EAAWloF,MAAQ,GACnBkoF,EAAW/iB,MAAQ,QACnB+iB,EAAWnQ,UAAY,MACvBmQ,EAAW/8B,eAAgB,EAC3B+8B,EAAWv3B,OAAO9pD,OAAO,UAAUqnC,WAAWkR,KAAOo4B,EAAgBlK,OAAO,sBAC5E4a,EAAW14B,qBAAsB,EAEjC,EAAK43B,YAAc,IAAIpiC,EAAA,EAAoBkjC,GAC3C,EAAKt7B,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAKoiC,cAC3C,EAAKx6B,WAAW1qD,KAAK,EAAKklF,YAAYziC,UAEtC,EAAKvlD,SAAW,SAGhB8nF,EAAcv2B,OAAO9pD,OAAO,UAC5BqgF,EAAcpW,oBAAqB,EAGnC,EAAKvwB,KAAO,QAEZ,EAAK79C,OAAOmgD,GAAG,kBAAmB,EAAKslC,gBAAiB,GAAM,GAE9D,EAAK96B,a,EAgaP,OArlB4B,iBA4LjB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,YAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,GAYL,YAAAC,oBAAP,SAA2Bx1B,GAC1B,YAAMw1B,oBAAmB,UAACx1B,GAG1B,IAAIuqB,EAAYvqB,EAASq0B,cAErBa,EAASl1B,EAASk1B,OAEtB,IAAYl1B,EAASpqD,OACrB,IAAIy/E,EAAar1B,EAASq1B,WAG1B9K,EAAUve,cAAgBhM,EAASwK,YAAY9N,QAG/CsD,EAASwK,YAAYirB,eAAiBz1B,EAEtC,IAAI01B,EAAe11B,EAASpqD,MAAMu8D,SAClCnS,EAASpqD,MAAMzI,WAAQoQ,EACpBm4E,EAAe,IACjB11B,EAASpqD,MAAMu8D,SAAWujB,GAEH,SAApBL,EAAW/iB,QACd+iB,EAAWloF,WAAQoQ,GAGpB,IAAIo4E,EAAiB31B,EAASwK,YAAYmrB,eAItCnrB,EAAcxK,EAASwK,aAEvBA,EAAYorB,oBAAwB/kF,KAAKglF,kBAAsBrrB,aAAuB4N,EAAA,GACpFpY,EAASi0B,kBACbzpB,EAAYorB,mBAAmBV,GAC/Bl1B,EAASi0B,iBAAkB,GAIzBzpB,EAAYsrB,mBACftrB,EAAYsrB,oBAGTtrB,EAAY/3D,WAAa+3D,EAAY/3D,UAAUqjF,mBAClDtrB,EAAY/3D,UAAUqjF,kBAAkBtrB,GAGrC6qB,EAAW36C,SACd26C,EAAWn6B,WAGW,IAAnBm6B,EAAWjiE,WAAiC7V,GAAnB83E,EAAWjiE,KACvCiiE,EAAWp4B,YAAa,EAGxBo4B,EAAWp4B,YAAa,GAGrB04B,QAAmDp4E,GAAhCo4E,EAAeI,oBAA0Dx4E,GAA5Bo4E,EAAelpB,YAClF4oB,EAAWp4B,YAAa,GAGzB,IAAIP,EAAUsD,EAASwK,YAAY9N,aAEnBn/C,IAAZm/C,IACHA,GAAU,GAEXA,EAAU,IAAgBA,GAC1BsD,EAASwK,YAAY9N,QAAUA,EAE/B6tB,EAAU16E,OAAOo7E,YAAY,WAE7BV,EAAUtjB,UAAYvK,EAClB6tB,EAAUtjB,SACbsjB,EAAUjtB,SAAS,SAAU,GAG7BitB,EAAUjtB,SAAS,UAAW,GAE/BitB,EAAU16E,OAAOw7E,WAAW,YAItB,YAAAhwB,UAAP,sBACK8W,EAAWthE,KAAKujD,iBAAiB,YACjC4hC,EAAgB,EACpBnlF,KAAKsjF,OAAOp8E,MAAK,SAACnC,GACbA,EAAM8kC,SACT9kC,EAAMslD,WAEHtlD,EAAMouD,cAAgBpuD,EAAM28D,gBAAkB38D,EAAM48D,iBAAmBwjB,IAC1EA,EAAgBpgF,EAAMouD,cAAgBpuD,EAAM28D,gBAAkB38D,EAAM48D,qBAKtE,IAAIyjB,EAAqB,EACzBplF,KAAK0jF,YAAYx8E,MAAK,SAACnC,GAClBA,EAAM8kC,SACT9kC,EAAMslD,WAEHtlD,EAAMouD,cAAgBpuD,EAAM28D,gBAAkB38D,EAAM48D,iBAAmByjB,IAC1EA,EAAqBrgF,EAAMouD,cAAgBpuD,EAAM28D,gBAAkB38D,EAAM48D,qBAI3E,IAAI0jB,EAAiB,EACrBrlF,KAAKkkF,QAAQh9E,MAAK,SAACm9E,GACdA,EAAOx6C,SACVw6C,EAAOh6B,WAEJg6B,EAAOlxB,cAAgBkxB,EAAO3iB,gBAAkB2iB,EAAO1iB,iBAAmB0jB,IAC7EA,EAAiBhB,EAAOlxB,cAAgBkxB,EAAO3iB,gBAAkB2iB,EAAO1iB,qBAG1E,IAEI2jB,EAFA9B,EAAgBxjF,KAAK4jF,eAAe3iC,SACpCgiB,EAASugB,EAAc7hB,iBAAmB6hB,EAAc9hB,gBAExD6jB,EAAeJ,EAAgBC,EAAqBC,EACnD,IAAe/jB,KAInBA,GAAsB2B,GACPsiB,IACdjkB,EAAWikB,GAEZD,EAAwBhkB,EAAW+jB,EAAiBD,GAPpDE,EAAwBH,EAUzBnlF,KAAKsjF,OAAOp8E,MAAK,SAACnC,IACsB,SAAnC,EAAK2+E,YAAYziC,SAASwgB,OAAoB18D,EAAMouD,cAAgBmyB,KACvEvgF,EAAMzI,MAAQ/E,KAAKK,IAAImN,EAAMu8D,SAAUgkB,EAAwBvgF,EAAM28D,gBAAkB38D,EAAM48D,sBAGxD,SAAnC3hE,KAAK0jF,YAAYziC,SAASwgB,OAC7BzhE,KAAK0jF,YAAYx8E,MAAK,SAACs9E,GACtBA,EAAWloF,MAAQ8oF,EAAqBZ,EAAW7iB,iBAAmB6iB,EAAW9iB,mBAInF,YAAMlX,UAAS,YAIN,YAAAi6B,gBAAV,WACC,IAAIe,EAAYxlF,KAAKwlF,UACjBxlF,KAAKylF,YAAcD,IACtBA,EAAUjpF,OAASyD,KAAKozD,eACxBoyB,EAAUlrF,EAAI0F,KAAKmzD,cAAgBqyB,EAAU1zB,WAAa0zB,EAAU9jB,gBAEhE1hE,KAAK4sE,cAAgB5sE,KAAKozD,gBAC7BoyB,EAAU35B,SAAU,EACpB25B,EAAU7P,MAAMp5E,OAASipF,EAAUjpF,OAASyD,KAAKozD,eAAiBpzD,KAAK4sE,cACvE5sE,KAAKgpB,aAAew8D,EAAU1zB,WAAa0zB,EAAU9jB,kBAAoB8jB,EAAU7jB,kBAGnF6jB,EAAU35B,SAAU,EAGrB7rD,KAAK0lF,gBAkBP,sBAAW,uBAAQ,C,IA2BnB,WACC,OAAO1lF,KAAKujD,iBAAiB,a,IA5B9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,KACxB,QAATA,GAA4B,SAATA,GACtBmK,KAAKijE,OAAO,GAAI,EAAG,GAAI,IACvBjjE,KAAKoiE,OAAS,SACdpiE,KAAKosE,aAAe,OACpBpsE,KAAK0jF,YAAYziC,SAASwgB,MAAQ,QAE7B,IAAezhE,KAAKorE,cACxBprE,KAAKorE,WAAa,GAGnBprE,KAAK1D,WAAQoQ,EACb1M,KAAKshE,SAAW,MAGhBthE,KAAKorE,gBAAa1+D,EAClB1M,KAAK1D,MAAQ,YAAQ,KACrB0D,KAAK0jF,YAAYziC,SAASwgB,MAAQ,QAEnCzhE,KAAK0pD,e,gCA2BP,sBAAW,+BAAgB,C,IAO3B,WACC,OAAO1pD,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,I,gCAqBlD,sBAAW,yBAAU,C,IAkErB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAnE9B,SAAsB1tD,GACrB,GAAImK,KAAKopD,iBAAiB,aAAcvzD,GAAO,GAC9C,GAAIA,EAAO,CACV,IAAI2vF,EAAYxlF,KAAKspE,YAAYqc,EAAA,GACjC3lF,KAAKwlF,UAAYA,EACjBA,EAAUh6B,YAAa,EACvBg6B,EAAUhqB,YAAc,WACxBgqB,EAAU5P,QAAQxpB,YAAa,EAC/Bo5B,EAAU3P,UAAUzpB,YAAa,EACjCo5B,EAAU35B,SAAU,EACpB25B,EAAUniB,WAAa,EAEvBrjE,KAAK4lF,oBAAsB5lF,KAAKhB,OAAOmgD,GAAG,QAASn/C,KAAK6lF,YAAa7lF,MAAM,GAC3EA,KAAKkpD,WAAW1qD,KAAKwB,KAAK4lF,qBAE1B5lF,KAAKkpD,WAAW1qD,KAAKgnF,EAAUxmF,OAAOmgD,GAAG,eAAgBn/C,KAAK0lF,YAAa1lF,MAAM,SAG7EA,KAAK4lF,sBACR5lF,KAAK4lF,oBAAoB/lC,UACrB7/C,KAAKwlF,YACRxlF,KAAKwlF,UAAU3lC,UACf7/C,KAAKwlF,eAAY94E,K,gCAYZ,YAAAm5E,YAAV,SAAsB1hC,GACrB,IAAIpR,EAAQoR,EAAMpR,MAAMx4C,EACpBirF,EAAYxlF,KAAKwlF,UACrB,GAAIA,EAAW,CACd,IAAIM,EAAM/yC,EAAQ,IAAO/yC,KAAKozD,eAAiBpzD,KAAK4sE,cAChDmZ,EAAQP,EAAU5rF,IAAM4rF,EAAU/rF,MAClCs5C,EAAQ,GACXyyC,EAAU/rF,MAAQ,IAAU,EAAG+rF,EAAU/rF,MAAQqsF,GACjDN,EAAU5rF,IAAM4rF,EAAU/rF,MAAQssF,IAGlCP,EAAU5rF,IAAM,IAAU,EAAG4rF,EAAU5rF,IAAMksF,GAC7CN,EAAU/rF,MAAQ+rF,EAAU5rF,IAAMmsF,KAQ3B,YAAAL,YAAV,sBACK1lF,KAAKwlF,WACRxlF,KAAK4jF,eAAe18E,MAAK,SAACs8E,GACzBA,EAAcj8D,IAAM,EAAKi+D,UAAU7P,MAAMvuD,OAAS,EAAKwlD,cAAgB,EAAKxZ,eAC5EowB,EAAcn4B,cAAgB,CAAE/wD,EAAG,EAAGC,GAAIipF,EAAcj8D,GAAIjrB,MAAO,EAAK62D,cAAe52D,OAAQ,EAAK62D,oBAmBhG,YAAAywB,eAAP,SAAsB15C,GACrB,IAAIwvB,EAAcxvB,EAAKwvB,aAElBA,EAAY9N,SAAW8N,EAAY/S,UAAa+S,aAAuB4N,EAAA,GAAU5N,EAAYzD,UACjG/rB,EAAK4S,MAAQ5S,EAAK67C,UAElB77C,EAAKq5C,cAAcptB,UAAW,GAEH,IAAvBuD,EAAY3N,SACf2N,EAAY3N,QAAS,GAGlB2N,EAAYkK,KACflK,EAAYkK,OAGZlK,EAAY9N,SAAU,EAGvB7rD,KAAKioB,aAAag+D,YAAYjmF,KAAKu4D,SAASsc,UAAU,WAAY70E,KAAKu4D,SAASxqC,OAAQoc,EAAKplC,MAAM+1D,gBAInG3wB,EAAKq5C,cAAcptB,UAAW,EAE1BuD,EAAY1N,KACf0N,EAAY1N,OAGZ0N,EAAY9N,SAAU,EAGvB7rD,KAAKioB,aAAag+D,YAAYjmF,KAAKu4D,SAASsc,UAAU,YAAa70E,KAAKu4D,SAASxqC,OAAQoc,EAAKplC,MAAM+1D,cACpG3wB,EAAK4S,OAAQ,IAAIg3B,EAAA,GAAoBnK,OAAO,wBAY9C,sBAAW,wBAAS,C,IAApB,a,gCASO,YAAAsc,6BAAP,SAAoC/2B,EAA8B5sD,GACjE4sD,EAASq1B,WAAW96B,aACpByF,EAASpqD,MAAM2kD,cAGjB,EArlBA,CAA4B+wB,EAAA,GA6lB5B,IAASr7E,kBAAT,OAAuC,EAUvC,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBC,QAChC/6E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,IAA8B,QAAnBA,EAAO9F,UAAyC,SAAnB8F,EAAO9F,UAAsB,CAC1F,IAAImM,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW9uC,SAAW,SACrBmM,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBG,SAChCj7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,IAA8B,OAAnBA,EAAO9F,UAAwC,UAAnB8F,EAAO9F,UAAuB,CAC1F,IAAImM,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW9uC,SAAW,QACrBmM,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBQ,KAChCt7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,EAAQ,CAC7B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,Q,oDCphCT,cAqDC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,iBAIjB,EAAKhiD,OAAOlD,MAAQ,GACpB,EAAKkD,OAAOlD,MAAQ,GAEpB,EAAK8zD,a,EA0BP,OAxFoC,iBAyCnC,sBAAW,sBAAO,C,IAAlB,WAKC,OAJK3pD,KAAKmmF,WACTnmF,KAAKmmF,SAAW,IAAIC,EAAA,EACpBpmF,KAAKkpD,WAAW1qD,KAAK,IAAI4nF,EAAA,EAAmBpmF,KAAKmmF,YAE3CnmF,KAAKmmF,U,gCAsBN,YAAAtmC,QAAP,WACC7/C,KAAKqmF,QAAQ98E,QACb,YAAMs2C,QAAO,YAQd,sBAAW,oBAAK,C,IAOhB,WACC,OAAO7/C,KAAKjH,OAAOlD,MAAMA,O,IAR1B,SAAiBA,GAChBmK,KAAKsmF,SAAS,QAASzwF,I,gCASzB,EAxFA,CAAoCgsF,EAAA,GAgMpC,cAiOC,mBACC,cAAO,KAEP,GA/LS,EAAA0E,eAAyB,EAczB,EAAAC,cAAwB,EAkC3B,EAAA1B,eAAiC,IAAI2B,EAKlC,EAAAC,MAAQ,IAAIN,EAAA,EAKZ,EAAAO,MAAQ,IAAIP,EAAA,EAKZ,EAAAQ,MAAQ,IAAIR,EAAA,EAKZ,EAAAS,MAAQ,IAAIT,EAAA,EAUf,EAAAU,gBAAkB,IAAIV,EAAA,EActB,EAAAW,mBAA6B,GAe1B,EAAAC,wBAAkC,EAiCrC,EAAAC,kBAA4B,EAgB5B,EAAAC,gBAA0B,EAQ1B,EAAAvN,aAAuB,EAmBvB,EAAAwN,sBAAgC,EAQlC,EAAKlkF,cAAgBmkF,EACxB,MAAM,IAAIjxF,MAAM,gFAGjB,EAAK4kD,UAAY,SACjB,EAAKyQ,YAAa,EAElB,EAAKgW,OAAS,OACd,EAAK5Y,aAAc,EACnB,EAAKQ,iBAAiB,UAAU,GAEhC,EAAKi+B,WAAa,IAAI/lC,EAAA,EACtB,EAAK+lC,WAAWroF,OAAOmgD,GAAG,WAAY,EAAKmoC,iBAAkB,GAAM,GAEnE,EAAKC,kBAAoB,EACzB,EAAKC,cAAgB,EAAKle,YAAYb,EAAA,GACtC,EAAK+e,cAAc5+B,aAAc,EACjC,EAAK4+B,cAAc51B,KAAO,EAAK0X,YAAY/B,EAAA,GAE3C,EAAKre,WAAW1qD,KAAK,EAAKgpF,eAG1B,IAAIC,EAAmB,EAAKD,cAAcle,YAAYb,EAAA,G,OACtD,EAAKV,eAAevpE,KAAKipF,GACzBA,EAAiB7+B,aAAc,EAC/B6+B,EAAiBjmB,OAAS,OAC1BimB,EAAiBp6B,cAAgB,EACjC,EAAKnE,WAAW1qD,KAAKipF,GACrB,EAAKA,iBAAmBA,EAExB,EAAKj6B,QAAU,IAAIqsB,EAAA,EACnB,EAAKrsB,QAAQH,cAAgB,EAC7B,EAAKnE,WAAW1qD,KAAK,EAAKgvD,SAE1B,EAAKgI,YAAYa,iBAAmB,IAGpC,EAAKlH,SAAW,EAAKu1B,iBACrB,EAAKx7B,WAAW1qD,KAAK,EAAK2wD,UAC1B,EAAKA,SAASvtD,UAAY,EAG1B,EAAKi7C,KAAO,QAEZ,EAAK8M,a,EA8uCP,OA9/C4B,iBAwRpB,YAAAA,WAAP,WACC,YAAMA,WAAU,WACZ,IAAQE,kBAAoB7pD,KAAKynF,mBACpCznF,KAAKynF,iBAAiB1sC,UAAY/6C,KAAK+6C,UAAY,WACnD/6C,KAAKynF,iBAAiB39B,iBAQd,YAAAI,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,YAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,GAQZ,sBAAW,oBAAK,C,IAOhB,WACC,OAAO1kF,KAAK0nF,Q,IARb,SAAiB7xF,GAChBmK,KAAK0nF,OAAS7xF,G,gCAeR,YAAA8xF,eAAP,SAAsBC,KAYZ,YAAAC,cAAV,SAAwB1jC,GAAxB,WACKyjC,EAAiBzjC,EAAM/E,SAC3BwoC,EAAOzmC,YAAa,EAGpBnhD,KAAKhB,OAAOggE,KAAK,iBAAiB,SAACpG,GAC9B,EAAKkvB,mBACRF,EAAOz2B,WAAY,OAUZ,YAAA42B,aAAV,SAAuB5jC,GACtB,IAAIyjC,EAAiBzjC,EAAM3E,SAE3Bx/C,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpB,IAAI64B,EAAa74B,EAASk3B,QAAQnnC,OAAO0oC,EAAO3nF,KAC5C+nF,GACHA,EAAWnoC,aAIb7/C,KAAK0pD,cAQC,YAAAu+B,kBAAP,WACC,YAAMA,kBAAiB,WACvBjoF,KAAKkoF,eAAc,IAWV,YAAAC,cAAV,SAAwBrnF,EAAasnF,GAmBpC,IAAK,IAAI/rF,EAAI+rF,EAAY/rF,GAAK,EAAGA,IAAK,CACrC,IACIxG,EADWmK,KAAKgkF,UAAU7jC,SAAS9jD,GACVgsF,sBAAsBvnF,GACnD,GAAI,IAAejL,GAClB,OAAOA,EAGT,OAAO,MAWE,YAAAyyF,sBAAV,SAAgCxnF,GAC/B,IAAK,IAAIzE,EAAI,EAAGA,EAAI2D,KAAKgkF,UAAU7nF,OAAQE,IAAK,CAC/C,IACIxG,EADWmK,KAAKgkF,UAAU7jC,SAAS9jD,GACVtD,OAAO+H,GAAKjL,MACzC,GAAI,IAAeA,GAClB,OAAOA,EAGT,OAAO,MAQE,YAAA0yF,kBAAV,WACC,YAAMA,kBAAiB,WACvBvoF,KAAKkoF,eAAc,IAUV,YAAAA,cAAV,SAAwBM,GAAxB,WACC,IAAKxoF,KAAKmnF,qBAAsB,CAC/B,IAAInD,EAAYhkF,KAAKgkF,UAEjB,EAAqC,GACrC,EAAmC,GACnC,EAA2C,GAC3C,EAAmC,GACnC,EAAoC,GACpC,EAAoC,GACpC,EAAqC,GACrC,EAAwC,GACxC,EAAqC,GACrC,EAA6C,GAI7C,EAAqB,IAAU,EAAGhkF,KAAKooF,YAC3C,EAAa,IAAU,EAAYpoF,KAAKgkF,UAAU7nF,QAElD,IAAIssF,EAAmB,IAAUzoF,KAAKyoF,SAAUzoF,KAAKgkF,UAAU7nF,QAU/D,GARK,IAAe,KACnB,EAAa,GAGT,IAAessF,KACnBA,EAAWzoF,KAAKgkF,UAAU7nF,QAGvB,EAAa,EAAG,CACnB,IAAI,EAAW6nF,EAAU7jC,SAAS,EAAa,GAE/C,IAAa,EAASpnD,QAAQ,SAAC+H,EAAK/H,GACnC,IAAIlD,EAAgB,EAASwyF,sBAAsBvnF,GAE/C,IAAejL,KAElB,EAASiL,GAAOjL,MAKnB,I,eAASwG,GACR,IAAI,EAAW2nF,EAAU7jC,SAAS9jD,GAElC,IAAa,EAAStD,QAAQ,SAAC+H,EAAK/H,GACnC,IAAIlD,EAAgB,EAASwyF,sBAAsBvnF,GAGnD,GAAI,IAAejL,GAAQ,CAGrB,IAAe,EAAMiL,MACzB,EAAMA,GAAO,GAEd,EAAMA,KAGD,IAAe,EAAIA,MACvB,EAAIA,GAAO,GAEZ,EAAIA,IAAQjL,EAGP,IAAe,EAAYiL,MAC/B,EAAYA,GAAO,GAEpB,EAAYA,IAAQvJ,KAAK6B,IAAIvD,GAGxB,IAAe,EAAKiL,MACxB,EAAKA,GAAOjL,GAIb,EAAMiL,GAAOjL,EAGR,IAAe,EAAIiL,IAInB,EAAIA,GAAOjL,IACd,EAAIiL,GAAOjL,GAJZ,EAAIiL,GAAOjL,EASP,IAAe,EAAKiL,IAIpB,EAAKA,GAAOjL,IACf,EAAKiL,GAAOjL,GAJb,EAAKiL,GAAOjL,EAQR,IAAe,EAAMiL,MACzB,EAAMA,GAAO,EAAKqnF,cAAcrnF,EAAK,IAGjC,IAAe,EAAcA,MACjC,EAAcA,GAAO,EAAKwnF,sBAAsBxnF,IAIjD,EAAS4nF,mBAAmB5nF,EAAKjL,EAAQ,EAAMiL,GAAM,UAGrD,EAAS4nF,mBAAmB5nF,GAAMjL,EAAQ,EAAMiL,IAAQ,EAAMA,GAAO,IAAK,iBAE1E,EAAS4nF,mBAAmB5nF,EAAMjL,EAAQ,EAAciL,GAAO,eAE/D,EAAS4nF,mBAAmB5nF,GAAMjL,EAAQ,EAAciL,IAAQ,EAAcA,GAAO,IAAK,sBAG1F,IAAI6nF,EAAoB,EAAS7nF,GAC5B,IAAe6nF,KACnBA,EAAY9yF,GAGb,EAAS6yF,mBAAmB5nF,EAAKjL,EAAQ8yF,EAAW,kBAEpD,EAASD,mBAAmB5nF,GAAMjL,EAAQ8yF,GAAaA,EAAY,IAAK,yBAGxE,EAAS7nF,GAAOjL,OApFVwG,EAAI,EAAYA,EAAIosF,EAAUpsF,I,EAA9BA,GAyFT,GAAI2D,KAAKinF,iB,gBACC5qF,GACR,IAAI,EAAW2nF,EAAU7jC,SAAS9jD,GAElC,IAAa,EAAStD,QAAQ,SAAC+H,GAC9B,IAAI8nF,EAAe,EAAY9nF,GAE3BjL,EAAgB,EAASwyF,sBAAsBvnF,GAEnD,GAAI,IAAejL,GAClB,GAAI+yF,EAAO,EAAG,CACT,EAAK1B,gBAIJrxF,GAAS+yF,IACZA,EAAO,EAAS7vF,OAAO+H,GAAKjL,OAI9B,IAAI4rB,EAAU5rB,EAAQ+yF,EAAO,IAE7B,EAASF,mBAAmB5nF,EAAK2gB,EAAS,gBAG1C,EAASinE,mBAAmB5nF,EAAK,EAAG,eAxBxC,IAASzE,EAAI,EAAYA,EAAIosF,EAAUpsF,I,EAA9BA,GAmCV,GAAI,EAAa,EAAG,CACnB,IAAI,EAA8B2nF,EAAU7jC,SAAS,EAAa,GAElE,IAAa,EAASpnD,QAAQ,SAAC+H,GAC9B,IAAIjL,EAAQ,EAASkD,OAAO+H,GAAKjL,MAEjC,EAAS6yF,mBAAmB5nF,EAAKjL,EAAQ,EAAKiL,GAAM,UAEpD,EAAS4nF,mBAAmB5nF,GAAMjL,EAAQ,EAAKiL,IAAQ,EAAKA,GAAO,IAAK,oBAK1E,IAAI,EAAqBd,KAAKmvD,SAC9B,IAAa,EAASp2D,QAAQ,SAAC+H,GAC9B,EAAS4nF,mBAAmB5nF,EAAK,EAAIA,GAAM,OAC3C,EAAS4nF,mBAAmB5nF,EAAK,EAAYA,GAAM,eACnD,EAAS4nF,mBAAmB5nF,EAAK,EAAIA,GAAO,EAAMA,GAAM,WACxD,EAAS4nF,mBAAmB5nF,EAAK,EAAKA,GAAM,QAC5C,EAAS4nF,mBAAmB5nF,EAAK,EAAMA,GAAM,SAC7C,EAAS4nF,mBAAmB5nF,EAAK,EAAIA,GAAM,OAC3C,EAAS4nF,mBAAmB5nF,EAAK,EAAKA,GAAM,QAC5C,EAAS4nF,mBAAmB5nF,EAAK,EAAMA,GAAM,cAUzC,YAAAupD,SAAP,WAEI,OACFrqD,KAAK+sD,QAAQxjD,QAGd,IAAWvJ,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GAGvCA,EAAUx+B,cAGX,YAAMA,SAAQ,WACd,IAAIo9B,EAAmBznF,KAAKynF,iBAM5B,GALAA,EAAiB/rC,KAAO17C,KAAK07C,KAC7B+rC,EAAiBp5B,OAASruD,KAAKquD,OAC/Bo5B,EAAiBntF,EAAI0F,KAAKinB,OAC1BwgE,EAAiBltF,EAAIyF,KAAKonB,OAEtBpnB,KAAKynF,iBAAiBrxE,SAASja,OAAS,EAC3C,GAAI6D,KAAKwmF,aAAc,CAGtB,IAAK,IAAInqF,EAAI,EAAGA,EAAI2D,KAAKooF,WAAY/rF,IAAK,EACrC8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,KAEtC8yD,EAASk3B,QAAQn/E,MAAK,SAACpG,EAAK8mF,GAC3BA,EAAOx7B,YAAa,KAKvB,IAAS/vD,EAAI2D,KAAKgkF,UAAU7nF,OAAS,EAAGE,EAAI2D,KAAKyoF,SAAUpsF,IAAK,CAC/D,IAAI8yD,KAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,KAEtC8yD,EAASk3B,QAAQn/E,MAAK,SAACpG,EAAK8mF,GAC3BA,EAAOx7B,YAAa,WAOvBpsD,KAAKynF,iBAAiBrxE,SAASlP,MAAK,SAAC0gF,GACpCA,EAAOx7B,YAAa,KAKvBpsD,KAAK8oF,uBAMC,YAAAA,oBAAP,WACC,GAAI9oF,KAAK8uD,UAAW,CACnB,IAII/6C,EAAO,CAAEzZ,EAJL,EAIWC,EAHX,EAGiB+B,MAFjB0D,KAAK8uD,UAAUwS,SAEY/kE,OAD3ByD,KAAK8uD,UAAUiT,WAGvB/hE,KAAKwtD,QAAQssB,UAAU/lE,KAKf,YAAAg1E,mBAAV,SAA6B55B,EAA6B65B,GACzD,OAAO,GAUD,YAAArE,oBAAP,SAA2Bx1B,GAA3B,WACC,YAAMw1B,oBAAmB,UAACx1B,GAEtBnvD,KAAKwmF,cACHxmF,KAAKk2D,WACTl2D,KAAKynF,iBAAiB57B,SAAU,GAEjC7rD,KAAKqmF,QAAQn/E,MAAK,SAAC8hF,GAElB,IAAIpB,EAAyBz4B,EAASk3B,QAAQnnC,OAAO8pC,EAAe/oF,KAEpE,GAAI,EAAK8oF,mBAAmB55B,EAAU65B,GAAiB,CACtD,IAAKpB,EAAQ,CAEZ,IAAIqB,EAAgBD,EAAexhC,eAAe2C,SAC9CwP,EAAmBxK,EAASwK,YAC5BsvB,GAAiBtvB,IAA8C,IAA/BA,EAAYsvB,IAC/CD,EAAevhC,eAAgB,EAC/BuhC,EAAe7+B,UAAW,EAC1By9B,EAASoB,EAAepgF,QACxBogF,EAAe7+B,UAAW,EAC1B6+B,EAAevhC,eAAgB,GAG/BmgC,EAASoB,EAAepgF,QAGzBg/E,EAAOh/B,aAAc,EACrBuG,EAASo0B,UAAUqE,GAEd,EAAK/7B,UAAW,EAAKjF,UACzBghC,EAAO37B,KAAK,GAId,IAAIi9B,EAAwDtB,EAAOz4B,SACnE,GAAI+5B,GAAmB/5B,EAAU,CAE5B+5B,GACHA,EAAgB7C,QAAQn2B,OAAO84B,EAAe/oF,SAAKyM,GAGpD,IAAI,EAAa,EAAKy8E,eAElBvB,aAAkB,IAChB,IACJ,EAAc,IAAMA,EAAOwB,OAAS,OAASxB,EAAOyB,OAAS,KAG1DzB,EAAO0B,YACVn6B,EAASnwD,OAAOmgD,GAAG,sBAAuByoC,EAAOxvB,eAAgBwvB,GAAQ,GAEzE,EAAKz4B,SAASnwD,OAAOmgD,GAAG,sBAAuByoC,EAAOxvB,eAAgBwvB,GAAQ,IAE/EA,EAAOxvB,kBAIJwvB,EAAOz2B,YACVy2B,EAAO5oF,OAAOmgD,GAAG,SAAS,SAACyZ,GAC1BgvB,EAAO9sB,YAAc,EAAKhC,eAAe,EAAY8uB,EAAOz4B,iBAC1DziD,GAAW,GACdk7E,EAAO5oF,OAAOmgD,GAAG,QAAQ,SAACyZ,GACzBgvB,EAAO9sB,YAAc,UACnBpuD,GAAW,IAEXk7E,EAAOnyB,YACVmyB,EAAO5oF,OAAOmgD,GAAG,QAAQ,SAACyZ,GACzBgvB,EAAO9sB,YAAc,EAAKhC,eAAe,EAAY8uB,EAAOz4B,iBAC1DziD,GAAW,GACdk7E,EAAO5oF,OAAOmgD,GAAG,OAAO,SAACyZ,GACxBgvB,EAAO9sB,YAAc,UACnBpuD,GAAW,IAKhBk7E,EAAOz6E,OAAS,EAAKs6E,iBACrBt4B,EAASk3B,QAAQn2B,OAAO84B,EAAe/oF,IAAK2nF,GAG5CA,EAAOtmB,SAAWnS,EAASo6B,UAC3B3B,EAAO7lB,UAAY5S,EAASq6B,WAC5B5B,EAAOx7B,YAAa,EAEpB,EAAKu7B,eAAeC,QAGhBA,IACHA,EAAOx7B,YAAa,OAMvBpsD,KAAKynF,iBAAiB57B,SAAU,GAS3B,YAAA49B,iCAAP,SAAwCt6B,EAA8B5sD,GAChEvC,KAAK0pF,kBACT1pF,KAAK2pF,2BAUP,sBAAW,2BAAY,C,IAQvB,WACC,OAAO3pF,KAAKumF,e,IATb,SAAwB1wF,GACvBmK,KAAKumF,cAAgB1wF,EACrBmK,KAAK4pF,uB,gCAeC,YAAAC,WAAP,aAWU,YAAAvC,iBAAV,SAA2BnjC,GAErBnkD,KAAK8pF,kBACT9pF,KAAK8pF,gBAAkB9pF,KAAKspE,YAAYb,EAAA,GACxCzoE,KAAK8pF,gBAAgBlhC,aAAc,EACnC5oD,KAAK8pF,gBAAgBt+B,YAAa,GAGnC,IAAIq9B,EAA0B1kC,EAAM/E,SAChCypC,IACHA,EAAUkB,SAAS58E,OAASnN,KAAK8pF,gBACjCjB,EAAUmB,SAAU,EACpBnB,EAAU7pF,OAAOmgD,GAAG,eAAgBn/C,KAAK4pF,oBAAqB5pF,MAAM,KAY/D,YAAAiqF,aAAP,SAAoBC,KAWb,YAAAC,sBAAP,SAA6BC,EAAmBC,KAsBhD,sBAAW,gCAAiB,C,IAO5B,WACC,OAAOrqF,KAAKujD,iBAAiB,sB,IAR9B,SAA6B1tD,GAC5BmK,KAAKopD,iBAAiB,oBAAqBvzD,GAAO,I,gCAqBnD,sBAAW,sBAAO,C,IAAlB,WAUC,OATKmK,KAAKmmF,WACTnmF,KAAKmmF,SAAW,IAAI7kC,EAAA,EAAqB,IAAI,GAC7CthD,KAAKmmF,SAASllC,SAASoM,cAAgBrtD,KACvCA,KAAKmmF,SAASnnF,OAAOmgD,GAAG,WAAYn/C,KAAK6nF,cAAe7nF,MAAM,GAC9DA,KAAKmmF,SAASnnF,OAAOmgD,GAAG,UAAWn/C,KAAK+nF,aAAc/nF,MAAM,GAE5DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKmmF,WAC3CnmF,KAAKkpD,WAAW1qD,KAAKwB,KAAKmmF,SAASllC,WAE7BjhD,KAAKmmF,U,gCAUN,YAAApB,mBAAP,SAA0BV,KAW1B,sBAAW,6BAAc,C,IAWzB,WACC,OAAOrkF,KAAKujD,iBAAiB,mB,IAZ9B,SAA0B1tD,GACrBmK,KAAKopD,iBAAiB,iBAAkBvzD,IACvCmK,KAAK46E,OACR56E,KAAK46E,MAAM2H,c,gCAiBd,sBAAW,mBAAI,C,IAef,WACC,OAAOviF,KAAKujD,iBAAiB,S,IAhB9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAE9B,IAAI+uF,EAAiB5kF,KAAK4kF,eACtBA,IACHA,EAAehjF,UAAU8nD,aACzBk7B,EAAehjF,UAAU0oF,qBAG1BtqF,KAAK86D,YAAcjlE,G,gCAqBpB,sBAAW,6BAAc,C,IAQzB,WAGC,IAAI00F,EAAavqF,KAAKwqF,gBAetB,OAZKD,IAGAvqF,KAAKg0D,YACRu2B,EAAa,IAAiBvqF,KAAKg0D,aAE3Bh0D,KAAKi0D,cACbs2B,EAAa,IAAiBvqF,KAAKi0D,eAKhCj0D,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkB8mF,GAHvCA,G,IA3BT,SAA0B10F,GACzBmK,KAAKwqF,gBAAkB30F,EACvBmK,KAAKgnF,wBAAyB,G,gCAwCxB,YAAAc,eAAP,WACC,QAAO9nF,KAAKgkF,UAAU7nF,QAAU6D,KAAK+mF,qBAQtC,sBAAW,6BAAc,C,IAQzB,WACC,OAAO/mF,KAAKyqF,iB,IATb,SAA0B50F,GACzBmK,KAAKyqF,gBAAkB50F,EACvBmK,KAAKyqF,gBAAgBjH,cAAcprB,kB,gCAgB7B,YAAA6sB,kBAAP,SAAyB91B,EAA8Bu7B,GAEtD,GAAI1qF,KAAK4kF,eAAgB,CAExB,IAAIE,EAAiC9kF,KAAK8kF,eACtCF,EAAiB5kF,KAAK4kF,eACtB7/E,EAAe6/E,EAAe7/E,MAC9By/E,EAAoBI,EAAeJ,WAGnCr1B,GAAYu7B,GACXlG,IACCM,EAAeI,gBAClBV,EAAWjiE,KAAOuiE,EAAeI,eAElCV,EAAWr1B,SAAWA,GAEnBpqD,IACC+/E,EAAe6F,gBAClB5lF,EAAMwd,KAAOuiE,EAAe6F,eAE7B5lF,EAAMoqD,SAAWA,KAIdpqD,KAEC+/E,EAAe8F,gBAA6Cl+E,GAAhCo4E,EAAe6F,iBAC9C5lF,EAAMwd,KAAOuiE,EAAe8F,WAE7B7lF,EAAMoqD,SAAWnvD,KAAKmvD,UAEnBq1B,KACCM,EAAelpB,gBAA6ClvD,GAAhCo4E,EAAeI,iBAC9CV,EAAWjiE,KAAOuiE,EAAelpB,WAElC4oB,EAAWr1B,SAAWnvD,KAAKmvD,aAWxB,YAAAtO,SAAP,SAAgB//B,GACf9gB,KAAKqmF,QAAQxlC,SAAS//B,EAAOulE,SAC7BrmF,KAAKynF,iBAAiB5mC,SAAS//B,EAAO2mE,kBACtCznF,KAAKinF,iBAAmBnmE,EAAOmmE,iBAC/BjnF,KAAKknF,eAAiBpmE,EAAOomE,eAC7BlnF,KAAKmnF,qBAAuBrmE,EAAOqmE,qBACnC,YAAMtmC,SAAQ,UAAC//B,IAST,YAAA8kD,mBAAP,SAA0BvhE,GACrBrE,KAAK0nF,QAAU1nF,KAAK0nF,OAAO3mB,QAC9B/gE,KAAK0nF,OAAO3mB,MAAM+E,QAAU9lE,KAAK0nF,OAAOx6B,QAAQzpD,MAAM,gBAAiBY,GAAG0hE,QAC1E/lE,KAAK0nF,OAAO3mB,MAAM8E,UAAW,EACxB,IAAQG,gBACZhmE,KAAK0nF,OAAO3mB,MAAMvB,OAEnBx/D,KAAK0nF,OAAOv9B,UAAW,GAGpB,IAAQ8b,SACXh1C,QAAQi1C,IAAI7hE,IAUJ,YAAAunD,aAAV,sBACC,YAAMA,aAAY,WAClB5rD,KAAKynF,iBAAiB16B,QAAQxjD,QAG9B,IAAWvJ,KAAK+sD,QAAQ1nD,YAAY,SAAC2nB,GACpC,EAAKy6D,iBAAiB16B,QAAQvuD,KAAKwuB,EAAOpkB,aAmD5C,sBAAW,wBAAS,C,IAApB,sBAmJC,OAlJK5I,KAAK6qF,aACT7qF,KAAK6qF,WAAa,IAAIvpC,EAAA,EACtBthD,KAAK6qF,WAAW7rF,OAAOmgD,GAAG,YAAY,SAACgF,GACtC,IAAI2mC,EAAW3mC,EAAM/E,SACjB59C,EAASspF,EAAStpF,OAEtB,GAAIA,EAAQ,CACX,IAAI,EAAYspF,EAASC,UAEpB,IAAe,KACnB,EAAY,SAGb,IAAI,EAAiB,EAAK57B,SACtB,EAAW27B,EAASzgD,SAEpB/xC,EAAW,IAAewyF,EAASxyF,UACnCC,EAAW,IAAeuyF,EAASvyF,UAElC,IAAeD,IAAc,IAAeC,IAChD,EAAK42D,SAASnwD,OAAOmgD,GAAG,0BAA0B,SAACgF,GAC9CA,EAAM9Z,UAAY,GACrB,IAAW,EAAK25C,UAAU3+E,YAAY,SAAC8pD,GACtC,IAAI67B,GAAc,EAClB,IAAY77B,EAASroC,SAAS,SAACzmB,GAC9B,GAAIA,EAAOiuD,YAAc9sD,EAAQ,CAChC,IAAIypF,EAAiB5qF,EACrB4qF,EAAU,GAAYA,EAAU,GAChCD,GAAc,MAIXA,GACJ,IAAY77B,EAASroC,SAAS,SAACzmB,GAC1BA,aAAkBooE,EAAA,GACrB,IAAWpoE,EAAO+V,SAAS/Q,YAAY,SAACspD,GACvC,GAAIA,EAAM5T,WAAav5C,EAAOu5C,UAAW,CACxC,IAAImwC,EAAgBv8B,EACpBu8B,EAAS,GAAYA,EAAS,QAGtBv8B,aAAiB8Z,EAAA,GACzB9Z,EAAMyJ,6BAWf,EAAK4rB,UAAU/iC,SAASjiD,OAAOmgD,GAAG,uBAAuB,SAACgF,GACzD,GAAIA,EAAM9Z,UAAY,EAAW,CAChC,IAAI8kB,EAAWhL,EAAM3iD,OACjB,GAAc,EAClB,IAAY2tD,EAASroC,SAAS,SAACzmB,GAC9B,GAAIA,EAAOiuD,YAAc9sD,EAAQ,CAChC,IAAIypF,EAAiB5qF,EACrB4qF,EAAU,GAAYA,EAAU,GAChC,GAAc,MAIX,GACJ,IAAY97B,EAASroC,SAAS,SAACzmB,GAC1BA,aAAkBooE,EAAA,GACrB,IAAWpoE,EAAO+V,SAAS/Q,YAAY,SAACspD,GACvC,GAAIA,EAAM5T,WAAav5C,EAAOu5C,UAAW,CACxC,IAAImwC,EAAgBv8B,EACpBu8B,EAAS,GAAYA,EAAS,QAGtBv8B,aAAiB8Z,EAAA,GACzB9Z,EAAMyJ,2BAUb52D,EAAO0rD,QAAQ5jD,IAAS,GAAU,SAACzT,EAAOs1F,EAAY9gD,GAErD,IAAI/xC,EAAW,IAAewyF,EAASxyF,UACnCC,EAAW,IAAeuyF,EAASvyF,UAEnCX,EAAMkzF,EAASlzF,IACfC,EAAMizF,EAASjzF,IAEnB,GAAIszF,aAAsB5jB,EAAA,EAAQ,CACjC,IACI6jB,EADiBD,EACS3jC,eAAend,GAC7C,GAAI+gD,GAAiBD,EAAWh8B,SAAU,CACzC,IAAIwK,EAAmBwxB,EAAWh8B,SAASwK,YAC3C,GAAIA,GAAe,IAAeA,EAAYyxB,IAC7C,OAAOv1F,GAKV,IAAIs5D,EAA2Cg8B,EAAWh8B,SAU1D,IARK,IAAe72D,KACnBA,EAAW,EAAeS,OAAO,GAAWunD,KAGxC,IAAe/nD,KACnBA,EAAW,EAAeQ,OAAO,GAAWwnD,MAGzC4O,IACeA,EAASp2D,OAAO,GACjB,CAChB,IAAIsyF,EAAel8B,EAASk5B,sBAAsB,GAClD,GAAI,IAAezwF,IAAQ,IAAeC,IAAQ,IAAeS,IAAa,IAAeC,IAAa,IAAe8yF,GAAe,CAEvI,IAAI5pE,OAAO,EAYX,GAVCA,EADEqpE,EAASQ,aACA/zF,KAAK2uE,IAAImlB,GAAgB9zF,KAAKg0F,OAASh0F,KAAK2uE,IAAI5tE,GAAYf,KAAKg0F,SAAYh0F,KAAK2uE,IAAI3tE,GAAYhB,KAAKg0F,OAASh0F,KAAK2uE,IAAI5tE,GAAYf,KAAKg0F,SAG1IF,EAAe/yF,IAAaC,EAAWD,GAG/C,IAAe+yF,KAAkB,IAAe5pE,KACnDA,EAAU,IAGP,IAAe7pB,GAClB,OAAOA,GAAOC,EAAMD,GAAO6pB,EAEvB,GAAI7pB,aAAeqlD,EAAA,EACvB,OAAO,IAAIA,EAAA,EAAM,IAAoBrlD,EAAI2lD,IAAK1lD,EAAI0lD,IAAK97B,KAK3D,OAAO5rB,UAKJmK,KAAK6qF,Y,gCASN,YAAA1kB,cAAP,SAAqB33D,GAEpB,IAAIg9E,EAEJ,GAAIh9E,EAAQ,CAGX,GAAI,IAAeA,EAAO63E,UAAY,IAAc73E,EAAO63E,SAC1D,IAAK,IAAIhqF,EAAI,EAAGgV,EAAM7C,EAAO63E,QAAQlqF,OAAQE,EAAIgV,EAAKhV,IAAK,CAC1D,IAAIgqF,EAAU73E,EAAO63E,QAAQhqF,GACxB,IAAegqF,EAAQ9kF,QAC3B8kF,EAAQ9kF,KAAO,UAOd,IAAeiN,EAAOg9E,YAAc,IAAch9E,EAAOg9E,aAC5DA,EAAYh9E,EAAOg9E,iBACZh9E,EAAOg9E,WAQhB,GAHA,YAAMrlB,cAAa,UAAC33D,GAGhBg9E,EAAW,CACd,IAASnvF,EAAI,EAAGgV,EAAMm6E,EAAUrvF,OAAQE,EAAIgV,EAAKhV,IAAK,CACrD,IAAIovF,EAAOD,EAAUnvF,GAGjBmF,EAAcxB,KAClB,GAAI,IAAeyrF,EAAKjqF,SAAW,IAAeiqF,EAAKjqF,QAItD,GAAIxB,KAAKkrB,IAAIizB,OAAOstC,EAAKjqF,QACxBA,EAASxB,KAAKkrB,IAAIg0B,OAAOusC,EAAKjqF,aAI9B,IADA,IAAIuhB,EAAQ0oE,EAAKjqF,OAAOygB,MAAM,KACrB3nB,EAAI,EAAGA,EAAIyoB,EAAM5mB,OAAQ7B,IACjC,GAAIkH,aAAkB8/C,EAAA,EAAM,CAC3B,IAAIoqC,EAAWlqF,EAAO2+C,SAAS,IAAep9B,EAAMzoB,KAKnDkH,EAJIkqF,GACWlqF,EAAQuhB,EAAMzoB,SAO9BkH,EAASA,EAAOuhB,EAAMzoB,IAK1BmxF,EAAKjqF,OAASA,EAGV,IAAeiqF,EAAK7zF,OACvB6zF,EAAK7zF,IAAMoI,KAAK2rF,oBAAoBF,EAAK7zF,MAEtC,IAAe6zF,EAAK5zF,OACvB4zF,EAAK5zF,IAAMmI,KAAK2rF,oBAAoBF,EAAK5zF,MAI3C,YAAMsuE,cAAa,UAAC,CACnBqlB,UAAWA,MA+BJ,YAAA7kB,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAGM,aAAL1L,EACD,EAEM,aAAL0L,GACA,EAGD,YAAMkkE,YAAW,UAAC5vE,EAAG0L,IAavB,YAAA0zD,cAAP,SAAqBtgE,GACpB,YAAMsgE,cAAa,UAACtgE,GACpBmK,KAAKynF,iBAAiB57B,QAAUh2D,GAElC,EA9/CA,CAA4B4kF,EAAA,GAsgD5B,IAASr7E,kBAAT,OAAuC,EACvC,IAASA,kBAAT,eAA+C,E,aCjuD/C,cAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,sBACjB,EAAK4O,a,EAGP,OAhByC,iBAgBzC,EAhBA,CAAyC,GA8EzC,cA8CC,mBAGC,cAAO,KACP,EAAK5O,UAAY,cAEjB,EAAKK,OAAS,IAAIwwC,EAAA,EAElB,EAAKC,WAAY,EAGjB,IAAIC,EAA6B,EAAK5J,eAAe5Y,YAAYb,EAAA,GACjEqjB,EAAgBljC,aAAc,EAC9BkjC,EAAgBxvF,MAAQ,YAAQ,KAChCwvF,EAAgBvvF,OAAS,YAAQ,KACjCuvF,EAAgBtgC,YAAa,EAC7BsgC,EAAgBtqB,OAAS,OACzBsqB,EAAgB5iB,OAAS,EACzB,EAAK4iB,gBAAkBA,EAGvB,IAAIrE,EAA8B,EAAKvF,eAAe5Y,YAAYb,EAAA,G,OAClEgf,EAAiB7+B,aAAc,EAC/B6+B,EAAiBnrF,MAAQ,YAAQ,KACjCmrF,EAAiBlrF,OAAS,YAAQ,KAClCkrF,EAAiBj8B,YAAa,EAC9Bi8B,EAAiBve,OAAS,EAC1Bue,EAAiBjmB,OAAS,OAC1B,EAAKimB,iBAAmBA,EAIxB,EAAK99B,a,EAuOP,OArTiC,iBAiFzB,YAAA9J,QAAP,WACC,YAAMA,QAAO,WAET7/C,KAAKo7C,QACRp7C,KAAKo7C,OAAOyE,UAGT7/C,KAAK+rF,UACR/rF,KAAK+rF,SAASlsC,WAQN,YAAAqK,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,kBAU7C,sBAAW,qBAAM,C,IAAjB,WAQC,OAPK70E,KAAKgsF,UACThsF,KAAKgsF,QAAU,IAAI1qC,EAAA,EAAkCthD,KAAKisF,gBAC1DjsF,KAAKgsF,QAAQhtF,OAAOmgD,GAAG,WAAYn/C,KAAKksF,kBAAmBlsF,MAAM,GACjEA,KAAKgsF,QAAQhtF,OAAOmgD,GAAG,UAAWn/C,KAAKmsF,oBAAqBnsF,MAAM,GAClEA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKgsF,SAAS,IACpDhsF,KAAKkpD,WAAW1qD,KAAKwB,KAAKgsF,QAAQ/qC,WAE5BjhD,KAAKgsF,S,gCAGH,YAAAG,oBAAV,SAA8BhoC,GAC7B,IAAIioC,EAASjoC,EAAM3E,SACnBx/C,KAAKqsF,UAAUpsC,YAAYmsC,GAC3BpsF,KAAKqsF,UAAUnlF,MAAK,SAAColF,GACpBA,EAAS1C,yBAGNwC,EAAOzS,YACVyS,EAAOvsC,WAGPusC,EAAOj/E,YAAST,EAChB0/E,EAAO3E,iBAAiBt6E,YAAST,GAGlC,IAAI41E,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CAEX,IADA,IAAI0B,EAAYhkF,KAAKsiF,OAAO0B,UACnB3nF,EAAI2nF,EAAU7nF,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAC/C,IAAI8yD,EAAW60B,EAAU7jC,SAAS9jD,GAC9B8yD,GAAYA,EAASwK,aAAeyyB,GACvC9J,EAAO0B,UAAUv4D,OAAO0jC,GAI1B,IAAS9yD,EAAIimF,EAAOjhF,KAAKlF,OAAS,EAAGE,GAAK,EAAGA,IAAK,CACjD,IAAIkwF,EAAKjK,EAAOjhF,KAAKhF,GACjBkwF,GAAMA,GAAMH,GACf,IAAc9J,EAAOjhF,KAAMkrF,MAaxB,YAAAL,kBAAP,SAAyB/nC,GAAzB,WACKioC,EAAiBjoC,EAAM/E,SACvBgtC,EAAOvqC,eAGXuqC,EAAOxR,MAAQ56E,KACfosF,EAAOj/E,OAASnN,KAAK8rF,gBAErBM,EAAO3E,iBAAiBt6E,OAASnN,KAAKynF,iBAEtCznF,KAAKwsF,WAAW5rC,UAAUwrC,GAC1BA,EAAO58B,YAAY,IAAIzN,EAAA,GAAS,WAC/B,EAAKsqC,UAAUpsC,YAAYmsC,OAG5BpsF,KAAKysF,mBAAmBL,GAEnBA,EAAOM,gBACP1sF,KAAKsiF,QACRtiF,KAAKsiF,OAAOqK,QAAQP,KAKb,YAAAK,mBAAV,SAA6BL,GAA7B,WACMpsF,KAAK2tE,aACT3tE,KAAKkpD,WAAW1qD,KAEf,IAASQ,OAAOggE,KAAK,aAAa,WAC5BotB,EAAO/qF,MAA8B,GAAtB+qF,EAAO/qF,KAAKlF,SAC/BiwF,EAAO/qF,KAAO,EAAKA,KACf+qF,EAAOrgC,aACVqgC,EAAO5/B,SACP4/B,EAAOhjC,iBAAiB,cAAc,GACtCgjC,EAAOrgC,YAAa,GAGrBqgC,EAAOptF,OAAOggE,KAAK,iBAAiB,WAC/BotB,EAAO/qF,MAAQ,EAAKA,OACjB+qF,EAAQxkD,MAAQ,aAatB,YAAA26C,WAAP,WACC,IAAID,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CACX,IAAI,EAAyC,GAE7C,IAAWtiF,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GAC9BA,EAAOM,gBACX,EAAWluF,KAAK4tF,MAIlB9J,EAAOsK,WAAWrqF,KAAO,OAEzB+/E,EAAOjhF,KAAO,IASN,YAAA4qF,aAAV,WACC,OAAO,IAAI,GAiBZ,sBAAW,qBAAM,C,IAOjB,WACC,OAAOjsF,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAenC,YAAAgrD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKosF,OAAOvrC,SAAS//B,EAAOsrE,SAOtB,YAAArlB,OAAP,WACC,YAAMA,OAAM,WAEZ/mE,KAAKosF,OAAOllF,MAAK,SAACklF,GACbA,EAAOrgC,YAAcqgC,EAAOx3B,QAC/Bw3B,EAAOrlB,aAIX,EArTA,CAAiC,GA6TjC,IAAS3nE,kBAAT,YAA4C,E,aCrV5C,cAkEC,mBAGC,cAAO,KA5CE,EAAAytF,MAAQ,IAAI,IAoBf,EAAA7I,UAAgC,IAAI1iC,EAAA,EAyB1C,EAAKvG,UAAY,YAGjB,EAAK+xC,UAAY,IACjB,EAAKzpB,YAAc,EACnB,EAAKF,aAAe,EACpB,EAAKD,WAAa,EAClB,EAAKE,cAAgB,EAErB,IAAI0Q,EAAkB,IAAIC,EAAA,EAItBgZ,EAAY,IAAIC,EAAA,EACpBD,EAAUrxC,KAAOo4B,EAAgBlK,OAAO,cACxCmjB,EAAU1+B,OAAS,cACnB0+B,EAAUn8B,YAAc,GACxBm8B,EAAU7jB,OAAS,EACnB,EAAK+jB,WAAaF,EAElB,IAAIG,EAAY,IAAIF,EAAA,EACpBE,EAAUxxC,KAAO,cACjBwxC,EAAU7+B,OAASylB,EAAgBlK,OAAO,QAC1CsjB,EAAUr8B,cAAgB,GAC1Bq8B,EAAUhkB,OAAS,EACnB,EAAKikB,WAAaD,EAElB,IAAIE,EAAU,IAAIJ,EAAA,E,OAClBI,EAAQ1xC,KAAO,cACf0xC,EAAQ/+B,OAAS,YAAM,WACvB++B,EAAQv8B,cAAgB,GACxBu8B,EAAQlkB,OAAS,EACjB,EAAKmkB,SAAWD,EAEhB,EAAKlkC,WAAW1qD,KAAK,EAAKquF,OAG1B,EAAKljC,a,EA2PP,OAtW+B,iBA8GvB,YAAA9J,QAAP,WACC,YAAMA,QAAO,WAET7/C,KAAKitF,YACRjtF,KAAKitF,WAAWptC,UAGb7/C,KAAKmtF,YACRntF,KAAKmtF,WAAWttC,UAGb7/C,KAAKqtF,UACRrtF,KAAKqtF,SAASxtC,WAShB,sBAAW,wBAAS,C,IAWpB,WACC,OAAO7/C,KAAKmtF,Y,IAZb,SAAqB9sF,GAChBL,KAAKmtF,YACRntF,KAAKmtF,WAAWttC,UAEjB7/C,KAAKmtF,WAAa9sF,EAClBL,KAAKstF,eAAejtF,I,gCAerB,sBAAW,sBAAO,C,IAWlB,WACC,OAAOL,KAAKqtF,U,IAZb,SAAmBhtF,GACdL,KAAKqtF,UACRrtF,KAAKqtF,SAASxtC,UAEf7/C,KAAKqtF,SAAWhtF,EAChBL,KAAKstF,eAAejtF,I,gCAerB,sBAAW,wBAAS,C,IAYpB,WACC,OAAOL,KAAKitF,Y,IAbb,SAAqB5sF,GAChBL,KAAKitF,YACRjtF,KAAKitF,WAAWptC,UAGjB7/C,KAAKitF,WAAa5sF,EAClBL,KAAKstF,eAAejtF,I,gCAiBd,YAAAitF,eAAP,SAAsBjtF,GACrBA,EAAO8M,OAASnN,KAChBK,EAAOmrD,YAAa,EACpBxrD,KAAKkpD,WAAW1qD,KAAK6B,IAQtB,sBAAW,mBAAI,C,IAiBf,WACC,OAAOL,KAAK6sF,MAAM3rF,O,IAlBnB,SAAgBgpF,GACf,GAAIlqF,KAAK6sF,MAAM3rF,QAAUgpF,EAAM,CAC9BlqF,KAAK6sF,MAAM7rF,IAAIkpF,EAAMA,EAAKqD,SAASC,cAAcxuF,OAAOmgD,GAAG,cAAen/C,KAAK0pD,WAAY1pD,MAAM,IACjGkqF,EAAKqD,SAASE,mBAAmBztF,MAGjC,IAAI0tF,EAA2BxD,EAAKyD,WAAW1sC,SAE/CjhD,KAAKktF,UAAUrsC,SAAS6sC,EAAcR,WACtCltF,KAAKotF,QAAQvsC,SAAS6sC,EAAcN,SACpCptF,KAAK+sF,UAAUlsC,SAAS6sC,EAAcX,a,gCAwBxC,sBAAW,wBAAS,C,IAYpB,WACC,OAAO/sF,KAAKujD,iBAAiB,c,IAb9B,SAAqB1tD,GAChBmK,KAAKopD,iBAAiB,YAAavzD,IAClCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKxgC,aACV1pD,KAAKkqF,KAAK0D,qB,gCAiBb,sBAAW,yBAAU,C,IAArB,WACC,IAAIL,EAAyBvtF,KAAKkqF,KAAKqD,SACvC,GAAIA,EACH,OAAOA,EAASM,gBAAgB7tF,KAAK8tF,gB,gCASvC,sBAAW,uBAAQ,C,IAAnB,WACC,IAAIP,EAAyBvtF,KAAKkqF,KAAKqD,SACvC,GAAIA,EACH,OAAOA,EAASM,gBAAgB7tF,KAAK+tF,c,gCAYvC,sBAAW,4BAAa,C,IAAxB,a,gCAYA,sBAAW,0BAAW,C,IAAtB,a,gCASO,YAAAxjC,KAAP,YACC,YAAMA,KAAI,WACNvqD,KAAKkqF,OACqBlqF,KAAKkqF,KAAKqD,SAC9BS,mBAAmBhuF,OAS9B,sBAAW,yBAAU,C,IAYrB,WACC,OAAOA,KAAKujD,iBAAiB,e,IAb9B,SAAsB1tD,GACjBmK,KAAKopD,iBAAiB,aAAcvzD,IACnCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKxgC,aACV1pD,KAAKkqF,KAAK0D,qB,gCAiBb,sBAAW,uBAAQ,C,IAYnB,WACC,OAAO5tF,KAAKujD,iBAAiB,a,IAb9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,IACjCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKxgC,aACV1pD,KAAKkqF,KAAK0D,qB,gCAYd,EAtWA,CAA+BnlB,EAAA,GA8W/B,IAASrpE,kBAAT,UAA0C,E,ICoT9B6uF,E,kBAzrBZ,cA2JC,mBACC,cAAO,K,OACP,EAAKlzC,UAAY,eACjB,EAAK4O,a,EAqgBP,OAnqBkC,iBAgLjC,sBAAW,mBAAI,C,IAmBf,WACC,IAAK3pD,KAAKkuF,MAAO,CAChB,IAAI,EAAYluF,KAAK4B,UACrB,GAAI,EAAW,CAEd,IACI,EADAq/C,OAAQ,EAGZ,GAAIjhD,KAAKgqF,QAAS,CAEjB,IADA/oC,EAAW,EAAUomC,WAAWpmC,SAASktC,MAC5BhkC,SACZ,OAGA,EAAOlJ,EAASr4C,YAGb,CAEJ,IADAq4C,EAAW,EAAUssC,SAASY,KAAKltC,UACtBkJ,SACZ,OAGA,EAAO,EAAUojC,SAASY,KAAKhrF,SAC/BnD,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WACjC,EAAUwrC,SAASY,KAAKluC,YAAY,OAKvCjgD,KAAKmuF,KAAO,EACZ,EAAKvlC,aAAc,EACnB5oD,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAK0rF,KAAOlqF,KAAK4B,WAGnB,OAAO5B,KAAKkuF,O,IAvDb,SAAgBC,GACXnuF,KAAKkuF,OAASluF,KAAKkuF,OAASC,IAC/B,IAAcnuF,KAAK8mB,QAAS9mB,KAAKkuF,OACjCluF,KAAKkuF,MAAM/+B,cAAWziD,GAGnByhF,IACCA,EAAKh/B,UAAYg/B,EAAKh/B,UAAYnvD,OACrC,IAAcmuF,EAAKh/B,SAASroC,QAASqnE,GACrCA,EAAKh/B,SAASg/B,UAAOzhF,GAEtB1M,KAAKujF,UAAU4K,IAEhBnuF,KAAKkuF,MAAQC,G,gCAqDd,sBAAW,mBAAI,C,IAmBf,WACC,IAAKnuF,KAAKouF,MAAO,CAChB,IAAI,EAAYpuF,KAAK4B,UACrB,GAAI,EAAW,CAEd,IACI,EADAq/C,OAAQ,EAGZ,GAAIjhD,KAAKgqF,QAAS,CAEjB,IADA/oC,EAAW,EAAUomC,WAAWpmC,SAASotC,MAC5BlkC,SACZ,OAGA,EAAOlJ,EAASr4C,YAGb,CAEJ,IADAq4C,EAAW,EAAUssC,SAASe,MAAMrtC,UACvBkJ,SACZ,OAGA,EAAO,EAAUojC,SAASe,MAAMnrF,SAChCnD,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WACjC,EAAUwrC,SAASe,MAAMruC,YAAY,OAKxCjgD,KAAKquF,KAAO,EACZ,EAAKnE,KAAOlqF,KAAK4B,UACjB,EAAKgnD,aAAc,EACnB5oD,KAAKkpD,WAAW1qD,KAAK,IAGvB,OAAOwB,KAAKouF,O,IAvDb,SAAgBC,GACXruF,KAAKouF,OAASpuF,KAAKouF,OAASC,IAC/B,IAAcruF,KAAK8mB,QAAS9mB,KAAKouF,OACjCpuF,KAAKouF,MAAMj/B,cAAWziD,GAGnB2hF,IACCA,EAAKl/B,UAAYk/B,EAAKl/B,UAAYnvD,OACrC,IAAcquF,EAAKl/B,SAASroC,QAASunE,GACrCA,EAAKl/B,SAASk/B,UAAO3hF,GAEtB1M,KAAKujF,UAAU8K,IAEhBruF,KAAKouF,MAAQC,G,gCAqDd,sBAAW,oBAAK,C,IAmBhB,WACC,IAAKruF,KAAKqjF,OAAQ,CACjB,IAAI,EAAYrjF,KAAK4B,UACrB,GAAI,EAAW,CAEd,IACI,EADAq/C,OAAQ,EAGZ,GAAIjhD,KAAKgqF,QAAS,CAEjB,IADA/oC,EAAW,EAAUomC,WAAWpmC,SAASl8C,OAC5BolD,SACZ,OAGA,EAAQlJ,EAASr4C,YAGd,CAEJ,IADAq4C,EAAW,EAAUssC,SAASjK,OAAOriC,UACxBkJ,SACZ,OAGA,EAAQ,EAAUojC,SAASjK,OAAOngF,SAClCnD,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WACjC,EAAUwrC,SAASjK,OAAOrjC,YAAY,OAKzCjgD,KAAKkpD,WAAW1qD,KAAK,GACrBwB,KAAK+E,MAAQ,EACb,EAAM6jD,aAAc,EACpB,EAAMshC,KAAOlqF,KAAK4B,UAClB,EAAMyrD,cAAgB,GAGxB,OAAOrtD,KAAKqjF,Q,IAxDb,SAAiBt+E,GACZ/E,KAAKqjF,QAAUrjF,KAAKqjF,QAAUt+E,IACjC,IAAc/E,KAAK8mB,QAAS9mB,KAAKqjF,QACjCrjF,KAAKqjF,OAAOl0B,cAAWziD,GAGpB3H,IACCA,EAAMoqD,UAAYpqD,EAAMoqD,UAAYnvD,OACvC,IAAc+E,EAAMoqD,SAASroC,QAAS/hB,GACtCA,EAAMoqD,SAASpqD,WAAQ2H,GAExB1M,KAAKujF,UAAUx+E,IAEhB/E,KAAKqjF,OAASt+E,G,gCAsDf,sBAAW,uBAAQ,C,IAoBnB,WACC,IAAK/E,KAAKuuF,UAAW,CACpB,IAAI,EAAYvuF,KAAK4B,UACrB,GAAI,EAAW,CAEd,IACI,EADAq/C,OAAQ,EAGZ,GAAIjhD,KAAKgqF,QAAS,CAEjB,GADA/oC,EAAW,EAAUomC,WAAWpmC,SAASutC,UACpCxuF,KAAKmhD,YAAcF,EAASkJ,SAChC,OAGA,EAAWlJ,EAASr4C,YAGjB,CAEJ,IADAq4C,EAAW,EAAUssC,SAASkB,UAAUxtC,UAC3BkJ,SACZ,OAGA,EAAW,EAAUojC,SAASkB,UAAUtrF,SACxCnD,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WACjC,EAAUwrC,SAASkB,UAAUxuC,YAAY,OAK5CjgD,KAAKwuF,SAAW,EAChB,EAAS5lC,aAAc,EACvB5oD,KAAKkpD,WAAW1qD,KAAK,IAGvB,OAAOwB,KAAKuuF,W,IAvDb,SAAoBC,GACfxuF,KAAKuuF,WAAavuF,KAAKuuF,WAAaC,IACvC,IAAcxuF,KAAK8mB,QAAS9mB,KAAKuuF,WACjCvuF,KAAKuuF,UAAUp/B,cAAWziD,GAGvB8hF,IACCA,EAASr/B,UAAYq/B,EAASr/B,UAAYnvD,OAC7C,IAAcwuF,EAASr/B,SAASroC,QAAS0nE,GACzCA,EAASr/B,SAASq/B,cAAW9hF,GAE9B8hF,EAAStE,KAAOlqF,KAAK4B,UACrB5B,KAAKujF,UAAUiL,IAEhBxuF,KAAKuuF,UAAYC,G,gCAiDlB,sBAAW,mBAAI,C,IAUf,WACC,OAAOxuF,KAAK0uF,O,IAXb,SAAgBnsE,GACfviB,KAAK0uF,MAAQnsE,EACTviB,KAAKqjF,SACRrjF,KAAKqjF,OAAO9gE,KAAOA,I,gCAgBrB,sBAAW,mBAAI,C,IAAf,WACC,OAAOviB,KAAKinD,O,gCAWb,sBAAW,uBAAQ,C,IAAnB,WACC,IAAKjnD,KAAK2uF,UAAW,CACpB,IAAI5E,EAAW,IAAIthB,EAAA,EACnBzoE,KAAKujF,UAAUwG,GACfA,EAASv+B,YAAa,EACtBxrD,KAAK2uF,UAAY5E,EAEjB,IAAInoF,EAAY5B,KAAK4B,UACrB,GAAIA,EAAW,CACd,IAAIgwD,EAAiBhwD,EAAU2rF,SAASqB,WAAW5uF,KAAK4B,WACxDgwD,EAAKzH,UAAW,EAChByH,EAAKs4B,KAAOtoF,EACZ5B,KAAKujF,UAAU3xB,GACf5xD,KAAKinD,MAAQ2K,EACbm4B,EAASn4B,KAAOA,GAGlB,OAAO5xD,KAAK2uF,W,gCAQb,sBAAW,wBAAS,C,IAapB,WACC,OAAO3uF,KAAK6uF,Y,IAdb,SAAqBC,GAChB9uF,KAAK6uF,YACR7uF,KAAK6uF,WAAW7K,UAAU/jC,YAAYjgD,MAEnC8uF,GACHA,EAAU9K,UAAUxlF,KAAKwB,MAE1BA,KAAK6uF,WAAaC,G,gCAeZ,YAAAzkC,SAAP,WACKrqD,KAAK4B,WACR5B,KAAK4B,UAAU+iF,oBAAoB3kF,OAS9B,YAAA+uF,eAAP,WACK/uF,KAAK4B,WACR5B,KAAK4B,UAAUotF,eAAehvF,OAWtB,YAAA2mE,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAEM,YAAL1L,GACA,EAEK,YAAL0L,EACD,EAEM,aAAL1L,GACA,EAEK,aAAL0L,EACD,EAGA,GAUC,YAAAwsF,YAAV,SAAsBjnF,GACrB,MAAe,aAARA,GAA6B,YAAMinF,YAAW,UAACjnF,IAQhD,YAAA64C,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKuiB,KAAOzB,EAAOyB,KACfzB,EAAO8mE,SACV5nF,KAAK4nF,OAAS9mE,EAAO8mE,OAAOh/E,SAG7B5I,KAAKkvF,YAAcpuE,EAAOouE,YAC1BlvF,KAAKmvF,YAAcruE,EAAOquE,aAQpB,YAAAh5B,cAAP,SAAqBtgE,EAAgBu5F,GACpC,YAAMj5B,cAAa,UAACtgE,EAAOu5F,GACvBpvF,KAAK2uF,YACR3uF,KAAK2uF,UAAU9iC,QAAUh2D,IA2D3B,sBAAW,qBAAM,C,IAejB,WACC,OAAOmK,KAAKqvF,S,IAhBb,SAAkBx5F,GACbmK,KAAKqvF,SAAWrvF,KAAKqvF,SAAWx5F,IACnC,IAAcmK,KAAK8mB,QAAS9mB,KAAKqvF,SACjCrvF,KAAKqvF,QAAQlgC,cAAWziD,GAGzB1M,KAAKqvF,QAAUx5F,EACXA,GACHmK,KAAKujF,UAAU1tF,I,gCAalB,EAnqBA,CAAkCgsF,EAAA,IAyrBlC,SAAYoM,GACX,qBACA,wBACA,iBAHD,CAAYA,MAAgB,KAyG5B,kBA4KC,mBAGC,cAAO,KACP,GA/GS,EAAAqB,WAAqB,GAKrB,EAAAtD,QAA0B,IAAI1qC,EAAA,EA4FjC,EAAAq4B,aAAuB,EAKpB,EAAA4V,eAAyB,EAS9B,EAAKtsF,cAAgBusF,EACxB,MAAM,IAAIr5F,MAAM,4EAGjB,EAAKs5F,yBAA0B,EAC/B,EAAK3sB,SAAW,KAChB,EAAKC,UAAY,KACjB,EAAKhoB,UAAY,OACjB,EAAK6N,aAAc,EACnB,EAAKQ,iBAAiB,wBAAwB,GAC9C,EAAKsmC,qBAAsB,EAE3B,IAAI5b,EAAkB,IAAIC,EAAA,EAG1B,EAAKlZ,MAAQ,IAAIuZ,EAAA,EACjB,EAAKvZ,MAAMjS,aAAc,EACzB,EAAKM,WAAW1qD,KAAK,EAAKq8D,OAC1B,EAAKzR,iBAAiB,gBAAiB,GACvC,EAAKA,iBAAiB,cAAe,GAGrC,EAAKumC,mBAAqB,IAAI,IAAsC,EAAK3L,WAAW,WAAM,SAAKA,UAAL,YAC1F,EAAK2L,mBAAmBl3C,gBAAiB,EAGzC,IAAI+U,EAAmB,IAAIqsB,EAAA,EAC3B,EAAK3wB,WAAW1qD,KAAKgvD,GACrBA,EAAQzoD,MAAMu+D,QAAQ,EAAG,GAAI,EAAG,IAChC9V,EAAQuX,WAAW6qB,cAAgB,EACnCpiC,EAAQqiC,oBAAqB,EAC7BriC,EAAQuX,WAAWhY,QAAQxjD,QAI3BikD,EAAQH,cAAgB,EAGxB,IAAI0X,EAAiDvX,EAAQuX,W,OAC7DA,EAAWzyD,aAAe,EAC1ByyD,EAAWrpB,KAAOo4B,EAAgBlK,OAAO,yBACzC7E,EAAW1W,OAAS0W,EAAWrpB,KAC/BqpB,EAAWlY,YAAc,EACzBkY,EAAWnU,YAAc,EACzBpD,EAAQzoD,MAAM22C,KAAOo4B,EAAgBlK,OAAO,mBAE5C,EAAKpc,QAAUA,EAGf,EAAKyN,cAAe,EAEpB,EAAKj8D,OAAOmgD,GAAG,sBAAsB,WAEpC,EAAKitC,OAAOllF,MAAK,SAACklF,GACbA,EAAOqD,0BACVrD,EAAO5+B,QAAQvB,OACfmgC,EAAO5+B,QAAQxE,aAAc,MAG3B,EAAKymC,0BACR,EAAKjiC,QAAQvB,OACb,EAAKuB,QAAQxE,aAAc,UAE1Bt8C,GAAW,GAEd,EAAK1N,OAAOmgD,GAAG,oBAAoB,WAClC,EAAKitC,OAAOllF,MAAK,SAACklF,GACbA,EAAOqD,0BACVrD,EAAO5+B,QAAQvB,OACfmgC,EAAO5+B,QAAQxE,aAAc,MAG3B,EAAKymC,0BACR,EAAKjiC,QAAQvB,OACb,EAAKuB,QAAQxE,aAAc,UAE1Bt8C,GAAW,GAEd,EAAKi9C,a,EA6xCP,OA3hDiE,iBAgIzD,YAAAmmC,SAAP,SAAgB3gC,EAA6BxnD,GACvC,IAAeA,KACnBA,EAAQwnD,EAASxnD,OAEdA,EAAQ,GAAKpQ,KAAKQ,MAAM4P,EAAQ,IACnCwnD,EAASq/B,SAASpiC,YAAa,EAC/B+C,EAASq/B,SAAS79B,QAAU,IAG5BxB,EAASq/B,SAAS79B,QAAU,EAC5BxB,EAASq/B,SAASpiC,YAAa,IA6HvB,YAAAs4B,eAAV,WACC,OAAO,IAAI,GAQL,YAAArjB,iBAAP,WACC,YAAMA,iBAAgB,WAEtB,IAAWrhE,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAO/qB,uBAQF,YAAAusB,iBAAP,WAEC,IAAW5tF,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAO1iC,iBAQF,YAAAqmC,qBAAP,WACC/vF,KAAKuvF,eAAiB,EAClBvvF,KAAKgwF,aACRhwF,KAAKutF,SAAS0C,mBAAmBjwF,KAAKgwF,WAAYhwF,KAAKvG,MAAOuG,KAAKpG,KACnEoG,KAAKgwF,WAAW3lC,aAOR,YAAA6lC,gBAAV,WACC,GAAIlwF,KAAKutF,SAAU,CAClB,IAAI4C,EAAYnwF,KAAKowF,WAAapwF,KAAKutF,SAAS8C,gBAC7CF,GAAanwF,KAAKsvF,aACpBtvF,KAAKsvF,WAAaa,EAClBnwF,KAAKswF,gBAUD,YAAAzmB,eAAP,WAEC7pE,KAAKuwF,eAAiBvwF,KAAKowF,YAAcpwF,KAAKpG,IAAMoG,KAAKvG,OAEzD,YAAMowE,eAAc,WACpB7pE,KAAKkwF,kBACL,IAAI3C,EAAWvtF,KAAKutF,SAChBA,IACHA,EAASiD,iBACTjD,EAASkD,gBACTlD,EAASmD,yBAGN1wF,KAAK2wF,aAAe3wF,KAAKowF,aAC5BpwF,KAAKyB,oBAAoB,iBACzBzB,KAAK2wF,YAAc3wF,KAAKowF,aASnB,YAAAQ,aAAP,aASO,YAAA5B,eAAP,SAAsB7/B,GACrB,IAAIo+B,EAAyBvtF,KAAKutF,SAG9Bc,EAAOl/B,EAASk/B,KAChBA,IACCA,EAAKwC,MACRxC,EAAKlhF,OAASogF,EAAS9F,iBAGvB4G,EAAKlhF,OAASogF,EAASC,eAIrBr+B,EAASpqD,QACZoqD,EAASpqD,MAAMoI,OAASogF,GAGzB,IAAIiB,EAAWr/B,EAASq/B,SACpBA,IACCA,EAASqC,MACZrC,EAASrhF,OAASogF,EAAS9F,iBAG3B+G,EAASrhF,OAASogF,EAASC,eAI7B,IAAIW,EAAOh/B,EAASg/B,KAChBA,IACCA,EAAK0C,MACR1C,EAAKhhF,OAASogF,EAAS9F,iBAGvB0G,EAAKhhF,OAASogF,EAASC,eAIrBr+B,EAASy4B,SACZz4B,EAASy4B,OAAOz6E,OAASogF,EAAS9F,mBAS7B,YAAAp9B,SAAP,WACC,YAAMA,SAAQ,WACdrqD,KAAK6pE,iBAEL7pE,KAAKutF,SAASuD,uBAQR,YAAAC,mBAAP,sBACC,IAAW/wF,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GACvC,EAAKmG,eAAenG,GACpB,EAAKlE,oBAAoBkE,GACrBA,EAAUsF,MACbtF,EAAUsF,KAAK9jC,WAEZw+B,EAAUwF,MACbxF,EAAUwF,KAAKhkC,WAEZw+B,EAAU2F,UACb3F,EAAU2F,SAASnkC,WAEhBw+B,EAAU9jF,OACb8jF,EAAU9jF,MAAMslD,eAUZ,YAAA2mC,eAAP,WACKhxF,KAAKixF,aACR,IAAWjxF,KAAKixF,YAAY5rF,YAAY,SAACypF,GACxCA,EAAUplC,iBAYN,YAAAwnC,aAAP,SAAoB/sC,GACnB,IAAI2qC,EAAgC3qC,EAAM/E,SAC1C0vC,EAAU3hF,OAASnN,KAAKutF,SAAS4D,eACjCrC,EAAU5E,KAAOlqF,MAYX,YAAAoxF,eAAP,SAAsBhF,GAAtB,WAGC,OAFApsF,KAAKosF,OAAOxrC,UAAUwrC,GAEf,IAAI,IAAc,CACxB,IAAIrqC,EAAA,GAAS,WACZ,EAAKqqC,OAAOnsC,YAAYmsC,MAGzBpsF,KAAKhB,OAAOmgD,GAAG,gBAAiBitC,EAAO1iC,WAAY0iC,GAAQ,GAC3DpsF,KAAKhB,OAAOmgD,GAAG,gBAAiBitC,EAAOvC,WAAYuC,GAAQ,GAC3DpsF,KAAKhB,OAAOmgD,GAAG,eAAgBitC,EAAO1iC,WAAY0iC,GAAQ,GAC1DpsF,KAAKhB,OAAOmgD,GAAG,aAAcitC,EAAO1iC,WAAY0iC,GAAQ,MAgC1D,sBAAW,uBAAQ,C,IAkCnB,WACC,OAAOpsF,KAAKqxF,W,IAnCb,SAAoB9D,GACnB,GAAIA,GAAYvtF,KAAKqxF,UAAW,CAC/BrxF,KAAKqxF,UAAY9D,EACjBA,EAAS3S,MAAQ56E,KAAK46E,MACtB2S,EAASrD,KAAOlqF,KAChButF,EAASpgF,OAASnN,KAClBA,KAAK66D,MAAM1tD,OAASnN,KACpBA,KAAK4wF,eAEL5wF,KAAKkpD,WAAW1qD,KAAK+uF,EAASC,cAAcxuF,OAAOmgD,GAAG,iBAAkBn/C,KAAK0pD,WAAY1pD,MAAM,IAE/F,IAAI,EAAaA,KAAKutF,SAASjK,OAAOngF,SACtCnD,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAW2wD,SAAWnvD,KAAKgkF,UAAU/iC,SAASr4C,QAC9C,EAAW2Z,KAAO,IAClB,EAAWpV,OAASnN,KAAKutF,SACzB,EAAW3kC,aAAc,EACzB,EAAWgI,YAAc,EACzB,EAAWD,QAAU,EACrB,EAAWE,cAAgB,EAC3B,EAAW/E,qBAAsB,EACjC,EAAWzB,WAEXrqD,KAAKgwF,WAAa,EAElBhwF,KAAKhB,OAAOmgD,GAAG,uBAAuB,WACrC,EAAW58B,KAAO,WAChB7V,GAAW,K,gCAiBT,YAAA4kF,gBAAP,SAAuB51F,GACtB,OAAOsE,KAAKutF,SAAS+D,gBAAgB51F,IAS/B,YAAA61F,gBAAP,SAAuBr2F,GACtB,OAAO8E,KAAKutF,SAASgE,gBAAgBr2F,IAU/B,YAAAs2F,qBAAP,SAA4B91F,GAC3B,OAAOsE,KAAKutF,SAASiE,qBAAqB91F,IAYpC,YAAA+1F,gBAAP,SAAuBh4F,EAAYG,GAClC,OAAOoG,KAAKutF,SAASmE,qBAAqBj4F,EAAOG,IAU3C,YAAA+3F,cAAP,SAAqB97F,GACpB,OAAO,GAUD,YAAA+7F,WAAP,SAAkB/7F,GACjB,MAAO,CAAEyE,EAAG,EAAGC,EAAG,EAAGuB,MAAO,IAYtB,YAAA41F,qBAAP,SAA4B5D,EAAuBC,GAClD,OAAI/tF,KAAKutF,SACDvtF,KAAKutF,SAASmE,qBAAqB5D,EAAeC,GAEnD,IAQR,sBAAW,yBAAU,C,IAArB,WACC,OAAI/tF,KAAKutF,SACDvtF,KAAKutF,SAAS6C,WAEf,G,gCAQR,sBAAW,mCAAoB,C,IAqC/B,WACC,OAAOpwF,KAAKujD,iBAAiB,yB,IAtC9B,SAAgC1tD,GAC3BmK,KAAKopD,iBAAiB,uBAAwBvzD,KAC7CA,GAASmK,KAAKutF,SACjBvtF,KAAKutF,SAASkD,gBAENzwF,KAAKwtD,SACbxtD,KAAKwtD,QAAQvB,KAAK,K,gCAiBrB,sBAAW,kCAAmB,C,IAO9B,WACC,OAAOjsD,KAAKujD,iBAAiB,wB,IAR9B,SAA+B1tD,GAC9BmK,KAAKopD,iBAAiB,sBAAuBvzD,I,gCAsBvC,YAAAw2D,YAAP,SAAmBtlB,GAClB,YAAMslB,YAAW,UAACtlB,GAClB/mC,KAAK6xF,sBAAmBnlF,GASlB,YAAAy9E,sBAAP,SAA6BzuF,EAAkB+sC,GAC9C,IAAI+kB,EAAmBxtD,KAAKutD,SAE5B,IAAKC,GAAWxtD,KAAKgkF,UAAU7nF,QAAU,EACxC6D,KAAK6xF,sBAAmBnlF,MAEpB,CAKJ,GAJK+7B,IACJ/sC,EAAWsE,KAAK8xF,eAAep2F,KAG3B,IAAeA,IAAaA,EAAWsE,KAAKvG,OAASiC,EAAWsE,KAAKpG,IAGzE,OAFA4zD,EAAQvB,KAAK,QACbjsD,KAAK6xF,sBAAmBnlF,GAIzB,IAAI6gF,EAAWvtF,KAAKutF,SAGf//B,EAAQrgD,SACZqgD,EAAQrgD,OAASnN,KAAKivD,kBAGvB,IAAI8iC,EAAkBxE,EAASwE,gBAE3BjE,EAAwB9tF,KAAKgyF,qBAAqBt2F,GAClDqyF,EAAsB/tF,KAAKiyF,mBAAmBv2F,GAQlD,GAN4B,SAAxBsE,KAAK0kE,kBACRhpE,EAAWoyF,GAAiBC,EAAcD,GAAiBiE,GAG5Dr2F,EAAW,IAAiBA,EAAUsE,KAAKvG,MAAOuG,KAAKpG,KAEnDoG,KAAK6xF,kBAAoBn2F,EAAU,CACtCsE,KAAK6xF,iBAAmBn2F,EAExB,IAAIw2F,EAAmB3E,EAAS2E,iBAE5BC,EAAqB5E,EAASM,gBAAgBC,EAAeoE,GAC7DE,EAAmB7E,EAASM,gBAAgBE,EAAamE,GAG7DlyF,KAAKqyF,sBAAwBF,EAC7BnyF,KAAKsyF,oBAAsBF,EAEvB7E,EAASgF,mBACZ/kC,EAAQlxD,MAAQ81F,EAAS93F,EAAI63F,EAAW73F,EACxCkzD,EAAQjxD,OAAS61F,EAAS73F,EAAI43F,EAAW53F,GAG1C,IAAIW,EAAgBqyF,EAASM,gBAAgBnyF,EAAUw2F,GACnD7sB,EAAsB,IAAwBnqE,EAAO8E,KAAKutF,SAASiF,MACvEhlC,EAAQjrC,KAAOviB,KAAKyyF,eAAe/2F,GAE/B8xD,EAAQjrC,OACXirC,EAAQklC,eAAertB,GACvB7X,EAAQqW,QAIL7jE,KAAK2yF,uBAAwB3yF,KAAKwtD,QAAQrD,UAC9CqD,EAAQvB,KAAK,KAYT,YAAA6lC,eAAP,SAAsBp2F,GAIrB,QAAgBgR,IAFhBhR,EAAWsE,KAAKutF,SAASuE,eAAep2F,IAcxC,OARAA,GAAuBsE,KAAKpG,IAAMoG,KAAKvG,MAEtCiC,EADGsE,KAAKutF,SAASqF,SACN5yF,KAAKpG,IAAM8B,EAGXsE,KAAKvG,MAAQiC,GAanB,YAAAm3F,iBAAP,SAAwBn3F,GAQvB,OAPIsE,KAAKutF,SAASqF,SACjBl3F,EAAWsE,KAAKpG,IAAM8B,EAGtBA,GAAsBsE,KAAKvG,MAGrBiC,GAAYsE,KAAKpG,IAAMoG,KAAKvG,QAY7B,YAAAg5F,eAAP,SAAsB/2F,KAYf,YAAA+0F,cAAP,SAAqBqC,EAAwCC,GAC5D,IAAIvlC,EAAmBxtD,KAAKutD,SACxBC,IACHA,EAAQslC,mBAAqBA,EAC7BtlC,EAAQssB,UAAU,IAAuBiZ,EAAmB/yF,KAAKutF,SAASiF,SAarE,YAAAQ,cAAP,SAAqBt3F,EAAkB2lB,EAA4B4xE,GAClE,OAAOv3F,GAWD,YAAAs2F,qBAAP,SAA4Bt2F,GAC3B,OAAOA,GAWD,YAAAu2F,mBAAP,SAA0Bv2F,GACzB,OAAOA,GAQR,sBAAW,yBAAU,C,IAArB,WACC,IAAKsE,KAAKkzF,YAAa,CACtB,IAAI/jC,EAAyBnvD,KAAK0kF,iBAClCv1B,EAAS66B,SAAU,EACnB76B,EAASq/B,SAAWxuF,KAAKutF,SAASkB,UAAUxtC,SAASr4C,QACrDumD,EAASg/B,KAAOnuF,KAAKutF,SAASY,KAAKltC,SAASr4C,QAC5CumD,EAASk/B,KAAOruF,KAAKutF,SAASe,MAAMrtC,SAASr4C,QAC7CumD,EAASpqD,MAAQ/E,KAAKutF,SAASjK,OAAOriC,SAASr4C,QAE/CumD,EAAShO,YAAa,EACtBgO,EAASvtD,UAAY5B,KACrBmvD,EAASq/B,SAASrkC,UAAW,EAC7BgF,EAASk/B,KAAKlkC,UAAW,EACzBgF,EAASg/B,KAAKhkC,UAAW,EACzBgF,EAASpqD,MAAMolD,UAAW,EAE1BnqD,KAAKkzF,YAAc,IAAI5xC,EAAA,EAAgC6N,GACvDnvD,KAAKkzF,YAAYl0F,OAAOmgD,GAAG,WAAYn/C,KAAKsnF,iBAAkBtnF,MAAM,GACpEA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKkzF,cAC3ClzF,KAAKkpD,WAAW1qD,KAAKwB,KAAKkzF,YAAYjyC,UAEvC,OAAOjhD,KAAKkzF,a,gCAQH,YAAA5L,iBAAV,SAA2BnjC,GAC1B,IAAI0kC,EAA0B1kC,EAAM/E,SACpCypC,EAAUjnF,UAAY5B,KACtB6oF,EAAUmB,SAAU,GAQrB,sBAAW,yBAAU,C,IAArB,WAUC,OATKhqF,KAAKixF,cACTjxF,KAAKixF,YAAc,IAAIkC,EAAA,EAAuCnzF,KAAKozF,mBAAmB,SAACr8F,EAAG0L,GACzF,OAAO,IAAc1L,EAAEs8F,mBAAoB5wF,EAAE4wF,uBAG9CrzF,KAAKixF,YAAYjyF,OAAOmgD,GAAG,WAAYn/C,KAAKkxF,aAAclxF,MAAM,GAChEA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKixF,cAC3CjxF,KAAKkpD,WAAW1qD,KAAKwB,KAAKixF,YAAYhwC,WAEhCjhD,KAAKixF,a,gCAQH,YAAAmC,gBAAV,WACC,OAAO,IAAI,GAQZ,sBAAW,qBAAM,C,IAAjB,WAIC,OAHKpzF,KAAKgsF,UACThsF,KAAKgsF,QAAU,IAAI1qC,EAAA,GAEbthD,KAAKgsF,S,gCAUN,YAAAsH,uBAAP,aAYO,YAAAC,sBAAP,SAA6BpkC,EAA4BqkC,KAWlD,YAAAC,2BAAP,SAAkCrH,KAY3B,YAAAsH,0BAAP,SAAiCvkC,KAe1B,YAAAwkC,mBAAP,aASO,YAAAC,oBAAP,sBAEKC,EAA2D7zF,KAAK2vF,mBAEpEkE,EAAkBp7C,gBAAiB,EAEnC,IAAWo7C,EAAkBxuF,YAAY,SAAC8pD,GACzC,EAAKw1B,oBAAoBx1B,GACzBA,EAAS/C,YAAa,KAGvBynC,EAAkBtqF,QAClBsqF,EAAkBp7C,gBAAiB,GAc7B,YAAAq7C,kBAAP,SAAyB1H,EAAkB1wF,EAAkBq4F,KAiBtD,YAAAp4F,SAAP,SAAgBwzD,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,KAiBxF,YAAAk6F,KAAP,SAAY9kC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,KAkBpF,YAAAm6F,aAAP,SAAoB/kC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,KAkB5F,YAAAo6F,KAAP,SAAYhlC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,KAiBpF,YAAAq6F,aAAP,SAAoBjlC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,KAUnG,sBAAW,wBAAS,C,IAApB,WACC,MAAO,CAAEO,EAAG,EAAGC,EAAG,I,gCAWZ,YAAA85F,iBAAP,aAWO,YAAAC,uBAAP,SAA8BlI,KAapB,YAAAmI,iBAAV,SAA2B38F,EAAaC,GACvC,IAAI28F,EAAqB38F,EAAMD,EAC/B,GAAI,IAAe48F,GA2BlB,OA1BIx0F,KAAKixF,aACR,IAAmBjxF,KAAKixF,YAAY5rF,YAAY,SAACypF,GAChD,IAAI2F,EAAqB3F,EAAUuE,mBAC/BqB,EAAmB5F,EAAU6F,iBACjC,GAAI,IAAeF,IAAe,IAAeC,GAAW,CAE3D,GAAID,EAAa58F,EAChB,OAAO,EAGR,GAAI68F,GAAY98F,GACX,IAAe68F,IAAe,IAAeC,GAAW,CAC3D,IAAI5H,EAAoBgC,EAAUhC,UAE9B9yF,EAAuB,IAAmB,CAAEP,MAAOg7F,EAAY76F,IAAK86F,GAAY,CAAEj7F,MAAO7B,EAAKgC,IAAK/B,IAEnGmC,IACHw6F,IAAex6F,EAAaJ,IAAMI,EAAaP,QAAU,EAAIqzF,IAKhE,OAAO,MAIH0H,GAYC,YAAAI,UAAV,SAAoB/+F,GACnB,GAAImK,KAAKixF,YACR,OAAO,IAAWjxF,KAAKixF,YAAY5rF,YAAY,SAACypF,GAC/C,OAAAj5F,GAASi5F,EAAUuE,oBACnBx9F,GAASi5F,EAAU6F,qBAUZ,YAAAE,cAAV,sBACC,GAAI70F,KAAKixF,YAAa,CACrB,IAAItD,EAAqD3tF,KAAKixF,YAC9D,GAAItD,EAAWxxF,OAAS,EAAG,CAI1B,IAAY,IAAcwxF,EAAWtoF,aAAa,SAACypF,GAClD,IAAI2F,EAAqB,IAAU3F,EAAU2F,WAAY3F,EAAU4F,UAC/DA,EAAmB,IAAU5F,EAAU2F,WAAY3F,EAAU4F,UAEjE5F,EAAUuE,mBAAqBoB,EAC/B3F,EAAU6F,iBAAmBD,EAE7B,EAAKzD,YAAY6D,OAAOhG,MAIzB,IAAIiG,EAAqCpH,EAAW34E,MAChD,EAA2Bzd,KAAKK,IAAIm9F,EAAeN,WAAYM,EAAeL,UAIlF,IAAW/G,EAAWtoF,YAAY,SAACypF,GAClC,IAAI2F,EAAqB3F,EAAUuE,mBAC/BqB,EAAmB5F,EAAU6F,iBAI7BF,EAAa,IAChBA,EAAa,EAETC,EAAW,IACdA,EAAW,IAIb5F,EAAUuE,mBAAqBoB,EAC/B3F,EAAU6F,iBAAmBD,QAuBjC,sBAAW,yBAAU,C,IAOrB,WACC,OAAO,G,IARR,SAAsB7+F,K,gCAkBtB,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKgkF,UAAU7nF,Q,IARvB,SAAoBtG,K,gCA2Bb,YAAAm/F,iBAAP,SAAwBt5F,GACvB,OAAOnE,KAAKQ,MAAiB,IAAX2D,GAAkB,MAQrC,sBAAW,oBAAK,C,IAOhB,WACC,OAAOsE,KAAK0nF,Q,IARb,SAAiB7xF,GAChBmK,KAAK0nF,OAAS7xF,G,gCAgBR,YAAAo/F,kBAAP,SAAyB7I,GACxB,IAAIryF,EAAQiG,KAAKqnF,WAAWlkF,SAoB5B,OAnBApJ,EAAM6H,UAAY5B,KAClBjG,EAAMy0F,SAAWxuF,KAAKutF,SAASkB,UAAUxtC,SAASr4C,QAClD7O,EAAMy0F,SAASrkC,UAAW,EAC1BpwD,EAAMy0F,SAAS59B,YAAc,EAE7B72D,EAAMo0F,KAAOnuF,KAAKutF,SAASY,KAAKltC,SAASr4C,QACzC7O,EAAMo0F,KAAKhkC,UAAW,EAEtBpwD,EAAMs0F,KAAOruF,KAAKutF,SAASe,MAAMrtC,SAASr4C,QAC1C7O,EAAMs0F,KAAKlkC,UAAW,EAEtBpwD,EAAMgL,MAAQ/E,KAAKutF,SAASjK,OAAOriC,SAASr4C,QAC5C7O,EAAMgL,MAAMolD,UAAW,EAEvBpwD,EAAMy1D,YAAY,IAAIzN,EAAA,GAAS,WAC9BqqC,EAAO/E,WAAWpnC,YAAYlmD,OAG/BqyF,EAAO/E,WAAW7oF,KAAKzE,GAChBA,GAQD,YAAA8mD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAKutF,SACRvtF,KAAKutF,SAAS1sC,SAAS//B,EAAOysE,UAG1BzsE,EAAOysE,WACVvtF,KAAKutF,SAAWzsE,EAAOysE,SAAS3kF,QAChC5I,KAAKkpD,WAAW1qD,KAAKwB,KAAKutF,WAGxBzsE,EAAO+5C,QACL76D,KAAK66D,MAKT76D,KAAK66D,MAAMha,SAAS//B,EAAO+5C,QAJ3B76D,KAAK66D,MAAQ/5C,EAAO+5C,MAAMjyD,QAC1B5I,KAAK66D,MAAM1tD,OAASnN,MAKrBA,KAAKkpD,WAAW1qD,KAAKwB,KAAK66D,SAOlB,YAAAq6B,eAAV,WACCl1F,KAAK2vF,mBAAmBh3C,SASlB,YAAAwtB,cAAP,SAAqB33D,GAEpB,GAAIA,GAGC,IAAeA,EAAO64E,aAAe,IAAc74E,EAAO64E,YAC7D,IAAK,IAAIhrF,EAAI,EAAGgV,EAAM7C,EAAO64E,WAAWlrF,OAAQE,EAAIgV,EAAKhV,IAAK,CAC7D,IAAItC,EAAQyU,EAAO64E,WAAWhrF,GAG1B,IAAetC,EAAK,SACnB,IAAeA,EAAK,SACnBiG,KAAKkrB,IAAIizB,OAAOpkD,EAAK,UAExByU,EAAO64E,WAAWhrF,GAAK2D,KAAKi1F,kBAAkBj1F,KAAKkrB,IAAIg0B,OAAOnlD,EAAK,gBAC3DA,EAAK,OACbyU,EAAO64E,WAAWhrF,GAAGmS,OAASzU,GAOpC,YAAMosE,cAAa,UAAC33D,IAarB,sBAAW,4BAAa,C,IAOxB,WACC,OAAOxO,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAmB/C,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAWnC,YAAAqiE,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHImK,KAAKutF,WACRvtF,KAAKutF,SAASC,cAAcrjC,SAAWt0D,GAEjC03E,GAaR,sBAAW,oBAAK,C,IAchB,WACC,OAAOvtE,KAAKm1F,Q,IAfb,SAAiBt/F,GACZmK,KAAKm1F,QAAUn1F,KAAKm1F,QAAUt/F,GACjCmK,KAAKm1F,OAAOt1C,UAEThqD,IACHmK,KAAKm1F,OAASt/F,EACdA,EAAMsX,OAASnN,KACfnK,EAAM+yD,aAAc,I,gCAoBtB,sBAAW,sCAAuB,C,IAOlC,WACC,OAAO5oD,KAAKujD,iBAAiB,4B,IAR9B,SAAmC1tD,GAClCmK,KAAKopD,iBAAiB,0BAA2BvzD,I,gCAUnD,EA3hDA,CAAiE4kF,EAAA,GAmiDjE,IAASr7E,kBAAT,KAAqC,EACrC,IAASA,kBAAT,aAA6C,EAS7C,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsByS,QAChCvtF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAQA,EAAOgsD,QAAS,CAC7C,IAAI3lD,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAWmoD,sBAAuB,EACjC9qF,EAGR,OAAO,QCr2ET,kBAoBC,mBACC,cAAO,KACP,EAAKkzC,UAAY,WAEjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,IAAIwqE,EAAkB,IAAIC,EAAA,E,OAC1B,EAAK1lB,OAASylB,EAAgBlK,OAAO,QACrC,EAAK/Y,cAAgB,IACrB,EAAKwC,cAAe,EACpB,EAAK3X,KAAO,cACZ,EAAKiO,aAEL,EAAKmC,qBAAsB,E,EAK7B,OAtC8B,iBAsC9B,EAtCA,CAA8Byb,EAAA,GA8C9B,IAASnoE,kBAAT,SAAyC,ECrBzC,mBA4CC,WAAY8qF,GAAZ,MACC,cAAO,KACP,EAAKA,KAAOA,EACZ,EAAKxhE,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,EAAKyxC,UAAY,WACjB,EAAKyQ,YAAa,EAElB,EAAKnqC,SAAW,EAEhB,EAAKwvE,OAAQ,EAEb,IAAI/c,EAAkB,IAAIC,EAAA,E,OAE1B,EAAKr4B,KAAOo4B,EAAgBlK,OAAO,yBACnC,EAAKhZ,YAAc,EAEnB,EAAKjH,a,EAkHP,OA/K8B,iBAmEnB,YAAAuO,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHImK,KAAKkqF,MACRlqF,KAAKkqF,KAAKN,sBAEJrc,GAQD,YAAAhjB,KAAP,WACC,YAAMA,KAAI,WAENvqD,KAAKosD,YAAcpsD,KAAKmqD,UAIxBnqD,KAAKkqF,MAAQ,IAAelqF,KAAK8tF,gBAAkB,IAAe9tF,KAAK+tF,eAC1E/tF,KAAKq1F,SAAWr1F,KAAKkqF,KAAKwH,qBAAqB1xF,KAAK8tF,cAAe9tF,KAAK+tF,aACxE/tF,KAAK8L,KAAO9L,KAAKq1F,SACbr1F,KAAKwrD,YACRxrD,KAAK8qD,YAUR,sBAAW,4BAAa,C,IAQxB,WACC,OAAO9qD,KAAKujD,iBAAiB,kB,IAT9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GACvCmK,KAAK0pD,c,gCAeN,sBAAW,0BAAW,C,IAQtB,WACC,OAAO1pD,KAAKujD,iBAAiB,gB,IAT9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GACrCmK,KAAK0pD,c,gCAeN,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO1pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAahC,YAAA0tE,QAAV,SAAkB1tE,GACjB,QAAImK,KAAKopD,iBAAiB,OAAQvzD,KACjCmK,KAAK0oB,QAAQiiC,KAAK,CAAE,EAAK90D,KAClB,IAYT,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAUxC,EA/KA,CAA8B0xE,EAAA,GAuL9B,IAASnoE,kBAAT,SAAyC,GC9LzC,mBA8BC,mBACC,cAAO,KACP,EAAK27C,UAAY,OAEjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,EAAK+X,SAAW,GAChB,EAAKmqC,YAAa,EAClB,EAAKqlC,OAAQ,EAEb,IAAI/c,EAAkB,IAAIC,EAAA,E,OAC1B,EAAK1lB,OAASylB,EAAgBlK,OAAO,QAErC,EAAKvW,cAAe,EACpB,EAAKxC,cAAgB,IACrB,EAAKnV,KAAO,cAEZ,EAAKiO,a,EAoDP,OAnG0B,iBA2DzB,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO3pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAa7B,YAAAqiE,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHImK,KAAKkqF,MACRlqF,KAAKkqF,KAAKN,sBAEJrc,GAGT,EAnGA,CAA0BhG,EAAA,GA2G1B,IAASnoE,kBAAT,KAAqC,GASrC,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsByS,QAChCvtF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAM,CAC3B,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,QCnIT,mBA8BC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,YACjB,EAAKyQ,YAAa,EAClB,EAAK8X,QAAQ,GAAI,GAAI,GAAI,IACzB,EAAKjiD,SAAW,GAEhB,EAAKsoC,a,EAiDP,OAtF+B,iBA6C9B,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO3pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAe1C,sBAAW,qBAAM,C,IASjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAV9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgB9B,YAAAqiE,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHGmK,KAAKkqF,MACPlqF,KAAKkqF,KAAKN,sBAEJrc,GAGT,EAtFA,CAA+B6G,EAAA,GA8F/B,IAASh1E,kBAAT,UAA0C,GChG1C,mBAoBC,mBACC,cAAO,KACP,EAAK27C,UAAY,OAEjB,IAAI+4B,EAAkB,IAAIC,EAAA,E,OAE1B,EAAKnjB,YAAc,EACnB,EAAKz0D,OAAS,EACd,EAAK00D,cAAgB,GACrB,EAAKxC,OAASylB,EAAgBlK,OAAO,QACrC,EAAKpe,YAAa,EAClB,EAAKoB,kBAAmB,EAExB,EAAKjD,a,EAqBP,OAtD0B,iBAyCzB,sBAAW,qBAAM,C,IAOjB,WACC,OAAI3pD,KAAKmqD,SACD,EAEDnqD,KAAKujD,iBAAiB,W,IAX9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAYzC,EAtDA,CAA0B0xE,EAAA,GA8D1B,IAASnoE,kBAAT,KAAqC,GCvDrC,mBAwBC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,WAEjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,EAAK+X,SAAW,GAEhB,EAAKwvE,OAAQ,EAEb,EAAKrlC,YAAa,EAElB,EAAK6H,cAAe,EAEpB,EAAKxC,cAAgB,EAErB,EAAK10D,OAAS,EAEd,EAAKwtD,a,EAiEP,OA5G8B,iBAmD7B,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO3pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAe1C,sBAAW,qBAAM,C,IASjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAV9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAmBxC,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAa7B,YAAAqiE,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHImK,KAAKkqF,MACRlqF,KAAKkqF,KAAKN,sBAEJrc,GAET,EA5GA,CAA8B,IAqH9B,IAASnuE,kBAAT,SAAyC,GC9DzC,mBAuGC,mBAGC,cAAO,KAnDE,EAAAsoF,OAAS,IAAI,IAoDtB,EAAK3sC,UAAY,eAGjB,EAAKs1C,gBAAkB,GACvB,EAAKiF,QAAS,EACd,EAAK1C,UAAW,EAChB,EAAKb,gBAAkB,GACvB,EAAKQ,kBAAmB,EACxB,EAAKgD,kBAAoB,EACzB,EAAKC,gBAAkB,EAEvB,EAAKC,iBAAmB,EACxB,EAAKC,iBAAmB,EACxB,EAAK9sC,aAAc,EAEnB,IAAI4kC,EAAgB,EAAKlkB,YAAYb,EAAA,GACrC+kB,EAAc5kC,aAAc,EAC5B4kC,EAAchsB,OAAS,OAEvBgsB,EAAcngC,cAAgB,EAC9BmgC,EAAclxF,MAAQ,YAAQ,KAC9BkxF,EAAcjxF,OAAS,YAAQ,KAE/B,EAAKixF,cAAgBA,EAErBA,EAAcxuF,OAAOmgD,GAAG,kBAAkB,WACrC,EAAKyV,QACR,EAAK+gC,wBAEJ,GAAM,GAET,IAAIxE,EAAiB,EAAK7nB,YAAYb,EAAA,GACtC0oB,EAAevoC,aAAc,EAC7BuoC,EAAe3lC,YAAa,EAC5B2lC,EAAe3vB,OAAS,OACxB2vB,EAAe70F,MAAQ,YAAQ,KAC/B60F,EAAe50F,OAAS,YAAQ,KAChC,EAAK40F,eAAiBA,EAEtB,IAAI1J,EAAmB,EAAKne,YAAYb,EAAA,GACxCgf,EAAiB7+B,aAAc,EAC/B6+B,EAAiBj8B,YAAa,EAC9Bi8B,EAAiBjmB,OAAS,OAC1BimB,EAAiBnrF,MAAQ,YAAQ,KACjCmrF,EAAiBlrF,OAAS,YAAQ,KAClC,EAAKkrF,iBAAmBA,EAExB,EAAK+K,KAAO,EAAKlpB,YAAY,GAC7B,EAAKkpB,KAAK5pC,aAAc,EACxB,EAAK4pC,KAAK3hC,cAAgB,EAE1B,IAAI+kC,EAAiB,EAAKtsB,YAAY,IACtCssB,EAAShtC,aAAc,EACvB,EAAKgtC,SAAWA,EAGhB,IAAI9zC,EAAY,EAAKoH,W,OACrBpH,EAAUtjD,KAAKo3F,GACf9zC,EAAUtjD,KAAK,EAAKg0F,MACpB1wC,EAAUtjD,KAAKgvF,GACf1rC,EAAUtjD,KAAK2yF,GACfrvC,EAAUtjD,KAAKipF,GACf3lC,EAAUtjD,KAAK,EAAKkpF,QAEpB,EAAK4G,MAAMrtC,SAASkJ,UAAW,EAC/B,EAAKskC,UAAUxtC,SAASkJ,UAAW,EACnC,EAAKskC,UAAUxtC,SAAS6K,qBAAsB,EAE9C,EAAKnC,a,EAo0BP,OAn/BkC,iBAsLjC,sBAAI,mBAAI,C,IAQR,WACC,OAAO3pD,KAAK6sF,O,IATb,SAAS3C,GACRlqF,KAAK61F,QAAQ3L,I,gCAcP,YAAA2L,QAAP,SAAe3L,GACdlqF,KAAK6sF,MAAQ3C,EACblqF,KAAK41F,SAASzoF,OAAS+8E,EACvBlqF,KAAKwyF,KAAKrlF,OAAS+8E,EACnBlqF,KAAKwtF,cAAc1+E,KAAK,UAAWo7E,IAgB7B,YAAA4L,gBAAP,WACC91F,KAAKhB,OAAOmgD,GAAG,cAAen/C,KAAKywF,cAAezwF,MAAM,GACxDA,KAAKhB,OAAOmgD,GAAG,kBAAmBn/C,KAAKywF,cAAezwF,MAAM,GAC5DA,KAAKsjF,OAAOriC,SAASq0C,OAASt1F,KAAKs1F,OACnCt1F,KAAKsuF,MAAMrtC,SAASq0C,OAASt1F,KAAKs1F,QAS5B,YAAA7E,cAAP,aASA,sBAAW,yBAAU,C,IAArB,WAEC,OAAO,G,gCAUD,YAAAsF,aAAP,SAAoB5rD,EAAcjvC,GAC7BivC,GACHA,EAAK74B,OAAOpW,IAUP,YAAA2yF,gBAAP,SAAuBnyF,EAAkBs6F,GAExC,MAAO,CAAE17F,EAAG,EAAGC,EAAG,IAWZ,YAAA+2F,gBAAP,SAAuB51F,GAEtB,OAAO,GASD,YAAA81F,qBAAP,SAA4B91F,GAC3B,IACIwuF,EAAalqF,KAAKkqF,KAClBqG,EAAiBrG,EAAKqG,eAS1B,OAPIrG,EAAKqD,SAASqF,UACH1I,EAAKtwF,IAAM8B,GAAY60F,GAGvB70F,EAAWwuF,EAAKzwF,OAAS82F,GAMlC,YAAAO,oBAAP,aAKU,YAAAmF,UAAV,WACC,IAAIzI,EAAgBxtF,KAAKwtF,cACzB,OAAGA,EAAcrgF,OACTqgF,EAAcrgF,OAAO4kD,YAEtB/xD,KAAKwtF,cAAcz7B,aAAe,GAGhC,YAAAmkC,SAAV,WACC,IAAI1I,EAAgBxtF,KAAKwtF,cACzB,OAAGA,EAAcrgF,OACTqgF,EAAcrgF,OAAO2kD,WAEtB9xD,KAAKwtF,cAAc17B,YAAc,GAWlC,YAAAqkC,qBAAP,SAA4BC,EAAoBC,GAC/C,IAAI36F,EACAwuF,EAAalqF,KAAKkqF,KAClBqG,EAAiBrG,EAAKqG,eAS1B,OANC70F,EADGwuF,EAAKqD,SAASqF,SACN1I,EAAKtwF,IAAMw8F,EAAa7F,EAGxB6F,EAAa7F,EAAiBrG,EAAKzwF,MAGxC,IAAYiC,EAAU,IAWvB,YAAA61F,gBAAP,SAAuBr2F,GAEtB,OAAO,GAYD,YAAAw2F,qBAAP,SAA4B5D,EAAuBC,GAClD,MAAO,IASD,YAAA4H,oBAAP,WACC,IAAIzL,EAAalqF,KAAKkqF,KAClBA,GACHA,EAAKN,uBAYA,YAAA0M,kBAAP,SAAyBnI,EAAczyF,EAAkBqyF,KAYlD,YAAAwI,kBAAP,SAAyBlI,EAAgB3yF,EAAkBqyF,KAYpD,YAAAyI,aAAP,SAAoB5O,EAAgBlsF,EAAkBqyF,KAY/C,YAAAkC,mBAAP,SAA0BlrF,EAAkBrJ,EAAkBqyF,EAAqB1sE,KAY5E,YAAAo1E,kBAAP,SAAyB/6C,EAAgBhgD,EAAkBqyF,GAC1DryC,EAAKoyC,cAAgBpyF,EACrBggD,EAAKqyC,YAAcA,GAQb,YAAAyC,eAAP,aASO,YAAAE,sBAAP,aAUO,YAAA1C,mBAAP,SAA0Bc,GACzB9uF,KAAK+1F,aAAajH,EAAU5B,UAAW4B,EAAUqD,YACjDnyF,KAAK02F,iBAAiB5H,EAAU5B,UAAW4B,EAAUhB,cAAe,EAAG,GACvE9tF,KAAK+1F,aAAajH,EAAU1B,QAAS0B,EAAUsD,UAC/CpyF,KAAK02F,iBAAiB5H,EAAU1B,QAAS0B,EAAUf,YAAa,EAAG,IAWpE,sBAAW,8BAAe,C,IAW1B,WACC,OAAO/tF,KAAKujD,iBAAiB,oB,IAZ9B,SAA2B1tD,GACtBmK,KAAKopD,iBAAiB,kBAAmBvzD,IACxCmK,KAAKkqF,MACRlqF,KAAKkqF,KAAKN,uB,gCAkBb,sBAAW,oBAAK,C,IAQhB,WACC,OAAO5pF,KAAK0nF,OAAOxmF,O,IATpB,SAAiBrL,GAChBmK,KAAK0nF,OAAO1mF,IAAInL,EAAO,O,gCAuBd,YAAA6gG,iBAAV,SAA2Br2F,EAAgB3E,EAAkBwzF,EAAqBC,GACjF,IAAIjF,EAAOlqF,KAAKkqF,KAEZ/6B,EAAW9uD,EAAO8uD,SACnBA,GAAYA,aAAoB,IAC/B,IAAeA,EAAS+/B,eAC1BA,EAAc//B,EAAS+/B,aAErB,IAAe//B,EAASggC,eAC1BA,EAAchgC,EAASggC,cAIzB,IAAIwH,EAAezM,EAAKzwF,OAASywF,EAAKtwF,IAAMswF,EAAKzwF,QAAUy1F,EAAc,MACrE0H,EAAa1M,EAAKzwF,OAASywF,EAAKtwF,IAAMswF,EAAKzwF,QAAU01F,EAAc,MAElE9uF,EAAO8pD,WAEV9pD,EAAO+rD,WADJ1wD,EAAWi7F,GAAgBj7F,EAAWk7F,IAerC,YAAAnJ,mBAAP,SAA0BqB,KAoC1B,sBAAW,wBAAS,C,IAApB,WACC,IAAK9uF,KAAK62F,WAAY,CACrB,IAAIn7C,EAAO17C,KAAK4uF,WAAW5uF,KAAKkqF,MAChClqF,KAAK62F,WAAa,IAAIv1C,EAAA,EAAuB5F,GAC7CA,EAAK+L,eAAgB,EACrB/L,EAAK18C,OAAOmgD,GAAG,UAAWn/C,KAAK21F,oBAAqB31F,MAAM,GAC1DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAK62F,aAC3C72F,KAAKkpD,WAAW1qD,KAAKwB,KAAK62F,WAAW51C,UAEtC,OAAOjhD,KAAK62F,Y,gCAQN,YAAAjI,WAAP,SAAkB1E,GACjB,OAAO,IAAI,GAASA,IAQrB,sBAAW,mBAAI,C,IAAf,WACC,IAAKlqF,KAAKkuF,MAAO,CAChB,IAAIC,EAAOnuF,KAAK82F,aAChB92F,KAAKkuF,MAAQ,IAAI5sC,EAAA,EAAmB6sC,GACpCA,EAAK1mC,eAAgB,EACrB0mC,EAAKnvF,OAAOmgD,GAAG,UAAWn/C,KAAK21F,oBAAqB31F,MAAM,GAC1DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKkuF,QAC3CluF,KAAKkpD,WAAW1qD,KAAKwB,KAAKkuF,MAAMjtC,UAEjC,OAAOjhD,KAAKkuF,O,gCAQN,YAAA4I,WAAP,WACC,OAAO,IAAI,IA+BZ,sBAAW,oBAAK,C,IAAhB,WACC,IAAK92F,KAAK+2F,OAAQ,CACjB,IAAI1I,EAAiBruF,KAAKg3F,aAC1B3I,EAAK5mC,eAAgB,EACrB4mC,EAAK7iC,YAAa,EAClB6iC,EAAKrvF,OAAOmgD,GAAG,UAAWn/C,KAAK21F,oBAAqB31F,MAAM,GAC1DA,KAAK+2F,OAAS,IAAIz1C,EAAA,EAAuB+sC,GACzCruF,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAK+2F,SAC3C/2F,KAAKkpD,WAAW1qD,KAAKwB,KAAK+2F,OAAO91C,UAElC,OAAOjhD,KAAK+2F,Q,gCAQN,YAAAC,WAAP,WACC,OAAO,IAAI,IAQZ,sBAAW,qBAAM,C,IAAjB,WACC,IAAKh3F,KAAKi3F,QAAS,CAClB,IAAIlyF,EAAQ/E,KAAKk3F,cACjBl3F,KAAKi3F,QAAU,IAAI31C,EAAA,EAAwBv8C,GAC3CA,EAAM0iD,eAAgB,EACtB1iD,EAAM/F,OAAOmgD,GAAG,UAAWn/C,KAAK21F,oBAAqB31F,MAAM,GAC3DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKi3F,UAC3Cj3F,KAAKkpD,WAAW1qD,KAAKwB,KAAKi3F,QAAQh2C,UAEnC,OAAOjhD,KAAKi3F,S,gCAQN,YAAAC,YAAP,WACC,OAAO,IAAI,IAUZ,sBAAW,qBAAM,C,IAqBjB,WACC,OAAOl3F,KAAKujD,iBAAiB,W,IAtB9B,SAAkB1tD,GAEbmK,KAAKopD,iBAAiB,SAAUvzD,IAC/BmK,KAAKkqF,MACRlqF,KAAKkqF,KAAKxgC,aAIR7zD,GACHmK,KAAK1D,MAAQ,EACb0D,KAAKzD,OAAS,IAGdyD,KAAK1D,WAAQoQ,EACb1M,KAAKzD,YAASmQ,I,gCAoBhB,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO1M,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,I,gCAkBnC,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,I,gCAmB3C,sBAAW,8BAAe,C,IAO1B,WACC,OAAOmK,KAAKujD,iBAAiB,oB,IAR9B,SAA2B1tD,GAC1BmK,KAAKopD,iBAAiB,kBAAmBvzD,I,gCAmB1C,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,I,gCAgC3C,sBAAW,gCAAiB,C,IAW5B,WACC,OAAOmK,KAAKujD,iBAAiB,sB,IAZ9B,SAA6B1tD,GACxBmK,KAAKopD,iBAAiB,oBAAqBvzD,IAC1CmK,KAAKkqF,MACRlqF,KAAKkqF,KAAK0D,oB,gCAkCb,sBAAW,8BAAe,C,IAW1B,WACC,OAAO5tF,KAAKujD,iBAAiB,oB,IAZ9B,SAA2B1tD,GACtBmK,KAAKopD,iBAAiB,kBAAmBvzD,IACxCmK,KAAKkqF,MACRlqF,KAAKkqF,KAAK0D,oB,gCAiBb,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO5tF,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,I,gCAyBnC,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,I,gCAyBlD,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,I,gCAgB3C,YAAAgrD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKmuF,KAAKltC,SAASJ,SAAS//B,EAAOqtE,KAAKltC,UACxCjhD,KAAKsuF,MAAMrtC,SAASJ,SAAS//B,EAAOwtE,MAAMrtC,UAC1CjhD,KAAKsjF,OAAOriC,SAASJ,SAAS//B,EAAOwiE,OAAOriC,UAC5CjhD,KAAKyuF,UAAUxtC,SAASJ,SAAS//B,EAAO2tE,UAAUxtC,UAClDjhD,KAAKwyF,KAAK3xC,SAAS//B,EAAO0xE,MAC1BxyF,KAAK41F,SAAS/0C,SAAS//B,EAAO80E,WAMxB,YAAA9D,eAAP,SAAsBj8F,GACrB,OAAOA,GAYD,YAAAsgE,cAAP,SAAqBtgE,GACpB,YAAMsgE,cAAa,UAACtgE,GACpBmK,KAAKynF,iBAAiB57B,QAAUh2D,GAGlC,EAn/BA,CAAkC4yE,EAAA,GA2/BlC,IAASrpE,kBAAT,aAA6C,G,cC3gC7C,eA2BC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,aAEjB,EAAK15B,SAAW,GAEhB,EAAKmqC,YAAa,EAElB,EAAK7B,a,EAkFP,OAtHgC,iBAiG/B,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO3pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAahC,YAAAqiE,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHImK,KAAKkqF,MACRlqF,KAAKkqF,KAAKN,sBAEJrc,GAET,EAtHA,CAAgC9E,EAAA,GA+HhC,IAASrpE,kBAAT,WAA2C,GCvK3C,mBAsBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,gBACjB,EAAKs1C,gBAAkB,GACvB,EAAK8G,UAAW,EAChB,EAAK56F,OAAS,YAAQ,KACtB,EAAK+mF,OAAOriC,SAASyK,eAAiB,SAEtC,EAAK/B,a,EAsdP,OApfmC,iBAoC3B,YAAAksC,QAAP,SAAe3L,GACd,YAAM2L,QAAO,UAAC3L,GACdA,EAAK1oB,OAAS,cAMR,YAAAsvB,oBAAP,WACC,IAAI5G,EAAOlqF,KAAKkqF,KAChB,GAAIA,EAAM,CACT,IAAIsD,EAAgBxtF,KAAKwtF,cACzBA,EAAcjzF,EAAI2vF,EAAK9iE,OACvBomE,EAAcjxF,OAAS2tF,EAAKkG,aAOvB,YAAA0B,eAAP,SAAsBj8F,GACrB,IAAIq0F,EAAOlqF,KAAKkqF,KAChB,GAAIA,EAAM,CACT,IAAIkN,EAAmB,EAAIvhG,EACvBwhG,EAAyBnN,EAAKmN,uBAE9B98F,EAAI2vF,EAAK9iE,OAOb,GANIiwE,EACH98F,EAAI,IAA2B,CAAED,EAAG,EAAGC,EAAGyF,KAAKonB,QAAUpnB,KAAKmN,OAAQkqF,GAAwB98F,EAG9F88F,EAAyBnN,EAAK/8E,OAE3BkqF,EAIH,OAAO,GAAKD,EAHI78F,EAAI88F,EAAuBnxC,cACtBgkC,EAAKkG,WAAaiH,EAAuBnxC,aAKhE,OAAOrwD,GAeD,YAAAigG,gBAAP,WACC,YAAMA,gBAAe,WAErB,IAAI5L,EAAOlqF,KAAKkqF,KAEhB,GAAIA,EAAM,CAET,IAAIrvB,EAAeqvB,EAAKrvB,MACxBA,EAAMuH,OAAS,SAET8nB,EAAK3tF,kBAAkBg9C,EAAA,IAC5B2wC,EAAK3tF,OAAS,YAAQ,MAGnByD,KAAKm3F,UACRt8B,EAAM9zC,SAAW,GACjB/mB,KAAKwyF,KAAKluB,SACVzJ,EAAMwJ,YAGNxJ,EAAM9zC,UAAY,GAClB8zC,EAAMyJ,SACNtkE,KAAKwyF,KAAKnuB,aAYN,YAAAosB,cAAP,WAEC,GADiBzwF,KAAKkqF,KACZ,CAET,IACIoN,EAAc,EAEdC,EAHiB,IAIjBC,EAAcx3F,KAAKowF,WAGnBpwF,KAAKm3F,SACJn3F,KAAKs1F,SACRgC,GATmB,IAUnBC,EAVmB,KAefv3F,KAAKs1F,SACTgC,GAhBmB,IAiBnBC,EAjBmB,KAoBrBv3F,KAAKkqF,KAAKuG,cAAc,aAAc,CAAEn2F,EAAGg9F,EAAK/8F,EAlB9B,EAkBsC+B,MAAOi7F,EAAKh7F,OAAQi7F,MAS9E,sBAAW,yBAAU,C,IAArB,WACC,IAAItN,EAAOlqF,KAAKkqF,KAChB,OAAQA,EAAK92B,eAAiB82B,EAAKviE,gBAAkBuiE,EAAKh3B,oBAAuB,G,gCAS3E,YAAA26B,gBAAP,SAAuBnyF,EAAkBs6F,GACxC,MAAO,CAAE17F,EAAG,EAAGC,EAAGyF,KAAKwxF,qBAAqB91F,KAUtC,YAAA61F,gBAAP,SAAuBr2F,GACtB,OAAO8E,KAAKm2F,qBAAqBj7F,EAAMX,EAAGW,EAAMZ,IAU1C,YAAA67F,qBAAP,SAA4BC,EAAoBC,GAC/C,IAAI36F,EACAwuF,EAAalqF,KAAKkqF,KAClBqG,EAAiBrG,EAAKqG,eAQ1B,OALC70F,EADGwuF,EAAKqD,SAASqF,SACL,EAAI1I,EAAKzwF,MAAS28F,EAAa7F,EAGhC6F,EAAa7F,GAAkB,EAAIrG,EAAKtwF,KAE7C,IAAY8B,EAAU,IAYvB,YAAAg2F,qBAAP,SAA4B5D,EAAuBC,GAClD,IAAI0J,EAAa,IAAiBz3F,KAAKwxF,qBAAqB1D,GAAgB,EAAG9tF,KAAKowF,YAChFsH,EAAa,IAAiB13F,KAAKwxF,qBAAqBzD,GAAc,EAAG/tF,KAAKowF,YAE9El3D,EAAY3hC,KAAK6B,IAAIs+F,EAAKD,GAC1B/4D,EAAY1+B,KAAKk2F,WACjB37F,EAAYhD,KAAKK,IAAI6/F,EAAIC,GAG7B,OAAO,IAAiB,CACvBp9F,EAHe,EAIfC,EAAGA,EACH+B,MAAOoiC,EACPniC,OAAQ28B,IACN,IAWG,YAAAo9D,kBAAP,SAAyBnI,EAAYzyF,EAAkBqyF,GACtDryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SACtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAGzCyyF,EAAKriF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG0F,KAAKk2F,WAAY37F,EAAG,IAEjFyF,KAAK+1F,aAAa5H,EAAMjzF,GAExB8E,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAWnC,YAAA66F,kBAAP,SAAyBlI,EAAgB3yF,EAAkBqyF,GAC1DryF,IAAuBqyF,EAAcryF,GAAY2yF,EAAKhtE,SAEtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAErCi8F,EAAatJ,EAAKlyF,OAEtB,IACC,IAAY6D,KAAKkqF,KAAKrvB,MAAM1H,eAC3B,UAIFj4D,EAAMZ,EAAI,IAA2B,CAAEA,EAAG0F,KAAKwyF,KAAKvrE,OAAQ1sB,EAAG,GAAKyF,KAAKwyF,KAAKrlF,OAAQnN,KAAKwtF,eAAelzF,EAErG0F,KAAKm3F,SAITQ,GAAetJ,EAAKiH,QAAU,EAAI,EAHlCqC,GAAetJ,EAAKiH,OAAS,GAAK,EAMnCjH,EAAKviF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGq9F,EAAYp9F,EAAG,IAE5EyF,KAAK+1F,aAAa1H,EAAMnzF,GAExB8E,KAAK02F,iBAAiBrI,EAAM3yF,EAAU,EAAG,IAQnC,YAAA80F,eAAP,WACCxwF,KAAKwyF,KAAK1mF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAGyF,KAAKowF,cAQvE,YAAAM,sBAAP,WACC,YAAMA,sBAAqB,WAE3B,IAAIxG,EAAalqF,KAAKkqF,KAElBxrD,EAAY1+B,KAAKk2F,WACjBh9D,EAAYl5B,KAAKowF,WACjB71F,EAAY2vF,EAAK0N,UAAUr9F,EAE3Bq7F,EAAmB51F,KAAK41F,SAE5B,GAAIr7F,GAAM,IAAOA,EAAI2+B,EAAI,GACxB08D,EAAS3pC,KAAK,OAEV,CACJ,IAAI3xD,EAAI,IAA2B,CAAEA,EAAG,EAAGC,EAAG,GAAKyF,KAAKwtF,cAAeoI,EAASzoF,QAAQ7S,EAExFs7F,EAAS9pF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGokC,EAAGnkC,EAAG,IACvEq7F,EAAStkF,OAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAC3Bq7F,EAAS/xB,KAAK,KAYT,YAAAosB,mBAAP,SAA0BlrF,EAAkBrJ,EAAkBqyF,EAAqB1sE,GAE7E,IAAeA,KACnBA,EAAWtc,EAAMsc,UAGlB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EACjDtc,EAAMymD,YAAczmD,EAAMuwF,OAE1B,IAEI7pC,EAFAvwD,EAAgB8E,KAAK6tF,gBAAgBnyF,GAGrCm8F,EAAS,EACTv2B,EAAWthE,KAAKwtF,cAAclsB,SAE9BthE,KAAKm3F,UACJpyF,EAAMuwF,QACT7pC,EAAmB,QACA,QAAf1mD,EAAM08D,QACTo2B,GAAUv2B,EACV7V,EAAmB,QAED,UAAf1mD,EAAM08D,QACTo2B,GAAUv2B,EAAW,EACrB7V,EAAmB,WAIpBA,EAAmB,OAGpBvwD,EAAMZ,EAAI,EAAIu9F,IAGV9yF,EAAMuwF,QACT7pC,EAAmB,OACA,SAAf1mD,EAAM08D,QACTo2B,EAASv2B,EACT7V,EAAmB,SAED,UAAf1mD,EAAM08D,QACTo2B,EAASv2B,EAAW,EACpB7V,EAAmB,WAIpBA,EAAmB,QAGpBvwD,EAAMZ,EAAI0F,KAAKmzD,cAAgB0kC,GAGV,GAAlB9yF,EAAMgiB,WAEThiB,EAAM0mD,iBAAmBA,GAG1BzrD,KAAK+1F,aAAahxF,EAAO7J,GACzB8E,KAAK02F,iBAAiB3xF,EAAOrJ,EAAUsE,KAAKy1F,iBAAkBz1F,KAAK01F,mBAS7D,YAAA1H,mBAAP,SAA0Bc,GACzB,YAAMd,mBAAkB,UAACc,GAEzB,IAAI5B,EAAY4B,EAAU5B,UACtBE,EAAU0B,EAAU1B,QACpBL,EAAY+B,EAAU/B,UAEtBoF,EAAqBrD,EAAUqD,WAC/BC,EAAmBtD,EAAUsD,SAE7B0F,EAAahJ,EAAUptB,gBACvBq2B,EAAa/3F,KAAKk2F,WAAapH,EAAUptB,gBAAkBotB,EAAUntB,iBAEzEwwB,EAAW53F,EAAI,IAAiB43F,EAAW53F,GAAI,EAAGyF,KAAKowF,WAAa,GACpEgC,EAAS73F,EAAI,IAAiB63F,EAAS73F,GAAI,EAAGyF,KAAKowF,WAAa,GAE5D+B,EAAW53F,GAAK63F,EAAS73F,IAAM43F,EAAW53F,EAAI,GAAK43F,EAAW53F,EAAIyF,KAAKowF,YAC1EtB,EAAU/B,UAAU3gC,YAAa,EAGjC0iC,EAAU/B,UAAU3gC,YAAa,EAGlC,IAAI1tB,EAAInnC,KAAK6B,IAAI2+F,EAAKD,GAEtB5K,EAAU5yF,EAAIw9F,EACd5K,EAAU3wF,OAAS,EACnB2wF,EAAU5wF,MAAQoiC,EAElB0uD,EAAQ9yF,EAAIw9F,EACZ1K,EAAQ7wF,OAAS,EACjB6wF,EAAQ9wF,MAAQoiC,EAEhBquD,EAAUzwF,MAAQoiC,EAClBquD,EAAUxwF,OAAShF,KAAK6B,IAAIg5F,EAAS73F,EAAI43F,EAAW53F,GACpDwyF,EAAUzyF,EAAIw9F,EACd/K,EAAUxyF,EAAI63F,EAAS73F,GASjB,YAAAkzF,mBAAP,SAA0BqB,GACzBA,EAAU5B,UAAY,IAAIF,EAAA,EAC1B8B,EAAU1B,QAAU,IAAIJ,EAAA,EACxB,IAAIgL,EAAiC,IAAIC,GAAA,EACzCD,EAAeE,eAAc,GAAM,GAAO,GAAM,GAChDpJ,EAAU/B,UAAYiL,GAUhB,YAAAxG,qBAAP,SAA4B91F,GAC3B,IACIwuF,EAAalqF,KAAKkqF,KAClBqG,EAAiBrG,EAAKqG,eAS1B,OAPKrG,EAAKqD,SAASqF,UAIJl3F,EAAWwuF,EAAKzwF,OAAS82F,GAHzBrG,EAAKtwF,IAAM8B,GAAY60F,GAkBhC,YAAAiG,aAAP,SAAoB5O,EAAgBlsF,EAAkBqyF,GAErD,IAAI1sE,EAAW,GACXumE,aAAkB,KACrBvmE,EAAWumE,EAAOvmE,UAGnB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EACjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzCR,EAAMZ,EAAI,IAA2B,CAAEA,EAAG0F,KAAKwyF,KAAKvrE,OAAQ1sB,EAAG,GAAKyF,KAAKwyF,KAAKrlF,OAAQnN,KAAKwtF,eAAelzF,EAE1G0F,KAAK+1F,aAAanO,EAAQ1sF,GAE1B8E,KAAK02F,iBAAiB9O,EAAQlsF,EAAU,EAAG,IAE7C,EApfA,CAAmC,IA4fnC,IAAS0D,kBAAT,cAA8C,GAU9C,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBwV,OAChCtwF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAe,CACpC,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAIjC,OAHAh7E,EAAM2iC,WAAW8qD,QAAS,EAC1BztF,EAAM2iC,WAAWkrD,iBAAmB,GACpC7tF,EAAM2iC,WAAWirD,iBAAmB,GAC7B5tF,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBC,QAChC/6E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAe,CACpC,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,QC9hBT,mBAiDC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,iBACjB,EAAK4O,a,EA2BP,OA/EoC,iBA6DnC,sBAAW,4BAAa,C,IAAxB,WACC,GAAI3pD,KAAKkqF,KACR,OAAOlqF,KAAKkqF,KAAKkO,gBAAgBp4F,KAAKqzF,qB,gCAUxC,sBAAW,0BAAW,C,IAAtB,WACC,GAAIrzF,KAAKkqF,KACR,OAAOlqF,KAAKkqF,KAAKkO,gBAAgBp4F,KAAK20F,mB,gCAIzC,EA/EA,CAAoC,GAuFpC,IAASv1F,kBAAT,eAA+C,GCnH/C,mBASC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,oBAEjB,EAAKhiD,OAAOlD,MAAQ,GACpB,EAAKkD,OAAO27F,SAAW,GAEvB,EAAK/qC,a,EAmCP,OAnDuC,iBAwBtC,sBAAW,oBAAK,C,IAOhB,WACC,OAAO3pD,KAAKjH,OAAL,MAAqBlD,O,IAR7B,SAAiBA,GAChBmK,KAAKsmF,SAAS,QAASzwF,I,gCAexB,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKjH,OAAL,SAAwBlD,O,IARhC,SAAoBA,GACnBmK,KAAKsmF,SAAS,WAAYzwF,I,gCAU5B,EAnDA,CAAuC,GAwKvC,eAsMC,mBAGC,cAAO,K,OA7FE,EAAAwiG,mBAA6B,EAC7B,EAAAC,uBAAiC,EACjC,EAAAC,uBAAiC,EAYjC,EAAAC,WAAqB,EAqBrB,EAAAC,eAAyB,EAOzB,EAAAC,aAAuB,EAKvB,EAAAC,kBAA4B,EAE5B,EAAAC,aAAuB,EAiC1B,EAAAC,iBAA2B,EAYjC,EAAK99C,UAAY,YAGjB,EAAK+9C,cAAgB,QAGrB,EAAK1vC,iBAAiB,gBAAiB,KACvC,EAAKA,iBAAiB,WAAY,GAClC,EAAKA,iBAAiB,WAAY,GAClC,EAAKA,iBAAiB,gBAAgB,GACtC,EAAKA,iBAAiB,eAAgBtzD,OAAOwI,WAC7C,EAAK8qD,iBAAiB,wBAAwB,GAC9C,EAAKA,iBAAiB,wBAAyB,GAC/C,EAAK2vC,eAAgB,EACrB,EAAKC,uBAAwB,EAG7B,EAAKrvC,a,EAykEP,OApyEsE,iBAqK9D,YAAAmmC,SAAP,SAAgB3gC,GACf,IAAIt5D,EAAQs5D,EAASt5D,MACjBq0F,EAAO/6B,EAASvtD,UACfutD,EAASq/B,SAASrkC,WAElB,IAAYt0D,EAAQq0F,EAAK/lF,KAAO,EAAG,IAAM5M,KAAKQ,MAAMlC,EAAQq0F,EAAK/lF,KAAO,GAC3EgrD,EAASq/B,SAASpiC,YAAa,EAG/B+C,EAASq/B,SAASpiC,YAAa,IAsDxB,YAAAs4B,eAAV,WACC,OAAO,IAAI,IAQF,YAAA0O,gBAAV,WACC,OAAO,IAAI,IAWL,YAAAiB,iBAAP,WACCr0F,KAAKswF,aACAtwF,KAAK+4F,eAQU,GAAf/4F,KAAK8+C,QACR9+C,KAAKyB,oBAAoB,gBAET,GAAbzB,KAAK++C,MACR/+C,KAAKyB,oBAAoB,cAGP,GAAfzB,KAAK8+C,QAA4B,GAAb9+C,KAAK++C,MAC5B/+C,KAAKyB,oBAAoB,oBAfP,GAAfzB,KAAK8+C,QAA4B,GAAb9+C,KAAK++C,OAC5B/+C,KAAK8+C,OAAS,EACd9+C,KAAK++C,KAAO,EACZ/+C,KAAKyB,oBAAoB,oBAgB3BzB,KAAKi5F,WAAaj5F,KAAKk5F,YACvBl5F,KAAKm5F,WAAan5F,KAAKo5F,YACvBp5F,KAAKq5F,aAAer5F,KAAKk5F,YACzBl5F,KAAKs5F,aAAet5F,KAAKo5F,aAQnB,YAAA9F,uBAAP,WAEC,GAAItzF,KAAK64F,gBAAiB,CACzB,IAAIzM,EAAmBpsF,KAAKosF,OAAOjsC,SAAS,GACxCioC,EAAqBgE,EAAOhE,WAEhC,GAAIgE,EAAOpI,UAAU7nF,OAAS,EAAG,CAE5BisF,EAAa,GAChBA,IAED,IAAIK,EAAmB2D,EAAO3D,SAC1BA,EAAW2D,EAAOpI,UAAU7nF,QAC/BssF,IAKD,I,eAASpsF,GAER,IAAM45C,EAAqC,GACrCgC,EAAmC,GAEzC,EAAKm0C,OAAOllF,MAAK,SAACklF,GACjB,IAAKA,EAAOmN,iBAAkB,CAC7B,IAAI,EAA6BnN,EAAOpI,UAAU7jC,SAAS9jD,GACvD,GACH,IAAa,EAAStD,QAAQ,SAAC+H,GAC9B,IAAIjL,EAAgB,EAASkD,OAAO+H,GAAKuqF,aAErC,IAAex1F,KACb,IAAeogD,EAAMn1C,IAIzBm1C,EAAMn1C,IAAQvJ,KAAK6B,IAAIvD,GAHvBogD,EAAMn1C,GAAOvJ,KAAK6B,IAAIvD,GAKlB,IAAeoiD,EAAIn3C,IAIvBm3C,EAAIn3C,IAAQjL,EAHZoiD,EAAIn3C,GAAOjL,UAYjB,EAAKu2F,OAAOllF,MAAK,SAACklF,GACjB,IAAKA,EAAOmN,iBAAkB,CAC7B,IAAI,EAA6BnN,EAAOpI,UAAU7jC,SAAS9jD,GACvD,GACH,IAAa,EAAStD,QAAQ,SAAC+H,GAC9B,IAAIjL,EAAgB,EAASkD,OAAO+H,GAAKuqF,aACrC,IAAex1F,KAClB,EAAS6yF,mBAAmB5nF,EAAKm1C,EAAMn1C,GAAM,SAC7C,EAAS4nF,mBAAmB5nF,EAAK,IAAMjL,EAAQogD,EAAMn1C,GAAM,gBAC3D,EAAS4nF,mBAAmB5nF,EAAKm3C,EAAIn3C,GAAM,gB,OAzCxCzE,EAAY+rF,EAAY/rF,EAAIosF,IAAYpsF,E,EAAxCA,MA2DL,YAAAguD,SAAP,WAEKrqD,KAAKowF,YAAc,IAIvB,YAAM/lC,SAAQ,WAEdrqD,KAAKw5F,YAELx5F,KAAK60F,gBAEL70F,KAAKy5F,gBAELz5F,KAAK05F,uBAEL15F,KAAK+wF,qBAEL/wF,KAAKgxF,iBAELhxF,KAAK4zF,sBAEL5zF,KAAKutF,SAASlsB,qBAUR,YAAAo4B,cAAP,WACC,GAAI,IAAez5F,KAAKpI,MAAQ,IAAeoI,KAAKnI,KAAM,CACzD,IAAID,EAAcoI,KAAK25F,gBAAgB35F,KAAKvG,OACxC5B,EAAcmI,KAAK25F,gBAAgB35F,KAAKpG,KAExCggG,EAAoB55F,KAAKu0F,iBAAiB38F,EAAKC,GAC/CgiG,EAA0B75F,KAAK85F,aAAaliG,EAAKC,EAAK+hG,EAAW55F,KAAKsvF,YAAY,GAElFyK,EAAoB,IAAqBF,EAAW11F,MACxDnE,KAAKq4F,mBAAqB0B,EAE1BniG,EAAM,IAAYA,EAAKmiG,GACvBliG,EAAM,IAAYA,EAAKkiG,GAGvB,IAAI51F,GADJ01F,EAAa75F,KAAK85F,aAAaliG,EAAKC,EAAK+hG,EAAW55F,KAAKsvF,YAAY,IAC/CnrF,KAEtB,GAAInE,KAAKg6F,aAAc,CACtB,IAAIp/C,EAAa56C,KAAKiB,SAASrJ,EAAM,IAAMC,GACvC,IAAe+iD,KAClBz2C,EAAOy2C,QAIRhjD,EAAMiiG,EAAWjiG,IACjBC,EAAMgiG,EAAWhiG,IAGdmI,KAAKm5F,YAAcvhG,GAAOoI,KAAKi5F,YAAcphG,GAAOmI,KAAKi6F,OAAS91F,IACrEnE,KAAKm5F,WAAavhG,EAClBoI,KAAKi5F,WAAaphG,EAClBmI,KAAKi6F,MAAQ91F,EACbnE,KAAKyB,oBAAoB,+BAWrB,YAAAi4F,qBAAP,sBACC,GAAI,IAAe15F,KAAKnI,MAAQ,IAAemI,KAAKpI,KAAM,CAEzD,IAAI,EAAgBoI,KAAKk6F,UAAyB,EAAbl6F,KAAKi6F,MAE1C,GAAKj6F,KAAKsrF,YAIa/zF,KAAK2uE,IAAIlmE,KAAKnI,KAAON,KAAKg0F,OAASh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,OAC7D,EACrB,EAAQh0F,KAAKa,IAAI,GAAIb,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,QAIlC,IADb,EAAQh0F,KAAKU,MAAM+H,KAAKk6F,UAAYl6F,KAAKi6F,OAASj6F,KAAKi6F,SAEtD,EAAQj6F,KAAKk6F,gBAVf,EAAQ3iG,KAAKU,MAAM,EAAQ+H,KAAKi6F,OAASj6F,KAAKi6F,MAe/C,IAAIE,EAAYn6F,KAAKi5F,WAAaj5F,KAAKi6F,MAEvCj6F,KAAKk1F,iBAEL,IAAI,EAAoBl1F,KAAK2vF,mBAEzBtzF,EAAY,EAEV+9F,EAAmBp6F,KAAKs4F,wBAA0Bt4F,KAAKq4F,mBAG7D,IAFAr4F,KAAKs4F,uBAAyBt4F,KAAKq4F,mBAE5B,GAAS8B,GAAW,CAG1B,IAFgDn6F,KAAK40F,UAAU,GAE/C,CAEf,IAAIzlC,EAA8B,EAAkB7W,MAAK,SAACh+C,GAAM,OAAAA,EAAEzE,QAAF,KAC5Ds5D,EAAS/C,aACZ+C,EAAS/C,YAAa,GAGvBpsD,KAAKgvF,eAAe7/B,GACpBA,EAAS2/B,eAAYpiF,GAEjByiD,EAASt5D,OAAS,GAASukG,KAC9BjrC,EAASt5D,MAAQ,EACjBs5D,EAAS5sC,KAAOviB,KAAKq6F,YAAY,GAE7BlrC,EAASpqD,OAASoqD,EAASpqD,MAAM8kC,SACpCslB,EAASpqD,MAAMslD,WAEZ8E,EAASt5D,OAASmK,KAAKpI,KAAOu3D,EAASt5D,OAASmK,KAAKnI,KACpDs3D,EAASpqD,QACY,KAAnB/E,KAAKwzF,YAAqBrkC,EAASpqD,MAAMouD,cAAgBnzD,KAAKgwF,WAAW78B,eAAsC,KAAnBnzD,KAAKwzF,YAAqBrkC,EAASpqD,MAAMquD,eAAiBpzD,KAAKgwF,WAAW58B,kBAC1KpzD,KAAKgwF,WAAWztE,KAAO4sC,EAASpqD,MAAMqgE,YACtCplE,KAAKgwF,WAAW3lC,aAKpBrqD,KAAK2kF,oBAAoBx1B,GAI1B,GAFA9yD,IAEK2D,KAAKsrF,YAKa/zF,KAAK2uE,IAAIlmE,KAAKnI,KAAON,KAAKg0F,OAASh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,OAC7D,EACrB,EAAQh0F,KAAKa,IAAI,GAAIb,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,OAASlvF,GAGxD,GAAS2D,KAAKi6F,WATf,GAASj6F,KAAKi6F,MAcf,IAAIK,EAAY/iG,KAAKa,IAAI,GAAIb,KAAKU,MAAMV,KAAK2uE,IAAI3uE,KAAK6B,IAAI4G,KAAKi6F,QAAU1iG,KAAKg0F,SAC9E,GAAI+O,EAAY,EAAG,CAElB,IAAIC,EAAWhjG,KAAKQ,MAAMR,KAAK6B,IAAI7B,KAAK2uE,IAAI3uE,KAAK6B,IAAIkhG,IAAc/iG,KAAKg0F,SAAW,EAEnF,EAAQ,IAAY,EAAOgP,IAK7B,IAAI5M,EAAa3tF,KAAKixF,YACtB,GAAItD,EAAY,CAEf,IAAI,EAAyB3tF,KAAKutF,SAElC,IAAWI,EAAWtoF,YAAY,SAACypF,GAClC,GAAIA,EAAUhC,UAAY,GAErB,IAAkBgC,EAAUqD,WAAYrD,EAAUsD,UAAY,EAAS/B,gBAG1E,IAFA,IAAI,EAAqBvB,EAAU0L,YAE5B,GAAc1L,EAAU2L,aAAa,CAC3C,GAAI,GAAc3L,EAAUuE,oBAAsB,GAAcvE,EAAU6F,iBAAkB,CAC3F,IAAIxlC,EAA8B,EAAkB7W,MAAK,SAACh+C,GAAM,OAAAA,EAAEzE,QAAF,KAC5Ds5D,EAAS/C,aACZ+C,EAAS/C,YAAa,GAGvB,EAAK4iC,eAAe7/B,GACpBA,EAAS2/B,UAAYA,EACjB3/B,EAASt5D,OAAS,IACrBs5D,EAASt5D,MAAQ,EACjBs5D,EAAS5sC,KAAO,EAAK83E,YAAY,GAC7BlrC,EAASpqD,OAASoqD,EAASpqD,MAAM8kC,SACpCslB,EAASpqD,MAAMslD,YAGjB,EAAKs6B,oBAAoBx1B,GAE1B,GAAc2/B,EAAU4L,oBAgBxB,YAAA/V,oBAAP,SAA2Bx1B,GAC1B,YAAMw1B,oBAAmB,UAACx1B,GAI1BA,EAASwrC,UAAY36F,KAAKuvF,eAC1BvvF,KAAKuvF,iBAEL,IAAIhC,EAAyBvtF,KAAKutF,SAC9B13F,EAAgBs5D,EAASt5D,MACzB6+F,EAAmBvlC,EAASulC,SAE5Bh5F,EAAmBsE,KAAKo4F,gBAAgBviG,GAC5Cs5D,EAASzzD,SAAWA,EAEpB,IAAIqyF,EAAsBryF,EACtBk/F,EAA0B56F,KAAKo4F,gBAAgBviG,EAAQmK,KAAKi6F,OAE5D,IAAevF,KAElBkG,EADA7M,EAAc/tF,KAAKo4F,gBAAgB1D,IAKpCvlC,EAASj0D,MAAQqyF,EAASM,gBAAgBnyF,GAE1C,IAAI2yF,EAAiBl/B,EAASk/B,KAC1BA,IAASA,EAAKlkC,UACjBojC,EAASgJ,kBAAkBlI,EAAM3yF,EAAUqyF,GAG5C,IAAII,EAAah/B,EAASg/B,KACtBA,IAASA,EAAKhkC,UACjBojC,EAAS+I,kBAAkBnI,EAAMzyF,EAAUqyF,GAI5C,IAAIhpF,EAAmBoqD,EAASpqD,MAC5BA,IAAUA,EAAMolD,UACnBojC,EAAS0C,mBAAmBlrF,EAAOrJ,EAAUqyF,GAG9C,IAAIryC,EAAiByT,EAASq/B,SAC1B9yC,IAASA,EAAKyO,WACjBojC,EAASkJ,kBAAkB/6C,EAAMhgD,EAAUk/F,GACtCzrC,EAAS66B,SACbhqF,KAAK8vF,SAAS3gC,IAIZA,EAASy4B,QACZ2F,EAASiJ,aAAarnC,EAASy4B,OAAQlsF,EAAUqyF,GAGlD,IAAIn8B,EAAiBzC,EAASyC,KAC1BA,GACH27B,EAASkJ,kBAAkB7kC,EAAMl2D,EAAUk/F,IAUtC,YAAAP,YAAP,SAAmBxkG,GAClB,OAAImK,KAAK66F,sBAAiC,GAAThlG,EACzBmK,KAAKs4D,gBAAgB30C,OAAO9tB,OAAO6W,EAAW1M,KAAKq4F,oBAGnDr4F,KAAKs4D,gBAAgB30C,OAAO9tB,IAUrC,sBAAW,wBAAS,C,IAApB,WACC,IAAIuY,EAAoBpO,KAAKoO,UACzB1S,EAAmBsE,KAAKo4F,gBAAgBhqF,GAG5C,OAFwBpO,KAAKutF,SAASM,gBAAgBnyF,I,gCAgBvD,sBAAW,wBAAS,C,IASpB,WAEC,IAAI0S,EAAYpO,KAAKw4F,WAKrB,OAJIx4F,KAAKsrF,cACRl9E,EAAYpO,KAAKpI,KAGboI,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,YAAa2K,GAHlCA,G,IAjBT,SAAqBvY,GACpBmK,KAAKw4F,WAAa3iG,EAClBmK,KAAKqhE,mBACLrhE,KAAK4tF,oB,gCA8BC,YAAA+D,cAAP,SAAqB97F,GACpB,OAAOmK,KAAKo4F,gBAAgBviG,IAUtB,YAAAilG,aAAP,SAAoBjlG,GACnB,IAAI6F,EAAWsE,KAAKo4F,gBAAgBviG,GAChCqF,EAAQ8E,KAAKutF,SAASM,gBAAgBnyF,GACtCI,EAAQkE,KAAKutF,SAAS+D,gBAAgB51F,GAC1C,MAAO,CAAEpB,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,EAAGuB,MAAOA,IASlC,YAAA81F,WAAP,SAAkB/7F,GACjB,OAAOmK,KAAK86F,aAAajlG,IAUnB,YAAAuiG,gBAAP,SAAuBviG,GACtB,GAAI,IAAeA,GAAQ,CAG1B,IAAI,EAAcmK,KAAKpI,IACnB,EAAcoI,KAAKnI,IAEvB,GAAI,IAAe,IAAQ,IAAe,GAAM,CAC/C,IAAI28F,EAAqBx0F,KAAK+6F,YAE1BpN,EAAa3tF,KAAKixF,YAClBtD,GAAcA,EAAWxxF,OAAS,GACrC,IAAmBwxF,EAAWtoF,YAAY,SAACypF,GAC1C,IAAI2F,EAAqB3F,EAAUuE,mBAC/BqB,EAAmB5F,EAAU6F,iBAEjC,GAAI,IAAeF,IAAe,IAAeC,GAAW,CAE3D,GAAI7+F,EAAQ4+F,EACX,OAAO,EAGR,GAAI,IAAgB,CAAEh7F,MAAOg7F,EAAY76F,IAAK86F,GAAY,CAAEj7F,MAAO,EAAKG,IAAK,IAAQ,CACpF66F,EAAal9F,KAAKM,IAAI48F,EAAY,GAClCC,EAAWn9F,KAAKK,IAAI88F,EAAU,GAE9B,IAAI5H,EAAoBgC,EAAUhC,UAG9Bj3F,EAAQ6+F,EACX,IAAQA,EAAWD,IAAe,EAAI3H,GAG9Bj3F,EAAQ4+F,IAKhB5+F,EAAQ4+F,GAAc5+F,EAAQ4+F,GAAc3H,IAK/C,OAAO,KAeT,OATK9sF,KAAKsrF,aAIG/zF,KAAK2uE,IAAIrwE,GAAS0B,KAAKg0F,OAASh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,SAAYh0F,KAAK2uE,IAAIlmE,KAAKnI,KAAON,KAAKg0F,OAASh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,SAHnI11F,EAAQ,GAAO2+F,GAY9B,OAAO,GAMD,YAAAhnB,iBAAP,WACC,YAAMA,iBAAgB,WAClBxtE,KAAKgkF,YACRhkF,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAASt5D,WAAQ6W,KAElB1M,KAAK0pD,eAWA,YAAAiwC,gBAAP,SAAuBj+F,GACtBA,EAAW,IAAYA,EAAU,IAEjC,IAAI9D,EAAcoI,KAAKpI,IACnBC,EAAcmI,KAAKnI,IAEvB,GAAI,IAAeD,IAAQ,IAAeC,GAAM,CAE/C,IAAI,EAAqBA,EAAMD,EAE3B,EAAgB,KAEhB+1F,EAAa3tF,KAAKixF,YAyDtB,OAvDItD,GAECA,EAAWxxF,OAAS,GACvB,IAAmBwxF,EAAWtoF,YAAY,SAACypF,GAC1C,IAAIkM,EAA6BlM,EAAUhB,cACvCmN,EAA2BnM,EAAUf,YAErCmN,EAA0BpM,EAAUuE,mBACpC8H,EAAwBrM,EAAU6F,iBAEtC,GAAI,IAAeuG,IAAoB,IAAeC,GAAgB,CAErE,GAAID,EAAkBrjG,EACrB,OAAO,EAGR,GAAI,IAAgB,CAAE4B,MAAOyhG,EAAiBthG,IAAKuhG,GAAiB,CAAE1hG,MAAO7B,EAAKgC,IAAK/B,IAAQ,CAE9FqjG,EAAkB,IAAUA,EAAiBtjG,GAC7CujG,EAAgB,IAAUA,EAAetjG,GAEzC,IAAIi1F,EAAoBgC,EAAUhC,UAKlC,GAHA,IAAeqO,EAAgBD,IAAoB,EAAIpO,GAGnDpxF,EAAWu/F,EACdrjG,IAAQujG,EAAgBD,IAAoB,EAAIpO,QAG5C,KAAIpxF,EAAWs/F,GAOnB,OADA,EAAQE,GADqBx/F,EAAWs/F,IAAuBC,EAAmBD,IACvCG,EAAgBD,IACpD,EAGT,OAAO,MAMN,IAAe,KAElB,EADGl7F,KAAKsrF,YACA/zF,KAAKa,IAAIb,KAAK6sC,GAAI1oC,GAAanE,KAAK2uE,IAAIlmE,KAAKnI,KAAON,KAAKg0F,OAASh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,QAAWh0F,KAAK2uE,IAAIlmE,KAAKpI,KAAOL,KAAKg0F,QAAUh0F,KAAKg0F,QAGhJ7vF,EAAW,EAAa9D,GAI3B,IAWF,YAAAwjG,SAAP,SAAgB9gG,GACf,OAAO0F,KAAK25F,gBAAgB35F,KAAKuxF,gBAAgB,CAAEj3F,EAAGA,EAAGC,EAAG,MAStD,YAAA8gG,SAAP,SAAgB9gG,GACf,OAAOyF,KAAK25F,gBAAgB35F,KAAKuxF,gBAAgB,CAAEj3F,EAAG,EAAGC,EAAGA,MAUtD,YAAAg3F,gBAAP,SAAuBr2F,GACtB,OAAI8E,KAAKutF,oBAAoB,GACrB,EAAIvtF,KAAKutF,SAASgE,gBAAgBr2F,GAGlC8E,KAAKutF,SAASgE,gBAAgBr2F,IAO7B,YAAAogG,cAAV,SAAwB1jG,EAAaC,GACpC,OAAOmI,KAAK81D,QAAQ,CAAC,CAAEzrB,SAAU,eAAgBla,KAAMnwB,KAAKs5F,aAAcppE,GAAIt4B,GAAO,CAAEyyC,SAAU,eAAgBla,KAAMnwB,KAAKq5F,aAAcnpE,GAAIr4B,IAAQmI,KAAKu7F,oBAAqBv7F,KAAKw7F,oBAS/K,YAAAhC,UAAP,sBAECx5F,KAAKkwF,kBAEL,IAAIt4F,EAAc9B,OAAO2lG,kBACrB5jG,EAAc/B,OAAO4lG,kBAiEzB,GA9DK,IAAe17F,KAAKo5F,cAAiB,IAAep5F,KAAKk5F,eAC7Dl5F,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,IAAKA,EAAOuP,aAAc,CAEzB,IAAIC,EAAoBxP,EAAOx0F,IAAI,GAC/B,IAAegkG,IAAeA,EAAYhkG,IAC7CA,EAAMgkG,GAGP,IAAIC,EAAoBzP,EAAOv0F,IAAI,GAE/B,IAAegkG,IAAeA,EAAYhkG,IAC7CA,EAAMgkG,OAKL77F,KAAKg5F,uBACRh5F,KAAKqnF,WAAWngF,MAAK,SAACnN,GACrB,IAAKA,EAAM4hG,aAAc,CACxB,IAAIrjG,EAAW,IAAUyB,EAAMlE,MAAOkE,EAAM26F,UACxCn8F,EAAW,IAAUwB,EAAMlE,MAAOkE,EAAM26F,WAExCp8F,EAAWV,IAAQ,IAAeA,MACrCA,EAAMU,IAEHC,EAAWV,IAAQ,IAAeA,MACrCA,EAAMU,QAOPyH,KAAKsrF,aACJ1zF,GAAO,GACVoI,KAAK4lE,mBAAmB,IAAIzvE,MAAM,qDAAqD,GAI9E,GAAPyB,GAAmB,GAAPC,IACfA,EAAM,GACND,GAAO,IAIJ,IAAeoI,KAAKo5F,eACvBxhG,EAAMoI,KAAKo5F,aAGR,IAAep5F,KAAKk5F,eACvBrhG,EAAMmI,KAAKk5F,aAGRl5F,KAAK4pD,YACRhyD,EAAMoI,KAAK4pD,UAAUnmD,MAAM,MAAO7L,IAG/BoI,KAAK4pD,YACR/xD,EAAMmI,KAAK4pD,UAAUnmD,MAAM,MAAO5L,IAG9B,IAAeD,IAAS,IAAeC,GAA5C,CAIAmI,KAAK87F,SAAWlkG,EAChBoI,KAAK+7F,SAAWlkG,EAEZD,GAAO9B,OAAO2lG,oBACjB7jG,OAAM8U,GAEH7U,GAAO/B,OAAO4lG,oBACjB7jG,OAAM6U,GAGP,IAAIsvF,EAAch8F,KAAKu0F,iBAAiB38F,EAAKC,GAO7C,GAJAD,EAAMoI,KAAKi8F,OAAOrkG,IAClBC,EAAMmI,KAAKk8F,OAAOrkG,IAGRD,GAAO,EAAIL,KAAKa,IAAI,GAAI,IAAK,CACtC,GAAIP,EAAMD,GAAO,EAChBoI,KAAK44F,cAAgB/gG,EAAMD,GAAO,MAE9B,CAGJ,IAAI2sB,EAAmBhtB,KAAK2uE,IAAI3uE,KAAK6B,IAAIvB,IAAQN,KAAKg0F,OAGlD4Q,EAAQ5kG,KAAKa,IAAI,GAAIb,KAAKU,MAAMssB,IAGpC43E,GAAgB,GAEhBn8F,KAAK44F,aAAeuD,EAErBvkG,GAAOoI,KAAK44F,aACZ/gG,GAAOmI,KAAK44F,aAGbhhG,IAAQC,EAAMD,GAAOoI,KAAKo8F,SAC1BvkG,IAAQA,EAAMD,GAAOoI,KAAKq8F,SAE1B,IAAIruE,EAAShuB,KAAKs8F,aACd,IAAet8F,KAAKk5F,eACvBlrE,GAAS,GAGV,IAAI6rE,EAA0B75F,KAAK85F,aAAaliG,EAAKC,EAAKmkG,EAAKh8F,KAAKsvF,WAAYthE,GAiDhF,GA/CAp2B,EAAMiiG,EAAWjiG,IAGjBokG,GAFAnkG,EAAMgiG,EAAWhiG,KAELD,EAGZiiG,EAAa75F,KAAK85F,aAAaliG,EAAKC,EAAKA,EAAMD,EAAKoI,KAAKsvF,YAAY,GAErE13F,EAAMiiG,EAAWjiG,IACjBC,EAAMgiG,EAAWhiG,IAGbmI,KAAKs8F,eAEP1kG,EADG,IAAeoI,KAAKo5F,aACjBp5F,KAAKo5F,YAGLp5F,KAAK87F,UAIXjkG,EADG,IAAemI,KAAKk5F,aACjBl5F,KAAKk5F,YAGLl5F,KAAK+7F,UAGFnkG,GAAO,OAChBA,GAAOoI,KAAK44F,aACZ/gG,GAAOmI,KAAK44F,cAGbhhG,IAAQC,EAAMD,GAAOoI,KAAKo8F,SAC1BvkG,IAAQA,EAAMD,GAAOoI,KAAKq8F,UAGvBr8F,KAAK4pD,YACRhyD,EAAMoI,KAAK4pD,UAAUnmD,MAAM,MAAO7L,IAG/BoI,KAAK4pD,YACR/xD,EAAMmI,KAAK4pD,UAAUnmD,MAAM,MAAO5L,IAGnCmI,KAAKi6F,MAAQJ,EAAW11F,MAGnBnE,KAAKs5F,cAAgB1hG,GAAOoI,KAAKq5F,cAAgBxhG,IAAQ,IAAeD,IAAQ,IAAeC,GAAM,CAEzG,IAAI2+D,EAAYx2D,KAAKu8F,iBAErB,GAAIv8F,KAAK24F,kBAAoB,IAAe34F,KAAKs5F,eAAiB,IAAet5F,KAAKq5F,eAAiBr5F,KAAK40D,OAAQ,CACnH,GAAK4B,IAAcA,EAAUW,cAAiBn3D,KAAKw8F,WAAa3kG,GAAOmI,KAAKy8F,WAAa7kG,EACxF,OAGAoI,KAAKy8F,UAAY7kG,EACjBoI,KAAKw8F,UAAY3kG,GAEjB2+D,EAAYx2D,KAAKs7F,cAAc1jG,EAAKC,MAElB2+D,EAAUW,cAC3BX,EAAUx3D,OAAOmgD,GAAG,oBAAqBn/C,KAAKioF,kBAAmBjoF,MAEjEw2D,EAAUx3D,OAAOmgD,GAAG,kBAAkB,WAErC,EAAKitC,OAAOllF,MAAK,SAACklF,GACjBA,EAAO/hC,cAER,EAAK49B,oBACL,EAAKyU,mCAEN18F,KAAKu8F,iBAAmB/lC,GAGxBx2D,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAO/hC,cAITrqD,KAAKioF,oBACLjoF,KAAKyB,oBAAoB,mBACzBzB,KAAK08F,oCAGF,CACJ,GAAKlmC,IAAcA,EAAUW,cAAiBn3D,KAAKw8F,WAAa3kG,GAAOmI,KAAKy8F,WAAa7kG,EACxF,OAGAoI,KAAKs5F,aAAe1hG,EACpBoI,KAAKq5F,aAAexhG,EAEpBmI,KAAKy8F,UAAY7kG,EACjBoI,KAAKw8F,UAAY3kG,EAEjBmI,KAAK4pF,sBACL5pF,KAAKyB,oBAAoB,oBAI5BzB,KAAK24F,kBAAmB,EACxB34F,KAAK+6F,YAAc/6F,KAAKu0F,iBAAiB38F,EAAKC,KAcrC,YAAAokG,OAAV,SAAiBpmG,GAChB,OAAOA,GAcE,YAAAqmG,OAAV,SAAiBrmG,GAChB,OAAOA,GAmBD,YAAAikG,aAAP,SAAoBliG,EAAaC,EAAa28F,EAAoBrE,EAAmBwM,GAGhFxM,GAAa,IAChBA,EAAY,GAGbA,EAAY54F,KAAKQ,MAAMo4F,GAEvB,IAAIyM,EAAqBhlG,EACrBilG,EAAqBhlG,EAGN,IAAf28F,IACHA,EAAaj9F,KAAK6B,IAAIvB,IAIvB,IAAI0sB,EAAmBhtB,KAAK2uE,IAAI3uE,KAAK6B,IAAIo7F,IAAej9F,KAAKg0F,OAGzD4Q,EAAQ5kG,KAAKa,IAAI,GAAIb,KAAKU,MAAMssB,IAKhCu4E,EAFJX,GAAgB,GAGZQ,IACHG,EAAQ,GAGJ98F,KAAKsrF,aAwBL1zF,GAAO,IAEVA,EAAMoI,KAAKoO,WAIRxW,GAAOssB,MACVtsB,EAAM,GAGHC,IAAQqsB,MACXrsB,EAAM,IAGPD,EAAML,KAAKa,IAAI,GAAIb,KAAKU,MAAMV,KAAK2uE,IAAI3uE,KAAK6B,IAAIxB,IAAQL,KAAKg0F,SAC7D1zF,EAAMN,KAAKa,IAAI,GAAIb,KAAKc,KAAKd,KAAK2uE,IAAI3uE,KAAK6B,IAAIvB,IAAQN,KAAKg0F,SAEzDvrF,KAAKs8F,eACJt8F,KAAKo5F,YAAc,IACrBxhG,EAAMoI,KAAKo5F,aAETp5F,KAAKk5F,YAAc,IACrBrhG,EAAMmI,KAAKk5F,gBA3CTyD,GACH/kG,EAAML,KAAKU,MAAML,EAAMukG,GAASA,EAEhCtkG,EAAMN,KAAKc,KAAKR,EAAMskG,GAASA,IAG/BvkG,EAAML,KAAKc,KAAKT,EAAMukG,GAASA,EAAQW,EAEvCjlG,EAAMN,KAAKU,MAAMJ,EAAMskG,GAASA,EAAQW,GAIrCllG,EAAM,GAAKglG,GAAc,IAC5BhlG,EAAM,GAGHC,EAAM,GAAKglG,GAAc,IAC5BhlG,EAAM,IA2CR0sB,EAAWhtB,KAAK2uE,IAAI3uE,KAAK6B,IAAIo7F,IAAej9F,KAAKg0F,OACjD4Q,EAAQ5kG,KAAKa,IAAI,GAAIb,KAAKU,MAAMssB,IAChC43E,GAAgB,GAGhB,IAAIh4F,EAAO5M,KAAKc,KAAMm8F,EAAarE,EAAagM,GAASA,EAErD7B,EAAY/iG,KAAKa,IAAI,GAAIb,KAAKU,MAAMV,KAAK2uE,IAAI3uE,KAAK6B,IAAI+K,IAAS5M,KAAKg0F,SAIpEwR,EAAsBxlG,KAAKc,KAAK8L,EAAOm2F,GAGvCyC,EAAc,EACjBA,EAAc,GAENA,GAAe,GAAKA,EAAc,IAC1CA,EAAc,GAIf54F,EAAO5M,KAAKc,KAAK8L,GAAQm2F,EAAYyC,IAAgBzC,EAAYyC,EAE7D/8F,KAAKg9F,aAAelnG,OAAOwI,WAAa6F,GAAQ,IAAWA,EAAMnE,KAAKg9F,gBACzE74F,EAAO,IAAWA,EAAMnE,KAAKg9F,eAG9B,IAAIzC,EAAmB,EAQvB,GANID,EAAY,IAEfC,EAAWhjG,KAAKQ,MAAMR,KAAK6B,IAAI7B,KAAK2uE,IAAI3uE,KAAK6B,IAAIkhG,IAAc/iG,KAAKg0F,SAAW,EAE/EpnF,EAAO,IAAYA,EAAMo2F,KAErBv6F,KAAKsrF,YAAa,CAEtB,IAAI2R,EAAW1lG,KAAKU,MAAML,EAAMuM,GAEhCvM,EAAM,IAAYuM,EAAO84F,EAAU1C,GAEnC,IAAI2C,OAAQ,GAMXA,EAJIP,EAIOplG,KAAKU,MAAMJ,EAAMsM,GAHjB5M,KAAKc,KAAKR,EAAMsM,KAMZ84F,GACfC,KAGDrlG,EAAM,IAAYsM,EAAO+4F,EAAU3C,IAEzBsC,IACThlG,GAAYsM,GAGTvM,EAAMglG,IACThlG,GAAYuM,GAId,MAAO,CAAEvM,IAAKA,EAAKC,IAAKA,EAAKsM,KAAMA,IAcpC,sBAAW,kBAAG,C,IAUd,WACC,IAAIvM,EAAMoI,KAAKs5F,aAIf,OAHK,IAAe1hG,KACnBA,EAAMoI,KAAKo5F,aAELxhG,G,IAfR,SAAe/B,GACVmK,KAAKo5F,aAAevjG,IACvBmK,KAAKo5F,YAAcvjG,EACnBmK,KAAK0pD,e,gCAqBP,sBAAW,yBAAU,C,IAArB,WACC,OAAO1pD,KAAKo5F,a,gCASb,sBAAW,yBAAU,C,IAArB,WACC,OAAOp5F,KAAKk5F,a,gCAeb,sBAAW,uBAAQ,C,IASnB,WACC,OAAOl5F,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,IACrCmK,KAAK4pF,uB,gCAuBP,sBAAW,uBAAQ,C,IASnB,WACC,OAAO5pF,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,IACrCmK,KAAK4pF,uB,gCAqBP,sBAAW,mBAAI,C,IAAf,WACC,OAAO5pF,KAAKi6F,O,gCAcb,sBAAW,kBAAG,C,IAUd,WACC,IAAIpiG,EAAMmI,KAAKq5F,aAIf,OAHK,IAAexhG,KACnBA,EAAMmI,KAAKk5F,aAELrhG,G,IAfR,SAAehC,GACVmK,KAAKk5F,aAAerjG,IACvBmK,KAAKk5F,YAAcrjG,EACnBmK,KAAK0pD,e,gCA6BP,sBAAW,mCAAoB,C,IAS/B,WACC,OAAO1pD,KAAKujD,iBAAiB,yB,IAV9B,SAAgC1tD,GAC3BmK,KAAKopD,iBAAiB,uBAAwBvzD,IACjDmK,KAAK0pD,c,gCAwBA,YAAA0nC,eAAP,SAAsBhF,GACrB,OAAO,IAAI,IAAc,CACxB,YAAMgF,eAAc,UAAChF,GAErBA,EAAOptF,OAAOmgD,GAAG,kBAAmBn/C,KAAKm9F,qBAAsBn9F,MAAM,GACrEosF,EAAOptF,OAAOmgD,GAAG,2BAA4Bn/C,KAAK08F,8BAA+B18F,MAAM,GACvFA,KAAKhB,OAAOmgD,GAAG,kBAAmBitC,EAAO1iC,WAAY0iC,GAAQ,MAOrD,YAAAsQ,8BAAV,eAEKU,EACAC,EAHL,OAKKC,GAAqB,EAyEzB,GAvEA,IAAWt9F,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnC,IAAKA,EAAOuP,eAAiBvP,EAAOl2B,SAAU,CAEzCk2B,EAAOvgC,UAAYugC,EAAOxlC,WAC7B02C,GAAY,GAGb,IAAIC,EAA6BnR,EAAOgR,aAAa,GACjDI,EAA6BpR,EAAOiR,aAAa,GAEjD,IAAeE,MACb,IAAeH,IAAkBG,EAAqBH,KAC1DA,EAAeG,GAIb,IAAeC,MACb,IAAeH,IAAkBG,EAAqBH,KAC1DA,EAAeG,OAMfx9F,KAAKg5F,uBACRh5F,KAAKqnF,WAAWngF,MAAK,SAACnN,GACrB,IAAKA,EAAM4hG,aAAc,CACxB,IAAIrjG,EAAW,IAAUyB,EAAMlE,MAAOkE,EAAM26F,UACxCn8F,EAAW,IAAUwB,EAAMlE,MAAOkE,EAAM26F,UAExCp8F,EAAW+kG,IACdA,EAAe/kG,GAEZC,EAAW8kG,IACdA,EAAe9kG,OAaf,IAAeyH,KAAKo5F,aAEtBgE,EADGp9F,KAAKs8F,aACOt8F,KAAKo5F,YAGLp5F,KAAKpI,IAGboI,KAAKs8F,eACbc,EAAep9F,KAAK87F,UAGjB,IAAe97F,KAAKk5F,aAEtBmE,EADGr9F,KAAKs8F,aACOt8F,KAAKk5F,YAGLl5F,KAAKnI,IAGbmI,KAAKs8F,eACbe,EAAer9F,KAAK+7F,UAGjBqB,GAAgBC,EAAc,CAEjCD,GAAgBp9F,KAAK44F,aACrByE,GAAgBr9F,KAAK44F,aAErB,IAAI6E,EAAcz9F,KAAK85F,aAAasD,EAAcC,EAAc,EAAGr9F,KAAKsvF,WAAYtvF,KAAKs8F,cACzFc,EAAeK,EAAY7lG,IAC3BylG,EAAeI,EAAY5lG,IAG5B,IAAImkG,EAAch8F,KAAKu0F,iBAAiB6I,EAAcC,GAClDxD,EAA0B75F,KAAK85F,aAAasD,EAAcC,EAAcrB,EAAKh8F,KAAKsvF,YAEtF8N,EAAevD,EAAWjiG,IAC1BylG,EAAexD,EAAWhiG,IAE1BulG,IAAiBC,EAAeD,GAAgBp9F,KAAKo8F,SACrDiB,IAAiBA,EAAeD,GAAgBp9F,KAAKq8F,SAErDe,EAAe,IAAiBA,EAAcp9F,KAAKpI,IAAKoI,KAAKnI,KAC7DwlG,EAAe,IAAiBA,EAAcr9F,KAAKpI,IAAKoI,KAAKnI,KAG7DmkG,EAAMh8F,KAAKu0F,iBAAiB6I,EAAcC,GAC1CxD,EAAa75F,KAAK85F,aAAasD,EAAcC,EAAcrB,EAAKh8F,KAAKsvF,YAAY,GAEjF8N,EAAevD,EAAWjiG,IAC1BylG,EAAexD,EAAWhiG,IAEtBmI,KAAKs8F,eACRc,EAAe,IAAUA,EAAcp9F,KAAKo5F,aAC5CiE,EAAe,IAAUA,EAAcr9F,KAAKk5F,cAE7C,IAAI/0F,EAAO01F,EAAW11F,KAClBnE,KAAKg6F,eACRH,EAAa75F,KAAK09F,SAASN,EAAcC,EAAcl5F,GACvDi5F,EAAevD,EAAWjiG,IAC1BylG,EAAexD,EAAWhiG,IAC1BmI,KAAK0pD,cAENvlD,EAAO01F,EAAW11F,KAGlBnE,KAAK+6F,YAAc/6F,KAAKu0F,iBAAiBv0F,KAAKpI,IAAKoI,KAAKnI,KAExD,IAAI4B,EAAgBuG,KAAKo4F,gBAAgBgF,GACrCxjG,EAAcoG,KAAKo4F,gBAAgBiF,GAGnCC,IAAct9F,KAAKg6F,eACtBvgG,EAAQ,EACRG,EAAM,GAGP,IAAI+jG,EAAc,EACd39F,KAAKg6F,cACR2D,EAAc,EACd39F,KAAKa,SAASu8F,EAAe,IAAMC,EAAcl5F,KAGjDnE,KAAKi6F,MAAQ91F,EACbnE,KAAKm5F,WAAaiE,EAClBp9F,KAAKi5F,WAAaoE,GAGdr9F,KAAK+4F,eACT/4F,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,IAAO,GAAO,EAAO+jG,IAkBtD,sBAAW,2BAAY,C,IASvB,WACC,OAAO39F,KAAKujD,iBAAiB,iB,IAV9B,SAAwB1tD,GACnBmK,KAAKopD,iBAAiB,eAAgBvzD,IACzCmK,KAAK0pD,c,gCAsBP,sBAAW,0BAAW,C,IAStB,WACC,OAAO1pD,KAAKujD,iBAAiB,gB,IAV9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAK0pD,c,gCA+CP,sBAAW,4BAAa,C,IAOxB,WACC,OAAO1pD,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,I,gCAkBxC,sBAAW,oCAAqB,C,IAOhC,WACC,OAAOmK,KAAKujD,iBAAiB,0B,IAR9B,SAAiC1tD,GAChCmK,KAAKopD,iBAAiB,wBAAyBvzD,I,gCAkBhD,sBAAW,2BAAY,C,IASvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAV9B,SAAwB1tD,GACnBmK,KAAKopD,iBAAiB,eAAgBvzD,IACzCmK,KAAK0pD,c,gCA0BP,sBAAW,oCAAqB,C,IAShC,WACC,OAAO1pD,KAAKujD,iBAAiB,0B,IAV9B,SAAiC1tD,GAC5BmK,KAAKopD,iBAAiB,wBAAyBvzD,IAClDmK,KAAK0pD,c,gCAcG,YAAAyzC,qBAAV,sBAIC,GAHAn9F,KAAK24F,kBAAmB,EACxB34F,KAAKw5F,YAEDx5F,KAAKgwF,WAAY,CAGpBhwF,KAAKgkF,UAAU98E,MAAK,SAACioD,GAChBA,EAASpqD,OAASoqD,EAASpqD,MAAM+sD,WAH7B,IAIP,EAAKk+B,WAAWztE,KAAO4sC,EAASpqD,MAAMqgE,kBAiBnC,YAAA6uB,KAAP,SAAY9kC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAC1F,OAAOiG,KAAKutF,SAASM,gBAAgB7tF,KAAKk0F,aAAa/kC,EAAUruD,EAAKugB,EAAU2yE,EAAUj6F,IAAQO,GAa5F,YAAA45F,aAAP,SAAoB/kC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAClG,IAAIlE,EAAgBs5D,EAAS0uC,gBAAgB/8F,GACxC,IAAekzF,KACnBA,EAAW,UAEZ,IAAI3iE,EAAgB89B,EAASn4D,SAASg9F,EAAU,SAE3C,IAAen+F,KACnBA,EAAQmK,KAAKoO,UAETpO,KAAKsrF,aACJj6D,EAAQ,IACXx7B,EAAQ,IAKX,IAAI6F,EAAWsE,KAAKo4F,gBAAgBviG,EAAQw7B,GAM5C,OAJIt3B,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAcD,YAAAy4F,KAAP,SAAYhlC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAC1F,OAAOiG,KAAKutF,SAASM,gBAAgB7tF,KAAKo0F,aAAajlC,EAAUruD,EAAKugB,EAAU2yE,EAAUj6F,IAAQQ,GAa5F,YAAA65F,aAAP,SAAoBjlC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAClG,IAAIlE,EAAgBs5D,EAAS0uC,gBAAgB/8F,GAExC,IAAekzF,KACnBA,EAAW,UAGZ,IAAI3iE,EAAgB89B,EAASn4D,SAASg9F,EAAU,SAE3C,IAAen+F,KACnBA,EAAQmK,KAAKoO,UAETpO,KAAKsrF,aACJj6D,EAAQ,IACXx7B,EAAQ,IAKX,IAAI6F,EAAWsE,KAAKo4F,gBAAgBviG,EAAQw7B,GAK5C,OAJIt3B,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAeD,YAAAC,SAAP,SAAgBwzD,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAC9F,IAAIlE,EAAgBs5D,EAAS0uC,gBAAgB/8F,GACzCuwB,EAAgB89B,EAASn4D,SAASg9F,EAAU,SAE3C,IAAen+F,KACnBA,EAAQmK,KAAKoO,WAGd,IAAI1S,EAAWsE,KAAKo4F,gBAAgBviG,EAAQw7B,GAK5C,OAJIt3B,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnDoG,KAAKsxF,gBAAgB51F,IAatB,YAAA+1F,gBAAP,SAAuBh4F,EAAeG,EAAaynB,GAClD,IAAIysE,EAAwB9tF,KAAKo4F,gBAAgB3+F,GAC7Cs0F,EAAsB/tF,KAAKo4F,gBAAgBx+F,GAE/C,OAAOoG,KAAK0xF,qBAAqB5D,EAAeC,IAc1C,YAAA0E,eAAP,SAAsB/2F,GACrB,IAAI7F,EAAgB,IAAYmK,KAAK25F,gBAAgBj+F,GAAWsE,KAAKq4F,mBAAqBr4F,KAAK89F,uBAC3FC,EAAW/9F,KAAKwtD,QAAQ8K,gBAAgB30C,OAAO9tB,GACnD,OAAKmK,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkBs6F,GAHvCA,GAeF,YAAAC,aAAP,SAAoBvJ,EAAoBC,EAAkBuJ,EAA0Bx4B,GACnF,IAAIhsE,GAAiBg7F,EAAaz0F,KAAKpI,MAAQoI,KAAKnI,IAAMmI,KAAKpI,KAC3DgC,GAAe86F,EAAW10F,KAAKpI,MAAQoI,KAAKnI,IAAMmI,KAAKpI,KAE3DoI,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,GAAOqkG,EAAgBx4B,IAQvD,sBAAW,wBAAS,C,IAApB,WACC,OAAKzlE,KAAKg6F,aAIFh6F,KAAKm5F,WAHL,IAAUn5F,KAAKpI,IAAKoI,KAAKm5F,a,gCAWlC,sBAAW,wBAAS,C,IAApB,WACC,OAAKn5F,KAAKg6F,aAIFh6F,KAAKi5F,WAHL,IAAUj5F,KAAKnI,IAAKmI,KAAKi5F,a,gCAY3B,YAAApE,cAAP,sBAEC,YAAMA,cAAa,WACnB,IAAIlH,EAAa3tF,KAAKixF,YAClBtD,GAAcA,EAAWxxF,OAAS,GAErCwxF,EAAWzmF,MAAK,SAAC4nF,GAChB,IAAI2F,EAAqB3F,EAAUuE,mBAC/BqB,EAAmB5F,EAAU6F,iBAG7BuJ,EAAuBxJ,EAAWD,EAClC0J,EAA6B5mG,KAAKc,KAAK6lG,EAAepP,EAAUhC,WAAa,EAAKwC,YAAc,EAAKz3F,IAAM,EAAKD,KAGhHwmG,EAAkB,EAAKtE,aAAarF,EAAYC,EAAUwJ,EAAcC,GAAoB,GAEhGrP,EAAU4L,aAAe0D,EAAgBj6F,KACzC2qF,EAAU0L,YAAc4D,EAAgBxmG,IACxCk3F,EAAU2L,YAAc2D,EAAgBvmG,OAI1CmI,KAAK+6F,YAAc/6F,KAAKu0F,iBAAiBv0F,KAAKpI,IAAKoI,KAAKnI,MAelD,YAAAm9F,iBAAP,SAAwBt5F,GACvB,IAAI7F,EAAgBmK,KAAK25F,gBAAgBj+F,GACzC,OAAOsE,KAAKs4D,gBAAgB30C,OAAO9tB,IAQ7B,YAAAwoG,cAAP,SAAqBxoG,GACpBmK,KAAKmqF,sBAAsBnqF,KAAKo4F,gBAAgBviG,KAQ1C,YAAAgrD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKpI,IAAMkpB,EAAOlpB,IAClBoI,KAAKnI,IAAMipB,EAAOjpB,IAClBmI,KAAK64F,gBAAkB/3E,EAAO+3E,gBAC9B74F,KAAKw4F,WAAa13E,EAAO1S,WAkB1B,sBAAW,2BAAY,C,IAmBvB,WACC,OAAOpO,KAAKujD,iBAAiB,iB,IApB9B,SAAwB2mC,GAAxB,WACKlqF,KAAKopD,iBAAiB,eAAgB8gC,GAAM,IAC3CA,IACHlqF,KAAKkpD,WAAW1qD,KAAK0rF,EAAKlrF,OAAOmgD,GAAG,kBAAmBn/C,KAAK08F,8BAA+B18F,MAAM,IACjGA,KAAKkpD,WAAW1qD,KAAK0rF,EAAKlrF,OAAOmgD,GAAG,2BAA4Bn/C,KAAK08F,8BAA+B18F,MAAM,IAC1GA,KAAKhB,OAAOmgD,GAAG,QAASn/C,KAAK08F,8BAA+B18F,MAAM,GAClEA,KAAKhB,OAAOmgD,GAAG,kBAAkB,WAChC,EAAKmxC,aACL,EAAKpnC,WAAW1qD,KAAK,IAASQ,OAAOggE,KAAK,aAAa,WACtD,EAAK09B,sCAEJ18F,MAAM,K,gCAmBF,YAAA09F,SAAV,SAAmB9lG,EAAaC,EAAasM,GAC5C,IAAI+lF,EAAOlqF,KAAKg6F,aAChB,GAAI9P,EAAM,CAEL,IAAetyF,KAClBA,EAAMoI,KAAKpI,KAER,IAAeC,KAClBA,EAAMmI,KAAKnI,KAGR,IAAesM,KAClBA,EAAOnE,KAAKi6F,OAGb,IAAI97F,EAAgB5G,KAAKQ,OAAOmyF,EAAKiQ,UAAYjQ,EAAKgQ,WAAahQ,EAAK/lF,MACpEm6F,EAAe/mG,KAAKQ,OAAOF,EAAMD,GAAOuM,GAE5C,GAAI,IAAehG,IAAU,IAAemgG,GAQ3C,IAPA,IAAIC,GAAS,EACT3sF,EAAI,EACJsT,EAAqB,KAAbrtB,EAAMD,GACd4mG,EAAO5mG,EACP6mG,EAAO5mG,EACP6mG,EAAQv6F,EAEK,GAAVo6F,GAMN,GALAA,EAASv+F,KAAK2+F,UAAUH,EAAMC,EAAMC,EAAOvgG,KAC3CyT,EACQ,MACP2sF,GAAS,GAELA,EAsBJ3mG,EAAM4mG,EACN3mG,EAAM4mG,EACNt6F,EAAOu6F,MAxBK,CAGR9sF,EAAI,GAAKra,KAAKQ,MAAM6Z,EAAI,IAC3B4sF,EAAO5mG,EAAMstB,EAAOtT,EACjBha,GAAO,GAAK4mG,EAAO,IACrBA,EAAO,KAIRC,EAAO5mG,EAAMqtB,EAAOtT,IACT,GAAK6sF,EAAO,IACtBA,EAAO,GAIT,IAAI5E,EAAa75F,KAAK85F,aAAa0E,EAAMC,EAAMA,EAAOD,EAAMx+F,KAAKsvF,YAAY,GAC7EkP,EAAO3E,EAAWjiG,IAClB6mG,EAAO5E,EAAWhiG,IAClB6mG,EAAQ7E,EAAW11F,MAYvB,MAAO,CAAEvM,IAAKA,EAAKC,IAAKA,EAAKsM,KAAMA,IAM1B,YAAAw6F,UAAV,SAAoB/mG,EAAaC,EAAasM,EAAchG,GAE3D,IADA,IAAImgG,GAAgBzmG,EAAMD,GAAOuM,EACxB9H,EAAI,EAAGA,EAAI8B,EAAO9B,IAC1B,GAAI,IAAYiiG,EAAejiG,EAAG,IAAM8B,GAASmgG,EAAejiG,GAAK8B,EACpE,OAAO,EAGT,OAAO,GASD,YAAAgoE,cAAP,SAAqB33D,GAEhBA,GAGC,IAAeA,EAAOwrF,eAAiB,IAAexrF,EAAOwrF,gBAC5Dh6F,KAAKkrB,IAAIizB,OAAO3vC,EAAOwrF,cAC1BxrF,EAAOwrF,aAAeh6F,KAAKkrB,IAAIg0B,OAAO1wC,EAAOwrF,eAG7Ch6F,KAAK4+F,iBAAiBpgG,KAAK,gCAAmCgQ,EAAOwrF,aAAe,qCAC7ExrF,EAAOqwF,QAMjB,YAAM14B,cAAa,UAAC33D,IAGtB,EApyEA,CAAsE,GA4yEtE,IAASpP,kBAAT,UAA0C,GAC1C,IAASA,kBAAT,kBAAkD,GCv7ElD,mBAyCC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,gBACjB,EAAK4O,a,EA+CP,OA3FmC,iBAoDlC,sBAAW,wBAAS,C,IAapB,WACC,OAAO3pD,KAAKujD,iBAAiB,c,IAd9B,SAAqB1tD,GAChBmK,KAAKopD,iBAAiB,YAAavzD,KACtCmK,KAAKy0F,WAAa5+F,EAAMgvB,UACpB7kB,KAAKkqF,OACRlqF,KAAKkqF,KAAKxgC,aACV1pD,KAAKkqF,KAAK0D,sB,gCAiBb,sBAAW,sBAAO,C,IAalB,WACC,OAAO5tF,KAAKujD,iBAAiB,Y,IAd9B,SAAmB1tD,GACdmK,KAAKopD,iBAAiB,UAAWvzD,KACpCmK,KAAK00F,SAAW7+F,EAAMgvB,UAClB7kB,KAAKkqF,OACRlqF,KAAKkqF,KAAKxgC,aACV1pD,KAAKkqF,KAAK0D,sB,gCAYd,EA3FA,CAAmC,IAmGnC,IAASxuF,kBAAT,cAA8C,G,aC1H9C,eAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,mBACjB,EAAK4O,aAEL,EAAK5wD,OAAOgsB,KAAO,GACnB,EAAKhsB,OAAO+lG,QAAU,G,EAsCxB,OAtDsC,iBAwBrC,sBAAW,mBAAI,C,IAQf,WACC,OAAO9+F,KAAK8xC,MAAL,M,IATR,SAAgB/sB,GACf/kB,KAAK++F,QAAQ,OAAQh6E,GACrB/kB,KAAKnK,MAAQkvB,EAAKF,W,gCAgBnB,sBAAW,sBAAO,C,IAQlB,WACC,OAAO7kB,KAAK8xC,MAAL,S,IATR,SAAmB/sB,GAClB/kB,KAAK++F,QAAQ,UAAWh6E,GACxB/kB,KAAK00F,SAAW3vE,EAAKF,W,gCAUvB,EAtDA,CAAsC,IAkNtC,eAiSC,mBAGC,cAAO,K,OApQE,EAAAm6E,YAAsB,EAmDzB,EAAAC,cAAqC,IAAI39C,EAAA,EAoCzC,EAAA49C,eAAsC,IAAI59C,EAAA,EA4B1C,EAAA69C,YAAyE,IAAI/Y,EAAA,EAqB7E,EAAAgZ,wBAAqF,IAAIhZ,EAAA,EA8CtF,EAAAiZ,kBAAmC,CAAEC,SAAU,MAAOnhG,MAAO,GAI7D,EAAAohG,gBAA+C,GAO/C,EAAAC,eAA8C,GA4B9C,EAAAC,cAAwB,EAc3B,EAAAC,SAAwC,GASxC,EAAAC,SAAwC,GAiB9C,EAAK5kD,UAAY,WAEjB,EAAKqO,iBAAiB,kBAAkB,GACxC,EAAKw2C,aAAc,EACnB,EAAKl7B,gBAAkB,UAEvB,EAAKtb,iBAAiB,aAAa,GACnC,EAAKy2C,WAAa,IAElB,EAAK7gG,OAAOmgD,GAAG,YAAa,EAAK2gD,eAAgB,GAAM,GAMvD,EAAKb,cAAc1zE,QAAQ,CAC1B,CAAE+zE,SAAU,cAAenhG,MAAO,GAClC,CAAEmhG,SAAU,cAAenhG,MAAO,GAClC,CAAEmhG,SAAU,cAAenhG,MAAO,IAClC,CAAEmhG,SAAU,cAAenhG,MAAO,IAClC,CAAEmhG,SAAU,cAAenhG,MAAO,KAClC,CAAEmhG,SAAU,cAAenhG,MAAO,KAClC,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,IAC3B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,QAASnhG,MAAO,GAC5B,CAAEmhG,SAAU,QAASnhG,MAAO,GAC5B,CAAEmhG,SAAU,QAASnhG,MAAO,GAC5B,CAAEmhG,SAAU,QAASnhG,MAAO,GAC5B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,IAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,IAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAC3B,CAAEmhG,SAAU,OAAQnhG,MAAO,OAG5B,EAAK+gG,eAAe3zE,QAAQ,CAC3B,CAAE+zE,SAAU,cAAenhG,MAAO,GAClC,CAAEmhG,SAAU,cAAenhG,MAAO,IAClC,CAAEmhG,SAAU,cAAenhG,MAAO,KAClC,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,GAC7B,CAAEmhG,SAAU,SAAUnhG,MAAO,IAC7B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,MAAOnhG,MAAO,GAC1B,CAAEmhG,SAAU,OAAQnhG,MAAO,GAC3B,CAAEmhG,SAAU,QAASnhG,MAAO,GAC5B,CAAEmhG,SAAU,OAAQnhG,MAAO,KAI5B,EAAK26F,cAAgB,OAGrB,EAAKnvC,a,EAklEP,OAt8EqE,iBA4O7D,YAAAmmC,SAAP,SAAgB3gC,GACf,IAAIt5D,EAAQs5D,EAASt5D,MACjBq0F,EAAO/6B,EAASvtD,UAChBm+F,EAAe7V,EAAK8V,cACpBC,EAAe,KAAkBF,EAAaT,SAAUS,EAAa5hG,OAErE5G,KAAKQ,OAAOlC,EAAQq0F,EAAKtyF,KAAOqoG,GAAgB,GAAK1oG,KAAKQ,MAAMR,KAAKQ,OAAOlC,EAAQq0F,EAAKtyF,KAAOqoG,GAAgB,GACnH9wC,EAASq/B,SAASpiC,YAAa,EAG/B+C,EAASq/B,SAASpiC,YAAa,GAqIvB,YAAAlC,sBAAV,WACC,YAAMA,sBAAqB,WAGtBlqD,KAAKm/F,YAAYhhD,OAAO,gBAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,cAAelwD,KAAKu4D,SAASsc,UAAU,sBAE3D70E,KAAKm/F,YAAYhhD,OAAO,WAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,SAAUlwD,KAAKu4D,SAASsc,UAAU,iBAEtD70E,KAAKm/F,YAAYhhD,OAAO,WAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,SAAUlwD,KAAKu4D,SAASsc,UAAU,iBAEtD70E,KAAKm/F,YAAYhhD,OAAO,SAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,OAAQlwD,KAAKu4D,SAASsc,UAAU,eAEpD70E,KAAKm/F,YAAYhhD,OAAO,QAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,MAAOlwD,KAAKu4D,SAASsc,UAAU,cAEnD70E,KAAKm/F,YAAYhhD,OAAO,SAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,OAAQlwD,KAAKu4D,SAASsc,UAAU,cAEpD70E,KAAKm/F,YAAYhhD,OAAO,UAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,QAASlwD,KAAKu4D,SAASsc,UAAU,gBAErD70E,KAAKm/F,YAAYhhD,OAAO,SAC5Bn+C,KAAKm/F,YAAYjvC,OAAO,OAAQlwD,KAAKu4D,SAASsc,UAAU,eAGpD70E,KAAKo/F,wBAAwBjhD,OAAO,gBACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,cAAelwD,KAAKu4D,SAASsc,UAAU,sBAEvE70E,KAAKo/F,wBAAwBjhD,OAAO,WACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,SAAUlwD,KAAKu4D,SAASsc,UAAU,iBAElE70E,KAAKo/F,wBAAwBjhD,OAAO,WACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,SAAUlwD,KAAKu4D,SAASsc,UAAU,iBAElE70E,KAAKo/F,wBAAwBjhD,OAAO,SACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,OAAQlwD,KAAKu4D,SAASsc,UAAU,cAEhE70E,KAAKo/F,wBAAwBjhD,OAAO,QACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,MAAOlwD,KAAKu4D,SAASsc,UAAU,cAE/D70E,KAAKo/F,wBAAwBjhD,OAAO,SACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,OAAQlwD,KAAKu4D,SAASsc,UAAU,cAEhE70E,KAAKo/F,wBAAwBjhD,OAAO,UACxCn+C,KAAKo/F,wBAAwBlvC,OAAO,QAASlwD,KAAKu4D,SAASsc,UAAU,eAAiB,IAAM70E,KAAKu4D,SAASsc,UAAU,gBAW5G,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQF,YAAA0O,gBAAV,WACC,OAAO,IAAI,IAQL,YAAAnL,kBAAP,WAEC,IAAIxuF,EAAgBuG,KAAKvG,MACrBG,EAAcoG,KAAKpG,IACnBsmG,EAAelgG,KAAKkgG,aACpBC,GAAuBngG,KAAKnI,IAAMmI,KAAKpI,KAAOsoG,EAElDlgG,KAAKy/F,cAAgBz/F,KAAKogG,kBAC1BpgG,KAAK8/F,iBAEL,YAAM7X,kBAAiB,WAEvB,IAAIoY,EAAmB,KAAkBrgG,KAAKsgG,iBAAiBhB,SAAUt/F,KAAKsgG,iBAAiBniG,OAE/F6B,KAAKugG,eAAiBvgG,KAAKnI,IAAMmI,KAAKpI,KAAOyoG,EAE7CrgG,KAAK44F,aAAe54F,KAAKkgG,aAAe,EAIxCzmG,IAAiBG,EAAMH,IAAU,EAAI0mG,IADPngG,KAAKnI,IAAMmI,KAAKpI,KAAOsoG,IAErDlgG,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,IAAO,GAAO,IASvC,YAAA8iG,8BAAP,aASO,YAAAjD,cAAP,sBACC,YAAMA,cAAa,WAEnB,IAAIjF,EAAax0F,KAAKu0F,iBAAiBv0F,KAAKm5F,WAAYn5F,KAAKi5F,YACzDuH,GAAiB,EAGrB,GAAIxgG,KAAKygG,WAAa,IAAejM,GAAa,CACjD,IAAI8L,EAAmBtgG,KAAKsgG,iBAExBI,EAAqBlM,EAAax0F,KAAK2gG,eAAiB,EAAI3gG,KAAK4gG,aAAe5gG,KAAKkgG,aACrFW,OAAa,EACb7gG,KAAK6gG,cACRA,EAAgB,OAAH,IAAG,CAAH,GAAQ7gG,KAAK6gG,gBAG1BA,EAAgB7gG,KAAK8gG,eAAe,EAAGJ,EAAoB1gG,KAAK6/F,WAAY7/F,KAAKk/F,gBAC7E,KAAkB2B,EAAcvB,SAAUuB,EAAc1iG,OAAS,KAAkBmiG,EAAiBhB,SAAUgB,EAAiBniG,SAClI0iG,EAAgB,OAAH,IAAG,CAAH,GAAQP,KAKvBtgG,KAAK+gG,eAAiBF,EACtB,IAAIG,EAAQH,EAAcvB,SAAWuB,EAAc1iG,MAC/C6B,KAAKihG,mBAAqBD,IAC7BhhG,KAAKihG,kBAAoBD,EACzBhhG,KAAKmB,SAAS,uBAGfnB,KAAKosF,OAAOllF,MAAK,SAACklF,GACbA,EAAO8U,UAAY,GAClB9U,EAAO+U,WAAW,EAAKF,qBAC1BT,GAAiB,MAMrB,IAAIT,EAA8B//F,KAAK8gG,eAAe,EAAGtM,EAAYx0F,KAAKsvF,YAEtE,KAAkByQ,EAAaT,SAAUS,EAAa5hG,OAAS6B,KAAKkgG,eACvEH,EAAe,OAAH,IAAG,CAAH,GAAQ//F,KAAKohG,eAG1BphG,KAAKggG,cAAgBD,EACrB//F,KAAKqhG,cAAgB,KAAkBtB,EAAaT,UAGpDt/F,KAAKshG,kBAAoB,KAAkBvB,EAAaT,SAAUS,EAAa5hG,OAC/E6B,KAAKuhG,UAAY,KAAY,IAAI78E,KAAK1kB,KAAKk6F,UAAY,KAAkB6F,EAAaT,SAAUS,EAAa5hG,QAAS4hG,EAAaT,SAAUS,EAAa5hG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,IAAK,IAAIN,KAAK1kB,KAAKpI,MAGjN,IAAWoI,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnC,GAAIA,EAAO8U,UAAY,EAAM,CAC5B,IAAI,EAAgC9U,EAAOnC,aAAa,GAEpDiQ,EAAY,KAAY,IAAIx1E,KAAK,EAAKy0E,WAAiC,IAApB,EAAK+G,cAAsB,EAAKkB,aAAa9B,SAAU,EAAK8B,aAAajjG,MAAO,EAAKshG,cAAe,EAAK+B,IAAIx8E,KAAKH,UACrK48E,EAAevH,EAAUlkG,WACzB0rG,EAAgBtV,EAAOtF,gBAAgB5nC,OAAO,EAAKj/C,KAAKi/C,OAAOuiD,EAAerV,EAAOuV,kBAErFvZ,EAAqB,EACP,GAAd,EAAK3uF,QAGP2uF,EAFGsZ,GACHA,EAAgB,EAAKE,UAAUF,EAAexH,EAAW,IAC9BvyF,MAGdykF,EAAOpI,UAAU6d,iBAAiB,EAAK1I,YAAY,SAAC7+F,GAAM,OAAQA,EAAR,KAAkB,SAI3F,IAAI8mG,EAAe,EAAKA,aACpBjH,EAAY,KAAU,KAAY,IAAIz1E,KAAK,EAAKu0E,YAAamI,EAAa9B,SAAU8B,EAAajjG,MAAO,EAAKshG,cAAe,EAAK+B,IAAIx8E,KAAMo8E,EAAa9B,SAAU8B,EAAajjG,MAAO,EAAKqjG,IAAIx8E,KAAKH,UAEpMi9E,EAAe3H,EAAUnkG,WACzB+rG,EAAc3V,EAAOtF,gBAAgB5nC,OAAO,EAAKj/C,KAAKi/C,OAAO4iD,EAAe1V,EAAOuV,kBACnFlZ,EAAmB2D,EAAOpI,UAAU7nF,OACxB,GAAZ,EAAKvC,MACJmoG,EACHtZ,EAAWsZ,EAAYp6F,OAGvBwyF,GAAa,GACb1R,EAAW2D,EAAOpI,UAAU6d,iBAAiB1H,GAAW,SAAC7/F,GAAM,OAAQA,EAAR,KAAkB,UAElE8xF,EAAOpI,UAAU7nF,QAC/BssF,MAKH2D,EAAOhE,WAAaA,EACpBgE,EAAO3D,SAAWA,GAEb+X,GAAkBpU,EAAO1C,kBAC7B0C,EAAO4V,yBAMD,YAAAJ,UAAV,SAAoBzyC,EAA4B3hB,EAAc1sC,GAC7D,IAAI6G,EAAQwnD,EAASxnD,MAErB,GAAIA,EAAQ,EAAG,CACd,IACIs6F,EADS9yC,EAASvtD,UACQoiF,UAAU7jC,SAASx4C,EAAQ,GAErDu6F,EAAqBD,EAAkBnhG,GAE3C,OAAKohG,GAAgBA,EAAar9E,UAAY2oB,EACtC2hB,EAGAnvD,KAAK4hG,UAAUK,EAAkBz0D,EAAM1sC,GAI/C,OAAOquD,GAUF,YAAAgzC,aAAP,WACC,YAAMA,aAAY,WACb,IAAeniG,KAAKohG,aAAajjG,SACrC6B,KAAKohG,aAAajjG,MAAQ,IAO5B,sBAAW,4BAAa,C,IAAxB,sBACKikG,EAAgBtsG,OAAOwI,UAY3B,OAVA0B,KAAKosF,OAAOllF,MAAK,SAACklF,GACbgW,EAAgB,EAAK5C,eAAepT,EAAOnsF,OAC9CmiG,EAAgB,EAAK5C,eAAepT,EAAOnsF,SAIzCmiG,GAAiBtsG,OAAOwI,WAA8B,GAAjB8jG,IACxCA,EAAgB,KAAkB,QAG5BA,G,gCAUD,YAAA9N,uBAAP,SAA8BlI,GAC7BpsF,KAAKw/F,eAAepT,EAAOnsF,KAAOnK,OAAOwI,WASnC,YAAAm1F,2BAAP,SAAkCrH,GAAlC,WACKA,EACHpsF,KAAKqiG,kBAAkBjW,GAGvBpsF,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,EAAKiW,kBAAkBjW,MAIzBpsF,KAAKsiG,uBAGI,YAAAD,kBAAV,SAA4BjW,GAA5B,WACKhqE,KAAKD,UAAUiqE,EAAOmW,cAAcviG,KAAKC,OAASmiB,KAAKD,UAAUniB,KAAKsgG,oBAEzElU,EAAOmW,cAAcviG,KAAKC,KAAOD,KAAKsgG,iBAEtClU,EAAOoW,YAAYt7F,MAAK,SAACioD,GACxB,EAAKukC,0BAA0BvkC,MAG5BnvD,KAAKygG,WACRzgG,KAAKyiG,gBAAgBrW,KAWjB,YAAAqW,gBAAP,SAAuBrW,GAAvB,WACC,GAAIA,EAAO8U,UAAYlhG,MAAQosF,EAAOpI,UAAU7nF,OAAS,IAAMiwF,EAAOsW,YAAa,CAElF,IAAI,EAA6B,GAC7BpC,EAAmBtgG,KAAKsgG,iBACxB,EAAuB,KAAkBA,EAAiBhB,SAAUgB,EAAiBniG,OAEzF6B,KAAKk/F,eAAeh4F,MAAK,SAACy7F,GACzB,IAAIC,EAAmB,KAAkBD,EAASrD,SAAUqD,EAASxkG,OACjEykG,EAAmB,GAAwBA,EAAoB,EAAK/qG,IAAM,EAAKD,KAClF,EAAU4G,KAAKmkG,MAIbvW,EAAOyW,YACVzW,EAAOyW,UAAU37F,MAAK,SAACpG,EAAKkjF,GAC3BA,EAAU98E,MAAK,SAACioD,GACfA,EAAStP,aAEVmkC,EAAUz6E,WAEX6iF,EAAOyW,UAAUt5F,SAGlB,IAAY,GAAW,SAACo5F,GAEvB,IAAI7hG,EAAM,OAAS,EAAK0yF,WAGpBsP,EAAYH,EAASrD,SAAWqD,EAASxkG,MAEzC4kG,EAAU,IAAI,IAAoB3W,EAAOoW,YAAYvhD,SAASr4C,SAElEwjF,EAAO4W,SAAS9yC,OAAO4yC,EAAWC,GAClC3W,EAAOsW,aAAc,EAErB,IAGIO,EAHAjf,EAAYoI,EAAOoW,YACnBU,EAAuBptG,OAAO4lG,kBAC9Br/F,EAAI,EAGJuwF,EAAuB,GAE3B,IAAaR,EAAOQ,YAAY,SAACuW,EAAOC,GACvC,IAAIC,EAAcF,EACdE,GAAOviG,IAA+B,GAAxBuiG,EAAIvsG,QAAQ,SAC7B81F,EAAWpuF,KAAK6kG,MAKlBrf,EAAU98E,MAAK,SAACioD,GACf,IAAIpqC,EAAOoqC,EAAStrB,QAAQ/iC,GAC5B,GAAIikB,EAAM,CACT,IAAIyoB,EAAOzoB,EAAKF,UACZy+E,EAAc,KAAY,IAAI5+E,KAAK8oB,GAAOm1D,EAASrD,SAAUqD,EAASxkG,MAAO,EAAKqjG,IAAI1tD,eAAgB,EAAK0tD,IAAIx8E,KAC/Gu+E,EAAcD,EAAYz+E,UAE1Bq+E,EAAeK,IAClBN,EAAcF,EAAQ5/F,UAEVw2D,YAAc,GAE1BspC,EAAYO,mBAAmB,QAASpX,EAAOpI,UAAU/iC,SAASwiD,UAAUC,MAAO,GACnFT,EAAYO,mBAAmB,YAAapX,EAAOpI,UAAU/iC,SAASwiD,UAAUE,UAAW,GAC3FV,EAAYO,mBAAmB,QAASpX,EAAOpI,UAAU/iC,SAASwiD,UAAUG,MAAO,GACnFX,EAAYO,mBAAmB,YAAapX,EAAOpI,UAAU/iC,SAASwiD,UAAUI,UAAW,GAE3FZ,EAAYrhG,UAAYwqF,EAExB6W,EAAYlE,QAAQj+F,EAAKwiG,GACzBL,EAAYa,OAASznG,EACrBA,IAEA,IAAYuwF,GAAY,SAACmX,GAExB,IAAIC,EAAU70C,EAASp2D,OAAOgrG,GAC9B,GAAIC,EAAS,CACZ,IAAInuG,EAAQmuG,EAAQnuG,MAChBkD,EAASkqG,EAAYlqG,OAAOgrG,GAC5B,IAAeluG,IAElBkD,EAAOlD,MAAQA,EACfkD,EAAOsyF,aAAex1F,EAEtBkD,EAAOymE,KAAO3pE,EACdkD,EAAOkrG,MAAQpuG,EACfkD,EAAOunD,IAAMzqD,EACbkD,EAAOwnD,KAAO1qD,EACdkD,EAAOk/C,IAAMpiD,EACbkD,EAAOmrG,QAAUruG,EACjBkD,EAAOoF,MAAQ,GAGfpF,EAAOoF,MAAQ,MAKlB,EAAKu1F,0BAA0BuP,EAAaN,GAE5C,IAAavW,EAAO5kC,gBAAgB,SAAC1mD,EAAKw5D,GACzC,IAAM11D,EAAoB9D,EACtBjL,EAAmBs5D,EAAS3kB,WAAY1pC,GAExC,IAAejL,KAClBotG,EAAYkB,eAAgB,EAC5BlB,EAAY79C,YAAYxgD,EAAG/O,OAG7BotG,EAAYmB,eAAiB,CAACj1C,GAC9B+zC,EAAeK,GAGXN,IACH,IAAYrW,GAAY,SAACmX,GACxB,IAAIM,EAAuBjY,EAAOkY,YAAaP,GAC3CC,EAAU70C,EAASp2D,OAAOgrG,GAC9B,GAAIC,EAAS,CACZ,IAAInuG,EAAQmuG,EAAQnuG,MAEpB,GAAI,IAAeA,GAAQ,CAC1B,IAAIkD,EAASkqG,EAAYlqG,OAAOgrG,GAE3B,IAAehrG,EAAOymE,QAC1BzmE,EAAOymE,KAAO3pE,GAGfkD,EAAOkrG,MAAQpuG,GAEXkD,EAAOunD,IAAMzqD,IAAU,IAAekD,EAAOunD,QAChDvnD,EAAOunD,IAAMzqD,IAEVkD,EAAOwnD,KAAO1qD,IAAU,IAAekD,EAAOwnD,SACjDxnD,EAAOwnD,KAAO1qD,GAEX,IAAekD,EAAOk/C,KACzBl/C,EAAOk/C,KAAOpiD,EAGdkD,EAAOk/C,IAAMpiD,EAEdkD,EAAOoF,QAEPpF,EAAOmrG,QAAUnrG,EAAOk/C,IAAMl/C,EAAOoF,MAEjC,IAAepF,EAAOsrG,MACzBtrG,EAAOlD,MAAQkD,EAAOsrG,GACtBtrG,EAAOsyF,aAAetyF,EAAOlD,YAKjC,IAAsBs5D,EAAS3kB,WAAYy4D,EAAYz4D,YAEvD,IAAa4hD,EAAO5kC,gBAAgB,SAAC1mD,EAAKw5D,GACzC,IAAM11D,EAAoB9D,EACtBjL,EAAmBs5D,EAAS3kB,WAAY1pC,GACxC,IAAejL,KAClBotG,EAAYkB,eAAgB,EAC5BlB,EAAY79C,YAAYxgD,EAAG/O,OAI7BotG,EAAYmB,eAAe5lG,KAAK2wD,IAK/B8zC,GACH,IAAsB9zC,EAASwK,YAAaspC,EAAYtpC,mBAK3D35D,KAAKy5F,kBAOG,YAAAqG,eAAV,WACC9/F,KAAKwhG,IAAMxhG,KAAKy4D,eAUV,YAAAi7B,0BAAP,SAAiCvkC,EAA4BwzC,GAA7D,WAEK4B,EAAa,GACb5B,EACH4B,EAAa5B,EAASrD,SAAWqD,EAASxkG,MAG1CwkG,EAAW3iG,KAAKsgG,iBAGjB,IACIxZ,EADmB33B,EAASvtD,UACHklF,gBAAgB5nC,OAAOl/C,KAAKC,KAEzD,IAAakvD,EAASrd,OAAO,SAAChxC,GAC7B,IACI0sC,EADa2hB,EAAStrB,QAAQ/iC,GAClB+jB,UAGZ2/E,EADkB,KAAY,IAAI9/E,KAAK8oB,GAAOm1D,EAASrD,SAAUqD,EAASxkG,MAAO,EAAKshG,cAAe,EAAK+B,IAAIx8E,KACxFH,UACtBi6E,EAAgB,KAAU,IAAIp6E,KAAK8/E,GAAY7B,EAASrD,SAAUqD,EAASxkG,MAAO,EAAKqjG,IAAIx8E,KAE/FmqC,EAASu5B,mBAAmB5nF,EAAK0jG,EAAW,QAC5Cr1C,EAASu5B,mBAAmB5nF,EAAKg+F,EAAQj6E,UAAW,SAEpDiiE,EAAgB52B,OAAOs0C,EAAYD,EAAYp1C,OAevC,YAAAmzC,oBAAV,sBAEC,GAAItiG,KAAKykG,kBAAoB,IAAezkG,KAAKpI,MAAQ,IAAeoI,KAAKnI,KAAM,CAClF,IAAIynG,EAAqBt/F,KAAKohG,aAAa9B,SACvCnhG,EAAgB6B,KAAKohG,aAAajjG,MAElC6B,KAAKixF,aACRjxF,KAAKixF,YAAY1nF,QAMlB,IAHA,IAAIwb,EAAa,KAAY,IAAIL,KAAK1kB,KAAKpI,KAAM0nG,EAAUnhG,EAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAC3F8pE,OAAS,E,aAGZ,KAAU/pE,EAAMu6E,EAAUnhG,EAAO,EAAKqjG,IAAIx8E,KAE1C,IAAIw/E,EAAoBz/E,EAAKF,UACzB6/E,EAAuBF,EAAUxuG,WAEvB,IAAe,EAAKo2F,OAAO/mF,YAAY,SAAC+mF,GACrD,QAASA,EAAOtF,gBAAgB5nC,OAAO,EAAKj/C,KAAKi/C,OAAOwlD,EAAetY,EAAOuV,qBAa1E7S,IAEHA,EAAUgQ,QAAU,IAAIp6E,KAAK8/E,EAAY,GACzC1V,OAAYpiF,GAXRoiF,KACJA,EAA2B,EAAKnB,WAAWxqF,UACjCwhG,UAAY,IAAIjgF,KAAK8/E,GAC/B,EAAKxF,YAAa,I,OAfdj6E,EAAKF,UAAY7kB,KAAKnI,IAAMmI,KAAKkgG,c,MAmCnC,YAAArL,cAAP,sBACC,YAAMA,cAAa,WACnB,IAAIlH,EAAa3tF,KAAKixF,YAClBtD,GACCA,EAAWxxF,OAAS,GAEvBwxF,EAAWzmF,MAAK,SAAC4nF,GAChB,IAAI8V,EAAyBrtG,KAAKc,KAAK,EAAKi3F,YAAc/3F,KAAKK,IAAI,EAAKgC,IAAKk1F,EAAUf,aAAex2F,KAAKM,IAAI,EAAK4B,MAAOq1F,EAAUhB,iBAAmB,EAAKl0F,IAAM,EAAKH,QACxKq1F,EAAUiR,aAAe,EAAKe,eAAe,EAAGhS,EAAU6F,iBAAmB7F,EAAUuE,mBAAoBuR,GAC3G,IAAIC,EAAW,KAAY,IAAIngF,KAAKoqE,EAAUuE,oBAAqBvE,EAAUiR,aAAaT,SAAUxQ,EAAUiR,aAAa5hG,MAAO,EAAKshG,cAAe,EAAK+B,IAAIx8E,KAC3J6/E,EAAShgF,UAAYiqE,EAAU6V,UAAU9/E,WAC5C,KAAUggF,EAAU/V,EAAUiR,aAAaT,SAAUxQ,EAAUiR,aAAa5hG,MAAO,EAAKqjG,IAAIx8E,KAG7F8pE,EAAU+V,SAAWA,MASf,YAAAzE,gBAAV,WACC,OAAIpgG,KAAKwhG,IACDxhG,KAAKwhG,IAAI1tD,eAEV,GAYD,YAAAgxD,YAAP,SAAmB//E,EAAYggF,GAC9B,IAAIzF,EAAqBt/F,KAAKggG,cAAcV,SACxC0F,EAA4BhlG,KAAKggG,cAAc7hG,MAEnD,KAAY4mB,EAAMu6E,EAAU,EAAGt/F,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAE5D,IAAIigF,EAAwBlgF,EAAKF,UAE7BqgF,EAAgB,KAAWngF,GAE3BogF,EAAoB,KAAUD,EAAS5F,EAAUyF,EAAe/kG,KAAKwhG,IAAIx8E,KAAKH,UAG9EiqE,EAA0C9uF,KAAK40F,UAAUuQ,GACzDrW,GAAaA,EAAUgQ,UAC1BoG,EAAU,IAAIxgF,KAAKoqE,EAAUgQ,QAAQj6E,WACrC,KAAYqgF,EAAS5F,EAAU0F,EAAmBhlG,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAC3EkgF,EAAQrgF,UAAYiqE,EAAUgQ,QAAQj6E,WACzC,KAAUqgF,EAAS5F,EAAU0F,EAAmBhlG,KAAKwhG,IAAIx8E,KAE1DmgF,EAAYD,EAAQrgF,WAIrB,IAAIugF,EAAgCplG,KAAKu0F,iBAAiB0Q,EAAeE,GAKzE,OAHiC5tG,KAAKQ,MAAMqtG,EAAwB,KAAkB9F,IAG7D0F,EACjBhlG,KAAK8kG,YAAY//E,EAAMggF,EAAgBC,GAGxCE,GAaD,YAAAG,iBAAP,SAAwBvW,EAA0BwQ,EAAoBnhG,GACrE,IAAI4mB,EAAO,IAAIL,KAAKoqE,EAAU4F,UAC9B,KAAY3vE,EAAMu6E,EAAUnhG,EAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAChE,KAAUD,EAAMu6E,EAAUnhG,EAAO6B,KAAKwhG,IAAIx8E,KAE1C,IAAImgF,EAAYpgF,EAAKF,UAGrB,OADAiqE,EAA2B9uF,KAAK40F,UAAUuQ,IAElCnlG,KAAKqlG,iBAAiBvW,EAAWwQ,EAAUnhG,GAE5C4mB,GASD,YAAA20E,qBAAP,sBACC,GAAI,IAAe15F,KAAKnI,MAAQ,IAAemI,KAAKpI,KAAM,CAEzDoI,KAAKy5F,gBAGL,IAAI0L,EAAYnlG,KAAKuhG,UAAU18E,UAC3By6E,EAAWt/F,KAAKggG,cAAcV,SAC9ByF,EAAgB/kG,KAAKggG,cAAc7hG,MACnCmnG,EAAe,KAAWtlG,KAAKuhG,WAE/B,EAAoBvhG,KAAK2vF,mBAC7B3vF,KAAKk1F,iBAEL,I,iBACC,IAAInwE,EAAO,EAAK+/E,YAAY,KAAWQ,GAAeP,GACtDI,EAAYpgF,EAAKF,UAEjB,IAAIi6E,EAAU,KAAW/5E,GACzB+5E,EAAU,KAAUA,EAASQ,EAAUyF,EAAe,EAAKvD,IAAIx8E,KAE/D,IAAIrB,EAAS,EAAKw7E,YAAYjgD,OAAOogD,GAEjC,EAAKiG,gBAAkBD,GACtB,KAAkBvgF,EAAMugF,EAAc,EAAKjE,cAAe,EAAKG,IAAIx8E,MACrD,SAAbs6E,IACH37E,EAAS,EAAKy7E,wBAAwBlgD,OAAOogD,IAKhD,IAAI/8E,EAAO,EAAKi/E,IAAI79E,OAAOoB,EAAMpB,GAE7BwrC,EAAW,EAAkB7W,MAAK,SAACh+C,GAAM,OAAAA,EAAEioB,OAAF,KACzC4sC,EAAS/C,aACZ+C,EAAS/C,YAAa,GAEvB,EAAK4iC,eAAe7/B,GAEpBA,EAAS2/B,eAAYpiF,EACrByiD,EAASpqC,KAAOA,EAChBoqC,EAAS2vC,QAAUA,EAEnB3vC,EAAS5sC,KAAOA,EAEhB,EAAKoiE,oBAAoBx1B,GAEzBm2C,EAAevgF,G,OAjCTogF,GAAanlG,KAAKi5F,Y,IAqCzB,IAAI,EAAyBj5F,KAAKutF,SAE9BvtF,KAAKixF,aACR,IAAWjxF,KAAKixF,YAAY5rF,YAAY,SAACypF,GACxC,GAAIA,EAAUhC,UAAY,EAAG,CAC5B,IAAI,EAAqBgC,EAAUiR,aAAaT,SAC5C,EAAwBxQ,EAAUiR,aAAa5hG,MAGnD,GAAI,IAAkB2wF,EAAUqD,WAAYrD,EAAUsD,UAAuC,EAA3B,EAAS/B,gBAK1E,IAJA,IAEI,EAFA,EAAoBvB,EAAU+V,SAAShgF,UAGvC1mB,EAAgB,E,aAEnB,IAAI4mB,EAAa,KAAW+pE,EAAU+V,UAGtC,GAFA,EAAY,KAAU9/E,EAAM,EAAU,EAAgB5mB,EAAO,EAAKqjG,IAAIx8E,KAAKH,UAC3E1mB,IACI,EAAY2wF,EAAUuE,oBAAsB,EAAYvE,EAAU6F,iBAAkB,CACvF,IAAImK,EAAU,KAAW/5E,GACzB+5E,EAAU,KAAUA,EAAS,EAAU,EAAe,EAAK0C,IAAIx8E,KAE/D,IAAIrB,EAAS,EAAKw7E,YAAYjgD,OAAO,GAEjC,EAAKqmD,gBAAkB,GACtB,KAAkBxgF,EAAM,EAAc,EAAKs8E,cAAe,EAAKG,IAAIx8E,MACrD,SAAb,IACHrB,EAAS,EAAKy7E,wBAAwBlgD,OAAO,IAKhD,IAAI,EAAe,EAAKsiD,IAAI79E,OAAOoB,EAAMpB,GAErCwrC,EAA8B,EAAkB7W,MAAK,SAACh+C,GAAM,OAAAA,EAAEioB,OAAF,KAC5D4sC,EAAS/C,aACZ+C,EAAS/C,YAAa,GAGvB,EAAK4iC,eAAe7/B,GACpBA,EAAS2/B,UAAYA,EACrBA,EAAU9K,UAAUpjC,UAAUuO,GAE9BA,EAASpqC,KAAOA,EAChBoqC,EAAS2vC,QAAUA,EACnB3vC,EAAS5sC,KAAO,EAChB,EAAewC,EACf,EAAK4/D,oBAAoBx1B,KAjCpB,GAAa2/B,EAAU2L,a,UAiD7B,YAAA9V,oBAAP,SAA2Bx1B,GAK1B,GAHAA,EAASwrC,UAAY36F,KAAKuvF,eAC1BvvF,KAAKuvF,iBAED,IAAevvF,KAAKnI,MAAQ,IAAemI,KAAKpI,KAAM,CACzD,IAAI21F,EAAyBvtF,KAAKutF,SAE9B4X,EAAYh2C,EAASt5D,MACrB2vG,EAAer2C,EAASulC,SAEvB,IAAe8Q,KACnBA,EAAeL,GAGhB,IAAIzpG,EAAmBsE,KAAKo4F,gBAAgB+M,GACxCpX,EAAsB/tF,KAAKo4F,gBAAgBoN,GAC3C5K,EAAkB7M,GAEjB5+B,EAAS66B,SAAWhqF,KAAKggG,cAAc7hG,MAAQ6B,KAAKohG,aAAajjG,QACrE4vF,EAAcryF,GAAYqyF,EAAcryF,IAAasE,KAAKggG,cAAc7hG,MAAQ6B,KAAKohG,aAAajjG,QAGnGgxD,EAASzzD,SAAWA,EAEpB,IAAI2yF,EAAiBl/B,EAASk/B,KAC1BA,IAASA,EAAKlkC,UACjBojC,EAASgJ,kBAAkBlI,EAAM3yF,EAAUqyF,GAG5C,IAAII,EAAah/B,EAASg/B,KACtBA,IAASA,EAAKhkC,UACjBojC,EAAS+I,kBAAkBnI,EAAMzyF,EAAUqyF,GAG5C,IAAIryC,EAAiByT,EAASq/B,SAC1B9yC,IAASA,EAAKyO,WACjBojC,EAASkJ,kBAAkB/6C,EAAMhgD,EAAUk/F,GACtCzrC,EAAS66B,SACbhqF,KAAK8vF,SAAS3gC,IAIhB,IAAIyC,EAAiBzC,EAASyC,KAC1BA,GACH27B,EAASkJ,kBAAkB7kC,EAAMl2D,EAAUqyF,GAGxC5+B,EAASy4B,QACZ2F,EAASiJ,aAAarnC,EAASy4B,OAAQlsF,EAAUqyF,GAGlD,IAAIhpF,EAAmBoqD,EAASpqD,MAChC,GAAIA,IAAUA,EAAMolD,SAAU,CAC7B,IAAI,EAAWplD,EAAMsc,SAIL,GAAZ,IAKF,EAJ+B,GAA5BrhB,KAAKggG,cAAc7hG,OAA6C,QAA/B6B,KAAKggG,cAAcV,UAAuBnwC,EAAS66B,QAI5E,EAHA,IAQbuD,EAAS0C,mBAAmBlrF,EAAOrJ,EAAUqyF,EAAa,MAU7D,sBAAW,2BAAY,C,IAAvB,WACC,OAAO,KAAkB/tF,KAAKohG,aAAa9B,SAAUt/F,KAAKohG,aAAajjG,Q,gCAYjE,YAAA27F,aAAP,SAAoBliG,EAAaC,GAChC,MAAO,CAAED,IAAKA,EAAKC,IAAKA,EAAKsM,KAAMnE,KAAKkgG,eAS/B,YAAAjE,OAAV,SAAiBpmG,GAEhB,IAAI8sG,EAAW3iG,KAAKohG,aAEhBoD,EAAY,KAAY,IAAI9/E,KAAK7uB,GAAQ8sG,EAASrD,SAAUqD,EAASxkG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAAKH,UAGlH,OAAO2/E,GAFO,KAAU,IAAI9/E,KAAK8/E,GAAY7B,EAASrD,SAAUqD,EAASxkG,MAAO6B,KAAKwhG,IAAIx8E,KAAKH,UAEhE2/E,GAAaxkG,KAAK2gG,eASvC,YAAAzE,OAAV,SAAiBrmG,GAEhB,IAAI8sG,EAAW3iG,KAAKohG,aAEhBoD,EAAY,KAAY,IAAI9/E,KAAK7uB,GAAQ8sG,EAASrD,SAAUqD,EAASxkG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAAKH,UAGlH,OAAO2/E,GAFO,KAAU,IAAI9/E,KAAK8/E,GAAY7B,EAASrD,SAAUqD,EAASxkG,MAAO6B,KAAKwhG,IAAIx8E,KAAKH,UAEhE2/E,GAAaxkG,KAAK4gG,aAa1C,YAAAE,eAAP,SAAsBn5F,EAAeo/B,EAAkBopD,EAAmBsV,GACpEA,IACJA,EAAYzlG,KAAKi/F,eAGlB,IAAIc,EAA8B0F,EAAUtlD,SAASx4C,GAEjDi7F,EAA2B,KAAkB7C,EAAaT,SAAUS,EAAa5hG,OAEjFi1B,EAAoBqyE,EAAUtpG,OAAS,EAC3C,GAAIwL,GAASyrB,EACZ,sBAAYqyE,EAAUtlD,SAAS/sB,IAGhC,IAAIj1B,EAAgB5G,KAAKc,KAAK0uC,EAAW67D,GAEzC,OAAI77D,EAAW67D,GAAoBj7F,EAAQ,EAC1C,eAAY89F,EAAUtlD,SAASx4C,EAAQ,IAEpCxJ,GAASgyF,EACZ,eAAYsV,EAAUtlD,SAASx4C,IAE3BA,EAAQ,EAAI89F,EAAUtpG,OAClB6D,KAAK8gG,eAAen5F,EAAQ,EAAGo/B,EAAUopD,EAAWsV,GAE3D,eAAYA,EAAUtlD,SAASx4C,KAW3B,YAAA0yF,YAAP,SAAmBxkG,GAClB,OAAOmK,KAAKwhG,IAAI79E,OAAO9tB,IASjB,YAAA6vG,eAAP,SAAsB3gF,GACrB,OAAO/kB,KAAKo4F,gBAAgBrzE,EAAKF,YAS3B,YAAA8sE,cAAP,SAAqB5sE,GACpB,OAAIA,aAAgBL,KACZ1kB,KAAK0lG,eAAe3gF,GAGpB/kB,KAAKo4F,gBAAgBrzE,IAUvB,YAAA4gF,YAAP,SAAmB5gF,GAClB,IAAIrpB,EAAWsE,KAAK0lG,eAAe3gF,GAC/B7pB,EAAQ8E,KAAKutF,SAASM,gBAAgBnyF,GACtCI,EAAQkE,KAAKutF,SAAS+D,gBAAgB51F,GAC1C,MAAO,CAAEpB,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,EAAGuB,MAAOA,IAUlC,YAAA81F,WAAP,SAAkB7sE,GACjB,OAAIA,aAAgBL,KACZ1kB,KAAK2lG,YAAY5gF,GAGjB/kB,KAAK86F,aAAa/1E,IAUpB,YAAA6gF,eAAP,SAAsBlqG,GACrB,OAAO,IAAIgpB,KAAK1kB,KAAK25F,gBAAgBj+F,KAY/B,YAAAw4F,aAAP,SAAoB/kC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAClG,IAAIlE,EAAgBmK,KAAK6lG,kBAAkB12C,EAAUruD,EAAKugB,GAGrD,IAAexrB,KACnBA,EAAQmK,KAAKoO,WAGd,IAAI1S,EAAWsE,KAAKo4F,gBAAgBviG,GAKpC,OAJIkE,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAaD,YAAA04F,aAAP,SAAoBjlC,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAClG,IAAIlE,EAAgBmK,KAAK6lG,kBAAkB12C,EAAUruD,EAAKugB,GACtDgQ,EAAgB89B,EAASn4D,SAAS,SAAU,SAE3C,IAAenB,KACnBA,EAAQmK,KAAKoO,WAGd,IAAI1S,EAAWsE,KAAKo4F,gBAAgBviG,EAAQw7B,GAK5C,OAJIt3B,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAeD,YAAAC,SAAP,SAAgBwzD,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAC9F,IAAIlE,EAAgBmK,KAAK6lG,kBAAkB12C,EAAUruD,EAAKugB,GACtDgQ,EAAgB89B,EAASn4D,SAASg9F,EAAU,SAE3C,IAAen+F,KACnBA,EAAQmK,KAAKoO,WAGd,IAAI1S,EAAWsE,KAAKo4F,gBAAgBviG,EAAQw7B,GAK5C,OAJIt3B,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnDoG,KAAKsxF,gBAAgB51F,IAanB,YAAAmqG,kBAAV,SAA4B12C,EAA4BruD,EAAaugB,GAEpE,GAAK,IAAevgB,GAApB,CAIK,IAAeugB,KACnBA,EAAW8tC,EAAS22C,iBAAiBhlG,GAEhC,IAAeugB,KACnBA,EAAW,IAIb,IAAImjF,EAAoBr1C,EAASp2D,OAAO+H,GAAhB,KACpBilG,EAAkB52C,EAASp2D,OAAO+H,GAAhB,MAElBuqF,EAAel8B,EAASp2D,OAAO+H,GAAKuqF,aAGpCmJ,EAFQrlC,EAASp2D,OAAO+H,GAAKjL,MAERw1F,EAIzB,OAHAmZ,GAAahQ,EACbuR,GAAWvR,EAEP,IAAegQ,IAAc,IAAeuB,GACxCvB,GAAauB,EAAUvB,GAAanjF,OAD5C,IAYM,YAAAkyE,sBAAP,SAA6BpkC,EAA4BqkC,GACxD,IACIhmD,EADA4+C,EAASj9B,EAASvtD,UAGlBmjB,EAAmBoqC,EAAU,OAASqkC,GAO1C,GALI,IAAexzF,KAAKgmG,kBACvBjhF,EAAKyjB,QAAQzjB,EAAKF,UAA+D,KAAlDE,EAAKI,oBAAsBnlB,KAAKgmG,iBAC/D72C,EAASm3B,SAAS,OAASkN,EAAYzuE,EAAKF,UAAW,IAGpDE,EAAJ,CACCyoB,EAAOzoB,EAAKF,UAKb,IAIIohF,EAJAC,EAAuB/2C,EAAU,WAAaqkC,GAC9C2S,EAAyBnmG,KAAKu/F,gBAAgBnT,EAAOnsF,KAQzD,GAJIimG,IACHD,EAAWC,EAASrhF,WAGjB,IAAeohF,GAAW,CAC7B,IAAIzR,EAAaj9F,KAAK6B,IAAIo0C,EAAOy4D,GAE7BjmG,KAAKw/F,eAAepT,EAAOnsF,KAAOu0F,IACrCx0F,KAAKw/F,eAAepT,EAAOnsF,KAAOu0F,GAIpC,IAAIoF,EAAoBpsD,EAAO24D,EAE3BvM,EAAY,GACX55F,KAAKw/F,eAAepT,EAAOnsF,KAAO25F,IACrC55F,KAAKw/F,eAAepT,EAAOnsF,KAAO25F,GAIpC55F,KAAKu/F,gBAAgBnT,EAAOnsF,KAAOutC,EAE/B4+C,EAAOmW,cAAcviG,KAAKC,MAC7BD,KAAK0zF,0BAA0BvkC,KAU1B,YAAAwkC,mBAAP,WACC,YAAMA,mBAAkB,WAExB,IAAIyN,EAA8BphG,KAAK8gG,eAAe,EAAG9gG,KAAKoiG,cAAe,GAIzEpiG,KAAKoiG,eAAiB,KAAkB,MAAO,KAAgC,QAAzBhB,EAAa9B,WACtE8B,EAAa9B,SAAW,QACxB8B,EAAajjG,MAAQ,GAEO,SAAzBijG,EAAa9B,WACZt/F,KAAKoiG,eAAiB,KAAkB,MAAO,KAAiC,GAAtBhB,EAAajjG,QAC1EijG,EAAajjG,MAAQ,GAGlB6B,KAAKoiG,eAAiB,KAAkB,MAAO,KAAiC,GAAtBhB,EAAajjG,QAC1EijG,EAAajjG,MAAQ,GAGlB6B,KAAKoiG,eAAiB,KAAkB,MAAO,MAAiC,GAAtBhB,EAAajjG,QAC1EijG,EAAajjG,MAAQ,IAKnB6B,KAAKoiG,eAAiB,KAAkB,OAAQ,KAAgC,QAAzBhB,EAAa9B,WACvE8B,EAAa9B,SAAW,MACxB8B,EAAajjG,MAAQ,GAGlB6B,KAAKoiG,eAAiB,KAAkB,OAAQ,GAAK,KAAkB,OAAQ,IAA+B,OAAzBhB,EAAa9B,WACrG8B,EAAa9B,SAAW,OACxB8B,EAAajjG,MAAQ,GAGlB6B,KAAKoiG,eAAiB,KAAkB,OAAQ,GAAK,KAAkB,MAAO,OAAkC,SAAzBhB,EAAa9B,WACvG8B,EAAa9B,SAAW,OACxB8B,EAAajjG,MAAQ,GAGtB6B,KAAKq/F,kBAAoB+B,EACzBphG,KAAKomG,kBAAoBhF,GAwB1B,sBAAW,2BAAY,C,IAevB,WACC,OAAIphG,KAAK+gG,eACD/gG,KAAK+gG,eAEJ/gG,KAAKuiG,cACNviG,KAAKuiG,cAGLviG,KAAKq/F,mB,IAvBd,SAAwBgH,GACnBjkF,KAAKD,UAAUniB,KAAKuiG,gBAAkBngF,KAAKD,UAAUkkF,KACxDrmG,KAAKuiG,cAAgB8D,EACrBrmG,KAAKomG,kBAAoBC,EACpB,IAAeA,EAAaloG,SAChCkoG,EAAaloG,MAAQ,GAEtB6B,KAAK0pD,aACL1pD,KAAKyzF,+B,gCAyBP,sBAAW,+BAAgB,C,IAA3B,WACC,OAAIzzF,KAAKuiG,cACDviG,KAAKuiG,cAEJviG,KAAKomG,kBACNpmG,KAAKomG,kBAGLpmG,KAAKq/F,mB,gCA2Bd,sBAAW,+BAAgB,C,IA0B3B,WACC,OAAOr/F,KAAKujD,iBAAiB,qB,IA3B9B,SAA4B1tD,GAE3B,GAAIA,EAAO,CACV,IAAI63F,EAAgB1tF,KAAK2tF,WAAW1sC,SACpCysC,EAAcR,UAAU/iC,UAAW,EACnCujC,EAAcN,QAAQjjC,UAAW,EACjCujC,EAAcX,UAAU5iC,UAAW,EACnCujC,EAAcZ,UAAY,OAGtB9sF,KAAKg/F,aACRh/F,KAAK2tF,WAAWpkF,QAChBvJ,KAAKg/F,YAAa,GAIhBh/F,KAAKopD,iBAAiB,mBAAoBvzD,KAC7CmK,KAAK0pD,aACL1pD,KAAKyzF,6BACLzzF,KAAK4tF,qB,gCAkBP,sBAAW,gCAAiB,C,IAO5B,WACC,OAAO5tF,KAAKujD,iBAAiB,sB,IAR9B,SAA6B1tD,GAC5BmK,KAAKopD,iBAAiB,oBAAqBvzD,I,gCAiB5C,sBAAW,6BAAc,C,IASzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAV9B,SAA0B1tD,GACrBmK,KAAKopD,iBAAiB,iBAAkBvzD,IAC3CmK,KAAK06E,kB,gCAsBA,YAAA+X,eAAP,SAAsB/2F,GACrB,IAAI6mB,EACAwC,EAAO/kB,KAAK4lG,eAAelqG,GAK/B,GAJAqpB,EAAO,KAAYA,EAAM/kB,KAAKohG,aAAa9B,SAAUt/F,KAAKohG,aAAajjG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,IAAK,IAAIN,KAAK1kB,KAAKpI,MAE9HoI,KAAKsmG,YAAcvhF,EAEf,IAAe/kB,KAAKumG,mBACvBhkF,EAAOviB,KAAKwhG,IAAI79E,OAAOoB,EAAM/kB,KAAKumG,uBAE9B,CACJ,IAAI7kE,EAAa1hC,KAAKm/F,YAAYjgD,OAAOl/C,KAAKohG,aAAa9B,UAE1D/8E,EADGmf,EACI1hC,KAAKwhG,IAAI79E,OAAOoB,EAAM2c,GAGtB1hC,KAAKg1F,iBAAiBt5F,GAG/B,OAAKsE,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkB8e,GAHvCA,GAeF,YAAAywE,cAAP,SAAqBt3F,EAAkB2lB,EAA6B4xE,GACnE,IAAImO,EAAephG,KAAKohG,aACpB9B,EAAW8B,EAAa9B,SACxBnhG,EAAQijG,EAAajjG,MAErB4mB,EAAa/kB,KAAK4lG,eAAelqG,GAYrC,GAVA,KAAYqpB,EAAMu6E,EAAUnhG,EAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAE5D3D,EAAW,GACd,KAAU0D,EAAMu6E,EAAUj+E,EAAWljB,EAAO6B,KAAKwhG,IAAIx8E,KAGlDiuE,EAAe,GAAKA,EAAe,GACtCluE,EAAKyjB,QAAQzjB,EAAKF,UAAY7kB,KAAKkgG,aAAejN,GAG/CjzF,KAAK40F,UAAU7vE,EAAKF,WACvB,KAAOE,EAAKF,UAAY7kB,KAAKnI,MAC5B,KAAUktB,EAAMu6E,EAAUnhG,EAAO6B,KAAKwhG,IAAIx8E,KACrChlB,KAAK40F,UAAU7vE,EAAKF,cAM3B,OAAO7kB,KAAK0lG,eAAe3gF,IAWrB,YAAAitE,qBAAP,SAA4Bt2F,GAC3B,OAAOsE,KAAKgzF,cAAct3F,EAAU,IAW9B,YAAAu2F,mBAAP,SAA0Bv2F,GACzB,OAAOsE,KAAKgzF,cAAct3F,EAAU,IAiB9B,YAAAo4F,kBAAP,SAAyB1H,EAAkB1wF,EAAkBq4F,GAE5D,IAWK,EAXDl+F,EAAgBmK,KAAK25F,gBAAgBj+F,GACrCqpB,EAAa,KAAY,IAAIL,KAAK7uB,GAAQmK,KAAKohG,aAAa9B,SAAUt/F,KAAKohG,aAAajjG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KAK5HmqC,EAFkBi9B,EAAOtF,gBAAgB5nC,OAAOl/C,KAAKC,KAE1Bi/C,OAAOn6B,EAAKF,UAAU7uB,aAGhDm5D,GAAY4kC,IAKf,EADsB,KAAnB/zF,KAAKwzF,WACF,QAGA,QAGPrkC,EAAWi9B,EAAOpI,UAAU7jC,SAASisC,EAAOpI,UAAU6d,iBAAiB98E,EAAKF,WAAW,SAACvqB,GACvF,OAAIA,EAAE,GACUA,EAAE,GAAKuqB,WAGdX,MAEP,SAGJ,OAAOirC,GAeD,YAAA6lC,iBAAP,SAAwBt5F,GAEvB,IAAIqpB,EAAO/kB,KAAK4lG,eAAelqG,GAC/B,OAAOsE,KAAKwhG,IAAI79E,OAAOoB,EAAM/kB,KAAKwmG,0BAQzB,YAAAA,sBAAV,WACC,OAAOxmG,KAAKm/F,YAAYjgD,OAAOl/C,KAAKggG,cAAgBhgG,KAAKggG,cAAcV,SAAW,QAQ5E,YAAA1O,aAAP,WACC,YAAMA,aAAY,WAClB,IAAIrD,EAAWvtF,KAAKutF,SAChBA,IAEHA,EAASe,MAAMrtC,SAAS5/B,SAAW,EACnCksE,EAASY,KAAKltC,SAAS5/B,SAAW,EAClCksE,EAASjK,OAAOriC,SAAS5/B,SAAW,EACpCksE,EAASqI,SAASzrC,UAAW,IAU/B,sBAAW,wBAAS,C,IAApB,WACC,MAAO,CAAE7vD,EAAG,EAAGC,EAAG,I,gCAMT,YAAA+gG,cAAV,SAAwB1jG,EAAaC,GAArC,WACK2+D,EAAYx2D,KAAK81D,QAAQ,CAAC,CAAEzrB,SAAU,eAAgBla,KAAMnwB,KAAKs5F,aAAcppE,GAAIt4B,GAAO,CAAEyyC,SAAU,eAAgBla,KAAMnwB,KAAKq5F,aAAcnpE,GAAIr4B,IAAQmI,KAAKu7F,oBAAqBv7F,KAAKw7F,mBAI9L,OAHAhlC,EAAUx3D,OAAOmgD,GAAG,qBAAqB,WACxC,EAAKh+C,SAAS,sBAERq1D,GAME,YAAA2mC,qBAAV,WAGC,GAFA,YAAMA,qBAAoB,WAEtBn9F,KAAKygG,UAAW,CACnB,IAAIlyC,EAAKvuD,KAAKohG,aAAa9B,SAAWt/F,KAAKohG,aAAajjG,MACxD6B,KAAK0/F,SAASnxC,GAAMvuD,KAAKy8F,UACzBz8F,KAAK2/F,SAASpxC,GAAMvuD,KAAKw8F,YAapB,YAAAiK,YAAP,SAAmB9B,EAAiB7F,EAAeb,EAA0Bx4B,EAAqBihC,GACjG/B,EAAY3kG,KAAKwhG,IAAI9iD,MAAMimD,GAC3B7F,EAAU9+F,KAAKwhG,IAAI9iD,MAAMogD,GACzB9+F,KAAKg+F,aAAa2G,EAAU9/E,UAAWi6E,EAAQj6E,UAAWo5E,EAAgBx4B,EAAWihC,IAW/E,YAAA1I,aAAP,SAAoBvJ,EAAoBC,EAAkBuJ,EAA0Bx4B,EAAqBihC,GAAzG,WACC,GAAK1mG,KAAKygG,UAML,CACJ,IAAIjM,EAAax0F,KAAKu0F,iBAAiBE,EAAYC,GAC/CiS,GAAQ,EACRjS,GAAY10F,KAAKnI,MACpB8uG,GAAQ,GAET,IAAIC,GAAU,EAKd,GAJInS,GAAcz0F,KAAKpI,MACtBgvG,GAAU,GAGP,IAAepS,GAAa,CAC/B,IAAI8L,EAAmBtgG,KAAKsgG,iBACxB,EAAgBtgG,KAAK8gG,eAAe,EAAGtM,EAAYx0F,KAAK6/F,WAAY7/F,KAAKk/F,iBAExE,EAAcI,UAAYgB,EAAiBhB,UAAY,EAAcnhG,MAAQmiG,EAAiBniG,OAAU,KAAkB,EAAcmhG,SAAU,GAAK,KAAkBgB,EAAiBhB,SAAU,MACxM,EAAgB,OAAH,IAAG,CAAH,GAAQgB,IAGtB,IAAI/xC,EAAK,EAAc+wC,SAAW,EAAcnhG,MAC5C,EAAM6B,KAAK0/F,SAASnxC,GACpB,EAAMvuD,KAAK2/F,SAASpxC,GAEnB,IAAe,IAAS,IAAe,KAC3C,EAAMz4D,OAAO2lG,kBACb,EAAM3lG,OAAO4lG,kBACb17F,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,IAAIwP,EAAYxP,EAAOx0F,IAAI,GACvBikG,EAAYzP,EAAOv0F,IAAI,GAE3B,GAAIu0F,EAAOyW,UAAW,CACrB,IAAI/c,EAAKsG,EAAOyW,UAAU3jD,OAAO,EAAcogD,SAAW,EAAcnhG,OAExE,GAAI2nF,EAAI,CACP,IAAI+gB,EAAQ/gB,EAAG3lC,SAAS,GACpB2mD,EAAQhhB,EAAG3lC,SAAS2lC,EAAG3pF,OAAS,GAEhC0qG,IACCza,EAAOyS,OAAS,EACnBjD,EAAYiL,EAAMnD,MAAM7+E,UAEhBunE,EAAO2a,OAAS,IACxBnL,EAAYiL,EAAMjD,MAAM/+E,YAItBiiF,IACC1a,EAAOyS,OAAS,EACnBhD,EAAYiL,EAAMpD,MAAM7+E,UAEhBunE,EAAO2a,OAAS,IACxBlL,EAAYiL,EAAMlD,MAAM/+E,aAM5Bg3E,EAAY,KAAY,KAAU,IAAIn3E,KAAKm3E,GAAY,EAAcyD,SAAU,EAAG,EAAKkC,IAAIx8E,KAAM,EAAcs6E,SAAU,EAAG,EAAKkC,IAAI1tD,eAAgB,EAAK0tD,IAAIx8E,KAAKH,UAE/J+2E,EAAY,IACf,EAAMA,GAEHC,EAAY,IACf,EAAMA,MAGR77F,KAAK0/F,SAASnxC,GAAM,EACpBvuD,KAAK2/F,SAASpxC,GAAM,GAGrBkmC,EAAa,IAAiBA,EAAY,EAAK,GAC/CC,EAAW,IAAiBA,EAAU,EAAK,GAEvCgS,IACCC,IACHlS,EAAaC,EAAWF,EACxBC,EAAa,IAAiBA,EAAY,EAAK,IAG5CmS,IACHlS,EAAWD,EAAaD,EACxBE,EAAW,IAAiBA,EAAU,EAAK,KAIzCj7F,GAAiBg7F,EAAa,IAAQ,EAAM,GAC5C76F,GAAe86F,EAAW,IAAQ,EAAM,GAE5C10F,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,GAAOqkG,EAAgBx4B,QA9FnC,CACpB,IAAIhsE,GAAiBg7F,EAAaz0F,KAAKpI,MAAQoI,KAAKnI,IAAMmI,KAAKpI,KAC3DgC,GAAe86F,EAAW10F,KAAKpI,MAAQoI,KAAKnI,IAAMmI,KAAKpI,KAE3DoI,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,GAAOqkG,EAAgBx4B,KAqG9C,YAAAuhC,KAAV,SAAev0D,GACd,MAAgB,gBAATA,GAA2B,YAAMu0D,KAAI,UAACv0D,IAQvC,YAAAoO,SAAP,SAAgB//B,GAAhB,WACC,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKm/F,YAAcr+E,EAAOq+E,YAC1Bn/F,KAAKo/F,wBAA0Bt+E,EAAOs+E,wBACtCp/F,KAAKk/F,eAAe31F,QACpBuX,EAAOo+E,eAAeh4F,MAAK,SAACy7F,GAC3B,EAAKzD,eAAe1gG,KAAI,eAAMmkG,OAG/B3iG,KAAKi/F,cAAc11F,QACnBuX,EAAOm+E,cAAc/3F,MAAK,SAACy7F,GAC1B,EAAK1D,cAAczgG,KAAI,eAAMmkG,OAG1B7hF,EAAOyhF,gBACVviG,KAAKohG,aAAetgF,EAAOyhF,gBAWtB,YAAApY,sBAAP,SAA6BzuF,EAAkB+sC,GAA/C,WAMC,GAJKA,IACJ/sC,EAAWsE,KAAK8xF,eAAep2F,IAG5BsE,KAAK4/F,YAAa,CAErB,IAGI,EADA,EAFa5/F,KAAK4lG,eAAelqG,GAETmpB,UA4B5B,GAzBA7kB,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,GAAIA,EAAO8U,UAAY,EAAM,CAC5B,IAAI/xC,EAAW,EAAK2kC,kBAAkB1H,EAAQ1wF,GAAU,GAExD,GAAIyzD,EAAU,CACb,IAAIpqC,OAAI,EACJqnE,EAAOyS,OAAS,IACnB95E,EAAOoqC,EAASu0C,OAEbtX,EAAO2a,OAAS,IACnBhiF,EAAOoqC,EAASy0C,OAGZ,EAIArsG,KAAK6B,IAAI,EAAYyrB,UAAY,GAActtB,KAAK6B,IAAI2rB,EAAKF,UAAY,KAC5E,EAAcE,GAJf,EAAcA,OAWd,EAAa,CAChB,IAAI,EAAc,EAAYF,UAC9B,EAAc,KAAY,IAAIH,KAAK,GAAc1kB,KAAKohG,aAAa9B,SAAUt/F,KAAKohG,aAAajjG,MAAO6B,KAAKy/F,cAAez/F,KAAKwhG,IAAIx8E,KACnI,EAAc,EAAYH,UAE1B,IAAIktE,EAAkB/xF,KAAKutF,SAASwE,gBACb,GAAnBA,IACHA,EAAkB,MAGnB,EAAc,IAAIrtE,KAAK,EAAYG,UAAY7kB,KAAKkgG,aAAenO,GACnEr2F,EAAWsE,KAAK0lG,eAAe,GAE3B1lG,KAAK46E,MAAMh3B,QAAU5jD,KAAK46E,MAAMh3B,OAAOqjD,cAI1CjnG,KAAKosF,OAAOllF,MAAK,SAACklF,GAEjB,IAAIj9B,EAAWi9B,EAAOtF,gBAAgB5nC,OAAO,EAAKj/C,KAAKi/C,OAAO,EAAcktC,EAAOuV,kBAC/EzmG,EAAQkxF,EAAO8a,sBAAsB/3C,GACrCj0D,EACH,EAAK0/E,MAAMusB,cAAc3oG,KAAK,CAAE4tF,OAAQA,EAAQlxF,MAAOA,KAInDkxF,EAAOp4B,aAAeo4B,EAAOn4B,cAChCm4B,EAAO//B,kBAUb,YAAM89B,sBAAqB,UAACzuF,GAAU,IAUvC,sBAAW,0BAAW,C,IAOtB,WACC,OAAOsE,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,I,gCA2EtC,sBAAW,wBAAS,C,IAqBpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAtB9B,SAAqB1tD,GAArB,WACKmK,KAAKopD,iBAAiB,YAAavzD,KACtCmK,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAO+U,WAAW,IAEdtrG,IAAUu2F,EAAOsW,aAAetW,EAAOx3B,SAC1Cw3B,EAAOmW,cAAc,EAAKtiG,KAAO,EAAKqgG,iBACtC,EAAKmC,gBAAgBrW,OAIvBpsF,KAAKihG,kBAAoB,GACzBjhG,KAAK+gG,oBAAiBr0F,EACtB1M,KAAK0pD,aACL1pD,KAAK4tF,qB,gCAkBP,sBAAW,4BAAa,C,IAUxB,WACC,OAAO5tF,KAAKujD,iBAAiB,kB,IAX9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,KAC1CmK,KAAK0pD,aACL1pD,KAAK4tF,qB,gCAmBP,sBAAW,yBAAU,C,IAOrB,WACC,OAAO5tF,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,I,gCAsBrC,sBAAW,6BAAc,C,IAOzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAR9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,I,gCAezC,sBAAW,2BAAY,C,IAAvB,WACC,OAAOmK,KAAKggG,e,gCAMN,YAAAoH,QAAP,SAAej4C,EAA8Bk4C,GAC5C,IAAIjb,EAASj9B,EAASvtD,UACtB,GAAIutD,GAAYk4C,IACVjb,EAAOkb,SAAW,IAAelb,EAAOmb,eACxCnb,EAAO8U,UAAYlhG,KAAM,CAC5B,IAAI+kB,EAAOoqC,EAASrd,MAAM,OAAS9xC,KAAKwzF,YACpCgU,EAAWH,EAASv1D,MAAM,OAAS9xC,KAAKwzF,YAE5C,GAAIzuE,GAAQyiF,EAIX,GAHWziF,EAAKF,UACD2iF,EAAS3iF,UAEFunE,EAAOmb,aAAevnG,KAAKkgG,aAChD,OAAO,EAMZ,OAAO,GAMR,sBAAW,wBAAS,C,IAApB,WACC,OAAOlgG,KAAKpI,K,gCAEd,EAt8EA,CAAqE,IA88ErE,IAASwH,kBAAT,SAAyC,GACzC,IAASA,kBAAT,iBAAiD,GC9oFjD,mBAsBC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,gBAEjB,EAAKs1C,gBAAkB,IAEvB,EAAK8G,UAAW,EAEhB,EAAKpwE,SAAW,EAEhB,EAAKzqB,MAAQ,YAAQ,KAErB,EAAKgnF,OAAOriC,SAASwK,iBAAmB,SAExC,EAAK9B,a,EAqaP,OA1cmC,iBA2C3B,YAAAksC,QAAP,SAAe3L,GACd,YAAM2L,QAAO,UAAC3L,GACdA,EAAK1oB,OAAS,YAMR,YAAAsvB,oBAAP,WACC,IAAI5G,EAAOlqF,KAAKkqF,KAChB,GAAIA,EAAM,CACT,IAAIsD,EAAgBxtF,KAAKwtF,cACzBA,EAAclzF,EAAI4vF,EAAKjjE,OACvBumE,EAAclxF,MAAQ4tF,EAAKkG,aAgBtB,YAAA0F,gBAAP,WACC,YAAMA,gBAAe,WAGrB,IAAI5L,EAAOlqF,KAAKkqF,KAEhB,GAAIA,EAAM,CACHA,EAAK5tF,iBAAiBi9C,EAAA,IAC3B2wC,EAAK5tF,MAAQ,YAAQ,MAItB,IAAY0D,KAAKwyF,MAEjB,IAAI33B,EAAeqvB,EAAKrvB,MACxBA,EAAM9zC,SAAW,EACjB8zC,EAAM4G,MAAQ,SAEVzhE,KAAKm3F,UACRn3F,KAAKwyF,KAAKnuB,UACVxJ,EAAMyJ,WAGNzJ,EAAMwJ,UACNrkE,KAAKskE,SACLtkE,KAAKwyF,KAAKluB,YAYN,YAAAmsB,cAAP,WAEC,GADiBzwF,KAAKkqF,KACZ,CACT,IACIoN,EAAct3F,KAAKwyF,KAAKvrE,OACxBwgF,EAAcznG,KAAKwyF,KAAKprE,OACxBmwE,EAAcv3F,KAAKowF,WAEnBoH,EALiB,IAQjBx3F,KAAKm3F,SACHn3F,KAAKs1F,SACTmS,GAVmB,IAWnBjQ,EAXmB,KAgBhBx3F,KAAKs1F,SACRmS,GAjBmB,IAkBnBjQ,EAlBmB,KAsBrBx3F,KAAKkqF,KAAKuG,cAAc,WAAY,CAAEn2F,EAAGg9F,EAAK/8F,EAAGktG,EAAKnrG,MAAOi7F,EAAKh7F,OAAQi7F,MAYrE,YAAAvH,mBAAP,SAA0BlrF,EAAkBrJ,EAAkBqyF,EAAqB1sE,GAE7E,IAAeA,KACnBA,EAAWtc,EAAMsc,UAGlB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EACjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzCqJ,EAAMymD,YAAczmD,EAAMuwF,OAE1B,IACI5pC,EADAg8C,EAAS,EAET3lC,EAAY/hE,KAAKwtF,cAAczrB,UAC/B/hE,KAAKm3F,UACJpyF,EAAMuwF,QACT5pC,EAAiB,MACG,UAAhB3mD,EAAMq9D,SACTslC,EAAS3lC,EACTrW,EAAiB,UAEE,UAAhB3mD,EAAMq9D,SACTslC,EAAS3lC,EAAY,EACrBrW,EAAiB,WAIlBA,EAAiB,SAGlBxwD,EAAMX,EAAImtG,IAGN3iG,EAAMuwF,QACT5pC,EAAiB,SACG,OAAhB3mD,EAAMq9D,SACTslC,GAAU3lC,EACVrW,EAAiB,OAEE,UAAhB3mD,EAAMq9D,SACTslC,GAAU3lC,EAAY,EACtBrW,EAAiB,WAIlBA,EAAiB,MAGlBxwD,EAAMX,GAAKmtG,GAGU,GAAlB3iG,EAAMgiB,WAEThiB,EAAM2mD,eAAiBA,GAGxB1rD,KAAK+1F,aAAahxF,EAAO7J,GAEzB8E,KAAK02F,iBAAiB3xF,EAAOrJ,EAAUsE,KAAKy1F,iBAAkBz1F,KAAK01F,mBAQpE,sBAAW,yBAAU,C,IAArB,WACC,IAAIxL,EAAOlqF,KAAKkqF,KAChB,OAAQA,EAAK/2B,cAAgB+2B,EAAKj3B,kBAAoBi3B,EAAKxiE,kBAAqB,G,gCAU1E,YAAAmmE,gBAAP,SAAuBnyF,EAAkBs6F,GACxC,MAAO,CAAE17F,EAAG0F,KAAKwxF,qBAAqB91F,GAAWnB,EAAG,IAU9C,YAAAg3F,gBAAP,SAAuBr2F,GACtB,OAAO8E,KAAKm2F,qBAAqBj7F,EAAMZ,EAAGY,EAAMX,IAY1C,YAAAm3F,qBAAP,SAA4B5D,EAAuBC,GAClD,IAAI+J,EAAa,IAAiB93F,KAAKwxF,qBAAqB1D,GAAgB,EAAG9tF,KAAKowF,YAChF2H,EAAa,IAAiB/3F,KAAKwxF,qBAAqBzD,GAAc,EAAG/tF,KAAKowF,YAE9E1xD,EAAYnnC,KAAK6B,IAAI2+F,EAAKD,GAC1B5+D,EAAYl5B,KAAKi2F,YACjB37F,EAAY/C,KAAKK,IAAIkgG,EAAIC,GAG7B,OAAO,IAAiB,CACvBz9F,EAAGA,EACHC,EAJe,EAKf+B,MAAOoiC,EACPniC,OAAQ28B,IACN,IAUG,YAAA80D,mBAAP,SAA0Bc,GACzB,YAAMd,mBAAkB,UAACc,GAEzB,IAAI5B,EAAY4B,EAAU5B,UACtBE,EAAU0B,EAAU1B,QACpBL,EAAY+B,EAAU/B,UAEtBoF,EAAqBrD,EAAUqD,WAC/BC,EAAmBtD,EAAUsD,SAE7BqF,EAAa3I,EAAUptB,gBACvBg2B,EAAa13F,KAAKi2F,YAAcnH,EAAUzsB,eAAiBysB,EAAUxsB,kBAEzE6vB,EAAW73F,EAAI,IAAiB63F,EAAW73F,GAAI,EAAG0F,KAAKowF,WAAa,GACpEgC,EAAS93F,EAAI,IAAiB83F,EAAS93F,GAAI,EAAG0F,KAAKowF,WAAa,GAE5D+B,EAAW73F,GAAK83F,EAAS93F,IAAM63F,EAAW73F,EAAI,GAAK63F,EAAW73F,EAAI0F,KAAKowF,YAC1EtB,EAAU/B,UAAU3gC,YAAa,EAGjC0iC,EAAU/B,UAAU3gC,YAAa,EAGlC8gC,EAAU3yF,EAAIk9F,EACdvK,EAAU5wF,MAAQ,EAClB4wF,EAAU3wF,OAASm7F,EAEnBtK,EAAQ7yF,EAAIk9F,EACZrK,EAAQ9wF,MAAQ,EAChB8wF,EAAQ7wF,OAASm7F,EAEjB3K,EAAUxwF,OAASm7F,EACnB3K,EAAUzwF,MAAQ/E,KAAK6B,IAAIg5F,EAAS93F,EAAI63F,EAAW73F,GACnDyyF,EAAUxyF,EAAIk9F,EACd1K,EAAUzyF,EAAI63F,EAAW73F,GAWnB,YAAAg8F,kBAAP,SAAyBnI,EAAYzyF,EAAkBqyF,GACtDryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SACtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAGzCyyF,EAAKriF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAGyF,KAAKi2F,cAExEj2F,KAAK+1F,aAAa5H,EAAMjzF,GAExB8E,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAWnC,YAAA66F,kBAAP,SAAyBlI,EAAgB3yF,EAAkBqyF,GAC1DryF,IAAuBqyF,EAAcryF,GAAY2yF,EAAKhtE,SACtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAErCi8F,EAAatJ,EAAKlyF,OAEtBjB,EAAMX,EAAI,IAA2B,CAAED,EAAG,EAAGC,EAAGyF,KAAKwyF,KAAKprE,QAAUpnB,KAAKwyF,KAAKrlF,OAAQnN,KAAKwtF,eAAejzF,EAEtGyF,KAAKm3F,SACRQ,GAAetJ,EAAKiH,OAAS,GAAK,EAGlCqC,GAAetJ,EAAKiH,QAAU,EAAI,EAGnCjH,EAAKviF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAGo9F,IAEnE33F,KAAK+1F,aAAa1H,EAAMnzF,GAExB8E,KAAK02F,iBAAiBrI,EAAM3yF,EAAU,EAAG,IAQnC,YAAA80F,eAAP,WACCxwF,KAAKwyF,KAAK1mF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG0F,KAAKowF,WAAY71F,EAAG,KAQhF,YAAAm2F,sBAAP,WACC,YAAMA,sBAAqB,WAE3B,IAAIxG,EAAalqF,KAAKkqF,KAClBhxD,EAAYl5B,KAAKi2F,YACjBv3D,EAAY1+B,KAAKowF,WACjBwF,EAAmB51F,KAAK41F,SAExBt7F,EAAY4vF,EAAK0N,UAAUt9F,EAC/B,GAAIA,GAAK,IAAOA,EAAIokC,EAAI,GACvBk3D,EAAS3pC,KAAK,OAEV,CACJ,IAAI1xD,EAAI,IAA2B,CAAED,EAAG,EAAGC,EAAG,GAAKyF,KAAKwtF,cAAeoI,EAASzoF,QAAQ5S,EACxFq7F,EAAS9pF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAG2+B,IACvE08D,EAAStkF,OAAO,CAAEhX,EAAGA,EAAGC,EAAGA,IAC3Bq7F,EAAS/xB,KAAK,KAUT,YAAA4pB,mBAAP,SAA0BqB,GACzBA,EAAU5B,UAAY,IAAIF,EAAA,EAC1B8B,EAAU1B,QAAU,IAAIJ,EAAA,EACxB,IAAIgL,EAAiC,IAAIC,GAAA,EACzCD,EAAeE,eAAc,GAAO,GAAM,GAAO,GACjDpJ,EAAU/B,UAAYiL,GAMhB,YAAAlG,eAAP,SAAsBj8F,GACrB,IAAIuhG,EAAmBvhG,EACnBq0F,EAAOlqF,KAAKkqF,KAEhB,GAAIA,EAAM,CACT,IAAImN,EAAyBnN,EAAKmN,uBAE9B/8F,EAAI4vF,EAAKjjE,OAQb,GAPIowE,EACH/8F,EAAI,IAA2B,CAAEA,EAAG0F,KAAKinB,OAAQ1sB,EAAG,GAAKyF,KAAKmN,OAAQkqF,GAAwB/8F,EAG9F+8F,EAAyBnN,EAAK/8E,OAG5BkqF,EAIF,OAAQD,EAHQ98F,EAAI+8F,EAAuBjxC,aACvB8jC,EAAKkG,WAAaiH,EAAuBjxC,YAK/D,OAAOvwD,GAWD,YAAA2gG,aAAP,SAAoB5O,EAAgBlsF,EAAkBqyF,GACrD,IAAI1sE,EAAW,GACXumE,aAAkB,KACrBvmE,EAAWumE,EAAOvmE,UAGnB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EACjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzCR,EAAMX,EAAI,IAA2B,CAAED,EAAG,EAAGC,EAAGyF,KAAKwyF,KAAKprE,QAAUpnB,KAAKwyF,KAAKrlF,OAAQnN,KAAKwtF,eAAejzF,EAE1GyF,KAAK+1F,aAAanO,EAAQ1sF,GAE1B8E,KAAK02F,iBAAiB9O,EAAQlsF,EAAU,EAAG,IAE7C,EA1cA,CAAmC,IAkdnC,IAAS0D,kBAAT,cAA8C,GAU9C,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBG,SAChCj7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAe,CACpC,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAIjC,OAHAh7E,EAAM2iC,WAAW8qD,QAAS,EAC1BztF,EAAM2iC,WAAWkrD,iBAAmB,GACpC7tF,EAAM2iC,WAAWirD,iBAAmB,GAC7B5tF,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsBK,UAChCn7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAe,CACpC,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,QCnfT,mBAyBC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,oBACjB,EAAKvQ,WAAWm2D,cAAgB,GAChC,EAAKn2D,WAAWo2D,YAAc,GAC9B,EAAKj3C,a,EAoLP,OAlNuC,iBAuCtC,sBAAW,4BAAa,C,IAAxB,WACC,GAAI3pD,KAAKkqF,KACR,OAAOlqF,KAAKkqF,KAAKyd,gBAAgB3nG,KAAKqzF,mBAAoBrzF,KAAK2gG,gB,gCAUjE,sBAAW,0BAAW,C,IAAtB,WACC,GAAI3gG,KAAKkqF,KACR,OAAOlqF,KAAKkqF,KAAKyd,gBAAgB3nG,KAAK20F,iBAAkB30F,KAAK4gG,c,gCAS/D,sBAAW,4BAAa,C,IAYxB,WACC,OAAO5gG,KAAKujD,iBAAiB,kB,IAb9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,IACtCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCAiBb,sBAAW,0BAAW,C,IAYtB,WACC,OAAO5tF,KAAKujD,iBAAiB,gB,IAb9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,IACpCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCAiBb,sBAAW,yBAAU,C,IAYrB,WACC,IAAIga,EAAmB5nG,KAAKujD,iBAAiB,iBAC7C,OAAIqkD,EACI5nG,KAAKkqF,KAAK2d,gBAAgBD,GAG1B5nG,KAAKujD,iBAAiB,e,IAlB/B,SAAsB1tD,GACjBmK,KAAKopD,iBAAiB,aAAcvzD,IACnCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCAwBb,sBAAW,uBAAQ,C,IAYnB,WACC,IAAIga,EAAmB5nG,KAAKujD,iBAAiB,eAC7C,OAAIqkD,EACI5nG,KAAKkqF,KAAK2d,gBAAgBD,GAG1B5nG,KAAKujD,iBAAiB,a,IAlB/B,SAAoB1tD,GACfmK,KAAKopD,iBAAiB,WAAYvzD,IACjCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCA8Bb,sBAAW,4BAAa,C,IAYxB,WACC,OAAO5tF,KAAKujD,iBAAiB,kB,IAb9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,IACtCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCAwBb,sBAAW,0BAAW,C,IAYtB,WACC,OAAO5tF,KAAKujD,iBAAiB,gB,IAb9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,IACpCmK,KAAKkqF,OACRlqF,KAAKkqF,KAAKN,sBACV5pF,KAAKkqF,KAAK0D,qB,gCAYd,EAlNA,CAAuC,GA0NvC,IAASxuF,kBAAT,kBAAkD,GCzPlD,mBAmBC,mBACC,cAAO,K,OAbD,EAAA0oG,gBAA2D,GAcjE,EAAK/sD,UAAY,uBACjB,EAAKx4B,KAAO,aAEZ,EAAKkhF,UAAUmE,SAAW,EAC1B,EAAKnE,UAAUsE,YAAc,EAE7B,EAAKC,cAAgB,EAErB,EAAKr+C,a,EA6DP,OA1F0C,iBAqCzC,sBAAW,uBAAQ,C,IAanB,WACC,OAAI3pD,KAAK4pD,WACJ5pD,KAAK4pD,UAAUtoD,UAAU,YACrBtB,KAAK4pD,UAAUnmD,MAAM,WAAYzD,KAAKwqC,WAAWo9D,UAGnD5nG,KAAKwqC,WAAWo9D,U,IAnBxB,SAAoB/xG,GACnB,IAAIoyG,EAAcjoG,KAAKwqC,WAAWo9D,SAClC5nG,KAAKolD,YAAY,WAAYvvD,GACzB,IAAeoyG,IAAgBA,GAAepyG,GAC7CmK,KAAK4B,WACR5B,KAAK4B,UAAU+iF,oBAAoB3kF,O,gCAwBtC,sBAAW,0BAAW,C,IAOtB,WACC,OAAOA,KAAKwqC,WAAWu9D,a,IARxB,SAAuBlyG,GACtBmK,KAAKolD,YAAY,cAAevvD,I,gCAUjC,sBAAW,4BAAa,C,IAUxB,WACC,OAAOmK,KAAKwqC,WAAW09D,iB,IAXxB,SAAyBryG,GACpBA,GAASmK,KAAKwqC,WAAW09D,kBAC5BloG,KAAKolD,YAAY,kBAAmBvvD,GAChCmK,KAAK4B,YACR5B,KAAK4B,UAAUgoF,sBACf5pF,KAAK4B,UAAUgsF,sB,gCAQnB,EA1FA,CAA0C,GAkL1C,eAwDC,mBAGC,cAAO,K,OAdD,EAAAua,oBAA6D,IAAI/hB,EAAA,EAevE,EAAKrrC,UAAY,eAGjB,EAAK+9C,cAAgB,WAErB,EAAKsP,cAAgB,EAAK1jB,iBAC1B,EAAK0jB,cAAcxmG,UAAY,EAC/B,EAAKsnD,WAAW1qD,KAAK,EAAK4pG,eAI1B,EAAKz+C,a,EAukCP,OA9oCyE,iBAiF9D,YAAA+6B,eAAV,WACC,OAAO,IAAI,IAQF,YAAA0O,gBAAV,WACC,OAAO,IAAI,IAUL,YAAAG,sBAAP,SAA6BpkC,EAA4BqkC,GACxD,YAAMD,sBAAqB,UAACpkC,EAAUqkC,GACtC,IAAIoU,EAAyBz4C,EAAU,WAAanvD,KAAKwzF,YACzD,GAAI,IAAeoU,GAAW,CAC7B,IAAIS,EAA0CroG,KAAKmoG,oBAAoBjpD,OAAO0oD,GAC9E,GAAIS,EAAsB,CACzB,IAAIC,EAAWn5C,EAASvtD,UAAU3B,IAC9B6nG,EAAkBO,EAAqBP,gBAAgBQ,GACtDR,IACJA,EAAkB,GAClBO,EAAqBP,gBAAgBQ,GAAYR,GAElDA,EAAgBtpG,KAAK2wD,SAItBA,EAASvtD,UAAUoiF,UAAUv4D,OAAO0jC,IAU/B,YAAA6yC,kBAAP,sBAEC,YAAMA,kBAAiB,WAEvB,IAAWhiG,KAAKgsF,QAAQ3mF,YAAY,SAAC+mF,GACpC,GAAKA,EAAOyS,iBAAiB0J,GAAkBnc,EAAO2a,iBAAiBwB,EACtEnc,EAAOoc,0BAEH,CACJ,IAAIpgB,EAAa,EAAKqgB,gBAAgB,EAAKhvG,OACvCgvF,EAAW,EAAKggB,gBAAgB,EAAK7uG,KAErC6uF,GAAY,EAAKzE,UAAU7nF,QAC9BssF,IAOD,IAJA,IAAI6f,EAAWlc,EAAOnsF,IAClByoG,OAAQ,EACRC,OAAQ,EAEHtsG,EAAI+rF,EAAY/rF,GAAKosF,EAAUpsF,IAAK,CAC5C,IAAIusG,EAAe,EAAK5kB,UAAU7jC,SAAS9jD,GAC3C,GAAIusG,EAAc,CACjB,IAAId,EAAkBc,EAAad,gBAAgBQ,GAEnD,GAAIR,EACH,IAAK,IAAI,EAAI,EAAG,EAAIA,EAAgB3rG,OAAQ,IAAK,CAChD,IAAI0sG,EAAiBf,EAAgB,GACrC,GAAIe,EAAgB,CACnB,IAAIlhG,EAAQkhG,EAAelhG,QACtB,IAAe+gG,IAAa/gG,EAAQ+gG,KACxCA,EAAW/gG,KAEP,IAAeghG,IAAahhG,EAAQghG,KACxCA,EAAWhhG,MAQb,IAAe+gG,GAClBtc,EAAOhE,WAAasgB,EAGpBtc,EAAO3yF,MAAQ,EAAKA,MAEjB,IAAekvG,GAClBvc,EAAO3D,SAAWkgB,EAAW,EAG7Bvc,EAAOxyF,IAAM,EAAKA,IAIf,EAAKq3F,aAAe,EAAKA,YAAY90F,OAAS,GACjDiwF,EAAOoc,2BAYJ,YAAAn+C,SAAP,sBAEC,YAAMA,SAAQ,WAEd,IAAIy+C,EAAoB9oG,KAAKgkF,UAAU7nF,OAEnCisF,EAAa,IAAiB7wF,KAAKU,MAAM+H,KAAKvG,MAAQqvG,EAAY,GAAI,EAAGA,GACzErgB,EAAW,IAAiBlxF,KAAKc,KAAK2H,KAAKpG,IAAMkvG,GAAY,EAAGA,GAEhE9oG,KAAKutF,SAAS1jD,SACjB7pC,KAAKutF,SAASljC,WAIf,IAAI6yC,EAAmBl9F,KAAKutF,SAAS6C,WAAapwF,KAAKutF,SAAS8C,gBAC5D0Y,EAAoBxxG,KAAKK,IAAIoI,KAAKgkF,UAAU7nF,OAAQ5E,KAAKc,MAAMowF,EAAWL,GAAc8U,IAa5F,GAXAl9F,KAAK83E,YAAcvgF,KAAKU,MAAMmwF,EAAa2gB,GAAaA,EACxD/oG,KAAKgpG,UAAYzxG,KAAKc,KAAK2H,KAAKpG,IAAMkvG,GAEtC9oG,KAAK60F,gBAED70F,KAAK83E,aAAe93E,KAAKgpG,WAC5BhpG,KAAKgpG,YAGNhpG,KAAKipG,WAAaF,IAEd/oG,KAAKowF,YAAc,GAAvB,CAIApwF,KAAKugG,cAAgBvgG,KAAKgkF,UAAU7nF,OAChC6D,KAAKgkF,UAAU7nF,QAAU,IAC5B6D,KAAKugG,cAAgB,GAGtBvgG,KAAKk1F,iBAKL9M,EAAa,IAAU,EAAGpoF,KAAK83E,YAAc93E,KAAKipG,YAClDxgB,EAAW,IAAUzoF,KAAKgkF,UAAU7nF,OAAQ6D,KAAKgpG,UAAYhpG,KAAKipG,YAIlE,IAFA,IAAItO,EAAY,EAEPt+F,EAAI,EAAGA,EAAI+rF,EAAY/rF,IAAK,EAChC8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,IAC9B+vD,YAAa,EAGd/vD,EAAIosF,EAAb,IAAK,IAAkBp3E,EAAMrR,KAAKgkF,UAAU7nF,OAAQE,EAAIgV,EAAKhV,IAAK,EAC7D8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,IAC9B+vD,YAAa,EAGvB,IAAS/vD,EAAI+rF,EAAY/rF,EAAIosF,EAAUpsF,IACtC,GAAIA,EAAI2D,KAAKgkF,UAAU7nF,OAAQ,CAC9B,IAAIgzD,EAA8BnvD,KAAKgkF,UAAU7jC,SAAS9jD,GAC1D,GAAIA,EAAI2D,KAAKipG,YAAc1xG,KAAKQ,MAAMsE,EAAI2D,KAAKipG,YACXjpG,KAAK40F,UAAUv4F,KAEjD2D,KAAKgvF,eAAe7/B,GACpBnvD,KAAK2kF,oBAAoBx1B,EAAUwrC,IAGpCA,SAKAxrC,EAAS/C,YAAa,EAQzB,GAHApsD,KAAKgvF,eAAehvF,KAAKooG,eACzBpoG,KAAK2kF,oBAAoB3kF,KAAKooG,cAAezN,EAAY,EAAG36F,KAAKgkF,UAAU7nF,QAEvE6D,KAAKixF,YACSjxF,KAAKixF,YAEX/pF,MAAK,SAAC4nF,GAChB,IAAIuE,EAA6BvE,EAAUuE,mBACvCsB,EAA2B7F,EAAU6F,iBAEzC,GAAI,IAAgB,CAAEl7F,MAAO45F,EAAoBz5F,IAAK+6F,GAAoB,CAAEl7F,MAAO,EAAKq+E,YAAal+E,IAAK,EAAKovG,YAAc,CAE5H,IAAK,IAAIvmG,EAAI4wF,EAAoB5wF,GAAKkyF,EAAkBlyF,IAAK,EACxD0sD,EAAW,EAAK60B,UAAU7jC,SAAS19C,IAC9B2pD,YAAa,EAGvB,IAAI,EAAoB,IAAiB70D,KAAKc,KAAK,EAAK4wG,WAAana,EAAUhC,WAAY,EAAG6H,EAAmBtB,GAC7G,EAAY,EAChB,GAAIvE,EAAUhC,UAAY,EAEzB,IAASrqF,EAAI4wF,EAAoB5wF,GAAKkyF,EAAkBlyF,GAAQ,EAAW,CAC1E,IAAI0sD,KAA8B,EAAK60B,UAAU7jC,SAAS19C,IACjD2pD,YAAa,EACtB,EAAK4iC,eAAe7/B,GACpB,EAAKw1B,oBAAoBx1B,EAAU,GACnC,SAOLnvD,KAAKgxF,iBACLhxF,KAAK+wF,qBAEL/wF,KAAKgwF,WAAWtmC,aAChB1pD,KAAKutF,SAASlsB,qBAWR,YAAAsjB,oBAAP,SAA2Bx1B,EAA6BwrC,EAAoBhzF,GAC3E,YAAMg9E,oBAAmB,UAACx1B,GAE1BA,EAASwrC,UAAY36F,KAAKuvF,eAC1BvvF,KAAKuvF,iBAIL,IAAIhC,EAAyBvtF,KAAKutF,SAC7B,IAAe5lF,KACnBA,EAAQ3H,KAAK6nG,gBAAgB14C,EAASy4C,WAGvC,IAAInf,EAAWzoF,KAAK6nG,gBAAgB14C,EAAS44C,aAExC,IAAetf,KACnBA,EAAW9gF,GAGZ,IAKIuhG,EACAC,EACAvO,EAPAl/F,EAAmBsE,KAAK2nG,gBAAgBhgG,EAAOwnD,EAASs0C,UAAUmE,UAClE7Z,EAAsB/tF,KAAK2nG,gBAAgBlf,EAAUt5B,EAASs0C,UAAUsE,aAE5E54C,EAASzzD,SAAWA,EAMhByzD,EAAS66B,UACZkf,EAAezgB,EACf0gB,EAAenpG,KAAK2nG,gBAAgBhgG,EAAOwnD,EAASs0C,UAAUmE,UAC9DhN,EAAkB56F,KAAK2nG,gBAAgBuB,EAAc/5C,EAASs0C,UAAUsE,cAGzE54C,EAASj0D,MAAQqyF,EAASM,gBAAgBnyF,GAE1C,IAAI2yF,EAAiBl/B,EAASk/B,KAC1BA,IAASA,EAAKlkC,UACjBojC,EAASgJ,kBAAkBlI,EAAM3yF,EAAUqyF,GAG5C,IAAII,EAAah/B,EAASg/B,KACtBA,IAASA,EAAKhkC,UACjBojC,EAAS+I,kBAAkBnI,EAAMzyF,EAAUqyF,GAI5C,IAAIhpF,EAAmBoqD,EAASpqD,MAC5BA,IAAUA,EAAMolD,WAEdgF,EAAS66B,cAAyBt9E,GAAd3H,EAAMwd,OAC9B4sC,EAAS5sC,KAAO4sC,EAAS5sC,MAG1BgrE,EAAS0C,mBAAmBlrF,EAAOrJ,EAAUqyF,IAExCR,aAAoB,IAAiBp+B,EAASpqD,MAAMouD,cAAgBnzD,KAAKgwF,WAAW78B,eAAmBo6B,aAAoB,IAAiBp+B,EAASpqD,MAAMquD,eAAiBpzD,KAAKgwF,WAAW58B,kBAC5LjE,EAASpqD,MAAMogE,KAClBnlE,KAAKgwF,WAAW7qB,KAAOhW,EAASpqD,MAAMqgE,YAGtCplE,KAAKgwF,WAAWztE,KAAO4sC,EAASpqD,MAAMqgE,cAKzC,IAAI1pB,EAAiByT,EAASq/B,SAC1B9yC,IAASA,EAAKyO,WAEZgF,EAAS66B,UACbkf,EAAevhG,EAAQ3H,KAAKipG,WAC5BE,EAAenpG,KAAK2nG,gBAAgBhgG,EAAO+zC,EAAKr6B,UAChDu5E,EAAkB56F,KAAK2nG,gBAAgBuB,EAAcxtD,EAAKr6B,WAG3DksE,EAASkJ,kBAAkB/6C,EAAMytD,EAAcvO,GAC1CzrC,EAAS66B,SACbhqF,KAAK8vF,SAAS3gC,EAAUwrC,IAItBxrC,EAASy4B,QACZ2F,EAASiJ,aAAarnC,EAASy4B,OAAQlsF,EAAUqyF,GAIlD,IAAIn8B,EAAiBzC,EAASyC,KAC1BA,GACH27B,EAASkJ,kBAAkB7kC,EAAMu3C,EAAcvO,IAQ1C,YAAAwO,YAAP,WACCppG,KAAKmoG,oBAAoB5+F,QACzB,YAAM6/F,YAAW,YAUX,YAAAC,gBAAP,SAAuBl6C,EAA6BwK,GAC/CxK,IAEH,YAAMk6C,gBAAe,UAACl6C,EAAUwK,GAO5B,IAAexK,EAASy4C,WAC3B5nG,KAAKmoG,oBAAoBj4C,OAAOf,EAASy4C,SAAUz4C,KAM5C,YAAAm6C,YAAV,SAAsB3vC,GACrB,IAAIiuC,EAA4BjuC,EAAY35D,KAAK4sF,WAAWgb,UAC5D,GAAI,IAAeA,GAAW,CAC7B,IAAIz4C,EAA8BnvD,KAAKmoG,oBAAoBjpD,OAAO0oD,GAElE,OAAIz4C,GAIInvD,KAAKgkF,UAAU7gF,WAelB,YAAAwkG,gBAAP,SAAuBhgG,EAAe0Z,GAChC,IAAeA,KACnBA,EAAW,IAGZ,IAAI+mE,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SAExB+L,EAAqBx0F,KAAKu0F,iBAAiBnM,EAAYK,GAEvDkY,EAAgB3gG,KAAK2gG,cAMzB,GAHAnM,GAAcmM,EACdnM,GAAe,EAHGx0F,KAAK4gG,YAKnB5gG,KAAKixF,YAAa,CACrB,IAAItD,EAAa3tF,KAAKixF,YAEtB,IAAmBtD,EAAWtoF,YAAY,SAACypF,GAC1C,IAAIya,EAA0Bza,EAAUuE,mBACpCmW,EAAwB1a,EAAU6F,iBAEtC,GAAIhtF,EAAQygF,IAAe,IAAemhB,KAAqB,IAAeC,GAC7E,OAAO,EAGR,GAAI,IAAgB,CAAE/vG,MAAO8vG,EAAiB3vG,IAAK4vG,GAAiB,CAAE/vG,MAAO2uF,EAAYxuF,IAAK6uF,IAAa,CAC1G8gB,EAAkBhyG,KAAKM,IAAIuwF,EAAYmhB,GACvCC,EAAgBjyG,KAAKK,IAAI6wF,EAAU+gB,GAEnC,IAAI1c,EAAoBgC,EAAUhC,UAG9BnlF,EAAQ6hG,EACXphB,IAAeohB,EAAgBD,IAAoB,EAAIzc,GAG/CnlF,EAAQ4hG,IAKhB5hG,EAAQ4hG,GAAmB5hG,EAAQ4hG,GAAmBzc,GAIxD,OAAO,KAIT,IAAIkb,EAAgB,EAChB74C,EAAWnvD,KAAKgkF,UAAU7jC,SAASx4C,GAKvC,OAJIwnD,IACH64C,EAAgB74C,EAAS64C,eAGnB,IAAYA,GAAiBrgG,EAAQ0Z,EAAWs/E,EAAgBvY,GAAcoM,EAAY,IAa3F,YAAAiV,mBAAP,SAA0B7B,EAAkBvmF,GAC3C,IAAI1Z,EAAgB3H,KAAK6nG,gBAAgBD,GACzC,OAAO5nG,KAAK2nG,gBAAgBhgG,EAAO0Z,IAY7B,YAAAqoF,gBAAP,SAAuB9B,EAAkBvmF,GACxC,IAAI3lB,EAAWsE,KAAKypG,mBAAmB7B,EAAUvmF,GAC7CnmB,EAAQ8E,KAAKutF,SAASM,gBAAgBnyF,GACtCI,EAAQkE,KAAKutF,SAAS+D,gBAAgB51F,GAC1C,MAAO,CAAEpB,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,EAAGuB,MAAOA,IAazC,YAAA81F,WAAA,SAAWgW,EAAkBvmF,GAC5B,OAAOrhB,KAAK0pG,gBAAgB9B,EAAUvmF,IAahC,YAAAswE,cAAP,SAAqBiW,EAAkBvmF,GACtC,OAAOrhB,KAAKypG,mBAAmB7B,EAAUvmF,IASnC,YAAAwmF,gBAAP,SAAuBD,GACtB,GAAI,IAAeA,GAAW,CAC7B,IAAIz4C,EAA8BnvD,KAAKmoG,oBAAoBjpD,OAAO0oD,GAClE,GAAIz4C,EACH,OAAOA,EAASxnD,QAWZ,YAAAgiG,iBAAP,SAAwBC,EAAuB7B,GAC9C/nG,KAAK6pG,cAAc7pG,KAAK6nG,gBAAgB+B,GAAgB5pG,KAAK6nG,gBAAgBE,GAAe,IActF,YAAAtW,gBAAP,SAAuBh4F,EAAeG,EAAa+mG,EAAkCC,GACpF,IAAIkJ,EAAmB9pG,KAAKypG,mBAAmBhwG,EAAOknG,GAClDoJ,EAAiB/pG,KAAKypG,mBAAmB7vG,EAAKgnG,GAClD,OAAO5gG,KAAK0xF,qBAAqBoY,EAAUC,IAWrC,YAAA/W,cAAP,SAAqBt3F,EAAkB2lB,GACtC,IAAI1Z,EAAgB3H,KAAKyoG,gBAAgB/sG,GACzC,OAAOsE,KAAK2nG,gBAAgBhgG,EAAO0Z,IAS7B,YAAA2oF,uBAAP,SAA8B5d,EAAkBwb,GAE/C,IAAK,IAAIvrG,EAAI,EAAGA,EAAI+vF,EAAOpI,UAAU7nF,OAAQE,IAAK,CACjD,IAAI8yD,EAAWi9B,EAAOpI,UAAU7jC,SAAS9jD,GACzC,GAAI+vF,EAAOyS,OAAS7+F,MACfmvD,EAAS86C,WAAarC,EACzB,OAAOz4C,EAGT,GAAIi9B,EAAO2a,OAAS/mG,MACfmvD,EAAS+6C,WAAatC,EACzB,OAAOz4C,IAYJ,YAAAg7C,sBAAP,SAA6B/d,EAAkBwb,GAE9C,IAAK,IAAIvrG,EAAI+vF,EAAOpI,UAAU7nF,OAAS,EAAGE,GAAK,EAAGA,IAAK,CACtD,IAAI8yD,EAAWi9B,EAAOpI,UAAU7jC,SAAS9jD,GACzC,GAAI+vF,EAAOyS,OAAS7+F,MACfmvD,EAAS86C,WAAarC,EACzB,OAAOz4C,EAGT,GAAIi9B,EAAO2a,OAAS/mG,MACfmvD,EAAS+6C,WAAatC,EACzB,OAAOz4C,IAQJ,YAAAi7C,4BAAP,SAAmCxC,EAAkBxb,GAArD,IACKyc,EADL,OAcC,OAZAzc,EAAOpI,UAAU98E,MAAK,SAACioD,GAClBi9B,EAAOyS,OAAS,EACf1vC,EAAS86C,WAAarC,IACzBiB,EAAiB15C,GAGVi9B,EAAO2a,OAAS,GACpB53C,EAAS+6C,WAAatC,IACzBiB,EAAiB15C,MAIb05C,GAYD,YAAA/U,kBAAP,SAAyB1H,EAAkB1wF,EAAkBq4F,GAA7D,WAEC,GAAI,IAAer4F,GAAW,CAE7B,IAAI,EAAQsE,KAAKyoG,gBAAgB/sG,GAE7B,GAASsE,KAAKgkF,UAAU7nF,QAC3B,IAGD,IAAIgzD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS,GAEvC,GAAIgP,EAAU,CACb,IACI,EADA,EAAWA,EAASy4C,SAGpBiB,EAAiBzc,EAAOpI,UAAU7jC,SAAS,GAC/C,GAAI0oD,EAAgB,CACnB,GAAIzc,EAAOyS,OAAS7+F,MACf6oG,EAAeoB,WAAa,EAC/B,OAAOpB,EAGT,GAAIzc,EAAO2a,OAAS/mG,MACf6oG,EAAeqB,WAAa,EAC/B,OAAOrB,EAmCV,OA7BAzc,EAAOpI,UAAU98E,MAAK,SAACioD,GAClBi9B,EAAOyS,OAAS,GACf1vC,EAAS86C,WAAa,IACpB,IACJ,EAAM96C,GAEH53D,KAAK6B,IAAI,EAAQ,EAAIuO,OAASpQ,KAAK6B,IAAI,EAAQ+1D,EAASxnD,SAC3D,EAAMwnD,IAKLi9B,EAAO2a,OAAS,GACf53C,EAAS+6C,WAAa,IACpB,IACJ,EAAM/6C,GAEH53D,KAAK6B,IAAI,EAAQ,EAAIuO,OAASpQ,KAAK6B,IAAI,EAAQ+1D,EAASxnD,SAC3D,EAAMwnD,OAWH,KAgBH,YAAA8kC,KAAP,SAAY9kC,EAA4BruD,EAAcugB,EAAmB2yE,EAAmBj6F,GAC3F,IAAI2B,EAAWsE,KAAKk0F,aAAa/kC,EAAUruD,EAAKugB,EAAU2yE,EAAUj6F,GAEpE,OAAI,IAAY2B,GACRsE,KAAK43F,UAAUt9F,EAGf0F,KAAKutF,SAASM,gBAAgBnyF,GAAUpB,GAa1C,YAAA45F,aAAP,SAAoB/kC,EAA4BruD,EAAcugB,EAAmB2yE,EAAmBj6F,GACnG,IAAI2B,EASJ,OARI,IAAeoF,KAClBpF,EAAWsE,KAAKypG,mBAAmBt6C,EAASk7C,WAAWvpG,GAAMugB,IAG1DtnB,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAaD,YAAAy4F,KAAP,SAAYhlC,EAA4BruD,EAAcugB,EAAmB2yE,EAAmBj6F,GAE3F,IAAI2B,EAAWsE,KAAKo0F,aAAajlC,EAAUruD,EAAKugB,EAAU2yE,EAAUj6F,GAEpE,OAAI,IAAY2B,GACRsE,KAAK43F,UAAUr9F,EAGfyF,KAAKutF,SAASM,gBAAgBnyF,GAAUnB,GAa1C,YAAA65F,aAAP,SAAoBjlC,EAA4BruD,EAAcugB,EAAmB2yE,EAAmBj6F,GACnG,IAAI2B,EASJ,OARI,IAAeoF,KAClBpF,EAAWsE,KAAKypG,mBAAmBt6C,EAASk7C,WAAWvpG,GAAMugB,IAG1DtnB,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnD8B,GAeD,YAAAC,SAAP,SAAgBwzD,EAA4BruD,EAAaugB,EAAmB2yE,EAAmBj6F,GAC9F,IAAI2B,EAAWsE,KAAKypG,mBAAmBt6C,EAASk7C,WAAWvpG,GAAMugB,GAMjE,OAJItnB,IACH2B,EAAW,IAAiBA,EAAU3B,EAAMN,MAAOM,EAAMH,MAGnDoG,KAAKsxF,gBAAgB51F,IAYtB,YAAAs2F,qBAAP,SAA4Bt2F,GAC3B,OAAOsE,KAAKgzF,cAAct3F,EAAU,IAY9B,YAAAu2F,mBAAP,SAA0Bv2F,GACzB,OAAOsE,KAAKgzF,cAAct3F,EAAU,IAW9B,YAAA+2F,eAAP,SAAsB/2F,GACrB,IAAIyzD,EAA8BnvD,KAAKgkF,UAAU7jC,SAASngD,KAAKyoG,gBAAgB/sG,IAE/E,GAAIyzD,EAGH,OAFAnvD,KAAKukE,gBAAkBpV,EACvBnvD,KAAKwtD,QAAQ2B,SAAWA,EACpBnvD,KAAKg0D,YACDh0D,KAAKg0D,YAGRh0D,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkB0rD,EAASy4C,UAHhDz4C,EAASy4C,UAeZ,YAAAa,gBAAP,SAAuB/sG,IACtBA,EAAW,IAAYA,EAAU,KAClB,IACdA,EAAW,GAGRA,EAAW,IACdA,EAAW,GAGZ,IAAI0sF,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SACxB+L,EAAqB/L,EAAWL,EAAapoF,KAAK2gG,eAAiB,EAAI3gG,KAAK4gG,aAEhFllG,GAAY,EAAI84F,EAAax0F,KAAK2gG,cAClC,IAAIh5F,EAAgB,KAEpB,GAAI3H,KAAKixF,YAAa,CACrB,IAAItD,EAAa3tF,KAAKixF,YAGtB,IAAmBtD,EAAWtoF,YAAY,SAACypF,GAC1C,IAAIkM,EAA6BlM,EAAUhB,cACvCmN,EAA2BnM,EAAUf,YAErCwb,EAA0Bza,EAAUuE,mBACpCmW,EAAwB1a,EAAU6F,iBAEtC4U,EAAkB,IAAUA,EAAiBnhB,GAC7CohB,EAAgB,IAAUA,EAAe/gB,GAEzC,IAAIqE,EAAoBgC,EAAUhC,UAKlC,GAHA0H,IAAegV,EAAgBD,IAAoB,EAAIzc,GAGnDpxF,EAAWu/F,EACd7S,IAAeohB,EAAgBD,IAAoB,EAAIzc,QAGnD,KAAIpxF,EAAWs/F,GAIf,CACJ,IAAIsP,GAAiB5uG,EAAWs/F,IAAuBC,EAAmBD,GAE1E,OADArzF,EAAQ4hG,EAAkBhyG,KAAKQ,MAAMuyG,GAAiBd,EAAgBD,KAC/D,EAGR,OAAO,KAeT,OAXK,IAAe5hG,KACnBA,EAAQpQ,KAAKU,MAAMyD,EAAW84F,EAAapM,IAExCzgF,GAAS3H,KAAKgkF,UAAU7nF,SAC3BwL,EAAQ3H,KAAKgkF,UAAU7nF,OAAS,GAO1BwL,GAkBD,YAAA4iG,mBAAP,SAA0B7uG,GACzB,OAAOsE,KAAKg1F,iBAAiBt5F,IAevB,YAAAs5F,iBAAP,SAAwBt5F,GACvB,IAAIyzD,EAA8BnvD,KAAKgkF,UAAU7jC,SAASngD,KAAKyoG,gBAAgB/sG,IAC/E,GAAIyzD,EACH,OAAOA,EAASy4C,UAUlB,sBAAW,wBAAS,C,IAApB,WAGC,OAAO5nG,KAAKutF,SAASM,gBAAgB,I,gCAQ/B,YAAA+C,aAAP,WACC,YAAMA,aAAY,WAEH5wF,KAAKutF,SACXqI,SAASzrC,UAAW,GAa9B,sBAAW,wBAAS,C,IAApB,WACC,OAAOnqD,KAAKipG,Y,gCAoCb,sBAAW,2BAAY,C,IAOvB,WACC,OAAOjpG,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAgBvC,YAAAswE,cAAP,SAAqB33D,GAEhBA,GAEC,IAAeA,EAAOg8F,eAAiB,IAAeh8F,EAAOg8F,gBAC5DxqG,KAAKkrB,IAAIizB,OAAO3vC,EAAOg8F,cAC1Bh8F,EAAOg8F,aAAexqG,KAAKkrB,IAAIg0B,OAAO1wC,EAAOg8F,eAG7CxqG,KAAKyqG,cAAc,eAAgBj8F,EAAOg8F,qBACnCh8F,EAAOg8F,eAMjB,YAAMrkC,cAAa,UAAC33D,IAGtB,EA9oCA,CAAyE,GAspCzE,IAASpP,kBAAT,aAA6C,GAC7C,IAASA,kBAAT,qBAAqD,GCl0CrD,mBAgDC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,mBAEjB,EAAKhiD,OAAO2xG,YAAc,GAE1B,EAAK3xG,OAAO4xG,OAAS,CAAEt5E,MAAO,GAC9B,EAAKt4B,OAAO6xG,OAAS,CAAEv5E,MAAO,GAC9B,EAAKt4B,OAAO8xG,WAAa,GACzB,EAAK9xG,OAAO+xG,WAAa,GAEzB,EAAK/xG,OAAO2qG,MAAQ,GACpB,EAAK3qG,OAAO6qG,MAAQ,GACpB,EAAK7qG,OAAO4qG,UAAY,GACxB,EAAK5qG,OAAO8qG,UAAY,GAExB,EAAKkH,YAAY,QAAS,GAAK,GAC/B,EAAKA,YAAY,QAAS,GAAK,GAE/B,EAAKA,YAAY,YAAa,GAAK,GACnC,EAAKA,YAAY,YAAa,GAAK,GAEnC,EAAKphD,a,EA8RP,OArWsC,iBA+ErC,sBAAW,qBAAM,C,IAOjB,WACC,OAAO3pD,KAAKjH,OAAO4xG,OAAO90G,O,IAR3B,SAAkBA,GACjBmK,KAAKsmF,SAAS,SAAUzwF,I,gCAezB,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKjH,OAAO2xG,YAAY70G,O,IARhC,SAAuBA,GACtBmK,KAAKsmF,SAAS,cAAezwF,I,gCAe9B,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKjH,OAAO6xG,OAAO/0G,O,IAR3B,SAAkBA,GACjBmK,KAAKsmF,SAAS,SAAUzwF,I,gCAezB,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAK6jC,QAAQ,U,IARrB,SAAiB9e,GAChB/kB,KAAK++F,QAAQ,QAASh6E,I,gCAevB,sBAAW,oBAAK,C,IAOhB,WACC,OAAO/kB,KAAK6jC,QAAQ,U,IARrB,SAAiB9e,GAChB/kB,KAAK++F,QAAQ,QAASh6E,I,gCAevB,sBAAW,wBAAS,C,IAOpB,WACC,OAAO/kB,KAAKqqG,WAAWJ,W,IARxB,SAAqBrC,GACpB5nG,KAAKgrG,YAAY,YAAapD,I,gCAe/B,sBAAW,wBAAS,C,IAOpB,WACC,OAAO5nG,KAAKqqG,WAAWH,W,IARxB,SAAqBtC,GACpB5nG,KAAKgrG,YAAY,YAAapD,I,gCAe/B,sBAAW,yBAAU,C,IAOrB,WACC,OAAO5nG,KAAKjH,OAAO8xG,WAAWh1G,O,IAR/B,SAAsBA,GACrBmK,KAAKsmF,SAAS,aAAczwF,I,gCAe7B,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKjH,OAAO+xG,WAAWj1G,O,IAR/B,SAAsBA,GACrBmK,KAAKsmF,SAAS,aAAczwF,I,gCAe7B,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAK6jC,QAAQ,c,IARrB,SAAqB9e,GACpB/kB,KAAK++F,QAAQ,YAAah6E,I,gCAe3B,sBAAW,wBAAS,C,IAOpB,WACC,OAAO/kB,KAAK6jC,QAAQ,c,IARrB,SAAqB9e,GACpB/kB,KAAK++F,QAAQ,YAAah6E,I,gCAe3B,sBAAW,4BAAa,C,IAOxB,WACC,OAAO/kB,KAAKqqG,WAAWY,e,IARxB,SAAyBrD,GACxB5nG,KAAKgrG,YAAY,gBAAiBpD,I,gCAenC,sBAAW,4BAAa,C,IAOxB,WACC,OAAO5nG,KAAKqqG,WAAWa,e,IARxB,SAAyBtD,GACxB5nG,KAAKgrG,YAAY,gBAAiBpD,I,gCAmB5B,YAAAuD,OAAP,SAAcC,EAAkB5iB,EAAmB6iB,GAAnD,IAEKzzG,EAFL,OAwBC,OApBK,IAAeyzG,KACnBA,EAAa,GAGd,IAAYD,GAAQ,SAAC34D,GACpB,IAAI58C,EAGHA,EADG2yF,EACK,EAAKqV,gBAAgBprD,GAGrB,EAAKz7C,SAASy7C,KAGvB58C,GAASw1G,GAEGzzG,IAAQ,IAAeA,MAClCA,EAAM/B,MAGD+B,GAaD,YAAA0zG,OAAP,SAAcF,EAAkB5iB,EAAmB6iB,GAAnD,IAEKxzG,EAFL,OAyBC,OArBK,IAAewzG,KACnBA,EAAa,GAGd,IAAYD,GAAQ,SAAC34D,GACpB,IAAI58C,EAGHA,EADG2yF,EACK,EAAKqV,gBAAgBprD,GAGrB,EAAKz7C,SAASy7C,KAGvB58C,GAASw1G,GAEGxzG,IAAQ,IAAeA,MAClCA,EAAMhC,MAIDgC,GAIT,EArWA,CAAsC,GA2mBtC,eAmQC,mBACC,cAAO,K,OArKD,EAAAysG,YAAoC,GA8BjC,EAAAiH,OAAS,IAAI,IAKb,EAAAC,OAAS,IAAI,IAwEb,EAAAC,cAA+B,GAO/B,EAAAC,cAA+B,GAkBlC,EAAAnJ,cAAoD,GAMpD,EAAAG,aAAc,EAKd,EAAAiJ,gBAA0B,EAKvB,EAAAC,iBAA2B,EAG3B,EAAAC,OAAiB,IACjB,EAAAC,OAAiB,IAEjB,EAAAC,oBAA8B,EAYvC,EAAKhxD,UAAY,WACjB,EAAKyQ,YAAa,EAGlB,EAAK84C,YAAYqG,OAAS,QAC1B,EAAKrG,YAAYsG,OAAS,QAC1B,EAAKtG,YAAYoG,YAAc,QAE/B,EAAKpG,YAAYuG,WAAa,OAC9B,EAAKvG,YAAYwG,WAAa,OAE9B,EAAKnY,sBAAuB,EAE5B,EAAKqZ,oBAAqB,EAC1B,EAAKzS,kBAAmB,EAExB,EAAK/R,cAAc51B,KAAO,IAAI2V,EAAA,EAC9B,EAAKigB,cAAc51B,KAAKS,WAAW,EAAK9xD,MAAM+I,IAAI,SAElD,EAAK2iG,SAAU,EACf,EAAKrM,aAAc,EAEnB,EAAKpZ,cAAe,EAEpB,EAAKh5B,QAAQslC,mBAAqB,aAElC,EAAKrD,yBAA0B,EAC/B,EAAKrmC,iBAAiB,eAAe,GAErC,EAAKoE,QAAQxuD,OAAOmgD,GAAG,UAAU,WAChC,EAAK+sD,kCACHx/F,GAAW,GAEd,EAAKw8C,WAAW1qD,KAAK,EAAK+sG,QAC1B,EAAKriD,WAAW1qD,KAAK,EAAKgtG,QAE1B,EAAK5wC,QAAQ,KAAkB,WAC1B,EAAKhG,SACR,EAAKm3C,oBAAqB,EACtB,EAAKnnB,iBACR,EAAKA,eAAexB,iBAAkB,GAEnC,EAAKxI,OAAS,EAAKA,MAAM0H,QAC5B,EAAK1H,MAAM0H,OAAOsH,sBAEnB,EAAKlgC,qBAEJh9C,GAAW,GAEd,EAAKi9C,a,EA2gEP,OAj0E8B,iBA6TnB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,gBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAML,YAAAynB,cAAP,WACCnsG,KAAK0mF,MAAMn9E,QACXvJ,KAAK2mF,MAAMp9E,QAEXvJ,KAAK4mF,MAAMr9E,QACXvJ,KAAK6mF,MAAMt9E,SAML,YAAA8qF,iBAAP,WACCr0F,KAAK0iG,aAAc,EACnB1iG,KAAKuiG,cAAgB,GACrBviG,KAAKihG,kBAAoB,GAEzBjhG,KAAKmsG,gBAEDnsG,KAAK6+F,OACR7+F,KAAK6+F,MAAMvK,uBAAuBt0F,MAG/BA,KAAK+mG,OACR/mG,KAAK+mG,MAAMzS,uBAAuBt0F,OAS7B,YAAAmiG,aAAP,WACCniG,KAAKuiG,cAAgB,GACrB,IAAI3V,EAAa5sF,KAAK4sF,WAiBtB,GAhBIA,EAAWwf,YAAcxf,EAAWyf,gBAAkBzf,EAAWyf,gBAAkBzf,EAAW0f,eACjGtsG,KAAK2rG,gBAAiB,EAGtB3rG,KAAK2rG,gBAAiB,EAGvB3rG,KAAKusG,eAEDvsG,KAAKqB,KAAKlF,OAAS,GACtB6D,KAAKq0F,mBAGN,YAAM8N,aAAY,WAElBniG,KAAKwsG,uBACDxsG,KAAK46E,SACH,IAAe56E,KAAK4sF,WAAsC5sF,KAAKysG,YAAc,IAAezsG,KAAK4sF,WAAsC5sF,KAAK0sG,WAChJ,MAAMv2G,MAAM,4BAA+B6J,KAAKuC,KAAOvC,KAAKuC,KAAOvC,KAAKC,KAAO,+BAK7ED,KAAK40D,QAAU50D,KAAKk2D,UACvBl2D,KAAKisD,KAAK,GAGXjsD,KAAK0iG,aAAc,GAUV,YAAA2G,gBAAV,SAA0Bl6C,EAA6BwK,GACtD,IACC,YAAM0vC,gBAAe,UAACl6C,EAAUwK,GAEhC35D,KAAK6+F,MAAMtL,sBAAsBpkC,EAAU,KAC3CnvD,KAAK+mG,MAAMxT,sBAAsBpkC,EAAU,KAE3CnvD,KAAK2sG,wBAAwBx9C,GAE9B,MAAO9qD,GACFrE,KAAK0nF,QACR1nF,KAAK0nF,OAAO9hB,mBAAmBvhE,KAYxB,YAAAuoG,eAAV,SAAyBz9C,GACxB,YAAMy9C,eAAc,UAACz9C,GAGrBnvD,KAAK6+F,MAAMtL,sBAAsBpkC,EAAU,KAC3CnvD,KAAK+mG,MAAMxT,sBAAsBpkC,EAAU,MAYlC,YAAAw9C,wBAAV,SAAkCx9C,KAO3B,YAAAi6C,YAAP,WACC,YAAMA,YAAW,WACjB,IAAIvK,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,GAAIlI,EAAO,CACV,IAAIgO,EAAa7sG,KAAK8mF,gBAAgB5nC,OAAO2/C,EAAM5+F,KAC/C4sG,GACHA,EAAWtjG,QAERs1F,aAAiB,IACpB7+F,KAAK8sG,aAAajO,GAGpB,GAAIkI,EAAO,CACV,IAAIgG,EAAa/sG,KAAK8mF,gBAAgB5nC,OAAO6nD,EAAM9mG,KAC/C8sG,GACHA,EAAWxjG,QAERw9F,aAAiB,IACpB/mG,KAAK8sG,aAAa/F,KAQX,YAAA+F,aAAV,SAAuB5iB,GACtB,IAAIjqF,EAAMD,KAAKC,IACfiqF,EAAKlG,UAAU98E,MAAK,SAACioD,GAChBA,EAAS24C,gBAAgB7nG,KAC5BkvD,EAAS24C,gBAAgB7nG,GAAO,QASzB,YAAAssG,aAAV,WACC,IAAI1N,EAAc7+F,KAAK6+F,MACnBkI,EAAc/mG,KAAK+mG,MACvB,GAAIlI,GAASkI,EAAO,CACnB,IAAIiG,EAAyBnO,EAAM/F,cAC/B1P,EAA8E4jB,EAAiB,IAC/FC,EAAkF,OAAS,IAAkBD,GAAkB,IAE/HE,EAAyBnG,EAAMjO,cAC/BzP,EAA8E6jB,EAAiB,IAC/FC,EAAkF,OAAS,IAAkBD,GAAkB,IAEnIltG,KAAKysG,QAAUrjB,EACfppF,KAAK0sG,QAAUrjB,EAEXrpF,KAAK4sF,WAAWqgB,KACnBjtG,KAAKotG,YAAcH,GAGhBjtG,KAAK4sF,WAAWugB,KACnBntG,KAAKqtG,YAAcF,GAGfntG,KAAK4sF,WAAWugB,IAAentG,KAAKkhG,UAAY6F,IACpD/mG,KAAKqtG,YAAchkB,GAGfrpF,KAAK4sF,WAAWqgB,IAAejtG,KAAKkhG,UAAYrC,IACpD7+F,KAAKotG,YAAchkB,GAGhBppF,KAAKisG,SAAWjsG,KAAKkhG,UAAYrC,IACpC7+F,KAAKotG,YAAchkB,GAGhBppF,KAAKisG,SAAWjsG,KAAKkhG,UAAY6F,IACpC/mG,KAAKqtG,YAAchkB,GAGfwV,aAAiB,IAAkBkI,aAAiB,KACnD/mG,KAAKqtG,cACTrtG,KAAKqtG,YAAchkB,IAIrBrpF,KAAKyrG,cAAgB,GACrBzrG,KAAK0rG,cAAgB,GAErB1rG,KAAKstG,cAAczO,EAAY7+F,KAAKyrG,cAAoBzrG,KAAKysG,SAC7DzsG,KAAKstG,cAAczO,EAAY7+F,KAAKyrG,cAAoBzrG,KAAKotG,aAE7DptG,KAAKstG,cAAcvG,EAAY/mG,KAAK0rG,cAAoB1rG,KAAK0sG,SAC7D1sG,KAAKstG,cAAcvG,EAAY/mG,KAAK0rG,cAAoB1rG,KAAKqtG,eAYrD,YAAAC,cAAV,SAA+DpjB,EAAYkhB,EAAoB34D,GAC1Fy3C,aAAgB,IACf,IAAelqF,KAAK4sF,WAAWn6C,MAAqC,GAA1B24D,EAAOt0G,QAAQ27C,IAC5D24D,EAAO5sG,KAAKi0C,IAcL,YAAA86D,qBAAV,SAAsE96D,EAAYy3C,GAC5E,IAAelqF,KAAK4sF,WAAWn6C,MACnCzyC,KAAK4sF,WAAWn6C,GAAcy3C,EAAK0C,WAAWgb,WAatC,YAAA4F,iBAAV,SAAkE/6D,EAAYy3C,GACxE,IAAelqF,KAAK4sF,WAAWn6C,MACnCzyC,KAAK4sF,WAAWn6C,GAAcy3C,EAAK0C,WAAW7nE,OAOtC,YAAAylC,UAAV,WACC,YAAMA,UAAS,WACfxqD,KAAK6pF,cAQC,YAAAA,WAAP,WAEC,GAAI7pF,KAAKwnF,cAAc51B,KAAM,CAC5B,IAAI,EAAe5xD,KAAKytG,cAGxB,IAAWztG,KAAKqnF,WAAWhiF,YAAY,SAACtL,GACnCA,EAAMy0F,SAAS6G,WAClBt7F,EAAMy0F,SAASnkC,WACf,GAAQtwD,EAAMy0F,SAAS6G,aAIzBr1F,KAAKwnF,cAAc51B,KAAK9lD,KAAO,IASvB,YAAA2hG,YAAV,WACC,OAAIztG,KAAK6+F,OAAS7+F,KAAK+mG,MACf,IAAiB,CACvBzsG,EAAG,EACHC,EAAG,EACH+B,MAAO0D,KAAK6+F,MAAMzO,WAClB7zF,OAAQyD,KAAK+mG,MAAM3W,aAGd,IASD,YAAAnG,aAAP,SAAoBC,GACnB,OAAIA,GAAQlqF,KAAK6+F,MACT7+F,KAAKopF,OAETc,GAAQlqF,KAAK+mG,MACT/mG,KAAKqpF,YADb,GAUM,YAAApB,kBAAP,WACC,IAAIrN,EAAQ56E,KAAK46E,MACbA,IACH56E,KAAK6rG,OAAS,IAAU,IAAuC,EAA/BjxB,EAAM8yB,cAAcpsC,UACpDthE,KAAK8rG,OAAS,IAAU,IAAwC,EAAhClxB,EAAM8yB,cAAc3rC,YAIrD,IAAI88B,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MACblI,GAASkI,IACZlI,EAAMlL,qBACNoT,EAAMpT,sBAGP,YAAM1L,kBAAiB,WAEnB4W,GAASkI,IACZlI,EAAMpL,2BAA2BzzF,MACjC+mG,EAAMtT,2BAA2BzzF,QAS5B,YAAAgiG,kBAAP,WACC,IAAInD,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEblI,GAASkI,IACRlI,EAAMnV,kBACTmV,EAAMmD,oBAGH+E,EAAMrd,kBACTqd,EAAM/E,qBAIR,YAAMA,kBAAiB,YAQjB,YAAA33C,SAAP,WAEC,IAAIw0C,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,GAAIlI,GAASkI,EAAO,CACflI,EAAMh1D,SACTg1D,EAAMx0C,WAGH08C,EAAMl9D,SACTk9D,EAAM18C,WAGPrqD,KAAKzF,EAAIwsG,EAAM3/E,OACfpnB,KAAK1F,EAAIukG,EAAM53E,OAGfjnB,KAAKwmF,cAAe,EACpB,IAAIe,EAA4BvnF,KAAKunF,kBACjC,IAAeA,IACdvnF,KAAKkhG,SAAS9Q,YAAcpwF,KAAKyoF,SAAWzoF,KAAKooF,YAAcb,IAClEvnF,KAAKwmF,cAAe,GAIvBxmF,KAAKywF,gBAEL,YAAMpmC,SAAQ,WAEd,IAAIuwB,EAAQ56E,KAAK46E,MACb+yB,EAAc3tG,KAAK2tG,YACnB/yB,GAAS+yB,GACW,WAAnB/yB,EAAM7/B,YAC6B,YAAlC6/B,EAAMgzB,kBAAkBpsC,QAA2D,YAAnCoZ,EAAMizB,mBAAmBrsC,SACxExhE,KAAK+mG,MACR/mG,KAAKynF,iBAAiB71B,KAAO5xD,KAAK+mG,MAAMxZ,SAASC,cAGjDxtF,KAAKynF,iBAAiB71B,UAAOllD,GAGM,cAAjCkuE,EAAMkzB,iBAAiBtsC,QAA8D,cAApCoZ,EAAMmzB,oBAAoBvsC,SAC1ExhE,KAAK6+F,MACR7+F,KAAKynF,iBAAiB71B,KAAO5xD,KAAK6+F,MAAMtR,SAASC,cAGjDxtF,KAAKynF,iBAAiB71B,UAAOllD,KAYlC,sBAAW,oBAAK,C,IAyBhB,WACC,GAAI1M,KAAK46E,MAAO,CACf,IAAK56E,KAAKurG,OAAOrqG,MAAO,CACvB,IAAMgpF,EAAOlqF,KAAK46E,MAAMozB,MAAM7tD,SAAS,GAEvC,IAAK+pC,EACJ,MAAM/zF,MAAM,iCAGb6J,KAAK6+F,MAAQ3U,EAEd,OAAOlqF,KAAKurG,OAAOrqG,Q,IApCrB,SAAiBgpF,GAChBlqF,KAAKiuG,SAAS/jB,I,gCAGL,YAAA+jB,SAAV,SAAmB/jB,GAClB,IAAIgkB,EAAUluG,KAAKurG,OAAOrqG,MACtBgtG,GAAWhkB,IACVgkB,IACHluG,KAAK8mF,gBAAgBt4B,UAAU0/C,EAAQjuG,KAEvCD,KAAKurG,OAAO1rD,UAEZquD,EAAQ9hB,OAAOnsC,YAAYjgD,OAG5BA,KAAKurG,OAAOvqG,IAAIkpF,EAAMA,EAAKkH,eAAepxF,OAE1CA,KAAK8mF,gBAAgB52B,OAAOg6B,EAAKjqF,IAAK,IAAImmF,EAAA,GAC1CpmF,KAAK06E,mBA2BP,sBAAW,oBAAK,C,IA6BhB,WACC,GAAI16E,KAAK46E,MAAO,CACf,IAAK56E,KAAKwrG,OAAOtqG,MAAO,CACvB,IAAMgpF,EAAOlqF,KAAK46E,MAAMuzB,MAAMhuD,SAAS,GAEvC,IAAK+pC,EACJ,MAAM/zF,MAAM,iCAGb6J,KAAK+mG,MAAQ7c,EAGd,OAAOlqF,KAAKwrG,OAAOtqG,Q,IAzCrB,SAAiBgpF,GAChBlqF,KAAKouG,SAASlkB,I,gCAGL,YAAAkkB,SAAV,SAAmBlkB,GAClB,IAAIgkB,EAAUluG,KAAKwrG,OAAOtqG,MACtBgtG,GAAWhkB,IACVgkB,IACHluG,KAAK8mF,gBAAgBt4B,UAAU0/C,EAAQjuG,KAEvCD,KAAKwrG,OAAO3rD,UAEZquD,EAAQ9hB,OAAOnsC,YAAYjgD,OAG5BA,KAAKwrG,OAAOxqG,IAAIkpF,EAAMA,EAAKkH,eAAepxF,OAEtCkqF,EAAKtP,iBAAiB,IACzBsP,EAAKtP,MAAMyzB,eAAeruG,MAG3BA,KAAK8mF,gBAAgB52B,OAAOg6B,EAAKjqF,IAAK,IAAImmF,EAAA,GAC1CpmF,KAAK06E,mBA+BP,sBAAW,uBAAQ,C,IAUnB,WACC,IAAImkB,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAuBjB,OArBK/mG,KAAKsuG,WAAazP,GAASkI,IAC3BA,aAAiB,KACpB/mG,KAAKsuG,UAAYvH,GAGdlI,aAAiB,KACpB7+F,KAAKsuG,UAAYzP,GAGdkI,aAAiB,KACpB/mG,KAAKsuG,UAAYvH,GAGdlI,aAAiB,KACpB7+F,KAAKsuG,UAAYzP,GAGb7+F,KAAKsuG,YACTtuG,KAAKsuG,UAAYzP,IAGZ7+F,KAAKsuG,W,IAnCb,SAAoBz4G,GACfmK,KAAKsuG,WAAaz4G,IACrBmK,KAAKsuG,UAAYz4G,EACjBmK,KAAK0pD,e,gCAwCA,YAAAijC,QAAP,SAAe4hB,EAAgCC,EAAsBC,GACpE,YAAM9hB,QAAO,UAAC4hB,EAAaC,EAAaC,GAChBzuG,KAAK0uG,iBAE5B1uG,KAAK0uG,gBAAgB/hB,QAAQ4hB,EAAaC,GAAa,IAI/C,YAAAG,QAAV,SAAkB94G,GACjB,YAAM84G,QAAO,UAAC94G,GACVmK,KAAK0uG,iBACR1uG,KAAK0uG,gBAAgBC,QAAQ94G,IAcxB,YAAAsrG,WAAP,SAAkB5yC,GACjB,IAAIgf,EAAU,YAAM4zB,WAAU,UAAC5yC,GAE/B,GAAIgf,EAAS,CAEZvtE,KAAK4rG,iBAAkB,EACvB,IAAI5nB,EAAYhkF,KAAKgkF,UAErBhkF,KAAKmsG,gBAEL,IAAItN,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB/mG,KAAK4uG,qBAAkBliG,EACvB1M,KAAK6uG,mBAAgBniG,EACrB1M,KAAK83E,iBAAcprE,EACnB1M,KAAKgpG,eAAYt8F,EAEZ1M,KAAK6oD,UACT7oD,KAAKkoF,eAAc,GAGhB2W,aAAiB,IAAYA,GAAS7+F,KAAKkhG,WAC9ClhG,KAAK0mF,MAAMx2B,OAAO2uC,EAAM5+F,IAAK+jF,EAAU7jC,SAAS,GAAGujD,MAAM7+E,WACzD7kB,KAAK2mF,MAAMz2B,OAAO2uC,EAAM5+F,IAAK+jF,EAAU7jC,SAAS6jC,EAAU7nF,OAAS,GAAGunG,MAAM7+E,WAC5E7kB,KAAKmB,SAAS,oBAGX4lG,aAAiB,IAAYA,GAAS/mG,KAAKkhG,WAC9ClhG,KAAK0mF,MAAMx2B,OAAO62C,EAAM9mG,IAAK+jF,EAAU7jC,SAAS,GAAGyjD,MAAM/+E,WACzD7kB,KAAK2mF,MAAMz2B,OAAO62C,EAAM9mG,IAAK+jF,EAAU7jC,SAAS6jC,EAAU7nF,OAAS,GAAGynG,MAAM/+E,WAC5E7kB,KAAKmB,SAAS,oBAIhB,OAAOosE,GAUD,YAAA2a,cAAP,SAAqBM,GACpB,YAAMN,cAAa,UAACM,GAEpB,IAAIqW,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,GAAKlI,GAAUkI,EAAf,CAIA,IAAI/iB,EAAYhkF,KAAKgkF,UAEjBtnF,EAAOwnB,IACPtnB,GAASsnB,IAETvnB,EAAOunB,IACPrnB,GAASqnB,IAETkkE,EAAapoF,KAAKooF,WAClBK,EAAWzoF,KAAKyoF,SAEhBqmB,EAAoB1mB,EACpB2mB,EAAkBtmB,EAEjBD,IACJJ,EAAa,EACbK,EAAWzoF,KAAKgkF,UAAU7nF,QAG3B,IAAK,IAAIE,EAAI+rF,EAAY/rF,EAAIosF,EAAUpsF,IAAK,CAC3C,IAAI8yD,EAAW60B,EAAU7jC,SAAS9jD,GAElC2D,KAAKgvG,cAAc7/C,EAAUq5B,GAE7B,IAAIymB,EAAS9/C,EAASn4D,SAAS,SAAU,SACrCk4G,EAAS//C,EAASn4D,SAAS,SAAU,SAEzC0F,EAAO,IAAUyyD,EAASg8C,OAAOnrG,KAAKyrG,cAAejjB,EAASymB,GAASvyG,GACvEC,EAAO,IAAUwyD,EAASg8C,OAAOnrG,KAAK0rG,cAAeljB,EAAS0mB,GAASvyG,GAEvEC,EAAO,IAAUuyD,EAASm8C,OAAOtrG,KAAKyrG,cAAejjB,EAASymB,GAASryG,GACvEC,EAAO,IAAUsyD,EAASm8C,OAAOtrG,KAAK0rG,cAAeljB,EAAS0mB,GAASryG,GAGnEmD,KAAKisG,UACJjsG,KAAKkhG,UAAYrC,IAChBqQ,EAASvyG,IACZA,EAAOuyG,GAEJA,EAASryG,IACZA,EAAOqyG,IAGLlvG,KAAKkhG,UAAY6F,IAChBkI,EAASvyG,IACZA,EAAOuyG,GAEJA,EAASryG,IACZA,EAAOqyG,KAQXpQ,EAAMvL,yBACNyT,EAAMzT,yBAEN,IAAI6b,EAAkBtQ,EAAM5+F,IACxBmvG,EAAkBrI,EAAM9mG,IAE5B,MAAID,KAAK6+F,iBAAiB,KAAcniG,GAAQwnB,KAAYtnB,IAASsnB,SAIjElkB,KAAK+mG,iBAAiB,KAAcpqG,GAAQunB,KAAYrnB,IAASqnB,KAArE,CAIA,IAAKskE,IACAxoF,KAAK0mF,MAAMxnC,OAAOiwD,IAAYzyG,GAAQsD,KAAK2mF,MAAMznC,OAAOiwD,IAAYvyG,GAAQoD,KAAK0mF,MAAMxnC,OAAOkwD,IAAYzyG,GAAQqD,KAAK2mF,MAAMznC,OAAOkwD,IAAYvyG,GAAM,CACzJmD,KAAK0mF,MAAMx2B,OAAOi/C,EAASzyG,GAC3BsD,KAAK2mF,MAAMz2B,OAAOi/C,EAASvyG,GAC3BoD,KAAK0mF,MAAMx2B,OAAOk/C,EAASzyG,GAC3BqD,KAAK2mF,MAAMz2B,OAAOk/C,EAASvyG,GAE3B,IAAIwyG,EAAgBrvG,KAAKqvG,cACrBA,IACCA,EAAcxtD,aACjB7hD,KAAKqvG,mBAAgB3iG,EAGrB2iG,EAAcnnB,eAAc,IAG9BloF,KAAKyB,oBAAoB,mBAI3B,GAAI2mF,GAAc0mB,GAAqBrmB,GAAYsmB,EAAiB,CACnEryG,EAAOwnB,IACPtnB,GAASsnB,IAETvnB,EAAOunB,IACPrnB,GAASqnB,IAET,IAAS7nB,EAAIyyG,EAAmBzyG,EAAI0yG,EAAiB1yG,IAAK,CACrD8yD,EAAW60B,EAAU7jC,SAAS9jD,GAElC2D,KAAKgvG,cAAc7/C,EAAUq5B,GAEzBymB,EAAS9/C,EAASn4D,SAAS,SAAU,SACrCk4G,EAAS//C,EAASn4D,SAAS,SAAU,SAEzC0F,EAAO,IAAUyyD,EAASg8C,OAAOnrG,KAAKyrG,cAAejjB,EAASymB,GAASvyG,GAEvEC,EAAO,IAAUwyD,EAASg8C,OAAOnrG,KAAK0rG,cAAeljB,EAAS0mB,GAASvyG,GAEvEC,EAAO,IAAUuyD,EAASm8C,OAAOtrG,KAAKyrG,cAAejjB,EAASymB,GAASryG,GACvEC,EAAO,IAAUsyD,EAASm8C,OAAOtrG,KAAK0rG,cAAeljB,EAAS0mB,GAASryG,GAGnEmD,KAAKisG,UACJjsG,KAAKkhG,UAAYrC,IAChBqQ,EAASvyG,IACZA,EAAOuyG,GAEJA,EAASryG,IACZA,EAAOqyG,IAGLlvG,KAAKkhG,UAAY6F,IAChBkI,EAASvyG,IACZA,EAAOuyG,GAEJA,EAASryG,IACZA,EAAOqyG,MAOZ,MAAIjvG,KAAK6+F,iBAAiB,KAAcniG,GAAQwnB,KAAYtnB,IAASsnB,SAIjElkB,KAAK+mG,iBAAiB,KAAcpqG,GAAQunB,KAAYrnB,IAASqnB,KAArE,CAIA,IAAIlkB,KAAK4mF,MAAM1nC,OAAOiwD,IAAYzyG,GAAQsD,KAAK6mF,MAAM3nC,OAAOiwD,IAAYvyG,GAAQoD,KAAK4mF,MAAM1nC,OAAOkwD,IAAYzyG,GAAQqD,KAAK6mF,MAAM3nC,OAAOkwD,IAAYvyG,KAEnJmD,KAAK4mF,MAAM12B,OAAOi/C,EAASzyG,GAC3BsD,KAAK6mF,MAAM32B,OAAOi/C,EAASvyG,GAC3BoD,KAAK4mF,MAAM12B,OAAOk/C,EAASzyG,GAC3BqD,KAAK6mF,MAAM32B,OAAOk/C,EAASvyG,GAEvBmD,KAAK6oD,UAA0B,GAAd7oD,KAAKvG,OAA0B,GAAZuG,KAAKpG,KAAYoG,KAAKgkF,WAAahkF,KAAKwiG,aAAa,CAE5F,IAAIj1B,GAAU,EAEd,GAAIw5B,aAAiB,MAAeA,aAAiB,IAAW,CAC/D,IAAIuI,EAAOtvG,KAAK0mF,MAAMxnC,OAAOkwD,KAExB,IAAeE,KAAWtvG,KAAK2rG,gBAAkB3rG,KAAK4rG,kBAAoBjvG,EAAO2yG,GAAUtvG,KAAKqvG,gBAAkBrvG,KAAKk2D,YAC3Hl2D,KAAK0mF,MAAMx2B,OAAOk/C,EAASzyG,GAC3B4wE,GAAU,GAEX,IAAIgiC,EAAOvvG,KAAK2mF,MAAMznC,OAAOkwD,KACxB,IAAeG,KAAWvvG,KAAK2rG,gBAAkB3rG,KAAK4rG,kBAAoB/uG,EAAO0yG,GAAUvvG,KAAKqvG,gBAAkBrvG,KAAKk2D,YAC3Hl2D,KAAK2mF,MAAMz2B,OAAOk/C,EAASvyG,GAC3B0wE,GAAU,GAIZ,GAAIsxB,aAAiB,MAAeA,aAAiB,IAAW,CAC3DyQ,EAAOtvG,KAAK0mF,MAAMxnC,OAAOiwD,KACxB,IAAeG,KAAWtvG,KAAK2rG,gBAAkB3rG,KAAK4rG,kBAAoBlvG,EAAO4yG,GAAUtvG,KAAKqvG,gBAAkBrvG,KAAKk2D,YAC3Hl2D,KAAK0mF,MAAMx2B,OAAOi/C,EAASzyG,GAC3B6wE,GAAU,GAEPgiC,EAAOvvG,KAAK2mF,MAAMznC,OAAOiwD,KACxB,IAAeI,KAAWvvG,KAAK2rG,gBAAkB3rG,KAAK4rG,kBAAoBhvG,EAAO2yG,GAAUvvG,KAAKqvG,gBAAkBrvG,KAAKk2D,YAC3Hl2D,KAAK2mF,MAAMz2B,OAAOi/C,EAASvyG,GAC3B2wE,GAAU,GAIRA,GACHvtE,KAAKyB,oBAAoB,mBAGR,GAAdzB,KAAKvG,OAA0B,GAAZuG,KAAKpG,MAE3BoG,KAAK4rG,iBAAkB,GAGxB5rG,KAAKyB,oBAAoB,6BAItB+mF,GAAWxoF,KAAKisG,SACpBjsG,KAAKkoF,eAAc,OASd,YAAA77B,YAAP,WACC,YAAMA,YAAW,WACjBrsD,KAAKksG,2BACLlsG,KAAKwvG,0BAAuB9iG,GAUtB,YAAAy9E,sBAAP,SAA6BC,EAAmBC,GAE/C,IAAIl7B,EAEJ,GAAInvD,KAAK6rD,UAAY7rD,KAAK4mD,WAAa5mD,KAAK8mD,UAAW,CAEtD,IAAI+3C,EAAc7+F,KAAKurG,OAAOrqG,MAC1B6lG,EAAc/mG,KAAKwrG,OAAOtqG,MAE1B29F,GAAS7+F,KAAKkhG,WACjB/xC,EAA8B0vC,EAAM/K,kBAAkB9zF,KAAM6+F,EAAM/M,eAAe1H,GAAYpqF,KAAK4/F,cAE/FmH,GAAS/mG,KAAKkhG,WACjB/xC,EAA8B43C,EAAMjT,kBAAkB9zF,KAAM+mG,EAAMjV,eAAezH,GAAYrqF,KAAK4/F,cAGnG,IAAI1kG,EAAQ8E,KAAKknG,sBAAsB/3C,GAEvC,GAAIj0D,EACH,OAAOA,EAIR,IAAK8E,KAAKg0D,YACT,OAIFh0D,KAAKqsD,eAGI,YAAAojD,qBAAV,SAA+BtgD,EAA6B1c,EAAei9D,GAC1E,OAAOvgD,EAASs0C,UAAUhxD,IAGjB,YAAAk9D,qBAAV,SAA+BxgD,EAA6B1c,EAAem9D,GAC1E,OAAOzgD,EAASs0C,UAAUhxD,IASpB,YAAAy0D,sBAAP,SAA6B/3C,G,QAExBvL,EAAmB5jD,KAAK46E,MAAMh3B,OAClC,GAAIA,GAAUA,EAAOisD,+BAAiCjsD,EAAOksD,UAAUjkD,SAAWjI,EAAOmsD,UACxF/vG,KAAKqsD,mBAKN,GADArsD,KAAKksG,yBAAyB/8C,GAC1BA,GAAYA,EAAStD,SAGxB,GADA7rD,KAAKilF,kBAAkB91B,GACnBnvD,KAAK2yF,qBAAsB,CAC9B3yF,KAAKukE,gBAAkBpV,EAGvB,IAAI6gD,EAAgBhwG,KAAKgwG,cACrBC,EAAgBjwG,KAAKiwG,cAEzB,GAAI,IAAqB9gD,EAAU6gD,KAAmB,IAAqB7gD,EAAU8gD,IAAiB,CAErG,IAAIC,EAAelwG,KAAKmwG,SAAShhD,EAAU6gD,EAAeC,EAAejwG,KAAKyvG,qBAAqBtgD,EAAU6gD,GAAgBhwG,KAAK2vG,qBAAqBxgD,EAAU8gD,IAEjK,GAAIC,IAEyB,WAAxBlwG,KAAK46E,MAAM7/B,aAA2Bm1D,EAAa31G,GAAK,GAAK21G,EAAa31G,EAAIyF,KAAK+mG,MAAMh1C,YAAc,GAAKm+C,EAAa51G,GAAK,GAAK41G,EAAa51G,EAAI0F,KAAK6+F,MAAM/sC,WAAa,IAG3K,CAcJ,GAbA9xD,KAAKijF,SAAWitB,EAAa51G,EAC7B0F,KAAK+0E,SAAWm7B,EAAa31G,EAEzByF,KAAKwvG,sBAAwBrgD,IAChCnvD,KAAKyB,oBAAoB,iBAAkB,CAC1CF,KAAM,iBACNC,OAAQxB,KACRmvD,SAAUA,IAGXnvD,KAAKwvG,qBAAuBrgD,GAGzBnvD,KAAKgsG,mB,IACR,IAAmB,kBAAA78C,EAASroC,SAAO,8BAAE,CAAhC,IAAIzmB,EAAM,SACTA,EAAO8M,OAAO0+C,SAAWxrD,EAAO61D,UAAY71D,EAAO+rD,YAAc/rD,EAAO8pD,UAAY9pD,EAAOumD,WAI1FvmD,EAAO8sD,aAAawK,cACxBt3D,EAAOoB,oBAAoB,QAC3BpB,EAAO8sD,aAAawK,aAAc,GAEnCt3D,EAAO0zD,SAAU,I,iGAKpB,OAAI/zD,KAAKssD,cACD,IAAwB,CAAEhyD,EAAG41G,EAAa51G,EAAGC,EAAG21G,EAAa31G,GAAKyF,WAE1E,UAOJA,KAAKilF,kBAAkB91B,GAAU,IAOzB,YAAA+8C,yBAAV,SAAmC/8C,G,QAClC,GAAInvD,KAAKwvG,sBAAwBxvG,KAAKwvG,sBAAwBrgD,E,IAC7D,IAAmB,kBAAAnvD,KAAKwvG,qBAAqB1oF,SAAO,8BAAE,CAAjD,IAAIzmB,EAAM,QACd,GAAKA,EAAOwhD,aAQX7hD,KAAKwvG,0BAAuB9iG,MARH,CACzB,IAAM0jG,EAAY/vG,EAAO8sD,aAAawK,YACtCt3D,EAAO0zD,SAAU,EACbq8C,GACH/vG,EAAOoB,oBAAoB,S,mGAUtB,YAAAsnF,mBAAV,SAA6B55B,EAA6B65B,GAEzD,IAAII,EAAiBJ,EAAeI,OAC/B,IAAeA,KACnBA,EAASppF,KAAKopF,QAGf,IAAIC,EAAiBL,EAAeK,OAKpC,GAJK,IAAeA,KACnBA,EAASrpF,KAAKqpF,QAGVrpF,KAAK6+F,iBAAiB,KAAc1vC,EAAS74D,SAAS,CAAC8yF,KAAcppF,KAAK+mG,iBAAiB,KAAc53C,EAAS74D,SAAS,CAAC+yF,IAChI,OAAO,EAGR,GAAIL,EAAe7+B,SAAU,CAC5B,IAAI8+B,EAAgBD,EAAexhC,eAAe2C,SAC9CwP,EAAmBxK,EAASwK,YAChC,SAAIA,IAA8C,IAA/BA,EAAYsvB,IAQhC,OAAO,GAMD,YAAAwH,cAAP,WACMzwF,KAAKyvF,0BAA2BzvF,KAAKwtD,SAAYxtD,KAAKwtD,QAAQ0I,UAAal2D,KAAK4mD,UAAa5mD,KAAKk2D,WAAYl2D,KAAKukE,iBACvHvkE,KAAKknG,sBAAyClnG,KAAKukE,kBAQ9C,YAAAojB,eAAP,SAAsBC,GACrB,YAAMD,eAAc,UAACC,GAErB,IAAIz4B,EAA+Cy4B,EAAOz4B,SAGtDi6B,EAAiBxB,EAAOwB,OACvB,IAAeA,KACnBA,EAASppF,KAAKopF,QAGf,IAAIC,EAAiBzB,EAAOyB,OACvB,IAAeA,KACnBA,EAASrpF,KAAKqpF,QAGf,IAAIwV,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,GAAKlI,aAAiB,KAAc1vC,EAAS74D,SAAS,CAAC8yF,KAAc2d,aAAiB,KAAc53C,EAAS74D,SAAS,CAAC+yF,IACtHzB,EAAO/7B,SAAU,MAEb,CACJ,IAAI6jD,EAA0B1vG,KAAKqwG,mBAAmBzoB,EAAQwB,GAC1DwmB,EAA0B5vG,KAAKswG,mBAAmB1oB,EAAQyB,GAG9D,GADYrpF,KAAKmwG,SAAShhD,EAAUi6B,EAAQC,EAAQqmB,EAAiBE,GAC1D,CACV,IAAI3C,EAAajtG,KAAKitG,WAClBE,EAAantG,KAAKmtG,WAElBoD,OAAS,EACTC,OAAS,EAGb,GAAI3R,aAAiB,GAAU,CAEzB,IAAe6Q,KACnBA,EAAkB,GAGnB,IAAIe,OAAS,EACTC,EAAqBvhD,EAAS0uC,gBAAgBzU,GAmBlD,GAjBK6jB,EAMJwD,EAAYthD,EAAS0uC,gBAAgBoP,GALjCpO,GAAS7+F,KAAKkhG,WACjBuP,EAAY5R,EAAMzwF,WAOf,IAAeqiG,KACnBA,EAAYC,IAIbD,GADIp/E,EAAgB89B,EAASn4D,SAAS,SAAU,YAEhD05G,GAAcr/E,GAEe,CAC5B,IAAI+vE,EAAevC,EAAMuC,aACrB3oC,EAAgBomC,EAAMpmC,cAC1Bg4C,EAAY,KAAY,IAAI/rF,KAAK+rF,GAAYrP,EAAa9B,SAAU8B,EAAajjG,MAAOs6D,EAAc3kB,eAAgB2kB,EAAczzC,KAAKH,UACzI6rF,EAAa,KAAU,IAAIhsF,KAAK+rF,GAAYrP,EAAa9B,SAAU8B,EAAajjG,MAAOs6D,EAAczzC,KAAKH,UAG3G,IAAI8rF,OAAW,EAEdA,EADG9R,GAAS7+F,KAAKkhG,SACHuP,GAAaC,EAAaD,GAAaf,EAGvCe,GAAaC,EAAaD,IAAc,EAAIf,GAG3Da,EAAY1R,EAAMzG,gBAAgBuY,QAE9B,GAAI9R,aAAiB,GAAW,CAE/B,IAAe6Q,KACnBA,EAAkB,GAGfe,OAAS,EACTC,EAAqBvhD,EAAS0uC,gBAAgBzU,GAMjDqnB,EAJIxD,EAIQ99C,EAAS0uC,gBAAgBoP,GAHzBpO,EAAMzwF,UAUfuiG,GAHJF,GADIp/E,EAAgB89B,EAASn4D,SAAS,SAAU,YAEhD05G,GAAcr/E,GAE8Bo/E,IAAc,EAAIf,GAE9Da,EAAY1R,EAAMzG,gBAAgBuY,QAE9B,GAAI9R,aAAiB,GAAc,CAEvC,IAAI+R,EAAgB5wG,KAAKyvG,qBAAqBtgD,EAAUi6B,EAAQxB,EAAOipB,WACnEC,EAAe9wG,KAAKyvG,qBAAqBtgD,EAAU89C,EAAYrlB,EAAOipB,WAE1EN,EAAY1R,EAAM4K,mBAAyBt6C,EAAUi6B,GAASwnB,GAC9D,IAAIG,OAAa,EAGb9D,IACH8D,EAAgBlS,EAAM4K,mBAAyBt6C,EAAU89C,GAAa6D,IAGlE,IAAeC,KACnBA,EAAgB,GAGjBR,EAAYQ,GAAiBR,EAAYQ,GAAiBrB,EAG3D,GAAI3I,aAAiB,GAAU,CACzB,IAAe6I,KACnBA,EAAkB,GAGfa,OAAS,EACTC,EAAqBvhD,EAAS0uC,gBAAgBxU,GAmBlD,GAjBK8jB,EAMJsD,EAAYthD,EAAS0uC,gBAAgBsP,GALjCpG,GAAS/mG,KAAKkhG,WACjBuP,EAAY1J,EAAM34F,WAOf,IAAeqiG,KACnBA,EAAYC,IAIbD,GADIp/E,EAAgB89B,EAASn4D,SAAS,SAAU,YAEhD05G,GAAcr/E,GAEe,CACxB+vE,EAAe2F,EAAM3F,aACrB3oC,EAAgBsuC,EAAMtuC,cAC1Bg4C,EAAY,KAAY,IAAI/rF,KAAK+rF,GAAYrP,EAAa9B,SAAU8B,EAAajjG,MAAOs6D,EAAc3kB,eAAgB2kB,EAAczzC,KAAKH,UACzI6rF,EAAa,KAAU,IAAIhsF,KAAK+rF,GAAYrP,EAAa9B,SAAU8B,EAAajjG,MAAOs6D,EAAczzC,KAAKH,UAGvG8rF,OAAW,EAGdA,EADG5J,GAAS/mG,KAAKkhG,SACHuP,GAAaC,EAAaD,GAAab,EAGvCa,GAAaC,EAAaD,IAAc,EAAIb,GAG3DY,EAAYzJ,EAAM3O,gBAAgBuY,QAE9B,GAAI5J,aAAiB,GAAW,CAE/B,IAAe6I,KACnBA,EAAkB,GAGnB,IAUIv+E,EAVAo/E,OAAS,EACTC,EAAqBvhD,EAAS0uC,gBAAgBxU,GAMjDonB,EAJItD,EAIQh+C,EAAS0uC,gBAAgBsP,GAHzBpG,EAAM34F,UAUfuiG,GAHJF,GADIp/E,EAAgB89B,EAASn4D,SAAS,SAAU,YAEhD05G,GAAcr/E,GAE8Bo/E,IAAc,EAAIb,GAE9DY,EAAYzJ,EAAM3O,gBAAgBuY,QAE9B,GAAI5J,aAAiB,GAAc,CACvCyJ,EAAYzJ,EAAM0C,mBAAyBt6C,EAAUk6B,GAASumB,GAE9D,IAAIoB,EAAchxG,KAAK2vG,qBAAqBxgD,EAAUk6B,EAAQzB,EAAOqpB,WACjEC,EAAiBlxG,KAAK2vG,qBAAqBxgD,EAAUg+C,EAAYvlB,EAAOqpB,WAE5ET,EAAYzJ,EAAM0C,mBAAyBt6C,EAAUk6B,GAAS2nB,GAC9D,IAAIG,OAAa,EAEbhE,IACHgE,EAAgBpK,EAAM0C,mBAAyBt6C,EAAUg+C,GAAa+D,IAElE,IAAeC,KACnBA,EAAgB,GAGjBX,EAAYW,GAAiBX,EAAYW,GAAiBvB,EAI3DhoB,EAAO/7B,SAAU,EACjB7rD,KAAKoxG,mBAAmBxpB,EAAQ2oB,EAAWC,QAG3C5oB,EAAO/7B,SAAU,IAKV,YAAAulD,mBAAV,SAA6BxpB,EAAgB2oB,EAAmBC,GAC/D5oB,EAAOttF,EAAI0F,KAAK6+F,MAAMtR,SAASM,gBAAgB0iB,EAAWC,GAAWl2G,EACrEstF,EAAOrtF,EAAIyF,KAAK+mG,MAAMxZ,SAASM,gBAAgB2iB,EAAWD,GAAWh2G,GAO5D,YAAA81G,mBAAV,SAA6BzoB,EAAgBn1C,GAC5C,IAAI4+D,EAAyBzpB,EAAOipB,UAChC1hD,EAAWy4B,EAAOz4B,SAItB,OAHK,IAAekiD,KACnBA,EAAiBliD,EAAS22C,iBAAiBrzD,IAErC4+D,GAQE,YAAAf,mBAAV,SAA6B1oB,EAAgBn1C,GAC5C,IAAI4+D,EAAyBzpB,EAAOqpB,UAChC9hD,EAAWy4B,EAAOz4B,SAItB,OAHK,IAAekiD,KACnBA,EAAiBliD,EAAS22C,iBAAiBrzD,IAErC4+D,GAYD,YAAAC,eAAP,sBACCtxG,KAAK4pF,sBACD5pF,KAAK46E,OACR56E,KAAK46E,MAAMwR,OAAOllF,MAAK,SAACklF,GACnBA,EAAO8U,UAAY,EAAKA,WAC3B9U,EAAOijB,mBAAgB3iG,EACvB0/E,EAAOxC,sBACPwC,EAAOzC,+BAgBX,sBAAW,sBAAO,C,IA4BlB,WACC,OAAO3pF,KAAKujD,iBAAiB,Y,IA7B9B,SAAmB0oD,GAClB,GAAIjsG,KAAKopD,iBAAiB,UAAW6iD,GAAS,GAAO,CACpDjsG,KAAKsxG,iBAEL,IAIK,EAJDzS,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,IAAKkF,EAGApN,GAAS7+F,KAAKkhG,UAAYrC,aAAiB,KAC9C,EAAQ7+F,KAAKopF,QAEV2d,GAAS/mG,KAAKkhG,UAAY6F,aAAiB,KAC9C,EAAQ/mG,KAAKqpF,QAEV,GACHrpF,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAASu5B,mBAAmB,EAAO,EAAG,c,gCAqB3C,sBAAW,0BAAW,C,IAOtB,WACC,OAAO1oF,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,I,gCAiB/B,YAAAguE,KAAP,SAAY98B,GAAZ,IAEKqkE,EAFL,OAGKprG,KAAK6+F,iBAAiB,IAAa7+F,KAAK6+F,OAAS7+F,KAAKkhG,WACzDkK,EAASprG,KAAKyrG,eAGXzrG,KAAK+mG,iBAAiB,IAAa/mG,KAAK+mG,OAAS/mG,KAAKkhG,WACzDkK,EAASprG,KAAK0rG,eAGf,IAYI6F,EAZAnpB,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SACxBnU,EAAgB,EAEhBk9B,EAAwBxxG,KAAK0sD,aAAauJ,mBAC1C,IAAelvB,KAClByqE,EAAwBzqE,GAEpB,IAAQ0qE,oBACZD,EAAwB,GAKzB,IAAW,IAAcxxG,KAAKgkF,UAAU3+E,aAAa,SAACtO,GACrD,IAAIsF,EAAItF,EAAE,GACNo4D,EAAWp4D,EAAE,GACb26G,EAAeF,GACfn1G,EAAI,EAAK+rF,WAAa,IAAM/rF,EAAI,EAAKosF,SAAW,MACnDipB,EAAe,EACfp9B,EAAQ,GAGL,EAAKq9B,wBAA0BD,EAAe,IACjDp9B,EAAQ,EAAKs9B,4BAA8Bv1G,EAAIm1G,GAAyBn1G,EAAI+rF,IAAeK,EAAWL,IAEvGmpB,EAAOpiD,EAAS0U,KAAK6tC,EAAcp9B,EAAO82B,MAI3CprG,KAAKgjG,SAAS97F,MAAK,SAACpG,EAAKiiG,GACpBA,GAAW,EAAK/e,WACnB+e,EAAQ77F,MAAK,SAACioD,GACbA,EAASnwD,OAAO6yG,UAChB1iD,EAAS0U,KAAK,EAAG,EAAGunC,GACpBj8C,EAASnwD,OAAO8yG,eAKf9xG,KAAKwiG,aAAexiG,KAAKgkF,WAC5BhkF,KAAKwiG,YAAYt7F,MAAK,SAACioD,GACtBA,EAASnwD,OAAO6yG,UAChB1iD,EAAS0U,KAAK,EAAG,EAAGunC,GACpBj8C,EAASnwD,OAAO8yG,YAIlB,IAAIt7C,EAAY,YAAMqN,KAAI,UAAC98B,GAW3B,OATIwqE,IAASA,EAAKp6C,eACjBX,EAAY+6C,GAGTvxG,KAAKgsD,SACRhsD,KAAKyB,oBAAoB,4BACzBzB,KAAKgsD,QAAS,GAGRwK,GASD,YAAAvK,KAAP,SAAYllB,GAAZ,IACKqkE,EACAv1G,EAFL,OAGKgpG,EAAc7+F,KAAK6+F,MAEnBA,aAAiB,IAAaA,GAAS7+F,KAAKkhG,WAC/CkK,EAASprG,KAAKyrG,cAGb51G,EADGmK,KAAKisG,SAAYpN,EAAM3E,UAAY2E,EAAMzwF,WAAaywF,EAAM1E,UAAY0E,EAAMzwF,WAAcpO,KAAKqvG,cAC5FxQ,EAAMzwF,UAGNywF,EAAMjnG,KAIhB,IAAImvG,EAAc/mG,KAAK+mG,MACnBA,aAAiB,IAAaA,GAAS/mG,KAAKkhG,WAC/CkK,EAASprG,KAAK0rG,cAGb71G,EADGmK,KAAKisG,SAAYlF,EAAM7M,UAAY6M,EAAM34F,WAAa24F,EAAM5M,UAAY4M,EAAM34F,WAAcpO,KAAKqvG,cAC5FtI,EAAM34F,UAGN24F,EAAMnvG,KAKhB,IAAIwwF,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SAExB+oB,EAAwBxxG,KAAKw1D,YAAYS,mBACzC,IAAelvB,KAClByqE,EAAwBzqE,GAGpB,IAAQ0qE,oBACZD,EAAwB,GAGzB,IACID,EADAj9B,EAAgB,EAEpB,IAAW,IAAct0E,KAAKgkF,UAAU3+E,aAAa,SAACtO,GACrD,IAAIsF,EAAItF,EAAE,GACNo4D,EAAWp4D,EAAE,GACb26G,EAAeF,GAEfn1G,EAAI,EAAK+rF,WAAa,IAAM/rF,EAAI,EAAKosF,SAAW,MACnDipB,EAAe,GAGI,GAAhBA,EACHviD,EAASlD,KAAK,EAAG,EAAGp2D,EAAOu1G,IAGvB,EAAKuG,wBAA0BD,EAAe,IACjDp9B,EAAQ,EAAKs9B,4BAA8Bv1G,EAAIm1G,GAAyBn1G,EAAI+rF,IAAeK,EAAWL,IAEvGmpB,EAAOpiD,EAASlD,KAAKylD,EAAcp9B,EAAOz+E,EAAOu1G,OAInD,IAAI50C,EAAY,YAAMvK,KAAI,UAACulD,GAY3B,OAXIh7C,IAAcA,EAAUW,cAC3BX,EAAU8d,MAAMA,GAGbi9B,IAASA,EAAKp6C,eACjBX,EAAY+6C,GAIbvxG,KAAK+vF,uBAEEv5B,GAQD,YAAAizB,iCAAP,SAAwCt6B,EAA8B5sD,GACrE,YAAMknF,iCAAgC,UAACt6B,EAAU5sD,GAGjD,IAAIwvG,EAA6C/xG,KAAKkhG,SAAS9U,OAE/D,IAAW2lB,EAAW1sG,YAAY,SAAC+mF,IAC9BA,EAAO6f,SAAW7f,EAAOijB,gBAC5BjjB,EAAOzC,8BAYH,YAAAqlB,cAAP,SAAqB7/C,EAA6Bq5B,GAAlD,WAIKqW,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEjB,GAAK/mG,KAAKisG,SAAYpN,GAAUkI,EAAhC,CAKC,IAGI,EAHAnsB,EAAiB56E,KAAK46E,MACtBjzE,EAAgBizE,EAAMwR,OAAOt1F,QAAQkJ,MAIrC6+F,GAAS7+F,KAAKkhG,UAAYrC,aAAiB,KAC9C,EAAQ7+F,KAAKopF,QAEV2d,GAAS/mG,KAAKkhG,UAAY6F,aAAiB,KAC9C,EAAQ/mG,KAAKqpF,QAGT,IAKLl6B,EAASu5B,mBAAmB,EAAO,EAAG,SAEtC,IAAmB9N,EAAMwR,OAAOryF,MAAM,EAAG4N,GAAOq3C,YAAY35C,YAAY,SAAC2sG,GAExE,GAAIA,EAAWnT,OAASA,GAASmT,EAAWjL,OAASA,EAAO,CAE3DiL,EAAW3C,cAAgB,EAE3B,IAAI4C,EAAeD,EAAWhuB,UAAU7jC,SAASgP,EAASxnD,OAE1D,GAAIsqG,GAAgBA,EAAa37G,SAAS,EAAKm1G,gBAAkBwG,EAAa37G,SAAS,EAAKo1G,eAAgB,CAE3G,IAAI71G,EAAQs5D,EAASn4D,SAAS,GAC1B2xF,OAAS,EACTupB,EAAgBD,EAAaj7G,SAAS,GAASi7G,EAAaj7G,SAAS,EAAO,SAShF,GANC2xF,EADGH,EACSypB,EAAapU,gBAAgB,GAASoU,EAAaj7G,SAAS,EAAO,SAGnEi7G,EAAaj7G,SAAS,GAASi7G,EAAaj7G,SAAS,EAAO,SAGpEnB,GAAS,GAAKq8G,GAAiB,GAAOr8G,EAAQ,GAAKq8G,EAAgB,EAIvE,OAFA/iD,EAASu5B,mBAAmB,EAAOC,EAAW,UAEvC,OAGJ,IAAKqpB,EAAW/F,QACpB,OAAO,EAIT,OAAO,QAYV,sBAAW,qBAAM,C,IAAjB,WACC,OAAOjsG,KAAKysG,S,gCAUb,sBAAW,qBAAM,C,IAAjB,WACC,OAAOzsG,KAAK0sG,S,gCAUb,sBAAW,yBAAU,C,IAArB,WACC,OAAO1sG,KAAKotG,a,gCAUb,sBAAW,yBAAU,C,IAArB,WACC,OAAOptG,KAAKqtG,a,gCAUb,sBAAW,4BAAa,C,IASxB,WACC,OAAIrtG,KAAKmyG,eACDnyG,KAAKmyG,eAENnyG,KAAKysG,S,IAbb,SAAyB52G,GACxBmK,KAAKmyG,eAAiBt8G,G,gCAsBvB,sBAAW,4BAAa,C,IASxB,WACC,OAAImK,KAAKoyG,eACDpyG,KAAKoyG,eAENpyG,KAAK0sG,S,IAbb,SAAyB72G,GACxBmK,KAAKoyG,eAAiBv8G,G,gCAsBhB,YAAA+B,IAAP,SAAWsyF,GACV,OAAOlqF,KAAK0mF,MAAMxnC,OAAOgrC,EAAKjqF,MAUxB,YAAApI,IAAP,SAAWqyF,GACV,OAAOlqF,KAAK2mF,MAAMznC,OAAOgrC,EAAKjqF,MAWxB,YAAAm9F,aAAP,SAAoBlT,GACnB,IAAIr0F,EAAQmK,KAAK4mF,MAAM1nC,OAAOgrC,EAAKjqF,KAInC,OAHK,IAAepK,KACnBA,EAAQmK,KAAKpI,IAAIsyF,IAEXr0F,GAWD,YAAAwnG,aAAP,SAAoBnT,GACnB,IAAIr0F,EAAQmK,KAAK6mF,MAAM3nC,OAAOgrC,EAAKjqF,KAInC,OAHK,IAAepK,KACnBA,EAAQmK,KAAKnI,IAAIqyF,IAEXr0F,GASD,YAAAswE,cAAP,SAAqB33D,GAEpB,GAAIA,EAAQ,CAkCX,GA/BI,IAAeA,EAAO0yF,WAAa,IAAe1yF,EAAO0yF,YACxDlhG,KAAKkrB,IAAIizB,OAAO3vC,EAAO0yF,UAC1B1yF,EAAO0yF,SAAWlhG,KAAKkrB,IAAIg0B,OAAO1wC,EAAO0yF,WAGzClhG,KAAK4+F,iBAAiBpgG,KAAK,eAAiBwB,KAAKuC,MAAQ,WAAa,uBAA0BiM,EAAO0yF,SAAW,kCAC3G1yF,EAAO0yF,WAKZ,IAAe1yF,EAAOqwF,QAAU,IAAerwF,EAAOqwF,SACrD7+F,KAAKkrB,IAAIizB,OAAO3vC,EAAOqwF,OAC1BrwF,EAAOqwF,MAAQ7+F,KAAKkrB,IAAIg0B,OAAO1wC,EAAOqwF,QAGtC7+F,KAAK4+F,iBAAiBpgG,KAAK,eAAiBwB,KAAKuC,MAAQ,WAAa,uBAA0BiM,EAAOqwF,MAAQ,+BACxGrwF,EAAOqwF,QAGZ,IAAerwF,EAAOu4F,QAAU,IAAev4F,EAAOu4F,SACrD/mG,KAAKkrB,IAAIizB,OAAO3vC,EAAOu4F,OAC1Bv4F,EAAOu4F,MAAQ/mG,KAAKkrB,IAAIg0B,OAAO1wC,EAAOu4F,QAGtC/mG,KAAK4+F,iBAAiBpgG,KAAK,eAAiBwB,KAAKuC,MAAQ,WAAa,uBAA0BiM,EAAOu4F,MAAQ,+BACxGv4F,EAAOu4F,QAKZ,IAAev4F,EAAO64E,aAAe,IAAc74E,EAAO64E,YAC7D,IAAK,IAAIhrF,EAAI,EAAGgV,EAAM7C,EAAO64E,WAAWlrF,OAAQE,EAAIgV,EAAKhV,IAAK,CAC7D,IAAItC,EAAQyU,EAAO64E,WAAWhrF,GACzB,IAAetC,EAAMwH,QACzBxH,EAAMwH,KAAO,gBAEV,IAAexH,EAAMmwF,OAAS,IAAenwF,EAAMmwF,OAASlqF,KAAKkrB,IAAIizB,OAAOpkD,EAAMmwF,MACrFnwF,EAAM6H,UAAY5B,KAAKkrB,IAAIg0B,OAAOnlD,EAAMmwF,MAEhC,IAAenwF,EAAM6H,YAAc,IAAe7H,EAAM6H,YAAc5B,KAAKkrB,IAAIizB,OAAOpkD,EAAM6H,aACpG7H,EAAM6H,UAAY5B,KAAKkrB,IAAIg0B,OAAOnlD,EAAM6H,YAMtC,IAAe4M,EAAOo+E,aAAgB,IAAep+E,EAAOo+E,aAChE5sF,KAAK4+F,iBAAiBpgG,KAAK,wCAA0CwB,KAAKuC,MAAQ,WAAa,KAKjG,YAAM4jE,cAAa,UAAC33D,IAgBd,YAAA2hG,SAAP,SAAgBhhD,EAA4BkjD,EAAcC,EAAczB,EAAoBI,EAAoBsB,EAAoBC,GACnI,GAAIxyG,KAAK6+F,OAAS7+F,KAAK+mG,MAAO,CAC7B,IAAIzsG,EAAY0F,KAAK6+F,MAAM5K,KAAK9kC,EAAUkjD,EAAMxB,GAC5Ct2G,EAAYyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUmjD,EAAMrB,GAKhD,MAAO,CAAE32G,EAHTA,EAAI,IAAiBA,GAAI0F,KAAK6rG,OAAQ7rG,KAAK6rG,QAG5BtxG,EAFfA,EAAI,IAAiBA,GAAIyF,KAAK8rG,OAAQ9rG,KAAK8rG,WAUnC,YAAAU,qBAAV,WAIC,IAAIxsG,KAAKgnF,uBAAT,CAGA,IAAIzkE,EAAO,GACX,IAAaviB,KAAK4sF,YAAY,SAAC9rF,EAAKsvB,GACnC7N,GAAQ,IAAMzhB,EAAM,QAErBd,KAAKmpF,eAAiB5mE,EACtBviB,KAAKgnF,wBAAyB,IAiB/B,sBAAW,mCAAoB,C,IAO/B,WACC,OAAOhnF,KAAKujD,iBAAiB,yB,IAR9B,SAAgC1tD,GAC/BmK,KAAKopD,iBAAiB,uBAAwBvzD,I,gCAsB/C,sBAAW,iCAAkB,C,IAO7B,WACC,OAAOmK,KAAKujD,iBAAiB,uB,IAR9B,SAA8B1tD,GAC7BmK,KAAKopD,iBAAiB,qBAAsBvzD,I,gCAiB7C,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,I,gCAkB3C,sBAAW,sCAAuB,C,IAOlC,WACC,OAAOmK,KAAKujD,iBAAiB,4B,IAR9B,SAAmC1tD,GAClCmK,KAAKopD,iBAAiB,0BAA2BvzD,I,gCAkBlD,sBAAW,0BAAW,C,IAgBtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAjB9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GACrC,IAAI+kF,EAAQ56E,KAAK46E,MACbA,IAEF56E,KAAKynF,iBAAiBt6E,OADnBtX,EAC4B+kF,EAAM6M,iBAGN7M,EAAM63B,uB,gCAiBjC,YAAA5xD,SAAP,SAAgB//B,GACf9gB,KAAKskG,YAAc,IAAsBxjF,EAAOwjF,YAAa,IAC7D,YAAMzjD,SAAQ,UAAC//B,IAOT,YAAA++B,QAAP,WACK7/C,KAAK0uG,iBACR1uG,KAAK0uG,gBAAgB7uD,UAEtB,YAAMA,QAAO,YAEf,EAj0EA,CAA8B,GAy0E9B,IAASzgD,kBAAT,SAAyC,GACzC,IAASA,kBAAT,iBAAiD,G,wBC/5FjD,eA0CC,mBACC,cAAO,KAlBE,EAAAsoF,OAAS,IAAI,IAmBtB,EAAK3sC,UAAY,mBAEjB,IAAI+4B,EAAkB,IAAIC,EAAA,EAC1B,EAAKzQ,QAAQ,EAAG,EAAG,EAAG,GAEtB,IAAIovC,EAA0B,EAAKppC,YAAY,IAO/C,GANAopC,EAAe9pD,aAAc,EAC7B8pD,EAAezvC,OAAO,EAAG,EAAG,EAAG,GAC/ByvC,EAAepvC,QAAQ,EAAG,EAAG,EAAG,GAChCovC,EAAe5mD,qBAAsB,EAErC,EAAK6mD,gBAAkBD,GAClB,MAAe,CACnB,IAAI1lF,EAAS,IAAIksD,GAAA,EACjBlsD,EAAOilC,YAAc,iBACrBygD,EAAehF,cAAc3gD,QAAQvuD,KAAKwuB,GAE3C,EAAKk8B,WAAW1qD,KAAK,EAAKm0G,iBAE1B,EAAK5vC,UAAY,GACjB,EAAKD,SAAW,GAEhB,IAAI8vC,EAA4B,EAAKtpC,YAAY/B,EAAA,GACjDqrC,EAAkBhqD,aAAc,EAChCgqD,EAAkBvgD,WAAW,EAAK9xD,MAAM+I,IAAI,SAC5CspG,EAAkBl3D,KAAOo4B,EAAgBlK,OAAO,cAChDgpC,EAAkBhiD,YAAc,GAChCgiD,EAAkB9mD,qBAAsB,EACxC8mD,EAAkBpnD,YAAa,EAC/BonD,EAAkBtuC,SAClB,EAAKuuC,mBAAqBD,EAC1B,EAAK1pD,WAAW1qD,KAAK,EAAKq0G,oBAE1BH,EAAepuC,SAEf,EAAKS,WAAWzyD,aAAa,EAAG,EAAG,EAAG,GAEtC,IAAIwgG,EAAkB,EAAKn9B,MAAM5Q,WACjC+tC,EAAgBxgG,aAAa,EAAG,EAAG,EAAG,GACtCwgG,EAAgBliD,YAAc,EAC9BkiD,EAAgBp3D,KAAOo4B,EAAgBlK,OAAO,cAE9C,IAAIwP,EAAa05B,EAAgB7lD,OAAO/N,OAAO,SAC3Ck6B,IACHA,EAAW5uC,WAAWomB,YAAc,IAGrC,IAAImiD,EAAYD,EAAgB7lD,OAAO/N,OAAO,Q,OAC1C6zD,IACHA,EAAUvoE,WAAWomB,YAAc,IAGpC,EAAK1H,WAAW1qD,KAAK,EAAKkpF,QAE1B,EAAK/9B,a,EAsdP,OAxjBsC,iBA2GrC,sBAAW,qBAAM,C,IAAjB,WAMC,OALK3pD,KAAKgsF,UACThsF,KAAKgsF,QAAU,IAAI1qC,EAAA,EACnBthD,KAAKkpD,WAAW1qD,KAAKwB,KAAKgsF,QAAQhtF,OAAOmgD,GAAG,WAAYn/C,KAAKksF,kBAAmBlsF,MAAM,IACtFA,KAAKkpD,WAAW1qD,KAAKwB,KAAKgsF,QAAQhtF,OAAOmgD,GAAG,UAAWn/C,KAAKmsF,oBAAqBnsF,MAAM,KAEjFA,KAAKgsF,S,gCAQH,YAAAE,kBAAV,SAA4B/nC,GAA5B,WACK6uD,EAAyB7uD,EAAM/E,SACnC,GAAK4zD,EAAanU,OAAUmU,EAAajM,MAAzC,CAIA,IAAI2L,EAA0B1yG,KAAK0yG,eACnCA,EAAeO,cAAc9oD,UAAW,EAExCnqD,KAAK46E,MAAQo4B,EAAap4B,MAG1B83B,EAAen6C,SAASxqC,OAAS/tB,KAAK46E,MAAMriB,SAASxqC,OAErD,IAAImlF,GAAoB,EACpBC,GAAoB,EAGxB,IAAWnzG,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GAC/BA,GAAU4mB,IACT5mB,EAAOyS,OAASmU,EAAanU,OAAS,EAAK6T,eAAe1E,MAAM7xG,OAAS,IAC5E+2G,GAAW,GAER9mB,EAAO2a,OAASiM,EAAajM,OAAS,EAAK2L,eAAevE,MAAMhyG,OAAS,IAC5Eg3G,GAAW,OAKdH,EAAah0G,OAAOmgD,GAAG,kBAAkB,WACxC,EAAKitC,OAAOnsC,YAAY+yD,MAGzB,IAAIl/B,EAAkB,IAAIC,EAAA,EAEtBqY,EAA6B4mB,EAAapqG,QAS9C,GARG,QACFwjF,EAAO/9B,OAAS,YAAM,WACtB+9B,EAAO1wC,KAAO0wC,EAAO/9B,OACrB+9B,EAAO5kC,eAAe9L,UAAOhvC,EAC7B0/E,EAAO5kC,eAAe6G,YAAS3hD,GAEhCsmG,EAAatE,gBAAkBtiB,EAE3B8mB,EAAU,CAEb,IAAIrU,EAAQmU,EAAanU,MAAMj2F,QA6B/B,GA5BA8pG,EAAe1E,MAAMptD,UAAUi+C,GAC/BA,EAAMhkC,MAAM1Q,UAAW,EACvB00C,EAAMtD,oBAAsB,GAExBhO,EAAWsR,EAAMtR,UACZe,MAAMrtC,SAASkJ,UAAW,EACnCojC,EAAS+H,QAAS,EAClB/H,EAASjK,OAAOriC,SAASq0C,QAAS,EAClC/H,EAASiF,KAAK3hC,cAAgB,EAC9B08B,EAASkI,iBAAmB,IAC5BlI,EAASmI,iBAAmB,IAC5BnI,EAASiF,KAAKroC,UAAW,EACzBojC,EAASkB,UAAUxtC,SAASkJ,UAAW,EACvCojC,EAASqI,SAASzrC,UAAW,EAC7BojC,EAASY,KAAKltC,SAAS4P,cAAgB,IACvC08B,EAASzqB,cAAWp2D,EACpB6gF,EAASxqB,eAAYr2D,EACrB6gF,EAASjqB,QAAQ,EAAG,EAAG,EAAG,GAC1BiqB,EAAS3S,MAAQ83B,EACjBnlB,EAAStqB,OAAO,EAAG,EAAG,EAAG,GAEzB47B,EAAMviG,MAAQ,YAAQ,KAEDixF,EAASjK,OAAOriC,SACtB2P,YAAc,GAC7BiuC,EAAMuU,kBAAe1mG,EACrBmyF,EAAMwU,kBAAe3mG,EAEjBmyF,aAAiB,GAAU,CAC9B,IAAI,EAAkBA,EAClByU,EAAuBN,EAAanU,MACxC,EAAMgB,WAAqC,EAAxByT,EAAWzT,WAC9B,EAAMjoG,SAAM8U,EACZ,EAAM7U,SAAM6U,EACZ1M,KAAKkpD,WAAW1qD,KAAK,EAAM8vD,WAAWtvD,OAAOmgD,GAAG,mBAAmB,WAC9D,IAAe,EAAMmP,WAAWilD,cACnC,EAAM37G,IAAM,EAAM02D,WAAWilD,YAE1B,IAAe,EAAMjlD,WAAWklD,cACnC,EAAM37G,IAAM,EAAMy2D,WAAWklD,mBAE5B9mG,GAAW,SAEV,GAAImyF,aAAiB,GAAW,CACpC,IAAI,EAAmBA,EACvB,EAAMjnG,SAAM8U,EACZ,EAAM7U,SAAM6U,EACP,IAAe,EAAM4hD,WAAWilD,cACpC,EAAM37G,SAAM8U,GAER,IAAe,EAAM4hD,WAAWklD,cACpC,EAAM37G,SAAM6U,GAEb1M,KAAKkpD,WAAW1qD,KAAK,EAAM8vD,WAAWtvD,OAAOmgD,GAAG,mBAAmB,WAC9D,IAAe,EAAMmP,WAAWilD,cACnC,EAAM37G,IAAM,EAAM02D,WAAW12D,KAE1B,IAAe,EAAM02D,WAAWklD,cACnC,EAAM37G,IAAM,EAAMy2D,WAAWz2D,YAE5B6U,GAAW,IAIf0/E,EAAOyS,MAAQA,OAGf7+F,KAAK0yG,eAAe1E,MAAM9mG,MAAK,SAAC23F,GAC3BA,EAAMvwC,YAAc0kD,EAAanU,QACpCzS,EAAOyS,MAAQA,MAMlB,GAAIsU,EAAU,CACb,IAKI5lB,EALAwZ,EAAoBiM,EAAajM,MAAMn+F,QAgC3C,GA/BA8pG,EAAevE,MAAMvtD,UAAUmmD,GAC/BA,EAAMlsC,MAAM1Q,UAAW,EACvB48C,EAAMxL,oBAAsB,GAExBhO,EAAWwZ,EAAMxZ,UACZe,MAAMrtC,SAASkJ,UAAW,EACnCojC,EAAS+H,QAAS,EAClB/H,EAASjK,OAAOriC,SAASq0C,QAAS,EAClC/H,EAASiF,KAAK3hC,cAAgB,EAC9B08B,EAASkI,iBAAmB,IAC5BlI,EAASmI,iBAAmB,IAC5BnI,EAASiF,KAAKroC,UAAW,EACzBojC,EAASkB,UAAUxtC,SAASkJ,UAAW,EACvCojC,EAASY,KAAKltC,SAASoN,OAASylB,EAAgBlK,OAAO,cACvD2jB,EAASqI,SAASzrC,UAAW,EAC7BojC,EAASY,KAAKltC,SAAS4P,cAAgB,IACvC08B,EAASzqB,cAAWp2D,EACpB6gF,EAASxqB,eAAYr2D,EACrB6gF,EAAS3S,MAAQ83B,EACjBnlB,EAASjqB,QAAQ,EAAG,EAAG,EAAG,GAC1BiqB,EAAStqB,OAAO,EAAG,EAAG,EAAG,GACzB8jC,EAAMxqG,OAAS,YAAQ,KAEFgxF,EAASjK,OAAOriC,SACtB2P,YAAc,GAE7Bw7B,EAAO2a,MAAQA,EAEfA,EAAMqM,kBAAe1mG,EACrBq6F,EAAMsM,kBAAe3mG,EAEjBq6F,aAAiB,GAAU,CAC9B,IAAI,EAAmBA,EACvB,EAAMnvG,SAAM8U,EACZ,EAAM7U,SAAM6U,EACR4mG,EAAuBN,EAAajM,MACxCA,EAAMlH,WAAqC,EAAxByT,EAAWzT,WAE9B7/F,KAAKkpD,WAAW1qD,KAAK,EAAM8vD,WAAWtvD,OAAOmgD,GAAG,mBAAmB,WAC9D,IAAe,EAAMmP,WAAWilD,cACnC,EAAM37G,IAAM,EAAM02D,WAAWilD,YAE1B,IAAe,EAAMjlD,WAAWklD,cACnC,EAAM37G,IAAM,EAAMy2D,WAAWklD,qBAK3B,GAAIzM,aAAiB,GAAW,CACpC,IAAI,EAAmBA,EACvB,EAAMnvG,SAAM8U,EACZ,EAAM7U,SAAM6U,EAEP,IAAe,EAAM4hD,WAAWilD,cACpC,EAAM37G,SAAM8U,GAER,IAAe,EAAM4hD,WAAWklD,cACpC,EAAM37G,SAAM6U,GAGb1M,KAAKkpD,WAAW1qD,KAAK,EAAM8vD,WAAWtvD,OAAOmgD,GAAG,mBAAmB,WAC9D,IAAe,EAAMmP,WAAWilD,cACnC,EAAM37G,IAAM,EAAM02D,WAAWilD,YAE1B,IAAe,EAAMjlD,WAAWklD,cACnC,EAAM37G,IAAM,EAAMy2D,WAAWklD,sBAOhCxzG,KAAK0yG,eAAevE,MAAMjnG,MAAK,SAAC6/F,GAC3BA,EAAMz4C,YAAc0kD,EAAajM,QACpC3a,EAAO2a,MAAQA,MAKlB3a,EAAOmP,oBAAsB,EAC7BnP,EAAOolB,sBAAwB,EAC/BplB,EAAO1/B,aAAauJ,mBAAqB,EACzCm2B,EAAOrgC,YAAa,EAEpB/rD,KAAKkpD,WAAW1qD,KAAK4tF,EAAOptF,OAAOmgD,GAAG,YAAan/C,KAAKyzG,YAAazzG,MAAM,IAG3EA,KAAKkpD,WAAW1qD,KAAKw0G,EAAah0G,OAAOmgD,GAAG,iBAAiB,WACxDitC,EAAO/qF,MAAQ2xG,EAAa3xG,OAC/B+qF,EAAO/qF,KAAO2xG,EAAa3xG,aAE1BqL,GAAW,IACd0/E,EAAO1/B,aAAaliB,WAAWqhB,SAAU,EAEzC6mD,EAAetmB,OAAO5tF,KAAK4tF,GAE3BpsF,KAAK0zG,wBAMI,YAAAA,oBAAV,sBACK1zG,KAAK2yG,kBACR,IAAW3yG,KAAK2yG,gBAAgB3E,MAAM3oG,YAAY,SAACw5F,GAClD,IAAItR,EAAWsR,EAAMtR,SACG,YAApB,EAAK/xB,aACR+xB,EAASY,KAAKltC,SAASkJ,UAAW,EAClCojC,EAASjK,OAAOriC,SAASkJ,UAAW,EACpCojC,EAAS8C,gBAAkB,KAG3B9C,EAASY,KAAKltC,SAASkJ,UAAW,EAClCojC,EAASjK,OAAOriC,SAASkJ,UAAW,EACpCojC,EAAS8C,gBAAkBwO,EAAMvwC,WAAWi/B,SAAS8C,oBAKvD,IAAWrwF,KAAK2yG,gBAAgBxE,MAAM9oG,YAAY,SAAC0hG,GAClD,IAAIxZ,EAAWwZ,EAAMxZ,SACG,cAApB,EAAK/xB,aACR+xB,EAASY,KAAKltC,SAASkJ,UAAW,EAClCojC,EAASjK,OAAOriC,SAASkJ,UAAW,EACpCojC,EAAS8C,gBAAkB,KAG3B9C,EAASY,KAAKltC,SAASkJ,UAAW,EAClCojC,EAASjK,OAAOriC,SAASkJ,UAAW,EACpCojC,EAAS8C,gBAAkB0W,EAAMz4C,WAAWi/B,SAAS8C,sBAa/C,YAAAlE,oBAAV,SAA8BhoC,GAC7B,IAAI6uD,EAAyB7uD,EAAM3E,SAC/BkzD,EAAiB1yG,KAAK0yG,eAE1BA,EAAetmB,OAAOllF,MAAK,SAACklF,GACvBA,GAAUA,EAAO99B,YAAc0kD,GAClCN,EAAetmB,OAAOnsC,YAAYmsC,MAGA,GAAhCsmB,EAAetmB,OAAOjwF,SACzBu2G,EAAe1E,MAAMzkG,QACrBmpG,EAAevE,MAAM5kG,SAGtB,IACCypG,EAAah0G,OAAO20G,IAAI,YAAa3zG,KAAKyzG,YAAazzG,MAExD,MAAO+Q,MAgBR,sBAAW,6BAAc,C,IAAzB,WACC,OAAO/Q,KAAK2yG,iB,gCAQb,sBAAW,oBAAK,C,IAWhB,WACC,OAAO3yG,KAAK0nF,OAAOxmF,O,IAZpB,SAAiB05E,GACZ56E,KAAK0nF,OAAOxmF,QAAU05E,IACzB56E,KAAK0nF,OAAO1mF,IAAI45E,EAAOA,EAAM57E,OAAOmgD,GAAG,gBAAiBn/C,KAAK4zG,kBAAmB5zG,MAAM,IACtFA,KAAK4zG,oBACL5zG,KAAK2yG,gBAAgBkB,aAAej5B,I,gCAuBtC,sBAAW,gCAAiB,C,IAA5B,WACC,OAAO56E,KAAK6yG,oB,gCASN,YAAAe,kBAAP,WACK5zG,KAAK46E,MAAMv5E,MAAQrB,KAAK0yG,eAAerxG,KAC1CrB,KAAK0yG,eAAerxG,KAAOrB,KAAK46E,MAAMv5E,KAKtCrB,KAAK0yG,eAAepoB,qBAOZ,YAAAmpB,YAAV,WACC,IAAIf,EAA0B1yG,KAAK0yG,eACnC,IAAWA,EAAe1E,MAAM3oG,YAAY,SAAC/K,GAC5CA,EAAEsjG,KAAK,CAAEnkG,MAAO,EAAGG,IAAK,IAAK,GAAM,MAEpC,IAAW84G,EAAevE,MAAM9oG,YAAY,SAAC9K,GAC5CA,EAAEqjG,KAAK,CAAEnkG,MAAO,EAAGG,IAAK,IAAK,GAAM,OAO3B,YAAAk6G,YAAV,WAEC,GADA,YAAMA,YAAW,WACb9zG,KAAK6yG,mBAAoB,CAC5B,IAAIl9B,EAAQ31E,KAAK21E,MACbr7E,EAAYq7E,EAAM1uD,QAAU,EAC5B1sB,EAAYo7E,EAAMvuD,QAAU,EAC5BsX,EAAYi3C,EAAM7jB,YAAc,EAChC54B,EAAYy8C,EAAM5jB,aAAe,EAEjCjmD,EAAe,GAEK,cAApB9L,KAAKw7D,aACR1vD,EAAO,IAAiB,CACvBxR,GAAI,EACJC,EAAG,EACH+B,MAAOhC,EACPiC,OAAQ28B,IAGTptB,GAAQ,IAAiB,CACxBxR,EAAGA,EAAIokC,EACPnkC,EAAG,EACH+B,OAAQ0D,KAAK8xD,YAAc,GAAKx3D,EAAIokC,EACpCniC,OAAQ28B,MAITptB,EAAO,IAAiB,CACvBxR,EAAG,EACHC,EAAG,EACH+B,MAAOoiC,EACPniC,OAAQhC,IAGTuR,GAAQ,IAAiB,CACxBxR,EAAG,EACHC,EAAGA,EAAI2+B,EACP58B,MAAOoiC,EACPniC,QAASyD,KAAK+xD,aAAe,GAAKx3D,EAAI2+B,KAIxCl5B,KAAK6yG,mBAAmB/mG,KAAOA,IAU1B,YAAAq6D,cAAP,SAAqB33D,GAEpB,GAAIA,GAEC,IAAeA,EAAO49E,SAAW,IAAc59E,EAAO49E,QACzD,IAAK,IAAI/vF,EAAI,EAAGgV,EAAM7C,EAAO49E,OAAOjwF,OAAQE,EAAIgV,EAAKhV,IAAK,CACzD,IAAI+vF,EAAS59E,EAAO49E,OAAO/vF,GAC3B,GAAI,IAAe+vF,IAAW,IAAeA,GAAS,CACrD,IAAIpsF,KAAKkrB,IAAIizB,OAAOiuC,GAInB,MAAMj2F,MAAM,2CAA6Ci2F,EAAS,qBAHlE59E,EAAO49E,OAAO/vF,GAAK2D,KAAKkrB,IAAIg0B,OAAOktC,IAWxC,YAAMjmB,cAAa,UAAC33D,IAGtB,EAxjBA,CAAsCm3E,EAAA,GAgkBtC,IAASvmF,kBAAT,iBAAiD,GC9kBjD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,kBACjB,EAAK4O,a,EAGP,OAhBqC,iBAgBrC,EAhBA,CAAqC,GAkNrC,eAgKC,mBAGC,cAAO,KA7DE,EAAAoqD,eAAuC,GAKvC,EAAAC,eAAuC,GAgD1C,EAAA7M,cAAuD,GAU7D,EAAKpsD,UAAY,UAIjB,EAAK4yD,aAAc,EACnB,EAAKsG,iBAAkB,EAGvB,IAAI/xB,EAAiB,EAAKA,eAC1BA,EAAe1gB,OAAS,WACxB,EAAK8B,QAAQ,GAAI,GAAI,GAAI,IAGzB,IAAI4wC,EAAchyB,EAAe5Y,YAAYb,EAAA,GAC7CyrC,EAAYtrD,aAAc,EAC1BsrD,EAAY1yC,OAAS,WACrB0yC,EAAY53G,MAAQ,YAAQ,KAC5B43G,EAAYhrC,OAAS,EACrB,EAAK4kC,iBAAmBoG,EAMxB,IAAIC,EAAmBjyB,EAAe5Y,YAAYb,EAAA,GAClD0rC,EAAiBvrD,aAAc,EAC/BurD,EAAiB3yC,OAAS,aAC1B2yC,EAAiB73G,MAAQ,YAAQ,KACjC63G,EAAiB53G,OAAS,YAAQ,KAClC43G,EAAiBjrC,OAAS,EAC1B,EAAKkrC,sBAAwBD,EAG7B,IAAIE,EAAiBnyB,EAAe5Y,YAAYb,EAAA,GAChD4rC,EAAezrD,aAAc,EAC7ByrD,EAAe/3G,MAAQ,YAAQ,KAC/B+3G,EAAe7yC,OAAS,WACxB6yC,EAAenrC,OAAS,EACxB,EAAK6kC,oBAAsBsG,EAG3B,IAAIC,EAAeH,EAAiB7qC,YAAYb,EAAA,GAChD6rC,EAAa1rD,aAAc,EAC3B0rD,EAAa9yC,OAAS,aACtB8yC,EAAa/3G,OAAS,YAAQ,KAC9B+3G,EAAaloC,aAAe,QAC5BkoC,EAAat1G,OAAOmgD,GAAG,cAAe,EAAKo1D,mBAAoB,GAAM,GACrED,EAAaprC,OAAS,EACtB,EAAK0kC,kBAAoB0G,EAGzB,IAAIE,EAAWL,EAAiB7qC,YAAYb,EAAA,GAC5C+rC,EAAS5rD,aAAc,EACvB4rD,EAASj4G,OAAS,YAAQ,KAC1Bi4G,EAASl4G,MAAQ,YAAQ,KAGzBk4G,EAASzvC,WAAWnU,YAAc,EAClC,EAAK88C,cAAgB8G,EAGrB,EAAKC,mBAAqB,OAE1B,EAAKC,iBAAmBF,EAGxB,IAAIG,EAAgBR,EAAiB7qC,YAAYb,EAAA,GACjDksC,EAAc/rD,aAAc,EAC5B+rD,EAAcnzC,OAAS,aACvBmzC,EAAcp4G,OAAS,YAAQ,KAC/Bo4G,EAAczrC,OAAS,EACvByrC,EAAc31G,OAAOmgD,GAAG,cAAe,EAAKo1D,mBAAoB,GAAM,GACtE,EAAK1G,mBAAqB8G,EAE1B,EAAK7oB,gBAAgB3+E,OAASqnG,EAC9B,EAAK/sB,iBAAiBt6E,OAASqnG,EAE/B,IAAIvB,EAAgBuB,EAASlrC,YAAYsrC,GAAA,GACzC3B,EAAcrqD,aAAc,EAC5BqqD,EAAcxxC,MAAQ,QACtBwxC,EAAc7wC,OAAS,MACvB6wC,EAAc/pC,OAASpzE,OAAO++G,iBAC9B5B,EAAc/vC,UAAY,EAC1B+vC,EAAc9vC,YAAc,EAE5B8vC,EAAchnD,KAAK,GACnB,EAAKgnD,cAAgBA,EAGrB,IAAIR,EAAkC,EAAK/E,cAAcpkC,YAAYb,EAAA,G,OACrEgqC,EAAqB7pD,aAAc,EACnC6pD,EAAqBn2G,MAAQ,YAAQ,KACrCm2G,EAAqBl2G,OAAS,YAAQ,KACtCk2G,EAAqBjnD,YAAa,EAClCinD,EAAqBvpC,OAAS,EAC9BupC,EAAqBjxC,OAAS,OAC9B,EAAKixC,qBAAuBA,EAE5B,EAAKqC,YAAc,EAAKpH,cAExB,EAAK1uG,OAAOmgD,GAAG,uBAAuB,WACrC,EAAKitC,OAAOllF,MAAK,SAACklF,GACjBA,EAAOsW,aAAc,EACrBtW,EAAOmW,cAAgB,QAEtB,GAAM,GAGT,EAAK54C,a,EAy9DP,OA1uE6B,iBAyRlB,YAAAO,sBAAV,WAEC,YAAMA,sBAAqB,WAC3BlqD,KAAKizG,cAAc3lD,YAAa,EAG3B,IAAettD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,eAUtC,YAAAtqB,KAAP,WACC,YAAMA,KAAI,WAEVvqD,KAAK8rF,gBAAgBznB,UACrBrkE,KAAKynF,iBAAiBpjB,UAElBrkE,KAAK2tG,cACR3tG,KAAKynF,iBAAiB71B,KAAO5xD,KAAK80G,aAGnC90G,KAAK+0G,sBAQC,YAAAC,mBAAP,WACC,IAAWh1G,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAO1iC,iBAUF,YAAAy4C,aAAP,WAG4B,GAAvBniG,KAAKi1G,iBACR,IAAWj1G,KAAKguG,MAAM3oG,YAAY,SAAC6kF,GAClCA,EAAKmK,sBAGN,IAAWr0F,KAAKmuG,MAAM9oG,YAAY,SAAC6kF,GAClCA,EAAKmK,sBAGN,IAAWr0F,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAOiI,uBAIT,YAAM8N,aAAY,YAQT,YAAAoS,mBAAV,WAEC,IAAIW,EAAgBl1G,KAAK4tG,kBAAkBz6C,cACvCgiD,EAAiBn1G,KAAK6tG,mBAAmB16C,cACzCkhD,EAAiBr0G,KAAK+tG,oBAEtBsG,EAAetrF,aAAemsF,GAAiBb,EAAerrF,cAAgBmsF,IACjFd,EAAetrF,YAAcmsF,EAC7Bb,EAAerrF,aAAemsF,GAG/B,IAAIjB,EAAcl0G,KAAK8tG,iBAEnBoG,EAAYnrF,aAAemsF,GAAiBhB,EAAYlrF,cAAgBmsF,IAC3EjB,EAAYnrF,YAAcmsF,EAC1BhB,EAAYlrF,aAAemsF,IAWtB,YAAA3oD,OAAP,WACC,YAAMA,OAAM,WAEZxsD,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAOvjC,UAAW,MAWb,YAAAusD,kBAAP,SAAyBjxD,GACxBnkD,KAAKq1G,YAAYlxD,EAAM3iD,SAUjB,YAAA8zG,kBAAP,SAAyBnxD,GACxBnkD,KAAKu1G,YAAYpxD,EAAM3iD,SASjB,YAAAg0G,aAAP,SAAoBrxD,GAEnB,IAAI+lC,EAAa/lC,EAAM/E,SACvB8qC,EAAKtP,MAAQ56E,KAERkqF,EAAKqD,WACTrD,EAAKqD,SAAW,IAAIvtF,KAAK+zG,eACzB7pB,EAAKqD,SAAS3yB,QAAQ,CAAC,WAAY,SAAU,WAAY,mBAAoB56D,KAAKo1G,kBAAmBp1G,MAAM,IAE5GkqF,EAAKsJ,WAAa,IAElBtJ,EAAKlrF,OAAOmgD,GAAG,kBAAmBn/C,KAAKy1G,uBAAwBz1G,MAAM,GAMrEkqF,EAAK2pB,aAAe7zG,KAEpBA,KAAKq1G,YAAYnrB,EAAKqD,UACtBvtF,KAAK01G,YAAYxrB,IAUX,YAAAyrB,aAAP,SAAoBxxD,GAEnB,IAAI+lC,EAAa/lC,EAAM/E,SACvB8qC,EAAKtP,MAAQ56E,KACRkqF,EAAKqD,WACTrD,EAAKqD,SAAW,IAAIvtF,KAAKg0G,eACzB9pB,EAAKqD,SAAS3yB,QAAQ,CAAC,WAAY,SAAU,WAAY,mBAAoB56D,KAAKs1G,kBAAmBt1G,MAAM,IAE5GkqF,EAAKsJ,WAAa,IAElBtJ,EAAKlrF,OAAOmgD,GAAG,kBAAmBn/C,KAAK41G,uBAAwB51G,MAAM,GAMrEkqF,EAAK2pB,aAAe7zG,KAEpBA,KAAKu1G,YAAYrrB,EAAKqD,UACtBvtF,KAAK01G,YAAYxrB,IAOR,YAAAurB,uBAAV,WACC,IAAI17G,EAAgBiG,KAAK61G,mBAAmB71G,KAAKguG,OAC7ChuG,KAAK81G,YACR91G,KAAK+1G,SAAS/1G,KAAKguG,MAAOj0G,GAAO,GAElCiG,KAAK0vF,sBACL1vF,KAAKg2G,gBAAgBh2G,KAAK81G,WAAY/7G,IAOhC,YAAA21F,oBAAP,WACC,GAAI1vF,KAAKizG,cAAe,CACvB,IAAI,GAAO,EAEX,IAAmBjzG,KAAKguG,MAAM3oG,YAAY,SAAC6kF,GAC1C,GAAIA,EAAKwF,oBACR,GAAIxF,EAAKkpB,aAAe,EAAG,CAC1B,IAAI6C,EAAwB/rB,EAAKqW,cAAgBrW,EAAKkpB,aACtD,GAAI,IAAYlpB,EAAKtwF,IAAMswF,EAAKzwF,MAAO,GAAK,EAAIw8G,EAE/C,OADA,GAAO,GACA,OAIR,GAAI,IAAY/rB,EAAKzwF,MAAO,GAAK,GAAK,IAAYywF,EAAKtwF,IAAK,GAAK,EAEhE,OADA,GAAO,GACA,EAIV,OAAO,KAER,IAAmBoG,KAAKmuG,MAAM9oG,YAAY,SAAC6kF,GAC1C,GAAIA,EAAKwF,oBAAqB,CAC7B,GAAIxF,EAAKkpB,aAAe,EAAG,CAC1B,IAAI6C,EAAwB/rB,EAAKqW,cAAgBrW,EAAKkpB,aACtD,GAAI,IAAYlpB,EAAKtwF,IAAMswF,EAAKzwF,MAAO,GAAK,EAAIw8G,EAE/C,OADA,GAAO,GACA,OAIR,GAAI,IAAY/rB,EAAKzwF,MAAO,GAAK,GAAK,IAAYywF,EAAKtwF,IAAK,GAAK,EAEhE,OADA,GAAO,GACA,EAGT,OAAO,MAIJoG,KAAKk2G,iBACT,GAAO,GAGJ,EACHl2G,KAAKizG,cAAcpvC,OAGnB7jE,KAAKizG,cAAchnD,SASZ,YAAAiqD,eAAV,WACC,IAAIrtD,GAAoB,EAOxB,OANA,IAAW7oD,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnC,IAAKA,EAAOvjC,SAEX,OADAA,GAAW,GACJ,KAGFA,GAOE,YAAA+sD,uBAAV,WACC,IAAI77G,EAAgBiG,KAAK61G,mBAAmB71G,KAAKmuG,OAE7CnuG,KAAKm2G,YACRn2G,KAAK+1G,SAAS/1G,KAAKmuG,MAAOp0G,GAAO,GAElCiG,KAAK0vF,sBACL1vF,KAAKg2G,gBAAgBh2G,KAAKm2G,WAAYp8G,IAS7B,YAAAi8G,gBAAV,SAA0BxwB,EAAsBzrF,GAC3CyrF,IACHA,EAAU4wB,kBACV5wB,EAAU/rF,MAAQM,EAAMN,MACxB+rF,EAAU5rF,IAAMG,EAAMH,MAajB,YAAAi8G,mBAAP,SAA0BQ,GACzB,IAAI58G,EACAG,EAwBJ,OAtBAy8G,EAAKnvG,MAAK,SAACgjF,GACV,GAAIA,aAAgB,IAAaA,EAAK8P,kBAGjC,CACJ,IAAIsc,EAAYpsB,EAAKzwF,MACjB88G,EAAUrsB,EAAKtwF,IAEfswF,EAAKqD,SAASqF,WACjB0jB,EAAY,EAAIpsB,EAAKtwF,IACrB28G,EAAU,EAAIrsB,EAAKzwF,SAGf,IAAeA,IAAW68G,EAAY78G,KAC1CA,EAAQ68G,KAEJ,IAAe18G,IAAS28G,EAAU38G,KACtCA,EAAM28G,OAKF,CAAE98G,MAAOA,EAAOG,IAAKA,IAStB,YAAAy7G,YAAP,SAAmB9nB,GAClB,IAAIrD,EAAOqD,EAASrD,KAChBqD,EAAS4J,UACZjN,EAAK/8E,OAASnN,KAAK8tG,iBACnB5jB,EAAK7lB,YAGL6lB,EAAK/8E,OAASnN,KAAK+tG,oBACnB7jB,EAAK5lB,UAEF4lB,EAAKqD,UACRrD,EAAKqD,SAASuI,mBAUT,YAAAyf,YAAP,SAAmBhoB,GAClB,IAAIrD,EAAOqD,EAASrD,KAChBqD,EAAS4J,UACZjN,EAAK/8E,OAASnN,KAAK6tG,mBACnB3jB,EAAK5lB,WAGL4lB,EAAK/8E,OAASnN,KAAK4tG,kBACnB1jB,EAAK7lB,WAEF6lB,EAAKqD,UACRrD,EAAKqD,SAASuI,mBAUN,YAAA4f,YAAV,SAAsBxrB,GAAtB,WAEKA,aAAgB,IACnBlqF,KAAKwsF,WAAW5rC,UAAUspC,GAG3B,IAAIqD,EAAyBrD,EAAKqD,SAElCA,EAASC,cAAcrgF,OAASnN,KAAK0tG,cACrCngB,EAASC,cAAclpB,SAEvBipB,EAAS4D,eAAehkF,OAASnN,KAAK0tG,cACtCngB,EAAS4D,eAAe9sB,UACxBkpB,EAAS4D,eAAejoB,OAAS,GAEjCghB,EAAK16B,YAAY,IAAIzN,EAAA,GAAS,WAC7B,EAAKsqC,UAAUpsC,YAAYiqC,OAG5BqD,EAAS9F,iBAAiBt6E,OAASnN,KAAKyyG,qBAExCzyG,KAAKkpD,WAAW1qD,KAAK0rF,EAAKlrF,OAAOmgD,GAAG,mBAAmB,WACtD,IAAIjkD,EAAQ,IAA2B,CAAEZ,EAAG,EAAGC,EAAG,GAAK2vF,EAAM,EAAKuoB,sBAC9DvoB,EAAKqD,oBAAoB,KAC5BA,EAAS9F,iBAAiBltF,EAAIW,EAAMX,GAEjC2vF,EAAKqD,oBAAoB,KAC5BA,EAAS9F,iBAAiBntF,EAAIY,EAAMZ,UAEnCoS,GAAW,IAEd1M,KAAK0tG,cAAc1uG,OAAOmgD,GAAG,kBAAkB,WAC1C,EAAKyV,SACRs1B,EAAKN,sBACL,EAAK4sB,uBAEJtsB,GAAM,IAOA,YAAAssB,kBAAV,WACK,OACHx2G,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,IAAIx6B,EAAOw6B,EAAO5E,cAAc51B,KAChCw6B,EAAO5E,cAAc51B,UAAOllD,EAC5B0/E,EAAO5E,cAAc51B,KAAOA,MAKrB,YAAAu6B,oBAAV,SAA8BhoC,GAC7B,IAAIioC,EAASjoC,EAAM3E,SAEf4sC,IACCA,EAAOyS,QACVzS,EAAOyS,MAAMzS,OAAOnsC,YAAYmsC,GAChCA,EAAOyS,MAAMlV,2BAEVyC,EAAO2a,QACV3a,EAAO2a,MAAM3a,OAAOnsC,YAAYmsC,GAChCA,EAAO2a,MAAMpd,2BAGd3pF,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAO+f,oBAGT,YAAMhgB,oBAAmB,UAAChoC,IAQ3B,sBAAW,oBAAK,C,IAAhB,WAQC,OAPKnkD,KAAKy2G,SACTz2G,KAAKy2G,OAAS,IAAIn1D,EAAA,EAClBthD,KAAKy2G,OAAOz3G,OAAOmgD,GAAG,WAAYn/C,KAAKw1G,aAAcx1G,MAAM,GAC3DA,KAAKy2G,OAAOz3G,OAAOmgD,GAAG,UAAWn/C,KAAK02G,kBAAmB12G,MAAM,GAC/DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKy2G,QAAQ,KAG7Cz2G,KAAKy2G,Q,gCAMN,YAAAC,kBAAP,SAAyBvyD,GACxB,IAAI+lC,EAAO/lC,EAAM3E,SACjBx/C,KAAKqsF,UAAUpsC,YAAYiqC,GACvBA,EAAKvQ,aACRuQ,EAAKrqC,WASP,sBAAW,oBAAK,C,IAAhB,WAQC,OAPK7/C,KAAK22G,SACT32G,KAAK22G,OAAS,IAAIr1D,EAAA,EAClBthD,KAAK22G,OAAO33G,OAAOmgD,GAAG,WAAYn/C,KAAK21G,aAAc31G,MAAM,GAC3DA,KAAK22G,OAAO33G,OAAOmgD,GAAG,UAAWn/C,KAAK02G,kBAAmB12G,MAAM,GAC/DA,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAK22G,QAAQ,KAG7C32G,KAAK22G,Q,gCAUN,YAAAzqB,kBAAP,SAAyB/nC,GACxB,IACC,YAAM+nC,kBAAiB,UAAC/nC,GACxB,IAAIioC,EAAmBjoC,EAAM/E,SAEJ,GAArBp/C,KAAKguG,MAAM7xG,QAAoC,GAArB6D,KAAKmuG,MAAMhyG,SACxC,IAAS2F,4BAA4BsqF,GACrCA,EAAOze,aAAc,GAGtB,IAAYye,EAAOyS,OACnB,IAAYzS,EAAO2a,OAEnB3a,EAAOuhB,YAAcvhB,EAAOuhB,iBAETjhG,GAAf0/E,EAAO1wC,OACN17C,KAAK+rF,UACH,IAAeK,EAAO/9B,UAC1B+9B,EAAO/9B,OAASruD,KAAKo7C,OAAOh3C,QAE7BgoF,EAAO1wC,KAAO17C,KAAK+rF,SAAS3nF,OACxB,IAAegoF,EAAOx7B,eACzBw7B,EAAO1wC,KAAKk7D,kBAAoBxqB,EAAOx7B,aAEpCw7B,EAAO/9B,kBAAkBpR,EAAA,IAC5BmvC,EAAO1wC,KAAK2S,OAAS+9B,EAAO/9B,OAC5B+9B,EAAO1wC,KAAKA,KAAO0wC,EAAO/9B,SAI3B+9B,EAAO1wC,KAAO17C,KAAKo7C,OAAOh3C,QAIvB,IAAegoF,EAAO/9B,UAC1B+9B,EAAO/9B,OAAS+9B,EAAO1wC,MAGzB,MAAOr3C,GACNrE,KAAK4lE,mBAAmBvhE,KAS1B,sBAAW,qBAAM,C,IAmCjB,WACC,OAAOrE,KAAK62G,S,IApCb,SAAkBjzD,GACb5jD,KAAK62G,SAAWjzD,IACf5jD,KAAK62G,SACR72G,KAAKoyD,cAAcpyD,KAAK62G,SAGzB72G,KAAK62G,QAAUjzD,EAEXA,IAEH5jD,KAAKkpD,WAAW1qD,KAAKolD,GACrBA,EAAOg3B,MAAQ56E,KACf4jD,EAAOgF,aAAc,EACrBhF,EAAOz2C,OAASnN,KAAK00G,iBACrB9wD,EAAO5kD,OAAOmgD,GAAG,wBAAyBn/C,KAAK82G,2BAA4B92G,MAAM,GACjF4jD,EAAO5kD,OAAOmgD,GAAG,cAAen/C,KAAK+2G,sBAAuB/2G,MAAM,GAClE4jD,EAAO5kD,OAAOmgD,GAAG,YAAan/C,KAAKg3G,oBAAqBh3G,MAAM,GAC9D4jD,EAAO5kD,OAAOmgD,GAAG,aAAcn/C,KAAKi3G,qBAAsBj3G,MAAM,GAChE4jD,EAAO5kD,OAAOmgD,GAAG,UAAWn/C,KAAKk3G,oBAAqBl3G,MAAM,GAC5D4jD,EAAO5kD,OAAOmgD,GAAG,WAAYn/C,KAAKm3G,mBAAoBn3G,MAAM,GAC5D4jD,EAAO5kD,OAAOmgD,GAAG,mBAAoBn/C,KAAKo3G,qBAAsBp3G,MAAM,GACtE4jD,EAAO5kD,OAAOmgD,GAAG,SAAUn/C,KAAKq3G,iBAAkBr3G,MAAM,GACxD4jD,EAAOslB,OAASpzE,OAAO++G,iBAAmB,EAEtC70G,KAAKkuE,eAERluE,KAAK4tE,iBAAiB5tE,KAAKkuE,kB,gCAmBxB,YAAA4oC,2BAAP,WAEC,IAAIlzD,EAAS5jD,KAAK4jD,OAElB,GAAIA,EAAOiI,UAAYjI,EAAOgD,SAAU,CACvC,IAAI,EAAoB5mD,KAAK4jD,OAAOwmC,UAChC,EAAoBpqF,KAAK4jD,OAAOymC,UAEpCrqF,KAAKs3G,kBAAkB,CACtBh9G,EAAG,EACHC,EAAG,IAGJ,IAAI,EAAqB,GACrB0sG,EAAerjD,EAAOqjD,aAE1B,GAAIA,IAAiBrjD,EAAOmsD,UAAW,CAClC9I,aAAwB,KAC3BA,EAAe,CAACA,IAEjB,IAAI,EAAgC,GAEpC,IAAYA,GAAc,SAACsQ,GAE1B,IAAI1Y,EAAQ0Y,EAAU1Y,MAClBkI,EAAQwQ,EAAUxQ,MAElBlI,aAAiB,MAAeA,aAAiB,KAAakI,aAAiB,MAAeA,aAAiB,KAElHwQ,EAAUvzB,UAAU98E,MAAK,SAACioD,GACzB,EAAU3wD,KAAK2wD,MAGhB,IAAY,EAAYooD,EAAUxQ,OAClC,IAAY,EAAYwQ,EAAU1Y,SAG9B0Y,EAAUrW,UAAYqW,EAAU1Y,QACnC,IAAY,EAAY0Y,EAAUxQ,OAClC,EAAUvoG,KAAKqgG,EAAM/K,kBAAkByjB,EAAW1Y,EAAM/M,eAAe,IAAY,KAEhFylB,EAAUrW,UAAYqW,EAAUxQ,QACnC,IAAY,EAAYwQ,EAAU1Y,OAClC,EAAUrgG,KAAKuoG,EAAMjT,kBAAkByjB,EAAWxQ,EAAMjV,eAAe,IAAY,SAKtF,IAAI,EAAkB9xF,KAAKw3G,WAAW,EAAW,EAAW,GAExD,IACHx3G,KAAKosF,OAAOllF,MAAK,SAACklF,GACjB,IAAIqrB,EAAgB,EAAgB71G,UAChCwqF,GAAUqrB,IACbrrB,EAAO//B,cACH+/B,EAAOyS,OAAS4Y,EAAc5Y,OACjCzS,EAAOyS,MAAMxyC,cAEV+/B,EAAO2a,OAAS0Q,EAAc1Q,OACjC3a,EAAO2a,MAAM16C,kBAKhB,EAAgBzqD,UAAUslG,sBAAsB,GAChDtjD,EAAO8zD,WAAW,EAAgB91G,YAKpC5B,KAAKmnG,cAAgB,GAEjBnnG,KAAK23G,kBAAoB,GAC5B33G,KAAK43G,gBAAgB53G,KAAKguG,MAAO,EAAW,GAEzChuG,KAAK63G,kBAAoB,GAC5B73G,KAAK43G,gBAAgB53G,KAAKmuG,MAAO,EAAW,GAEzCnuG,KAAKi0G,iBACRj0G,KAAK83G,mBAAmB93G,KAAKmnG,eAG1BnnG,KAAKsiF,QACRtiF,KAAKsiF,OAAO93B,cAML,YAAAgtD,WAAV,SAAqBxzB,EAA+BoG,EAAmBC,GACtE,IACI0tB,EADAC,EAAc9zF,IAkClB,OA/BA,IAAoB8/D,GAAW,SAAC70B,GAC/B,GAAIA,EAAU,CACb,IAAI0vC,EAAQ1vC,EAASvtD,UAAUi9F,MAC3BkI,EAAQ53C,EAASvtD,UAAUmlG,MAE3BkR,EAAOpZ,EAAMrN,qBAAqBqN,EAAMhM,iBAAiBgM,EAAM/M,eAAe1H,KAC9E8tB,EAAOnR,EAAMvV,qBAAqBuV,EAAMlU,iBAAiBkU,EAAMjV,eAAezH,KAE9EjB,EAASj6B,EAASvtD,UAAUwnF,OAC5BC,EAASl6B,EAASvtD,UAAUynF,OAEhC,GAAIwV,aAAiB,KAAc,IAAe1vC,EAASn4D,SAASoyF,IACnE,OAAO,EAER,GAAI2d,aAAiB,KAAc,IAAe53C,EAASn4D,SAASqyF,IACnE,OAAO,EAGR,IAAI8uB,EAAatZ,EAAMrN,qBAAqBqN,EAAMhM,iBAAiBgM,EAAM3K,aAAa/kC,EAAUi6B,EAAQj6B,EAASs0C,UAAUra,GAAS,YAChIgvB,EAAarR,EAAMvV,qBAAqBuV,EAAMlU,iBAAiBkU,EAAM3S,aAAajlC,EAAUk6B,EAAQl6B,EAASs0C,UAAUpa,GAAS,YAEhItuF,EAAWxD,KAAKiD,KAAKjD,KAAKa,IAAI6/G,EAAOE,EAAY,GAAK5gH,KAAKa,IAAI8/G,EAAOE,EAAY,IAMtF,OAJIr9G,EAAWi9G,IACdA,EAAcj9G,EACdg9G,EAAkB5oD,IAEZ,MAIF4oD,GAQD,YAAAV,iBAAP,WACCr3G,KAAKq4G,kBAAkBr4G,KAAKguG,OAC5BhuG,KAAKq4G,kBAAkBr4G,KAAKmuG,OAC5BnuG,KAAKq4G,kBAAkBr4G,KAAKosF,QAC5BpsF,KAAK23G,sBAAmBjrG,EACxB1M,KAAK63G,sBAAmBnrG,EAExB1M,KAAK+0G,sBAQC,YAAAA,mBAAP,WACC,IAAW/0G,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAOnH,wBAUF,YAAAozB,kBAAP,SAAyBvxF,GACxB,IAAWA,EAAQzhB,YAAY,SAAChF,GAC/BA,EAAOgsD,YAAY,OAcd,YAAAirD,kBAAP,SAAyB57G,GAAzB,WAEC,GAAKA,EAAL,CAOA,IAAI48G,EAAsD,GAE1Dt4G,KAAKosF,OAAOllF,MAAK,SAACklF,GAGjB,GAAKA,EAAOyS,iBAAiB,IAAYzS,EAAOyS,MAAMe,aAAiBxT,EAAO2a,iBAAiB,IAAY3a,EAAO2a,MAAMnH,iBAGnH,CACJ,IAAI1kG,EAAQkxF,EAAOjC,sBAAsBzuF,EAASpB,EAAGoB,EAASnB,GAC1DW,IACHkxF,EAAO5+B,QAAQssB,UAAU,IAAuB,CAAEx/E,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAKw1D,WAAYv1D,OAAQ,EAAKw1D,aAAe,IAClHumD,EAAa95G,KAAK,CAAE4tF,OAAQA,EAAQlxF,MAAOA,SAO1C8E,KAAKi0G,iBACRj0G,KAAK83G,mBAAmBQ,QA1BxBt4G,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAO//B,kBAiCH,YAAAyrD,mBAAP,SAA0BQ,GACzB,GAAIA,EAAan8G,OAAS,EAAG,CAC5B,IAAI,EAAS6D,KAAK4jD,OAElB,GAAI,GAAU,IAAe,EAAO20D,oBAAqB,CAExD,IAEI,EACA,EAHA,EAAc,IAAwB,CAAEj+G,EAAG,EAAOY,MAAMZ,EAAGC,EAAG,EAAOW,MAAMX,GAAK,GAIhF,EAA2B2pB,IAE/B,IAAYo0F,GAAc,SAACE,GAC1B,IAAIpsB,EAASosB,EAAYpsB,OACrBqsB,EAAaD,EAAYt9G,MAC7B,GAAIu9G,EAAY,CACf,IAAIv9G,EAAQ,CAAEZ,EAAGm+G,EAAWn+G,EAAGC,EAAGk+G,EAAWl+G,GAEzCQ,EAAWxD,KAAK6B,IAAI,IAAkB8B,EAAO,IAC7CH,EAAW,IACd,EAAeG,EACf,EAAmBH,EACnB,EAAgBqxF,OAInB,IAAI,EAAyD,GACzD,IAEH,IAAYksB,GAAc,SAACE,GAC1B,GAAIjhH,KAAK6B,IAAI,IAAkBo/G,EAAYt9G,MAAO,KAAkB3D,KAAK6B,IAAI,EAAOm/G,oBACnF,EAAgB/5G,KAAK,CAAE4tF,OAAQosB,EAAYpsB,OAAQlxF,MAAOs9G,EAAYt9G,YAElE,CACJ,IAAIqpE,EAAkBi0C,EAAYpsB,OAAO7nB,gBACrCA,GACH,IAAYA,EAAgBz9C,SAAS,SAACzmB,GACrCA,EAAO0zD,SAAU,EACjB1zD,EAAOu+D,mBAIT45C,EAAYpsB,OAAO5+B,QAAQvB,KAAK,OAI9B,EAAOssD,mBAAqB,IAC3B,EAAgBp8G,OAAS,GAC5B,IAAY,GAAiB,SAACu8G,GACzB,GAAiBA,EAAGtsB,QACvBssB,EAAGtsB,OAAO5+B,QAAQvB,KAAK,MAI1B,EAAkB,CAAC,CAAEmgC,OAAQ,EAAelxF,MAAO,MAIrDo9G,EAAe,EAIhB,IAAI,EAAU,IAAwB,CAAEh+G,GAAI,GAAKC,GAAI,IAAOyF,KAAK0tG,eAC7D,EAAc,IAAwB,CAAEpzG,EAAG0F,KAAK0tG,cAAc57C,WAAa,GAAKv3D,EAAGyF,KAAK0tG,cAAc37C,YAAc,IAAO/xD,KAAK0tG,eAEhI,EAAM,EACN,EAA8D,GAClE,IAAY4K,GAAc,SAACE,GAC1B,IAAIt9G,EAAQs9G,EAAYt9G,MACpBA,GAAS,IAAoBA,EAAO,CAAEZ,EAAG,EAAQA,EAAGC,EAAG,EAAQA,EAAG+B,MAAO,EAAYhC,EAAI,EAAQA,EAAGiC,OAAQ,EAAYhC,EAAI,EAAQA,MACvI,EAAqBiE,KAAK,CAAEtD,MAAOA,EAAOkxF,OAAQosB,EAAYpsB,SAC9D,GAAOlxF,EAAMX,MAIf+9G,EAAe,EAEf,IAAIK,EAAc34G,KAAKosF,OAAOjsC,SAAS,GACnCyyC,GAAW,EACX+lB,GAAeA,EAAY5R,OAAS4R,EAAY5R,MAAMxZ,SAASqF,WAClEA,GAAW,GAGRA,EACH0lB,EAAa9/E,MAAK,SAACzhC,EAAG0L,GAAM,WAAc1L,EAAEmE,MAAMX,EAAGkI,EAAEvH,MAA3B,OAG5Bo9G,EAAa9/E,MAAK,SAACzhC,EAAG0L,GAAM,WAAcA,EAAEvH,MAAMX,EAAGxD,EAAEmE,MAA3B,MAC5Bo9G,EAAa/0F,WAGd,IAAIq1F,EAAW,EAAMN,EAAan8G,OAC9BU,EAAO,IAA0B,CAAEvC,EAAG,EAAGC,EAAG,GAAKyF,KAAKioB,aAAau2C,cAAcjkE,EAErF,GAAI+9G,EAAan8G,OAAS,EAAG,CAC5B,IAAI,EAAM,EAAQ5B,EACd6B,EAAS,EAAY7B,EAGzB,IAA6B,CAAED,EAAG,EAAGC,EAAG,GAAOyF,MAE/C,IAAI64G,GAAU,EAEd,GAAID,EAAW,GAAOx8G,EAAS,GAAO,EAErC,IADA,IAAI08G,EAAa18G,EACRC,EAAIi8G,EAAan8G,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAClD,IAEImxD,GAFA4+B,EAASksB,EAAaj8G,GAAG+vF,QAER5+B,QACjBurD,EAAST,EAAaj8G,GAAGnB,MAAMX,EAWnC,GATAizD,EAAQssB,UAAU,CAAEx/E,EAAG,EAAGC,GAAIsC,EAAMP,MAAO0D,KAAK8xD,WAAYv1D,OAAQu8G,EAAaj8G,IAE7E2wD,EAAQ3jB,SACX2jB,EAAQnD,WAGTmD,EAAQ8W,UACRw0C,EAAa,IAAwB,CAAEx+G,EAAG,EAAGC,EAAGizD,EAAQzoD,MAAMqiB,OAASomC,EAAQpmC,OAAS2xF,EAASvrD,EAAQ6U,gBAAkB7U,GAASjzD,IAElHsC,EAAM,CACvBg8G,GAAU,EACV,OAKH,GAAID,GAAY,GAAOx8G,EAAS,GAAO,GAAKy8G,EAE3C,IADA,IAAIjuC,EAAQ,EACIv5D,GAAPhV,EAAI,EAASi8G,EAAan8G,QAAQE,EAAIgV,EAAKhV,IAAK,CACxD,IAAI+vF,EAASksB,EAAaj8G,GAAG+vF,OACzB2sB,EAAST,EAAaj8G,GAAGnB,MAAMX,GAC/BizD,EAAU4+B,EAAO5+B,SACbssB,UAAU,CAAEx/E,EAAG,EAAGC,EAAGqwE,EAAOtuE,MAAO0D,KAAK8xD,WAAYv1D,OAAQH,IAEhEoxD,EAAQ3jB,SACX2jB,EAAQnD,WAGTmD,EAAQ8W,SAERsG,EAAQ,IAAwB,CAAEtwE,EAAG,EAAGC,EAAGizD,EAAQzoD,MAAMqiB,OAASomC,EAAQzoD,MAAMquD,eAAiB5F,EAAQpmC,OAAS2xF,EAASvrD,EAAQ8U,mBAAqB9U,GAASjzD,MAiB/J,YAAAq9G,gBAAP,SAAuBvB,EAAkB36G,EAAkBs9G,GAA3D,WACC,IAAW3C,EAAKhxG,YAAY,SAAC6kF,GACvB8uB,IAAmC,GAAzBA,EAAOliH,QAAQozF,KACzB,EAAKlG,UAAU7nF,OAAS,GAAK+tF,EAAKlG,UAAU7nF,OAAS,IACxD+tF,EAAKC,sBAAsBzuF,OAaxB,YAAAu9G,gBAAP,SAAuB/uB,EAAwCnwF,GAE9D,GAAKmwF,EAAL,CAIA,IAAIzwF,EACAG,EACWswF,EAAKqD,SAASqF,UAG5B,IAAkB74F,GAElBN,EAAQ,EAAIywF,EAAKtwF,IACjBA,EAAM,EAAIswF,EAAKzwF,QAGfA,EAAQywF,EAAKzwF,MACbG,EAAMswF,EAAKtwF,KAGZ,IAAI46F,EAAqB56F,EAAMH,EAE/B,MAAO,CACNA,MAAOA,EAAQM,EAAMN,MAAQ+6F,EAC7B56F,IAAKH,EAAQM,EAAMH,IAAM46F,KAUjB,YAAAwiB,oBAAV,SAA8B7yD,GAC7B,IAAIP,EAAmB5jD,KAAK4jD,OACxBs1D,EAAWt1D,EAAOs1D,SACtB,GAAgB,SAAZA,GAAmC,UAAZA,EAAsB,CAChD,IAAIC,EAAiBv1D,EAAOu1D,OACxBA,GAAUn5G,KAAKguG,MAAM7xG,OAAS,KACjCg9G,EAASn5G,KAAKi5G,gBAAgBj5G,KAAKguG,MAAM7tD,SAAS,GAAIg5D,IAC/CjlF,SAAW,QAClBl0B,KAAK+1G,SAAS/1G,KAAKguG,MAAOmL,IAI5B,GAAgB,SAAZD,GAAmC,UAAZA,EAAsB,CAChD,IAAIE,EAAiBx1D,EAAOw1D,OACxBA,GAAUp5G,KAAKmuG,MAAMhyG,OAAS,KACjCi9G,EAASp5G,KAAKi5G,gBAAgBj5G,KAAKmuG,MAAMhuD,SAAS,GAAIi5D,IAC/CllF,SAAW,QAClBl0B,KAAK+1G,SAAS/1G,KAAKmuG,MAAOiL,IAI5Bp5G,KAAKq3G,oBASI,YAAAJ,qBAAV,SAA+B9yD,GAC9B,IAAI06C,EAAQ7+F,KAAKguG,MAAM7tD,SAAS,GAC5B0+C,IACH7+F,KAAKq5G,gBAAkB,CAAE5/G,MAAOolG,EAAMplG,MAAOG,IAAKilG,EAAMjlG,MAGzD,IAAImtG,EAAQ/mG,KAAKmuG,MAAMhuD,SAAS,GAC5B4mD,IACH/mG,KAAKs5G,gBAAkB,CAAE7/G,MAAOstG,EAAMttG,MAAOG,IAAKmtG,EAAMntG,OAShD,YAAAu9G,mBAAV,SAA6BhzD,GAC5B,IACI+0D,EADmBl5G,KAAK4jD,OACNs1D,SAEtB,GAAIl5G,KAAKu5G,gBAA8B,QAAZL,GAAkC,SAAZA,GAAsB,CACtE,IACInzB,EAAQ,GADRyzB,EAAcx5G,KAAKu5G,eAGP9/G,MAAQ,IACvBssF,EAAQyzB,EAAY//G,OAEjB+/G,EAAY5/G,IAAM,IACrBmsF,EAAQyzB,EAAY5/G,IAAM,GAE3BoG,KAAK+1G,SAAS/1G,KAAKguG,MAAO,CAAEv0G,MAAO+/G,EAAY//G,MAAQssF,EAAOnsF,IAAK4/G,EAAY5/G,IAAMmsF,IAAS,GAAO,GACrG/lF,KAAKu5G,mBAAgB7sG,EACrB1M,KAAKq5G,qBAAkB3sG,EAExB,GAAI1M,KAAKy5G,gBAA8B,QAAZP,GAAkC,SAAZA,GAAsB,CACtE,IAAIM,EAEAzzB,EAAQ,GAFRyzB,EAAcx5G,KAAKy5G,eAGPhgH,MAAQ,IACvBssF,EAAQyzB,EAAY//G,OAEjB+/G,EAAY5/G,IAAM,IACrBmsF,EAAQyzB,EAAY5/G,IAAM,GAG3BoG,KAAK+1G,SAAS/1G,KAAKmuG,MAAO,CAAE10G,MAAO+/G,EAAY//G,MAAQssF,EAAOnsF,IAAK4/G,EAAY5/G,IAAMmsF,IAAS,GAAO,GACrG/lF,KAAKy5G,mBAAgB/sG,EACrB1M,KAAKs5G,qBAAkB5sG,IAIf,YAAA0qG,qBAAV,WACCp3G,KAAKu5G,mBAAgB7sG,EACrB1M,KAAKq5G,qBAAkB3sG,GAQd,YAAAwqG,oBAAV,SAA8B/yD,GAC7B,IAAIP,EAAmB5jD,KAAK4jD,OACxBs1D,EAAWt1D,EAAOs1D,SAClBQ,EAAY91D,EAAO81D,UACvB,GAAI15G,KAAKq5G,kBAAgC,QAAZH,GAAkC,SAAZA,GAAsB,CACxE,IAAIS,EAAgB35G,KAAKq5G,gBACrBt/G,EAAQ6pD,EAAOu1D,OAEftwB,EAAY7oF,KAAK61G,mBAAmB71G,KAAKguG,OAEzCxZ,EAAcmlB,EAAc//G,IAAM+/G,EAAclgH,MAChDssF,EAAQhsF,EAAMN,OAASovF,EAAUjvF,IAAMivF,EAAUpvF,OAEjDmgH,EAAWriH,KAAKM,KAAK6hH,EAAW3zB,EAAQ4zB,EAAclgH,OACtDogH,EAAStiH,KAAKK,IAAImuF,EAAQ4zB,EAAc//G,IAAK,EAAI8/G,GAEjDE,GAAY,IACfC,EAASD,EAAWplB,GAGjBqlB,GAAU,IACbD,EAAWC,EAASrlB,GAGrB,IAAIslB,EAAW,CACdrgH,MAAOmgH,EACPhgH,IAAKigH,GAEN75G,KAAKu5G,cAAgBO,EAErB95G,KAAK+1G,SAAS/1G,KAAKguG,MAAO8L,GAAU,GAAO,EAAOl2D,EAAO81D,WAG1D,GAAI15G,KAAKs5G,kBAAgC,QAAZJ,GAAkC,SAAZA,GAAsB,CACpES,EAAgB35G,KAAKs5G,gBACrBv/G,EAAQ6pD,EAAOw1D,OAEfvwB,EAAY7oF,KAAK61G,mBAAmB71G,KAAKmuG,OAEzC3Z,EAAamlB,EAAc//G,IAAM+/G,EAAclgH,MAC/CssF,EAAQhsF,EAAMN,OAASovF,EAAUjvF,IAAMivF,EAAUpvF,OAEjDmgH,EAAWriH,KAAKM,KAAK6hH,EAAW3zB,EAAQ4zB,EAAclgH,OACtDogH,EAAStiH,KAAKK,IAAImuF,EAAQ4zB,EAAc//G,IAAK,EAAI8/G,GAEjDE,GAAY,IACfC,EAASD,EAAWplB,GAGjBqlB,GAAU,IACbD,EAAWC,EAASrlB,GAGjBslB,EAAW,CACdrgH,MAAOmgH,EACPhgH,IAAKigH,GAEN75G,KAAKy5G,cAAgBK,EACrB95G,KAAK+1G,SAAS/1G,KAAKmuG,MAAO2L,GAAU,GAAO,EAAOl2D,EAAO81D,WAG1D15G,KAAKq3G,oBAMC,YAAAhJ,eAAP,SAAsBjiB,KAUZ,YAAA2qB,sBAAV,SAAgC5yD,KAahC,sBAAW,yBAAU,C,IAiCrB,WACC,OAAOnkD,KAAK+5G,a,IAlCb,SAAsBv0B,GAAtB,WACKxlF,KAAK+5G,aACR/5G,KAAKoyD,cAAcpyD,KAAK+5G,aAEzB/5G,KAAK+5G,YAAcv0B,EAEfA,IACHxlF,KAAKkpD,WAAW1qD,KAAKgnF,GACrBA,EAAUr4E,OAASnN,KAAK8tG,iBACxBtoB,EAAU58B,aAAc,EACxB48B,EAAU3P,UAAUvoB,YAAa,EACjCk4B,EAAU5P,QAAQtoB,YAAa,EAC/Bk4B,EAAUlhB,SACVkhB,EAAUhqB,YAAc,aACxBgqB,EAAUxmF,OAAOmgD,GAAG,eAAgBn/C,KAAKg6G,uBAAwBh6G,MAAM,GAEvEwlF,EAAUt4B,QAAQ5jD,IAAI,iBAAiB,SAAC6G,GACvC,IAAI0uF,EAAQ,EAAKmP,MAAM7tD,SAAS,GAQhC,OAPI0+C,IACH1uF,EAAIta,MAAQgpG,EAAM7J,iBACjB6J,EAAMtR,SAASqF,SACZ,EAAIziF,EAAIzU,SACRyU,EAAIzU,WAGFyU,O,gCAiBV,sBAAW,yBAAU,C,IA6BrB,WACC,OAAOnQ,KAAKi6G,a,IA9Bb,SAAsBz0B,GAAtB,WACKxlF,KAAKi6G,aACRj6G,KAAKoyD,cAAcpyD,KAAKi6G,aAEzBj6G,KAAKi6G,YAAcz0B,EAEfA,IACHxlF,KAAKkpD,WAAW1qD,KAAKgnF,GACrBA,EAAUr4E,OAASnN,KAAK6tG,mBACxBroB,EAAU3P,UAAUvoB,YAAa,EACjCk4B,EAAU58B,aAAc,EACxB48B,EAAU5P,QAAQtoB,YAAa,EAC/Bk4B,EAAUnhB,UACVmhB,EAAUhqB,YAAc,WACxBgqB,EAAUxmF,OAAOmgD,GAAG,eAAgBn/C,KAAKk6G,uBAAwBl6G,MAAM,GAEvEwlF,EAAUt4B,QAAQ5jD,IAAI,iBAAiB,SAAC6G,GACvC,IAAI42F,EAAQ,EAAKoH,MAAMhuD,SAAS,GAIhC,OAHI4mD,IACH52F,EAAIta,MAAQkxG,EAAM/R,iBAAiB7kF,EAAIzU,WAEjCyU,O,gCAkBA,YAAA6pG,uBAAV,SAAiC71D,GAEhC,GAAInkD,KAAK40D,OAAQ,CAChB,IAAI4wB,EAAuBrhC,EAAM3iD,OAC7BzH,EAAQyrF,EAAUzrF,MAEH,GAAfA,EAAMN,QACTM,EAAMm6B,SAAW,SAGD,GAAbn6B,EAAMH,MACTG,EAAMm6B,SAAW,OAGlBn6B,EAAQiG,KAAK+1G,SAAS/1G,KAAKguG,MAAOj0G,GAElCyrF,EAAU20B,SAASpgH,KAUX,YAAAmgH,uBAAV,SAAiC/1D,GAChC,GAAInkD,KAAK40D,OAAQ,CAChB,IAAI4wB,EAAuBrhC,EAAM3iD,OAC7BzH,EAAQyrF,EAAUzrF,MACL,GAAbA,EAAMH,MACTG,EAAMm6B,SAAW,OAEC,GAAfn6B,EAAMN,QACTM,EAAMm6B,SAAW,SAElBn6B,EAAQiG,KAAK+1G,SAAS/1G,KAAKmuG,MAAOp0G,GAClCyrF,EAAU20B,SAASpgH,KAaX,YAAAg8G,SAAV,SAAmBM,EAA8Ct8G,EAAe0rE,EAAqB1tE,EAAiB4lG,GACrH,IAAIyc,EAAoB,CAAE3gH,MAAO,EAAGG,IAAK,GAmCzC,OAjCAoG,KAAKs3G,oBAEAt3G,KAAK2tE,aACT,IAAW0oC,EAAKhxG,YAAY,SAAC6kF,GAO5B,GANIA,EAAKqD,SAASqF,WACjB74F,EAAQ,IAAkBA,IAG3BmwF,EAAK79B,YAAY,GAEbt0D,EAEH,GAAImyF,aAAgB,GAAc,CACjC,IAAImwB,EAAYnwB,EAAK+H,mBAAmB,GAAK/H,EAAK8H,qBAAqB,GAEvEj4F,EAAMN,MAAQywF,EAAK8I,cAAcj5F,EAAMN,MAAQ4gH,EAAY,EAAKnwB,EAAKyW,cAAiB0Z,EAAWnwB,EAAKyW,eACtG5mG,EAAMH,IAAMswF,EAAK8I,cAAcj5F,EAAMH,IAAMygH,EAAY,GAAK,EAAInwB,EAAK0W,aAAeyZ,EAAWnwB,EAAK0W,kBAGpG7mG,EAAMN,MAAQywF,EAAK8I,cAAcj5F,EAAMN,MAAQ,KAAQ,EAAGywF,EAAKyW,eAC/D5mG,EAAMH,IAAMswF,EAAK8I,cAAcj5F,EAAMH,IAAM,KAAQ,EAAGswF,EAAK0W,aAI7D,IAAI/X,EAAoBqB,EAAK0T,KAAK7jG,EAAO0rE,EAAWA,EAAWk4B,GAE3DzT,EAAKqD,SAASqF,WACjB/J,EAAY,IAAkBA,IAG/BuxB,EAAYvxB,KAGPuxB,GAYR,sBAAW,0BAAW,C,IActB,WACC,OAAOp6G,KAAKujD,iBAAiB,gB,IAf9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,IAASmK,KAAKynF,mBAE5DznF,KAAKynF,iBAAiB71B,KADnB/7D,EAC0BmK,KAAK80G,iBAGLpoG,I,gCA0BhC,sBAAW,8BAAe,C,IAO1B,WACC,OAAO1M,KAAKujD,iBAAiB,oB,IAR9B,SAA2B1tD,GAC1BmK,KAAKopD,iBAAiB,kBAAmBvzD,GAAO,I,gCAgBvC,YAAAgwF,YAAV,SAAsB1hC,GACrB,IAAIupD,EAAgB1tG,KAAK0tG,cACrB4M,EAAmB,IAA0Bn2D,EAAMjpD,MAAO8E,KAAKwoB,cAAexoB,KAAKioB,aAAaC,UAChGqyF,EAAY,IAAwBD,EAAU5M,GAC9C36D,EAAQoR,EAAMpR,MAAMx4C,EAExByF,KAAKw6G,gBAAgBznE,EAAO/yC,KAAKy0G,mBAAoB8F,IAS5C,YAAAE,sBAAV,SAAgCt2D,GAC/B,IAAIupD,EAAgB1tG,KAAK0tG,cACrB4M,EAAmB,IAA0Bn2D,EAAMjpD,MAAO8E,KAAKwoB,cAAexoB,KAAKioB,aAAaC,UAChGqyF,EAAY,IAAwBD,EAAU5M,GAElD1tG,KAAKw6G,gBAAgBr2D,EAAMpR,MAAMz4C,EAAG0F,KAAK06G,6BAA8BH,IAO9D,YAAAC,gBAAV,SAA0BznE,EAAe0hE,EAAuF8F,GAC/H,GAAa,GAATxnE,EAAY,CACf,IAAI26D,EAAgB1tG,KAAK0tG,cAErBiN,EAAiB36G,KAAK61G,mBAAmB71G,KAAKguG,OAC9C4M,EAAiB56G,KAAK61G,mBAAmB71G,KAAKmuG,OAMlD,GAA0B,QAAtBsG,GAAsD,SAAtBA,EAA+B,CAElE,IAAIoG,EAAcF,EAAO/gH,IAAM+gH,EAAOlhH,MAElCqhH,EAAYvjH,KAAKM,KANN,EAMsB8iH,EAAOlhH,MAR7B,GAQiDs5C,EAAQ,KAAO4nE,EAAO/gH,IAAM+gH,EAAOlhH,QAC/FshH,EAAUxjH,KAAKK,IAAI+iH,EAAO/gH,IATf,GASiCm5C,EAAQ,KAAO4nE,EAAO/gH,IAAM+gH,EAAOlhH,OAAQ,GAEvFqhH,GAAa,IAChBC,EAAUD,EAAYD,GAGnBE,GAAW,IACdD,EAAYC,EAAUF,GAGvB76G,KAAK+1G,SAAS/1G,KAAKguG,MAAO,CAAEv0G,MAAOqhH,EAAWlhH,IAAKmhH,IAGpD,GAA0B,QAAtBtG,GAAsD,SAAtBA,EAA+B,CAClE1hE,IAAU,EACV,IAAIioE,EAAcJ,EAAOhhH,IAAMghH,EAAOnhH,MAElCwhH,EAAY1jH,KAAKM,KAxBN,EAwBsB+iH,EAAOnhH,MA1B7B,GA0BiDs5C,EAAQ,KAAO6nE,EAAOhhH,IAAMghH,EAAOnhH,QAC/FyhH,EAAU3jH,KAAKK,IAAIgjH,EAAOhhH,IA3Bf,GA2BiCm5C,EAAQ,KAAO6nE,EAAOhhH,IAAMghH,EAAOnhH,OAAQ,GAEvFwhH,GAAa,IAChBC,EAAUD,EAAYD,GAGnBE,GAAW,IACdD,EAAYC,EAAUF,GAGvBh7G,KAAK+1G,SAAS/1G,KAAKmuG,MAAO,CAAE10G,MAAOwhH,EAAWrhH,IAAKshH,IAGpD,GAA0B,SAAtBzG,GAAuD,UAAtBA,EAAgC,CACpE,IAAI5D,EAAY0J,EAAUjgH,EAAIozG,EAAcpsC,SAExC65C,EAAan7G,KAAKguG,MAAM7tD,SAAS,GAAG2xC,eAAe+e,GAEnDiK,EAAYvjH,KAAKM,KA3CN,EA2CsB8iH,EAAOlhH,MA7C7B,IA6CkDkhH,EAAO/gH,IAAM+gH,EAAOlhH,OAASs5C,EAAQ,IAAM89D,GAC5GiK,EAAYvjH,KAAKK,IAAIkjH,EAAWK,GAE5BJ,EAAUxjH,KAAKK,IAAI+iH,EAAO/gH,IAhDf,IAgDkC+gH,EAAO/gH,IAAM+gH,EAAOlhH,OAASs5C,EAAQ,KAAO,EAAI89D,GAAY,GAC7GkK,EAAUxjH,KAAKM,IAAIkjH,EAASI,GAE5Bn7G,KAAK+1G,SAAS/1G,KAAKguG,MAAO,CAAEv0G,MAAOqhH,EAAWlhH,IAAKmhH,IAGpD,GAA0B,SAAtBtG,GAAuD,UAAtBA,EAAgC,CACpE,IAAIxD,EAAYsJ,EAAUhgH,EAAImzG,EAAc3rC,UAExCq5C,EAAap7G,KAAKmuG,MAAMhuD,SAAS,GAAG2xC,eAAemf,GAEnDgK,EAAY1jH,KAAKM,KAzDN,EAyDsB+iH,EAAOnhH,MA3D7B,IA2DkDmhH,EAAOhhH,IAAMghH,EAAOnhH,OAASs5C,EAAQ,KAAO,EAAIk+D,IACjHgK,EAAY1jH,KAAKK,IAAIqjH,EAAWG,GAE5BF,EAAU3jH,KAAKK,IAAIgjH,EAAOhhH,IA9Df,GA8DiCm5C,EAAQ,IAAMk+D,GAAa2J,EAAOhhH,IAAMghH,EAAOnhH,OAAQ,GACvGyhH,EAAU3jH,KAAKM,IAAIqjH,EAASE,GAE5Bp7G,KAAK+1G,SAAS/1G,KAAKmuG,MAAO,CAAE10G,MAAOwhH,EAAWrhH,IAAKshH,OAgBtD,sBAAW,iCAAkB,C,IAoB7B,WACC,OAAOl7G,KAAKujD,iBAAiB,uB,IArB9B,SAA8B1tD,GAEzBmK,KAAKopD,iBAAiB,qBAAsBvzD,KAClC,QAATA,GACHmK,KAAK4lF,oBAAsB5lF,KAAK0tG,cAAc1uG,OAAOmgD,GAAG,QAASn/C,KAAK6lF,YAAa7lF,MAAM,GACzFA,KAAKkpD,WAAW1qD,KAAKwB,KAAK4lF,sBAGtB5lF,KAAK4lF,sBACR5lF,KAAK0tG,cAAcxwC,WAAY,EAC/Bl9D,KAAK0tG,cAAcj4C,WAAY,EAC/Bz1D,KAAK4lF,oBAAoB/lC,a,gCAsB7B,sBAAW,2CAA4B,C,IAoBvC,WACC,OAAO7/C,KAAKujD,iBAAiB,iC,IArB9B,SAAwC1tD,GAEnCmK,KAAKopD,iBAAiB,+BAAgCvzD,KAC5C,QAATA,GACHmK,KAAKq7G,qBAAuBr7G,KAAK0tG,cAAc1uG,OAAOmgD,GAAG,QAASn/C,KAAKy6G,sBAAuBz6G,MAAM,GACpGA,KAAKkpD,WAAW1qD,KAAKwB,KAAKq7G,uBAGtBr7G,KAAKq7G,uBACRr7G,KAAK0tG,cAAcxwC,WAAY,EAC/Bl9D,KAAK0tG,cAAcj4C,WAAY,EAC/Bz1D,KAAKq7G,qBAAqBx7D,a,gCAqBpB,YAAAy7D,qBAAV,SAA+BlQ,GAA/B,WAaC,OAXAA,EAAS,YAAMkQ,qBAAoB,UAAClQ,GAGpC,IAAWprG,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCgf,EAAS,EAAKmQ,yBACbnQ,EACKhf,EAAOQ,WACZ,CAAC,QAAS,QAAS,YAAa,iBAI3Bwe,GAWE,YAAAoQ,uBAAV,SAAiCpQ,GAAjC,WAYC,OAXAA,EAAS,YAAMkQ,qBAAoB,UAAClQ,GAGpC,IAAWprG,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCgf,EAAS,EAAKmQ,yBACbnQ,EACKhf,EAAOQ,WACZ,CAAC,SAAU,SAAU,aAAc,kBAI9Bwe,GASD,YAAAjlC,cAAP,SAAqB33D,GAEpB,GAAIA,EAAQ,CAGX,IAAIw/F,EAAe,GACfG,EAAe,GAGnB,GAAI,IAAe3/F,EAAOw/F,QAAU,IAAcx/F,EAAOw/F,OACxD,IAAK,IAAI3xG,EAAI,EAAGgV,EAAM7C,EAAOw/F,MAAM7xG,OAAQE,EAAIgV,EAAKhV,IAAK,CACxD,IAAKmS,EAAOw/F,MAAM3xG,GAAGkF,KACpB,MAAMpL,MAAM,yCAA2CkG,EAAI,MAEvD,GAAI,IAAemS,EAAOw/F,MAAM3xG,GAAb,YAAgC,CAGvD,IAAK,IAAI/B,EAAI,EAAG,EAAMkU,EAAOw/F,MAAM3xG,GAAb,WAA8BF,OAAQ7B,EAAI,EAAKA,IAAK,CACzE,IAAIP,EAAQyU,EAAOw/F,MAAM3xG,GAAb,WAA8B/B,GACtC,IAAeP,EAAMgrB,OAAS,IAAehrB,EAAMgrB,QACtDhrB,EAAMgrB,KAAO/kB,KAAKy4D,cAAc/Z,MAAM3kD,EAAMgrB,OAEzC,IAAehrB,EAAM+kG,UAAY,IAAe/kG,EAAM+kG,WACzD/kG,EAAM+kG,QAAU9+F,KAAKy4D,cAAc/Z,MAAM3kD,EAAM+kG,UAIjDkP,EAAMxvG,KAAK,CACV6oF,WAAY74E,EAAOw/F,MAAM3xG,GAAb,WACZsL,MAAOtL,WAEAmS,EAAOw/F,MAAM3xG,GAAb,YAIX,GAAI,IAAemS,EAAO2/F,QAAU,IAAc3/F,EAAO2/F,OACxD,IAAS9xG,EAAI,EAAGgV,EAAM7C,EAAO2/F,MAAMhyG,OAAQE,EAAIgV,EAAKhV,IAAK,CACxD,IAAKmS,EAAO2/F,MAAM9xG,GAAGkF,KACpB,MAAMpL,MAAM,yCAA2CkG,EAAI,MAEvD,GAAI,IAAemS,EAAO2/F,MAAM9xG,GAAb,YAAgC,CAG9C/B,EAAI,EAAb,IAAK,IAAW,EAAMkU,EAAO2/F,MAAM9xG,GAAb,WAA8BF,OAAQ7B,EAAI,EAAKA,IAAK,CACrEP,EAAQyU,EAAO2/F,MAAM9xG,GAAb,WAA8B/B,GACtC,IAAeP,EAAMgrB,OAAS,IAAehrB,EAAMgrB,QACtDhrB,EAAMgrB,KAAO/kB,KAAKy4D,cAAc/Z,MAAM3kD,EAAMgrB,OAEzC,IAAehrB,EAAM+kG,UAAY,IAAe/kG,EAAM+kG,WACzD/kG,EAAM+kG,QAAU9+F,KAAKy4D,cAAc/Z,MAAM3kD,EAAM+kG,UAIjDqP,EAAM3vG,KAAK,CACV6oF,WAAY74E,EAAO2/F,MAAM9xG,GAAb,WACZsL,MAAOtL,WAEAmS,EAAO2/F,MAAM9xG,GAAb,YAMX,GAAI,IAAemS,EAAO49E,SAAW,IAAc59E,EAAO49E,QACzD,IAAS/vF,EAAI,EAAGgV,EAAM7C,EAAO49E,OAAOjwF,OAAQE,EAAIgV,EAAKhV,IACpDmS,EAAO49E,OAAO/vF,GAAGkF,KAAOiN,EAAO49E,OAAO/vF,GAAGkF,MAAQ,aAwBnD,GAnBI,IAAeiN,EAAOo1C,UAAY,IAAep1C,EAAOo1C,OAAOriD,QAClEiN,EAAOo1C,OAAOriD,KAAO,YAIlB,IAAeiN,EAAOsnG,cAAgB,IAAetnG,EAAOsnG,WAAWv0G,QAC1EiN,EAAOsnG,WAAWv0G,KAAO,aAGtB,IAAeiN,EAAO2nG,cAAgB,IAAe3nG,EAAO2nG,WAAW50G,QAC1EiN,EAAO2nG,WAAW50G,KAAO,aAG1B,YAAM4kE,cAAa,UAAC33D,GAMhB2/F,EAAMhyG,OACT,IAASE,EAAI,EAAGgV,EAAM88F,EAAMhyG,OAAQE,EAAIgV,EAAKhV,IAC5C2D,KAAKmuG,MAAMhuD,SAASguD,EAAM9xG,GAAGsL,OAAO6G,OAAS,CAC5C64E,WAAY8mB,EAAM9xG,GAAGgrF,YAIxB,GAAI2mB,EAAM7xG,OACT,IAASE,EAAI,EAAGgV,EAAM28F,EAAM7xG,OAAQE,EAAIgV,EAAKhV,IAC5C2D,KAAKguG,MAAM7tD,SAAS6tD,EAAM3xG,GAAGsL,OAAO6G,OAAS,CAC5C64E,WAAY2mB,EAAM3xG,GAAGgrF,cAkBhB,YAAA1gB,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAGM,cAAL1L,EACD,EAEM,cAAL0L,GACA,EAEK,cAAL1L,EACD,EAEM,cAAL0L,GACA,EAEK,UAAL1L,EACD,EAEM,UAAL0L,GACA,EAEK,UAAL1L,EACD,EAEM,UAAL0L,GACA,EAGD,YAAMkkE,YAAW,UAAC5vE,EAAG0L,IASpB,YAAAwpF,aAAV,WACC,OAAO,IAAI,IAWZ,sBAAW,4BAAa,C,IAaxB,WACC,OAAOjsF,KAAKy7G,gB,IAdb,SAAyBxmC,GAAzB,WACCj1E,KAAKy7G,eAAiBxmC,EAClBA,GACHA,EAAOj2E,OAAOmgD,GAAG,OAAO,WACvB,EAAK42D,SAAS,EAAK/H,MAAO,CAAEv0G,MAAO,EAAGG,IAAK,IAC3C,EAAKm8G,SAAS,EAAK5H,MAAO,CAAE10G,MAAO,EAAGG,IAAK,WACzC8S,GAAW,I,gCAiBT,YAAAm0C,SAAP,SAAgB//B,GAAhB,WAECA,EAAOktF,MAAM9mG,MAAK,SAACgjF,GAClB,EAAK8jB,MAAMxvG,KAAK0rF,EAAKthF,YAGtBkY,EAAOqtF,MAAMjnG,MAAK,SAACgjF,GAClB,EAAKikB,MAAM3vG,KAAK0rF,EAAKthF,YAMtB,YAAMi4C,SAAQ,UAAC//B,GAIXA,EAAO8iC,SACV5jD,KAAK4jD,OAAS9iC,EAAO8iC,OAAOh7C,SAGzBkY,EAAOg1F,aACV91G,KAAK81G,WAAah1F,EAAOg1F,WAAWltG,SAGjCkY,EAAOq1F,aACVn2G,KAAKm2G,WAAar1F,EAAOq1F,WAAWvtG,UAQ/B,YAAAwgG,YAAP,WACC,YAAMA,YAAW,WAEjB,IAAI0M,EAAa91G,KAAK81G,WAClBA,GAAcA,aAAsB,IACvCA,EAAWpD,eAAetJ,cAG3B,IAAI+M,EAAan2G,KAAKm2G,WAClBA,GAAcA,aAAsB,IACvCA,EAAWzD,eAAetJ,cAG3BppG,KAAKguG,MAAM9mG,MAAK,SAACgjF,GAChBA,EAAKkf,iBAGNppG,KAAKmuG,MAAMjnG,MAAK,SAACgjF,GAChBA,EAAKkf,kBASA,YAAAzc,QAAP,SAAe4hB,EAAgCC,GAC1CxuG,KAAK81G,sBAAsB,IAC9B91G,KAAK07G,iBAAiB17G,KAAK81G,WAAYtH,GAEpCxuG,KAAKm2G,sBAAsB,IAC9Bn2G,KAAK07G,iBAAiB17G,KAAKm2G,WAAY3H,GAGxC,YAAM7hB,QAAO,UAAC4hB,EAAaC,IAMlB,YAAAkN,iBAAV,SAA2Bl2B,EAA6BgpB,GACvD,IAAI5zB,EAAQ4K,EAAUktB,eACtB93B,EAAMq6B,eAAiBr6B,EAAMv5E,KAAKlF,OAClCy+E,EAAMF,kBAMG,YAAAihC,oBAAV,SAA8Bn2B,EAA6BgpB,GAC1D,IAAI5zB,EAAQ4K,EAAUktB,eACtB,GAAI,IAAelE,GAAc,CAChC,KAAOA,EAAc,GAAG,CACvB,IAAIr/C,EAAWnvD,KAAKgkF,UAAU7jC,SAAS,GACnCgP,GACHyrB,EAAMoJ,UAAUv4D,OAAO0jC,GAGxByrB,EAAMyR,UAAUnlF,MAAK,SAAColF,GACrB,IAAIn9B,EAAWm9B,EAAStI,UAAU7jC,SAAS,GACvCgP,GACHm9B,EAAStI,UAAUv4D,OAAO0jC,MAI5ByrB,EAAMq6B,iBAENzG,IAGD5zB,EAAMF,mBASD,YAAAkhC,WAAP,SAAkBz9G,GACb6B,KAAK81G,sBAAsB,IAC9B91G,KAAK27G,oBAAoB37G,KAAK81G,WAAY33G,GAEvC6B,KAAKm2G,sBAAsB,IAC9Bn2G,KAAK27G,oBAAoB37G,KAAKm2G,WAAYh4G,GAG3C,YAAMy9G,WAAU,UAACz9G,IAMR,YAAAyvE,iBAAV,SAA2B/3E,GAC1B,YAAM+3E,iBAAgB,UAAC/3E,GACnBmK,KAAK4jD,SACR5jD,KAAK4jD,OAAOuJ,aAAa4Q,iBAAmBloE,EAC5CmK,KAAK0tG,cAAcvgD,aAAa4Q,iBAAmBloE,IAI3C,YAAAg4E,oBAAV,WACC,YAAMA,oBAAmB,WACrB7tE,KAAK4jD,SACR5jD,KAAK4jD,OAAOuJ,aAAa4Q,kBAAmB,EAC5C/9D,KAAK0tG,cAAcvgD,aAAa4Q,kBAAmB,IAI3C,YAAAiQ,gCAAV,WACC,YAAMA,gCAA+B,WACjChuE,KAAK4jD,SACR5jD,KAAK4jD,OAAOuJ,aAAa4Q,kBAAmB,EAC5C/9D,KAAK0tG,cAAcvgD,aAAa4Q,kBAAmB,IAGtD,EA1uEA,CAA6B,GAkvE7B,IAAS3+D,kBAAT,QAAwC,GASxC,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsByS,QAChCvtF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,IAAWA,EAAOs0G,WAAY,CACnD,IAAIjuG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAGjC,OAFcrhF,EAAOs0G,WAAW7oD,OAAO9pD,OAAO0/E,GACtCr4C,WAAW2f,UAAW,EACvBtiD,EAGR,OAAO,QAOT,IAAarJ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsByS,QAChCvtF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,IAAWA,EAAO20G,WAAY,CACnD,IAAItuG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAGjC,OAFcrhF,EAAO20G,WAAWlpD,OAAO9pD,OAAO0/E,GACtCr4C,WAAW2f,UAAW,EACvBtiD,EAGR,OAAO,Q,aCn+ET,eA8BC,mBAGC,cAAO,KACP,EAAKkzC,UAAY,oBAGjB,EAAKyQ,YAAa,EAClB,EAAKM,qBAAsB,EAC3B,EAAK0V,OAAS,OAGd,IAAIq6C,EAAa,EAAKvyC,YAAY/B,EAAA,GAClC,EAAKs0C,WAAaA,EAClBA,EAAWjzD,aAAc,EACzBizD,EAAWxpD,WAAW,EAAK9xD,MAAM+I,IAAI,SACrCuyG,EAAWrwD,YAAa,EACxB,EAAKtC,WAAW1qD,KAAKq9G,GAIrB,IAAIC,EAAe,EAAKxyC,YAAY/B,EAAA,G,OACpC,EAAKu0C,aAAeA,EACpBA,EAAalzD,aAAc,EAC3BkzD,EAAapgE,KAAO,cACpBogE,EAAazpD,WAAW,EAAK9xD,MAAM+I,IAAI,SACvCwyG,EAAatwD,YAAa,EAC1B,EAAKtC,WAAW1qD,KAAKs9G,G,EA0DvB,OAnHuC,iBAqE/B,YAAAC,YAAP,SAAmB7/G,EAAkB8/G,EAAuBC,EAAqBC,GAChF,IAAKl8G,KAAKmqD,SACT,GAAIjuD,EAAOC,OAAS,GAAK6/G,EAAY7/G,OAAS,EAAG,CAEhD,IAAI2P,EAAe,IAAa,CAAExR,EAAG4B,EAAO,GAAG5B,EAAI,GAAKC,EAAG2B,EAAO,GAAG3B,EAAI,KAAS,IAAa2B,EAAO,IAAM,IAAI,KAAmB+/G,EAAaC,GAAaC,OAAOjgH,GAE1I,GAAtB8D,KAAK6wD,eAAyD,GAAnC7wD,KAAK87G,aAAajrD,gBAIhD7wD,KAAK87G,aAAahwG,KAAOA,IAGtB9L,KAAK4wD,YAAc,GAAK5wD,KAAK67G,WAAWjrD,YAAc,KACzD9kD,GAAQ,IAAakwG,EAAY,IAAM,IAAI,KAAmBC,EAAaC,GAAaC,OAAOH,GAC/FlwG,GAAQ,IAAa5P,EAAO,IAC5B4P,GAAQ,MAER9L,KAAK67G,WAAW/vG,KAAOA,QAIxB9L,KAAK67G,WAAW/vG,KAAO,GACvB9L,KAAK87G,aAAahwG,KAAO,IAUrB,YAAA+0C,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GAEf,IAAIs7F,EAAcp8G,KAAK87G,aACvB,IAAuBh7F,EAAQs7F,EAAY5xE,WAAY,KACvD4xE,EAAYp9G,OAAO6hD,SAAS//B,EAAOg7F,aAAa98G,QAChDo9G,EAAYxrD,YAAc,EAE1B,IAAIyrD,EAAcr8G,KAAK67G,WACvB,IAAuB/6F,EAAQu7F,EAAY7xE,WAAY,KACvD6xE,EAAYr9G,OAAO6hD,SAAS//B,EAAO+6F,WAAW78G,QAC9Cq9G,EAAYxrD,cAAgB,GAE9B,EAnHA,CAAuC4X,EAAA,GA2HvC,IAASrpE,kBAAT,kBAAkD,GC5JlD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,uBACjB,EAAK4O,a,EAEP,OAf0C,iBAe1C,EAfA,CAA0C,IAsF1C,eAmDC,mBAGC,cAAO,K,OAtBE,EAAA2yD,UAAsB,SAuB/B,EAAKvhE,UAAY,eAEjB,EAAKqO,iBAAiB,gBAAiB,KAGvC,EAAKO,a,EA0LP,OAtPyE,iBAsEjE,YAAA0wC,YAAP,SAAmBxkG,EAAe8tB,GACjC,OAAO3jB,KAAK24D,kBAAkBh1C,OAAO9tB,EAAO8tB,GAAU3jB,KAAKu8G,qBAmBrD,YAAAziB,aAAP,SAAoBliG,EAAaC,EAAa28F,EAAoBrE,EAAmBwM,G,QAEhF9C,EAEAyF,EAAWt/F,KAAKw8G,SAIpB,GAFAx8G,KAAKopD,iBAAiB,eAAgB,GAEtB,eAAZk2C,GAAyC,UAAZA,GAAoC,UAAZA,GAAoC,QAAZA,EAAoB,CAEhGnP,GAAa,IAChBA,EAAY,GAGbA,EAAY54F,KAAKQ,MAAMo4F,GAEvB,IAAIyM,EAAqBhlG,EACrBilG,EAAqBhlG,EAGN,IAAf28F,IACHA,EAAaj9F,KAAK6B,IAAIvB,IAGvB,IAAIsM,EAEAs4G,EAAW,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GACnCC,EAAc,EAEF,QAAZpd,IACHmd,EAAW,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,I,IAG9B,IAAoB,kBAAAA,GAAQ,8BAAE,CAAzB,IAAIrxE,EAAO,QACf,GAAIopD,EAAappD,EAAU+kD,EAAW,CACrCusB,EAActxE,EACd,Q,iGAGF,IAAIjtC,EAAQ5G,KAAKc,MAAOR,EAAMD,GAAO8kH,EAAevsB,GAEhD5rE,EAAmBhtB,KAAK2uE,IAAI3uE,KAAK6B,IAAI+E,IAAU5G,KAAKg0F,OACpD4Q,EAAQ5kG,KAAKa,IAAI,GAAIb,KAAKU,MAAMssB,IAAa,GAC7Co4F,EAAex+G,EAAQg+F,EAM3Bh4F,EAAOu4G,GAFPv+G,EADc,IAAcs+G,EAAUE,GACpBxgB,GAKlBn8F,KAAK24D,kBAAkBikD,aAAaz4G,EAAMnE,KAAKw8G,UAE/C5kH,EAAML,KAAKU,MAAML,EAAMuM,GAAQA,EAC/BtM,EAAMN,KAAKc,KAAKR,EAAMsM,GAAQA,EAE1Bw4F,KACH/kG,GAAOuM,GACG,GAAKy4F,GAAc,IAC5BhlG,EAAM,IAEPC,GAAOsM,GAEG,GAAK04F,GAAc,IAC5BhlG,EAAM,IAGRgiG,EAAa,CAAEjiG,IAAKA,EAAKC,IAAKA,EAAKsM,KAAMA,QAGzC01F,EAAa,YAAMC,aAAY,UAACliG,EAAKC,EAAK28F,EAAYrE,EAAWwM,GAMlE,OAFA38F,KAAKu8G,mBAAqBv8G,KAAK24D,kBAAkBj1C,UAAUm2E,EAAW11F,KAAM01F,EAAWhiG,IAAKmI,KAAKw8G,UAE1F3iB,GAWR,sBAAW,oCAAqB,C,IAOhC,WACC,OAAO75F,KAAK68G,wB,IARb,SAAiChnH,GAChCmK,KAAK68G,uBAAyBhnH,G,gCAqBxB,YAAA48F,eAAP,SAAsB/2F,GACrB,IAAI7F,EAAgB,IAAYmK,KAAK25F,gBAAgBj+F,GAAWsE,KAAKq4F,oBACjE0F,EAAW/9F,KAAKq6F,YAAYxkG,EAAOmK,KAAK88G,uBAC5C,OAAK98G,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,iBAAkBs6F,GAHvCA,GAkBT,sBAAW,uBAAQ,C,IAWnB,WACC,OAAO/9F,KAAKs8G,W,IAZb,SAAoBhd,GACft/F,KAAKs8G,WAAahd,IACrBt/F,KAAKs8G,UAAYhd,EACjBt/F,KAAK24D,kBAAkB6jD,SAAWld,EAClCt/F,KAAK0pD,e,gCAgBA,YAAA7I,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKw8G,SAAW17F,EAAO07F,UAEzB,EAtPA,CAAyE,IA8PzE,IAASp9G,kBAAT,aAA6C,GAC7C,IAASA,kBAAT,qBAAqD,G,wBCvUrD,eAoBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,qB,EAKnB,OA3BwC,iBA2BxC,EA3BA,CAAwC,IA6GxC,eAsEC,mBACC,cAAO,K,OAbD,EAAAi9D,YAAsB,GAe5B,EAAKnmG,SAAW,IAAIyvC,EAAA,EAAgC,EAAKy7D,iBACzD,EAAKlrG,SAASovC,SAASwG,eAAgB,EAEvC,EAAKyB,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAKzvC,WAC3C,EAAKq3C,WAAW1qD,KAAK,EAAKqT,SAASovC,UAEnC,EAAK+7D,kBAAoB,IAAI,IAAsC,EAAKnrG,UAAU,WAAM,SAAKA,SAAL,YACxF,EAAKmrG,kBAAkBvkE,gBAAiB,EAExC,EAAKsC,UAAY,aAEjB,EAAK8V,cAAgB,EACrB,EAAKD,YAAc,EAEnB,EAAK02C,SAAU,EAEf,EAAK3pG,SAAW,EAChB,EAAKC,SAAW,EAEhB,EAAK2pG,aAAe,IAEpB,EAAK0V,kBAAoB,EAAKz1B,cAAcle,YAAYb,EAAA,GACxD,EAAKw0C,kBAAkBzxD,YAAa,EAMpC,EAAKi8B,iBAAiBpjB,UAEtB,EAAK1a,a,EA2qBP,OAlxBgC,iBA8GrB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,iBAOnC,YAAAkoC,cAAV,WACC,OAAO,IAAI,IASF,YAAAr4B,eAAV,WACC,OAAO,IAAI,IAUF,YAAAioB,wBAAV,SAAkCx9C,GAGjC,IAAI43C,EAAc/mG,KAAKwrG,OAAOtqG,MAC1B29F,EAAc7+F,KAAKurG,OAAOrqG,MAE9B,GAAIlB,KAAK6oD,UAAY7oD,KAAK6rD,QAAS,CAElC,IAAIo2C,EAAqCjiG,KAAKgkF,UAAU7jC,SAASgP,EAASxnD,MAAQ,GAIlF,GAFAwnD,EAASvtD,UAAY5B,KAEjBA,KAAKkhG,UAAYrC,GAChBkI,aAAiB,GAAW,CAC/B,IAAImW,EAAmBnW,EAAM7M,UAS7B,GARI+H,IACHib,EAAWjb,EAAiBlpG,OAAjB,OAAkCsyF,cAI9Cl8B,EAASguD,gBAAgB,SAAUD,EAAU,GAC7C/tD,EAASguD,gBAAgB,SAAUhuD,EAASp2D,OAAO6xG,OAAO/0G,OAEtDgpG,aAAiB,GACpB1vC,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUC,MAAQ,EAAG,GACnEv0C,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUC,YAEpD,GAAG7E,aAAiB,IACrBoD,EAAiB,CACnB,IAAIpsG,EAAQs5D,EAASw7C,OACrBx7C,EAASguD,gBAAgB,SAAUlb,EAAiB0I,OAAQ,GAC5Dx7C,EAASguD,gBAAgB,SAAUtnH,IAKvC,GAAImK,KAAKkhG,UAAY6F,GAChBlI,aAAiB,GAAW,CAC/B,IAAIue,EAAmBve,EAAM3E,UAQ7B,GAPI+H,IACHmb,EAAWnb,EAAiBlpG,OAAjB,OAAkCsyF,cAG9Cl8B,EAASguD,gBAAgB,SAAUC,EAAU,GAC7CjuD,EAASguD,gBAAgB,SAAUhuD,EAASp2D,OAAO4xG,OAAO90G,OAEtDkxG,aAAiB,GACpB53C,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUC,MAAQ,EAAG,GACnEv0C,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUG,YAEpD,GAAGmD,aAAiB,IACrB9E,EAAiB,CACfpsG,EAAQs5D,EAASy7C,OACrBz7C,EAASguD,gBAAgB,SAAUlb,EAAiB2I,OAAQ,GAC5Dz7C,EAASguD,gBAAgB,SAAUtnH,UAOnCmK,KAAKkhG,UAAYrC,GAChBkI,aAAiB,KAChBlI,aAAiB,IACpB1vC,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUC,OAErD7E,aAAiB,IACpB1vC,EAASq0C,mBAAmB,YAAar0C,EAASs0C,UAAUwG,YAI3DjqG,KAAKkhG,UAAY6F,GAChBlI,aAAiB,KAChBkI,aAAiB,IACpB53C,EAASq0C,mBAAmB,QAASr0C,EAASs0C,UAAUG,OAErDmD,aAAiB,IACpB53C,EAASq0C,mBAAmB,YAAar0C,EAASs0C,UAAUyG,aAc1D,YAAAjlB,kBAAP,SAAyB91B,EAA8Bu7B,GACtD,YAAMzF,kBAAiB,UAAC91B,EAAUu7B,GAE9Bv7B,GAAYA,EAASkkB,UACxBrzE,KAAK4kE,mBAAqBzV,EAASkkB,UAS9B,YAAAhpB,SAAP,sBAEC,YAAMA,SAAQ,WAEVrqD,KAAK6+F,OAAS7+F,KAAK+mG,QACtB/mG,KAAKg9G,kBAAkBrkE,QAEvB34C,KAAKq9G,mBAAmBr9G,KAAKs9G,qBAE7B,IAAWt9G,KAAKqnF,WAAWhiF,YAAY,SAACtL,GACvC,EAAKsjH,mBAAmB,EAAKC,oBAAqBvjH,MAGnD,IAAWiG,KAAKg9G,kBAAkB33G,YAAY,SAACguE,GAC9CA,EAAQjnB,YAAa,OAUd,YAAAmxD,UAAV,WAOC,IANA,IAAIn1B,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SAKnBpsF,EAAI2D,KAAKooF,WAAa,EAAG/rF,GAAK,EAAGA,IAAK,CAE9C,IADI8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,KACvB8yD,EAAS74D,SAAS0J,KAAKyrG,gBAAkBt8C,EAAS74D,SAAS0J,KAAK0rG,eAAgB,CAC/FtjB,EAAa/rF,EACb,OAGF2D,KAAKs9G,oBAAsBt9G,KAAKw9G,kBAAkBp1B,EAAY,CAAC,SAAU,cAAe,kBAAmB,gBAAiB,OAAQ,cAAe,YAI1I/rF,EAAI2D,KAAKyoF,SAAlB,IAAK,IAAuBp3E,EAAMrR,KAAKgkF,UAAU7nF,OAAQE,EAAIgV,EAAKhV,IAAK,CACtE,IAAI8yD,EACJ,IADIA,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,KACvB8yD,EAAS74D,SAAS0J,KAAKyrG,gBAAkBt8C,EAAS74D,SAAS0J,KAAK0rG,eAAgB,CAC/FjjB,EAAWpsF,EAAI,EACf,OAIF2D,KAAKy9G,mBAAqBr1B,EAC1BpoF,KAAK09G,iBAAmBj1B,GAMf,YAAA+0B,kBAAV,SAA4BG,EAAuBnzE,GAAnD,WACKgd,EAAsBxnD,KAAKwnD,eAC3B4gC,EAAau1B,EAiBjB,OAfA,IAAYnzE,GAAY,SAACH,GACxB,GAAI,IAAemd,EAAend,IACjC,IAAK,IAAIhuC,EAAI+rF,EAAY/rF,GAAK,EAAGA,IAAK,CACrC,IAAI8yD,EAAW,EAAK60B,UAAU7jC,SAAS9jD,GACvC,GAAI8yD,GACC,IAAeA,EAAS3kB,WAAWH,IAAY,CAC9CszE,EAAgBthH,IACnBshH,EAAgBthH,GAEjB,WAMEshH,GAUE,YAAAN,mBAAV,SAA6BO,EAAmB/0B,GAC/C,IAAIvvB,EAAS,CACZ,MAASskD,EACT,UAAa/0B,GAEd,GACCvvB,EAASt5D,KAAK69G,YAAYvkD,EAAO3xD,MAAO2xD,EAAOuvB,iBACvCvvB,IAIA,YAAAwkD,WAAV,WACE,IAAIzqC,EAAUrzE,KAAKg9G,kBAAkBnkE,WACrC,OAAGw6B,EAAQxxB,cACV7hD,KAAK6R,SAASouC,YAAYozB,GACnBrzE,KAAK89G,cAENzqC,GAUC,YAAAwqC,YAAV,SAAsBD,EAAmB/0B,GACxC,IAAIk1B,GAAa,EACb7hH,EAAmB,GACvB0hH,EAAYrmH,KAAKK,IAAIgmH,EAAW59G,KAAKgkF,UAAU7nF,QAC/C,IAGI6hH,EAHAv1B,EAAmBlxF,KAAKK,IAAIoI,KAAK09G,iBAAkB19G,KAAKgkF,UAAU7nF,QACtE6D,KAAK09G,iBAAmBnmH,KAAKK,IAAIoI,KAAK09G,iBAAkB19G,KAAKgkF,UAAU7nF,QAGvE,IAAI8hH,GAA6B,EAE7B5qC,EAA6BrzE,KAAK89G,aAEtCzqC,EAAQjnB,YAAa,EAEjBy8B,GACHxV,EAAQlmE,OAAS07E,EAAUkB,SAC3B,IAAuBlB,EAAUkB,SAAU1W,EAAS,OAGpD,IAAuBrzE,KAAMqzE,EAAS,KACtCA,EAAQtmB,QAAQxjD,QAChB8pE,EAAQlmE,OAASnN,KAAKi9G,mBAGvBj9G,KAAKynB,MAAM0oC,KAAKxvD,gBAAgB,QAKhC,IAHA,IAAI2mG,EAAmBtnG,KAAKsnG,QACxB4W,GAAuB,EAElB7hH,EAAYuhH,EAAWvhH,EAAIosF,EAAUpsF,IAAK,CAElD,IAAI8yD,EAA8BnvD,KAAKgkF,UAAU7jC,SAAS9jD,GAc1D,GAbA8yD,EAASkkB,QAAUA,EAEflkB,EAASg1C,gBAER9nG,GAAKuhH,EACR59G,KAAKm+G,wBAAwBhvD,EAAS3kB,WAAY6oC,GAIlD4qC,EAAoBj+G,KAAKm+G,wBAAwBhvD,EAAS3kB,WAAY6oC,GAAS,IAI7ElkB,EAAS74D,SAAS0J,KAAKyrG,gBAAkBt8C,EAAS74D,SAAS0J,KAAK0rG,eACnE1rG,KAAK8wE,UAAU50E,EAAQizD,EAAUnvD,KAAKopF,OAAQppF,KAAKqpF,QACnD60B,GAAc,MAEV,CAEJ,GAAI7hH,GAAKuhH,EACR,SAIA,IAAKtW,GAAW4W,EAAa,CAC5BF,EAAa3hH,EACb,OAOH,GAFA2hH,EAAa3hH,EAET2D,KAAKkhG,oBAAoB,GAAU,CACtC,IAAI98F,EAAOpE,KAAKgkF,UAAU7jC,SAAS9jD,EAAI,GACvC,GAAI+H,GAAQpE,KAAKkhG,SAASkG,QAAQhjG,EAAM+qD,GAAW,CAClD4uD,GAAa,EACb,OAIF,GAAIE,EACH,MAGF,OAAOj+G,KAAKo+G,aAAa/qC,EAASn3E,EAAQ0hH,EAAWI,EAAYn1B,EAAWk1B,IAanE,YAAAjtC,UAAV,SAAoB50E,EAAkBizD,EAA6Bi6B,EAAgBC,EAAgBrqC,GAClG,IAAI9jD,EAAQ8E,KAAKmwG,SAAShhD,EAAUi6B,EAAQC,EAAQl6B,EAAS22C,iBAAiB1c,GAASj6B,EAAS22C,iBAAiBzc,IAC5GrqC,IACJmQ,EAASj0D,MAAQA,GAElBgB,EAAOsC,KAAKtD,IAaH,YAAAkjH,aAAV,SAAuB/qC,EAA4Bn3E,EAAkB0hH,EAAmBI,EAAoBn1B,EAA0Bv/E,GACrI,IAAI0yG,EAAwB,GAE5B,GAAIh8G,KAAK4sF,WAAsC5sF,KAAKotG,cACnDptG,KAAK4sF,WAAsC5sF,KAAKqtG,cAChDrtG,KAAKisG,QACL,IAAK,IAAI5vG,EAAY2hH,EAAY3hH,GAAKuhH,EAAWvhH,IAAK,CACrD,IAAI8yD,EAA8BnvD,KAAKgkF,UAAU7jC,SAAS9jD,GACtD8yD,EAAS74D,SAAS0J,KAAKyrG,gBAAkBt8C,EAAS74D,SAAS0J,KAAK0rG,gBACnE1rG,KAAK8wE,UAAUkrC,EAAa7sD,EAAUnvD,KAAKitG,WAAYjtG,KAAKmtG,YAAY,OAItE,CACJ,IAAIjM,EAAiBlhG,KAAKkhG,SACtB/iG,EAAgBjC,EAAOC,OACvB0iG,EAAc7+F,KAAK6+F,MACnBkI,EAAc/mG,KAAK+mG,MACnB5oG,EAAQ,IACP+iG,GAAYrC,GACfmd,EAAYx9G,KAAK,CAAElE,EAAG4B,EAAOiC,EAAQ,GAAG7D,EAAGC,EAAGwsG,EAAMnP,UAAUr9F,IAC9DyhH,EAAYx9G,KAAK,CAAElE,EAAG4B,EAAO,GAAG5B,EAAGC,EAAGwsG,EAAMnP,UAAUr9F,MAGtDyhH,EAAYx9G,KAAK,CAAElE,EAAGukG,EAAMjH,UAAUt9F,EAAGC,EAAG2B,EAAOiC,EAAQ,GAAG5D,IAC9DyhH,EAAYx9G,KAAK,CAAElE,EAAGukG,EAAMjH,UAAUt9F,EAAGC,EAAG2B,EAAO,GAAG3B,MAWzD,OANAyF,KAAK+7G,YAAY1oC,EAASn3E,EAAQ8/G,GAE9B1yG,GACH00G,IAGGA,EAAah+G,KAAK09G,iBAAmB,EACjC,CAAE,MAASM,EAAY,UAAan1B,GAEpC,MAWC,YAAAkzB,YAAV,SAAsB1oC,EAA4Bn3E,EAAkB8/G,GACnE3oC,EAAQ0oC,YAAY7/G,EAAQ8/G,EAAah8G,KAAKrC,SAAUqC,KAAKpC,WAepD,YAAAugH,wBAAV,SAAkCE,EAA0ChrC,EAA4BirC,GACvG,IAAI/wC,GAAmB,EAyCvB,OAvCA,IAAa8wC,GAAgB,SAACtnD,EAAclhE,GAE3C,GAAI,IAAeA,GAAQ,CAC1B,IAAIohE,EAAqBoc,EAAStc,GAC9BwnD,OAAe,EAGftnD,IAEFsnD,EADGtnD,EAAajhE,SACEihE,EAAajhE,WAGbihE,GAIpB,IAAI8mC,OAAQ,EAERloG,IAEFkoG,EADGloG,EAAMG,SACEH,EAAMG,WAGNH,GAITohE,GAAgBphE,QAA6B6W,GAAnB6xG,QAA4C7xG,GAAZqxF,GAAyBwgB,GAAmBxgB,IAIpGugB,IACEjrC,EAAStc,GAAgBlhE,GAEhC03E,GAAU,OAKNA,GAiBR,sBAAW,sBAAO,C,IASlB,WACC,OAAOvtE,KAAKujD,iBAAiB,Y,IAV9B,SAAmB1tD,GACdmK,KAAKopD,iBAAiB,UAAWvzD,IACpCmK,KAAK0pD,c,gCAoCP,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO1pD,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCA+B1C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiBnC,YAAAkvF,mBAAP,SAA0BV,GAA1B,WAEK3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO5a,kBAEP,IAAI+oB,EAAanO,EAAO/a,YAAYk1C,GAAA,GAUpC,GATAhsB,EAAK5pC,aAAc,EAEnB,IAAuB5oD,KAAMwyF,EAAM,KAEnCA,EAAKuF,GAAKr5D,EACV8zD,EAAKj4F,EAAI2+B,EAAI,EACbs5D,EAAKkF,GAAK,KACVlF,EAAK3mC,SAAU,EAEX7rD,KAAK4wD,YAAc,EAAG,CACzB,IAAIlV,EAAkB2oC,EAAO/a,YAAYm1C,GAAA,GAEzC,IAAuBz+G,KAAM07C,EAAM,KACnCA,EAAKp/C,MAAQoiC,EACbgd,EAAKn/C,OAAS28B,EACdwiB,EAAKnhD,EAAI,EACTmhD,EAAKmV,cAAgB,EACrBnV,EAAKmQ,SAAU,EAEf2mC,EAAKj4F,EAAI,EAGV,IAAIqqF,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ/8C,KAAKquD,OAC5Bu2B,EAAeoB,UAAYhmF,KAAK07C,KAEhC,IAAmB17C,KAAKqmF,QAAQhhF,YAAY,SAACuiF,GAE5C,GAAKA,aAAkB,IAAYA,EAAO1E,mBACzC,OAAO,EAGR,IAAIw7B,GAAqB,EAazB,GAXI92B,aAAkBnf,EAAA,GAGrB,IAAWmf,EAAOxxE,SAAS/Q,YAAY,SAACspD,GACvC,GAAIA,aAAiBylB,EAAA,EAEpB,OADAsqC,GAAY,GACL,MAKLA,EAAW,CACf,IAAI91G,EAAwBg/E,EAAOh/E,QAsBnC,OArBAA,EAAMuE,OAASk3E,EACfz7E,EAAM4iD,YAAa,EACnB5iD,EAAMorD,iBAActnD,EACpB9D,EAAMtO,EAAIokC,EAAI,EACV,EAAKkyB,YAAc,EACtBhoD,EAAMrO,EAAI,EAGVqO,EAAMrO,EAAI2+B,EAAI,EAEftwB,EAAMijD,SAAU,EAGX,IAAejjD,EAAM8yC,QACzB9yC,EAAM8yC,KAAO,EAAKA,MAGd,IAAe9yC,EAAMylD,UACzBzlD,EAAMylD,OAAS,EAAKA,SAGd,OAQH,YAAA+6C,YAAP,WACC,YAAMA,YAAW,WACjBppG,KAAK6R,SAAStI,SAUf,sBAAW,2BAAY,C,IAOvB,WACC,OAAOvJ,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAU/C,EAlxBA,CAAgC,IA0xBhC,IAASuJ,kBAAT,WAA2C,GAC3C,IAASA,kBAAT,mBAAmD,GCh5BnD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,sBAEjB,EAAKgwD,YAAY,QAAS,EAAG,GAC7B,EAAKA,YAAY,QAAS,EAAG,GAE7B,EAAKA,YAAY,YAAa,EAAG,GACjC,EAAKA,YAAY,YAAa,EAAG,GAEjC,EAAKphD,a,EAGP,OAvByC,iBAuBzC,EAvBA,CAAyC,IAiFzC,eAmCC,mBACC,cAAO,K,OACP,EAAK5O,UAAY,cACjB,EAAK4jE,aAAc,EACnB,EAAKh1D,a,EA4KP,OAnNiC,iBA+CzB,YAAAU,SAAP,WAGKrqD,KAAK46E,MAAM/wC,SACd7pC,KAAK46E,MAAMvwB,WAGZ,YAAMA,SAAQ,YASL,YAAAq6B,eAAV,WACC,OAAO,IAAI,IAeL,YAAAyrB,SAAP,SAAgBhhD,EAA+BkjD,EAAcC,EAAczB,EAAoBI,EAAoBsB,EAAoBC,GACjID,IACJA,EAAY,UAERC,IACJA,EAAY,UAGb,IAAIl4G,EAAY0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUmjD,EAAMrB,EAAWuB,GACvDj4G,EAAYyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUmjD,EAAMrB,EAAWuB,GAEvDn0G,EAAiB,IAAkB,CAAE/D,EAAGA,EAAGC,EAAGA,IAGpC,GAAV8D,IACHA,EAAS,MAGV,IAAIvC,EAAgBkE,KAAK6+F,MAAMljG,SAASwzD,EAAUkjD,EAAMxB,EAAW0B,GAE/Dt0G,EAAa+B,KAAK46E,MAAM38E,WACxBC,EAAW8B,KAAK46E,MAAM18E,SAG1B,OAAIpC,EAAQmC,GAAcnC,EAAQoC,OACjC,EAGO,CAAE5D,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAerD,YAAAg1E,UAAV,SAAoB50E,EAAkBizD,EAA6Bi6B,EAAgBC,EAAgBrqC,GAClG,IAAI9jD,EAAQ8E,KAAKmwG,SAAShhD,EAAUi6B,EAAQC,EAAQl6B,EAASs0C,UAAUra,GAASj6B,EAASs0C,UAAUpa,IAC/FnuF,GACHgB,EAAOsC,KAAKtD,IASJ,YAAAuyG,YAAV,WACC,IAAIlgB,EAAmDvtF,KAAK+mG,MAAMxZ,SAClE,OAAO,IAAUA,EAAStvF,WAAYsvF,EAASrvF,SAAWqvF,EAAStvF,WAAYsvF,EAASqxB,YAAarxB,EAASsxB,mBAWrG,YAAA9C,YAAV,SAAsB1oC,EAA4Bn3E,EAAkB8/G,GACnE,IACIzuB,EADavtF,KAAK+mG,MACsCxZ,SAExDvtF,KAAK2+G,aAAoE,KAArDpnH,KAAK6B,IAAIm0F,EAASrvF,SAAWqvF,EAAStvF,cAEzD+B,KAAK4sF,WAAsC5sF,KAAKotG,cACnDptG,KAAK4sF,WAAsC5sF,KAAKqtG,cAChDrtG,KAAKisG,WACL/vG,EAAOsC,KAAKtC,EAAO,IACf8/G,EAAY7/G,OAAS,GACxB6/G,EAAYhwF,QAAQgwF,EAAYA,EAAY7/G,OAAS,KAIxD,YAAM4/G,YAAW,UAAC1oC,EAASn3E,EAAQ8/G,IAUpC,sBAAW,0BAAW,C,IAOtB,WACC,OAAOh8G,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAUnC,YAAAu7G,mBAAV,SAA6BxpB,EAAe2oB,EAAkBC,GAC7D,IAAI3R,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,OAEdwJ,EAAY1R,EAAMplG,OAAS82G,EAAY1R,EAAMjlG,KAAO42G,EAAYzJ,EAAMttG,OAAS+2G,EAAYzJ,EAAMntG,OACnGguF,EAAO/7B,SAAU,GAGlB+7B,EAAOt2E,OAAOtR,KAAK6+F,MAAMtR,SAASM,gBAAgB0iB,EAAWC,KAIpD,YAAAvC,SAAV,SAAmB/jB,GAClB,YAAM+jB,SAAQ,UAAC/jB,GACflqF,KAAK8+G,sBAGI,YAAA1Q,SAAV,SAAmBlkB,GAClB,YAAMkkB,SAAQ,UAAClkB,GACflqF,KAAK8+G,sBAGI,YAAAA,mBAAV,WACC,IAAIC,EAAkC/+G,KAAK6+F,MAAMtR,SAC7CyxB,EAAgCh/G,KAAK+mG,MAAMxZ,SAE/CwxB,EAAUE,cAAgBD,GAE5B,EAnNA,CAAiC,IA2NjC,IAAS5/G,kBAAT,YAA4C,GAC5C,IAASA,kBAAT,oBAAoD,G,cC5QpD,eA8BC,WAAY8qF,GAAZ,MACC,YAAMA,IAAK,K,OAEX,EAAKnvC,UAAY,mBAEjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,EAAKjL,OAAS,YAAQ,KAEtB,EAAKsrD,a,EAsEP,OA7GsC,iBA+C9B,YAAAY,KAAP,WAGC,GAFA,YAAMA,KAAI,YAEPvqD,KAAKosD,aAAcpsD,KAAKmqD,UAIvBnqD,KAAKkqF,KAAM,CACd,IAAIqD,EAAuDvtF,KAAKkqF,KAAKqD,SACrEvtF,KAAKq1F,SAAW9H,EAASmE,qBAAqB1xF,KAAK8tF,cAAe9tF,KAAK+tF,YAAa/tF,KAAK3B,OAAQ,IAAe2B,KAAKqS,aAAerS,KAAKqS,YAAck7E,EAASl7E,YAAarS,KAAKsS,cAClLtS,KAAK8L,KAAO9L,KAAKq1F,WASnB,sBAAW,0BAAW,C,IAOtB,WACC,OAAOr1F,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAehE,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAe3D,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAU/C,EA7GA,CAAsC,IAqHtC,IAASuJ,kBAAT,iBAAiD,GCxHjD,mBAoBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,eACjB,EAAKsY,cAAe,EACpB,EAAK1J,a,EAmCP,OA3DkC,iBAgCjC,sBAAW,0BAAW,C,IAOtB,WACC,OAAO3pD,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAehE,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAU5D,EA3DA,CAAkC,IAoElC,IAASuJ,kBAAT,aAA6C,GC5D7C,mBAqCC,mBACC,cAAO,K,OAZD,EAAA8/G,IAAc,EAMd,EAAAC,IAAc,EAOpB,EAAKpkE,UAAY,oBACjB,EAAKuoB,QAAQ,EAAG,EAAG,EAAG,GACtB,EAAKjiD,SAAW,GAChB,EAAK+9F,eAAiB,GACtB,EAAK/gH,OAAS,EACd,EAAKmtD,YAAa,EAClB,EAAK7B,a,EA4QP,OAzTuC,iBAwDtC,sBAAW,+BAAgB,C,IAe3B,WACC,OAAO3pD,KAAKujD,iBAAiB,qB,IAhB9B,SAA4B1tD,GAE3B,GADAmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,IAC5C,IAAeA,GAAQ,CAC3BmK,KAAK+mB,cAAWra,EAEhB,IAAIyiD,EAAWnvD,KAAKmvD,SAChBA,GAAYA,EAASvtD,WACxButD,EAASvtD,UAAUgoF,wB,gCAiBtB,sBAAW,qBAAM,C,IAOjB,WACC,OAAO5pF,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAmB3D,sBAAW,mBAAI,C,IA4Bf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IA7B9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,GACrCmK,KAAKopD,iBAAiB,QAAQ,GAC9BppD,KAAKopD,iBAAiB,mBAAoB,QAC1CppD,KAAKopD,iBAAiB,iBAAkB,QAEpCvzD,GACHmK,KAAKopD,iBAAiB,KAAM,GAC5BppD,KAAKopD,iBAAiB,KAAM,GAC5BppD,KAAKopD,iBAAiB,IAAK,GAC3BppD,KAAKopD,iBAAiB,IAAK,GAC3BppD,KAAKopD,iBAAiB,WAAY,GAElCppD,KAAKk/G,IAAM,EACXl/G,KAAKm/G,IAAM,EACXn/G,KAAKq0E,UAAY,UAGdr0E,KAAKq/G,kBACPr/G,KAAKq/G,gBAAgBx/D,UACrB7/C,KAAKq/G,qBAAkB3yG,I,gCAkBnB,YAAAkyG,YAAP,SAAmBU,GAClB,IAAIp3E,EAAe,EAKnB,OAJIloC,KAAKs1F,SACRptD,GAAQ,GAGF,IAAuBloC,KAAK3B,OAAQihH,GAAcp3E,GAUnD,YAAAq3E,aAAP,SAAoBD,EAAoBE,GACvC,IAAIt3E,EAAe,EACfloC,KAAKs1F,SACRptD,GAAQ,GAGT,IAAI7pC,EAAS2B,KAAK3B,OAElB,OAAI,IAAeA,IAClBA,GAAUmhH,EAAcF,EACjB,IAAuBjhH,EAAQihH,GAAcp3E,GAG7C,IAAuB7pC,EAAQmhH,GAAet3E,GAYhD,YAAAu3E,YAAP,SAAmB3jH,EAAewjH,EAAoBE,EAAsBl4F,EAAaC,GACnF,IAAei4F,KACnBA,EAAcF,GAGV,IAAeh4F,KACnBA,EAAK,GAGD,IAAeC,KACnBA,EAAK,GAGN,IAAIrsB,EAAQ,CAAEZ,EAAGglH,EAAa,IAAUxjH,GAAQvB,EAAGilH,EAAc,IAAU1jH,IAEvEkE,KAAK6pC,SACR7pC,KAAKqqD,WAGN,IAAIq1D,GAAa,EACb/tC,EAAa3xE,KAAK3B,QAElBszE,aAAsBp4B,EAAA,GAAWo4B,EAAW97E,MAAQ,GAG/C87E,EAAa,KAFrB+tC,GAAa,GAMd,IAAIC,EAAmB3/G,KAAK2/G,iBACxBC,EAAc5/G,KAAK4+G,YAAYU,GAEnC,GAAIt/G,KAAK6/G,KAAM,CACd,IAAI,EAAQ,CAAEvlH,GAAIglH,EAAaM,GAAe,IAAU9jH,EAAQ,KAAMvB,GAAIilH,EAAcI,EAAcJ,EAAcF,GAAc,IAAUxjH,EAAQ,MAOpJ,OANAkE,KAAK8L,KAAO,IAAa,GAAS,IAAYhQ,EAAQ,IAAK,IAAKwjH,EAAaM,EAAaJ,EAAcI,EAAcJ,EAAcF,QAEhIt/G,KAAKq/G,iBACRr/G,KAAKq/G,gBAAgB10D,KAAK,CAAE,YAAsC,IAAtB3qD,KAAKo/G,eAAwB,OAO3E,GAAI,IAAeO,GAAmB,CAErC3/G,KAAKyrD,iBAAmB,OACxBzrD,KAAK0rD,eAAiB,OAEtB5vD,EAAQ,IAAsBA,GAAQ,IAAK,KAE3C,IAAIg2D,EAAa9xD,KAAKmoB,KAAK7rB,MACvBy1D,EAAc/xD,KAAKmoB,KAAK5rB,OAExB22D,EAAqBlzD,KAAKkzD,mBAC1BvrC,EAAkB3nB,KAAK2nB,gBACvBD,EAAmB1nB,KAAK0nB,iBACxBurC,EAAoBjzD,KAAKizD,kBAEzBn3D,EAAQ,IAAMA,GAAS,IACD,IAArB6jH,IACHA,EAAmB,GACnB7tD,EAAa,KAIW,IAArB6tD,IACH5tD,GAAgBA,GAEO,IAApB4tD,IACHA,GAAoB,GACpB7tD,GAAcpqC,EAAmBurC,EACjClB,GAAgBA,EAAcpqC,EAAkBurC,IAIlDlzD,KAAK+mB,SAAW44F,EAAmB7jH,EAAQ,GAE3C,IAAIgkH,EAAK,IAAUH,GAAoB,EACnCI,EAAK,IAAUJ,GAAoB,EAEnC54F,EAAW/mB,KAAK+mB,SAEpB/mB,KAAKsnB,GAAKyqC,EAAc+tD,EAAK,IAAU/4F,GAAY+qC,EAAaiuD,EAAK,IAAUh5F,GAC/E/mB,KAAKunB,IAAMwqC,EAAc+tD,EAAK,IAAU/4F,GAAY+qC,EAAaiuD,EAAK,IAAUh5F,GAE3E/mB,KAAKs1F,OAILx5F,EAAQ,IAAMA,GAAS,GAC1B8jH,IAAgB1sD,EAAqBvrC,GAAmB,IAAUg4F,IAAqBj4F,EAAmBurC,GAAqB,IAAU0sD,GAGzIC,IAAgB1sD,EAAqBlzD,KAAKmoB,KAAK5rB,OAASorB,GAAmB,IAAUg4F,IAAqBj4F,EAAmBurC,EAAoBjzD,KAAKmoB,KAAK7rB,OAAS,IAAUqjH,GAP/KC,IAAgB7tD,EAAcmB,EAAqBvrC,GAAmB,IAAUg4F,IAAqB7tD,EAAapqC,EAAmBurC,GAAqB,IAAU0sD,GAWrKzkH,EAAMZ,GAAK,IAAUwB,GAAS8jH,EAC9B1kH,EAAMX,GAAK,IAAUuB,GAAS8jH,EAAcJ,EAAcF,OAI1Dt/G,KAAKyrD,iBAAmB,SACxBzrD,KAAK0rD,eAAiB,SAElBg0D,GACH1/G,KAAKsnB,GAAK,EACVtnB,KAAKunB,GAAK,EACVrsB,EAAMZ,GAAKglH,EAAaM,GAAe,IAAU9jH,GACjDZ,EAAMX,GAAKilH,EAAcI,EAAcJ,EAAcF,GAAc,IAAUxjH,KAM7EkE,KAAKunB,GAAKvnB,KAAKwpD,gBAAkB,EAAI,IAAU1tD,GAE/CkE,KAAKsnB,GAAKtnB,KAAKupD,eAAiB,EAAI,IAAUztD,GAE9CZ,EAAMZ,GAAK,IAAUwB,GAAS8jH,EAC9B1kH,EAAMX,GAAK,IAAUuB,GAAS8jH,EAAcJ,EAAcF,GAI5DpkH,EAAMZ,GAAKgtB,EACXpsB,EAAMX,GAAKgtB,EAEXvnB,KAAKk/G,IAAMl/G,KAAKsnB,GAChBtnB,KAAKm/G,IAAMn/G,KAAKunB,GAEhBvnB,KAAKsR,OAAOpW,IAGd,EAzTA,CAAuC,IAiUvC,IAASkE,kBAAT,kBAAkD,GC9SlD,mBAgDC,mBAGC,cAAO,K,OAhBD,EAAA4gH,gBAA0B,EAmBhC,EAAKx+C,OAAS,OAEd,EAAKzmB,UAAY,uBACjB,EAAKyQ,YAAa,EAClB,EAAKvtD,YAAc,GACnB,EAAKC,SAAW,IAEhB,EAAK+hH,gBAAiB,EACtB,EAAK5hH,OAAS,YAAQ,KAEtB,EAAKmtD,YAAa,EAElB,EAAK2iC,KAAKltC,SAAS5/B,SAAW,EAE9B,EAAKiiE,OAAOriC,SAAS5/B,SAAW,EAChC,EAAKiiE,OAAOriC,SAAS5iD,OAAS,GAE9B,EAAKiwF,MAAMrtC,SAAS5/B,SAAW,EAC/B,EAAKitE,MAAMrtC,SAASoS,cAAe,EACnC,EAAK0+B,gBAAkB,EAEvB,EAAKS,KAAK3hC,cAAgB,EAE1B,EAAKlH,a,EAsdP,OAniB0C,iBAmFlC,YAAAksC,QAAP,SAAe3L,GAAf,WACC,YAAM2L,QAAO,UAAC3L,GACdA,EAAK1+B,YAAa,EAGlB,IAAIgC,EAAU08B,EAAK18B,QAEnBA,EAAQN,QAAQ5jD,IAAI,MAAM,SAAChP,EAAGkH,GAC7B,IAAItG,EAAgB,IAAwB,CAAEZ,EAAGkH,EAAOylB,OAAQ1sB,EAAGiH,EAAO4lB,QAAU,GACpF,OAAO,EAAKw3F,YAAcrnH,KAAKoB,IAAIpB,KAAKwE,MAAMb,EAAMX,EAAGW,EAAMZ,IAAMY,EAAMZ,KAG1EkzD,EAAQN,QAAQ5jD,IAAI,MAAM,SAAC/O,EAAGiH,GAC7B,IAAItG,EAAgB,IAAwB,CAAEZ,EAAGkH,EAAOylB,OAAQ1sB,EAAGiH,EAAO4lB,QAAU,GACpF,OAAO,EAAKw3F,YAAcrnH,KAAKkB,IAAIlB,KAAKwE,MAAMb,EAAMX,EAAGW,EAAMZ,IAAMY,EAAMX,MASpE,YAAA8vD,SAAP,WAEKrqD,KAAK46E,OAAS56E,KAAK46E,MAAM/wC,SAC5B7pC,KAAK46E,MAAMvwB,WAGZ,YAAMA,SAAQ,YAQf,sBAAW,yBAAU,C,IAArB,WACC,OAAO,EAAI9yD,KAAKD,GAAK0I,KAAK4+G,a,gCAU3B,sBAAW,qBAAM,C,IAWjB,WACC,OAAO5+G,KAAKujD,iBAAiB,W,IAZ9B,SAAkB1tD,GACbmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAO,EAAO,IAAI,IAC1DmK,KAAKkqF,MACRlqF,KAAKkqF,KAAKxgC,c,gCAiBb,sBAAW,0BAAW,C,IAAtB,WACC,OAAO,IAA6B1pD,KAAK3B,OAAQ2B,KAAKggH,kBAAoB,G,gCAU3E,sBAAW,0BAAW,C,IAWtB,WACC,IAAIplC,EAAoB56E,KAAK46E,MACzBvoE,EAAcrS,KAAKujD,iBAAiB,eACxC,GAAGq3B,EAAM,CACR,GAAK,IAAevoE,IASnB,GAAIA,aAAuBknC,EAAA,GAAWqhC,EAAO,CAC5C,IAAIslC,EAAKtlC,EAAMslC,GACXrqH,EAAQwc,EAAYxc,MACxBA,EAAQ0B,KAAKM,IAAIqoH,EAAKrqH,EAAOqqH,EAAK3oH,KAAKK,IAAIgjF,EAAM8yB,cAAcxnD,YAAa00B,EAAM8yB,cAActnD,aAAe85D,EAC/G7tG,EAAc,YAAgB,IAARxc,SAZvBwc,EAAcuoE,EAAMvoE,uBAEOknC,EAAA,GAAWqhC,IACrCvoE,EAAc,YAAQA,EAAYxc,MAAQ+kF,EAAMulC,oBAAsB,MAYxE,OAAO9tG,I,IA/BT,SAAuBxc,GAClBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAO,EAAO,IAAI,IAC/DmK,KAAKkqF,MACRlqF,KAAKkqF,KAAKxgC,c,gCAuCb,sBAAW,6BAAc,C,IAOzB,WACC,OAAO1pD,KAAKujD,iBAAiB,mB,IAR9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,I,gCAezC,sBAAW,+BAAgB,C,IAA3B,WACC,OAAO,IAA6BmK,KAAKqS,YAAarS,KAAKggH,kBAAoB,G,gCAUzE,YAAAnyB,gBAAP,SAAuBnyF,EAAkBs6F,GAEnC,IAAeA,KACnBA,EAAY,GAGb,IAAII,EAAqBp2F,KAAKwxF,qBAAqB91F,GAC/CI,EAAgBkE,KAAK/B,YAAc+B,KAAK9B,SAAW8B,KAAK/B,YAAcm4F,EAAap2F,KAAKowF,WACxF/xF,EAAS2B,KAAK4+G,YACdvsG,EAAcrS,KAAK6+G,iBAEvB,GAAI7+G,KAAKi/G,cAAe,CACvB,IAAIttC,EAAa,IAAiB3xE,KAAKi/G,cAAcztB,qBAAqBwE,GAAY,EAAG9xE,KAEzF,MADY,CAAE5pB,EAAGq3E,EAAa,IAAU71E,GAAQvB,EAAGo3E,EAAa,IAAU71E,IAI3E,MAAO,CAAExB,EAAG,IAAUwB,GAASuW,GAAehU,EAASgU,GAAe,IAAUvW,GAASk6F,EAAWz7F,EAAG,IAAUuB,GAASuW,GAAehU,EAASgU,GAAe,IAAUvW,GAASk6F,IAS9K,YAAA1E,gBAAP,SAAuB51F,GACtB,IAIII,EAJAouF,EAAalqF,KAAKkqF,KAElBrrF,GAAemB,KAAK9B,SAAW8B,KAAK/B,aAAeisF,EAAKtwF,IAAMswF,EAAKzwF,OAWvE,OANCqC,EADGouF,EAAKqD,SAASqF,SACT5yF,KAAK/B,YAAcisF,EAAKtwF,IAAM8B,GAAYmD,EAG1CmB,KAAK/B,YAAcvC,EAAWwuF,EAAKzwF,OAASoF,EAG9C,IAAY/C,EAAO,IASpB,YAAAskH,gBAAP,SAAuBtkH,GACtB,IAGIJ,EAHAwuF,EAAalqF,KAAKkqF,KAElBrrF,GAAemB,KAAK9B,SAAW8B,KAAK/B,aAAeisF,EAAKtwF,IAAMswF,EAAKzwF,OAUvE,OANCiC,EADGwuF,EAAKqD,SAASqF,SACN1I,EAAKtwF,KAAOkC,EAAQkE,KAAK/B,YAAcY,GAGtC/C,EAAQkE,KAAK/B,YAAcY,EAAMqrF,EAAKzwF,MAG5C,IAAYiC,EAAU,IAQvB,YAAA80F,eAAP,WACC,IAAInyF,EAAiB2B,KAAK4+G,YACtB3gH,EAAqB+B,KAAK/B,WAG1BY,EAFmBmB,KAAK9B,SAECD,EAC7B+B,KAAKwyF,KAAK1mF,KAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUJ,GAAa1D,EAAG8D,EAAS,IAAUJ,KAAiB,IAAYA,EAAYY,EAAKR,EAAQA,IAWzI,YAAAi4F,kBAAP,SAAyBnI,EAAoBzyF,EAAkBqyF,GAC9DryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SAEtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzC,GAAI,IAAeR,EAAMZ,IAAM,IAAeY,EAAMX,IAAM4zF,EAAKzlE,QAAS,CACvE,IAAI5sB,EAAgB,IAAgBvE,KAAKwE,MAAMb,EAAMX,EAAGW,EAAMZ,GAC1D+D,EAAiB,IAA6B,IAAe8vF,EAAK9vF,QAAU8vF,EAAK9vF,OAAS,YAAQ,KAAM2B,KAAK4+G,aAE7GyB,EAAkB,IAA6BlyB,EAAK97E,YAAarS,KAAK4+G,aAC1EzwB,EAAKjlB,OAAS,EAEd,IAAI72D,EAAsB,IAA6B,IAAeguG,GAAmBA,EAAkBrgH,KAAKqS,YAAarS,KAAKggH,iBAAiB,GAEnJ7xB,EAAKriF,KAAO,IAAa,CAAExR,EAAG+X,EAAc,IAAUvW,GAAQvB,EAAG8X,EAAc,IAAUvW,KAAY,IAAa,CAAExB,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAEzKkE,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAWnC,YAAA66F,kBAAP,SAAyBlI,EAAgB3yF,EAAkBqyF,GAE1DryF,IAAuBqyF,EAAcryF,GAAY2yF,EAAKhtE,SAEtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzC,GAAI2yF,EAAK3lE,QAAS,CACjB,IAAIrqB,EAAiB2B,KAAK4+G,YACtB9iH,EAAgB,IAAgBvE,KAAKwE,MAAMb,EAAMX,EAAGW,EAAMZ,GAC1Dq9F,EAAqBtJ,EAAKlyF,OAC1BkyF,EAAKiH,SACRqC,GAAcA,GAEftJ,EAAKnlB,OAAS,EACdmlB,EAAKviF,KAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAAY,IAAa,CAAExB,GAAI+D,EAASs5F,GAAc,IAAU77F,GAAQvB,GAAI8D,EAASs5F,GAAc,IAAU77F,KAG7LkE,KAAK02F,iBAAiBrI,EAAM3yF,EAAU,EAAG,IAWnC,YAAA86F,aAAP,SAAoB5O,EAAgBlsF,EAAkBqyF,GACrD,IAAI1sE,EAAW,GACXumE,aAAkB,KACrBvmE,EAAWumE,EAAOvmE,UAGnB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EAEjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GACrC2C,EAAiB2B,KAAK4+G,YACtB9iH,EAAgB,IAAgBvE,KAAKwE,MAAMb,EAAMX,EAAGW,EAAMZ,GAE9DY,EAAQ,CAAEZ,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,IAE9DkE,KAAK+1F,aAAanO,EAAQ1sF,GAE1B8E,KAAK02F,iBAAiB9O,EAAQlsF,EAAU,EAAG,IAWrC,YAAAu0F,mBAAP,SAA0BlrF,EAA2BrJ,EAAkBqyF,EAAqB1sE,GAEtF,IAAeA,KACnBA,EAAWtc,EAAMsc,UAGlB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EAEjDtc,EAAM06G,YAAYz/G,KAAKsxF,gBAAgB51F,GAAWsE,KAAK4+G,aACvD75G,EAAMmkE,OAAS,EAEflpE,KAAK02F,iBAAiB3xF,EAAOrJ,EAAUsE,KAAKy1F,iBAAkBz1F,KAAK01F,mBAU7D,YAAAvoB,aAAP,SAAoBjyE,GACnB,OAAO,GAQR,sBAAW,yBAAU,C,IAarB,WACC,OAAO8E,KAAKujD,iBAAiB,e,IAd9B,SAAsB1tD,GAEjBmK,KAAKopD,iBAAiB,aAAcvzD,KACvCmK,KAAK21F,sBACD31F,KAAKkqF,MACRlqF,KAAKkqF,KAAK0D,qB,gCAiBb,sBAAW,uBAAQ,C,IAanB,WACC,OAAO5tF,KAAKujD,iBAAiB,a,IAd9B,SAAoB1tD,GAEfmK,KAAKopD,iBAAiB,WAAYvzD,KACrCmK,KAAK21F,sBACD31F,KAAKkqF,MACRlqF,KAAKkqF,KAAK0D,qB,gCAsBN,YAAA8D,qBAAP,SAA4B5D,EAAuBC,EAAqB1vF,EAA2BgU,EAAgCC,GAClI,IAAIxG,EAAe,GACnB,GAAI,IAAegiF,IAAkB,IAAeC,GAAc,CAE5D,IAAe1vF,KACnBA,EAAS2B,KAAK3B,QAGfyvF,EAAgB,IAAUA,EAAe9tF,KAAKkqF,KAAKzwF,QACnDs0F,EAAc,IAAUA,EAAa/tF,KAAKkqF,KAAKtwF,MAE7Bk0F,IACjBC,EAAcD,GAGf,IAAI8wB,EAAsB,IAA6BvgH,EAAQ2B,KAAK4+G,aAChEC,EAA2B,IAA6BxsG,EAAarS,KAAK4+G,aAAa,GAEvF3gH,EAAqB+B,KAAKsxF,gBAAgBxD,GAG1CjvF,EAFmBmB,KAAKsxF,gBAAgBvD,GAEf9vF,EAE7B6N,EAAO,IAAU7N,EAAYY,EAAK+/G,EAAaC,EAAkBD,EAAatsG,GAG/E,OAAOxG,GAQD,YAAAgrF,WAAP,WACC,OAAO,IAAI,IAQL,YAAAlI,WAAP,SAAkB1E,GACjB,OAAO,IAAI,GAAiBA,IAQtB,YAAAgN,YAAP,WACC,OAAO,IAAI,IAWL,YAAA3F,gBAAP,SAAuBr2F,GACtB,IAAIY,EAAQ,IAAsB,IAAeZ,GAAQ8E,KAAK/B,WAAY+B,KAAK9B,UAC/E,OAAO8B,KAAKm2F,sBAAsBr6F,EAAQkE,KAAK/B,YAAc,IAAM+B,KAAKowF,aAE1E,EAniBA,CAA0C,IA2iB1C,IAAShxF,kBAAT,qBAAqD,G,cChiBrD,eAqCC,mBAGC,cAAO,K,OApBE,EAAAsoF,OAAS,IAAI,IAKhB,EAAAs4B,gBAA0B,EAgBhC,EAAKjlE,UAAY,qBACjB,EAAKyQ,YAAa,EAClB,EAAKvtD,YAAc,GACnB,EAAKC,SAAW,IAChB,EAAKmyF,gBAAkB,GACvB,EAAKiwB,SAAW,UAChB,EAAKC,WAAa,GAClB,EAAK/0D,YAAa,EAClB,EAAKgW,OAAS,OAEd,EAAKnjE,OAAS,YAAQ,KAEtB,EAAKm0F,KAAK3hC,cAAgB,EAE1B,EAAKyyB,OAAOriC,SAASwK,iBAAmB,SAExC,EAAKvC,WAAW1qD,KAAK,EAAKkpF,QAE1B,EAAK/9B,a,EAqiBP,OAhmBwC,iBAmEhC,YAAAU,SAAP,WAEKrqD,KAAK46E,OAAS56E,KAAK46E,MAAM/wC,SAC5B7pC,KAAK46E,MAAMvwB,WAGZ,YAAMA,SAAQ,YAQf,sBAAW,yBAAU,C,IAArB,WACC,OAAOrqD,KAAK4+G,YAAc5+G,KAAK6+G,kB,gCAUhC,sBAAW,qBAAM,C,IAOjB,WACC,OAAO7+G,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAO,EAAO,IAAI,I,gCAe5D,sBAAW,0BAAW,C,IAAtB,WACC,OAAO,IAA6BmK,KAAK3B,OAAQ2B,KAAKggH,kBAAoB,G,gCAU3E,sBAAW,0BAAW,C,IAOtB,WACC,IAAIplC,EAAQ56E,KAAK46E,MACbvoE,EAAcrS,KAAKujD,iBAAiB,eACxC,GAAGq3B,EACF,GAAK,IAAevoE,IASnB,GAAIA,aAAuBknC,EAAA,GAAWqhC,EAAO,CAC5C,IAAIslC,EAAKtlC,EAAMslC,GACXrqH,EAAQwc,EAAYxc,MACxBA,EAAQ0B,KAAKM,IAAIqoH,EAAKrqH,EAAOqqH,EAAK3oH,KAAKK,IAAIgjF,EAAM8yB,cAAcxnD,YAAa00B,EAAM8yB,cAActnD,aAAe85D,EAC/G7tG,EAAc,YAAgB,IAARxc,SAZvBwc,EAAcuoE,EAAMvoE,uBAEOknC,EAAA,GAAWqhC,IACrCvoE,EAAc,YAAQA,EAAYxc,MAAQ+kF,EAAMulC,oBAAsB,MAazE,OAAO9tG,G,IA5BR,SAAuBxc,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAO,EAAO,IAAI,I,gCAmCjE,sBAAW,+BAAgB,C,IAA3B,WACC,OAAO,IAA6BmK,KAAKqS,YAAarS,KAAKggH,kBAAoB,G,gCAWzE,YAAAnyB,gBAAP,SAAuBnyF,EAAkBs6F,GACxC,IAAI33F,EAAiB,IAAiB2B,KAAKwxF,qBAAqB91F,GAAW,EAAGwoB,KAC9E,MAAO,CAAE5pB,EAAG+D,EAAS,IAAU2B,KAAKugH,WAAYhmH,EAAG8D,EAAS,IAAU2B,KAAKugH,aAQrE,YAAA/vB,eAAP,WACCxwF,KAAKwyF,KAAK1mF,KAAO,IAAa,CAAExR,EAAG0F,KAAK6+G,iBAAmB,IAAU7+G,KAAKugH,WAAYhmH,EAAGyF,KAAK6+G,iBAAmB,IAAU7+G,KAAKugH,aAAgB,IAAa,CAAEjmH,EAAG0F,KAAK4+G,YAAc,IAAU5+G,KAAKugH,WAAYhmH,EAAGyF,KAAK4+G,YAAc,IAAU5+G,KAAKugH,aAErP,IAAI1lD,EAAQ76D,KAAKkqF,KAAKrvB,MACtBA,EAAMuH,OAAS,OACfvH,EAAMpP,iBAAmB,SACzBoP,EAAMnP,eAAiB,SACvBmP,EAAMtgE,GAAMyF,KAAKowF,WAAa,EAC9B,IAAIrpE,EAAmB,GACnB/mB,KAAKm3F,SACHn3F,KAAKs1F,SACTvuE,GAAY,IAIT/mB,KAAKs1F,SACRvuE,GAAY,IAGd8zC,EAAM9zC,SAAWA,GAWX,YAAAuvE,kBAAP,SAAyBnI,EAAYzyF,EAAkBqyF,GACtDryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SACtD,IACIvV,EADA5Q,EAAgB8E,KAAK6tF,gBAAgBnyF,GAErC2C,EAAiB,IAAkBnD,GACnC+C,EAAqB+B,KAAK/B,WAC1BC,EAAmB8B,KAAK9B,SAE5B,GAAI,IAAeG,IAAW8vF,EAAKzlE,QAAS,CAC3C,IAAIkyD,EAAQ56E,KAAK46E,MACbikB,EAAQjkB,EAAMozB,MAAM7tD,SAAS,GAC7BhiD,EAAQ,EAERiuF,EAASxR,EAAMwR,OAAOjsC,SAAS,GAQnC,GANIisC,IACHjuF,EAAQiuF,EAAOpI,UAAU7nF,QAKL,YAAjB6D,KAAKsgH,UAA0BniH,EAAQ,GAAKiuF,GAAUyS,GAASA,aAAiB,GAAc,CACjG,IAAI2hB,EAAe3hB,EAAMtR,SAASY,KAAKltC,SAAS5/B,SAE5CvlB,EAAgB+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAS,GAAI,YAAaqgE,GAC9E10G,EAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAE1E,IAAK,IAAIO,EAAI,EAAGA,EAAI8B,EAAO9B,IAC1BP,EAAQ+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAS9jD,GAAI,YAAamkH,GAClE10G,GAAQ,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAG5EA,EAAQ+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAShiD,EAAQ,GAAI,YAAa0gG,EAAMtR,SAASiI,iBACzF1pF,GAAQ,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,UAG3EgQ,EAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUJ,GAAa1D,EAAG8D,EAAS,IAAUJ,KAAiB,IAAYA,EAAYC,EAAWD,EAAYI,EAAQA,GAExJ8vF,EAAKriF,KAAOA,EAGb9L,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAWnC,YAAAu0F,mBAAP,SAA0BlrF,EAA2BrJ,EAAkBqyF,EAAqB1sE,GAEtF,IAAeA,KACnBA,EAAWtc,EAAMsc,UAGlB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EAEjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzCsE,KAAK+1F,aAAahxF,EAAO7J,GACzB8E,KAAK02F,iBAAiB3xF,EAAOrJ,EAAUsE,KAAKy1F,iBAAkBz1F,KAAK01F,mBAQ7D,YAAAhF,sBAAP,aAWO,YAAAvjB,aAAP,SAAoBjyE,GACnB,OAAO,GAQR,sBAAW,yBAAU,C,IAUrB,WACC,OAAO8E,KAAKujD,iBAAiB,e,IAX9B,SAAsB1tD,GAEjBmK,KAAKopD,iBAAiB,aAAcvzD,IACvCmK,KAAK21F,uB,gCAgBP,sBAAW,uBAAQ,C,IAUnB,WACC,OAAO31F,KAAKujD,iBAAiB,a,IAX9B,SAAoB1tD,GAEfmK,KAAKopD,iBAAiB,WAAYvzD,IACrCmK,KAAK21F,uB,gCAgBP,sBAAW,wBAAS,C,IAQpB,WACC,OAAO31F,KAAKujD,iBAAiB,c,IAT9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAa,IAAqBvzD,IACxDmK,KAAK21F,uB,gCAsBN,sBAAW,uBAAQ,C,IAOnB,WAEC,OADiB31F,KAAK46E,MAAMozB,MAAM7tD,SAAS,aACvB,GACZngD,KAAKujD,iBAAiB,YAGtB,W,IAbT,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCA0BnC,YAAA67F,qBAAP,SAA4B5D,EAAuBC,GAClD,IAUIjiF,EAVA+yG,EAAmB7+G,KAAK6+G,iBACxBD,EAAc5+G,KAAKowF,WAAayuB,EAChCxsG,EAAsB,IAAiBrS,KAAKwxF,qBAAqB1D,GAAgB+wB,EAAkBD,GACnGvgH,EAAiB,IAAiB2B,KAAKwxF,qBAAqBzD,GAAc8wB,EAAkBD,GAG5F3gH,EAAqB+B,KAAK/B,WAE1BY,EADmBmB,KAAK9B,SACCD,EAIzB28E,EAAQ56E,KAAK46E,MACbikB,EAAQjkB,EAAMozB,MAAM7tD,SAAS,GAC7BisC,EAASxR,EAAMwR,OAAOjsC,SAAS,GAE/BhiD,EAAQ,EAOZ,GANIiuF,IACHjuF,EAAQiuF,EAAOpI,UAAU7nF,QAKL,YAAjB6D,KAAKsgH,UAA0BniH,EAAQ,GAAKiuF,GAAUyS,GAASA,aAAiB,GAAc,CACjG,IAAI2hB,EAAe3hB,EAAMtR,SAASY,KAAKltC,SAAS5/B,SAE5CvlB,EAAgB+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAS,GAAI,YAAaqgE,GAC9E10G,EAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAE1E,IAAK,IAAIO,EAAI,EAAGA,EAAI8B,EAAO9B,IAC1BP,EAAQ+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAS9jD,GAAI,YAAamkH,GAClE10G,GAAQ,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAG5EA,EAAQ+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAShiD,EAAQ,GAAI,YAAa0gG,EAAMtR,SAASiI,iBACzF1pF,GAAQ,IAAa,CAAExR,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KAE3EgQ,GAAQ,IAAa,CAAExR,EAAG+X,EAAc,IAAUvW,GAAQvB,EAAG8X,EAAc,IAAUvW,KAErF,IAASO,EAAI8B,EAAQ,EAAG9B,GAAK,EAAGA,IAC/BP,EAAQ+iG,EAAMljG,SAASywF,EAAOpI,UAAU7jC,SAAS9jD,GAAI,YAAamkH,GAClE10G,GAAQ,IAAa,CAAExR,EAAG+X,EAAc,IAAUvW,GAAQvB,EAAG8X,EAAc,IAAUvW,UAItFgQ,EAAO,IAAU7N,EAAYY,EAAKR,EAAQgU,GAE3C,OAAOvG,GASD,YAAAkiF,mBAAP,SAA0Bc,GAGzB,IAAI5B,EAAsC4B,EAAU5B,UAChDE,EAAoC0B,EAAU1B,QAC9CL,EAAsC+B,EAAU/B,UAEhDoF,EAAqBrD,EAAUqD,WAC/BC,EAAmBtD,EAAUsD,SAEjClF,EAAU7uF,OAAS9G,KAAK6B,IAAI+4F,EAAW53F,GACvC6yF,EAAQ/uF,OAAS9G,KAAK6B,IAAIg5F,EAAS73F,GACnCwyF,EAAU1uF,OAAS9G,KAAK6B,IAAIg5F,EAAS73F,GACrCwyF,EAAU16E,YAAc9a,KAAK6B,IAAI+4F,EAAW53F,IAStC,YAAAkzF,mBAAP,SAA0BqB,GACzBA,EAAU5B,UAAY,IAAIuzB,GAAA,EAC1B3xB,EAAU1B,QAAU,IAAIqzB,GAAA,EACxB3xB,EAAU/B,UAAY,IAAI0zB,GAAA,GAUpB,YAAAhwB,cAAP,WAEC,GADiBzwF,KAAKkqF,KACZ,CAET,IAKIq2B,EAAoBvgH,KAAKugH,UACzBA,EAAY,IACfA,GAAa,KAEd,IAAIG,EAAyC,YACxCH,EAAY,IAAMA,EAAY,KAASA,EAAY,KAAOA,EAAY,OAC1EG,EAAqB,cAEtB1gH,KAAKkqF,KAAKuG,cAAciwB,EAAoB,CAAEpmH,GAZ3B,IAYmCC,GAXnC,IAW2C+B,MAV5CqkH,IAUwDpkH,OATxDokH,QAoBb,YAAApqB,kBAAP,SAAyBlI,EAAgB3yF,EAAkBqyF,GAC1DryF,IAAuBqyF,EAAcryF,GAAY2yF,EAAKhtE,SAEtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzC,GAAI2yF,EAAK3lE,QAAS,CACjB,IAAI5sB,EAAgB,IAAqBkE,KAAKugH,UAAY,IACtDzkH,EAAQ,IAAMvE,KAAKQ,MAAM+D,EAAQ,IACpCuyF,EAAKh7B,cAAe,EAGpBg7B,EAAKh7B,cAAe,EAErB,IAAIskC,GAActJ,EAAKlyF,OACnBkyF,EAAKiH,SACRqC,IAAe,GAEhBtJ,EAAKviF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGq9F,EAAa,IAAU77F,GAAQvB,EAAGo9F,EAAa,IAAU77F,KAEvHkE,KAAK+1F,aAAa1H,EAAMnzF,GAExB8E,KAAK02F,iBAAiBrI,EAAM3yF,EAAU,EAAG,IAYnC,YAAA86F,aAAP,SAAoB5O,EAAgBlsF,EAAkBqyF,GACrD,IAAI1sE,EAAW,GACXumE,aAAkB,KACrBvmE,EAAWumE,EAAOvmE,UAGnB3lB,IAAuBqyF,EAAcryF,GAAY2lB,EAEjD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzCsE,KAAK+1F,aAAanO,EAAQ1sF,GAE1B8E,KAAK02F,iBAAiB9O,EAAQlsF,EAAU,EAAG,IAUrC,YAAA81F,qBAAP,SAA4B91F,GAC3B,IAAI06F,EACAlM,EAAalqF,KAAKkqF,KAClBqG,EAAiBrG,EAAKqG,eACtBl+E,EAAcrS,KAAK6+G,iBASvB,OANCzoB,EADGlM,EAAKqD,SAASqF,UACH1I,EAAKtwF,IAAM8B,GAAY60F,EAAiBl+E,GAGxC3W,EAAWwuF,EAAKzwF,OAAS82F,EAAiBl+E,EAGlD,IAAY+jF,EAAY,IAUzB,YAAA7E,gBAAP,SAAuBr2F,GACtB,IAAIk7F,EAAc,IAAkBl7F,GAAS8E,KAAK6+G,iBAClD,OAAO7+G,KAAKm2F,qBAAqBC,IASlC,sBAAW,oBAAK,C,IAQhB,WACC,OAAOp2F,KAAK0nF,OAAOxmF,O,IATpB,SAAiBrL,GAChBmK,KAAK0nF,OAAO1mF,IAAInL,EAAO,O,gCAWzB,EAhmBA,CAAwC,IAwmBxC,IAASuJ,kBAAT,mBAAmD,GCtqBnD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,qBACjB,EAAK4O,a,EAGP,OAhBwC,iBAgBxC,EAhBA,CAAwC,IA4FxC,eAkFC,mBAGC,cAAO,KA7CE,EAAAoqD,eAA8C,GAK9C,EAAAC,eAA4C,GA0B/C,EAAAmM,oBAA8B,EAM9B,EAAAD,GAAa,EASnB,EAAKnlE,UAAY,aAEjB,EAAK98C,YAAc,GACnB,EAAKC,SAAW,IAEhB,EAAKG,OAAS,YAAQ,IACtB,EAAKgU,YAAc,EAEnB,IAAIuuG,EAAiB,EAAKlT,cAAcpkC,YAAYb,EAAA,G,OACpDm4C,EAAeh4D,aAAc,EAC7Bg4D,EAAep/C,OAAS,WACxBo/C,EAAen/C,MAAQ,SACvBm/C,EAAex+C,OAAS,SAExB,EAAK0pB,gBAAgB3+E,OAASyzG,EAC9B,EAAKA,eAAiBA,EACtB,EAAKn5B,iBAAiBt6E,OAASyzG,EAC/B,EAAKnO,qBAAuBmO,EAE5B,EAAKlM,iBAAmBkM,EAExB,EAAK1+B,eAAeljF,OAAOmgD,GAAG,iBAAkB,EAAKuK,WAAY,GAAM,GAEvE,EAAKorD,YAAc8L,EAAet3C,YAAY6L,GAAA,GAC9C,EAAK2/B,YAAYlsD,aAAc,EAC/B,EAAKksD,YAAYpsF,QAAU,EAAKnoB,MAAM+I,IAAI,QAC1C,EAAKwrG,YAAYnkD,QAAU,EAG3B,EAAKhH,a,EAoUP,OAvbgC,iBA0HrB,YAAAO,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,iBAUnC,YAAA6gC,YAAV,SAAsBxrB,GACrB,YAAMwrB,YAAW,UAACxrB,GAClB,IAAIqD,EAAyBrD,EAAKqD,SAClCA,EAASC,cAAcrgF,OAASogF,EAChCA,EAAS4D,eAAehkF,OAASogF,EACjCrD,EAAK/8E,OAASnN,KAAK4gH,eACnBrzB,EAASjpB,UAMA,YAAAmxC,uBAAV,WACC,YAAMA,uBAAsB,WAC5B,IAAWz1G,KAAKmuG,MAAM9oG,YAAY,SAAC6kF,GAClCA,EAAKxgC,iBAOG,YAAAksD,uBAAV,WACC,YAAMA,uBAAsB,WAC5B,IAAW51G,KAAKguG,MAAM3oG,YAAY,SAAC6kF,GAClCA,EAAKxgC,iBAUA,YAAAyc,cAAP,SAAqB33D,GAEpB,GAAIA,IAGC,IAAeA,EAAOo1C,UAAY,IAAep1C,EAAOo1C,OAAOriD,QAClEiN,EAAOo1C,OAAOriD,KAAO,eAIlB,IAAeiN,EAAO49E,SAAW,IAAc59E,EAAO49E,SACzD,IAAK,IAAI/vF,EAAI,EAAGgV,EAAM7C,EAAO49E,OAAOjwF,OAAQE,EAAIgV,EAAKhV,IACpDmS,EAAO49E,OAAO/vF,GAAGkF,KAAOiN,EAAO49E,OAAO/vF,GAAGkF,MAAQ,cAkBpD,YAAM4kE,cAAa,UAAC33D,IAMX,YAAA87C,WAAV,WACC,YAAMA,WAAU,WAEhB,IAAIojD,EAAgB1tG,KAAK0tG,cAErB35F,EAAO,IAAiB/T,KAAK/B,WAAY+B,KAAK9B,SAAU,GACxD2iH,EAAwB,CAAEvmH,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,GAExDukH,EAAKpT,EAActnD,WAAaryC,EAAKzX,MACrCykH,EAAKrT,EAAcxnD,YAAcnyC,EAAKxX,OAEtC8V,EAAcrS,KAAKqS,YAEvB,GAAIA,aAAuBknC,EAAA,EAAS,CACnC,IAAI1jD,EAAQwc,EAAYxc,MACpBqqH,EAAK3oH,KAAKK,IAAIkpH,EAAIC,GAEtB/gH,KAAKkgH,GAAKA,EAEVrqH,EAAQ0B,KAAKM,IAAIqoH,EAAKrqH,EAAOqqH,EAAK3oH,KAAKK,IAAI81G,EAAcxnD,YAAawnD,EAActnD,aAAe85D,EACnGW,EAAY,IAAiB7gH,KAAK/B,WAAY+B,KAAK9B,SAAUrI,GAE7DmK,KAAKmgH,oBAAsBtqH,EAAQwc,EAAYxc,MAE/Cwc,EAAc,YAAgB,IAARxc,GAIvBke,EAAO,IAAyB,CAACA,EAAM8sG,IAEvC,IAAIG,EAAYzpH,KAAKK,IAAI81G,EAActnD,WAAaryC,EAAKzX,MAAOoxG,EAAcxnD,YAAcnyC,EAAKxX,QAE7F0kH,EAAkE,EAAvD,IAA6BjhH,KAAK3B,OAAQ2iH,IAAkB,EACvE3iH,EAAS4iH,EAAW,EACpBhjH,EAAa+B,KAAK/B,WAClBC,EAAW8B,KAAK9B,SAEpB8B,KAAKkhH,kBAAoB,IAA6B7uG,EAAahU,GAEnE2B,KAAK80G,YAAYhpG,KAAO,IAAU7N,EAAYC,EAAWD,EAAYI,EAAQ2B,KAAKkhH,mBAElF,IAAWlhH,KAAKguG,MAAM3oG,YAAY,SAAC6kF,GAC9BA,EAAKqD,SAAS0yB,iBACjB/1B,EAAKqD,SAAStvF,WAAaA,EAC3BisF,EAAKqD,SAASrvF,SAAWA,GAG1BgsF,EAAK5tF,MAAQ2kH,EACb/2B,EAAK3tF,OAAS0kH,EAGd/2B,EAAKqD,SAASyyB,gBAAkB3hH,KAIjC,IAAW2B,KAAKmuG,MAAM9oG,YAAY,SAAC6kF,GAClCA,EAAKqD,SAAStvF,WAAaA,EAC3BisF,EAAKqD,SAASrvF,SAAWA,EAEzBgsF,EAAK5tF,MAAQ2kH,EACb/2B,EAAK3tF,OAAS0kH,EAGd/2B,EAAKqD,SAASyyB,gBAAkB3hH,KAMjC,IAAIulD,EAAS5jD,KAAK4jD,OACdA,IACHA,EAAOtnD,MAAQ2kH,EACfr9D,EAAOrnD,OAAS0kH,EAChBr9D,EAAO3lD,WAAaA,EACpB2lD,EAAO1lD,SAAWA,GAGnB8B,KAAK4gH,eAAenuD,YAAc,CAAEn4D,EAAG+D,EAAS0V,EAAKzZ,EAAGC,EAAG8D,EAAS0V,EAAKxZ,EAAG+B,MAAO+B,EAAS0V,EAAKzX,MAAOC,OAAQ8B,EAAS0V,EAAKxX,QAC9HyD,KAAK4gH,eAAel2D,oBAQX,YAAAuhC,aAAV,WACC,OAAO,IAAI,IA0BZ,sBAAW,yBAAU,C,IAOrB,WACC,OAAOjsF,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAiC5C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAa3D,sBAAW,+BAAgB,C,IAA3B,WACC,OAAOmK,KAAKkhH,mB,gCAYb,sBAAW,0BAAW,C,IAOtB,WACC,OAAOlhH,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAgBzD,YAAAw/G,YAAP,SAAmB9nB,GAEdA,GACHA,EAASuI,mBAUJ,YAAAyf,YAAP,SAAmBhoB,GAEdA,GACHA,EAASuI,mBAIZ,EAvbA,CAAgC,IA+bhC,IAAS12F,kBAAT,WAA2C,G,cC7d3C,eAyCC,mBAGC,cAAO,KAdE,EAAAytF,MAAoC,IAAI,IAejD,EAAK9xC,UAAY,YAEjB,IAAI+4B,EAAkB,IAAIC,EAAA,EAE1B,EAAKr4B,KAAOo4B,EAAgBlK,OAAO,yBACnC,EAAKvb,OAAS,EAAK3S,KAEnB,IAAIylE,EAAc,IAAIhsC,GAAA,EACtBgsC,EAAI9iH,OAAS,EACb,EAAK8iH,IAAMA,EACX,EAAK31D,YAAa,EAElB,EAAK41D,WAAa,EAClB,EAAKC,SAAW,EAEhB,EAAK/kH,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KAEtB,EAAK8B,OAAS,YAAQ,KACtB,EAAKgU,YAAc,YAAQ,GAE3B,IAAIivG,EAAkB,IAAIC,GAAA,E,OAC1B,EAAKD,KAAOA,EAEZ,EAAKp4D,WAAW1qD,KAAK,EAAKquF,OAG1B,EAAKljC,a,EA4SP,OApX+B,iBAgFvB,YAAAU,SAAP,WACC,YAAMA,SAAQ,WACd,IAAIi3D,EAAOthH,KAAKshH,KAChBA,EAAKhlH,MAAQ0D,KAAK8xD,WAClB,IAAI54B,EAAY3hC,KAAKM,IAAImI,KAAKohH,WAAYphH,KAAKqhH,UAK/C,GAJAC,EAAK/kH,OAAS28B,EACdooF,EAAKE,SAAW,YAAQxhH,KAAKohH,WAAaloF,EAAI,KAC9CooF,EAAKG,UAAY,YAAQzhH,KAAKqhH,SAAWnoF,EAAI,KAEzCl5B,KAAKkqF,KAAM,CACd,IAAIqD,EAAuDvtF,KAAKkqF,KAAKqD,SAEjEm0B,EAAa,IAA6B1hH,KAAKqS,YAAak7E,EAASqxB,aACrE9mB,EAAa,IAA6B93F,KAAK3B,OAAQkvF,EAASqxB,aAEpE0C,EAAKhnH,EAAIonH,EACTJ,EAAK/mH,GAAM2+B,EAAI,EAEfooF,EAAKhlH,MAAQw7F,EAAK4pB,IASpB,sBAAW,kBAAG,C,IAcd,WACC,OAAO1hH,KAAK2hH,M,IAfb,SAAeR,GACVnhH,KAAK2hH,MACR3hH,KAAKoyD,cAAcpyD,KAAK2hH,MAErBR,IACHnhH,KAAK2hH,KAAOR,EACZA,EAAIh0G,OAASnN,KACbA,KAAKkpD,WAAW1qD,KAAK2iH,K,gCAqBvB,sBAAW,mBAAI,C,IAcf,WACC,OAAOnhH,KAAK4hH,O,IAfb,SAAgBN,GACXthH,KAAK4hH,OACR5hH,KAAKoyD,cAAcpyD,KAAK4hH,OAErBN,IACHthH,KAAK4hH,MAAQN,EACbA,EAAKn0G,OAASnN,KACdA,KAAKkpD,WAAW1qD,KAAK8iH,K,gCAmBvB,sBAAW,qBAAM,C,IAOjB,WACC,OAAOthH,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAkB3D,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAgBhE,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAgB5C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,gCAAiB,C,IAO5B,WACC,OAAOmK,KAAKujD,iBAAiB,sB,IAR9B,SAA6B1tD,GAC5BmK,KAAKopD,iBAAiB,oBAAqBvzD,I,gCAsBrC,YAAAgsH,UAAP,SAAiBhsH,EAAYkxC,EAAmBivB,GAE/C,GADAh2D,KAAKs5C,OAASzjD,OACD6W,GAAT7W,IACE,IAAekxC,KACnBA,EAAW,GAGR/mC,KAAKkqF,MAAM,CACd,IACI43B,EADiC9hH,KAAKkqF,KAAKqD,SACvB+D,gBAAgBtxF,KAAKkqF,KAAKyH,cAAc97F,IAC5DksH,EAAe/hH,KAAK+mB,SAEM,aAA1B/mB,KAAKgiH,mBACJF,EAAWC,IACd/hH,KAAK+mB,SAAWg7F,EAAe,KAGH,oBAA1B/hH,KAAKgiH,mBACJF,EAAWC,IACd/hH,KAAK+mB,SAAWg7F,EAAe,KAIjC/hH,KAAK81D,QAAQ,CAAEzrB,SAAU,WAAYna,GAAI4xF,GAAY/6E,EAAUivB,KAQlE,sBAAW,8BAAe,C,IAA1B,WACC,GAAIh2D,KAAKkqF,KAER,OADqClqF,KAAKkqF,KAAKqD,SAC/B6yB,gBAAgBpgH,KAAK+mB,W,gCASvC,sBAAW,oBAAK,C,IAOhB,WACC,OAAO/mB,KAAKs5C,Q,IARb,SAAiBzjD,GAChBmK,KAAK6hH,UAAUhsH,I,gCAiBhB,sBAAW,mBAAI,C,IAsBf,WACC,OAAOmK,KAAK6sF,MAAM3rF,O,IAvBnB,SAAgBgpF,GASf,GARIlqF,KAAKkqF,MAAQA,GAChBlqF,KAAK6sF,MAAM7rF,IAAIkpF,EAAM,IAAI,IAAc,CACtCA,EAAKlrF,OAAOmgD,GAAG,gBAAiBn/C,KAAKiiH,YAAajiH,MAAM,GACxDkqF,EAAKlrF,OAAOmgD,GAAG,mBAAoBn/C,KAAKiiH,YAAajiH,MAAM,GAC3DkqF,EAAKlrF,OAAOmgD,GAAG,qBAAsBn/C,KAAKiiH,YAAajiH,MAAM,GAC7DkqF,EAAKlrF,OAAOmgD,GAAG,kBAAmBn/C,KAAK0pD,WAAY1pD,MAAM,MAGvDkqF,EAAM,CACT,IAAItP,EAAgCsP,EAAKtP,MACrCA,IACH56E,KAAK+mB,SAAW6zD,EAAM38E,YAGxB+B,KAAKmN,OAAS+8E,EAAKqD,SACnBvtF,KAAKkpE,OAAS,G,gCAgBL,YAAA+4C,YAAV,WACCjiH,KAAKnK,MAAQmK,KAAKnK,OASZ,YAAAswE,cAAP,SAAqB33D,GAEhBA,GAGC,IAAeA,EAAO07E,OAAS,IAAe17E,EAAO07E,OAASlqF,KAAKkrB,IAAIizB,OAAO3vC,EAAO07E,QACxF17E,EAAO07E,KAAOlqF,KAAKkrB,IAAIg0B,OAAO1wC,EAAO07E,OAKvC,YAAM/jB,cAAa,UAAC33D,IAGtB,EApXA,CAA+Bi6D,EAAA,GA4X/B,IAASrpE,kBAAT,UAA0C,ICvc1C,YAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,qBACjB,EAAK4O,a,EAbiC,iBAAxC,CAAwC,IAAxC,IAgEA,eA8BC,mBAGC,cAAO,K,OACP,EAAK5O,UAAY,aAEjB,EAAK98C,WAAa,IAClB,EAAKC,SAAW,IAEhB,EAAKgkH,MAAQ,IAAI5gE,EAAA,EAAwB,IAAI,IAC7C,EAAK4gE,MAAMljH,OAAOmgD,GAAG,WAAY,EAAKgjE,YAAa,GAAM,GAEzD,EAAKj5D,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAK4gE,QAC3C,EAAKh5D,WAAW1qD,KAAK,EAAK0jH,MAAMjhE,UAGhC,EAAK0I,a,EAyDP,OAvGgC,iBAqDrB,YAAAO,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,iBAUnC,YAAAstC,YAAV,SAAsBh+D,GACrB,IAAIm9D,EAAkBn9D,EAAM/E,SACvBkiE,EAAKp3B,OACTo3B,EAAKp3B,KAAOlqF,KAAKguG,MAAM7tD,SAAS,KAcxB,YAAAwmB,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAGM,SAAL1L,EACD,EAEM,SAAL0L,GACA,EAGD,YAAMkkE,YAAW,UAAC5vE,EAAG0L,IAI/B,EAvGA,CAAgC,IA+GhC,IAASrD,kBAAT,WAA2C,GC9J3C,mBAyCC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,wBAEjB,EAAK4O,a,EA2OP,OAxR2C,iBAsDnC,YAAA+H,QAAP,WACC,OAAO1xD,KAAK2I,MAAM+oD,WAWZ,YAAAzF,KAAP,SAAYllB,EAAmButC,EAAgB8tC,EAAkBhX,GAKhE,OAJKA,IACJA,EAAS,CAAC,UAGJ,YAAMn/C,KAAI,UAACllB,EAAUutC,EAAO,EAAG82B,IAQhC,YAAAj1C,cAAP,SAAqBtgE,EAAgBu5F,GAC/BA,IACAv5F,EACHmK,KAAKm9G,gBAAgB,QAASn9G,KAAKjH,OAAL,MAAqBlD,MAAO,EAAG,GAG7DmK,KAAKm9G,gBAAgB,QAAS,EAAG,EAAG,IAItC,YAAMhnD,cAAa,UAACtgE,EAAOu5F,IAUrB,YAAAvrB,KAAP,SAAY98B,EAAmButC,EAAgB82B,GAI9C,OAHKA,IACJA,EAAS,CAAC,UAEJ,YAAMvnC,KAAI,UAAC98B,EAAUutC,EAAO82B,IAQpC,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOprG,KAAKwqC,WAAWo9D,U,IARxB,SAAoB/xG,GACnBmK,KAAKolD,YAAY,WAAYvvD,I,gCAiBvB,YAAAkvF,mBAAP,SAA0BV,GACzBrkF,KAAK4B,UAAUmjF,mBAAmBV,EAAQrkF,OAQ3C,sBAAW,6BAAc,C,IAazB,WACC,OAAOA,KAAKyqF,iB,IAdb,SAA0B50F,GACzBmK,KAAKyqF,gBAAkB50F,EACnBA,EAAMkP,QACTlP,EAAMkP,MAAMoqD,SAAWnvD,MAEpBnK,EAAM2uF,aACT3uF,EAAM2uF,WAAWr1B,SAAWnvD,O,gCAiB9B,sBAAW,mBAAI,C,IAAf,sBACC,IAAKA,KAAKouF,MAAO,CAChB,IAAI,EAAOpuF,KAAK4B,UAAU0sF,MAAMnrF,SAChCnD,KAAKouF,MAAQ,EACbpuF,KAAKujF,UAAU,GACfvjF,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAK2O,OAASnN,KAAK4B,UAAUygH,eAE7BriH,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,EAAKngD,WACR,EAAKA,UAAU0sF,MAAMruC,YAAY,OAKnC,EAAK4L,QAAU7rD,KAAK6rD,QAErB,OAAO7rD,KAAKouF,O,gCASb,sBAAW,oBAAK,C,IAAhB,sBACC,IAAKpuF,KAAKqjF,OAAQ,CACjB,IAAI,EAAQrjF,KAAK4B,UAAU0hF,OAAOngF,SAClCnD,KAAKujF,UAAU,GACfvjF,KAAKqjF,OAAS,EAEdrjF,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAM2O,OAASnN,KAAK4B,UAAU0gH,gBAE9BtiH,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,EAAKngD,WACR,EAAKA,UAAU0hF,OAAOrjC,YAAY,OAIpC,EAAM4L,QAAU7rD,KAAK6rD,QAEtB,OAAO7rD,KAAKqjF,Q,gCASb,sBAAW,oBAAK,C,IAAhB,sBACC,IAAKrjF,KAAKuiH,OAAQ,CAEjB,IAAI,EAAYviH,KAAK4B,UAEjB,EAAQ,EAAU4gH,OAAOr/G,SAC7BnD,KAAKujF,UAAU,GAEfvjF,KAAKuiH,OAAS,EACdviH,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAM2O,OAAS,EAAUs1G,gBAEzBziH,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WACjC,EAAUygE,OAAOviE,YAAY,OAI9B,EAAM4L,QAAU7rD,KAAK6rD,QAGjB,EAAUi8B,kBACb9nF,KAAK4B,UAAUi7C,KAAO,OACtB,EAAMA,KAAO,WACb,EAAMsU,WAAY,IAGlBnxD,KAAK4B,UAAUi7C,KAAO,OACtB,EAAMA,KAAO,WACb,EAAMsU,WAAY,GAIf,EAAMA,YACT,EAAMnyD,OAAOmgD,GAAG,SAAS,SAACyZ,GACzB,EAAMkC,YAAc,EAAUhC,eAAe,EAAUqwB,eAAgB,UACrEz8E,GAAW,GACd,EAAM1N,OAAOmgD,GAAG,QAAQ,SAACyZ,GACxB,EAAMkC,YAAc,UAClBpuD,GAAW,IAEX,EAAM+oD,YACT,EAAMz2D,OAAOmgD,GAAG,QAAQ,SAACyZ,GACxB,EAAMkC,YAAc,EAAUhC,eAAe,EAAUqwB,eAAgB,UACrEz8E,GAAW,GACd,EAAM1N,OAAOmgD,GAAG,OAAO,SAACyZ,GACvB,EAAMkC,YAAc,UAClBpuD,GAAW,IAGhB,OAAO1M,KAAKuiH,Q,gCAQb,sBAAW,6BAAc,C,IAOzB,WACC,OAAOviH,KAAKwqC,WAAWkiD,gB,IARxB,SAA0B72F,GACzBmK,KAAKolD,YAAY,iBAAkBvvD,I,gCASrC,EAxRA,CAA2C,GAkX3C,eAmFC,mBACC,cAAO,KAEP,EAAKklD,UAAY,gBAEjB,EAAK2nE,kBAAmB,EAExB,EAAKtnE,OAAS,IAAIwwC,EAAA,EAClB,EAAKxwC,OAAOj3C,KAAO,EACnB,EAAKqnD,YAAa,EAClB,EAAKy7B,kBAAmB,EAExB,IAAIw7B,EAAkB,EAAKn5C,YAAYb,EAAA,GACvCg6C,EAAgB75D,aAAc,EAC9B65D,EAAgBj3D,YAAa,EAC7B,EAAKi3D,gBAAkBA,EAEvB,IAAIJ,EAAiB,EAAK/4C,YAAYb,EAAA,GACtC45C,EAAez5D,aAAc,EAC7By5D,EAAe72D,YAAa,EAC5B62D,EAAe7gD,OAAS,OACxB,EAAK6gD,eAAiBA,EAEtB,IAAIC,EAAkB,EAAKh5C,YAAYb,EAAA,G,OACvC65C,EAAgB15D,aAAc,EAC9B05D,EAAgB92D,YAAa,EAC7B82D,EAAgB9gD,OAAS,OACzB,EAAK8gD,gBAAkBA,EAEvB,EAAKK,aAAc,EAEnB,EAAKl7B,iBAAiBpjB,UAGtB,EAAK0iB,mBAAqB,GAEP,EAAKr6B,aACX2J,iBAAmB,IAGhC,EAAK8yB,eAAiB,mDAEtB,EAAKx/B,a,EAyjBP,OAtrBmC,iBAqIxB,YAAAi5D,YAAV,WACC,OAAO,IAAIr7C,EAAA,GAQF,YAAAyvB,WAAV,WACC,OAAO,IAAI,IAQF,YAAAE,YAAV,WACC,OAAO,IAAI9iB,EAAA,GAgCZ,sBAAW,qBAAM,C,IAAjB,WACC,IAAKp0E,KAAK6iH,QAAS,CAClB,IAAIl6G,EAAQ3I,KAAK4iH,cAEjBj6G,EAAM8+C,eAAgB,EACtBznD,KAAKkpD,WAAW1qD,KAAKmK,GACrB3I,KAAK8iH,UAAUn6G,GAEf3I,KAAK6iH,QAAU,IAAIvhE,EAAA,EAAa34C,GAChC3I,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAK6iH,UAE5C,OAAO7iH,KAAK6iH,S,gCA6Bb,sBAAW,oBAAK,C,IAAhB,WACC,IAAK7iH,KAAK+2F,OAAQ,CACjB,IAAI1I,EAAOruF,KAAKg3F,aAChB3I,EAAK5mC,eAAgB,EACrBznD,KAAKkpD,WAAW1qD,KAAK6vF,GACrBruF,KAAK+iH,SAAS10B,GAEdruF,KAAK+2F,OAAS,IAAIz1C,EAAA,EAAa+sC,GAC/BruF,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAK+2F,SAE5C,OAAO/2F,KAAK+2F,Q,gCAgCb,sBAAW,qBAAM,C,IAAjB,WACC,IAAK/2F,KAAKi3F,QAAS,CAClB,IAAIlyF,EAAQ/E,KAAKk3F,cACjBnyF,EAAM0iD,eAAgB,EACtBznD,KAAKkpD,WAAW1qD,KAAKuG,GACrB/E,KAAKgjH,UAAUj+G,GAEf/E,KAAKi3F,QAAU,IAAI31C,EAAA,EAAav8C,GAChC/E,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKi3F,UAE5C,OAAOj3F,KAAKi3F,S,gCASH,YAAAvS,eAAV,WACC,OAAO,IAAI,IASF,YAAAo+B,UAAV,SAAoBn6G,KAIV,YAAAq6G,UAAV,SAAoBj+G,GACnBA,EAAMwd,KAAO,mDACbxd,EAAMymD,YAAa,EACnBzmD,EAAMu+D,QAAQ,EAAG,EAAG,EAAG,IAGd,YAAAy/C,SAAV,SAAmBh+G,KASZ,YAAAkjF,kBAAP,WACCjoF,KAAKo7C,OAAOzC,QACR34C,KAAK+rF,UACR/rF,KAAK+rF,SAASpzC,QAEf,YAAMsvC,kBAAiB,YASjB,YAAAtD,oBAAP,SAA2Bx1B,GAE1B,IAAIxmD,EAAQwmD,EAASxmD,MAEjBA,SACe+D,GAAd/D,EAAM+yC,KACL17C,KAAK+rF,UACH,IAAepjF,EAAM0lD,UACzB1lD,EAAM0lD,OAASruD,KAAKo7C,OAAOh3C,QAE5BuE,EAAM+yC,KAAO17C,KAAK+rF,SAAS3nF,OACvB,IAAeuE,EAAMioD,eACxBjoD,EAAM+yC,KAAKk7D,kBAAoBjuG,EAAMioD,aAElCjoD,EAAM0lD,kBAAkBpR,EAAA,IAC3Bt0C,EAAM+yC,KAAK2S,OAAS1lD,EAAM0lD,OAC1B1lD,EAAM+yC,KAAKA,KAAO/yC,EAAM0lD,SAIzB1lD,EAAM+yC,KAAO17C,KAAKo7C,OAAOh3C,OAI1BpE,KAAKo7C,OAAOq9B,aAAez4E,KAAKo7C,OAAOj3C,UAGpBuI,GAAhB/D,EAAM0lD,SACT1lD,EAAM0lD,OAAS1lD,EAAM+yC,OAKvB,YAAMipC,oBAAmB,UAACx1B,GAEtBxmD,GACHwmD,EAASk3B,QAAQn/E,MAAK,SAACpG,EAAK8mF,QACRl7E,GAAfk7E,EAAOlsC,OACVksC,EAAOlsC,KAAO/yC,EAAM+yC,WAEAhvC,GAAjBk7E,EAAOv5B,SACVu5B,EAAOv5B,OAAS1lD,EAAM0lD,WAKzBruD,KAAKilF,kBAAkB91B,IAQjB,YAAAgzC,aAAP,WACC,YAAMA,aAAY,WACdniG,KAAK46E,OACR56E,KAAK46E,MAAM2H,cAUH,YAAA0gC,cAAV,SAAwBj/B,GACvB,IAAK,IAAI3nF,EAAI,EAAGgV,EAAM2yE,EAAU7nF,OAAQE,EAAIgV,EAAKhV,IAAK,CACrD,IAEI0I,EAF8Bi/E,EAAU3nF,GAEvB0I,MAErB,GAAIA,EAAO,CAENA,EAAM8kC,SACT9kC,EAAMslD,WAGP,IAAI64D,EAAKn+G,EAAMquD,eACVruD,EAAM8mD,UACVq3D,EAAK,GAGFn+G,EAAMqiB,OAAS87F,EAAK,GAAKljH,KAAK+hE,UAAY,IAC7Ch9D,EAAMxK,GAAKyF,KAAK+hE,UAAY,EAAImhD,EAAK,GAGtC,IAAIC,EAAYnjH,KAAKojH,aAAa/mH,EAAI,EAAG2nF,GAErC5nF,EAAiB2I,EAAMqiB,OAAS87F,EAEhCC,GACCA,EAAU5oH,EAAI6B,IACjB+mH,EAAU5oH,EAAI6B,MAQT,YAAAinH,eAAV,SAAyBr/B,GAIxB,IAFA,IAAIs/B,EAActjH,KAAK+hE,UAAY,EAE1B1lE,EAAI2nF,EAAU7nF,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAC/C,IAEI0I,EAF8Bi/E,EAAU3nF,GAEvB0I,MAErB,GAAIA,EAAO,CACNA,EAAM8kC,SACT9kC,EAAMslD,WAGP,IAAI64D,EAAKn+G,EAAMquD,eACVruD,EAAM8mD,UACVq3D,EAAK,GAGF7mH,GAAK2nF,EAAU7nF,OAAS,IAC3BmnH,GAAeJ,EAAK,GAGjBn+G,EAAMqiB,OAAS87F,EAAKI,IACvBv+G,EAAMxK,EAAI+oH,EAAcJ,EACxBI,EAAcv+G,EAAMxK,MAad,YAAA6oH,aAAV,SAAuBz7G,EAAeq8E,GACrC,GAAIA,EAAU7nF,QAAUwL,EAAO,CAC9B,IAAI47G,EAAkCv/B,EAAUr8E,GAChD,GAAI47G,EACH,OAAIA,EAAax+G,OACZw+G,EAAa13D,QACT03D,EAAax+G,MAOd/E,KAAKojH,aAAaz7G,EAAQ,EAAGq8E,KAcxC,sBAAW,qBAAM,C,IAOjB,WACC,OAAOhkF,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAkBnC,YAAAkvF,mBAAP,SAA0BV,EAAmBl1B,GAC5C,IAAWk1B,EAAOjuE,SAAS/Q,YAAY,SAACspD,GACvC,IAAIhmD,EAAwBwmD,EAASxmD,MAErCgmD,EAAMjC,aAAaliB,WAAWkR,KAAO/yC,EAAM+yC,KAC3CiT,EAAMjC,aAAaliB,WAAW6jB,OAAS1lD,EAAM0lD,OAC7CM,EAAMjC,aAAaliB,WAAWomB,YAAcjoD,EAAMioD,YAClDjC,EAAMjC,aAAaliB,WAAWqmB,cAAgBloD,EAAMkoD,cAEpDlC,EAAMjT,KAAO/yC,EAAM+yC,KACnBiT,EAAMN,OAAS1lD,EAAM0lD,OACrBM,EAAMiC,YAAcjoD,EAAMioD,YAC1BjC,EAAMkC,cAAgBloD,EAAMkoD,mBAEVnkD,GAAdiiD,EAAMjT,OACTiT,EAAMvC,YAAa,GAGpB,IAAIw4B,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQp0C,EAAM+yC,KAC7BkpC,EAAeoB,UAAYr9E,EAAM+yC,KAEjCiT,EAAMa,YAAY7mD,EAAM3J,OAAOmgD,GAAG,mBAAmB,SAACyZ,GAClC,QAAfA,EAAGvuB,WAENskB,EAAMvC,YAAa,EAEduC,EAAMyH,WACVzH,EAAMjT,KAAO/yC,EAAM+yC,MAEpBiT,EAAMjC,aAAaliB,WAAWkR,KAAO/yC,EAAM+yC,KAC3CkpC,EAAe7nC,MAAQp0C,EAAM+yC,KAC7BkpC,EAAeoB,UAAYr9E,EAAM+yC,MAGf,UAAfkd,EAAGvuB,WACDskB,EAAMyH,WACVzH,EAAMN,OAAS1lD,EAAM0lD,QAEtBM,EAAMjC,aAAaliB,WAAW6jB,OAAS1lD,EAAM0lD,eAE5C3hD,GAAW,QAUN,YAAA82G,iBAAV,SAA2Br/D,GAA3B,WAEKgL,EADwBhL,EAAM3iD,OACyB2tD,SAC3D,IAAWA,EAASk3B,QAAQhhF,YAAY,SAACtO,GACxC,IAAIlB,EAAQkB,EAAE,GACd,EAAK4wF,eAAe9xF,OAUZ,YAAA4tH,gBAAV,SAA0Bt/D,KASnB,YAAAtD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKwiH,OAAOvhE,SAASJ,SAAS//B,EAAO0hG,OAAOvhE,UAC5CjhD,KAAKsjF,OAAOriC,SAASJ,SAAS//B,EAAOwiE,OAAOriC,UAC5CjhD,KAAKsuF,MAAMrtC,SAASJ,SAAS//B,EAAOwtE,MAAMrtC,UAC1CjhD,KAAKo7C,OAASt6B,EAAOs6B,OAAOxyC,SAiB7B,sBAAW,0BAAW,C,IAOtB,WACC,OAAO5I,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAK0jH,eAAe7tH,I,gCAaX,YAAA6tH,eAAV,SAAyB7tH,GACxBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,IAU7C,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,I,gCAgB3C,YAAAovF,kBAAP,SAAyB91B,GACxB,GAAIA,EAAU,CACb,IAAIy1B,EAAiBz1B,EAASy1B,eAC1BE,EAAiB31B,EAAS21B,eAE1BF,GAAkBE,GAEjBA,IACCA,EAAe8F,YAClBhG,EAAe7/E,MAAMwd,KAAOuiE,EAAe8F,WAExC9F,EAAe6F,gBAClB/F,EAAe7/E,MAAMwd,KAAOuiE,EAAe6F,eAExC7F,EAAelpB,YAClBgpB,EAAeJ,WAAWjiE,KAAOuiE,EAAelpB,WAE7CkpB,EAAeI,gBAClBN,EAAeJ,WAAWjiE,KAAOuiE,EAAeI,kBAMtD,EAtrBA,CAAmC,GA8rBnC,IAAS9lF,kBAAT,cAA8C,GAC9C,IAASA,kBAAT,sBAAsD,GAStD,IAAaZ,KAAK,CACjBkkF,SAAUC,EAAA,EAAsByS,QAChCvtF,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB,GAAe,CACpC,IAAIqG,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAOjC,OALiBrhF,EAAO8hF,OAAOriC,SAASgM,OAAO9pD,OAAO0/E,GAC3Cr4C,WAAW2f,UAAW,EAEjB3oD,EAAO8sF,MAAMrtC,SAASgM,OAAO9pD,OAAO0/E,GAC1Cr4C,WAAW2f,UAAW,EACzBtiD,EAGR,OAAO,QC1lCT,mBAUC,mBACC,cAAO,K,OACP,EAAKkzC,UAAY,uBACjB,EAAK4O,a,EAGP,OAhB0C,iBAgB1C,EAhBA,CAA0C,GAgE1C,eA8BC,mBAGC,cAAO,K,OACP,EAAK5O,UAAY,eAEjB,EAAK0mB,MAAQ,OACb,EAAKW,OAAS,OAGd,EAAK8f,eAAenf,UAAY,GAChC,EAAKmf,eAAepf,SAAW,GAG/B,EAAKnZ,a,EA8EP,OA1HkC,iBAoD1B,YAAAw4C,aAAP,WACC,YAAMA,aAAY,WAClBniG,KAAKuiF,cAMC,YAAAA,WAAP,WACC,IAAID,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CAEX,IAAI,EAAoB,GAExB,IAAWtiF,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GAC9BA,EAAOM,gBACX,IAAWN,EAAOpI,UAAU3+E,YAAY,SAAC8pD,GACnCA,EAASu9B,iBACb,EAAWluF,KAA4B2wD,GACnCA,EAAS21B,iBACZ31B,EAAS21B,eAAiBsH,EAAOtH,uBAOtCxC,EAAOjhF,KAAO,EACdihF,EAAOsK,WAAWrqF,KAAO,aASjB,YAAA0pF,aAAV,WACC,OAAO,IAAI,IAOF,YAAAzJ,UAAV,SAAoBF,GACnB,YAAME,UAAS,UAACF,GACZA,IACHA,EAAOgB,OAAOriC,SAAS1+B,KAAO,aAC9B+/D,EAAOoB,YAAYziC,SAAS1+B,KAAO,uCAEnC+/D,EAAOsB,eAAe3iC,SAASjiD,OAAOmgD,GAAG,QAAQ,SAACgF,GACjD,IAAIw/D,EAAsEx/D,EAAM3iD,OAAO2tD,SAASwK,YAChG,GAAIgqD,EAAsB93D,UAAY83D,EAAsB/8D,SAAU,CACrE,IAAIj+C,EAAQg7G,EAAsBh7G,MAElCA,EAAMlH,oBAAoB,QAC1BkH,EAAMorD,SAAU,EAChBprD,EAAMwkD,aAAawK,aAAc,MAInC2qB,EAAOsB,eAAe3iC,SAASjiD,OAAOmgD,GAAG,OAAO,SAACgF,GAChD,IACIx7C,EADsEw7C,EAAM3iD,OAAO2tD,SAASwK,YAC9DhxD,MAClCA,EAAMlH,oBAAoB,OAC1BkH,EAAMorD,SAAU,OAIpB,EA1HA,CAAkC,GAkIlC,IAAS30D,kBAAT,aAA6C,GAC7C,IAASA,kBAAT,qBAAqD,G,cCvKrD,eA8BC,mBACC,cAAO,K,OAXE,EAAAikF,OAAS,IAAI,IAKb,EAAAk/B,OAAS,IAAI,IAOtB,EAAKxnE,UAAY,UACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,YAC9B,EAAK4/C,WAAW1qD,KAAK,EAAK6kF,QAC1B,EAAKn6B,WAAW1qD,KAAK,EAAK+jH,QAC1B,EAAK54D,a,EAuFP,OA3H6B,iBA4CrB,YAAAY,KAAP,WACC,YAAMA,KAAI,WAEV,IAAI5hD,EAAe3I,KAAK2I,MACpB5D,EAAQ/E,KAAK+E,MAEbqnF,EAAoBzjF,EAAMwmD,SAASvtD,UAEvC,GAAI+G,GAASA,EAAMtK,OAAS,GAAK0G,GAASA,EAAMwd,KAAM,CACrD,IAAIm/F,EAAK/4G,EAAM2e,GAAK3e,EAAMA,MAAM2e,GAAK3e,EAAMse,OAASte,EAAMi7G,GAAKj7G,EAAMtK,OAASsK,EAAM6e,MAChFq8F,EAAKl7G,EAAM4e,GAAK5e,EAAMA,MAAM4e,GAAK5e,EAAMye,OAASze,EAAMm7G,GAAKn7G,EAAMgJ,QAAUhJ,EAAM6e,MAEjFswE,OAAE,EACFL,OAAE,EAEFM,OAAE,EACFL,OAAE,EAEN,GAAItL,EAAOu2B,YACV7qB,EAAK/yF,EAAMkiB,OAASjnB,KAAK7D,OACzBs7F,EAAK1yF,EAAMqiB,OAEX2wE,EAAKhzF,EAAMkiB,OACXywE,EAAKD,EAEyB,SAA1B1yF,EAAM0mD,mBAETssC,GADAD,GAAM,EAAI93F,KAAK7D,QACL6D,KAAK7D,YAGZ,CACJ,IAAM2J,EAAIf,EAAM65G,YAAYj2G,EAAMtK,QAKlC05F,EAHAD,EAAK4pB,EAAK57G,EAAI6C,EAAMi7G,GAIpBlsB,EAHAD,EAAKosB,EAAK/9G,EAAI6C,EAAMm7G,GAMrB9jH,KAAK0oB,QAAQiiC,KAAK,CAAE,OAAU,CAAC+2D,EAAImC,EAAI/rB,EAAIL,EAAIM,EAAIL,OASrD,sBAAW,oBAAK,C,IAUhB,WACC,OAAO13F,KAAKuiH,OAAOrhH,O,IAXpB,SAAiByH,GAChB3I,KAAKuiH,OAAOvhH,IAAI2H,EAAO,IAAI,IAAc,CACxCA,EAAM3J,OAAOmgD,GAAG,cAAen/C,KAAK0pD,WAAY1pD,MAChD2I,EAAM3J,OAAOmgD,GAAG,YAAan/C,KAAK0pD,WAAY1pD,U,gCAgBhD,sBAAW,oBAAK,C,IAOhB,WACC,OAAOA,KAAKqjF,OAAOniF,O,IARpB,SAAiB6D,GAChB/E,KAAKqjF,OAAOriF,IAAI+D,EAAOA,EAAM/F,OAAOmgD,GAAG,cAAen/C,KAAK0pD,WAAY1pD,MAAM,K,gCAU/E,EA3HA,CAA6B,IAmI7B,IAASZ,kBAAT,QAAwC,GCjJxC,mBAyBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,oBAEjB,EAAKhiD,OAAOgrH,YAAc,GAE1B,EAAKp6D,a,EAyCP,OAxEuC,iBAuCtC,sBAAW,0BAAW,C,IAOtB,WACC,OAAO3pD,KAAKjH,OAAOgrH,YAAYluH,O,IARhC,SAAuBA,GACtBmK,KAAKsmF,SAAS,cAAezwF,I,gCAkBvB,YAAAo2D,KAAP,SAAYllB,EAAmButC,EAAgB8tC,EAAkBhX,GAChE,OAAO,YAAMn/C,KAAI,UAACllB,EAAUutC,EAAO,EAAG,CAAC,QAAS,iBAU1C,YAAAzQ,KAAP,SAAY98B,EAAmButC,EAAgB82B,GAC9C,OAAO,YAAMvnC,KAAI,UAAC98B,EAAUutC,EAAO,CAAC,QAAS,iBAE/C,EAxEA,CAAuC,IA8JvC,eA4FC,mBACC,cAAO,K,OAEP,EAAKv5B,UAAY,YAEjB,EAAK4nE,aAAc,EAInB,EAAKnhD,OAAS,OAEd,EAAK8hB,OAAOriC,SAAS5iD,OAAS,YAAQ,GAEtC,EAAKmxD,YAAY,EAAK8zB,OAAOriC,SAASjiD,OAAOmgD,GAAG,UAAW,EAAKuK,WAAY,GAAM,IAElF,EAAKC,a,EAoaP,OA/gB+B,iBAiHpB,YAAAi5D,YAAV,WACC,OAAO,IAAI1uC,GAAA,GAMF,YAAA8iB,WAAV,WACC,OAAO,IAAI,IAMF,YAAAE,YAAV,WACC,OAAO,IAAI,IAOF,YAAAhtC,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,sBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQF,YAAAo+B,UAAV,SAAoBn6G,GACnBA,EAAM6iD,YAAa,EACnB7iD,EAAM+jD,aAAaliB,WAAWhjB,MAAQ,EACtC7e,EAAMiyD,QAAQ,QAAS56D,KAAKwjH,iBAAkBxjH,MAC9C2I,EAAMiyD,QAAQ,CAAC,KAAM,KAAM,IAAK,IAAK,eAAgB56D,KAAKyjH,gBAAiBzjH,MAC3E2I,EAAMqrD,YAAc,mEAEHrrD,EAAMskD,OAAO9pD,OAAO,SAC1BqnC,WAAWhjB,MAAQ,KAEX7e,EAAM+jD,aACZliB,WAAWw5E,YAAc,EAEtCr7G,EAAM0sE,WAAY,EAElB1sE,EAAM3J,OAAOmgD,GAAG,WAAW,SAACgF,GAC3BA,EAAM3iD,OAAO6qD,iBAGI1jD,EAAMskD,OAAO9pD,OAAO,UAC1BqnC,WAAWw5E,YAAc,IAQ/B,YAAA35D,SAAP,WACCrqD,KAAKikH,WAAa,GAClBjkH,KAAKkkH,YAAc,GAEnBlkH,KAAKmkH,mBAAqBnkH,KAAK/B,WAC/B+B,KAAKokH,SAAW,IAAiBpkH,KAAK/B,WAAY+B,KAAK9B,UAEvD8B,KAAKqkH,kBAAoB,EACzB,IAAK,IAAIhoH,EAAI2D,KAAKooF,WAAY/rF,EAAI2D,KAAKyoF,SAAUpsF,IAAK,CACrD,IACIioH,EADWtkH,KAAKgkF,UAAU7jC,SAAS9jD,GACLtD,OAAOgrH,YAAYtiG,QACjD6iG,EAAqBtkH,KAAKqkH,oBAC7BrkH,KAAKqkH,kBAAoBC,GAI3B,YAAMj6D,SAAQ,WAEVrqD,KAAK2iH,cACJ3iH,KAAK/B,WAAa+B,KAAK9B,SAC1B8B,KAAKkkH,YAAY3gG,UAGjBvjB,KAAKikH,WAAW1gG,UAIjBvjB,KAAKkkH,YAAY1rF,MAAK,SAACzhC,EAAG0L,GACzB,IAAI8hH,GAAUxtH,EAAE4R,MAAMsK,YAAc,KAAO,IACvCuxG,GAAU/hH,EAAEkG,MAAMsK,YAAc,KAAO,IAU3C,OARIsxG,EAAS,MACZA,GAAU,KAGPC,EAAS,MACZA,GAAU,KAGPD,EAASC,GACJ,EAEAD,EAASC,EACV,EAGA,KAITxkH,KAAKikH,WAAWzrF,MAAK,SAACzhC,EAAG0L,GAExB,IAAI8hH,GAAUxtH,EAAE4R,MAAMsK,YAAc,KAAO,IACvCuxG,GAAU/hH,EAAEkG,MAAMsK,YAAc,KAAO,IAE3C,OAAIsxG,EAASC,EACL,EAECD,EAASC,GACT,EAGD,KAITxkH,KAAKijH,cAAcjjH,KAAKkkH,aACxBlkH,KAAKqjH,eAAerjH,KAAKkkH,aACzBlkH,KAAKijH,cAAcjjH,KAAKikH,YACxBjkH,KAAKqjH,eAAerjH,KAAKikH,cAUpB,YAAAt/B,oBAAP,SAA2Bx1B,GAC1B,GAAInvD,KAAK4+G,YAAc,EAAG,CAErB5+G,KAAKykH,kBAAsC,GAAlBt1D,EAASt5D,MACrCs5D,EAAS/C,YAAa,EAGtB+C,EAAS/C,YAAa,EAIvB,IAAIzjD,EAAewmD,EAASxmD,MAc5B,GAbAA,EAAMtK,OAAS2B,KAAK4+G,YAEhB,IAAezvD,EAAS40D,eAC3Bp7G,EAAMtK,OAAS2B,KAAK6+G,kBAAoB7+G,KAAK4+G,YAAc5+G,KAAK6+G,kBAAoB1vD,EAASp2D,OAAOgrH,YAAYtiG,QAAUzhB,KAAKqkH,mBAE1H17G,EAAM0J,uBAAuBknC,EAAA,IAClC5wC,EAAM0J,YAAcrS,KAAK6+G,kBAE1Bl2G,EAAM1K,WAAa+B,KAAKmkH,mBAExBx7G,EAAM9J,IAAMtH,KAAK6B,IAAI+1D,EAASp2D,OAAOlD,MAAM4rB,UAAYzhB,KAAK9B,SAAW8B,KAAK/B,YAAc,KAGrF+B,KAAKsjF,OAAOriC,SAASkJ,SAAU,CACnC,IAAIplD,EAAQoqD,EAASpqD,MAEjBspF,EAAOl/B,EAASk/B,KACpBA,EAAK1lF,MAAQA,EACb0lF,EAAKtpF,MAAQA,EAEb,IAAI2/G,GAAiC/7G,EAAMsK,YAAc,KAAO,IAE5D/X,OAAK,EAET,GAAI8E,KAAK2iH,YAAa,CACrB,IAAI/C,EAAc76G,EAAM65G,YAAYj2G,EAAMtK,QACtC/D,EAAY+zF,EAAKlyF,OAASyjH,EAC9B76G,EAAMuiB,GAAK,EACXviB,EAAMwiB,GAAK,EACXxiB,EAAM2mD,eAAiB,SACvB,IAAIi5D,EAAU3kH,KAAKokH,SAEfM,EAAwB,KAAOA,GAAyB,IAC3DpqH,IAAMqqH,EAAQroH,MAAQqoH,EAAQrqH,GAAK0F,KAAK4+G,YACxC75G,EAAM0mD,iBAAmB,OACzBzrD,KAAKkkH,YAAY1lH,KAAK2wD,KAItB70D,GAAKqqH,EAAQrqH,EAAI0F,KAAK4+G,YACtB75G,EAAM0mD,iBAAmB,QACzBzrD,KAAKikH,WAAWzlH,KAAK2wD,GACrB70D,IAAM,GAGP,IAAIS,EAAW4N,EAAMtK,OAASgwF,EAAKlyF,OAASyjH,EAC5C1kH,EAAQ,CAAEZ,EAAGA,EAAGC,EAAGoO,EAAMm7G,GAAK/oH,GAC9BgK,EAAMuM,OAAOpW,OAET,CACJ,IAAI0pH,EAAcj8G,EAAM,MACnB,IAAei8G,KACnBA,EAAQ,GAET7/G,EAAM06G,YAAY92G,EAAMsK,YAAatK,EAAMtK,OAAQsK,EAAMgJ,QAAS,GAAIizG,IAIxE5kH,KAAKmkH,oBAAsBx7G,EAAM9J,IAGjC,YAAM8lF,oBAAmB,UAACx1B,KAS5B,sBAAW,qBAAM,C,IASjB,WACC,OAAOnvD,KAAKujD,iBAAiB,W,IAV9B,SAAkB1tD,GACbmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,IAC7DmK,KAAK4pF,uB,gCAeP,sBAAW,0BAAW,C,IAAtB,WACC,OAAO5pF,KAAK6kH,c,IAMb,SAAuBhvH,GAClBmK,KAAK6kH,cAAgBhvH,IACxBmK,KAAK6kH,aAAehvH,EACpBmK,KAAK4pF,wB,gCAQP,sBAAW,+BAAgB,C,IAA3B,WACC,OAAO5pF,KAAKkhH,mB,IAMb,SAA4BrrH,GACvBmK,KAAKkhH,mBAAqBrrH,IAC7BmK,KAAKkhH,kBAAoBrrH,EACzBmK,KAAK4pF,wB,gCAWP,sBAAW,0BAAW,C,IAQtB,WACC,OAAO5pF,KAAKujD,iBAAiB,gB,IAT9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAgBhE,sBAAW,yBAAU,C,IAOrB,WACC,IAAIoI,EAAa+B,KAAKujD,iBAAiB,cACvC,OAAI,IAAetlD,GACXA,EAGA+B,KAAK8kH,qB,IAbd,SAAsBjvH,GACrBmK,KAAKopD,iBAAiB,aAAc,IAAqBvzD,IAAQ,I,gCAqBlE,sBAAW,uBAAQ,C,IAOnB,WACC,IAAIqI,EAAW8B,KAAKujD,iBAAiB,YACrC,OAAI,IAAerlD,GACXA,EAGA8B,KAAK+kH,mB,IAbd,SAAoBlvH,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAuBnC,YAAA8xF,eAAP,SAAsBC,GACrB,YAAMD,eAAc,UAACC,GAErB,IACIj/E,EADiDi/E,EAAOz4B,SAChCxmD,MAExBkoG,EAAYjpB,EAAOipB,UAClB,IAAeA,KACnBA,EAAY,IAEb,IAAII,EAAYrpB,EAAOqpB,UAClB,IAAeA,KACnBA,EAAY,GAGb,IAAIn1G,EAAQ6M,EAAM1K,WAAa0K,EAAM9J,IAAMgyG,EAE3CjpB,EAAOttF,EAAI22G,EAAYtoG,EAAMtK,OAAS,IAAUvC,GAChD8rF,EAAOrtF,EAAI02G,EAAYtoG,EAAMgJ,QAAU,IAAU7V,IAUxC,YAAA2nH,gBAAV,SAA0Bt/D,GACzB,IAAKnkD,KAAK2iH,YAAa,CAEtB,IAAIh6G,EAAQw7C,EAAM3iD,OACd2tD,EAAiDxmD,EAAMwmD,SAG3D,GAAIA,EAAU,CACb,IAAIpqD,EAAQoqD,EAASpqD,MACjBA,IACHA,EAAMuiB,GAAKviB,EAAMm6G,IAAMv2G,EAAM2e,GAAK3e,EAAMse,OACxCliB,EAAMwiB,GAAKxiB,EAAMo6G,IAAMx2G,EAAM4e,GAAK5e,EAAMye,WAY5C,sBAAW,mBAAI,C,IAAf,WACC,GAAIpnB,KAAKyyD,YACR,OAAOzyD,KAAKyyD,YAEb,IAAImoB,EAAQ56E,KAAK46E,MACjB,OAAIA,EACI,IAAiBA,EAAM38E,WAAY28E,EAAM18E,SAAU8B,KAAK4+G,aAGzD,IAAiB5+G,KAAK/B,WAAY+B,KAAK9B,SAAU8B,KAAK4+G,c,gCAE/D,EA/gBA,CAA+B,IAuhB/B,IAASx/G,kBAAT,UAA0C,GAC1C,IAASA,kBAAT,kBAAkD,GC/rBlD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,mBACjB,EAAK4O,a,EAGP,OAhBsC,iBAgBtC,EAhBA,CAAsC,IAsKtC,eAkCC,mBAGC,cAAO,KACP,EAAK5O,UAAY,WAGjB,EAAK1oC,YAAc,EACnB,EAAKhU,OAAS,YAAQ,IACtB,EAAKojE,MAAQ,OACb,EAAKW,OAAS,OAEd,EAAKnkE,YAAc,GACnB,EAAKC,SAAW,IAEhB,IAAI4tF,EAAkB,EAAKA,gB,OAC3BA,EAAgBtgC,YAAa,EAC7BsgC,EAAgB1pB,OAAS,SACzB0pB,EAAgBrqB,MAAQ,SACxBqqB,EAAgBtqB,OAAS,WACzBsqB,EAAgBxvF,WAAQoQ,EACxBo/E,EAAgBvvF,YAASmQ,EAGzB,EAAKw1E,eAAenf,UAAY,GAChC,EAAKmf,eAAepf,SAAW,GAE/B,EAAKof,eAAeljF,OAAOmgD,GAAG,iBAAkB,EAAK6lE,aAAc,GAAM,GAGzE,EAAKr7D,a,EAyRP,OAzV8B,iBAuEnB,YAAAO,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,eAStC,YAAAhL,eAAP,WACC,YAAMA,eAAc,WACpB7pE,KAAKglH,gBAUC,YAAA94B,kBAAP,SAAyB/nC,GACxB,YAAM+nC,kBAAiB,UAAC/nC,GACxBnkD,KAAKilH,uBAAoBv4G,EACzB1M,KAAKklH,sBAGI,YAAAA,mBAAV,sBACCllH,KAAKosF,OAAOllF,MAAK,SAACklF,GACjBA,EAAO04B,oBAAsB,EAAK7mH,WAClCmuF,EAAO24B,kBAAoB,EAAK7mH,aAW3B,YAAA8mH,aAAP,WAEC,IAAIG,EAAYnlH,KAAKkiF,eAEjBnuE,EAAO,IAAiB/T,KAAK/B,WAAY+B,KAAK9B,SAAU,GACxD2iH,EAAwB,CAAEvmH,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,GAExD8V,EAAcrS,KAAKqS,YAEnBA,aAAuBknC,EAAA,IAC1BsnE,EAAY,IAAiB7gH,KAAK/B,WAAY+B,KAAK9B,SAAUmU,EAAYxc,QAI1Eke,EAAO,IAAyB,CAACA,EAAM8sG,IAEvC,IAAIG,EAAYzpH,KAAKK,IAAIutH,EAAU/+D,WAAaryC,EAAKzX,MAAO6oH,EAAUj/D,YAAcnyC,EAAKxX,QAErF,IAAeykH,KAClBA,EAAY,GAGb,IAAIoE,EAAc,IAA6BplH,KAAK3B,OAAQ2iH,GAExDqE,EAAwB,IAA6BrlH,KAAKqS,YAAa2uG,GAEvEsE,GAAgBF,EAAcC,GAAyBrlH,KAAKosF,OAAOjwF,OAEpEipH,GAAeplH,KAAKilH,mBAAqBI,GAAyBrlH,KAAKulH,yBACzEvlH,KAAKilH,kBAAoBG,EACzBplH,KAAKulH,uBAAyBF,EAG9B,IAAW,IAAcrlH,KAAKosF,OAAO/mF,aAAa,SAACtO,GAClD,IAAIsF,EAAItF,EAAE,GACNq1F,EAASr1F,EAAE,GAEXsH,EAASgnH,EAAwB,IAA6Bj5B,EAAO/tF,OAAQ+mH,EAAcC,GAC3FhzG,EAAcgzG,EAAwB,IAA6Bj5B,EAAO/5E,YAAa+yG,EAAcC,GAErG,IAAehnH,KAClBA,EAASgnH,EAAwBC,GAAgBjpH,EAAI,IAElD,IAAegW,KAClBA,EAAcgzG,EAAwBC,EAAejpH,GAGtD+vF,EAAOwyB,YAAcvgH,EACrB+tF,EAAOyyB,iBAAmBxsG,KAI3BrS,KAAK8rF,gBAAgBr5B,YAAc,CAAEn4D,EAAG8qH,EAAcrxG,EAAKzZ,EAAGC,EAAG6qH,EAAcrxG,EAAKxZ,EAAG+B,MAAO8oH,EAAcrxG,EAAKzX,MAAOC,OAAQ6oH,EAAcrxG,EAAKxX,QACnJyD,KAAK8rF,gBAAgBzqB,mBAErBrhE,KAAKynF,iBAAiBntF,EAAI0F,KAAK8rF,gBAAgBxxF,EAC/C0F,KAAKynF,iBAAiBltF,EAAIyF,KAAK8rF,gBAAgBvxF,IAgCjD,sBAAW,qBAAM,C,IASjB,WACC,OAAOyF,KAAKujD,iBAAiB,W,IAV9B,SAAkB1tD,GACdmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,IAC5DmK,KAAKqhE,oB,gCA0CP,sBAAW,0BAAW,C,IAOtB,WACC,OAAOrhE,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAetD,YAAAo2F,aAAV,WACC,OAAO,IAAI,IA2BZ,sBAAW,yBAAU,C,IAUrB,WACC,OAAOjsF,KAAKujD,iBAAiB,e,IAX9B,SAAsB1tD,GAClBmK,KAAKopD,iBAAiB,aAAcvzD,KACtCmK,KAAKglH,eACLhlH,KAAKklH,uB,gCAiCP,sBAAW,uBAAQ,C,IAUnB,WACC,OAAOllH,KAAKujD,iBAAiB,a,IAX9B,SAAoB1tD,GAChBmK,KAAKopD,iBAAiB,WAAYvzD,KACpCmK,KAAKglH,eACLhlH,KAAKklH,uB,gCAWR,EAzVA,CAA8B,IAiW9B,IAAS9lH,kBAAT,SAAyC,GACzC,IAASA,kBAAT,iBAAiD,G,cC/gBjD,eAqBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,sBAEjB,EAAKhiD,OAAOysH,WAAa,GAEzB,EAAK77D,a,EAmBP,OA9CyC,iBAmCxC,sBAAW,yBAAU,C,IAOrB,WACC,OAAO3pD,KAAKjH,OAAL,WAA0BlD,O,IARlC,SAAsBA,GACrBmK,KAAKsmF,SAAS,aAAczwF,I,gCAU9B,EA9CA,CAAyC,IAiHzC,eAqCC,mBACC,cAAO,K,OACP,EAAKklD,UAAY,cACjB,EAAK4O,a,EA0HP,OAlKiC,iBAgDtB,YAAA+6B,eAAV,WACC,OAAO,IAAI,IAMF,YAAAk+B,YAAV,WACC,OAAO,IAAI6C,GAAA,GASL,YAAA9gC,oBAAP,SAA2Bx1B,GAE1B,IAAIxmD,EAA0BwmD,EAASxmD,MAEnCi8G,EAAgB5kH,KAAK4kH,MACpB,IAAeA,KACnBA,EAAQ5kH,KAAK46E,MAAMgqC,OAGpB,IAAIc,EAAuBv2D,EAASp2D,OAAOysH,WAAW/jG,QACjD,IAAeikG,KACnBA,EAAe,KAGhB/8G,EAAMi8G,MAAQc,EAAed,EAAQ,IAErC,IAAI9oH,EAAgBkE,KAAKlE,MACpB,IAAeA,KACnBA,EAAQkE,KAAK46E,MAAM9+E,OAGpB6M,EAAM7M,MAAQA,EAEd,YAAM6oF,oBAAmB,UAACx1B,IAQpB,YAAA9E,SAAP,WACC,YAAMA,SAAQ,WAEd,IAAK,IAAIhuD,EAAI2D,KAAKy9G,mBAAoBphH,EAAI2D,KAAK09G,iBAAkBrhH,IAAK,CACrE,IACIsM,EADW3I,KAAKgkF,UAAU7jC,SAAS9jD,GACTsM,MAExB1K,EAAa0K,EAAM1K,WAGpBA,IAAe,IAAMA,EAAa,GACtC0K,EAAM07D,UAGGpmE,GAAc,IACvB0K,EAAM27D,WAUT,sBAAW,oBAAK,C,IAOhB,WACC,OAAOtkE,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAevC,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,I,gCAgBzB,YAAA8xF,eAAP,SAAsBC,GACrB,YAAMD,eAAc,UAACC,GAErB,IACIj/E,EADiDi/E,EAAOz4B,SACvCxmD,MAErBi/E,EAAOrtF,EAAIqtF,EAAOxgE,OAASze,EAAMi8G,OAEnC,EAlKA,CAAiC,IA0KjC,IAASxlH,kBAAT,YAA4C,GAC5C,IAASA,kBAAT,oBAAoD,ICzRpD,YAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,qBACjB,EAAK4O,a,EAbiC,iBAAxC,CAAwC,IAAxC,IAwJA,eA8BC,mBAGC,cAAO,K,OACP,EAAK5O,UAAY,aAEjB,EAAK6pE,MAAQ,GACb,EAAK9oH,MAAQ,GAGb,EAAK6tD,a,EAsDP,OA9FgC,iBAoD/B,sBAAW,oBAAK,C,IAShB,WACC,OAAO3pD,KAAKujD,iBAAiB,U,IAV9B,SAAiB1tD,GACZmK,KAAKopD,iBAAiB,QAASvzD,IAClCmK,KAAK2lH,uB,gCAiBP,sBAAW,oBAAK,C,IAUhB,WACC,OAAO3lH,KAAKujD,iBAAiB,U,IAX9B,SAAiB1tD,GAChBA,EAAQ,IAAiBA,EAAO,EAAG,IAC/BmK,KAAKopD,iBAAiB,QAASvzD,IAClCmK,KAAK2lH,uB,gCAgBG,YAAA15B,aAAV,WACC,OAAO,IAAI,IAGb,EA9FA,CAAgC,IAsGhC,IAAS7sF,kBAAT,WAA2C,GChQ3C,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,sBACjB,EAAK4O,a,EAGP,OAhByC,iBAgBzC,EAhBA,CAAyC,IAgEzC,eA8BC,mBAGC,cAAO,K,OACP,EAAK5O,UAAY,cAEjB,EAAK+wC,gBAAgBtqB,OAAS,aAE9B,EAAK8B,QAAQ,GAAI,GAAI,GAAI,IAGzB,EAAK3Z,a,EA0BP,OAnEiC,iBAgDtB,YAAAO,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,kBAStC,YAAAxqB,SAAP,WACC,YAAMA,SAAQ,YAEhB,EAnEA,CAAiC,IA2EjC,IAASjrD,kBAAT,YAA4C,GAC5C,IAASA,kBAAT,oBAAoD,G,wBCrEpD,eAwEC,mBACC,cAAO,K,OAZD,EAAA0lF,eAAiC,IAAI2B,EAa3C,EAAK1rC,UAAY,kBAEjB,EAAKyQ,YAAa,EAGlB,IAAIuoB,EAAA,EAEJ,EAAKhX,WAAY,EACjB,EAAKK,OAAQ,EAEb,EAAKgQ,oBAAqB,EAE1B,EAAKpuE,OAAOmgD,GAAG,kBAAmB,EAAKymE,gBAAiB,GAAM,GAC9D,EAAK5mH,OAAOmgD,GAAG,cAAe,EAAKymE,gBAAiB,GAAM,G,EA4S5D,OAnYqC,iBA8F7B,YAAAC,UAAP,SAAiB1hE,GACZnkD,KAAKk2D,UAAYl2D,KAAK4mD,SACzB5mD,KAAK6jE,OAGL7jE,KAAKisD,QAUA,YAAA4X,KAAP,SAAY98B,GACX,IAAIyvB,EAAY,YAAMqN,KAAI,UAAC98B,GAc3B,OAZA/mC,KAAK8lH,kBAAkB5+G,MAAK,SAASioD,KAC/BA,EAAS42D,QAAW52D,EAAS42D,SAAW52D,EAAS42D,OAAO7vD,WAC5D/G,EAASguD,gBAAgB,QAAShuD,EAASn4D,SAAS,SAAU+vC,MAIhE/mC,KAAKgmH,kBAAkB9+G,MAAK,SAASioD,KAC/BA,EAAS82D,UAAa92D,EAAS82D,WAAa92D,EAAS82D,SAAS/vD,WAClE/G,EAASguD,gBAAgB,QAAShuD,EAASn4D,SAAS,SAAU+vC,MAIzDyvB,GASD,YAAAvK,KAAP,SAAYllB,GACX,IAAIyvB,EAAY,YAAMvK,KAAI,UAACllB,GAU3B,OARA/mC,KAAK8lH,kBAAkB5+G,MAAK,SAASioD,GACpCA,EAASguD,gBAAgB,QAAS,EAAGp2E,MAGtC/mC,KAAKgmH,kBAAkB9+G,MAAK,SAASioD,GACpCA,EAASguD,gBAAgB,QAAS,EAAGp2E,MAG/ByvB,GASD,YAAAnM,SAAP,WACKrqD,KAAK6hD,eACR,YAAMwI,SAAQ,WACdrqD,KAAK4lH,oBASA,YAAAA,gBAAP,sBAEC5lH,KAAK8lH,kBAAkB5+G,MAAK,SAACioD,GAC5B,IAAI+2D,EAAO/2D,EAAS+2D,KAKpB,GAJsB,YAAlBA,EAAKC,YACRD,EAAKxqE,KAAOwqE,EAAK/2D,SAAS82D,SAASlpE,OAGd,YAAlBmpE,EAAKC,UAAyB,CAEjCD,EAAKxqE,KAAOwqE,EAAK7vC,SACjB6vC,EAAK73D,OAAS63D,EAAK7vC,SAEnB,IAAI,EAAO6vC,EAAK7vC,SAAS+vC,MAAMjmE,SAAS,GAEpC,IACH,EAAKpD,MAAQ,EAAKA,MAClBmpE,EAAK7vC,SAAShsB,gBAKjBrqD,KAAKgmH,kBAAkB9+G,MAAK,SAACioD,GAC5B,IAAI+2D,EAAO/2D,EAAS+2D,KAKpB,GAJsB,UAAlBA,EAAKC,YACRD,EAAKxqE,KAAOwqE,EAAK/2D,SAAS42D,OAAOhpE,OAGZ,YAAlBmpE,EAAKC,UAAyB,CACjCD,EAAKxqE,KAAOwqE,EAAK7vC,SACjB6vC,EAAK73D,OAAS63D,EAAK7vC,SAEnB,IAAI,EAAO6vC,EAAK7vC,SAAS+vC,MAAMjmE,SAAS,GAEpC,IACH,EAAKpD,MAAQ,EAAKA,MAClBmpE,EAAK7vC,SAAShsB,iBAalB,sBAAW,gCAAiB,C,IAA5B,sBACC,IAAKrqD,KAAKqmH,mBAAoB,CAC7B,IAAIL,EAAoB,IAAI1kE,EAAA,EAC5B0kE,EAAkBhnH,OAAOmgD,GAAG,YAAY,WACd,QAArB,EAAKy7B,MAAM0rC,OACd,EAAKC,gBAAkB,IAAW,EAAKF,mBAAmBhhH,YAAY,SAAC/K,EAAGC,GAAM,YAAcD,EAAEksH,SAAUjsH,EAA1B,aAEnD,SAArB,EAAKqgF,MAAM0rC,OACnB,EAAKC,gBAAkB,IAAW,EAAKF,mBAAmBhhH,YAAY,SAAC/K,EAAGC,GAAM,YAAe,IAAcD,EAAEzE,MAAO0E,EAAtC,WAGhF,EAAKgsH,gBAAkB,EAAKF,mBAAmBhhH,kBAE9CqH,GAAW,GACd1M,KAAKqmH,mBAAqBL,EAE3B,OAAOhmH,KAAKqmH,oB,gCASb,sBAAW,gCAAiB,C,IAA5B,sBACC,IAAKrmH,KAAKymH,mBAAoB,CAC7B,IAAIX,EAAoB,IAAIxkE,EAAA,EAC5BwkE,EAAkB9mH,OAAOmgD,GAAG,YAAY,WACd,QAArB,EAAKy7B,MAAM0rC,OACd,EAAKI,gBAAkB,IAAW,EAAKD,mBAAmBphH,YAAY,SAAC/K,EAAGC,GAAM,YAAcD,EAAEksH,SAAUjsH,EAA1B,aAEnD,SAArB,EAAKqgF,MAAM0rC,OACnB,EAAKI,gBAAkB,IAAW,EAAKD,mBAAmBphH,YAAY,SAAC/K,EAAGC,GAAM,YAAe,IAAcD,EAAEzE,MAAO0E,EAAtC,WAGhF,EAAKmsH,gBAAkB,EAAKD,mBAAmBphH,kBAG9CqH,GAAW,GACd1M,KAAKymH,mBAAqBX,EAE3B,OAAO9lH,KAAKymH,oB,gCAQb,sBAAW,mBAAI,C,IAOf,WACC,OAAOzmH,KAAKujD,iBAAiB,S,IAR9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAetC,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAevC,sBAAW,4BAAa,C,IAOxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAe/C,sBAAW,4BAAa,C,IAOxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAe/C,sBAAW,oBAAK,C,IAWhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAZ9B,SAAiB1tD,GAChBmK,KAAKw6D,iBAAiB,QAAS3kE,GAC3BmK,KAAKq4D,cACRr4D,KAAKq4D,YAAY3c,KAAO7lD,GAEzBmK,KAAK07C,KAAO7lD,G,gCAiBN,YAAAkvF,mBAAP,SAA0BV,GACzB,IAAI3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO7a,iBAEP,IAAIsB,EAA2BuZ,EAAO/a,YAAY6M,EAAA,GAClDrL,EAAOliB,aAAc,EACrB,IAAuB5oD,KAAM8qE,EAAQ,KACrCA,EAAOzc,OAASruD,KAAK07C,KAErBovB,EAAOjqB,SAAc7gD,MACrB8qE,EAAOxH,QAAQ,EAAG,EAAG,EAAG,GACxBwH,EAAOxuE,MAAQoiC,EACfosC,EAAOvuE,OAAS28B,EAEhB,IAAI0rD,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ+tB,EAAOpvB,KAC9BkpC,EAAeoB,UAAYlb,EAAOpvB,MAQnC,sBAAW,6BAAc,C,IAQzB,WACC,OAAO17C,KAAKyqF,iB,IATb,SAA0B50F,GACzBmK,KAAKyqF,gBAAkB50F,EACvBmK,KAAKyqF,gBAAgBjH,cAAcprB,kB,gCASrC,EAnYA,CAAqCqQ,EAAA,GA2YrC,IAASrpE,kBAAT,gBAAgD,G,uBCvVhD,eA2DC,mBACC,cAAO,KACP,EAAK27C,UAAY,kBAEjB,IAAI+4B,EAAkB,IAAIC,EAAA,E,OAE1B,EAAK45B,aAAc,EAEnB,EAAKwY,UAAY,WAEjB,EAAK3kD,OAAS,OACd,EAAKhW,YAAa,EAElB,EAAKvtD,WAAa,EAClB,EAAKC,SAAW,EAEhB,EAAK2yD,cAAgB,EAGrB,EAAKnF,eAAiB,OACtB,EAAKD,iBAAmB,OAExB,EAAKuI,YAAc,yCACnB,EAAK+9B,gBAAkB,GAEvB,EAAKm0B,KAAO,EAAK58C,YAAY/B,EAAA,GAC7B,EAAK2+C,KAAKt9D,aAAc,EACxB,EAAKs9D,KAAK7zD,WAAW,EAAK9xD,MAAM+I,IAAI,SACpC,EAAK48G,KAAK16D,YAAa,EACvB,EAAKoF,YAAc,GACnB,EAAKlV,KAAOo4B,EAAgBlK,OAAO,yBAEnC,EAAKjgB,a,EAqRP,OAhXqC,iBAkG1B,YAAAg9D,gBAAV,sBACC,IAAW3mH,KAAKqmF,QAAQhhF,YAAY,SAACuiF,GACpCA,EAAOz6E,OAAS,EAAKs6E,iBAErBG,EAAOtmB,SAAW,EAAKA,SACvBsmB,EAAO7lB,UAAY,EAAKA,UAExB,EAAK4lB,eAAeC,OAOtB,sBAAW,+BAAgB,C,IAA3B,WACC,IAAK5nF,KAAK4mH,kBAAmB,CAC5B,IAAIn/B,EAAmBznF,KAAKspE,YAAYb,EAAA,GACxCgf,EAAiB7+B,aAAc,EAC/B6+B,EAAiBjmB,OAAS,OAC1BxhE,KAAK4mH,kBAAoBn/B,EAE1B,OAAOznF,KAAK4mH,mB,gCAOb,sBAAW,0BAAW,C,IAAtB,WACC,IAAK5mH,KAAK6mH,aAAc,CACvB,IAAIC,EAAc9mH,KAAKspE,YAAY/B,EAAA,GACnCu/C,EAAYl+D,aAAc,EAC1Bk+D,EAAYz0D,WAAWryD,KAAKO,MAAM+I,IAAI,SACtCw9G,EAAYt7D,YAAa,EACzBxrD,KAAK6mH,aAAeC,EAErB,OAAO9mH,KAAK6mH,c,gCAOH,YAAAl/B,eAAV,SAAyBC,GAExB,IAAIvmE,EAAWumE,EAAOipB,UAEjB,IAAexvF,KACnBA,EAAWumE,EAAOqpB,WAGd,IAAe5vF,KACnBA,EAAW,IAEZ,IAAInmB,EAAQ8E,KAAK+mH,WAAWl5B,gBAAgBxsE,GAE5CumE,EAAOt2E,OAAOpW,GAEd,IACIY,EADAkrH,EAAgBp/B,EAAOpgC,eAAezgC,SAEtC6gE,EAAOz4B,WAEVrzD,EADuB8rF,EAAOz4B,SAASwK,YACnBqtD,IAEhB,IAAelrH,KACnBA,EAAQZ,EAAMY,OAGf8rF,EAAO7gE,SAAWjrB,GASnB,sBAAW,yBAAU,C,IAOrB,WACC,OAAOkE,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAgB5C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,wBAAS,C,IAkBpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAnB9B,SAAqB1tD,GACpB,GAAa,YAATA,EAAqB,CACxB,IAAIknD,EAAQ/8C,KAAK07C,KAEjB17C,KAAKq2E,SAAS+vC,MAAM78G,QAChBwzC,aAAiBE,EAAA,IACpBj9C,KAAKq2E,SAASyC,SAAS/7B,GACvB/8C,KAAKq2E,SAASyC,SAAS/7B,IAExB/8C,KAAK07C,KAAO17C,KAAKq2E,SACjBr2E,KAAKquD,OAASruD,KAAKq2E,SAEpBr2E,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAiB3C,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAgB7C,sBAAW,8BAAe,C,IAO1B,WACC,OAAOmK,KAAKujD,iBAAiB,oB,IAR9B,SAA2B1tD,GAC1BmK,KAAKopD,iBAAiB,kBAAmBvzD,GAAO,I,gCAevC,YAAA2tE,QAAV,SAAkB3tE,GACjB,YAAM2tE,QAAO,UAAC3tE,GACd,IAAIwgF,EAAWr2E,KAAKinH,UAEhB5wC,GAAYxgF,aAAiBonD,EAAA,IAChCo5B,EAAS+vC,MAAM78G,QACf8sE,EAASyC,SAASjjF,GAClBwgF,EAASyC,SAASjjF,KASb,YAAA81D,eAAP,aAUA,sBAAW,sBAAO,C,IAAlB,sBAaC,OAZK3rD,KAAKmmF,WACTnmF,KAAKmmF,SAAW,IAAI7kC,EAAA,EAAqB,IAAI,GAC7CthD,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKmmF,WAC3CnmF,KAAKkpD,WAAW1qD,KAAKwB,KAAKmmF,SAASllC,UACnCjhD,KAAKmmF,SAASnnF,OAAOmgD,GAAG,YAAY,SAACgF,GACpCA,EAAM/E,SAASpgD,OAAOmgD,GAAG,mBAAmB,SAACgF,GACtB,aAAlBA,EAAM9Z,UAA6C,aAAlB8Z,EAAM9Z,UAC1C,EAAKs9C,eAAexjC,EAAM3iD,eAEzBkL,GAAW,UACZA,GAAW,IAER1M,KAAKmmF,U,gCASb,YAAAtlC,SAAA,SAAS//B,GACR,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKqmF,QAAQxlC,SAAS//B,EAAOulE,SAC7B,IAAI0gC,EAAa/mH,KAAK+mH,WAClBA,IACCA,aAAsBvI,GAAA,GAAQ19F,EAAOimG,sBAAsBvI,GAAA,GAC9DuI,EAAWlmE,SAAS//B,EAAOimG,YAGxBA,aAAsBv3C,GAAA,GAAY1uD,EAAOimG,sBAAsBv3C,GAAA,GAClEu3C,EAAWlmE,SAAS//B,EAAOimG,aAI7B/mH,KAAKkmH,KAAKrlE,SAAS//B,EAAOolG,OAOpB,YAAA5gD,YAAP,WACC,GAAItlE,KAAK+mH,WACR,OAAO/mH,KAAK+mH,WAAWl5B,gBAAgB7tF,KAAK+xF,iBAAiBz3F,GAQxD,YAAAirE,YAAP,WACC,GAAIvlE,KAAK+mH,WACR,OAAO/mH,KAAK+mH,WAAWl5B,gBAAgB7tF,KAAK+xF,iBAAiBx3F,GAQ/D,sBAAW,uBAAQ,C,IAAnB,WAIC,OAHKyF,KAAKinH,YACTjnH,KAAKinH,UAAY,IAAIpuC,GAAA,GAEf74E,KAAKinH,W,gCAGd,EAhXA,CAAqCx+C,EAAA,GAwXrC,IAASrpE,kBAAT,gBAAgD,G,cCtehD,eAyBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,sBAEjB,EAAKhiD,OAAOlD,MAAQ,GAEpB,EAAK8zD,a,EA6FP,OA5HyC,iBAuCxC,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO3pD,KAAKwqC,WAAWg8E,U,IARxB,SAAoB3wH,GACnBmK,KAAKolD,YAAY,WAAYvvD,I,gCAe9B,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKwqC,WAAW08E,Q,IARxB,SAAkBrxH,GACjBmK,KAAKolD,YAAY,SAAUvvD,I,gCAgB5B,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKwqC,WAAWuS,O,IARxB,SAAiBlnD,GAChBmK,KAAKolD,YAAY,QAAS,YAAQvvD,K,gCAenC,sBAAW,oBAAK,C,IAOhB,WACC,OAAOmK,KAAKjH,OAAOlD,MAAMA,O,IAR1B,SAAiBA,GAChBmK,KAAKsmF,SAAS,QAASzwF,I,gCAmBxB,sBAAW,mBAAI,C,IAAf,sBACC,IAAKmK,KAAKmnH,MAAO,CAChB,IAAI,EAAOnnH,KAAK4B,UAAUwlH,MAAMjkH,SAChCnD,KAAKmnH,MAAQ,EAEbnnH,KAAKujF,UAAU,GAEfvjF,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,EAAKngD,WACR,EAAKA,UAAUwlH,MAAMnnE,YAAY,OAIpC,OAAOjgD,KAAKmnH,O,gCAGd,EA5HA,CAAyC,GAqNzC,eA+EC,mBAGC,cAAO,KA5ED,EAAA/rE,OAAmB,IAAIwwC,EAAA,EA6E7B,EAAK7wC,UAAY,cACjB,EAAKssE,YAAc,GACnB,EAAKf,OAAS,OACd,EAAK3U,wBAAyB,EAE9B,EAAKv2D,OAAOj3C,KAAO,EACnB,EAAKmjH,YAAc,IAEnB,IAAIC,EAAiB,EAAKrlC,eAAe5Y,YAAYb,EAAA,GACrD8+C,EAAe3+D,aAAc,EAC7B2+D,EAAe/lD,OAAS,OACxB+lD,EAAe/7D,YAAa,EAC5B,EAAK+7D,eAAiBA,EAEtB,IAAIC,EAAiB,EAAKtlC,eAAe5Y,YAAYb,EAAA,G,OACrD++C,EAAe5+D,aAAc,EAC7B4+D,EAAehmD,OAAS,OACxBgmD,EAAeh8D,YAAa,EAC5B,EAAKg8D,eAAiBA,EAGtB,EAAKr4D,SAAW,EAAKu1B,iBACrB,EAAKv1B,SAASvtD,UAAY,EAG1B,EAAK+nD,a,EAiVP,OA7biC,iBA+GzB,YAAA9J,QAAP,WACC,YAAMA,QAAO,WACb7/C,KAAKmvD,SAAStP,WAQR,YAAAsiD,aAAP,sBAC4B,GAAvBniG,KAAKi1G,gBACRj1G,KAAKynH,MAAMl+G,QAGZvJ,KAAK0nH,YAEL1nH,KAAKo7C,OAAOzC,QAEZ,YAAMwpD,aAAY,WAElB,IAEI7hD,EACAC,EAHAtI,EAAM,EACN95C,EAAQ,EAKZ,IAAW6B,KAAKgkF,UAAU3+E,YAAY,SAAC8pD,GACtC,IAAIq3D,EAAWr3D,EAASq3D,SAEpBA,KACCr2D,EAAO,EAAKs3D,MAAMvoE,OAAOsnE,OAE5Br2D,EAAO,EAAKs3D,MAAMtkH,OAAOqjH,IACpBjkH,KAAOikH,EACZr2D,EAAKyqB,MAAQ,EACbzqB,EAAKhB,SAAWA,GAEjBA,EAAS82D,SAAW91D,EACpBhB,EAAS82D,SAASH,kBAAkBtnH,KAAK2wD,IAE1C,IAEKgB,EAFD+2D,EAAS/3D,EAAS+3D,OAClBA,KACC/2D,EAAO,EAAKs3D,MAAMvoE,OAAOgoE,OAE5B/2D,EAAO,EAAKs3D,MAAMtkH,OAAO+jH,IACpB3kH,KAAO2kH,EACZ/2D,EAAKyqB,MAAQ,EACbzqB,EAAKhB,SAAWA,GAGjBA,EAAS42D,OAAS51D,EAClBhB,EAAS42D,OAAOC,kBAAkBxnH,KAAK2wD,IAGxC,IAAKA,EAAS82D,SAAU,CACvB,IAAIr4D,EAAiB,IAAI+5D,GAAA,EACzB/5D,EAAeg6D,UAAY,CAAC,EAAG,GAC/Bz4D,EAAS+2D,KAAKt4D,eAAiBA,EAGhC,IAAKuB,EAAS42D,OAAQ,CACrB,IAAIp4D,EAAe,IAAIg6D,GAAA,EACvBh6D,EAAai6D,UAAY,CAAC,EAAG,GAC7Bz4D,EAAS+2D,KAAKt4D,eAAiBD,EAGhC,IAAI93D,EAAQs5D,EAASt5D,MACjB,IAAeA,KAClBoiD,GAAOpiD,EACPsI,KAEImiD,EAAMzqD,IAAU,IAAeyqD,MAClCA,EAAMzqD,IAEH0qD,EAAO1qD,IAAU,IAAe0qD,MACnCA,EAAO1qD,OAKV,IAAIiL,EAAM,QAEVd,KAAKmvD,SAASu5B,mBAAmB5nF,EAAKy/C,EAAM,QAC5CvgD,KAAKmvD,SAASu5B,mBAAmB5nF,EAAKw/C,EAAK,OAC3CtgD,KAAKmvD,SAASu5B,mBAAmB5nF,EAAKm3C,EAAK,OAC3Cj4C,KAAKmvD,SAASu5B,mBAAmB5nF,EAAKm3C,EAAM95C,EAAO,WACnD6B,KAAKmvD,SAASu5B,mBAAmB5nF,EAAK3C,EAAO,SAG7C,IAAW6B,KAAKynH,MAAMpiH,YAAY,SAACwiH,GAClC,IAAI13D,EAAO03D,EAAQ,GAEf13D,EAAKzU,gBAAgBuB,EAAA,IACxBkT,EAAKpT,MAAQoT,EAAKzU,WAGDhvC,GAAdyjD,EAAKpT,QACRoT,EAAKpT,MAAQ,EAAK3B,OAAOh3C,aAGCsI,GAAvByjD,EAAKhB,SAASpS,QACjBoT,EAAKpT,MAAQoT,EAAKhB,SAASpS,OAGvBoT,EAAKhB,SAAStD,SAClBsE,EAAKlE,KAAK,GAGX,EAAK67D,aAAa33D,MAGnBnwD,KAAK0nH,YACL1nH,KAAKuiF,cAQC,YAAAkH,iCAAP,SAAwCt6B,EAA8B5sD,GACrEvC,KAAK0pD,cAOI,YAAAg+D,UAAV,WACoB,QAAf1nH,KAAKsmH,OACRtmH,KAAK+nH,QAAU/nH,KAAKynH,MAAMO,iBAEH,SAAfhoH,KAAKsmH,OACbtmH,KAAK+nH,QAAU,IAAW/nH,KAAKynH,MAAMpiH,YAAY,SAAC/K,EAAGC,GAAM,YAAe,IAAcD,EAAE,GAAG27C,MAAO17C,EAAE,GAA3C,WAG3DyF,KAAK+nH,QAAU/nH,KAAKynH,MAAMpiH,YAYlB,YAAAyiH,aAAV,SAAuB33D,GAItB,IAAI83D,EAAgB,EAChBC,EAAgB,EAEpB,IAAW/3D,EAAK61D,kBAAkB3gH,YAAY,SAAC8pD,GAC9C,IAAIt5D,EAAQs5D,EAAS0uC,gBAAgB,SACjC,IAAehoG,KAClBoyH,GAAiBpyH,MAInB,IAAWs6D,EAAK21D,kBAAkBzgH,YAAY,SAAC8pD,GAC9C,IAAIt5D,EAAQs5D,EAAS0uC,gBAAgB,SACjC,IAAehoG,KAClBqyH,GAAiBryH,MAInBs6D,EAAKla,MAAQgyE,EAAgBC,EAC7B/3D,EAAKg4D,cAAgBF,EACrB93D,EAAKi4D,cAAgBF,GAQZ,YAAAG,cAAV,WACCroH,KAAK0nH,aAOI,YAAAx9D,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,kBASnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAUZ,sBAAW,0BAAW,C,IAOtB,WACC,OAAO1kF,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAe7C,sBAAW,qBAAM,C,IAQjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAT9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAChCmK,KAAKqoH,iB,gCAgBN,sBAAW,0BAAW,C,IAOtB,WACC,OAAOroH,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAgB7C,sBAAW,oBAAK,C,IAAhB,WACC,IAAKmK,KAAKsoH,OAAQ,CACjB,IAAIrnE,EAAWjhD,KAAKuoH,aACpBtnE,EAASjiD,OAAOmgD,GAAG,OAAO,SAACgF,GAC1BA,EAAM3iD,OAAOqkH,UAAU1hE,MAExBnkD,KAAKsoH,OAAS,IAAIliC,EAAA,EAA0CnlC,GAC5DjhD,KAAKkpD,WAAW1qD,KAAK,IAAI4nF,EAAA,EAAmBpmF,KAAKsoH,SAElD,OAAOtoH,KAAKsoH,Q,gCAMN,YAAAC,WAAP,WACC,IAAIp4D,EAAO,IAAI,GAEf,OADAnwD,KAAKkpD,WAAW1qD,KAAK2xD,GACdA,GAQR,sBAAW,oBAAK,C,IAAhB,WAKC,OAJKnwD,KAAKwoH,SACTxoH,KAAKwoH,OAAS,IAAIlnE,EAAA,EAA4BthD,KAAKyoH,cACnDzoH,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKwoH,UAErCxoH,KAAKwoH,Q,gCAMN,YAAAC,WAAP,WACC,IAAIvC,EAAO,IAAI,GAEf,OADAlmH,KAAKkpD,WAAW1qD,KAAK0nH,GACdA,GAOD,YAAA3jC,WAAP,WACC,IAAID,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CACX,IAAI,EAAoB,GAExBtiF,KAAKynH,MAAMvgH,MAAK,SAACpG,EAAKqvD,GACrB,EAAW3xD,KAAK2xD,MAGjBmyB,EAAOjhF,KAAO,EACdihF,EAAOsK,WAAWrqF,KAAO,SAOpB,YAAA6mG,YAAP,WACC,YAAMA,YAAW,WACjBppG,KAAKynH,MAAMl+G,SAEb,EA7bA,CAAiC,GAqcjC,IAASnK,kBAAT,YAA4C,GCtoB5C,mBAyBC,mBACC,cAAO,KAEP,EAAK27C,UAAY,cAEjB,IAAIh2C,EAAQ,EAAKukE,YAAY8K,EAAA,G,OAC7BrvE,EAAM6jD,aAAc,EACpB7jD,EAAM2mD,eAAiB,SACvB3mD,EAAM0mD,iBAAmB,SACzB1mD,EAAMw/E,UAAW,EACjBx/E,EAAM2jH,eAAgB,EAEtB3jH,EAAMu8D,SAAW,IACjBv8D,EAAMg9D,UAAY,IAElBh9D,EAAMspD,OAAS,cACftpD,EAAM8rD,cAAgB,EACtB9rD,EAAM22C,MAAO,IAAIq4B,EAAA,GAAoBnK,OAAO,QAE5C,EAAK5qE,OAAOmgD,GAAG,iBAAkB,EAAKwpE,cAAe,GAAM,GAE3D,EAAK5jH,MAAQA,EAMb,EAAK4kD,a,EAkBP,OAtEiC,iBAuDtB,YAAAg/D,cAAV,WACC3oH,KAAK+E,MAAMu8D,SAAWthE,KAAKshE,SAC3BthE,KAAK+E,MAAMg9D,UAAY/hE,KAAK+hE,WAStB,YAAAlhB,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAK+E,MAAM87C,SAAS//B,EAAO/b,QAE7B,EAtEA,CAAiC,GA8EjC,IAAS3F,kBAAT,YAA4C,GCrE5C,mBA0DC,mBACC,cAAO,KAnCD,EAAAwpH,YAAsB,EAQtB,EAAAC,aAAuB,EA4B7B,EAAK9tE,UAAY,aAEjB,EAAKz+C,MAAQ,GACb,EAAKC,OAAS,GAEd,IAAIusH,EAAY,EAAKx/C,YAAY,IACjCw/C,EAAUlgE,aAAc,EAExBkgE,EAAUjY,UAAY,EACtBiY,EAAU7X,UAAY,GACtB6X,EAAU/jH,MAAMwd,KAAO,SAGvBumG,EAAUxsH,MAAQ,IAClBwsH,EAAUvsH,OAAS,IACnBusH,EAAU/jH,MAAM0mD,iBAAmB,OACnCq9D,EAAU/jH,MAAMu+D,QAAQ,EAAG,EAAG,EAAG,GACjC,EAAKwlD,UAAYA,EAEjB,IAAItkC,EAAa,EAAKlb,YAAY,IAClCkb,EAAW57B,aAAc,EACzB47B,EAAWz/E,MAAM2jH,eAAgB,EACjClkC,EAAWqsB,UAAY,GACvBrsB,EAAWysB,UAAY,GACvBzsB,EAAWloF,MAAQ,IACnBkoF,EAAWjoF,OAAS,IAEpBioF,EAAWz/E,MAAM0mD,iBAAmB,SACpC,EAAK+4B,WAAaA,EAElB,IAAIhvB,EAAc,EAAKA,Y,OACvBA,EAAYhrB,WAAWkR,MAAO,IAAIq4B,EAAA,GAAoBnK,OAAO,sBAC7DpU,EAAYhrB,WAAWmmB,QAAU,GACjC6E,EAAYhrB,WAAWqhB,SAAU,EAEjC,EAAKkZ,WAAWvP,YAAY3U,SAAS2U,G,EAgMvC,OA/RgC,iBAyGxB,YAAAowD,gBAAP,sBACC,YAAMA,gBAAe,WACrB5lH,KAAK4oH,YAAc,EACnB5oH,KAAK6oH,aAAe,EACpB,IAAIjuC,EAAQ56E,KAAK46E,MAEjB,GAAIA,EAAO,CACV,IAAI,EAAcA,EAAMpf,YACpBx7D,KAAKumH,iBACR,IAAWvmH,KAAKumH,iBAAiB,SAACp3D,GACjC,IAAI+2D,EAAO/2D,EAAS+2D,KAChBrwH,EAAQs5D,EAAS0uC,gBAAgB,SACrC,GAAI,IAAehoG,GAAQ,CAC1BqwH,EAAK/4G,OAAS,EAAKytE,MAAM2sC,eAEzB,IAAIjtH,OAAC,EACDC,OAAC,EACDuB,OAAK,EAqBT,GAnBmB,cAAf,GACHxB,EAAI,EAAK2sB,OAAS,EAAKK,GACvB/sB,EAAI,EAAKquH,YAAc,EAAKxhG,OAAS,EAAKG,GAC1CzrB,EAAQ,IAGRvB,EAAI,EAAK6sB,OAAS,EAAKG,GACvBjtB,EAAI,EAAKsuH,YAAc,EAAK3hG,OAAS,EAAKK,GAC1CxrB,EAAQ,IAGToqH,EAAK6C,KAAOzuH,EACZ4rH,EAAK8C,KAAOzuH,EACZ2rH,EAAKjoH,WAAanC,EAClBoqH,EAAKhoH,SAAWpC,EAChBoqH,EAAK7vC,SAAStvD,SAAWjrB,EAEzBoqH,EAAK+C,UAAYpzH,EAAQ+kF,EAAMsuC,aAE1B/5D,EAAS82D,SAAU,CAEJ,cAAf,GACHC,EAAK5kD,SAAW,IAChB4kD,EAAKiD,OAAS,EAAKliG,OAAS,EAAKK,GAAK4+F,EAAK5kD,SAC3C4kD,EAAKkD,OAASlD,EAAK8C,OAGnB9C,EAAKnkD,UAAY,IACjBmkD,EAAKiD,OAASjD,EAAK6C,KACnB7C,EAAKkD,OAAS,EAAKhiG,OAAS,EAAKG,GAAK2+F,EAAKnkD,WAI5C,IAAYmkD,EAAK7vC,UAEjB6vC,EAAKxqE,KAAOyT,EAAS42D,OAAOhpE,MAC5B,IAAI,EAAOmpE,EAAK7vC,SAAS+vC,MAAMjmE,SAAS,GACpC,IACmB,YAAlB+lE,EAAKC,YACR,EAAKppE,MAAQ,EAAKA,OAEnB,EAAK4T,QAAU,EACfu1D,EAAKxqE,KAAOwqE,EAAK7vC,SACjB6vC,EAAK73D,OAAS63D,EAAK7vC,SACnB6vC,EAAK7vC,SAAShsB,YAIhB,EAAKu+D,aAAe1C,EAAK+C,cAKxBjpH,KAAK0mH,iBACR,IAAW1mH,KAAK0mH,iBAAiB,SAACv3D,GACjC,IAAI+2D,EAAO/2D,EAAS+2D,KACpBA,EAAK/4G,OAAS,EAAKytE,MAAM2sC,eACzB,IAAI1xH,EAAQs5D,EAAS0uC,gBAAgB,SACrC,GAAI,IAAehoG,GAAQ,CAC1B,IAAIyE,OAAC,EACDC,OAAC,EACDuB,OAAK,EAqBT,GAnBmB,cAAf,GACHA,EAAQ,EACRxB,EAAI,EAAK2sB,OAAS,EAAK6qC,WAAa,EAAKxqC,GAAK,EAC9C/sB,EAAI,EAAKsuH,aAAe,EAAKzhG,OAAS,EAAKG,KAG3CzrB,EAAQ,GACRxB,EAAI,EAAKuuH,aAAe,EAAK5hG,OAAS,EAAKK,GAC3C/sB,EAAI,EAAK6sB,OAAS,EAAK2qC,YAAc,EAAKxqC,GAAK,GAGhD2+F,EAAKiD,OAAS7uH,EACd4rH,EAAKkD,OAAS7uH,EACd2rH,EAAKjoH,WAAanC,EAClBoqH,EAAKhoH,SAAWpC,EAChBoqH,EAAK7vC,SAAStvD,SAAWjrB,EAEzBoqH,EAAK+C,UAAYpzH,EAAQ,EAAK+kF,MAAMsuC,aAE/B/5D,EAAS42D,OAAQ,CACF,cAAf,GACHG,EAAK5kD,SAAW,IAChB4kD,EAAK6C,KAAO,EAAK9hG,OAASi/F,EAAK5kD,SAAW,EAAKh6C,GAC/C4+F,EAAK8C,KAAO9C,EAAKkD,SAGjBlD,EAAKnkD,UAAY,IACjBmkD,EAAK6C,KAAO7C,EAAKiD,OACjBjD,EAAK8C,KAAO,EAAK5hG,OAAS8+F,EAAKnkD,UAAY,EAAKx6C,IAGjD2+F,EAAKv1D,QAAU,EAAKA,QAEpB,IAAI,EAAOu1D,EAAK7vC,SAAS+vC,MAAMjmE,SAAS,GACpC,IACmB,YAAlB+lE,EAAKC,YACR,EAAKppE,MAAQ,EAAKA,OAEnB,EAAK4T,QAAU,EACfu1D,EAAKxqE,KAAOwqE,EAAK7vC,SACjB6vC,EAAK73D,OAAS63D,EAAK7vC,SACnB6vC,EAAK7vC,SAAShsB,YAIhB,EAAKw+D,cAAgB3C,EAAK+C,cAM9BjpH,KAAK2nF,eAAe3nF,KAAK8oH,WACzB9oH,KAAK2nF,eAAe3nF,KAAKwkF,aAQhB,YAAAmD,eAAV,SAAyBC,GACpBA,IACHA,EAAOttF,EAAI0F,KAAKmzD,cAAgBy0B,EAAOipB,UACvCjpB,EAAOrtF,EAAIyF,KAAKozD,eAAiBw0B,EAAOqpB,YAe1C,sBAAW,oBAAK,C,IAOhB,WACC,OAAOjxG,KAAKujD,iBAAiB,U,IAR9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,I,gCAehC,YAAAgrD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAK8oH,UAAUjoE,SAAS//B,EAAOgoG,WAC/B9oH,KAAKwkF,WAAW3jC,SAAS//B,EAAO0jE,aAGlC,EA/RA,CAAgC,IAuShC,IAASplF,kBAAT,WAA2C,G,cC7P3C,eA8BC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,aAGjB,IAAIg5B,EAAA,EAEJ,EAAKh2E,QAAU,GACf,EAAK+wE,qBAAuB,GAE5B,EAAK7wE,WAAa,EAClB,EAAKC,SAAW,EAEhB,EAAK+qH,UAAY,EAEjB,EAAKE,OAAS,EACd,EAAKJ,KAAO,EAEZ,EAAKK,OAAS,EACd,EAAKJ,KAAO,EAEZ,EAAKjC,WAAa,EAAKz9C,YAAY0P,GAAA,GACnC,EAAK+tC,WAAWn+D,aAAc,EAC9B,EAAKm+D,WAAWl2D,cAAgB,EAEhC,EAAKlH,a,EAiQP,OAxTgC,iBA+DxB,YAAAU,SAAP,WAGC,GAFA,YAAMA,SAAQ,YAETrqD,KAAKmhD,WAAY,CAErB,IAAIugE,EAAK1hH,KAAKmpH,OACVtF,EAAK7jH,KAAKopH,OACVtxB,EAAK93F,KAAK+oH,KACVtxB,EAAKz3F,KAAKgpH,KAET,IAAelxB,KACnBA,EAAK4pB,GAGD,IAAejqB,KACnBA,EAAKosB,GAGN,IAAI5lH,EAAa+B,KAAK/B,WAClBC,EAAW8B,KAAK9B,SAChBwgC,EAAI1+B,KAAKipH,UAETn9G,EAAO,GAEPu9G,EAAM3H,EACN4H,EAAMzF,EAEN0F,EAAMzxB,EACN0xB,EAAM/xB,EAENgyB,EAAM/H,EAAKhjF,EAAI,IAAUzgC,GACzByrH,EAAM5xB,EAAKp5D,EAAI,IAAUxgC,GAEzByrH,EAAM9F,EAAKnlF,EAAI,IAAUzgC,GACzB2rH,EAAMnyB,EAAK/4D,EAAI,IAAUxgC,GAEzB2rH,EAAMnI,EAAKhjF,EAAI,EAAI,IAAUzgC,GAC7B6rH,EAAMhyB,EAAKp5D,EAAI,EAAI,IAAUxgC,GAE7B6rH,EAAMlG,EAAKnlF,EAAI,EAAI,IAAUzgC,GAC7B+rH,EAAMvyB,EAAK/4D,EAAI,EAAI,IAAUxgC,GAEjC8B,KAAKkpE,OAASlpE,KAAKkpE,QAAUlpE,KAAKmvD,SAASxnD,MAE3C,IAAIhK,EAAWqC,KAAKjC,SAAW,EAAIiC,KAAKjC,SAAW,IAAUE,GACzDL,EAAWoC,KAAKjC,SAAW,EAAIiC,KAAKjC,SAAW,IAAUE,GAK7D,GAHA+B,KAAK+mH,WAAWppH,SAAWA,EAC3BqC,KAAK+mH,WAAWnpH,SAAWA,EAEvB,IAAe8gC,IAAO,IAAegjF,IAAO,IAAe5pB,IAAO,IAAe+rB,IAAO,IAAepsB,GAAM,CAG5G,IAAY4xB,EAAK,IAAM,IAAYE,EAAK,KAC3CA,GAAO,KAGJ,IAAYD,EAAK,IAAM,IAAYE,EAAK,KAC3CA,GAAO,KAGJ,IAAYC,EAAK,IAAM,IAAYC,EAAK,KAC3CA,GAAO,KAGJ,IAAYC,EAAK,IAAM,IAAYC,EAAK,KAC3CA,GAAO,KAGR,IAAIltH,EAAOnF,KAAKK,IAAI6xH,EAAKC,EAAKL,EAAKE,GAC/B5sH,EAAOpF,KAAKK,IAAI+xH,EAAKC,EAAKN,EAAKE,GAC/B5sH,EAAOrF,KAAKM,IAAI4xH,EAAKC,EAAKL,EAAKE,GAC/B1sH,EAAOtF,KAAKM,IAAI8xH,EAAKC,EAAKN,EAAKE,GAEnCxpH,KAAKsnD,MAAQ,CACZhtD,EAAGoC,EACHnC,EAAGoC,EACHL,MAAOM,EAAOF,EACdH,OAAQM,EAAOF,GAGhB,IAAIstH,EAAMjqH,KAAK8uE,qBAEXo7C,EAAOb,GAAOE,EAAMF,GAAOY,EAAM,IAAUhsH,GAC3CksH,EAAOb,GAAOE,EAAMF,GAAOW,EAAM,IAAUhsH,GAE3CmsH,EAAOb,GAAOA,EAAMF,GAAOY,EAAM,IAAU/rH,GAC3CmsH,EAAOb,GAAOA,EAAMF,GAAOW,EAAM,IAAU/rH,GAE3CosH,EAAOT,GAAOC,EAAMD,GAAOI,EAAM,IAAUhsH,GAC3CssH,EAAOR,GAAOC,EAAMD,GAAOE,EAAM,IAAUhsH,GAE3CusH,EAAOV,GAAOA,EAAMD,GAAOI,EAAM,IAAU/rH,GAC3CusH,EAAOT,GAAOA,EAAMD,GAAOE,EAAM,IAAU/rH,GAE3CpC,EAAQ,IAAe,CAAExB,EAAG4vH,EAAM3vH,EAAG4vH,GAAQ,CAAE7vH,EAAG8vH,EAAM7vH,EAAG8vH,IAE3D/iG,GAAMoX,EAAI,IAAU5iC,GAAS4iC,GAAK,IAAU5iC,GAAS,IAAUmC,GAC/DspB,GAAMmX,EAAI,IAAU5iC,GAAS4iC,GAAK,IAAU5iC,GAAS,IAAUmC,GAE/DysH,GAAQpjG,EAAK,EAAImiG,GAAOC,EAAMD,GAAOQ,EAAM,IAAUhsH,GACrD0sH,GAAQpjG,EAAK,EAAIoiG,GAAOC,EAAMD,GAAOM,EAAM,IAAUhsH,GAErD2sH,GAAQtjG,EAAK,EAAIoiG,GAAOA,EAAMD,GAAOQ,EAAM,IAAU/rH,GACrD2sH,GAAQtjG,EAAK,EAAIqiG,GAAOA,EAAMD,GAAOM,EAAM,IAAU/rH,GAGzD8B,KAAK+mH,WAAWl1G,SAAW,CAAC,CAAC,CAAEvX,EAAGuvH,EAAKtvH,EAAGwvH,GAAO,CAAEzvH,EAAGgwH,EAAM/vH,EAAGgwH,GAAQ,CAAEjwH,EAAGkwH,EAAMjwH,EAAGkwH,GAAQ,CAAEnwH,EAAGwvH,EAAKvvH,EAAGyvH,KAE1GE,GAAQ5iG,EAAK,EACb6iG,GAAQ5iG,EAAK,EAEb6iG,GAAQ9iG,EAAK,EACb+iG,GAAQ9iG,EAAK,EAEbzb,GAAQ,IAAa,CAAExR,EAAG+uH,EAAK9uH,EAAG+uH,IAClCx9G,GAAQ,IAAI,KAAmBnO,EAAUC,GAAUu+G,OAAO,CAAC,CAAE7hH,EAAG+uH,EAAK9uH,EAAG+uH,GAAO,CAAEhvH,EAAG4vH,EAAM3vH,EAAG4vH,GAAQ,CAAE7vH,EAAG8vH,EAAM7vH,EAAG8vH,GAAQ,CAAE/vH,EAAGivH,EAAKhvH,EAAGivH,KACxI19G,GAAQ,IAAa,CAAExR,EAAGovH,EAAKnvH,EAAGqvH,IAClC99G,GAAQ,IAAI,KAAmBnO,EAAUC,GAAUu+G,OAAO,CAAC,CAAE7hH,EAAGovH,EAAKnvH,EAAGqvH,GAAO,CAAEtvH,EAAGswH,EAAMrwH,EAAGswH,GAAQ,CAAEvwH,EAAGowH,EAAMnwH,EAAGowH,GAAQ,CAAErwH,EAAGmvH,EAAKlvH,EAAGovH,KACxI79G,GAAQ,MAGT9L,KAAKkmH,KAAKp6G,KAAOA,EAEb9L,KAAK2tG,cACR3tG,KAAK8mH,YAAYh7G,KAAOA,EACxB9L,KAAKynF,iBAAiB71B,KAAO5xD,KAAK8mH,aAEnC9mH,KAAK2mH,oBAUP,sBAAW,qBAAM,C,IAOjB,WACC,OAAO3mH,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,mBAAI,C,IAOf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAR9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAgBtC,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,mBAAI,C,IAOf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAR9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAgBtC,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAe3C,sBAAW,mCAAoB,C,IAO/B,WACC,OAAOmK,KAAKujD,iBAAiB,yB,IAR9B,SAAgC1tD,GAC/BmK,KAAKopD,iBAAiB,uBAAwBvzD,GAAO,I,gCAetD,sBAAW,sBAAO,C,IAOlB,WACC,OAAOmK,KAAKujD,iBAAiB,Y,IAR9B,SAAmB1tD,GAClBmK,KAAKopD,iBAAiB,UAAWvzD,GAAO,I,gCAU1C,EAxTA,CAAgC,IAgUhC,IAASuJ,kBAAT,WAA2C,G,aC1Y3C,eAyBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,wBACjB,EAAK4O,a,EAEP,OA9B2C,iBA8B3C,EA9BA,CAA2C,IA+G3C,eAwFC,mBAGC,cAAO,K,OACP,EAAK5O,UAAY,gBACjB,EAAKygB,YAAc,aACnB,EAAKsvD,UAAY,SAEjB,EAAKtD,eAAelrH,MAAQ,YAAQ,KACpC,EAAKkrH,eAAejrH,OAAS,YAAQ,KAErC,EAAKgrH,eAAejrH,MAAQ,YAAQ,KACpC,EAAKirH,eAAehrH,OAAS,YAAQ,KAGrC,EAAKotD,a,EAucP,OA9iBmC,iBA+G3B,YAAAw4C,aAAP,sBACC,YAAMA,aAAY,WAElBniG,KAAK+qH,YAAc,EAEnB/qH,KAAKynH,MAAMvgH,MAAK,SAACpG,EAAKqvD,GACrBA,EAAK66D,WAAQt+G,KAGd1M,KAAKynH,MAAMvgH,MAAK,SAACpG,EAAKqvD,GACrBA,EAAK66D,MAAQ,EAAKC,aAAa96D,EAAM,GACrC,EAAK46D,YAAc,IAAU,EAAKA,YAAa56D,EAAK66D,WAW5C,YAAAC,aAAV,SAAuB96D,EAAqB66D,GAA5C,WAEKE,EAAmB,CAACF,GAYxB,OAXA,IAAW76D,EAAK61D,kBAAkB3gH,YAAY,SAAC6gH,GAC1CA,EAAKD,WACJ,IAAeC,EAAKD,SAAS+E,OAChCE,EAAO1sH,KAAK0nH,EAAKD,SAAS+E,MAAQ,GAGlCE,EAAO1sH,KAAK,EAAKysH,aAAa/E,EAAKD,SAAU+E,EAAQ,QAKjDzzH,KAAKM,IAAG,MAARN,KAAI,YAAQ2zH,KAUV,YAAAC,qBAAV,sBAECnrH,KAAKorH,UAAY,GACjBprH,KAAKqrH,iBAAmB,GACxBrrH,KAAKsrH,OAAS,EAEd,IAiCIC,EASAC,EACAzoD,EA3CA9sB,EAAQj2C,KAAKmvD,SAASp2D,OAAOlD,MAAMoiD,IAEvC,IAAWj4C,KAAK+nH,SAAS,SAACF,GACzB,IAAI13D,EAAO03D,EAAQ,GACnB,EAAKC,aAAa33D,MAGnBnwD,KAAKynH,MAAMvgH,MAAK,SAACpG,EAAKqvD,GACrB,IAAI66D,EAAQ76D,EAAK66D,MAEbn1H,EAAQ0B,KAAKM,IAAIs4D,EAAKg4D,cAAeh4D,EAAKi4D,eAG1CvyH,EAAQogD,EAAQ,EAAKqxE,cACxBzxH,EAAQogD,EAAQ,EAAKqxE,aAGlB,IAAe,EAAK8D,UAAUJ,IACjC,EAAKI,UAAUJ,IAAUn1H,EAGzB,EAAKu1H,UAAUJ,GAASn1H,EAGrB,IAAe,EAAKw1H,iBAAiBL,IACxC,EAAKK,iBAAiBL,KAGtB,EAAKK,iBAAiBL,GAAS,KAOhCO,EADuB,cAApBvrH,KAAKw7D,YACUx7D,KAAKkiF,eAAengB,UAAY,EAGhC/hE,KAAKkiF,eAAe5gB,SAAW,EAOlD,IAAathE,KAAKorH,WAAW,SAACtqH,EAAKjL,GAClC,IAAI41H,EAAY51H,EAEZ61H,EAAiB,EAAKL,iBAAiBvqH,GACvCooH,GAAeqC,GAAmBG,EAAiB,GAAK,EAAKrE,aAAeoE,EAE5EvC,GAAehlG,MAClBglG,EAAc,IAGXnmD,EAAYmmD,IAAgB,IAAenmD,MAC9CA,EAAYmmD,EACZ,EAAKoC,OAASG,EACdD,EAAc,IAAe1qH,OAI/Bd,KAAK2rH,aAAeH,EAEpB,IAAII,EAAuB5rH,KAAKqrH,iBAAiBrrH,KAAK2rH,cAElDzC,GAAeqC,GAAmBK,EAAuB,GAAK5rH,KAAKqnH,aAAernH,KAAKsrH,OAM3F,GAJIpC,GAAehlG,MAClBglG,EAAc,GAGV,IAAelpH,KAAKkpH,aAGpB,CACJ,IAAI2C,OAAW,EACf,IACCA,EAAc7rH,KAAK8rH,iBAAiB/1D,iBAAiB,GAAG7lC,GAEzD,MAAOnf,IAIP,GAAI86G,GAAe3C,EAAa,CAC/B,IAAIniF,EAAW/mC,KAAKwxG,sBACpB,IACCzqE,EAAW/mC,KAAKynH,MAAMxmE,SAASgM,OAAO/N,OAAO,UAAU+W,mBAExD,MAAOllD,IAIP/Q,KAAK8rH,iBAAmB,IAAIx7C,GAAA,EAAUtwE,KAAM,CAAEqqC,SAAU,cAAela,KAAMnwB,KAAKkpH,YAAah5F,GAAIg5F,GAAeniF,EAAU/mC,KAAK+rH,qBAAqBtyH,QACtJuG,KAAKkpD,WAAW1qD,KAAKwB,KAAK8rH,wBArB3B9rH,KAAKkpH,YAAcA,GA+Bd,YAAA7+D,SAAP,sBACC,YAAMA,SAAQ,WAEdrqD,KAAKmrH,uBAEL,IAAIzxC,EAAY15E,KAAKwnH,eAEjBwE,EAA8C,GAE9CJ,EAAuB5rH,KAAKqrH,iBAAiBrrH,KAAK2rH,cAElD11E,EAAQj2C,KAAKmvD,SAASp2D,OAAOlD,MAAMoiD,IAEvC,IAAWj4C,KAAK+nH,SAAS,SAACF,GACzB,IAiBI9hC,EACAzrF,EACAC,EAnBA41D,EAAO03D,EAAQ,GACfmD,EAAQ76D,EAAK66D,MACbiB,EAA0B,EAE1BC,EAAY,EAAKb,iBAAiBL,GAEtC,OAAQ,EAAKF,WACZ,IAAK,SACJmB,GAAmB,EAAKX,OAAS,EAAKF,UAAUJ,IAAU,EAAK9B,aAAegD,EAAYN,GAAwB,EAAKvE,YACvH,MACD,IAAK,SACJ4E,GAAmB,EAAKX,OAAS,EAAKF,UAAUJ,IAAU,EAAK9B,YAAc,GAAKgD,EAAYN,GAAwB,EAAKvE,YAAc,EAI3Il3D,EAAKhjD,OAASusE,EAMd,IAAI7jF,EAAQ0B,KAAKM,IAAIs4D,EAAKg4D,cAAeh4D,EAAKi4D,eAM9C,GAJIvyH,EAAQogD,EAAQ,EAAKqxE,cACxBzxH,EAAQogD,EAAQ,EAAKqxE,aAGE,cAApB,EAAK9rD,YAA6B,CAGrClhE,GAFAyrF,GAAS,EAAK3/B,WAAa+J,EAAK2B,YAAc,EAAKi5D,aAEvC56D,EAAK66D,MACjBzwH,EAAIyxH,EAAehB,IAAUiB,EAE7B,IAAI/yF,EAAIrjC,EAAQ,EAAKqzH,YAErB/4D,EAAK5zD,OAAS28B,EACdi3B,EAAKzzD,KAAOpC,EACZ61D,EAAKvzD,KAAOtC,EACZ0xH,EAAehB,GAASzwH,EAAI2+B,EAAI,EAAKmuF,gBAEjC,CACJthC,GAAS,EAAK7/B,YAAciK,EAAK4B,aAAe,EAAKg5D,YAErDzwH,EAAI0xH,EAAehB,IAAUiB,EAC7B1xH,EAAIwrF,EAAQ51B,EAAK66D,MAEjB,IAAItsF,EAAI7oC,EAAQ,EAAKqzH,YAErB/4D,EAAK7zD,MAAQoiC,EACbyxB,EAAKxzD,KAAOpC,EACZ41D,EAAKtzD,KAAOtC,EACZyxH,EAAehB,GAAS1wH,EAAIokC,EAAI,EAAK2oF,YAEtCl3D,EAAK71D,EAAIA,EACT61D,EAAK51D,EAAIA,MAWD,YAAAupE,SAAV,SAAmB/8B,GAAnB,WAEC,IAAI/mC,KAAKgpD,YAAT,CAIA,GAAIhpD,KAAKwxG,sBAAwB,EAAG,CACnC,IAAI,EAAYxxG,KAAKwnH,eAEjB,EAAY,EAEhB,IAAWxnH,KAAKonH,MAAM/hH,YAAY,SAAC6gH,GAClCA,EAAKj6D,KAAK,MAGX,IAAWjsD,KAAK+nH,SAAS,SAACF,GAEzB,IAEIx9E,EAFA8lB,EAAO03D,EAAQ,GAIK,cAApB,EAAKrsD,aACRrL,EAAK7oC,KAAO,EAAUwqC,WAAa3B,EAAK2B,YAAcv6D,KAAKM,IAAI,EAAKkzH,YAAa,GACjF1gF,EAAW,OAGX8lB,EAAK5oC,KAAO,EAAUwqC,YAAc5B,EAAK4B,aAAex6D,KAAKM,IAAI,EAAKkzH,YAAa,GACnF1gF,EAAW,MAGZ,IAAIiqC,EAAQ,EACRvtC,EAAW,EAAKyqE,sBAChB,EAAKG,yBACRr9B,EAAQ,EAAKs9B,4BAA8B,EAAI7qE,EAAW,EAAI,IAAa,EAAK0gF,MAAMpiH,aAGvF8qD,EAAKQ,QAAU,EACfR,EAAKy1D,kBAELz1D,EAAK2F,QAAQ,CAAC,CAAEzrB,SAAU,UAAWla,KAAM,EAAGD,GAAI,GAAK,CAAEma,SAAUA,EAAUna,GAAI,IAAM,EAAKshF,sBAAuB,EAAKua,qBAAqBz3C,MAAMA,GAEnJ,IAAWnkB,EAAK21D,kBAAkBzgH,YAAY,SAAC8pD,GAC9C,IAAIqH,EAAYrH,EAAS+2D,KAAKriD,KAAK,EAAK2tC,uBACpCh7C,IAAcA,EAAUW,cAC3BX,EAAU8d,MAAMA,MAIlB,IAAWnkB,EAAK61D,kBAAkB3gH,YAAY,SAAC8pD,GAC9C,IAAKA,EAAS82D,SAAU,CACvB,IAAIzvD,EAAYrH,EAAS+2D,KAAKriD,KAAK,EAAK2tC,uBACpCh7C,IAAcA,EAAUW,cAC3BX,EAAU8d,MAAMA,OAKnB,OAIF,OAAO,YAAMxQ,SAAQ,aAQZ,YAAAukD,cAAV,sBACCroH,KAAK0nH,YAEL,IAAIsE,EAA8C,GAElD,IAAWhsH,KAAK+nH,SAAS,SAACF,GACzB,IAKIx9E,EACA8hF,EANAh8D,EAAO03D,EAAQ,GACfmD,EAAQ76D,EAAK66D,MAEbiB,GAAmB,EAAKX,OAAS,EAAKF,UAAUJ,IAAU,EAAK9B,YAAc,EAIzD,cAApB,EAAK1tD,aACRnxB,EAAW,IACX8hF,EAAah8D,EAAK4B,cAGlB1nB,EAAW,IACX8hF,EAAah8D,EAAK2B,YAGnB3B,EAAK2F,QAAQ,CAAEzrB,SAAUA,EAAUna,GAAI87F,EAAehB,IAAUiB,GAAmB,EAAKza,sBAAuB,EAAKua,qBACpHC,EAAehB,IAAUgB,EAAehB,IAAUiB,GAAmBE,EAAa,EAAK9E,YAEvFl3D,EAAKy1D,sBAQG,YAAA17D,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,oBASnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQZ,sBAAW,wBAAS,C,IAQpB,WACC,OAAO1kF,KAAKujD,iBAAiB,c,IAT9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GACnCmK,KAAKqoH,iB,gCAeN,sBAAW,0BAAW,C,IAmBtB,WACC,OAAOroH,KAAKujD,iBAAiB,gB,IApB9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,GAC5C,IAAIizH,EAAY9oH,KAAKynH,MAAMxmE,SAAS6nE,UAEvB,YAATjzH,GACHmK,KAAKynH,MAAMxmE,SAAS3kD,WAAQoQ,EAC5Bo8G,EAAU/jH,MAAM0mD,iBAAmB,SACnCq9D,EAAUjY,UAAY,KAGtB7wG,KAAKynH,MAAMxmE,SAAS1kD,YAASmQ,EAC7Bo8G,EAAU/jH,MAAM0mD,iBAAmB,OACnCq9D,EAAUjY,UAAY,I,gCAcjB,YAAA0X,WAAP,WACC,IAAIp4D,EAAO,IAAI,GAEf,OADAnwD,KAAKkpD,WAAW1qD,KAAK2xD,GACdA,GAMD,YAAAs4D,WAAP,WACC,IAAIvC,EAAO,IAAI,GAEf,OADAlmH,KAAKkpD,WAAW1qD,KAAK0nH,GACdA,GAOR,sBAAW,0BAAW,C,IAAtB,WACC,OAAOlmH,KAAKosH,c,IAOb,SAAuBv2H,GAClBA,GAASmK,KAAKosH,eACjBpsH,KAAKosH,aAAev2H,EACpBmK,KAAK0pD,e,gCAOP,YAAA0/C,YAAA,WACC,YAAMA,YAAW,WACjBppG,KAAK+nH,QAAU/nH,KAAKynH,MAAMpiH,YAG5B,EA9iBA,CAAmC,IAsjBnC,IAASjG,kBAAT,cAA8C,GCxoB9C,mBA6EC,mBACC,cAAO,KACP,EAAK27C,UAAY,YAEjB,IAAIh2C,EAAQ,EAAKukE,YAAY,IAC7BvkE,EAAMsc,SAAW,GACjBtc,EAAM1G,OAAS,EACf0G,EAAMwd,KAAO,SACbxd,EAAMmkE,OAAS,EACfnkE,EAAM6jD,aAAc,EACpB,EAAK7jD,MAAQA,EAEb,EAAKy8D,OAAS,OAEd,EAAKxiE,OAAOmgD,GAAG,kBAAmB,EAAKktE,eAAgB,GAAM,GAE7D,EAAK7gE,YAAa,EAClB,EAAK7iD,MAAQ,EAAK2gE,YAAY4K,GAAA,GAC9B,EAAKvrE,MAAM6iD,YAAa,EAExB,IAAIgK,EAAc,EAAKA,Y,OACvBA,EAAYhrB,WAAWkR,MAAO,IAAIq4B,EAAA,GAAoBnK,OAAO,sBAC7DpU,EAAYhrB,WAAWmmB,QAAU,GACjC6E,EAAYhrB,WAAWqhB,SAAU,EAEjC,EAAKuhB,oBAAqB,EAE1B,EAAKzkE,MAAM6sD,YAAYhrB,WAAWqhB,SAAU,EAE5C,EAAKqB,QAAQ5jD,IAAI,YAAY,SAAC25E,EAAUzhF,GACpC,OAAOA,EAAOmH,MAAMi7G,IAAMpiH,EAAOmH,MAAMtK,QAAUmD,EAAOmH,MAAMtK,OAASmD,EAAOmH,MAAMk2G,kBAAoB,MAG5G,EAAK3xD,QAAQ5jD,IAAI,YAAY,SAACyrE,EAAUvzE,GACpC,OAAOA,EAAOmH,MAAMm7G,IAAMtiH,EAAOmH,MAAMtK,QAAUmD,EAAOmH,MAAMtK,OAASmD,EAAOmH,MAAMk2G,kBAAoB,M,EA4J9G,OA3Q+B,iBAyHvB,YAAA+G,gBAAP,sBACC,YAAMA,gBAAe,WAErB,IAAI7gH,EAAQ/E,KAAK+E,MACb4D,EAAQ3I,KAAK2I,MACbiyE,EAAQ56E,KAAK46E,MACjB,GAAIA,GAASjyE,EAAO,CAEnB,IAAIsvC,EAAMj4C,KAAKi2C,MACX,EAAMttC,EAAM9J,IACZ,EAAkB8J,EAAM1K,WAE5B+B,KAAKoW,SAASlP,MAAK,SAACynD,GACnB,GAAIA,aAAiB,EAAQ,CAC5B,IAAIkiD,EAAYliD,EAAMkiD,UACjB,IAAeA,KACnBA,EAAY,IAEb,IAAII,EAAYtiD,EAAMsiD,UACjB,IAAeA,KACnBA,EAAY,GAGb,IAAIqb,EAAa,EAAkB,EAAMzb,EACrC0b,EAActb,EAAYtoG,EAAMtK,OAEpCswD,EAAMr0D,EAAIiyH,EAAc,IAAUD,GAClC39D,EAAMp0D,EAAIgyH,EAAc,IAAUD,OAKpC,IAAIE,EAAa,EAAkB,EAAMznH,EAAMsc,SAC3CpjB,EAAa,GAAmB,EAAIg6C,EAAMj4C,KAAKysH,eAAiB,EAAM,GAEtE,IAAYxuH,KACfA,EAAa,GAGd8G,EAAM06G,YAAY+M,EAAY7jH,EAAMtK,QAEpC2B,KAAK0sH,UAAYzuH,EAEb+B,KAAK0mH,iBAER,IAAW1mH,KAAK0mH,iBAAiB,SAACv3D,GACjC,IAAI+2D,EAAO/2D,EAAS+2D,KACpBA,EAAK/4G,OAAS,EAAKytE,MAAM2sC,eACzB,IAAI1xH,EAAQs5D,EAAS0uC,gBAAgB,SAErC,GAAI,IAAehoG,GAAQ,CAE1B,GAAI+kF,EAAM+xC,UAAW,CACpB,IAAIlqD,EAAeyjD,EAAKzjD,aACnB,IAAeA,KACnBA,EAAe,GAEhBA,GAA8B,IAE9ByjD,EAAKjoH,WAAa,EAAkB,EAAM,EAAI,EAAM,EAAIwkE,EACxDyjD,EAAKrnH,IAAM,EAAM4jE,OAGjByjD,EAAKrnH,IAAMhJ,EAAQ+kF,EAAMgyC,WACzB1G,EAAKjoH,WAAa,EAAKyuH,UACvB,EAAKA,WAAaxG,EAAKrnH,IAGnBswD,EAAS42D,SACbG,EAAKhoH,SAAWgoH,EAAKjoH,YAGtBioH,EAAK7nH,OAASsK,EAAMk2G,qBAOnB7+G,KAAKumH,iBACR,IAAWvmH,KAAKumH,iBAAiB,SAACp3D,GACjC,IAAI+2D,EAAO/2D,EAAS+2D,KAIpB,GAFAA,EAAK7nH,OAASsK,EAAMk2G,iBAEhBjkC,EAAM+xC,UAAW,CACpB,IAAIlqD,EAAeyjD,EAAKzjD,aACnB,IAAeA,KACnBA,EAAe,GAGhBA,GAA8B,IAE9ByjD,EAAKhoH,SAAW,EAAkB,EAAM,EAAI,EAAM,EAAIukE,EACtDyjD,EAAKrnH,IAAM,EAAM4jE,MAEb,CACJyjD,EAAKhoH,SAAW,EAAKwuH,UACrB,IAAI72H,EAAQs5D,EAAS0uC,gBAAgB,SACjC,IAAehoG,KAClBqwH,EAAKrnH,IAAMhJ,EAAQ+kF,EAAMgyC,WACzB,EAAKF,WAAaxG,EAAKrnH,KAIpBswD,EAAS82D,WACbC,EAAKjoH,WAAaioH,EAAKhoH,eAalB,YAAAmuH,eAAV,WACC,IAAI1jH,EAAQ3I,KAAK2I,MACbkkH,EAAS7sH,KAAK8sH,eAAiBnkH,EAAM9J,IAAM,EAC3CR,EAASsK,EAAMtK,OAEf0uH,EAAK1uH,EAAS,IAAUwuH,GACxBG,EAAK3uH,EAAS,IAAUwuH,GAExB/wH,EAAQ,IAAe,CAAExB,EAAGyyH,EAAK/sH,KAAKinB,OAAQ1sB,EAAGyyH,EAAKhtH,KAAKonB,SAE/Dze,EAAM1K,WAAa+B,KAAK8sH,gBAAkBhxH,EAAQ+wH,GAElD7sH,KAAKsnB,IAAOtnB,KAAKinB,OACjBjnB,KAAKunB,IAAOvnB,KAAKonB,QASX,YAAAy5B,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAK+E,MAAM87C,SAAS//B,EAAO/b,OAC3B/E,KAAK2I,MAAMk4C,SAAS//B,EAAOnY,QAE7B,EA3QA,CAA+B,IAmR/B,IAASvJ,kBAAT,UAA0C,GCpR1C,mBAoBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,iBACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9B,EAAK+pD,cAAe,EAEpB,EAAK3X,KAAO,cAEZ,EAAKiO,a,EAsEP,OAlGoC,iBAoC5B,YAAAY,KAAP,WAEC,GAAG,IAAevqD,KAAK83F,GAAK93F,KAAK+3F,GAAK/3F,KAAKy3F,GAAKz3F,KAAK03F,GAAK13F,KAAKitH,IAAMjtH,KAAKktH,KAAM,CAE/E,IAAI1vH,EAAa,CAAElD,EAAG0F,KAAK83F,GAAIv9F,EAAGyF,KAAKy3F,IACnCh6F,EAAa,CAAEnD,EAAG0F,KAAK+3F,GAAIx9F,EAAGyF,KAAK03F,IACnCy1B,EAAa,CAAE7yH,EAAG0F,KAAKitH,IAAK1yH,EAAGyF,KAAKktH,KAEpC/0H,EAAY,IAAaqF,GAAM,IAAuBC,EAAI0vH,GAE9DntH,KAAK8L,KAAO3T,IASd,sBAAW,kBAAG,C,IAOd,WACC,OAAO6H,KAAKujD,iBAAiB,Q,IAR9B,SAAe1tD,GACdmK,KAAKopD,iBAAiB,MAAOvzD,GAAO,I,gCAerC,sBAAW,kBAAG,C,IAOd,WACC,OAAOmK,KAAKujD,iBAAiB,Q,IAR9B,SAAe1tD,GACdmK,KAAKopD,iBAAiB,MAAOvzD,GAAO,I,gCAgB9B,YAAAg4F,gBAAP,SAAuBnyF,GACtB,IAAI8B,EAAK,CAAClD,EAAE0F,KAAK83F,GAAIv9F,EAAEyF,KAAKy3F,IACxB01B,EAAK,CAAC7yH,EAAE0F,KAAKitH,IAAK1yH,EAAEyF,KAAKktH,KACzBzvH,EAAK,CAACnD,EAAE0F,KAAK+3F,GAAIx9F,EAAEyF,KAAK03F,IAExBt9F,EAAS,IAA+BoD,EAAIC,EAAI0vH,EAAIzxH,GACpDrB,EAAS,IAA+BmD,EAAIC,EAAI0vH,EAAIzxH,EAAW,MAEnE,MAAO,CAACpB,EAAEF,EAAOE,EAAGC,EAAEH,EAAOG,EAAGuB,MAAM,IAAe1B,EAAQC,KAE/D,EAlGA,CAAoCmkH,GAAA,GCSpC,eA8BC,mBACC,cAAO,K,OACP,EAAKzjE,UAAY,YAEjB,EAAKgsE,WAAa,EAAKz9C,YAAY,IACnC,EAAKy9C,WAAWn+D,aAAc,EAC9B,EAAKm+D,WAAWl2D,cAAgB,EAEhC,EAAKlH,a,EA0HP,OAhK+B,iBA8CvB,YAAAU,SAAP,WAGC,GAFA,YAAMA,SAAQ,YAETrqD,KAAKmhD,WAAY,CACrB,IAAIljD,EAAa+B,KAAK/B,WAClBC,EAAW8B,KAAK9B,SAEhBW,EAAMmB,KAAKnB,IACXR,EAAS2B,KAAK3B,OAEd4nH,EAAWjmH,KAAKmvD,SAAS82D,SACzBF,EAAS/lH,KAAKmvD,SAAS42D,OAEvBqH,EAAQ,EACRC,EAAQ,EAERpH,IACHmH,EAAQnH,EAASh/F,OAASg/F,EAAS3+F,GACnC+lG,EAAQpH,EAAS7+F,OAAS6+F,EAAS1+F,IAGpC,IAAI+lG,EAAM,EACNC,EAAM,EAOV,GALIxH,IACHuH,EAAMvH,EAAO9+F,OAAS8+F,EAAOz+F,GAC7BimG,EAAMxH,EAAO3+F,OAAS2+F,EAAOx+F,IAG1BlpB,EAAS,EAAG,CACf,IAAIy5F,EAAKz5F,EAAS,IAAUJ,GAAcmvH,EACtC31B,EAAKp5F,EAAS,IAAUJ,GAAcovH,EACtCt1B,EAAK15F,EAAS,IAAUH,GAAYovH,EACpC51B,EAAKr5F,EAAS,IAAUH,GAAYqvH,EAQpCJ,EAAK,CAAE7yH,EAAG,EAAGC,EAAG,GAChBuR,EAAO,IAAa,CAAExR,EAAGw9F,EAAIv9F,EAAGk9F,IAEpC3rF,GAAQ,IAAY7N,EAAYY,EAAKR,GACrCyN,GAAQ,IAAuB,CAAExR,EAAGy9F,EAAIx9F,EAAGm9F,GAAMy1B,GACjDrhH,GAAQ,IAAY5N,EAAUW,EAAKR,GACnCyN,GAAQ,IAAuB,CAAExR,EAAGw9F,EAAIv9F,EAAGk9F,GAAM01B,GAGhDntH,KAAKkmH,KAAKp6G,KADPjN,EAAM,EACQiN,EAGA,GAGd9L,KAAK2tG,cACR3tG,KAAK8mH,YAAYh7G,KAAOA,EACxB9L,KAAKynF,iBAAiB71B,KAAO5xD,KAAK8mH,aAGnC,IAAI0G,EAAUvvH,EAAaY,EAAM,EAC7B4uH,EAAUvvH,EAAWW,EAAM,EAE3BkoH,EAAa/mH,KAAK+mH,WAEtBA,EAAWjvB,GAAKz5F,EAAS,IAAUmvH,GAAWJ,EAC9CrG,EAAWtvB,GAAKp5F,EAAS,IAAUmvH,GAAWH,EAC9CtG,EAAWhvB,GAAK15F,EAAS,IAAUovH,GAAWH,EAC9CvG,EAAWrvB,GAAKr5F,EAAS,IAAUovH,GAAWF,EAE9CxG,EAAWkG,IAAM,EACjBlG,EAAWmG,IAAM,EAEjBnG,EAAW14D,OAASruD,KAAK07C,KAEzB17C,KAAK2mH,qBAUR,sBAAW,qBAAM,C,IAOjB,WACC,OAAO3mH,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAgBxC,sBAAW,kBAAG,C,IAOd,WACC,OAAOmK,KAAKujD,iBAAiB,Q,IAR9B,SAAe1tD,GACdmK,KAAKopD,iBAAiB,MAAOvzD,GAAO,I,gCAUtC,EAhKA,CAA+B,IAwK/B,IAASuJ,kBAAT,UAA0C,GC7M1C,mBAyBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,uBACjB,EAAK4O,a,EAEP,OA9B0C,iBA8B1C,EA9BA,CAA0C,IAmI1C,eAmEC,mBAGC,cAAO,KAlBD,EAAAijE,WAAqB,EAmB3B,EAAK7xE,UAAY,eAEjB,EAAK98C,YAAc,GACnB,EAAKC,SAAW,IAEhB,EAAKG,OAAS,YAAQ,IAEtB,EAAKgU,aAAgB,GAErB,EAAKg1G,YAAc,EAEnB,IAAIqG,EAAiB,EAAKxrC,eAAe5Y,YAAYb,EAAA,G,OACrDilD,EAAejsD,MAAQ,SACvBisD,EAAetrD,OAAS,SACxBsrD,EAAe9kE,aAAc,EAC7B8kE,EAAelsD,OAAS,WACxB,EAAKksD,eAAiBA,EAEtB,EAAKlG,eAAer6G,OAASugH,EAC7B,EAAKnG,eAAep6G,OAASugH,EAE7B,EAAKxrC,eAAeljF,OAAOmgD,GAAG,iBAAkB,EAAKuK,WAAY,GAAM,GAGvE,EAAKC,a,EAyPP,OAxVkC,iBAuG1B,YAAAU,SAAP,sBACK63B,EAAiBliF,KAAKkiF,eAEtBhkF,EAAW8B,KAAK9B,SAChBD,EAAa+B,KAAK/B,WAAa+B,KAAKqnH,YAAc,EAElDtzG,EAAO,IAAiB/T,KAAK/B,WAAY+B,KAAK9B,SAAU,GAG5D6V,EAAO,IAAyB,CAACA,EAFL,CAAEzZ,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,KAI5D,IAAIykH,EAAYzpH,KAAKK,IAAIsqF,EAAe97B,WAAaryC,EAAKzX,MAAO4lF,EAAeh8B,YAAcnyC,EAAKxX,QAE/F,IAAeykH,KAClBA,EAAY,GAGb,IAAI3iH,EAAS,IAA6B2B,KAAK3B,OAAQ2iH,GACnDnC,EAAmB,IAA6B7+G,KAAKqS,YAAahU,GAAQ,GAE1E43C,EAAQj2C,KAAKmvD,SAASp2D,OAAOlD,MAAMoiD,IACnC95C,EAAQ,EAERwvH,EAAW,EACf,IAAW3tH,KAAK+nH,SAAS,SAACF,GACzB,IAAI13D,EAAO03D,EAAQ,GACnB,EAAKC,aAAa33D,GAClBhyD,IACA,IAAItI,EAAQs6D,EAAKla,MACdka,EAAKla,MAAQA,EAAQ,EAAKqxE,cAC5BzxH,EAAQogD,EAAQ,EAAKqxE,aAEtBqG,GAAY93H,KAGbmK,KAAK4sH,YAAc1uH,EAAW8B,KAAK/B,WAAa+B,KAAKqnH,YAAclpH,GAASwvH,EAE5E,IAAW3tH,KAAK+nH,SAAS,SAACF,GACzB,IAAI13D,EAAO03D,EAAQ,GACfl/G,EAAQwnD,EAAKxnD,MAEjBA,EAAMtK,OAASA,EACfsK,EAAM0J,YAAcwsG,EAEpB,IAQIhgH,EARAhJ,EAAQs6D,EAAKla,MAEdka,EAAKla,MAAQA,EAAQ,EAAKqxE,cAC5BzxH,EAAQogD,EAAQ,EAAKqxE,aAGtBn3D,EAAKs8D,cAAgB52H,EAIpBgJ,EADG,EAAK8tH,WACDzuH,EAAW,EAAKD,YAAcE,EAAQ,EAAKkpH,YAG5C,EAAKuF,WAAa/2H,EAGzB8S,EAAM9J,IAAMA,EACZ8J,EAAM1K,WAAaA,EACnBkyD,EAAK28D,eAAiB7uH,EACtBkyD,EAAKhjD,OAAS,EAAKq6G,eACnBr3D,EAAK9F,WACLpsD,GAAcY,EAAM,EAAKwoH,eAG1BrnH,KAAK0tH,eAAej7D,YAAc,CAAEn4D,EAAG+D,EAAS0V,EAAKzZ,EAAGC,EAAG8D,EAAS0V,EAAKxZ,EAAG+B,MAAO+B,EAAS0V,EAAKzX,MAAOC,OAAQ8B,EAAS0V,EAAKxX,QAC9HyD,KAAK0tH,eAAersD,mBAEpB,YAAMhX,SAAQ,YAOL,YAAAH,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,mBASnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IA0BZ,sBAAW,yBAAU,C,IAOrB,WACC,OAAO1kF,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAiC5C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAiB3D,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAkBhE,sBAAW,wBAAS,C,IASpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAV9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,GAC1CmK,KAAKonH,MAAMnmE,SAAS8lE,WAAWl2D,cAAgB,EAC/C7wD,KAAKonH,MAAMnmE,SAASilE,KAAKt1D,YAAc,G,gCAajC,YAAA23D,WAAP,WACC,IAAIp4D,EAAO,IAAI,GAEf,OADAnwD,KAAKkpD,WAAW1qD,KAAK2xD,GACdA,GAMD,YAAAs4D,WAAP,WACC,IAAIvC,EAAO,IAAI,GAEf,OADAlmH,KAAKkpD,WAAW1qD,KAAK0nH,GACdA,GAGT,EAxVA,CAAkC,IAgWlC,IAAS9mH,kBAAT,aAA6C,GC9c7C,mBA8CC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,SAEjB,EAAKz+C,MAAQ,YAAQ,IACrB,EAAKC,OAAS,YAAQ,IAGtB,EAAKyC,OAAOo7E,YAAY,eACxB,EAAK3yB,eAAgB,EAErB,EAAKoJ,cAAgB,EAErB,EAAK2Q,OAAS,OAEd,EAAKosD,eAGL,EAAK5uH,OAAOmgD,GAAG,aAAc,EAAK0uE,eAAgB,GAAM,G,EAoE1D,OApI4B,iBAuEjB,YAAAA,eAAV,WACoB,QAAf7tH,KAAKwhE,SACRxhE,KAAKwhE,OAAS,aAON,YAAAosD,aAAV,WACC5tH,KAAK8qE,OAAS9qE,KAAKspE,YAAY6M,EAAA,GAC/Bn2E,KAAK8qE,OAAOliB,aAAc,EAC1B5oD,KAAK8qE,OAAOtf,YAAa,EACzBxrD,KAAK8qE,OAAOx4D,aAAa,EAAG,EAAG,EAAG,GAClCtS,KAAKkpD,WAAW1qD,KAAKwB,KAAK8qE,SAMpB,YAAAzgB,SAAP,WACC,YAAMA,SAAQ,WACd,IAAIygB,EAAS9qE,KAAK8qE,OACdA,IACHA,EAAOxuE,MAAQ,IAAU0D,KAAK8xD,WAAY9xD,KAAKshE,UAC/CwJ,EAAOvuE,OAAS,IAAUyD,KAAK+xD,YAAa/xD,KAAK+hE,WAC9C+I,EAAOjhC,SACTihC,EAAOzgB,aASH,YAAAxJ,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAK8qE,QACR9qE,KAAK8qE,OAAOjqB,SAAS//B,EAAOgqD,SAU9B,sBAAW,mBAAI,C,IAAf,WACC,OAAI9qE,KAAKyyD,YACDzyD,KAAKyyD,YAETzyD,KAAK8qE,OACD,CAAExwE,EAAG,EAAGC,EAAG,EAAG+B,MAAO0D,KAAK8qE,OAAO3X,cAAe52D,OAAQyD,KAAK8qE,OAAO1X,gBAGpE,CAAE94D,EAAG,EAAGC,EAAG,EAAG+B,MAAO,IAAU0D,KAAK8xD,WAAY9xD,KAAKshE,UAAW/kE,OAAQ,IAAUyD,KAAK+xD,YAAa/xD,KAAK+hE,a,gCAInH,EApIA,CAA4B0G,EAAA,GA4I5B,IAASrpE,kBAAT,OAAuC,GChJvC,mBAqCC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,uBAEjB,EAAK0oD,UAAL,MAA0B,GAC1B,EAAKA,UAAL,MAA0B,GAE1B,EAAKA,UAAL,UAA8B,GAC9B,EAAKA,UAAL,UAA8B,GAE9B,EAAK95C,a,EAsEP,OArH0C,iBAuDzC,sBAAW,qBAAM,C,IAOjB,WACC,OAAO3pD,KAAK8tH,S,IARb,SAAkBhjD,GACjB9qE,KAAK+tH,UAAUjjD,I,gCAUN,YAAAijD,UAAV,SAAoBjjD,GAApB,WAMC,GALI9qE,KAAK8tH,SAAWhjD,GAAU9qE,KAAK8tH,SAClC,IAAc9tH,KAAK8mB,QAAS9mB,KAAK8tH,SAElC9tH,KAAK8tH,QAAUhjD,EAEXA,EAAQ,CACX,IAAImnC,EAA0CnnC,EAAO3b,SACjD8iD,GAAgBA,GAAgBjyG,OACnCiyG,EAAannC,YAASp+D,GAEvB1M,KAAKujF,UAAUzY,GAEf9qE,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAG7B,EAAKngD,WACR,EAAKA,UAAUosH,QAAQ/tE,YAAY6qB,SAMvC,sBAAW,oBAAK,C,IAShB,WACC,IAAIxuE,EAAQ0D,KAAKwqC,WAAWluC,MAI5B,OAHI0D,KAAK4pD,YACRttD,EAAQ0D,KAAK4pD,UAAUnmD,MAAM,QAASnH,IAEhCA,G,IAdR,SAAiBzG,GACZmK,KAAKwqC,WAAWluC,OAASzG,IAC5BmK,KAAKwqC,WAAWluC,MAAQzG,EACpBmK,KAAK4B,WACR5B,KAAK4B,UAAU+iF,oBAAoB3kF,Q,gCAiBtC,sBAAW,4BAAa,C,IAAxB,WAIC,OAHKA,KAAKiuH,iBACTjuH,KAAKiuH,eAAiB,IAAI7nC,EAAA,GAEpBpmF,KAAKiuH,gB,gCAGd,EArHA,CAA0C,IAkL1C,eA+EC,mBACC,cAAO,KAnCE,EAAAC,eAAyB,EAKzB,EAAAC,aAAuB,EA+BhC,EAAKpzE,UAAY,eAEjB,EAAKz+C,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KAEtB,EAAKs0D,cAAgB,EACrB,EAAKD,YAAc,EAEnB,EAAKw9D,WAAY,EAEjB,IAAIC,EAAmB,EAAK7mC,cAAcle,YAAYb,EAAA,G,OACtD4lD,EAAiBzlE,aAAc,EAC/BylE,EAAiB7iE,YAAa,EAC9B6iE,EAAiB7sD,OAAS,OAC1B,EAAK8sD,kBAAoBD,EAEzB,EAAKL,QAAQ/sE,SAASoS,cAAe,EAErC,EAAKuR,mBAAqB,EAAKopD,QAAQ/sE,SAEvC,EAAK0I,a,EAs+BP,OA3kCkC,iBA6GjC,sBAAW,+BAAgB,C,IAA3B,WACC,OAAO3pD,KAAKsuH,mB,gCAOH,YAAApkE,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,mBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQL,YAAAr6B,SAAP,sBAOC,GAFArqD,KAAKynB,MAAM0oC,KAAKxvD,gBAAgB,QAE5BX,KAAK46E,OAAS56E,KAAK6+F,OAAS7+F,KAAK+mG,MAAO,CAC3C,IAuBI,EAvBAwnB,EAAiBvuH,KAAK46E,MAAMwR,OAC5B,EAAuB,EACvB,EAAgB,EAEhB,EAAqD,GACzD,IAAWmiC,EAAelpH,YAAY,SAAC+mF,GAGpC,IAAI,EAFFA,aAAkBoiC,IACjB,EAAKttB,UAAY9U,EAAO8U,WAG1B,EADG,EAAKA,UAAY,EAAKrC,MACjB,EAAKjkB,MAAMuzB,MAAMr3G,QAAQs1F,EAAO2a,OAGhC,EAAKnsB,MAAMozB,MAAMl3G,QAAQs1F,EAAOyS,OAGzC,EAAargG,KAAK,CAAE4tF,OAAQA,EAAQlC,KAAM,SAM7C,EAAa1xD,MAAK,SAACzhC,EAAG0L,GAAM,OAAA1L,EAAEmzF,KAAOznF,EAAT,QAG5B,IAAY,GAAc,SAACgsH,GAC1B,IAAIriC,EAASqiC,EAAWriC,OACpBA,aAAkBoiC,MACfpiC,EAAO6f,SAAW7f,EAAOgiC,WAAe,GAAiBK,EAAWvkC,MAAQkC,EAAOgiC,YACxF,IAGGhiC,GAAU,IACb,EAAQ,EAAe,IAGzB,EAAgBqiC,EAAWvkC,QAGvBlqF,KAAKouH,YACT,EAAQ,EACR,EAAe,GAGhB,IAAI7gC,EAAWvtF,KAAKkhG,SAAS3T,SAEzBgI,EAA4BhI,EAASgI,kBACrCC,EAA0BjI,EAASiI,gBAEvCx1F,KAAKkuH,eAAiB34B,EAAqB,EAAQ,GAAiBC,EAAkBD,GACtFv1F,KAAKmuH,aAAe54B,GAAqB,EAAQ,GAAK,GAAgBC,EAAkBD,GAExF,IAAIsJ,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MAEblI,aAAiB,IAAgBkI,aAAiB,IACjDlI,EAAM2L,cAAgBxqG,MACzBA,KAAK0uH,iBAAiB7vB,EAAO,UAI3BkI,aAAiB,IAAgBlI,aAAiB,IACjDkI,EAAMyD,cAAgBxqG,MACzBA,KAAK0uH,iBAAiB3nB,EAAO,UAMhC,YAAM18C,SAAQ,WAEd,IAAK,IAAIhuD,EAAI,EAAGA,EAAI2D,KAAKooF,WAAY/rF,IAAK,CACzC,IAAI8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,GACvC2D,KAAK2uH,qBAAqBx/D,GAG3B,IAAS9yD,EAAI2D,KAAKgkF,UAAU7nF,OAAS,EAAGE,EAAI2D,KAAKyoF,SAAUpsF,IAAK,CAC3D8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,GACvC2D,KAAK2uH,qBAAqBx/D,GAG3BnvD,KAAK+rG,oBAAqB,GAGjB,YAAA2iB,iBAAV,SAA2BxkC,EAAoBppF,GAA/C,WACCd,KAAKgkF,UAAUjrF,OAAOy/B,MAAK,SAACl+B,EAAGC,GAC9B,OAAaA,EAAGxB,OAAO+H,GAAKuqF,aAAqB/wF,EAAGvB,OAAO+H,GAAKuqF,gBAEjE,IAAIhvF,EAAI,EACR2D,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAAS20C,OAASznG,EAClBA,OAGD6tF,EAAKlG,UAAU98E,MAAK,SAACioD,GACpB,IAAI+6B,EAAO/6B,EAASvtD,UAChBgtH,EAAkB1kC,EAAKuf,mBAAmBt6C,EAASy4C,UAAYz4C,EAAS64C,cAExEa,EAAiB3e,EAAKkgB,4BAA4Bj7C,EAASy4C,SAAU,GAEzE,GAAIiB,EAAgB,CACnB,IAAIlhG,EAAQ,EAAKq8E,UAAUltF,QAA8B+xG,GAEzD15C,EAAS20C,OAASn8F,EAElB,IAAIqgG,EAAgB,KAAargG,EAAQ,IAAO,EAAKq8E,UAAU7nF,OAASyyH,EAAiB,GAErFz/D,EAAS0/D,iBAAmB1/D,EAAS0/D,eAAehtE,cAAgBsN,EAAS0/D,eAAe94D,iBAAiB,GAAG7lC,IAAM83E,GAGjHA,GAAiB,IAAY74C,EAAS64C,cAAe,KACzD74C,EAAS0/D,gBACZ1/D,EAAS0/D,eAAeC,OAEzB3/D,EAAS0/D,eAAiB1/D,EAAS2G,QAAQ,CAAEzrB,SAAU,gBAAiBla,MAAO63E,EAAe93E,GAAI,GAAKg6D,EAAKsnB,sBAAuBtnB,EAAK6hC,qBACxI,EAAK7iE,WAAW1qD,KAAK2wD,EAAS0/D,qBAKjC3kC,EAAKlG,UAAUjrF,OAAOy/B,MAAK,SAACl+B,EAAGC,GAC9B,OAAOD,EAAEqN,MAAQpN,EAAEoN,UAWd,YAAAg9E,oBAAP,SAA2Bx1B,GAEtBnvD,KAAK46E,OAAS56E,KAAK6+F,OAAS7+F,KAAK+mG,QACpC/mG,KAAK+uH,wBAAwB5/D,GAC7B,YAAMw1B,oBAAmB,UAACx1B,KAUlB,YAAA6/D,iBAAV,SAA2B7/D,GAC1B,IAAIwxC,EAAgB3gG,KAAKkuH,eAQzB,OANIluH,KAAKkhG,UAAYlhG,KAAK6+F,MACzB8B,GAAiBxxC,EAASs0C,UAAUzjG,KAAKitG,YAAc,GAGvDtM,GAAiBxxC,EAASs0C,UAAUzjG,KAAKmtG,YAAc,GAEjDxM,GAwBE,YAAAsuB,eAAV,SAAyB9/D,GACxB,IAAIyxC,EAAc5gG,KAAKmuH,aAQvB,OANInuH,KAAKkhG,UAAYlhG,KAAK6+F,MACzB+B,GAAezxC,EAASs0C,UAAUzjG,KAAKopF,QAAU,GAGjDwX,GAAezxC,EAASs0C,UAAUzjG,KAAKqpF,QAAU,GAE3CuX,GASD,YAAAmuB,wBAAP,SAA+B5/D,GAA/B,IAEKr9C,EACAhM,EACAxC,EACAb,EALL,OAOKk+F,EAAgB3gG,KAAKgvH,iBAAiB7/D,GACtCyxC,EAAc5gG,KAAKivH,eAAe9/D,GAElCi6B,EAASppF,KAAKopF,OACd6jB,EAAajtG,KAAKitG,WAClB5jB,EAASrpF,KAAKqpF,OACd8jB,EAAantG,KAAKmtG,WAElBlsD,EAAmBjhD,KAAKguH,QAAQ/sE,SAEhCwhB,EAAuBxhB,EAASwhB,aAChCE,EAAwB1hB,EAAS0hB,cAEjC7Q,EAAqB7Q,EAAS6Q,WAC9BC,EAAsB9Q,EAAS8Q,YAE/BuP,EAAmBrgB,EAASqgB,SAC5BS,EAAoB9gB,EAAS8gB,UAE7Bh5C,EAAsBk4B,EAASv5B,iBAC/BsB,EAAuBi4B,EAASgS,kBAChC5pC,EAAqB43B,EAASt5B,gBAC9B2B,EAAwB23B,EAASiS,mBAEjCg8D,GAAuB,EAEvBC,EAAMhgE,EAAS7yD,MAWnB,GAVI,IAAe6yH,KACd,IAAeA,KAClBr9D,EAAaq9D,GAEVA,aAAe51E,EAAA,IAClBkpB,EAA2B,IAAZ0sD,EAAIt5H,QAKhBmK,KAAK6+F,iBAAiB,IAAkB7+F,KAAK+mG,iBAAiB,GAAe,CAEjF,IAAK53C,EAAS74D,SAAS0J,KAAKyrG,iBAAmBt8C,EAAS74D,SAAS0J,KAAK0rG,eACrE,OAKD,GAFA/K,EAAgB,EAChBC,EAAc,GACT,IAAYn+B,GAEhBk+B,GADI34D,EAAiB,KAAa44D,EAAcD,IAAkB,EAAIl+B,EAAe,KAAO,EAAG,GAE/Fm+B,GAAe54D,EAOhB,GAJAl2B,EAAI9R,KAAK6+F,MAAM5K,KAAK9kC,EAAU89C,EAAYtM,GAC1C76F,EAAI9F,KAAK6+F,MAAM5K,KAAK9kC,EAAUi6B,EAAQwX,GAGlC,IAAYn+B,GAEf3wD,GADIk2B,GAAmBliC,EAAIgM,EAAKggD,GAAc,EAE9ChsD,GAAKkiC,EAIN,IAAK,IAAYs5B,IAAaA,EAAW/pE,KAAK6B,IAAI0M,EAAIgM,GAErDA,GADIk2B,GAAmBliC,EAAIgM,EAAKwvD,GAAY,EAE5Cx7D,GAAKkiC,EAMN,GAHA24D,EAAgB,EAChBC,EAAc,GAET,IAAYj+B,GAEhBg+B,GADI34D,EAAiB,KAAa,EAAI26B,EAAgB,KAAO,EAAG,GAEhEi+B,GAAe54D,EAOhB,GAJA1kC,EAAItD,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAYxM,GAC1Cl+F,EAAIzC,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQuX,GAGlC,IAAYj+B,GAEflgE,GADIulC,GAAmBvlC,EAAIa,EAAKyuD,GAAe,EAE/CzuD,GAAK0kC,EAIN,IAAK,IAAY+5B,IAAcA,EAAYxqE,KAAK6B,IAAIqJ,EAAIa,GAEvDb,GADIulC,GAAmBvlC,EAAIa,EAAKy+D,GAAa,EAE7Cz+D,GAAK0kC,EAGNliC,EAAI9F,KAAKovH,wBAAwBtpH,GACjCgM,EAAI9R,KAAKovH,wBAAwBt9G,GACjCxO,EAAItD,KAAKqvH,sBAAsB/rH,GAC/Bb,EAAIzC,KAAKqvH,sBAAsB5sH,QAE3B,GAAIzC,KAAKkhG,UAAYlhG,KAAK6+F,MAAO,CAErC,IAAK1vC,EAAS74D,SAAS0J,KAAK0rG,eAC3B,OAID,IAAK,IAAYjpC,GAEhBk+B,GADI34D,EAAiB,KAAa44D,EAAcD,IAAkB,EAAIl+B,EAAe,KAAO,EAAG,GAE/Fm+B,GAAe54D,EAOhB,GAJAl2B,EAAI9R,KAAK6+F,MAAM5K,KAAK9kC,EAAU89C,EAAYtM,GAC1C76F,EAAI9F,KAAK6+F,MAAM5K,KAAK9kC,EAAUi6B,EAAQwX,GAGlC,IAAYn+B,GAEf3wD,GADIk2B,GAAmBliC,EAAIgM,EAAKggD,GAAc,EAE9ChsD,GAAKkiC,EAIN,IAAK,IAAYs5B,IAAaA,EAAW/pE,KAAK6B,IAAI0M,EAAIgM,GAErDA,GADIk2B,GAAmBliC,EAAIgM,EAAKwvD,GAAY,EAE5Cx7D,GAAKkiC,EAGN,IAAIkpE,EAAiB/hD,EAASs0C,UAAU0J,GACpC6D,EAAc7hD,EAASs0C,UAAUpa,GAEjCrpF,KAAK+mG,iBAAiB,IACf/mG,KAAK4sF,WAAY5sF,KAAKqpF,SAAiBrpF,KAAK4sF,WAAY5sF,KAAKmtG,cACtE+D,EAAiB,EACjBF,EAAc,GAIhBvuG,EAAIzC,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAY+D,GAC1C5tG,EAAItD,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQ2nB,GAKtC,IAAIse,EAAa/3H,KAAKc,KAAK2H,KAAK+mG,MAAM3W,aAEjC9sF,EAAI,GAAKb,EAAI,GAAOa,EAAIgsH,GAAc7sH,EAAI6sH,KAC9CJ,GAAc,GAGf5rH,EAAItD,KAAKqvH,sBAAsB/rH,GAC/Bb,EAAIzC,KAAKqvH,sBAAsB5sH,GAE3BlL,KAAK6B,IAAI0M,EAAIgM,GAAKiX,EAAcC,GAAgB,IACnDkmG,GAAc,OAIX,CACJ,IAAK//D,EAAS74D,SAAS0J,KAAKyrG,eAC3B,OAIA,IAiBIzjE,EAlBL,IAAK,IAAY26B,GAEhBg+B,GADI34D,EAAiB,KAAa44D,EAAcD,IAAkB,EAAIh+B,EAAgB,KAAO,EAAG,GAEhGi+B,GAAe54D,EAOhB,GAJA1kC,EAAItD,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAYxM,GAC1Cl+F,EAAIzC,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQuX,GAGlC,IAAYj+B,GAEflgE,GADIulC,GAAmBvlC,EAAIa,EAAKyuD,GAAe,EAE/CzuD,GAAK0kC,EAIN,IAAK,IAAY+5B,IAAcA,EAAYxqE,KAAK6B,IAAIqJ,EAAIa,GAEvDb,GADIulC,GAAmBvlC,EAAIa,EAAKy+D,GAAa,EAE7Cz+D,GAAK0kC,EAGN,IAAI4oE,EAAgBzhD,EAASs0C,UAAUra,GACnC0nB,EAAe3hD,EAASs0C,UAAUwJ,GAGlCjtG,KAAK6+F,iBAAiB,IACf7+F,KAAK4sF,WAAY5sF,KAAKopF,SAAiBppF,KAAK4sF,WAAY5sF,KAAKitG,cACtE2D,EAAgB,EAChBE,EAAe,GAIjBhrG,EAAI9F,KAAK6+F,MAAM5K,KAAK9kC,EAAUi6B,EAAQwnB,GACtC9+F,EAAI9R,KAAK6+F,MAAM5K,KAAK9kC,EAAU89C,EAAY6D,GAItCwe,EAAa/3H,KAAKc,KAAK2H,KAAK6+F,MAAMzO,aAEjCtqF,EAAI,GAAKgM,EAAI,GAAOhM,EAAIwpH,GAAcx9G,EAAIw9G,KAC9CJ,GAAc,GAGfppH,EAAI9F,KAAKovH,wBAAwBtpH,GACjCgM,EAAI9R,KAAKovH,wBAAwBt9G,GAE7Bva,KAAK6B,IAAIkK,EAAIb,GAAK4mB,EAAaC,GAAiB,IACnD4lG,GAAc,GAIhB,IAOK,EAPDxwF,EAAYnnC,KAAK6B,IAAI0M,EAAIgM,GACzBonB,EAAY3hC,KAAK6B,IAAIqJ,EAAIa,GAEzBhJ,EAAY/C,KAAKK,IAAIka,EAAGhM,GACxBvL,EAAYhD,KAAKK,IAAI0L,EAAGb,GAEvBysH,EA0GJlvH,KAAK2uH,qBAAqBx/D,IAxGrBA,EAAS2b,QA0Cb,EAAS3b,EAAS2b,OACd9qE,KAAK+rG,qBACR,IAAuB/rG,KAAM,EAAQ,KACrC,IAAuBA,KAAKguH,QAAQ/sE,SAAU,EAAQ,KACtD,IAAY,KAAkB,SAAC5W,GACxB,EAAQA,GAAY,EAAOA,SA9CnC,EAASrqC,KAAKguH,QAAQ7qH,SAEtB,IAAuBnD,KAAM,EAAQ,KACrC,IAAuBA,KAAKguH,QAAQ/sE,SAAU,EAAQ,KACtDkO,EAASo0B,UAAU,GAEnBp0B,EAAS2b,OAAS,EAClB,EAAOvqE,MAAQP,KAAKO,MAGhBP,KAAK8nF,kBACR9nF,KAAK68C,KAAO,OACZ,EAAOA,KAAO,WACd,EAAOsU,WAAY,IAGnBnxD,KAAK68C,KAAO,OACZ,EAAOA,KAAO,WACd,EAAOsU,WAAY,GAGhB,EAAOA,YACV,EAAOnyD,OAAOmgD,GAAG,SAAS,SAACyZ,GAC1B,EAAOkC,YAAc,EAAKhC,eAAe,EAAKqwB,eAAgBh6B,UAC5DziD,GAAW,GACd,EAAO1N,OAAOmgD,GAAG,QAAQ,SAACyZ,GACzB,EAAOkC,YAAc,UACnBpuD,GAAW,IAEX,EAAO+oD,YACV,EAAOz2D,OAAOmgD,GAAG,QAAQ,SAACyZ,GACzB,EAAOkC,YAAc,EAAKhC,eAAe,EAAKqwB,eAAgBh6B,UAC5DziD,GAAW,GACd,EAAO1N,OAAOmgD,GAAG,OAAO,SAACyZ,GACxB,EAAOkC,YAAc,UACnBpuD,GAAW,IAEf,EAAOS,OAASnN,KAAKquH,iBACrB,EAAOhhE,cAAgBrtD,MAaxB,EAAO1D,MAAQoiC,EACf,EAAOniC,OAAS28B,EAEhB,EAAO5+B,EAAIA,EACX,EAAOC,EAAIA,EAEX,EAAOg1H,MAAQz9G,EACf,EAAO09G,MAAQlsH,EAEf,EAAOgvE,UAAYxsE,EAAIgM,EACvB,EAAOygE,WAAa9vE,EAAIa,EAExBtD,KAAKyvH,gBAAgB,GAEjB,EAAO5lF,SACV,EAAOwgB,WAGR,EAAO+B,YAAa,EAGpB,IAAWpsD,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GACvC,IAAI6mC,EAA+BvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KACtEyvH,IACJA,EAAc,EAAK1B,QAAQ7qH,SAG3B,IAAuB0lF,EAAUkB,SAAU2lC,EAAa,KAExDvgE,EAASo0B,UAAUmsC,GACnBvgE,EAASwgE,cAAcz/D,OAAO24B,EAAU5oF,IAAayvH,GACrDA,EAAYnvH,MAAQ,EAAKA,OAG1BmvH,EAAYviH,OAAS07E,EAAUkB,SAE/B2lC,EAAYpzH,MAAQoiC,EACpBgxF,EAAYnzH,OAAS28B,EACrBw2F,EAAYp1H,EAAIA,EAChBo1H,EAAYn1H,EAAIA,EAEhB,EAAKk1H,gBAAgBC,GAEjBA,EAAY7lF,SACf6lF,EAAYrlE,WAGbqlE,EAAYtjE,YAAa,MAQ3B+C,EAASo6B,UAAY7qD,EACrBywB,EAASq6B,WAAatwD,GAOb,YAAAy1F,qBAAV,SAA+Bx/D,GAC1BA,IACCA,EAAS2b,SAEZ3b,EAAS2b,OAAOxuE,MAAQ,EACxB6yD,EAAS2b,OAAOvuE,OAAS,EACzB4yD,EAAS2b,OAAO1e,YAAa,GAG9B,IAAWpsD,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GACvC,IAAI6mC,EAAsBvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KAC9DyvH,IAEHA,EAAYpzH,MAAQ,EACpBozH,EAAYnzH,OAAS,EACrBmzH,EAAYtjE,YAAa,QAanB,YAAAqjE,gBAAV,SAA0BpvH,GACzB,GAAIL,KAAK4vH,oBAAsB5vH,KAAK6vH,wBAA0B7vH,KAAK8vH,oBAAsB9vH,KAAK+vH,uBAAwB,CAErH,IAAI5gE,EAAiD9uD,EAAO8uD,SAE5D,GAAInvD,KAAK6+F,iBAAiB,IAAa7+F,KAAK+mG,iBAAiB,GAAW,CACvE,IAAI,EACAlxG,OAAK,EACLm6H,OAAM,EAENhwH,KAAKkhG,UAAYlhG,KAAK+mG,MACrB/mG,KAAKitG,YAAcjtG,KAAKopF,QAAUppF,KAAK6+F,iBAAiB,KAC3D,EAAO1vC,EAASn4D,SAASgJ,KAAKitG,YAC9Bp3G,EAAQs5D,EAASn4D,SAASgJ,KAAKopF,QAC/B4mC,EAAS7gE,EAASn4D,SAASgJ,KAAK6+F,MAAM/F,cAAgB,IAAK,mBAIxD94F,KAAKmtG,YAAcntG,KAAKqpF,QAAUrpF,KAAK+mG,iBAAiB,KAC3D,EAAO53C,EAASn4D,SAASgJ,KAAKmtG,YAC9Bt3G,EAAQs5D,EAASn4D,SAASgJ,KAAKqpF,QAC/B2mC,EAAS7gE,EAASn4D,SAASgJ,KAAK+mG,MAAMjO,cAAgB,IAAK,mBAIzDjjG,EAAQ,GACXs5D,EAAS8gE,iBAAkB,EAC3B5vH,EAAOqsD,aAAa7L,SAAS7gD,KAAK4vH,oBAClCvvH,EAAOosD,SAASzsD,KAAK4vH,mBAAoB,KAGzCzgE,EAAS8gE,iBAAkB,EAC3B5vH,EAAOqsD,aAAa7L,SAAS7gD,KAAK8vH,oBAClCzvH,EAAOosD,SAASzsD,KAAK8vH,mBAAoB,IAGtCE,EAAS,GACZ7gE,EAAS+gE,qBAAsB,EAC/B7vH,EAAOqsD,aAAa7L,SAAS7gD,KAAK6vH,wBAClCxvH,EAAOosD,SAAUzsD,KAAK6vH,uBAAyB,KAG/C1gE,EAAS+gE,qBAAsB,EAC/B7vH,EAAOqsD,aAAa7L,SAAS7gD,KAAK+vH,wBAClC1vH,EAAOosD,SAAUzsD,KAAK+vH,uBAAyB,OAWnD,sBAAW,sBAAO,C,IAAlB,WAMC,OALK/vH,KAAKmwH,WACTnwH,KAAKmwH,SAAW,IAAI7uE,EAAA,EAA8BthD,KAAKowH,wBACvDpwH,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKmwH,WAC3CnwH,KAAKkpD,WAAW1qD,KAAKwB,KAAKmwH,SAASlvE,WAE7BjhD,KAAKmwH,U,gCAQH,YAAAC,qBAAV,WACC,OAAO,IAAI,IAWZ,sBAAW,wBAAS,C,IAOpB,WACC,OAAOpwH,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAoB3C,sBAAW,gCAAiB,C,IAO5B,WAIC,OAHKmK,KAAK4vH,qBACT5vH,KAAK4vH,mBAAqB5vH,KAAKitD,OAAO9pD,OAAO,sBAEvCnD,KAAK4vH,oB,IAXb,SAA6B/5H,GAC5BmK,KAAK4vH,mBAAqB/5H,G,gCAsB3B,sBAAW,oCAAqB,C,IAOhC,WAIC,OAHKmK,KAAK6vH,yBACT7vH,KAAK6vH,uBAAyB7vH,KAAKitD,OAAO9pD,OAAO,0BAE3CnD,KAAK6vH,wB,IAXb,SAAiCh6H,GAChCmK,KAAK6vH,uBAAyBh6H,G,gCAwB/B,sBAAW,gCAAiB,C,IAO5B,WAIC,OAHKmK,KAAK8vH,qBACT9vH,KAAK8vH,mBAAqB9vH,KAAKitD,OAAO9pD,OAAO,sBAEvCnD,KAAK8vH,oB,IAXb,SAA6Bj6H,GAC5BmK,KAAK8vH,mBAAqBj6H,G,gCAsB3B,sBAAW,oCAAqB,C,IAOhC,WAIC,OAHKmK,KAAK+vH,yBACT/vH,KAAK+vH,uBAAyB/vH,KAAKitD,OAAO9pD,OAAO,0BAE3CnD,KAAK+vH,wB,IAXb,SAAiCl6H,GAChCmK,KAAK+vH,uBAAyBl6H,G,gCAmBxB,YAAAovF,kBAAP,SAAyB91B,EAA8Bu7B,GAAvD,WAGC,GAFA,YAAMzF,kBAAiB,UAAC91B,EAAUu7B,GAE9B1qF,KAAK4kF,eAAgB,CACxB,IACI,EACA,EAFAP,EAAoBrkF,KAAK4kF,eAAeP,OAIxCl1B,IAEF,EADGA,EAAS8gE,gBACIjwH,KAAK4vH,mBAGL5vH,KAAK8vH,mBAIrB,EADG3gE,EAAS+gE,oBACQlwH,KAAK6vH,uBAGL7vH,KAAK+vH,wBAI3B,IAAW1rC,EAAOjuE,SAAS/Q,YAAY,SAACspD,GACnCQ,GACHR,EAAMlC,SAAS,GACfkC,EAAMlC,SAAS,KAIfkC,EAAMlC,SAAS,EAAKsjE,wBACpBphE,EAAMlC,SAAS,EAAKqjE,0BAajB,YAAA/qC,mBAAP,SAA0BV,GACzB,IAAI3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO7a,iBAEP,IAAIsB,EAA2BuZ,EAAO/a,YAAY6M,EAAA,GAClDrL,EAAOliB,aAAc,EACrB,IAAuB5oD,KAAM8qE,EAAQ,KAErCA,EAAOjqB,SAAc7gD,KAAKguH,QAAQ/sE,UAClC6pB,EAAOxH,QAAQ,EAAG,EAAG,EAAG,GACxBwH,EAAOxuE,MAAQoiC,EACfosC,EAAOvuE,OAAS28B,EAEhB,IAAI0rD,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ/8C,KAAK07C,KAC5BkpC,EAAeoB,UAAYhmF,KAAK07C,MAQ1B,YAAAmF,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKguH,QAAQ/sE,SAASJ,SAAS//B,EAAOktG,QAAQ/sE,WAQrC,YAAAovD,mBAAV,SAA6BzoB,EAAgBn1C,GAC5C,GAAIzyC,KAAKkhG,UAAYlhG,KAAK6+F,MAAO,CAChC,IAAI6Q,EAAkB9nB,EAAOipB,UACxB,IAAenB,KACnBA,EAAkB,IAGnB,IAAI9O,EAAc5gG,KAAKivH,eAAqCrnC,EAAOz4B,UAGnE,OAAOyxC,GAAeA,EAFF5gG,KAAKgvH,iBAAuCpnC,EAAOz4B,WAElBugD,EAGrD,OAAO,YAAMW,mBAAkB,UAACzoB,EAAQn1C,IAShC,YAAA69D,mBAAV,SAA6B1oB,EAAgBn1C,GAC5C,GAAIzyC,KAAKkhG,UAAYlhG,KAAK+mG,MAAO,CAChC,IAAI6I,EAAkBhoB,EAAOqpB,UACxB,IAAerB,KACnBA,EAAkB,IAGnB,IAAIhP,EAAc5gG,KAAKivH,eAAqCrnC,EAAOz4B,UAGnE,OAAOyxC,GAAeA,EAFF5gG,KAAKgvH,iBAAuCpnC,EAAOz4B,WAElBygD,EAGrD,OAAO,YAAMU,mBAAkB,UAAC1oB,EAAQn1C,IAIhC,YAAAg9D,qBAAV,SAA+BtgD,EAA6B1c,EAAei9D,GAUzE,OARK,IAAeA,KAElBA,EADGvgD,EACeA,EAASs0C,UAAUhxD,GAGnB,IAGbzyC,KAAKmuH,cAAgBnuH,KAAKmuH,aAAenuH,KAAKkuH,iBAAmB,EAAIxe,IAOpE,YAAAC,qBAAV,SAA+BxgD,EAA6B1c,EAAem9D,GAUzE,OARK,IAAeA,KAElBA,EADGzgD,EACeA,EAASs0C,UAAUhxD,GAGnB,IAGbzyC,KAAKmuH,cAAgBnuH,KAAKmuH,aAAenuH,KAAKkuH,gBAAkBte,GAW/D,YAAAyf,sBAAV,SAAgCj5B,GAC/B,IAAI9sE,EAAgBtpB,KAAKguH,QAAQ/sE,SAASiS,mBAGtCv2D,GAFaqD,KAAKguH,QAAQ/sE,SAASt5B,gBAGnC9qB,EAAemD,KAAK+mG,MAAM3W,WAAa9mE,EAE3C,OAAO,IAAiB8sE,EAAYz5F,EAAME,IAMjC,YAAAuyH,wBAAV,SAAkCh5B,GACjC,IAAIrtE,EAAc/oB,KAAKguH,QAAQ/sE,SAASv5B,iBACpCsB,EAAehpB,KAAKguH,QAAQ/sE,SAASgS,kBAErCv2D,GAAgBqsB,EAChBnsB,EAAeoD,KAAK6+F,MAAMzO,WAAapnE,EAE3C,OAAO,IAAiBotE,EAAY15F,EAAME,IAMpC,YAAAwsG,YAAP,WACC,YAAMA,YAAW,WACjBppG,KAAKguH,QAAQzkH,SAEf,EA3kCA,CAAkC,IAmlClC,IAASnK,kBAAT,aAA6C,GAC7C,IAASA,kBAAT,qBAAqD,GC1xCrD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,wBAEjB,EAAK4O,a,EA0FP,OAxG2C,iBA4C1C,sBAAW,yBAAU,C,IAArB,WACC,IAAI0mE,EAAkBrwH,KAAKqwH,gBAC3B,GAAIA,GAAmBA,EAAgBljH,OACtC,OAAOkjH,EAAgBljH,OAAO5K,M,gCAUhC,sBAAW,oBAAK,C,IAAhB,WACC,IAAI8tH,EAAkBrwH,KAAKqwH,gBAC3B,GAAIA,EACH,OAAOA,EAAgBx6H,O,gCAUzB,sBAAW,8BAAe,C,IAA1B,WACC,OAAwBmK,KAAKswH,c,gCAWvB,YAAArkE,KAAP,SAAYllB,EAAmButC,EAAgB8tC,EAAkBhX,GAChE,IAAIilB,EAAkBrwH,KAAKqwH,gBAI3B,OAHIA,GACHA,EAAgBpkE,KAAKllB,GAEf,YAAMklB,KAAI,UAACllB,EAAUutC,EAAO8tC,EAAShX,IAUtC,YAAAvnC,KAAP,SAAY98B,EAAmButC,EAAgB82B,GAC9C,IAAIilB,EAAkBrwH,KAAKqwH,gBAI3B,OAHIA,GACHA,EAAgBxsD,KAAK98B,EAAUutC,EAAO82B,GAEhC,YAAMvnC,KAAI,UAAC98B,EAAUutC,EAAO82B,IAErC,EAxGA,CAA2C,IA+J3C,eA6CC,mBACC,cAAO,KAEP,EAAKrwD,UAAY,gBACjB,EAAK4O,aAEL,EAAKiH,YAAc,EACnB,EAAKC,cAAgB,EACrB,EAAK02B,kBAAoB,EACzB,EAAKymC,QAAQ/sE,SAAS+S,YAAc,+BACpC,EAAKg6D,QAAQ/sE,SAASmM,YAAc,SAEpC,IAAI0mB,EAAkB,IAAIC,EAAA,E,OAE1B,EAAK1lB,OAASylB,EAAgBlK,OAAO,cACrC,EAAKgjB,WAAWie,WAAa,KAC7B,EAAKje,WAAW+d,OAAS,KACzB,EAAK/d,WAAWke,WAAa,KAC7B,EAAKle,WAAWge,OAAS,KAEzB,EAAK+G,wBAAyB,EAE9B,EAAK5lD,YAAa,EAGlB,EAAKiiE,QAAQ/sE,SAASoS,cAAe,E,EAqKvC,OA3OmC,iBAgFxB,YAAAg2C,gBAAV,SAA0Bl6C,EAA6BwK,GACpCA,EAAakvC,eAAiB15C,EAChD,YAAMk6C,gBAAe,UAACl6C,EAAUwK,IASvB,YAAA+qB,eAAV,WACC,OAAO,IAAI,IASL,YAAA7gB,KAAP,SAAY98B,GACX,IAAG/mC,KAAKgpD,YAAR,CAIA,IAAIwoD,EAAwBxxG,KAAK0sD,aAAauJ,mBAU9C,OATI,IAAelvB,KAClByqE,EAAwBzqE,GAGzB/mC,KAAKgkF,UAAU98E,MAAK,SAACioD,GAEpBA,EAAS0U,KAAK98B,MAGR,YAAM+8B,SAAQ,UAAC0tC,KAUhB,YAAAvlD,KAAP,SAAYllB,GAEX,IAAIyqE,EAAwBxxG,KAAK0sD,aAAauJ,mBAC1C,IAAelvB,KAClByqE,EAAwBzqE,GAGzB,IAAIyvB,EAAY,YAAM0N,SAAQ,UAACstC,GAM/B,OAJAxxG,KAAKgkF,UAAU98E,MAAK,SAACioD,GAEpBA,EAASlD,KAAKllB,MAERyvB,GAQD,YAAA0xB,cAAP,aAYU,YAAA8mC,iBAAV,SAA2B7/D,GAC1B,OAAO,GASE,YAAA8/D,eAAV,SAAyB9/D,GACxB,OAAO,GAOD,YAAAklC,iBAAP,aAUO,YAAAluB,cAAP,SAAqB33D,GAEhBA,IAIE,IAAeA,EAAOo+E,aAAgB,IAAep+E,EAAOo+E,cAChEp+E,EAAOo+E,WAAa,KAKtB,YAAMzmB,cAAa,UAAC33D,IAUd,YAAAu2E,mBAAP,SAA0BV,GACzB,IAAI3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO7a,iBAEP,IAAIsB,EAA2BuZ,EAAO/a,YAAY6M,EAAA,GAClDrL,EAAOliB,aAAc,EACrB,IAAuB5oD,KAAM8qE,EAAQ,KAGrCA,EAAOxH,QAAQ,EAAG,EAAG,EAAG,GACxBwH,EAAOxuE,MAAQoiC,EACfosC,EAAOvuE,OAAS28B,EAEhB,IAAI0rD,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ+tB,EAAOpvB,KAC9BkpC,EAAeoB,UAAYlb,EAAOpvB,MAGzB,YAAAizE,qBAAV,SAA+Bx/D,GAC9B,YAAMw/D,qBAAoB,UAACx/D,GACxBA,EAAS2b,SACX3b,EAAS2b,OAAO1e,YAAa,IAGhC,EA3OA,CAAmC,IAmPnC,IAAShtD,kBAAT,cAA8C,GAC9C,IAASA,kBAAT,sBAAsD,GC1YtD,mBAmDC,mBACC,cAAO,K,OAzBD,EAAAmxH,KAA0B,GA0BhC,EAAKx1E,UAAY,kBAEjB,EAAKhiD,OAAOlD,MAAQ,GAEpB,EAAKkD,OAAO2oH,GAAK,GAEjB,EAAK3oH,OAAO8qH,GAAK,GAEjB,EAAK9qH,OAAO++F,GAAK,GAEjB,EAAK/+F,OAAO0+F,GAAK,GAEjB,EAAK+4B,YAAYp6G,UAAW,EAE5B,EAAKuzC,a,EA6UP,OAhZqC,iBA2EpC,sBAAW,6BAAc,C,IAazB,WACC,OAAO3pD,KAAKyqF,iB,IAdb,SAA0B50F,GACzBmK,KAAKyqF,gBAAkB50F,EACnBA,EAAMkP,QACTlP,EAAMkP,MAAMoqD,SAAWnvD,MAEpBnK,EAAM2uF,aACT3uF,EAAM2uF,WAAWr1B,SAAWnvD,O,gCAqBvB,YAAAywH,YAAP,WACC,OAAO,GAQR,sBAAW,oBAAK,C,IAOhB,WAEC,IAAI56H,EAAQ,EAeZ,OAdKmK,KAAKoW,UAAoC,GAAxBpW,KAAKoW,SAASja,OAKnC,IAAW6D,KAAKoW,SAAS/Q,YAAY,SAACspD,GACrC,IAAI5iD,EAAa4iD,EAAM94D,MACnB,IAAekW,KAClBlW,GAASkW,MAPXlW,EAAQmK,KAAKjH,OAAL,MAAqBsyF,aAavBx1F,G,IAxBR,SAAiBA,GAChBmK,KAAKsmF,SAAS,QAASzwF,I,gCA2CxB,sBAAW,sBAAO,C,IAAlB,WACC,OAAImK,KAAKmN,OACDnN,KAAKnK,MAAQmK,KAAKmN,OAAOtX,MAAQ,IAElC,K,gCAUR,sBAAW,iBAAE,C,IAOb,WACC,OAAOmK,KAAKjH,OAAO2oH,GAAG7rH,O,IARvB,SAAcA,GACbmK,KAAKsmF,SAAS,KAAMzwF,I,gCAiBrB,sBAAW,iBAAE,C,IAOb,WACC,OAAOmK,KAAKjH,OAAO++F,GAAGjiG,O,IARvB,SAAcA,GACbmK,KAAKsmF,SAAS,KAAMzwF,I,gCAiBrB,sBAAW,iBAAE,C,IAOb,WACC,OAAOmK,KAAKjH,OAAO8qH,GAAGhuH,O,IARvB,SAAcA,GACbmK,KAAKsmF,SAAS,KAAMzwF,I,gCAiBrB,sBAAW,iBAAE,C,IAOb,WACC,OAAOmK,KAAKjH,OAAO0+F,GAAG5hG,O,IARvB,SAAcA,GACbmK,KAAKsmF,SAAS,KAAMzwF,I,gCAerB,sBAAW,mBAAI,C,IAOf,WACC,OAAOmK,KAAKwqC,WAAWjoC,M,IARxB,SAAgBA,GACfvC,KAAKolD,YAAY,OAAQ7iD,I,gCAqB1B,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOvC,KAAKwqC,WAAWp0B,U,IARxB,SAAoBA,GACnBpW,KAAKolD,YAAY,WAAYhvC,I,gCAmB9B,sBAAW,oBAAK,C,IAAhB,WACC,OAAKpW,KAAKmN,OAIFnN,KAAKmN,OAAO69G,MAAQ,EAHpB,G,gCAeT,sBAAW,oBAAK,C,IAehB,WACC,IAAIjuE,EAAQ/8C,KAAKwqC,WAAWuS,MAY5B,YAVarwC,GAATqwC,GACC/8C,KAAKmN,SACR4vC,EAAQ/8C,KAAKmN,OAAO4vC,YAGTrwC,GAATqwC,GACC/8C,KAAK4B,YACRm7C,EAAQ/8C,KAAK4B,UAAUw5C,OAAO+E,SAASngD,KAAK4B,UAAUw5C,OAAOj3C,KAAOnE,KAAK2H,QAGpEo1C,G,IA5BR,SAAiBlnD,GAChBmK,KAAKolD,YAAY,QAASvvD,I,gCAO3B,sBAAW,mBAAI,C,IAAf,WACC,OAAOmK,KAAK+8C,O,gCA0Bb,sBAAW,qBAAM,C,IAWjB,WACC,OAAO/8C,KAAKgsF,S,IAZb,SAAkBI,GACbA,GAAUpsF,KAAKgsF,UACdhsF,KAAKgsF,UACRhsF,KAAK4B,UAAUwqF,OAAOnsC,YAAYjgD,KAAKgsF,SACvChsF,KAAKgsF,QAAQnsC,WAEd7/C,KAAKgsF,QAAUI,EACfpsF,KAAKkpD,WAAW1qD,KAAK4tF,K,gCAgBhB,YAAAngC,KAAP,SAAYllB,EAAmButC,EAAgB8tC,EAAkBhX,GAChEprG,KAAKm9G,gBAAgB,QAAS,GAE1Bn9G,KAAKoW,UACRpW,KAAKoW,SAASlP,MAAK,SAACynD,GACnBA,EAAM1C,KAAKllB,EAAUutC,EAAO8tC,EAAShX,MAIvC,IAAIvC,EAAiB7oG,KAAK6oG,eAQ1B,OAPGA,GACFA,EAAexiB,QAAQn/E,MAAK,SAACpG,EAAKjL,GACjCA,EAAMo2D,OACNp2D,EAAMmzD,aAAc,KAIf,YAAMiD,KAAI,UAACllB,EAAUutC,EAAO8tC,EAAShX,IAUtC,YAAAvnC,KAAP,SAAY98B,EAAmButC,EAAgB82B,GAC9CprG,KAAKm9G,gBAAgB,QAASn9G,KAAKjH,OAAOlD,MAAMA,OAC5CmK,KAAKoW,UACRpW,KAAKoW,SAASlP,MAAK,SAACynD,GACnBA,EAAMkV,KAAK98B,EAAUutC,EAAO82B,MAI9B,IAAIvC,EAAiB7oG,KAAK6oG,eAO1B,OANGA,GACFA,EAAexiB,QAAQn/E,MAAK,SAACpG,EAAKjL,GACjCA,EAAMmzD,aAAc,KAIf,YAAM6a,KAAI,UAAC98B,EAAUutC,EAAO82B,IAErC,EAhZA,CAAqC,IAsfrC,eA2IC,mBAGC,cAAO,KAzED,EAAAslB,gBAAqD,EAAKC,SAoD1D,EAAAC,UAAoB,EAsB1B,EAAK71E,UAAY,UAEjB,EAAK8wC,WAAY,EAEjB,EAAKglC,UAAY,EACjB,EAAKC,aAAe,EACpB,EAAKC,mBAAoB,EAEzB,EAAK31E,OAAS,IAAIwwC,EAAA,EAClB,EAAKolC,QAAU,aAGf,IAAInyB,EAAQ,EAAKmP,MAAMxvG,KAAK,IAAI,IAChCqgG,EAAMhkC,MAAM1Q,UAAW,EACvB00C,EAAMvC,cAAe,EAErB,IAAI20B,EAAYpyB,EAAMtR,SACtB0jC,EAAU37B,QAAS,EACnB27B,EAAU3tC,OAAOriC,SAASkJ,UAAW,EACrC8mE,EAAU3iC,MAAMrtC,SAASkJ,UAAW,EACpC8mE,EAAU9iC,KAAKltC,SAASkJ,UAAW,EACnC8mE,EAAUxiC,UAAUxtC,SAASkJ,UAAW,EACxC8mE,EAAU5gC,gBAAkB,IAC5B4gC,EAAUz+B,KAAKroC,UAAW,EAC1B8mE,EAAUr7B,SAASzrC,UAAW,EAG9B,IAAI48C,EAAQ,EAAKoH,MAAM3vG,KAAK,IAAI,IAChCuoG,EAAMlsC,MAAM1Q,UAAW,EACvB48C,EAAMzK,cAAe,EAErB,IAAI40B,EAAYnqB,EAAMxZ,SACtB2jC,EAAU57B,QAAS,EACnB47B,EAAU5tC,OAAOriC,SAASkJ,UAAW,EACrC+mE,EAAU5iC,MAAMrtC,SAASkJ,UAAW,EACpC+mE,EAAU/iC,KAAKltC,SAASkJ,UAAW,EACnC+mE,EAAUziC,UAAUxtC,SAASkJ,UAAW,EACxC+mE,EAAU7gC,gBAAkB,IAC5B6gC,EAAU1+B,KAAKroC,UAAW,EAC1B+mE,EAAUt7B,SAASzrC,UAAW,EAC9B+mE,EAAUt+B,UAAW,EAGrB,EAAKiM,MAAQA,EACb,EAAKkI,MAAQA,EAEb,IAAM9lD,EAAW,IAAI,G,OACrB,EAAKkwE,gBAAkB,IAAI/qC,EAAA,EAAgDnlC,GAC3EA,EAASoM,cAAgB,EACzB,EAAKnE,WAAW1qD,KAAK,IAAI4nF,EAAA,EAAmB,EAAK+qC,kBACjD,EAAKjoE,WAAW1qD,KAAKyiD,GAErB,EAAKgyD,cAAcj0G,OAAOmgD,GAAG,OAAO,WACnC,EAAKiyE,oBAAoB,EAAKC,sBAC5B3kH,GAAW,GAEd,EAAKykH,gBAAgBnyH,OAAOmgD,GAAG,aAAa,SAACgF,GAC5CA,EAAM/E,SAAS+B,YAAa,SAC1Bz0C,GAAW,GAGd,EAAKi9C,a,EAg7BP,OA5nC6B,iBAmN5B,sBAAW,4BAAa,C,IAoBxB,WACC,OAAO3pD,KAAKsxH,gB,IArBb,SAAyBC,GAAzB,WACKvxH,KAAKsxH,gBAAkBC,IAC1BvxH,KAAKsxH,eAAiBC,EACtBA,EAAcpkH,OAASnN,KACvBuxH,EAAcjtD,SACditD,EAAcnK,MAAMnmE,SAASjiD,OAAOmgD,GAAG,OAAO,SAACgF,GAC9C,IAAIgL,EAA4BhL,EAAM3iD,OAAO2tD,SAASwK,YACjDxK,EAAStN,eACb,EAAKuvE,oBAAoBjiE,GACzB,EAAKqiE,iBAAiBriE,WAErBziD,GAAW,GAEd1M,KAAKkpD,WAAW1qD,KAAK+yH,K,gCAiBhB,YAAApvB,aAAP,WAECniG,KAAKosF,OAAO7iF,QACZvJ,KAAKyxH,YAAc,GAEnB,YAAMtvB,aAAY,WAEdniG,KAAKqxH,eACRrxH,KAAKqxH,cAAcxxE,UAGpB,IAAI6xE,EAAe1xH,KAAKgkF,UAAU/iC,SAASr4C,QAE3C5I,KAAKqxH,cAAgBK,EAErB,IAAW1xH,KAAKgkF,UAAU3+E,YAAY,SAAC8pD,GACtCA,EAAShiD,OAASukH,KAGnBA,EAAat7G,SAAWpW,KAAKgkF,UAE7B0tC,EAAahQ,GAAK,EAClBgQ,EAAa7N,GAAK,EAClB6N,EAAanvH,KAAOvC,KAAK2xH,UAEzB,IACI90H,EAAsE,GAA/DtF,KAAKQ,MADL,IACmBiI,KAAK+xD,YAAc/xD,KAAK8xD,WAAc,KAAY,IAEhF4/D,EAAa55B,GAHF,IAIX45B,EAAaj6B,GAAK56F,EAElBmD,KAAK6+F,MAAMjnG,IAAM,EACjBoI,KAAK6+F,MAAMhnG,IAPA,IAQXmI,KAAK6+F,MAAMrF,YAEXx5F,KAAK+mG,MAAMnvG,IAAM,EACjBoI,KAAK+mG,MAAMlvG,IAAMgF,EACjBmD,KAAK+mG,MAAMvN,YAEXx5F,KAAK4xH,YAAYF,GAEjB1xH,KAAKwxH,iBAAiBE,GAEtB1xH,KAAKuiF,cAUC,YAAAqvC,YAAP,SAAmBzkH,EAAyB6jH,GAC3C,GAAI7jH,EAAQ,CACX,IAAIiJ,EAAWjJ,EAAOiJ,SAEjB46G,IACJA,EAAUhxH,KAAKgxH,SAGD,aAAXA,GACH56G,EAASrd,OAAOy/B,MAAK,SAACzhC,EAAG0L,GACxB,OAAO1L,EAAElB,MAAQ4M,EAAE5M,SAGN,cAAXm7H,GACH56G,EAASrd,OAAOy/B,MAAK,SAACzhC,EAAG0L,GACxB,OAAOA,EAAE5M,MAAQkB,EAAElB,SAIrBmK,KAAK6xH,uBAAuB,GAE5B7xH,KAAK0wH,gBAAgBvjH,GAErB,IAAK,IAAI9Q,EAAI,EAAGgV,EAAM+E,EAASja,OAAQE,EAAIgV,EAAKhV,IAAK,CAEpD,IAAI8zD,EAAO/5C,EAAS+pC,SAAS9jD,GAEzB8zD,EAAK/5C,UACRpW,KAAK4xH,YAAYzhE,MAaX,YAAAqhE,iBAAV,SAA2BriE,GAA3B,WACCnvD,KAAKyxH,YAAc,GAMnB,IAJA,IAAIK,EAAiB,CAAC3iE,GAGlB4iE,EAAiB5iE,EAAShiD,YACLT,GAAlBqlH,GACN/xH,KAAKgyH,WAAWD,GAChBD,EAAetzH,KAAKuzH,GACpBA,EAAiBA,EAAe5kH,OAGjC2kH,EAAevuG,UAEXvjB,KAAKuxH,gBACRvxH,KAAKuxH,cAAclwH,KAAOywH,GAI3B9xH,KAAKiyH,qBAAqB9iE,GAG1B,IAAYnvD,KAAKyxH,aAAa,SAACrlC,IACM,GAAhC,EAAKA,OAAOt1F,QAAQs1F,IACvB,EAAKA,OAAO5tF,KAAK4tF,GAElBA,EAAOljB,OAASkjB,EAAO4+B,UAUf,YAAAiH,qBAAV,SAA+B9iE,GAC9B,GAAIA,EAAS/4C,UACA+4C,EAAS67D,MAEThrH,KAAK8wH,aAAe9wH,KAAK6wH,UAAW,CAE/C7wH,KAAKgyH,WAAW7iE,GAEhB,IAAK,IAAI9yD,EAAI,EAAGA,EAAI8yD,EAAS/4C,SAASja,OAAQE,IAAK,CAClD,IAAIsyD,EAAQQ,EAAS/4C,SAAS+pC,SAAS9jD,GACnCsyD,EAAMv4C,UACTpW,KAAKiyH,qBAAqBtjE,MAOrB,YAAAggD,QAAV,SAAkB94G,GACjBmK,KAAK8wH,aAAe,EACpB9wH,KAAKkyH,qBAAkBxlH,EACvB1M,KAAK6+F,MAAMplG,MAAQ,EACnBuG,KAAK6+F,MAAMjlG,IAAM,EACjBoG,KAAK+mG,MAAMttG,MAAQ,EACnBuG,KAAK+mG,MAAMntG,IAAM,EACjB,YAAM+0G,QAAO,UAAC94G,IAML,YAAAqgH,eAAV,WACC,OAAO,GAUE,YAAA8b,WAAV,SAAqB7iE,GAArB,WACC,IAAKA,EAASi9B,OAAQ,CACrB,IAAIA,OAAM,EAENnrC,EAAWjhD,KAAKmxH,gBAAgBjyE,OAAOiQ,EAAS67D,MAAMh1H,aAEzDo2F,EADGnrC,EACMA,EAASr4C,QAGT5I,KAAKosF,OAAOjpF,UAGfgsD,SAASwK,YAAcxK,EAE9Bi9B,EAAO7pF,KAAO4sD,EAAS5sD,KACvB6pF,EAAO2lC,eAAiB5iE,EACxBA,EAASi9B,OAASA,EAElB,IAAI4+B,EAAQ77D,EAAS67D,MACrB5+B,EAAO4+B,MAAQA,EAEf,IAAIrxD,EAAmBxK,EAASwK,YAC5BA,IACHyyB,EAAO59E,OAASmrD,EAAYnrD,QAG7BxO,KAAKqsF,UAAUpsC,YAAYmsC,GAC3BA,EAAO/qF,KAAO8tD,EAAS/4C,SAASrd,OAChCqzF,EAAO1wC,KAAOyT,EAASpS,MAEvBqvC,EAAOiiC,iBAAiBpiE,KAAK,GAC7BmgC,EAAO3E,iBAAiBx7B,KAAK,GAE7BmgC,EAAO4hC,QAAQ/sE,SAASiM,QAAQ5jD,IAAI,QAAQ,SAACoyC,EAAMl6C,GAClD,IAAI2tD,EAAkC3tD,EAAO2tD,SAC7C,GAAIA,EAAU,CACb,IAAIkhE,EAAkBlhE,EAASkhE,gBAC/B,GAAIA,EAGH,OAFA7uH,EAAOk6C,KAAO20E,EAAgBtzE,MAC9Bv7C,EAAO0rD,QAAQzhC,OAAO,QACf4kG,EAAgBtzE,UAKtB/8C,KAAK4wH,WAAazhE,EAAS67D,MAAQhrH,KAAK8wH,cAAiB3hE,EAAS/4C,UAAY+4C,EAAS/4C,SAASja,OAAS,KAC5GiwF,EAAO4hC,QAAQ/sE,SAASke,gBAAkBqV,EAAA,EAAiBrW,QACvDn+D,KAAK4wH,UACRxkC,EAAO4hC,QAAQ/sE,SAASjiD,OAAOmgD,GAAG,OAAO,SAACgF,GACzC,IAAI0kD,EAAwC1kD,EAAM3iD,OAAO2tD,SAErDA,EAAS67D,MAAQ,EAAK8F,aACzB,EAAKM,oBAAoBvoB,EAAewnB,gBAAgBljH,QAGxD,EAAKglH,qBAAqBtpB,KAGzB7oG,UAAM0M,IAKZ1M,KAAKyxH,YAAYjzH,KAAK2wD,EAASi9B,SAStB,YAAAgmC,cAAV,SAAwBrrF,GAAxB,WAEC,IAAW/mC,KAAKosF,OAAO/mF,YAAY,SAAC+mF,IACO,GAAtC,EAAKqlC,YAAY36H,QAAQs1F,IAE5BA,EAAOiiC,iBAAiBpiE,OACxBmgC,EAAO3E,iBAAiBx7B,KAAKllB,KAI7BqlD,EAAOiiC,iBAAiBxqD,OACxBuoB,EAAO3E,iBAAiB5jB,KAAK98B,GAE7BqlD,EAAOpI,UAAU98E,MAAK,SAACioD,GACtBA,EAASk3B,QAAQn/E,MAAK,SAACpG,EAAK8mF,GAC3BA,EAAO/jB,aAILuoB,EAAO4+B,MAAQ,EAAK8F,cACnB,EAAKC,mBACR3kC,EAAOiiC,iBAAiBpiE,OAEzBmgC,EAAO3E,iBAAiBx7B,KAAKllB,IAErBqlD,EAAO4+B,OAAS,EAAK8F,cACzB,EAAKD,UAAY,GACpBzkC,EAAOpI,UAAU98E,MAAK,SAACioD,GAClBA,EAASkhE,gBAAgBj6G,UAC5B+4C,EAASk3B,QAAQn/E,MAAK,SAACpG,EAAK8mF,GAC3BA,EAAO37B,kBAeR,YAAAkmE,qBAAP,SAA4BhjE,GAC3BnvD,KAAKoxH,oBAAoBjiE,EAASkhE,kBAS5B,YAAAe,oBAAP,SAA2BjiE,GAA3B,WACKA,IACHA,EAAWnvD,KAAKqxH,eAGjB,IAAIpe,EAAgBjzG,KAAKizG,cAWzB,GATIA,IACC9jD,GAAYnvD,KAAKqxH,cACpBpe,EAAcpvC,OAGdovC,EAAchnD,QAIZkD,GAAYA,EAAS/4C,SAAU,CAClCpW,KAAK6+F,MAAMb,aAAa7uC,EAASuyD,GAAIvyD,EAAS2oC,IAC9C93F,KAAK+mG,MAAM/I,aAAa7uC,EAAS00D,GAAI10D,EAASsoC,IAE9Cz3F,KAAK8wH,aAAe3hE,EAAS67D,MAC7BhrH,KAAKkyH,gBAAkB/iE,EAEvBnvD,KAAKwxH,iBAAiBriE,GAEtB,IAAIkjE,EAAuBryH,KAAK6+F,MAAMwzB,sBAAwBryH,KAAK+mG,MAAMsrB,sBAErEA,GAAyBA,EAAqBxwE,cAAiBwwE,EAAqBl7D,aAQvFn3D,KAAKoyH,iBAPLpyH,KAAKsyH,eAAe9zH,KAAK6zH,GAEzBA,EAAqBrzH,OAAOggE,KAAK,kBAAkB,WAClD,EAAKozD,sBAaC,YAAAloE,sBAAV,WAEC,YAAMA,sBAAqB,WAItB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,mBAWnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IASZ,sBAAW,wBAAS,C,IAOpB,WACC,OAAO1kF,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAe3C,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAkB9C,sBAAW,gCAAiB,C,IAO5B,WACC,OAAOmK,KAAKujD,iBAAiB,sB,IAR9B,SAA6B1tD,GAC5BmK,KAAKopD,iBAAiB,oBAAqBvzD,I,gCAkB5C,sBAAW,sBAAO,C,IAIlB,WACC,OAAOmK,KAAKujD,iBAAiB,Y,IAL9B,SAAmB1tD,GAClBmK,KAAKopD,iBAAiB,UAAWvzD,GAAO,I,gCAY/B,YAAAo2F,aAAV,WACC,OAAO,IAAI,IASZ,sBAAW,uBAAQ,C,IAUnB,WACC,OAAOjsF,KAAK2xH,W,IAXb,SAAoB97H,GACnBmK,KAAK2xH,UAAY97H,EACbmK,KAAKqxH,gBACRrxH,KAAKqxH,cAAc9uH,KAAOvC,KAAK2xH,Y,gCAiB1B,YAAAxrD,cAAP,SAAqB33D,GAEpB,GAAIA,EAAQ,CAGX,GAAI,IAAeA,EAAM,kBAAwB,IAAeA,EAAM,iBACrE,OAAQA,EAAM,iBACb,IAAK,WACJA,EAAM,gBAAsBxO,KAAK2wH,SACjC,MACD,IAAK,aACJniH,EAAM,gBAAsBxO,KAAKuyH,WACjC,MACD,IAAK,QACJ/jH,EAAM,gBAAsBxO,KAAK2I,MACjC,MACD,IAAK,OACJ6F,EAAM,gBAAsBxO,KAAKwyH,KACjC,MACD,IAAK,YACJhkH,EAAM,gBAAsBxO,KAAKyyH,UACjC,MACD,eACQjkH,EAAM,gBAOZ,IAAeA,EAAO+iH,iBAAmB,IAAe/iH,EAAO+iH,cAAchwH,QAChFiN,EAAO+iH,cAAchwH,KAAO,iBAG7B,YAAM4kE,cAAa,UAAC33D,KAWf,YAAAq7D,eAAP,WACC,YAAMA,eAAc,WACpB7pE,KAAK4xH,YAAY5xH,KAAKkyH,kBAQhB,YAAAjqC,kBAAP,WACC,YAAMA,kBAAiB,WACvBjoF,KAAK4xH,YAAY5xH,KAAKqxH,eAEtB,IAAWrxH,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnCA,EAAOsmC,qBAGR1yH,KAAKoxH,oBAAoBpxH,KAAKqxH,gBAoDxB,YAAAkB,WAAP,SAAkBplH,GACjB,IACC9Q,EACA47C,EAFGwvE,EAAQt6G,EAAOiJ,SACf7S,EAAIkkH,EAAMtrH,OACRw2H,EAAO,IAAIt7H,MAAMkM,EAAI,GAE3B,IAAKovH,EAAK,GAAK16E,EAAM57C,EAAI,EAAGA,EAAIkH,IAAKlH,EACpCs2H,EAAKt2H,EAAI,GAAK47C,GAAOwvE,EAAMtnE,SAAS9jD,GAAGxG,OAKxC,SAAS+8H,EAAUv2H,EAAW4jC,EAAWpqC,EAAe6rH,EAAYmC,EAAY/rB,EAAYL,GAC3F,GAAIp7F,GAAK4jC,EAAI,EAAG,CACf,IAAIkwB,EAAOs3D,EAAMtnE,SAAS9jD,GAK1B,OAJA8zD,EAAKuxD,GAAKA,EACVvxD,EAAK0zD,GAAKA,EACV1zD,EAAK2nC,GAAKA,OACV3nC,EAAKsnC,GAAKA,GAIX,IAAIo7B,EAAcF,EAAKt2H,GACtBy2H,EAAej9H,EAAQ,EAAKg9H,EAC5BnlG,EAAIrxB,EAAI,EACR02H,EAAK9yF,EAAI,EAEV,KAAOvS,EAAIqlG,GAAI,CACd,IAAIC,EAAMtlG,EAAIqlG,IAAO,EACjBJ,EAAKK,GAAOF,EACfplG,EAAIslG,EAAM,EAEVD,EAAKC,EAIFF,EAAcH,EAAKjlG,EAAI,GAAOilG,EAAKjlG,GAAKolG,GAAgBz2H,EAAI,EAAIqxB,KAClEA,EAGH,IAAIulG,EAAYN,EAAKjlG,GAAKmlG,EACzBK,EAAar9H,EAAQo9H,EAEtB,GAAKn7B,EAAK4pB,EAAOjqB,EAAKosB,EAAK,CAC1B,IAAIsP,GAAMzR,EAAKwR,EAAap7B,EAAKm7B,GAAap9H,EAC9C+8H,EAAUv2H,EAAGqxB,EAAGulG,EAAWvR,EAAImC,EAAIsP,EAAI17B,GACvCm7B,EAAUllG,EAAGuS,EAAGizF,EAAYC,EAAItP,EAAI/rB,EAAIL,OAClC,CACN,IAAI27B,GAAMvP,EAAKqP,EAAaz7B,EAAKw7B,GAAap9H,EAC9C+8H,EAAUv2H,EAAGqxB,EAAGulG,EAAWvR,EAAImC,EAAI/rB,EAAIs7B,GACvCR,EAAUllG,EAAGuS,EAAGizF,EAAYxR,EAAI0R,EAAIt7B,EAAIL,IAxC1Cm7B,CAAU,EAAGrvH,EAAG4J,EAAOtX,MAAOsX,EAAOu0G,GAAIv0G,EAAO02G,GAAI12G,EAAO2qF,GAAI3qF,EAAOsqF,KAmDhE,YAAA9uF,MAAP,SAAawE,GAYZ,IAXA,IAMIgjD,EANAuxD,EAAKv0G,EAAOu0G,GACZ5pB,EAAK3qF,EAAO2qF,GACZ+rB,EAAK12G,EAAO02G,GACZpsB,EAAKtqF,EAAOsqF,GAEZgwB,EAAQt6G,EAAOiJ,SAEf/Z,GAAK,EACLkH,EAAIkkH,EAAMtrH,OACVuxB,EAAIvgB,EAAOtX,QAAU4hG,EAAKosB,GAAM12G,EAAOtX,QAElCwG,EAAIkH,IACZ4sD,EAAOs3D,EAAMtnE,SAAS9jD,IACjBqlH,GAAKA,EACVvxD,EAAK2nC,GAAKA,EACV3nC,EAAK0zD,GAAKA,EACVA,GAAM1zD,EAAKt6D,MAAQ63B,EACnByiC,EAAKsnC,GAAKosB,GAUL,YAAA2O,KAAP,SAAYrlH,GAYX,IAXA,IAMCgjD,EANGuxD,EAAKv0G,EAAOu0G,GACZ5pB,EAAK3qF,EAAO2qF,GACZ+rB,EAAK12G,EAAO02G,GACZpsB,EAAKtqF,EAAOsqF,GAEZgwB,EAAQt6G,EAAOiJ,SAElB/Z,GAAK,EACLkH,EAAIkkH,EAAMtrH,OACVuxB,EAAIvgB,EAAOtX,QAAUiiG,EAAK4pB,GAAMv0G,EAAOtX,QAE/BwG,EAAIkH,IACZ4sD,EAAOs3D,EAAMtnE,SAAS9jD,IACjBwnH,GAAKA,EACV1zD,EAAKsnC,GAAKA,EACVtnC,EAAKuxD,GAAKA,EACVA,GAAMvxD,EAAKt6D,MAAQ63B,EACnByiC,EAAK2nC,GAAK4pB,GAUL,YAAA+Q,UAAP,SAAiBtlH,GACG,EAAfA,EAAO69G,MACVhrH,KAAK2I,MAAMwE,GAEXnN,KAAKwyH,KAAKrlH,IAUL,YAAAwjH,SAAP,SAAgBxjH,GAwBf,IAvBA,IAQIkmH,EAIA/rG,EACAC,EAEA+rG,EACAh7H,EACAC,EACAg7H,EACAC,EACAr2E,EACAs2E,EArBAC,GAAS,EAAIn8H,KAAKiD,KAAK,IAAM,EAE7BknH,EAAKv0G,EAAOu0G,GACZ5pB,EAAK3qF,EAAO2qF,GACZ+rB,EAAK12G,EAAO02G,GACZpsB,EAAKtqF,EAAOsqF,GAEZgwB,EAAQt6G,EAAOiJ,SAEfu9G,EAAK,EACLC,EAAK,EACLrwH,EAAIkkH,EAAMtrH,OAGVtG,EAAQsX,EAAOtX,MASZ89H,EAAKpwH,GAAG,CACd+jB,EAAKwwE,EAAK4pB,EACVn6F,EAAKkwE,EAAKosB,EAGV,GACCyP,EAAW7L,EAAMtnE,SAASyzE,KAAM/9H,aACvBy9H,GAAYM,EAAKrwH,GAQ3B,IANAjL,EAAWC,EAAW+6H,EAEtBG,EAAOH,EAAWA,GADlBn2E,EAAQ5lD,KAAKM,IAAI0vB,EAAKD,EAAIA,EAAKC,IAAO1xB,EAAQ69H,IAE9CF,EAAWj8H,KAAKM,IAAIU,EAAWk7H,EAAMA,EAAOn7H,GAGrCs7H,EAAKrwH,IAAKqwH,EAAI,CAUpB,GATAN,GAAYD,EAAY5L,EAAMtnE,SAASyzE,GAAI/9H,MACvCw9H,EAAY/6H,IACfA,EAAW+6H,GAERA,EAAY96H,IACfA,EAAW86H,GAEZI,EAAOH,EAAWA,EAAWn2E,GAC7Bo2E,EAAWh8H,KAAKM,IAAIU,EAAWk7H,EAAMA,EAAOn7H,IAC7Bk7H,EAAU,CACxBF,GAAYD,EAAW,MAExBG,EAAWD,EAIZ,IAAI1oD,EAAM7qE,KAAKgkF,UAAU/iC,SAASr4C,QAClCiiE,EAAIh1E,MAAQy9H,EACZzoD,EAAI2nD,KAAOlrG,EAAKC,EAChBsjD,EAAIz0D,SAAWqxG,EAAM9+G,MAAMgrH,EAAIC,GAC/B/oD,EAAI62C,GAAKA,EACT72C,EAAIg5C,GAAKA,EACTh5C,EAAIitB,GAAKA,EACTjtB,EAAI4sB,GAAKA,EAEL5sB,EAAI2nD,MACP3nD,EAAI4sB,GAAK5hG,EAASguH,GAAOt8F,EAAK+rG,EAAYz9H,EAAS4hG,EACnDz3F,KAAKwyH,KAAK3nD,KAGVA,EAAIitB,GAAKjiG,EAAS6rH,GAAOp6F,EAAKgsG,EAAYz9H,EAASiiG,EACnD93F,KAAK2I,MAAMkiE,IAEZh1E,GAASy9H,EACTK,EAAKC,IAIG,YAAAnnC,mBAAV,aAUO,YAAAonC,0BAAP,SAAiC1kE,EAA8B5sD,GAClD,SAARA,GACHvC,KAAK4pF,uBAIA,YAAAH,iCAAP,SAAwCt6B,EAA8B5sD,GACzD,SAARA,GACHvC,KAAK4pF,uBAIG,YAAAkqC,eAAV,SAAyB3kE,GACxB,GAAKA,GAIAA,EAAS/4C,SAId,OAAI+4C,EAAS/4C,SAASja,OAAS,EACvBgzD,EAE6B,GAA5BA,EAAS/4C,SAASja,OACnB6D,KAAK8zH,eAAe3kE,EAAS/4C,SAAS+pC,SAAS,IAG/CgP,GAST,sBAAW,2BAAY,C,IAAvB,WACC,OAAOnvD,KAAKqxH,e,gCAON,YAAA9uC,WAAP,WACC,IAAID,EAAStiF,KAAKsiF,OAClB,GAAIA,EAAQ,CAEXA,EAAOsK,WAAWrqF,KAAO,OAEzB,IAAIwxH,EAAe/zH,KAAK8zH,eAAe9zH,KAAKqxH,eAE5C,GAAI0C,EAAc,CACjB,IAAI,EAAuC,GAE3CA,EAAa39G,SAASlP,MAAK,SAACioD,GAE3B,EAAW3wD,KAAK2wD,MAIjBmzB,EAAOjhF,KAAO,KAQV,YAAA+nG,YAAP,WAEC,YAAMA,YAAW,WAEjBppG,KAAKqxH,mBAAgB3kH,EAErB1M,KAAKosF,OAAO7iF,QAERvJ,KAAKuxH,eACRvxH,KAAKuxH,cAAcnoB,cAGpBppG,KAAK6+F,MAAMuK,cACXppG,KAAK+mG,MAAMqC,eASF,YAAA1oC,aAAV,sBACO7H,EAAY,YAAM6H,aAAY,WASpC,OARA7H,EAAU3L,QAAQ5jD,IAAI,oBAAoB,SAACgL,GAM1C,MALmB,OAAfA,EAAKqP,QAAkC,QAAfrP,EAAKqP,QAC5B,IAAe,EAAKipE,WAAWx2E,kBAC3B9B,EAAKs4E,WAAW,EAAKA,WAAWx2E,UAGlC9B,KAEDukD,GAGT,EA5nCA,CAA6B,IAooC7B,IAASz5D,kBAAT,QAAwC,GC3mDxC,mBA6BC,mBACC,cAAO,K,OARE,EAAAsoF,OAAS,IAAI,IAStB,EAAK3sC,UAAY,kBAEjB,EAAKmO,WAAW1qD,KAAK,EAAKkpF,QAE1B,EAAK/9B,a,EA0EP,OA7GqC,iBA8C7B,YAAA2sC,kBAAP,SAAyBnI,EAAYzyF,EAAkBqyF,GACtDryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SACtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GAEzC,GAAIyyF,EAAKzlE,QAAS,CAEjB,IAAIpB,EAAatnB,KAAK46E,MAAMo5C,MAAQ,EAChCzsG,EAAavnB,KAAK46E,MAAMq5C,MAAQ,EAEhC/6F,EAAYl5B,KAAKi2F,YAErB9H,EAAKriF,KAAO,IAAa,CAAExR,EAAGgtB,EAAI/sB,EAAGgtB,IAAQ,IAAa,CAAEjtB,EAAGgtB,EAAI/sB,EAAG2+B,EAAI3R,IAAQ,IAAa,CAAEjtB,EAAG,EAAGC,EAAG2+B,IAE3Gl5B,KAAK+1F,aAAa5H,EAAMjzF,GAExB8E,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAQnC,YAAAg1F,sBAAP,WACC,YAAMA,sBAAqB,WAE3B,IAAIx3D,EAAIl5B,KAAKi2F,YACT3uE,EAAKtnB,KAAK46E,MAAMo5C,MAAQ,EACxBzsG,EAAKvnB,KAAK46E,MAAMq5C,MAAQ,EAC5Bj0H,KAAK41F,SAAS9pF,KAAQ,IAAa,CAAExR,EAAGgtB,EAAI/sB,EAAGgtB,IAAQ,IAAa,CAAEjtB,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAG2+B,KAS/G,sBAAW,oBAAK,C,IAUhB,WACC,OAAOl5B,KAAK0nF,OAAOxmF,O,IAXpB,SAAiB05E,GACZA,GACH56E,KAAK0nF,OAAO1mF,IAAI45E,EAAOA,EAAM57E,OAAOmgD,GAAG,kBAAmBn/C,KAAKk0H,gBAAiBl0H,MAAM,K,gCAiB9E,YAAAk0H,gBAAV,SAA0B/vE,GACH,SAAlBA,EAAM9Z,UAAyC,SAAlB8Z,EAAM9Z,UACtCrqC,KAAK0pD,cAIR,EA7GA,CAAqC,IAqHrC,IAAStqD,kBAAT,gBAAgD,GCtHhD,mBA6BC,mBACC,cAAO,K,OARE,EAAAsoF,OAAS,IAAI,IAStB,EAAK3sC,UAAY,kBACjB,EAAKmO,WAAW1qD,KAAK,EAAKkpF,QAC1B,EAAK/9B,a,EA6EP,OA9GqC,iBA4C7B,YAAA2sC,kBAAP,SAAyBnI,EAAYzyF,EAAkBqyF,GACtDryF,IAAuBqyF,EAAcryF,GAAYyyF,EAAK9sE,SAEtD,IAAInmB,EAAgB8E,KAAK6tF,gBAAgBnyF,GACzC,GAAIyyF,EAAKzlE,QAAS,CAEjB,IAAIpB,EAAatnB,KAAK46E,MAAMo5C,MAAQ,EAChCzsG,EAAavnB,KAAK46E,MAAMq5C,MAAQ,EAEhCv1F,EAAY1+B,KAAKk2F,WAErB/H,EAAKriF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGgtB,EAAI/sB,EAAGgtB,IAAQ,IAAa,CAAEjtB,EAAGokC,EAAIpX,EAAI/sB,EAAGgtB,IAE1GvnB,KAAK+1F,aAAa5H,EAAMjzF,GAExB8E,KAAK02F,iBAAiBvI,EAAMzyF,EAAU,EAAG,IAQnC,YAAAg1F,sBAAP,WACC,YAAMA,sBAAqB,WAE3B,IAAIppE,EAAatnB,KAAK46E,MAAMo5C,MAAQ,EAChCzsG,EAAavnB,KAAK46E,MAAMq5C,MAAQ,EAEhCv1F,EAAY1+B,KAAKk2F,WACrBl2F,KAAK41F,SAAS9pF,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAC1C,IAAa,CAAED,EAAGokC,EAAGnkC,EAAG,IACxB,IAAa,CAAED,EAAGokC,EAAIpX,EAAI/sB,EAAGgtB,KASjC,sBAAW,oBAAK,C,IAUhB,WACC,OAAOvnB,KAAK0nF,OAAOxmF,O,IAXpB,SAAiB05E,GACZA,GACH56E,KAAK0nF,OAAO1mF,IAAI45E,EAAOA,EAAM57E,OAAOmgD,GAAG,kBAAmBn/C,KAAKk0H,gBAAiBl0H,MAAM,K,gCAiB9E,YAAAk0H,gBAAV,SAA0B/vE,GACH,SAAlBA,EAAM9Z,UAAyC,SAAlB8Z,EAAM9Z,UACtCrqC,KAAK0pD,cAIR,EA9GA,CAAqC,I,UCIrC,eA0BC,mBACC,cAAO,K,OACP,EAAK3O,UAAY,W,EAoDnB,OAhF8B,iBAkCnB,YAAA6yE,aAAV,WACC5tH,KAAKm0H,SAAWn0H,KAAKspE,YAAY8qD,GAAA,GACjCp0H,KAAKm0H,SAASvrE,aAAc,EAC5B5oD,KAAKm0H,SAAStjE,cAAgB,EAG9B7wD,KAAK8qE,OAAc9qE,KAAKm0H,UAMlB,YAAA9pE,SAAP,WACC,YAAMA,SAAQ,WACVrqD,KAAKm0H,WACRn0H,KAAKm0H,SAAS73H,MAAQ0D,KAAK8xD,WAC3B9xD,KAAKm0H,SAAS53H,OAASyD,KAAK+xD,YACzB/xD,KAAKm0H,SAAStqF,SAChB7pC,KAAKm0H,SAAS9pE,aAUV,YAAAxJ,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAKm0H,UACRn0H,KAAKm0H,SAAStzE,SAAS//B,EAAOqzG,WAWtB,YAAA3wD,QAAV,SAAkB3tE,GACjB,YAAM2tE,QAAO,UAAC3tE,GACdmK,KAAK8qE,OAAOpvB,KAAO7lD,GAErB,EAhFA,CAA8B,IAwF9B,IAASuJ,kBAAT,SAAyC,GC7HzC,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,yBACjB,EAAK4O,a,EAGP,OAhB4C,iBAgB5C,EAhBA,CAA4C,IAgF5C,eAiDC,mBACC,cAAO,K,OAEP,EAAK5O,UAAY,iBAEjB,EAAKizE,QAAQ/sE,SAASkzE,SAAS1sE,eAAgB,EAC/C,EAAKumE,QAAQ/sE,SAASuU,YAAYhrB,WAAWqhB,SAAU,EAEvD,EAAKlC,a,EA6FP,OAtJoC,iBA+DnC,sBAAW,+BAAgB,C,IAA3B,WACC,IAAIixB,EAAQ56E,KAAK46E,MACjB,OAAIA,GAASA,EAAMyzC,kBAAsD,YAAlCzzC,EAAMgzB,kBAAkBpsC,QAA2D,YAAnCoZ,EAAMizB,mBAAmBrsC,QAA4D,cAApCoZ,EAAMmzB,oBAAoBvsC,QAA2D,cAAjCoZ,EAAMkzB,iBAAiBtsC,OAC3MoZ,EAAMyzC,iBAGNruH,KAAKsuH,mB,gCAUP,YAAAS,wBAAP,SAA+B5/D,GAC9B,YAAM4/D,wBAAuB,UAAC5/D,GAC1BA,EAAS2b,SACZ3b,EAAS2b,OAAOxjD,GAAKtnB,KAAKsnB,GAC1B6nC,EAAS2b,OAAOvjD,GAAKvnB,KAAKunB,KAUrB,YAAAwoE,qBAAP,WACC,YAAMA,qBAAoB,WACtB/vF,KAAK46E,OACR56E,KAAK46E,MAAMvZ,oBASH,YAAA+uD,qBAAV,WACC,OAAO,IAAI,IAWZ,sBAAW,oBAAK,C,IAUhB,WACC,OAAOpwH,KAAKujD,iBAAiB,U,IAX9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAAO,GACvBmK,KAAKguH,QAAQ/sE,SACnBkzE,SAASvP,MAAQ/uH,G,gCAiB3B,sBAAW,oBAAK,C,IAUhB,WACC,OAAOmK,KAAKujD,iBAAiB,U,IAX9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAChBmK,KAAKguH,QAAQ/sE,SACnBkzE,SAASr4H,MAAQjG,G,gCAU5B,EAtJA,CAAoC,IA8JpC,IAASuJ,kBAAT,eAA+C,GAC/C,IAASA,kBAAT,uBAAuD,ICpOvD,YAEC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,oBACjB,EAAK4O,a,EALgC,iBAAvC,CAAuC,IAAvC,IAmEA,eA0CC,mBAGC,cAAO,KApBE,EAAAoqD,eAAyC,GAKzC,EAAAC,eAAyC,GAgBlD,EAAKj5D,UAAY,YAGjB,EAAK6pE,MAAQ,GACb,EAAK9oH,MAAQ,GAGb,IAAIuyH,EAAmB,EAAKviC,gBAAgBxiB,YAAYb,EAAA,G,OACxD4lD,EAAiBzlE,aAAc,EAC/BylE,EAAiB7iE,YAAa,EAC9B6iE,EAAiB7sD,OAAS,OAC1B,EAAK6sD,iBAAmBA,EAExB,EAAKA,iBAAiBz8D,KAAO,EAAK0X,YAAY/B,EAAA,GAG9C,EAAK5d,a,EA8MP,OA5Q+B,iBAsEpB,YAAA6sD,kBAAV,WAEC,GADA,YAAMA,kBAAiB,WACnB,MAAe,CAClB,IAAI6X,EAAmBruH,KAAKquH,iBACxBz8D,EAAOy8D,EAAiBz8D,KAC5By8D,EAAiBz8D,UAAOllD,EACxB2hH,EAAiBz8D,KAAOA,IAS1B,sBAAW,oBAAK,C,IAShB,WACC,OAAO5xD,KAAKujD,iBAAiB,U,IAV9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAC/BmK,KAAKqiF,YACLriF,KAAK2lH,uB,gCAgBN,sBAAW,oBAAK,C,IAShB,WACC,OAAO3lH,KAAKujD,iBAAiB,U,IAV9B,SAAiB1tD,GAChBmK,KAAKopD,iBAAiB,QAASvzD,GAC/BmK,KAAKqiF,YACLriF,KAAK2lH,uB,gCAgBN,sBAAW,mBAAI,C,IAAf,WACC,OAAO,IAAU3lH,KAAKlE,OAASkE,KAAK4kH,O,gCASrC,sBAAW,mBAAI,C,IAAf,WACC,OAAQ,IAAU5kH,KAAKlE,OAASkE,KAAK4kH,O,gCAQ/B,YAAA/6C,eAAP,WACC,YAAMA,eAAc,WACpB7pE,KAAKq0H,cAOI,YAAAhyC,UAAV,WAECriF,KAAKkiF,eAAehf,WAAaljE,KAAKi0H,KACtCj0H,KAAKkiF,eAAel5D,aAAehpB,KAAKg0H,KAEpCh0H,KAAK81G,aACR91G,KAAK81G,WAAWvuF,GAAKvnB,KAAKi0H,KAC1Bj0H,KAAK81G,WAAWxuF,GAAKtnB,KAAKg0H,MAGvBh0H,KAAKm2G,aACRn2G,KAAKm2G,WAAW5uF,GAAKvnB,KAAKi0H,KAC1Bj0H,KAAKm2G,WAAW7uF,GAAKtnB,KAAKg0H,MAG3Bh0H,KAAKq0H,aAEL,YAAMhyC,UAAS,YAON,YAAAgyC,WAAV,sBACKl2H,EAAgB,EAChB9B,EAAI,EACR,IAAW2D,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GAC/BA,aAAkB,MAEhBA,EAAOgiC,WAAa/xH,EAAI,GAC5B8B,IAGDiuF,EAAOkoC,WAAan2H,EAAQ,EAC5B9B,QAIF,IAAIpB,EAAY,EAEhB,IAAW+E,KAAKosF,OAAO/mF,YAAY,SAAC+mF,GACnC,GAAIA,aAAkB,GAAgB,CAErCA,EAAOw4B,MAAQ,EAAKA,MAASzmH,EAC7BiuF,EAAOtwF,MAAQ,EAAKA,MAChBswF,EAAOiiC,kBAAoB,EAAKA,mBACnCjiC,EAAO9kE,GAAK,EAAKs9F,MAASzmH,EAAS,IAAU,EAAKrC,OAAUswF,EAAOkoC,WACnEloC,EAAO7kE,IAAM,EAAKq9F,MAASzmH,EAAS,IAAU,EAAKrC,OAAUswF,EAAOkoC,YAGrE,IAAI,GAAW,GACVloC,EAAO8U,UAAY9U,EAAOyS,OAASzS,EAAOyS,MAAMtR,SAASqF,UAAcxG,EAAO8U,UAAY9U,EAAO2a,OAAS3a,EAAO2a,MAAMxZ,SAASqF,YACpI,GAAW,GAGZ,IAAI,EAAY,EAChBxG,EAAOpI,UAAU98E,MAAK,SAACioD,GACtB,IAAI2b,EAAS3b,EAAS2b,OAClBA,IAEFA,EAAO5B,OADJ,EACa,KAAQ,IAAO,GAAKjuE,EAAwB,IAApBmxF,EAAOkoC,WAG/B,IAAO,EAAIr5H,EAAwB,IAApBmxF,EAAOkoC,YAGxC,OAEG,EACHr5H,IAGAA,QAIH+E,KAAKu0H,eASC,YAAApuD,cAAP,SAAqB33D,GAEpB,GAAIA,GAGC,IAAeA,EAAO49E,SAAW,IAAc59E,EAAO49E,QACzD,IAAK,IAAI/vF,EAAI,EAAGgV,EAAM7C,EAAO49E,OAAOjwF,OAAQE,EAAIgV,EAAKhV,IACpDmS,EAAO49E,OAAO/vF,GAAGkF,KAAOiN,EAAO49E,OAAO/vF,GAAGkF,MAAQ,iBAMpD,YAAM4kE,cAAa,UAAC33D,IAIX,YAAA+lH,YAAV,WACC,IAAI71F,EAAY1+B,KAAK0tG,cAAc57C,WAC/B54B,EAAYl5B,KAAK0tG,cAAc37C,YAE/BzqC,EAAatnB,KAAKg0H,KAClBzsG,EAAavnB,KAAKi0H,KAElBnoH,EAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAGgtB,EAAI/sB,EAAGgtB,IAAQ,IAAa,CAAEjtB,EAAGokC,EAAIpX,EAAI/sB,EAAGgtB,IAAQ,IAAa,CAAEjtB,EAAGokC,EAAIpX,EAAI/sB,EAAG2+B,EAAI3R,IAAQ,IAAa,CAAEjtB,EAAGokC,EAAGnkC,EAAG2+B,IAAO,IAAa,CAAE5+B,EAAGokC,EAAGnkC,EAAG2+B,IAAO,IAAa,CAAE5+B,EAAG,EAAGC,EAAG2+B,IAAO,MAElPm1F,EAAmBruH,KAAKquH,iBACxBA,GAAoBA,EAAiBz8D,OACxCy8D,EAAiBz8D,KAAK9lD,KAAOA,IAGhC,EA5QA,CAA+B,IAoR/B,IAAS1M,kBAAT,UAA0C,GC3Q1C,mBA0CC,mBACC,cAAO,KACP,EAAK27C,UAAY,aAEjB,EAAKy5E,gBAAkB,EAAKlrD,YAAYb,EAAA,GACxC,EAAK+rD,gBAAgB5rE,aAAc,EAEnC,EAAK6rE,YAAc,EAGnB,IAAIpwC,EAA2B,IAAIlO,EAAA,E,OACnCkO,EAAOthB,UAAY,GACnBshB,EAAOvhB,SAAW,GAClBuhB,EAAOv4B,qBAAsB,EAC7Bu4B,EAAOzzB,YAAc,EACrByzB,EAAO/xE,aAAa,EAAG,EAAG,EAAG,GAE7B,EAAKkiH,gBAAgBzxD,UAAY,GACjC,EAAKyxD,gBAAgB1xD,SAAW,GAEhC,EAAKtH,YAAc,aAEnB,EAAK0oB,QAAU,IAAI5iC,EAAA,EAA+B+iC,GAClD,EAAKn7B,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAK4iC,UAC3C,EAAKh7B,WAAW1qD,KAAK,EAAK0lF,QAAQjjC,UAElC,EAAK0I,a,EA4cP,OAhhBgC,iBAwErB,YAAA+qE,gBAAV,SAA0BrqF,GACzB,IAEK,EAFD+hD,EAASpsF,KAAKosF,OAClB,GAAIA,EASH,OAPA,IAAmBA,EAAOZ,UAAUnmF,YAAY,SAACylF,GAChD,OAAIA,EAASzgD,UAAYA,IACxB,EAAWygD,EAASlzF,KACb,MAIF,GAIC,YAAA+8H,gBAAV,SAA0BtqF,GACzB,IAEK,EAFD+hD,EAASpsF,KAAKosF,OAClB,GAAIA,EASH,OAPA,IAAWA,EAAOZ,UAAUnmF,YAAY,SAACylF,GACxC,OAAIA,EAASzgD,UAAYA,IACxB,EAAWygD,EAASjzF,KACb,MAIF,GAQF,YAAAwyD,SAAP,WACC,YAAMA,SAAQ,WAEdrqD,KAAK40H,UAAUrnC,SAASqF,SAAW5yF,KAAKkrE,aAExC,IAAIkhB,EAASpsF,KAAKosF,OAEdyoC,EAAW70H,KAAK60H,SAChBC,EAAW90H,KAAK80H,SAUpB,GARK,IAAeD,KACnBA,EAAW,YAAQ70H,KAAK00H,gBAAgB,UAGpC,IAAeI,KACnBA,EAAW,YAAQ90H,KAAK20H,gBAAgB,UAGrCvoC,EAAQ,CACX,IAAI2oC,EAAa3oC,EAAO1wC,MACnB,IAAem5E,IAAaE,aAAsB93E,EAAA,IACtD43E,EAAWE,IAEP,IAAeD,IAAaC,aAAsB93E,EAAA,IACtD63E,EAAWC,GAIR,IAAeD,KACnBA,EAAW,YAAQ90H,KAAK20H,gBAAgB,UAGzC,IAAIK,EAAa,IAAeh1H,KAAK00H,gBAAgB,gBAChD,IAAeM,KACnBA,EAAa,GAEd,IAAIC,EAAa,IAAej1H,KAAK20H,gBAAgB,gBAChD,IAAeM,KACnBA,EAAa,GAId,IAAIC,EAAmB,IAAel1H,KAAK00H,gBAAgB,kBACtD,IAAeQ,KACnBA,EAAmB,GAEpB,IAAIC,EAAmB,IAAen1H,KAAK20H,gBAAgB,kBACtD,IAAeQ,KACnBA,EAAmB,GAQpB,IALA,IAAIC,EAAY,YAAQp1H,KAAK00H,gBAAgB,WACzCW,EAAY,YAAQr1H,KAAK20H,gBAAgB,WAIpCt4H,EAAI,EAAGA,EAAI2D,KAAKy0H,YAAap4H,IAAK,CAC1C,IAAIgoF,EAASrkF,KAAKkkF,QAAQ/jC,SAAS9jD,GAUnC,GARKgoF,KACJA,EAASrkF,KAAKkkF,QAAQ/gF,UACfgK,OAASnN,KAAKw0H,gBACrBnwC,EAAO9nF,OAAS,YAAQ,KACxB8nF,EAAO/nF,MAAQ,YAAQ,MAIA,GAApB0D,KAAKy0H,YAAkB,CAC1B,IAAIp+C,EAAW,IAAIwC,GAAA,EAiBnB,GAhBI74E,KAAKkrE,cACRmL,EAASyC,SAASg8C,EAAUG,GAC5B5+C,EAASyC,SAAS+7C,EAAUG,KAI5B3+C,EAASyC,SAAS+7C,EAAUG,GAC5B3+C,EAASyC,SAASg8C,EAAUG,IAIL,YAApBj1H,KAAKw7D,cACR6a,EAAStvD,UAAY,IAGtBs9D,EAAO3oC,KAAO26B,EACV,IAAe++C,IAAc,IAAeC,GAAY,CAC3D,IAAIC,EAAiB,IAAIz8C,GAAA,EACrB74E,KAAKkrE,cACRoqD,EAAex8C,SAASu8C,EAAWF,GACnCG,EAAex8C,SAASs8C,EAAWF,KAGnCI,EAAex8C,SAASs8C,EAAWF,GACnCI,EAAex8C,SAASu8C,EAAWF,IAGZ,YAApBn1H,KAAKw7D,cACR85D,EAAevuG,UAAY,IAE5Bs9D,EAAOh2B,OAASinE,OAGb,CACJ,IAAI1jH,EAAIvV,EACJ2D,KAAKkrE,eACRt5D,EAAI5R,KAAKy0H,YAAcp4H,EAAI,GAG5B,IAAI0gD,EAAQ,IAAIE,EAAA,EAAM,IAAoB43E,EAASt3E,IAAKu3E,EAASv3E,IAAK3rC,EAAI5R,KAAKy0H,cAC/EpwC,EAAO3oC,KAAOqB,EAEd,IAAI4T,EAAUqkE,GAAcC,EAAaD,GAAcpjH,EAAI5R,KAAKy0H,YAGhE,GAFApwC,EAAOzzB,YAAcD,EAEjB,IAAeykE,IAAc,IAAeC,GAAY,CAC3D,IAAI,EAAQ,IAAIp4E,EAAA,EAAM,IAAoBm4E,EAAU73E,IAAK83E,EAAU93E,IAAK3rC,EAAI5R,KAAKy0H,cACjFpwC,EAAOh2B,OAAS,EAEhB,IAAI,EAAU6mE,GAAoBC,EAAmBD,GAAoBtjH,EAAI5R,KAAKy0H,YAClFpwC,EAAOxzB,cAAgB,IAK1B,IAAI08B,EAAWvtF,KAAK40H,UAAUrnC,SAC1BvtF,KAAKy0H,YAAc,IACE,cAApBz0H,KAAKw7D,YACR+xB,EAAS8C,gBAAkBrwF,KAAKmzD,cAAgBnzD,KAAKy0H,YAGrDlnC,EAAS8C,gBAAkBrwF,KAAKozD,eAAiBpzD,KAAKy0H,aAIxDz0H,KAAK40H,UAAUlrE,aAENrtD,EAAI2D,KAAKy0H,YAAlB,IAAK,IAA0BpjH,EAAMrR,KAAKkkF,QAAQ/nF,OAAQE,EAAIgV,EAAKhV,IAClE2D,KAAKkkF,QAAQ/jC,SAAS9jD,GAAG8Q,YAAST,GASpC,sBAAW,uBAAQ,C,IAanB,WACC,OAAO1M,KAAKujD,iBAAiB,a,IAd9B,SAAoB1tD,GAEbA,aAAiBonD,EAAA,IACtBpnD,EAAQ,YAAQA,IAGjBmK,KAAKw6D,iBAAiB,WAAY3kE,GAAO,I,gCAgB1C,sBAAW,uBAAQ,C,IAanB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAd9B,SAAoB1tD,GAEbA,aAAiBonD,EAAA,IACtBpnD,EAAQ,YAAQA,IAGjBmK,KAAKw6D,iBAAiB,WAAY3kE,GAAO,I,gCAgB1C,sBAAW,0BAAW,C,IAQtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAT9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAgB7C,sBAAW,uBAAQ,C,IASnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAClCmK,KAAK40H,UAAUh9H,IAAM/B,G,gCAgBtB,sBAAW,uBAAQ,C,IASnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAClCmK,KAAK40H,UAAU/8H,IAAMhC,G,gCAgBtB,sBAAW,0BAAW,C,IA8DtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IA/D9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,GAC5C,IAAI2+H,EAAkBx0H,KAAKw0H,gBACvBI,EAAY50H,KAAK40H,UAGR,cAAT/+H,GACE,IAAemK,KAAK1D,SACxB0D,KAAK1D,MAAQ,KAEd0D,KAAKzD,YAASmQ,EAEdkoH,EAAUt4H,MAAQ,YAAQ,KAC1Bs4H,EAAUr4H,YAASmQ,EACnBkoH,EAAUpnE,QAAQslC,mBAAqB,WAEvC9yF,KAAKwhE,OAAS,WACdgzD,EAAgBl4H,MAAQ,YAAQ,KAChCk4H,EAAgBj4H,YAASmQ,EACnBkoH,EAAUrnC,oBAAoB,KACnCqnC,EAAUrnC,SAAW,IAAI,MAKrB,IAAevtF,KAAKzD,UACxByD,KAAKzD,OAAS,KAEfyD,KAAK1D,WAAQoQ,EACb1M,KAAKwhE,OAAS,aACdgzD,EAAgBl4H,WAAQoQ,EACxB8nH,EAAgBj4H,OAAS,YAAQ,KACjCq4H,EAAUr4H,OAAS,YAAQ,KAC3Bq4H,EAAUt4H,WAAQoQ,EAClBkoH,EAAUpnE,QAAQslC,mBAAqB,aAEjC8hC,EAAUrnC,oBAAoB,KACnCqnC,EAAUrnC,SAAW,IAAI,IAE1BqnC,EAAUrnC,SAAS+H,QAAS,EAC5Bs/B,EAAUrnC,SAASjK,OAAOriC,SAASq0C,QAAS,EAE5Ct1F,KAAKw0H,gBAAgBtpD,cAAe,GAGrC,IAAIqiB,EAAWqnC,EAAUrnC,SACzBA,EAASY,KAAKltC,SAASkJ,UAAW,EAClCojC,EAASkB,UAAUxtC,SAASkJ,UAAW,EACvCojC,EAASqI,SAASzrC,UAAW,EAC7BojC,EAASjK,OAAOriC,SAASqiB,QAAQ,EAAG,EAAG,EAAG,GAE1CiqB,EAASxqB,eAAYr2D,EACrB6gF,EAASzqB,cAAWp2D,EAEpB1M,KAAKw0H,gBAAgBhzD,OAAS3rE,G,gCAgB/B,sBAAW,wBAAS,C,IAapB,WAKC,OAJKmK,KAAKu1H,aACTv1H,KAAK40H,UAAY50H,KAAKspE,YAAY,IAClCtpE,KAAK40H,UAAUhsE,aAAc,GAEvB5oD,KAAKu1H,Y,IAlBb,SAAqBX,GAEpB50H,KAAKu1H,WAAaX,EAElBA,EAAUznH,OAASnN,KACnB40H,EAAUt4B,cAAe,EACzBt8F,KAAKw7D,YAAcx7D,KAAKw7D,a,gCAmBzB,sBAAI,qBAAM,C,IA6BV,WACC,OAAOx7D,KAAKgsF,S,IA9Bb,SAAWI,GAAX,WACCpsF,KAAKgsF,QAAUI,EAEf,IAAIrB,EAAY,QAEhB,IACC,IAAIyqC,EAAmBppC,EAAOZ,UAAUrrC,SAAS,GAAG4qC,UAChDyqC,IACHzqC,EAAYyqC,GAGd,MAAOzkH,IAIP/Q,KAAKy1H,aAAarpC,EAAOj9B,SAASp2D,OAAOgyF,GAAWzqC,IAAK8rC,EAAOj9B,SAASp2D,OAAOgyF,GAAWxqC,MAE3F6rC,EAAOj9B,SAASnwD,OAAOmgD,GAAG,0BAA0B,SAACgF,GACpD,EAAKsxE,aAAarpC,EAAOj9B,SAASp2D,OAAOgyF,GAAWzqC,IAAK8rC,EAAOj9B,SAASp2D,OAAOgyF,GAAWxqC,aACzF7zC,GAAW,GAEd0/E,EAAOZ,UAAUxsF,OAAOmgD,GAAG,WAAYn/C,KAAK0pD,WAAY1pD,MAAM,GAC9DosF,EAAOZ,UAAUxsF,OAAOmgD,GAAG,UAAWn/C,KAAK0pD,WAAY1pD,MAAM,I,gCAepD,YAAAy1H,aAAV,SAAuB79H,EAAaC,GACnC,IAAI+8H,EAAY50H,KAAK40H,UAChB,IAAe50H,KAAK1H,YACxBs8H,EAAUh9H,IAAMA,EAChBg9H,EAAUlrE,cAEN,IAAe1pD,KAAKzH,YACxBq8H,EAAU/8H,IAAMA,EAChB+8H,EAAUlrE,eAUL,YAAAyc,cAAP,SAAqB33D,GAEpB,GAAIA,GAGC,IAAeA,EAAO49E,SAAW,IAAe59E,EAAO49E,SACtD,IAAe59E,EAAO49E,QACzB,GAAIpsF,KAAKkrB,IAAIizB,OAAO3vC,EAAO49E,QAC1B59E,EAAO49E,OAASpsF,KAAKkrB,IAAIg0B,OAAO1wC,EAAO49E,YAEnC,CACJ,IAAI,EAAW59E,EAAO49E,OAChB,EAAWpsF,KAAKkrB,IAAIlsB,OAAOmgD,GAAG,aAAa,SAASyZ,GACrDA,EAAG93D,KAAO,IACbd,KAAKosF,OAASxzB,EAAGxZ,SACjB,EAASS,aAER7/C,MACHA,KAAKkpD,WAAW1qD,KAAK,UACdgQ,EAAO49E,OAOlB,YAAMjmB,cAAa,UAAC33D,IAGtB,EAhhBA,CAAgCi6D,EAAA,GA0hBhC,IAASrpE,kBAAT,WAA2C,GCllB3C,mBA8BC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,cACjB,EAAKymB,OAAS,O,EA+BhB,OAhEiC,iBAuCtB,YAAAosD,aAAV,WACC,YAAMA,aAAY,WAElB5tH,KAAK01H,QAAU11H,KAAKspE,YAAYk1C,GAAA,GAChCx+G,KAAK01H,QAAQ9sE,aAAc,EAE3B5oD,KAAK21H,SAAW31H,KAAKspE,YAAYk1C,GAAA,GACjCx+G,KAAK21H,SAAS/sE,aAAc,GAQtB,YAAA/H,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAK01H,SACR11H,KAAK01H,QAAQ70E,SAAS//B,EAAO40G,SAE1B11H,KAAK21H,UACR31H,KAAK21H,SAAS90E,SAAS//B,EAAO60G,WAIjC,EAhEA,CAAiC,IAwEjC,IAASv2H,kBAAT,YAA4C,GC1F5C,mBAgBC,mBACC,cAAO,K,OAEP,EAAKrG,OAAO68H,UAAY,GACxB,EAAK78H,OAAO88H,UAAY,GACxB,EAAK98H,OAAO+8H,WAAa,GACzB,EAAK/8H,OAAOg9H,WAAa,GAEzB,EAAKh7E,UAAY,4BAEjB,EAAK4O,a,EAsGP,OAhI+C,iBAkC9C,sBAAW,wBAAS,C,IAOpB,WACC,OAAO3pD,KAAKjH,OAAO68H,UAAU//H,O,IAR9B,SAAqBA,GACpBmK,KAAKsmF,SAAS,YAAazwF,I,gCAe5B,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKjH,OAAO88H,UAAUhgI,O,IAR9B,SAAqBA,GACpBmK,KAAKsmF,SAAS,YAAazwF,I,gCAe5B,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKjH,OAAO+8H,WAAWjgI,O,IAR/B,SAAsBA,GACrBmK,KAAKsmF,SAAS,aAAczwF,I,gCAe7B,sBAAW,yBAAU,C,IAOrB,WACC,OAAOmK,KAAKjH,OAAOg9H,WAAWlgI,O,IAR/B,SAAsBA,GACrBmK,KAAKsmF,SAAS,aAAczwF,I,gCAiB7B,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKjH,OAAO4xG,OAAO90G,O,IAR3B,SAAuBA,GACtBmK,KAAKsmF,SAAS,SAAUzwF,I,gCAiBzB,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKjH,OAAO6xG,OAAO/0G,O,IAR3B,SAAuBA,GACtBmK,KAAKsmF,SAAS,SAAUzwF,I,gCAS1B,EAhIA,CAA+C,IAuR/C,eA+DC,mBACC,cAAO,KACP,EAAKklD,UAAY,oBAEjB,EAAKupD,YAAYsxB,UAAY,MAC7B,EAAKtxB,YAAYuxB,UAAY,MAE7B,EAAKvxB,YAAYwxB,WAAa,OAC9B,EAAKxxB,YAAYyxB,WAAa,OAE9B,EAAKllE,cAAgB,EAErB,IAAIijB,EAAkB,IAAIC,EAAA,EACtBiiD,EAAgBliD,EAAgBlK,OAAO,YACvCqsD,EAAgBniD,EAAgBlK,OAAO,Y,OAE3C,EAAKssD,kBAAkB1rF,WAAWkR,KAAOu6E,EACzC,EAAKC,kBAAkB1rF,WAAW6jB,OAAS4nE,EAE3C,EAAKE,kBAAkB3rF,WAAWkR,KAAOs6E,EACzC,EAAKG,kBAAkB3rF,WAAW6jB,OAAS2nE,EAE3C,EAAKrsE,a,EAuQP,OA5VuC,iBA4F5B,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,wBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IASL,YAAAqqC,wBAAP,SAA+B5/D,GAC9B,YAAM4/D,wBAAuB,UAAC5/D,GAC9BnvD,KAAKo2H,oBAAoBjnE,IAGhB,YAAAinE,oBAAV,SAA8BjnE,GAC7B,IAAI2b,EAAsB3b,EAAS2b,OACnC,GAAIA,EAAQ,CACX,IAAI,EAAUA,EAAO4qD,QACjB,EAAW5qD,EAAO6qD,SAEtB,GAAI31H,KAAKkhG,UAAYlhG,KAAK6+F,MAAO,CAChC,IAAIvkG,EAAYwwE,EAAOhZ,WAAa,EAEpC,EAAQx3D,EAAIA,EACZ,EAASA,EAAIA,EAEb,IAAI,EAAO60D,EAAS0uC,gBAAgB79F,KAAKmtG,YACrC,EAAQh+C,EAAS0uC,gBAAgB79F,KAAKqpF,QAEtCgtC,EAAQr2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKmtG,YACvCmpB,EAASt2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKqpF,QACxCktC,EAAOv2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKw2H,WACtCC,EAAQz2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAK02H,YAEvCtvG,EAAS0jD,EAAO1jD,OAEpB,EAAQqwE,GAAK8+B,EAAOnvG,EACpB,EAASqwE,GAAKg/B,EAAQrvG,EAElB,EAAO,GACV,EAAQswE,GAAK2+B,EAAQjvG,EACrB,EAASswE,GAAK4+B,EAASlvG,IAGvB,EAAQswE,GAAK4+B,EAASlvG,EACtB,EAASswE,GAAK2+B,EAAQjvG,GAIxB,GAAIpnB,KAAKkhG,UAAYlhG,KAAK+mG,MAAO,CAChC,IAAIxsG,EAAYuwE,EAAO/Y,YAAc,EAErC,EAAQx3D,EAAIA,EACZ,EAASA,EAAIA,EAEb,IAAI,EAAO40D,EAAS0uC,gBAAgB79F,KAAKitG,YACrC,EAAQ99C,EAAS0uC,gBAAgB79F,KAAKopF,QAEtCutC,EAAQ32H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKitG,YACvC2pB,EAAS52H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKopF,QACxCytC,EAAO72H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAK82H,WACtCC,EAAQ/2H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKg3H,YAEvC/vG,EAAS6jD,EAAO7jD,OAEpB,EAAQ6wE,GAAK++B,EAAO5vG,EACpB,EAAS6wE,GAAKi/B,EAAQ9vG,EAElB,EAAO,GACV,EAAQ8wE,GAAK4+B,EAAQ1vG,EACrB,EAAS8wE,GAAK6+B,EAAS3vG,IAGvB,EAAQ8wE,GAAK6+B,EAAS3vG,EACtB,EAAS8wE,GAAK4+B,EAAQ1vG,GAIxB,IAAWjnB,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GAEvC,IAAI6mC,EAAcvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KAC1D,GAAIyvH,EAAa,CAChB,IAAIuH,EAAevH,EAAYgG,QAC/BuB,EAAa38H,EAAI,EAAQA,EACzB28H,EAAa18H,EAAI,EAAQA,EACzB08H,EAAan/B,GAAK,EAAQA,GAC1Bm/B,EAAal/B,GAAK,EAAQA,GAC1Bk/B,EAAax/B,GAAK,EAAQA,GAC1Bw/B,EAAav/B,GAAK,EAAQA,GAG1B,IAAIw/B,EAAgBxH,EAAYiG,SAChCuB,EAAc58H,EAAI,EAASA,EAC3B48H,EAAc38H,EAAI,EAASA,EAC3B28H,EAAcp/B,GAAK,EAASA,GAC5Bo/B,EAAcn/B,GAAK,EAASA,GAC5Bm/B,EAAcz/B,GAAK,EAASA,GAC5By/B,EAAcx/B,GAAK,EAASA,SAYhC,sBAAW,wBAAS,C,IAApB,WACC,OAAO13F,KAAKm3H,Y,gCASb,sBAAW,wBAAS,C,IAApB,WACC,OAAOn3H,KAAKo3H,Y,gCASb,sBAAW,yBAAU,C,IAArB,WACC,OAAOp3H,KAAKq3H,a,gCASb,sBAAW,yBAAU,C,IAArB,WACC,OAAOr3H,KAAKs3H,a,gCAMH,YAAA/qB,aAAV,WACC,YAAMA,aAAY,WAElB,IAAI1N,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,MACjB,GAAIlI,GAASkI,EAAO,CACnB,GAAI/mG,KAAKkhG,UAAYrC,EAAO,CAC3B,IAAIqO,EAAyB,IAAkBnG,EAAMjO,eACrD94F,KAAKo3H,WAAgD,MAAQlqB,EAAiB,IAC9EltG,KAAKs3H,YAAiD,OAASpqB,EAAiB,IAGjF,GAAIltG,KAAKkhG,UAAY6F,EAAO,CAC3B,IAAIiG,EAAyB,IAAkBnO,EAAM/F,eACrD94F,KAAKm3H,WAAgD,MAAQnqB,EAAiB,IAC9EhtG,KAAKq3H,YAAiD,OAASrqB,EAAiB,IAGjFhtG,KAAKstG,cAAczO,EAAY7+F,KAAKyrG,cAAoBzrG,KAAKm3H,YAC7Dn3H,KAAKstG,cAAczO,EAAY7+F,KAAKyrG,cAAoBzrG,KAAKq3H,aAE7Dr3H,KAAKstG,cAAcvG,EAAY/mG,KAAK0rG,cAAoB1rG,KAAKo3H,YAC7Dp3H,KAAKstG,cAAcvG,EAAY/mG,KAAK0rG,cAAoB1rG,KAAKs3H,eAWxD,YAAAvyC,mBAAP,SAA0BV,GAEzB,IAAI3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO7a,iBAEP,IAII+tD,EACAC,EALA1sD,EAAsBuZ,EAAO/a,YAAY,IAC7CwB,EAAOliB,aAAc,EACrBkiB,EAAOjqB,SAAc7gD,KAAKguH,QAAQ/sE,UAKlC,IAAI00E,EAAiB7qD,EAAO4qD,QACxBA,EAAgB5qD,EAAO6qD,SAEvB31H,KAAKkhG,UAAYlhG,KAAK+mG,OACzBwwB,EAAK74F,EAAI,EACT84F,EAAKt+F,EAELy8F,EAASp7H,EAAI2+B,EAAI,EACjBw8F,EAAQn7H,EAAI2+B,EAAI,EAEhBy8F,EAAS59B,GAAKr5D,EAAI,EAClBg3F,EAAQ39B,GAAKr5D,EAAI,EACjBg3F,EAAQp7H,EAAIokC,EAAI,EAAI,EACpBosC,EAAOA,OAAOxwE,EAAIokC,EAAI,IAGtB64F,EAAK74F,EACL84F,EAAKt+F,EAAI,EACTy8F,EAASr7H,EAAIokC,EAAI,EACjBg3F,EAAQp7H,EAAIokC,EAAI,EAEhBi3F,EAASj+B,GAAKx+D,EAAI,EAClBw8F,EAAQh+B,GAAKx+D,EAAI,EACjBw8F,EAAQn7H,EAAI2+B,EAAI,EAAI,EACpB4xC,EAAOA,OAAOvwE,EAAI2+B,EAAI,GAEvB4xC,EAAOxuE,MAAQi7H,EACfzsD,EAAOvuE,OAASi7H,EAEhB,IAAuBx3H,KAAMqkF,EAAQ,KACrC,IAAuBrkF,KAAKguH,QAAQ/sE,SAAU6pB,EAAQ,KAEtDA,EAAOzc,OAASruD,KAAKm2H,kBAAkB3rF,WAAW6jB,OAClDyc,EAAOpvB,KAAOovB,EAAOzc,OAErB,IAAIu2B,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ+tB,EAAOpvB,KAC9BkpC,EAAeoB,UAAYlb,EAAOpvB,MAQzB,YAAA00E,qBAAV,WACC,OAAO,IAAI,IAGb,EA5VA,CAAuC,IAoWvC,IAAShxH,kBAAT,kBAAkD,GAClD,IAASA,kBAAT,0BAA0D,GC1mB1D,mBAoCC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,OACjB,EAAKymB,OAAS,O,EAoChB,OA3E0B,iBA4Cf,YAAAosD,aAAV,WAGC5tH,KAAKy3H,SAAWz3H,KAAKspE,YAAYk1C,GAAA,GACjCx+G,KAAKy3H,SAAS7uE,aAAc,EAE5B5oD,KAAK03H,YAAc13H,KAAKspE,YAAYk1C,GAAA,GACpCx+G,KAAK03H,YAAY9uE,aAAc,EAE/B5oD,KAAK23H,UAAY33H,KAAKspE,YAAYk1C,GAAA,GAClCx+G,KAAK23H,UAAU/uE,aAAc,GAQvB,YAAA/H,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAKy3H,UACRz3H,KAAKy3H,SAAS52E,SAAS//B,EAAO22G,UAE3Bz3H,KAAK03H,aACR13H,KAAK03H,YAAY72E,SAAS//B,EAAO42G,aAE9B13H,KAAK23H,WACR33H,KAAK23H,UAAU92E,SAAS//B,EAAO62G,YAIlC,EA3EA,CAA0B,IAmF1B,IAASv4H,kBAAT,KAAqC,GCzGrC,mBAgBC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,qBAEjB,EAAK4O,a,EAEP,OAvBwC,iBAuBxC,EAvBA,CAAwC,IAuExC,eAmCC,mBACC,cAAO,K,OACP,EAAK5O,UAAY,aAEjB,EAAK4O,a,EAuMP,OA9OgC,iBA8CrB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,iBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAIF,YAAA0xC,oBAAV,SAA8BjnE,GAC7B,IAAI2b,EAAe3b,EAAS2b,OAC5B,GAAIA,EAAQ,CACX,IAAI,EAAWA,EAAO2sD,SAClB,EAAc3sD,EAAO4sD,YACrB,EAAY5sD,EAAO6sD,UAEvB,GAAI33H,KAAKkhG,UAAYlhG,KAAK6+F,MAAO,CAChC,IAAIvkG,EAAYwwE,EAAOhZ,WAAa,EACpC,EAAYx3D,EAAIA,EAGhB60D,EAAS0uC,gBAAgB79F,KAAKmtG,YAC9Bh+C,EAAS0uC,gBAAgB79F,KAAKqpF,QAE9B,IAAIgtC,EAAQr2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKmtG,YACvCmpB,EAASt2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKqpF,QACxCktC,EAAOv2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAKw2H,WACtCC,EAAQz2H,KAAK+mG,MAAM5S,KAAKhlC,EAAUnvD,KAAK02H,YAEvCtvG,EAAS0jD,EAAO1jD,OAEpB,EAASqwE,GAAK4+B,EAAQjvG,EACtB,EAASswE,GAAK2+B,EAAQjvG,EACtB,EAAS0wE,GAAK,EACd,EAASC,GAAKz9F,EAEd,EAAUm9F,GAAK6+B,EAASlvG,EACxB,EAAUswE,GAAK4+B,EAASlvG,EACxB,EAAU0wE,GAAKx9F,EACf,EAAUy9F,GAAK,EAAIz9F,EAEnB,EAAYm9F,GAAKg/B,EAAQrvG,EACzB,EAAYswE,GAAK6+B,EAAOnvG,EAGzB,GAAIpnB,KAAKkhG,UAAYlhG,KAAK+mG,MAAO,CAChC,IAAIxsG,EAAYuwE,EAAO/Y,YAAc,EAErC,EAAYx3D,EAAIA,EAGhB40D,EAAS0uC,gBAAgB79F,KAAKitG,YAC9B99C,EAAS0uC,gBAAgB79F,KAAKopF,QAE9B,IAAIutC,EAAQ32H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKitG,YACvC2pB,EAAS52H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKopF,QACxCytC,EAAO72H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAK82H,WACtCC,EAAQ/2H,KAAK6+F,MAAM5K,KAAK9kC,EAAUnvD,KAAKg3H,YAEvC/vG,EAAS6jD,EAAO7jD,OAEpB,EAAS6wE,GAAK6+B,EAAQ1vG,EACtB,EAAS8wE,GAAK4+B,EAAQ1vG,EACtB,EAASwwE,GAAKl9F,EACd,EAASm9F,GAAK,EAAIn9F,EAElB,EAAUu9F,GAAK8+B,EAAS3vG,EACxB,EAAU8wE,GAAK6+B,EAAS3vG,EACxB,EAAUwwE,GAAK,EACf,EAAUC,GAAKn9F,EAEf,EAAYu9F,GAAKi/B,EAAQ9vG,EACzB,EAAY8wE,GAAK8+B,EAAO5vG,EAGzB,IAAWjnB,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GAEvC,IAAI6mC,EAAcvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KAC1D,GAAIyvH,EAAa,CAChB,IAAIkI,EAAgBlI,EAAY+H,SAChCG,EAAct9H,EAAI,EAASA,EAC3Bs9H,EAAcr9H,EAAI,EAASA,EAC3Bq9H,EAAc9/B,GAAK,EAASA,GAC5B8/B,EAAc7/B,GAAK,EAASA,GAC5B6/B,EAAcngC,GAAK,EAASA,GAC5BmgC,EAAclgC,GAAK,EAASA,GAE5B,IAAImgC,EAAiBnI,EAAYiI,UACjCE,EAAev9H,EAAI,EAAUA,EAC7Bu9H,EAAet9H,EAAI,EAAUA,EAC7Bs9H,EAAe//B,GAAK,EAAUA,GAC9B+/B,EAAe9/B,GAAK,EAAUA,GAC9B8/B,EAAepgC,GAAK,EAAUA,GAC9BogC,EAAengC,GAAK,EAAUA,GAE9B,IAAIogC,EAAmBpI,EAAYgI,YACnCI,EAAiBx9H,EAAI,EAAYA,EACjCw9H,EAAiBv9H,EAAI,EAAYA,EACjCu9H,EAAiBhgC,GAAK,EAAYA,GAClCggC,EAAiB//B,GAAK,EAAYA,GAClC+/B,EAAiBrgC,GAAK,EAAYA,GAClCqgC,EAAiBpgC,GAAK,EAAYA,SAc/B,YAAA3S,mBAAP,SAA0BV,GAEzB,IAAI3lD,EAAY2lD,EAAOvyB,WACnB54B,EAAYmrD,EAAOtyB,YAEvBsyB,EAAO7a,iBAEP,IAII+tD,EACAC,EALA1sD,EAAeuZ,EAAO/a,YAAY,IACtCwB,EAAOliB,aAAc,EACrBkiB,EAAOjqB,SAAc7gD,KAAKguH,QAAQ/sE,UAKlC,IAAIw2E,EAAiB3sD,EAAO2sD,SACxBE,EAAkB7sD,EAAO6sD,UACzBD,EAAoB5sD,EAAO4sD,YAE3B13H,KAAKkhG,UAAYlhG,KAAK+mG,OACzBwwB,EAAK74F,EAAI,EACT84F,EAAKt+F,EAELw+F,EAAYn9H,EAAI2+B,EAAI,EACpBw+F,EAAY3/B,GAAKr5D,EAEjB+4F,EAASn9H,EAAIokC,EAAI,EAAI,EACrB+4F,EAAS//B,GAAKx+D,EAAI,EAElBy+F,EAAUr9H,EAAIokC,EAAI,EAClBi5F,EAAUjgC,GAAKx+D,EACfy+F,EAAUlgC,GAAKv+D,EAAI,IAGnBq+F,EAAK74F,EACL84F,EAAKt+F,EAAI,EAETw+F,EAAYp9H,EAAIokC,EAAI,EACpBg5F,EAAYhgC,GAAKx+D,EAEjBu+F,EAASl9H,EAAI2+B,EAAI,EAAI,EACrBu+F,EAAS1/B,GAAKr5D,EAAI,EAElBi5F,EAAUp9H,EAAI2+B,EAAI,EAClBy+F,EAAU5/B,GAAKr5D,EACfi5F,EAAU7/B,GAAKp5D,EAAI,GAEpBosC,EAAOxuE,MAAQi7H,EACfzsD,EAAOvuE,OAASi7H,EAEhB,IAAuBx3H,KAAMqkF,EAAQ,KACrC,IAAuBrkF,KAAKguH,QAAQ/sE,SAAU6pB,EAAQ,KAEtDA,EAAOzc,OAASruD,KAAKm2H,kBAAkB3rF,WAAW6jB,OAElD,IAAIu2B,EAAiCP,EAAOl1B,SAC5Cy1B,EAAe7nC,MAAQ+tB,EAAOzc,OAC9Bu2B,EAAeoB,UAAYlb,EAAOzc,QAQzB,YAAA+hE,qBAAV,WACC,OAAO,IAAI,IAGb,EA9OA,CAAgC,IAsPhC,IAAShxH,kBAAT,WAA2C,GAC3C,IAASA,kBAAT,mBAAmD,GCnSnD,mBAkCC,mBAGC,cAAO,K,OACP,EAAK27C,UAAY,wB,EA0DnB,OAhG2C,iBAkDnC,YAAAghE,YAAP,SAAmB7/G,EAAkB8/G,EAAuBC,EAAqBC,EAAqB6b,EAAoBC,GACzH,GAAI97H,EAAOC,OAAS,GAAK6/G,EAAY7/G,OAAS,EAE7C,GAAI47H,EAAU,CACb,IAAIjsH,EAAe,IAAa5P,EAAO,IACvC,GAAIA,EAAOC,OAAS,EACnB,IAAK,IAAIE,EAAI,EAAGA,EAAIH,EAAOC,OAAQE,IAAK,CACvC,IAAInB,EAAQgB,EAAOG,GACfA,EAAI,GAAK9E,KAAKQ,MAAMsE,EAAI,GAC3ByP,GAAQ,IAAa5Q,GAGrB4Q,GAAQ,IAAa5Q,GAKxB8E,KAAK87G,aAAahwG,KAAOA,GAErB9L,KAAK4wD,YAAc,GAAK5wD,KAAK67G,WAAWjrD,YAAc,KACzD9kD,EAAO,IAAa5P,EAAO,IAAM,IAAeA,GAChD4P,GAAQ,IAAakwG,EAAY,IAAM,IAAeA,GACtDlwG,GAAQ,IAAa5P,EAAO,IAC5B4P,GAAQ,MAER9L,KAAK67G,WAAW/vG,KAAOA,OAMpB,CACAA,EAAe,IAAa5P,EAAO,IAAM,IAAeA,GAE5D8D,KAAK87G,aAAahwG,KAAOA,GAErB9L,KAAK4wD,YAAc,GAAK5wD,KAAK67G,WAAWjrD,YAAc,KACzD9kD,GAAQ,IAAakwG,EAAY,IAAM,IAAeA,GACtDlwG,GAAQ,IAAa5P,EAAO,IAC5B4P,GAAQ,MAER9L,KAAK67G,WAAW/vG,KAAOA,KAK5B,EAhGA,CAA2C,IAwG3C,IAAS1M,kBAAT,sBAAsD,GCvItD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,yBACjB,EAAK4O,a,EAGP,OAhB4C,iBAgB5C,EAhBA,CAA4C,IAsE5C,eAmCC,mBACC,cAAO,K,OACP,EAAK5O,UAAY,iBACjB,EAAK4O,aACL,EAAKg3C,cAAgB,EACrB,EAAKC,YAAc,E,EA6KrB,OArNoC,iBAiDzB,YAAAlc,eAAV,WACC,OAAO,IAAI,IAaF,YAAA5T,UAAV,SAAoB50E,EAAkBizD,EAA6Bi6B,EAAgBC,EAAgBrqC,GAElG,IAAIi5E,EACAC,EAEAC,EACAC,EAEDp4H,KAAKkhG,UAAYlhG,KAAK6+F,QACxBo5B,EAAiBj4H,KAAK2gG,cACtBu3B,EAAel4H,KAAK4gG,YAEpBu3B,EAAiBn4H,KAAKyvG,qBAAqBtgD,EAAUnvD,KAAKmtG,YAC1DirB,EAAep4H,KAAKyvG,qBAAqBtgD,EAAUnvD,KAAKqpF,SAGtDrpF,KAAKkhG,UAAYlhG,KAAK+mG,QACxBoxB,EAAiBn4H,KAAK2gG,cACtBy3B,EAAep4H,KAAK4gG,YAEpBq3B,EAAiBj4H,KAAKyvG,qBAAqBtgD,EAAUnvD,KAAKitG,YAC1DirB,EAAel4H,KAAKyvG,qBAAqBtgD,EAAUnvD,KAAKopF,SAIzD,IAAIs4B,EAAa1hH,KAAK6+F,MAAM5K,KAAK9kC,EAAUi6B,EAAQ6uC,GAC/CpU,EAAa7jH,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQ8uC,GAE/CrgC,EAAa93F,KAAK6+F,MAAM5K,KAAK9kC,EAAUi6B,EAAQ8uC,GAC/CzgC,EAAaz3F,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQ+uC,GASnD,GAPA1W,EAAK,IAAiBA,GAAK,IAAQ,KACnCmC,EAAK,IAAiBA,GAAK,IAAQ,KAEnC/rB,EAAK,IAAiBA,GAAK,IAAQ,KACnCL,EAAK,IAAiBA,GAAK,IAAQ,MAG9Bz3F,KAAK+3H,UACL77H,EAAOC,OAAS,EAAG,CACtB,IAAInB,EAAoBkB,EAAOA,EAAOC,OAAS,GAC3C6D,KAAKkhG,UAAYlhG,KAAK6+F,QACrB7/C,EACH9iD,EAAOsC,KAAK,CAAElE,EAAGU,EAAUV,EAAGC,EAAGk9F,IAGjCv7F,EAAOsC,KAAK,CAAElE,EAAGonH,EAAInnH,EAAGS,EAAUT,KAGhCyF,KAAKkhG,UAAYlhG,KAAK+mG,QACrB/nD,EACH9iD,EAAOsC,KAAK,CAAElE,EAAGw9F,EAAIv9F,EAAGS,EAAUT,IAGlC2B,EAAOsC,KAAK,CAAElE,EAAGU,EAAUV,EAAGC,EAAGspH,KAMrC,IAAI3xC,EAAiB,CAAE53E,EAAGonH,EAAInnH,EAAGspH,GAC7BzpH,EAAiB,CAAEE,EAAGw9F,EAAIv9F,EAAGk9F,GAE7Bz4C,EACH9iD,EAAOsC,KAAKpE,EAAQ83E,GAGpBh2E,EAAOsC,KAAK0zE,EAAQ93E,IAYZ,YAAA2hH,YAAV,SAAsB1oC,EAAgCn3E,EAAkB8/G,GACvE,IAAIgc,GAAW,EACXh4H,KAAK+mG,OAAS/mG,KAAKkhG,WACtB82B,GAAW,GAEZ3kD,EAAQ0oC,YAAY7/G,EAAQ8/G,EAAah8G,KAAKrC,SAAUqC,KAAKpC,SAAUoC,KAAK+3H,SAAUC,IAQ7E,YAAAjb,cAAV,WACC,OAAO,IAAI,IAWZ,sBAAW,uBAAQ,C,IAOnB,WACC,OAAO/8G,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,4BAAa,C,IAOxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAgB/C,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAU9C,EArNA,CAAoC,IA6NpC,IAASuJ,kBAAT,eAA+C,GAC/C,IAASA,kBAAT,uBAAuD,GCzQvD,mBA0BC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,c,EAuDnB,OAnFiC,iBAkCtB,YAAA6yE,aAAV,WACC5tH,KAAKq4H,YAAcr4H,KAAKspE,YAAY4K,GAAA,GACpCl0E,KAAKq4H,YAAYzvE,aAAc,EAC/B5oD,KAAKq4H,YAAYxnE,mBAAgBnkD,EAEjC1M,KAAK8qE,OAAc9qE,KAAKq4H,aAQlB,YAAAx3E,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAKq4H,aACRr4H,KAAKq4H,YAAYx3E,SAAS//B,EAAOu3G,cAW5B,YAAA/yD,YAAP,WACC,IAAIzvE,EAAQmK,KAAKujD,iBAAiB,YAClC,OAAK,IAAe1tD,GAGbA,EAFCmK,KAAKq4H,YAAY/yD,eAWnB,YAAAC,YAAP,WACC,IAAI1vE,EAAQmK,KAAKujD,iBAAiB,YAClC,OAAK,IAAe1tD,GAGbA,EAFCmK,KAAKq4H,YAAY9yD,eAK3B,EAnFA,CAAiC,IA2FjC,IAASnmE,kBAAT,YAA4C,GC7G5C,mBAeC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,uBACjB,EAAK4O,a,EAEP,OApB+C,iBAoB/C,EApBA,CAA+C,IAoE/C,eAwCC,mBACC,cAAO,K,OACP,EAAK5O,UAAY,oBACjB,EAAK4O,a,EAgQP,OA3SuC,iBAmD5B,YAAAymE,qBAAV,WACC,OAAO,IAAI,IAQL,YAAA/lE,SAAP,WAGKrqD,KAAK46E,MAAM/wC,SACd7pC,KAAK46E,MAAMvwB,WAGZ,YAAMA,SAAQ,YAML,YAAAskE,qBAAV,SAA+Bx/D,GAC1BA,IACCA,EAAS2b,SACZ3b,EAAS2b,OAAO1e,YAAa,GAG9B,IAAWpsD,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GACvC,IAAI6mC,EAAsBvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KAC9DyvH,IACHA,EAAYtjE,YAAa,QAYtB,YAAA2iE,wBAAP,SAA+B5/D,GAA/B,IASKmpE,EACAC,EAEAC,EACAC,EAbL,OACKx6H,EAAa+B,KAAK46E,MAAM38E,WACxBC,EAAW8B,KAAK46E,MAAM18E,SAEtBmrF,EAAiBrpF,KAAKqpF,OACtB8jB,EAAqBntG,KAAKmtG,WAC1B/jB,EAAiBppF,KAAKopF,OACtB6jB,EAAqBjtG,KAAKitG,WAQ1BtM,EAAgB3gG,KAAKgvH,iBAAiB7/D,GACtCyxC,EAAc5gG,KAAKivH,eAAe9/D,GAElCupE,GAAax6H,EAAWD,IAAe+B,KAAKgkF,UAAU7nF,QAAU6D,KAAKpG,IAAMoG,KAAKvG,QAEhF4+H,EAAclpE,EAAS2b,OACtButD,IACJA,EAAcr4H,KAAKguH,QAAQ7qH,SAC3BgsD,EAAS2b,OAASutD,EAClB,IAAuBr4H,KAAMq4H,EAAa,KAC1C,IAAuBr4H,KAAKguH,QAAQ/sE,SAAUo3E,EAAa,KAC3DlpE,EAASo0B,UAAU80C,GACnBA,EAAY93H,MAAQP,KAAKO,MACzBP,KAAKyvH,gBAAgB4I,IAGtB,IAAI/7H,EAAQ+7H,EAAY/7H,MACpBmmE,EAAe,IAEfnmE,aAAiBi9C,EAAA,IACpBkpB,EAAenmE,EAAMmlB,SAGtB,IAAIumB,EAAiB,KAAa44D,EAAcD,IAAkB,EAAIl+B,EAAe,KAAO,EAAG,GAiC/F,GAhCAk+B,GAAiB34D,EACjB44D,GAAe54D,EAEVhoC,KAAK6+F,iBAAiB,IAAkB7+F,KAAK+mG,iBAAiB,IAClEyxB,EAAU,IAAkB,CAAEl+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUk6B,EAAQ,EAAG,UAAW9uF,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQ,EAAG,YACzHovC,EAAU,IAAkB,CAAEn+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUg+C,EAAY,EAAG,UAAW5yG,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAY,EAAG,YAEjImrB,EAASt4H,KAAK6+F,MAAMljG,SAASwzD,EAAU89C,EAAY,EAAG,UACtDsrB,EAASv4H,KAAK6+F,MAAMljG,SAASwzD,EAAUi6B,EAAQ,EAAG,UAElDnrF,GAA0B0iG,EAAgB+3B,EAC1Cx6H,IAAuB,EAAI0iG,GAAe83B,GAElC14H,KAAKkhG,UAAYlhG,KAAK6+F,OAC9B25B,EAAU,IAAkB,CAAEl+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUk6B,EAAQl6B,EAASs0C,UAAUpa,GAAS,UAAW9uF,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQl6B,EAASs0C,UAAUpa,GAAS,YAC3KovC,EAAU,IAAkB,CAAEn+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUg+C,EAAYh+C,EAASs0C,UAAU0J,GAAa,UAAW5yG,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAYh+C,EAASs0C,UAAU0J,GAAa,YAE3LmrB,EAASt4H,KAAK6+F,MAAMljG,SAASwzD,EAAU89C,EAAYtM,EAAe,UAClE43B,EAASv4H,KAAK6+F,MAAMljG,SAASwzD,EAAUi6B,EAAQwX,EAAa,UAE5D3iG,GAA0B0iG,EAAgB+3B,EAC1Cx6H,IAAuB,EAAI0iG,GAAe83B,IAG1CF,EAAU,IAAkB,CAAEl+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUk6B,EAAQsX,EAAe,UAAWpmG,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUk6B,EAAQsX,EAAe,YACjJ83B,EAAU,IAAkB,CAAEn+H,EAAG0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUg+C,EAAYvM,EAAa,UAAWrmG,EAAGyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUg+C,EAAYvM,EAAa,YAErJ03B,EAASt4H,KAAK6+F,MAAMljG,SAASwzD,EAAUi6B,EAAQj6B,EAASs0C,UAAUra,GAAS,UAE3EmvC,EAASv4H,KAAK6+F,MAAMljG,SAASwzD,EAAU89C,EAAY99C,EAASs0C,UAAUwJ,GAAa,WAGhFsrB,EAASD,EAAQ,CACpB,IAAI9/H,EAAO+/H,EACXA,EAASD,EACTA,EAAS9/H,EAGV8/H,EAAS,IAAiBA,EAAQr6H,EAAYC,GAC9Cq6H,EAAS,IAAiBA,EAAQt6H,EAAYC,GAE9C,IAAIyK,EAAQ0vH,EAAYA,YAExB1vH,EAAM1K,WAAaq6H,EAEnB,IAAIz5H,EAAM05H,EAASD,EAEfz5H,EAAM,GACT8J,EAAM9J,IAAMA,EACZ8J,EAAMtK,OAASm6H,EACf7vH,EAAM0J,YAAcomH,EACpBJ,EAAYjsE,YAAa,EAEzBisE,EAAYlrH,OAASnN,KAAKquH,iBAE1B,IAAWruH,KAAKqnF,WAAWhiF,YAAY,SAACwjF,GACvC,IAAI6mC,EAAcvgE,EAASwgE,cAAczwE,OAAO2pC,EAAU5oF,KACrDyvH,IACJA,EAAc,EAAK1B,QAAQ7qH,SAE3B,IAA4B,EAAK6qH,QAAQ/sE,SAAUyuE,EAAa,KAChE,IAAuB7mC,EAAUkB,SAAU2lC,EAAa,KAEpDA,EAAYvgE,UACf,IAAcugE,EAAYvgE,SAASroC,QAAS4oG,GAG7CvgE,EAASo0B,UAAUmsC,GACnBA,EAAYnvH,MAAQ,EAAKA,MACzB,EAAKkvH,gBAAgBC,GACrBvgE,EAASwgE,cAAcz/D,OAAO24B,EAAU5oF,IAAKyvH,IAG9C,IAAI/mH,EAAQ+mH,EAAY2I,YACxB1vH,EAAM1K,WAAaq6H,EACnB3vH,EAAM9J,IAAMA,EACZ8J,EAAMtK,OAASm6H,EACf7vH,EAAM0J,YAAcomH,EAEhB9vH,EAAMkhC,UACTlhC,EAAMpI,MAAQ,EAAKA,MACnBoI,EAAM0hD,YAGPqlE,EAAYtjE,YAAa,EACzBsjE,EAAYviH,OAAS07E,EAAUkB,aAIhC/pF,KAAK2uH,qBAAqBx/D,IAgBrB,YAAAghD,SAAP,SAAgBhhD,EAAqCkjD,EAAcC,EAAczB,EAAoBI,EAAoBsB,EAAoBC,GAEvID,IACJA,EAAY,UAERC,IACJA,EAAY,UAGb,IAAIl4G,EAAY0F,KAAK+mG,MAAM9S,KAAK9kC,EAAUmjD,EAAMrB,EAAWuB,GACvDj4G,EAAYyF,KAAK+mG,MAAM5S,KAAKhlC,EAAUmjD,EAAMrB,EAAWuB,GAEvDn0G,EAAiB,IAAkB,CAAE/D,EAAGA,EAAGC,EAAGA,IAEpC,GAAV8D,IACHA,EAAS,MAGV,IAAIvC,EAAgBkE,KAAK6+F,MAAMljG,SAASwzD,EAAUkjD,EAAMxB,EAAW0B,GAEnE,MAAO,CAAEj4G,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KASpD,YAAA2xG,YAAV,WACC,IAAIlgB,EAAmDvtF,KAAK+mG,MAAMxZ,SAClE,OAAO,IAAUA,EAAStvF,WAAYsvF,EAASrvF,SAAWqvF,EAAStvF,WAAYsvF,EAASqxB,YAAarxB,EAASsxB,mBAGrG,YAAAzN,mBAAV,SAA6BxpB,EAAe2oB,EAAkBC,GAC7D,IAAI3R,EAAQ7+F,KAAK6+F,MACbkI,EAAQ/mG,KAAK+mG,OAEdwJ,EAAY1R,EAAMplG,OAAS82G,EAAY1R,EAAMjlG,KAAO42G,EAAYzJ,EAAMttG,OAAS+2G,EAAYzJ,EAAMntG,OACnGguF,EAAO/7B,SAAU,GAGlB+7B,EAAOt2E,OAAOtR,KAAK6+F,MAAMtR,SAASM,gBAAgB0iB,EAAWC,KAGpD,YAAAvC,SAAV,SAAmB/jB,GAClB,YAAM+jB,SAAQ,UAAC/jB,GACflqF,KAAK8+G,sBAGI,YAAA1Q,SAAV,SAAmBlkB,GAClB,YAAMkkB,SAAQ,UAAClkB,GACflqF,KAAK8+G,sBAGI,YAAAA,mBAAV,WACC,IAAIC,EAAkC/+G,KAAK6+F,MAAMtR,SAC7CyxB,EAAgCh/G,KAAK+mG,MAAMxZ,SAE/CwxB,EAAUE,cAAgBD,GAE5B,EA3SA,CAAuC,IAmTvC,IAAS5/G,kBAAT,kBAAkD,GAClD,IAASA,kBAAT,0BAA0D,GC3U1D,mBAiCC,mBACC,cAAO,K,OAEP,EAAKuJ,MAAQ,EAAK2gE,YAAY/B,EAAA,GAC9B,EAAK5+D,MAAMigD,aAAc,EACzB,EAAKjgD,MAAM0pD,WAAW,EAAK9xD,MAAM+I,IAAI,SACrC,EAAKX,MAAM6iD,YAAa,EAExB,EAAKgQ,YAAc,WACnB,EAAKm9D,YAAc,YAAQ,KAC3B,EAAKC,SAAW,YAAQ,KACxB,EAAKptE,YAAa,EAElB,EAAKlvD,MAAQ,GACb,EAAKC,OAAS,GAEd,EAAKs8H,eAAiB,EAEtB,EAAK99E,UAAY,cAEjB,EAAK4O,a,EAwNP,OA7QiC,iBA2DtB,YAAAY,KAAV,WACC,YAAMA,KAAI,WAEV,IAAI3rD,EAAKoB,KAAK2nB,gBACVmxG,EAAK94H,KAAKkzD,mBACV6lE,EAAK/4H,KAAKizD,kBACV+lE,EAAKh5H,KAAK0nB,iBAEVgX,EAAI1+B,KAAK8xD,WAAainE,EAAKC,EAC3B9/F,EAAIl5B,KAAK+xD,YAAcnzD,EAAKk6H,EAE5BG,EAAKj5H,KAAK64H,eAEV/sH,EAAO,GAGX,GAAwB,YAApB9L,KAAKw7D,YAA2B,CACnC,IAGI09D,EAAK,CAAE5+H,GAAIokC,GAHXy6F,EAAK,IAAuBn5H,KAAK44H,SAAUl6F,KAGtB,EAAIs6F,EAAIz+H,EAAGqE,GAChCw6H,EAAK,CAAE9+H,GAAIokC,EAAIy6F,GAAM,EAAIH,EAAIz+H,EAAGqE,GAEhCy6H,EAAK,CAAE/+H,GAAIokC,GALX46F,EAAK,IAAuBt5H,KAAK24H,YAAaj6F,KAKzB,EAAIs6F,EAAIz+H,EAAGqE,EAAKs6B,GACrCqgG,EAAK,CAAEj/H,GAAIokC,EAAI46F,GAAM,EAAIN,EAAIz+H,EAAGqE,EAAKs6B,GAErCsgG,EAAM,CAAEl/H,EAAG8+H,EAAG9+H,GAAK++H,EAAG/+H,EAAI8+H,EAAG9+H,GAAK,EAAI2+H,EAAK//F,EAAG3+B,EAAG6+H,EAAG7+H,EAAI,GAAM2+B,GAC9DugG,EAAM,CAAEn/H,EAAG4+H,EAAG5+H,GAAKi/H,EAAGj/H,EAAI4+H,EAAG5+H,GAAK,EAAI2+H,EAAK//F,EAAG3+B,EAAG2+H,EAAG3+H,EAAI,GAAM2+B,GAE9DwgG,EAAM,IAAaL,GACnBM,EAAM,GAED,GAANV,IACFS,EAAM,IAAuBL,EAAIG,GACjCG,EAAM,IAAuBT,EAAIO,IAGlC3tH,EAAO,IAAaotH,GAAM,IAAaE,GAAMM,EAAM,IAAaH,GAAMI,EAEtE35H,KAAK45H,UAAY,CAAEt/H,EAAG8+H,EAAG9+H,GAAK++H,EAAG/+H,EAAI8+H,EAAG9+H,GAAK,EAAGC,EAAG6+H,EAAG7+H,GAAK8+H,EAAG9+H,EAAI6+H,EAAG7+H,GAAK,OAEtE,CACJ,IAAI4+H,EACAG,EAEAO,EAAK,CAAEv/H,EAAG0+H,EAAIz+H,GAAI2+B,GAHlBigG,EAAK,IAAuBn5H,KAAK44H,SAAU1/F,KAGf,EAAIt6B,GAChCk7H,EAAK,CAAEx/H,EAAG0+H,EAAIz+H,GAAI2+B,EAAIigG,GAAM,EAAIv6H,GAEhCm7H,EAAK,CAAEz/H,EAAG0+H,EAAKt6F,EAAGnkC,GAAI2+B,GALtBogG,EAAK,IAAuBt5H,KAAK24H,YAAaz/F,KAKd,EAAIt6B,GACpCo7H,EAAK,CAAE1/H,EAAG0+H,EAAKt6F,EAAGnkC,GAAI2+B,EAAIogG,GAAM,EAAI16H,GAEpC46H,EAAM,CAAEj/H,EAAGs/H,EAAGt/H,GAAKw/H,EAAGx/H,EAAIs/H,EAAGt/H,GAAK,EAAI0+H,EAAKv6F,EAAGpkC,EAAGu/H,EAAGv/H,EAAI,GAAMokC,GAC9D+6F,EAAM,CAAEl/H,EAAGu/H,EAAGv/H,GAAKy/H,EAAGz/H,EAAIu/H,EAAGv/H,GAAK,EAAI0+H,EAAKv6F,EAAGpkC,EAAGw/H,EAAGx/H,EAAI,GAAMokC,GAE9Dg7F,EAAM,IAAaK,GACnBJ,EAAM,GACD,GAANV,IACFS,EAAM,IAAuBK,EAAIP,GACjCG,EAAM,IAAuBG,EAAIL,IAGlC3tH,EAAO,IAAaguH,GAAM,IAAaD,GAAMH,EAAM,IAAaM,GAAML,EAEtE35H,KAAK45H,UAAY,CAAEr/H,EAAGu/H,EAAGv/H,GAAKy/H,EAAGz/H,EAAIu/H,EAAGv/H,GAAK,EAAGD,EAAGw/H,EAAGx/H,GAAK0/H,EAAG1/H,EAAIw/H,EAAGx/H,GAAK,GAG3E0F,KAAK2I,MAAMmD,KAAOA,EAClB9L,KAAKqhE,oBAIN,YAAA8uC,SAAA,SAASU,EAAkBI,GAE1B,IAAIryG,EAAKoB,KAAK2nB,gBACVmxG,EAAK94H,KAAKkzD,mBACV6lE,EAAK/4H,KAAKizD,kBACV+lE,EAAKh5H,KAAK0nB,iBAEVgX,EAAI1+B,KAAK8xD,WAAainE,EAAKC,EAC3B9/F,EAAIl5B,KAAK+xD,YAAcnzD,EAAKk6H,EAEhC,GAAwB,YAApB94H,KAAKw7D,YAA2B,CACnC,IAGI09D,EAAK,CAAE5+H,GAAIokC,GAHXy6F,EAAK,IAAuBn5H,KAAK44H,SAAUl6F,KAGtB,EAAIs6F,EAAIz+H,EAAGqE,GAChCw6H,EAAK,CAAE9+H,GAAIokC,EAAIy6F,GAAM,EAAIH,EAAIz+H,EAAGqE,GAEhCy6H,EAAK,CAAE/+H,GAAIokC,GALX46F,EAAK,IAAuBt5H,KAAK24H,YAAaj6F,KAKzB,EAAIs6F,EAAIz+H,EAAGqE,EAAKs6B,GAGrC+gG,EAAMf,EAAG5+H,GAFJ,CAAEA,GAAIokC,EAAI46F,GAAM,EAAIN,EAAIz+H,EAAGqE,EAAKs6B,GAEpB5+B,EAAI4+H,EAAG5+H,GAAK22G,EAGjC,MAAO,CAAE32G,EAAG2/H,GAFFb,EAAG9+H,GAAK++H,EAAG/+H,EAAI8+H,EAAG9+H,GAAK22G,EAERgpB,GAAOppB,EAAWt2G,EAAG6+H,EAAG7+H,GAAK8+H,EAAG9+H,EAAI6+H,EAAG7+H,GAAK02G,GAGrE,IAAIkoB,EACAG,EAEAO,EAAK,CAAEv/H,EAAG0+H,EAAIz+H,GAAI2+B,GAHlBigG,EAAK,IAAuBn5H,KAAK44H,SAAU1/F,KAGf,EAAIt6B,GAChCk7H,EAAK,CAAEx/H,EAAG0+H,EAAIz+H,GAAI2+B,EAAIigG,GAAM,EAAIv6H,GAEhCm7H,EAAK,CAAEz/H,EAAG0+H,EAAKt6F,EAAGnkC,GAAI2+B,GALtBogG,EAAK,IAAuBt5H,KAAK24H,YAAaz/F,KAKd,EAAIt6B,GAGpCs7H,EAAML,EAAGt/H,GAAKw/H,EAAGx/H,EAAIs/H,EAAGt/H,GAAKs2G,EAGjC,MAAO,CAAEt2G,EAAG2/H,GAFFJ,EAAGv/H,GAHJ,CAAED,EAAG0+H,EAAKt6F,EAAGnkC,GAAI2+B,EAAIogG,GAAM,EAAI16H,GAGnBrE,EAAIu/H,EAAGv/H,GAAKs2G,EAERqpB,GAAOjpB,EAAW32G,EAAGu/H,EAAGv/H,GAAKy/H,EAAGz/H,EAAIu/H,EAAGv/H,GAAKu2G,IAevE,sBAAW,0BAAW,C,IAOtB,WACC,OAAO7wG,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAmBhE,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKy6D,mBAAmB,WAAY5kE,GAAO,GAAM,EAAO,IAAI,I,gCAmB7D,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAuB7C,sBAAW,6BAAc,C,IAOzB,WACC,OAAOmK,KAAKujD,iBAAiB,mB,IAR9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GAAO,I,gCAezC,YAAAgrD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAK2I,OACR3I,KAAK2I,MAAMk4C,SAAS//B,EAAOnY,QAG9B,EA7QA,CAAiC8/D,EAAA,GAqRjC,IAASrpE,kBAAT,YAA4C,GCzS5C,mBA8BC,mBACC,cAAO,K,OAXE,EAAAikF,OAAS,IAAI,IAKb,EAAAk/B,OAAS,IAAI,IAOtB,EAAKxnE,UAAY,aACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9B,EAAK4/C,WAAW1qD,KAAK,EAAK6kF,QAC1B,EAAKn6B,WAAW1qD,KAAK,EAAK+jH,QAE1B,EAAKn5D,iBAAiB,YAAa,GACnC,EAAKA,iBAAiB,YAAa,GAEnC,EAAKO,a,EA4IP,OApLgC,iBAgDxB,YAAAY,KAAP,WACC,YAAMA,KAAI,WAEV,IAAI5hD,EAAqB3I,KAAK2I,MAC1BzN,EAAQyN,EAAMwnG,SAASnwG,KAAK6wG,UAAW7wG,KAAKixG,WAEhD,GAAI/1G,EAAO,CACV,IAAI6J,EAAQ/E,KAAK+E,MAEbqnF,EAAuBzjF,EAAMwmD,SAASvtD,UACtCrE,OAAE,EACFC,OAAE,EACFC,OAAE,EAEN,GAA0B,YAAtB2uF,EAAO5wB,YAA2B,CAErC,IAAIs8B,EAAK/yF,EAAMkiB,OACXwwE,EAAK1yF,EAAMqiB,OAEXglE,EAAO+tC,iBACVriC,GAAM/yF,EAAM8iD,UAGbtqD,EAAK,IAA2BrC,EAAOyN,EAAO3I,KAAKmN,QACnD1P,EAAK,IAA2B,CAAEnD,EAAGw9F,EAAIv9F,EAAGk9F,GAAM1yF,EAAMoI,OAAQnN,KAAKmN,QACrE3P,EAAK,CAAElD,EAAGyK,EAAMoI,OAAO8Z,OAASjnB,KAAK7D,OAAQ5B,EAAGkD,EAAGlD,GAE/C6xF,EAAO+tC,iBACV38H,EAAGlD,EAAIyK,EAAMoI,OAAOgmD,cAAgBnzD,KAAK7D,YAGtC,CACA27F,EAAK/yF,EAAMkiB,OACXwwE,EAAK1yF,EAAMqiB,OAEXglE,EAAO+tC,iBACV1iC,GAAM1yF,EAAMgjD,WAGbxqD,EAAK,IAA2BrC,EAAOyN,EAAO3I,KAAKmN,QAEnD3P,EAAK,CAAElD,GADPmD,EAAK,IAA2B,CAAEnD,EAAGw9F,EAAIv9F,EAAGk9F,GAAM1yF,EAAMoI,OAAQnN,KAAKmN,SACxD7S,EAAGC,EAAGwK,EAAMoI,OAAOia,OAASpnB,KAAK7D,QAE1CiwF,EAAO+tC,iBACV38H,EAAGjD,EAAIwK,EAAMoI,OAAOimD,eAAiBpzD,KAAK7D,QAG5C6D,KAAK8L,KAAO,IAAavO,GAAM,IAAaC,GAAM,IAAaC,KASjE,sBAAW,oBAAK,C,IAUhB,WACC,OAAOuC,KAAKuiH,OAAOrhH,O,IAXpB,SAAiByH,GAChB3I,KAAKuiH,OAAOvhH,IAAI2H,EAAO,IAAI,IAAc,CACxCA,EAAM3J,OAAOmgD,GAAG,cAAen/C,KAAK0pD,WAAY1pD,MAAM,GACtD2I,EAAM3J,OAAOmgD,GAAG,YAAan/C,KAAK0pD,WAAY1pD,MAAM,O,gCAgBtD,sBAAW,oBAAK,C,IAOhB,WACC,OAAOA,KAAKqjF,OAAOniF,O,IARpB,SAAiB6D,GAChB/E,KAAKqjF,OAAOriF,IAAI+D,EAAOA,EAAM/F,OAAOmgD,GAAG,cAAen/C,KAAK0pD,WAAY1pD,MAAM,K,gCAsB9E,sBAAW,wBAAS,C,IAOpB,WACC,OAAOA,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,GAAO,I,gCAsBlD,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,GAAO,I,gCAUnD,EApLA,CAAgC,IA4LhC,IAASuJ,kBAAT,WAA2C,GC/M3C,mBAwDC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,uBAEjB,EAAK/7C,OAAOmgD,GAAG,qBAAqB,WAC/B,EAAKv9C,WACR,EAAKA,UAAUgoF,wBAEd,GAAM,GAET,EAAKjgC,a,EAEP,OApE0C,iBAiCzC,sBAAW,wBAAS,C,IAApB,sBACC,IAAK3pD,KAAKo6H,WAAY,CACrB,IAAI,EAAYp6H,KAAK4B,UAAUy4H,WAAWl3H,SAC1CnD,KAAKo6H,WAAa,EAClBp6H,KAAKkpD,WAAW1qD,KAAK,GACrB,EAAU2O,OAASnN,KAAK4B,UAAU6gH,gBAElCziH,KAAKkpD,WAAW1qD,KAAK,IAAIujD,EAAA,GAAS,WAC7B,EAAKngD,WACR,EAAKA,UAAUy4H,WAAWp6E,YAAY,OAIxCjgD,KAAKujF,UAAU,GACf,EAAU13B,QAAU7rD,KAAK6rD,QAE1B,OAAO7rD,KAAKo6H,Y,gCAmBd,EApEA,CAA0C,IA2I1C,eAsEC,mBACC,cAAO,K,OArBE,EAAAE,OAAiB,EAuB1B,EAAKv/E,UAAY,eACjB,EAAKygB,YAAc,WAEnB,EAAKl/D,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KAEtB,EAAKkmH,gBAAgBnmH,MAAQ,YAAQ,KACrC,EAAKmmH,gBAAgBlmH,OAAS,YAAQ,KAEtC,EAAK2sD,WAAW1qD,KAAK,EAAKikH,gBAAgBzjH,OAAOmgD,GAAG,iBAAkB,EAAKyqC,oBAAqB,GAAM,IAEtG,EAAKuwC,gBAAiB,EAEtB,EAAK7X,gBAAgB9gD,OAAS,WAE9B,EAAK+4D,YAAc,EAEnB,EAAK5wE,a,EAgtBP,OA1yBkC,iBAkGvB,YAAAi5D,YAAV,WACC,OAAO,IAAI,IAQF,YAAA5rB,WAAV,WACC,OAAO,IAAI,IAOF,YAAA9sC,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,mBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQF,YAAAo+B,UAAV,SAAoBn6G,GACnBA,EAAM6iD,YAAa,EACnB7iD,EAAM+jD,aAAaliB,WAAWhjB,MAAQ,EACtC7e,EAAMiyD,QAAQ,QAAS56D,KAAKwjH,iBAAkBxjH,MAC9C2I,EAAMiyD,QAAQ,CAAC,KAAM,KAAM,IAAK,KAAM56D,KAAKyjH,gBAAiBzjH,MAC5D2I,EAAMqrD,YAAc,mEAEHrrD,EAAMskD,OAAO9pD,OAAO,SAC1BqnC,WAAWquF,eAAiB,IAS9B,YAAA7V,UAAV,SAAoBj+G,GACnB,YAAMi+G,UAAS,UAACj+G,GAChBA,EAAM2mD,eAAiB,SACvB3mD,EAAM0mD,iBAAmB,SACzB1mD,EAAMymD,YAAa,EACnBzmD,EAAMu+D,QAAQ,EAAG,EAAG,EAAG,IAQjB,YAAAjZ,SAAP,WACC,YAAMA,SAAQ,WACdrqD,KAAKs6H,OAAS,GASR,YAAAvqC,qBAAP,sBAEK0yB,EAAkBziH,KAAKyiH,gBACvBH,EAAkBtiH,KAAKsiH,gBACvBkY,EAAgBx6H,KAAKsjF,OAAOriC,SAE5BjhD,KAAK2iH,aACR6X,EAAc1uE,qBAAsB,EACpC22D,EAAgBj3D,YAAa,EAC7B82D,EAAgB92D,YAAa,IAG7BgvE,EAAc1uE,qBAAsB,EACpC22D,EAAgBj3D,YAAa,EAC7B82D,EAAgB92D,YAAa,GAG9B,IAAIvV,EAAQ,EACR93C,EAAQ,EACZ6B,KAAKgkF,UAAU98E,MAAK,SAACuzH,GAChB,IAAeA,EAAM5kI,SACxBsI,IACIs8H,EAAM5kI,MAAQ,EACjBogD,GAAS1+C,KAAK6B,IAAIqhI,EAAM58B,gBAAgB,SAAW48B,EAAM5kI,OAGrD,EAAK4uH,mBAIHgW,EAAM5uE,SAAW4uE,EAAMruE,YAAcquE,EAAM7zE,SAHhDzoD,IAOC83C,GAAS,MAOdj2C,KAAK06H,OAAS,EAAIv8H,EAAQ83C,EAC1Bj2C,KAAK26H,OAASx8H,EAEd,YAAM4xF,qBAAoB,WAE1B/vF,KAAKijH,iBAUI,YAAA2X,aAAV,SAAuBzrE,GACtB,IAAIxnD,EAAQwnD,EAASxnD,MACjBkzH,EAAoB1rE,EAAS0uC,gBAAgB,SACjD,GAAIl2F,EAAQ3H,KAAKgkF,UAAU7nF,OAAS,EAAG,CACtC,IAAI2+H,EAAW96H,KAAKgkF,UAAU7jC,SAASx4C,EAAQ,GAG/C,GAFAkzH,EAAYC,EAASj9B,gBAAgB,UAEhCi9B,EAASjvE,SAAWivE,EAASl0E,UAAYk0E,EAAS1uE,YAAiC,GAAlB0uE,EAASjlI,OAAcmK,KAAKykH,iBACjG,OAAOzkH,KAAK46H,aAAaE,GAG3B,OAAOD,GAQE,YAAAE,gBAAV,aAUO,YAAAp2C,oBAAP,SAA2Bx1B,GAA3B,WAGKxmD,EAAQwmD,EAASxmD,MACrBA,EAAM6yD,YAAcx7D,KAAKw7D,YAEzB,IAAIw/D,EAAY7rE,EAAS6rE,UACzBA,EAAUx/D,YAAcx7D,KAAKw7D,YAE7B,IAAI6yB,EAAOl/B,EAASk/B,KAChBtpF,EAAQoqD,EAASpqD,MAErBspF,EAAK1lF,MAAQA,EACb0lF,EAAKtpF,MAAQA,EAET,IAAeoqD,EAASt5D,QAC3BmK,KAAKi7H,cAAc9rE,GACnB,IAAYA,EAASroC,SAAS,SAACzmB,GACR,GAAlB8uD,EAASt5D,OAAc,EAAK4uH,iBAC/BpkH,EAAO+rD,YAAa,EAGpB/rD,EAAO+rD,YAAa,MAKtB,IAAY+C,EAASroC,SAAS,SAACzmB,GAC9BA,EAAO+rD,YAAa,KAIlB+C,EAASxnD,OAAS3H,KAAKgkF,UAAU7nF,OAAS,IAC7C6+H,EAAU7wE,UAAW,GAItB,YAAMw6B,oBAAmB,UAACx1B,GAE1B6rE,EAAUt/E,KAAO/yC,EAAM+yC,MAUd,YAAAu/E,cAAV,SAAwB9rE,GACvB,IAAIxmD,EAAQwmD,EAASxmD,MACjBqyH,EAAY7rE,EAAS6rE,UACrBj2H,EAAQoqD,EAASpqD,MACjBspF,EAAOl/B,EAASk/B,KAEhB/sB,EAAWthE,KAAKyiH,gBAAgBr8D,WAChC2b,EAAY/hE,KAAKyiH,gBAAgBv8D,YAEjC20E,EAAY76H,KAAK46H,aAAazrE,GAC9Bk8B,EAAe9zF,KAAK6B,IAAI+1D,EAAS0uC,gBAAgB,UACjD08B,EAAcv6H,KAAKu6H,YAEnBpiI,EAAI,EAUR,GATsB,GAAlBg3D,EAASt5D,MACZsC,EAAIkzF,EAAe9zF,KAAK6B,IAAI+1D,EAASt5D,QAGjCs5D,EAAS/C,YAAc+C,EAASvI,WAAauI,EAAStD,WACzD1zD,EAAI,MAIF6H,KAAKykH,kBAAsC,GAAlBt1D,EAASt5D,MACrCs5D,EAAS/C,YAAa,OAWvB,GAPC+C,EAAS/C,YAAa,EAGnBpsD,KAAKs6H,QAAUp2G,MAClBlkB,KAAKs6H,OAAS,GAGS,YAApBt6H,KAAKw7D,YAA2B,CAEnC,IAAI0/D,EAAaF,EAAUjpE,YAAc55D,EAEzC4pE,GAAwBm5D,EAExBvyH,EAAMiwH,SAAWvtC,EAAerrF,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAO+gB,EAClE34D,EAAMgwH,aAAettC,GAAgBA,EAAewvC,GAAaN,GAAev6H,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAO+gB,EAElH05D,EAAUpC,SAAWjwH,EAAMgwH,YAC3BqC,EAAUrC,aAAettC,GAAgBA,EAAewvC,IAAc76H,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAO+gB,EAExG34D,EAAMpO,EAAIyF,KAAKs6H,OACf3xH,EAAMpM,OAAShF,KAAKK,IAAI,IAAQ,IAAU,EAAGmqE,EAAY/hE,KAAK26H,OAASxiI,EAAI6H,KAAK06H,OAASQ,IAEzFvyH,EAAMrO,EAAIgnE,EAAW,EAEhBthE,KAAK2iH,YAIT59G,EAAMzK,OAAIoS,EAHV3H,EAAMzK,EAAIqO,EAAMrO,EAKjByK,EAAMxK,EAAIoO,EAAMye,OAASze,EAAMopD,YAAcs8B,EAAK4iB,UAElDjxG,KAAKs6H,QAAU3xH,EAAMopD,YAAcmpE,EACnCF,EAAUzgI,EAAIyF,KAAKs6H,OAASY,EAC5BF,EAAU1gI,EAAIqO,EAAMrO,MAEhB,CACJ,IAAI2uH,EAAY+R,EAAUlpE,WAAa35D,EAEvCmpE,GAAsB2nD,EAEtBtgH,EAAMiwH,SAAWvtC,EAAerrF,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAOwhB,EAClEp5D,EAAMgwH,aAAettC,GAAgBA,EAAewvC,GAAaN,GAAev6H,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAOwhB,EAElHi5D,EAAUpC,SAAWjwH,EAAMgwH,YAC3BqC,EAAUrC,aAAettC,GAAgBA,EAAewvC,IAAc76H,KAAKmvD,SAASp2D,OAAOlD,MAAM0qD,KAAOwhB,EAExGp5D,EAAMrO,EAAI0F,KAAKs6H,OACf3xH,EAAMrM,MAAQ/E,KAAKK,IAAI,IAAQ0pE,EAAWthE,KAAK26H,OAASxiI,EAAI,EAAI6H,KAAK06H,OAASzR,GAC9EtgH,EAAMpO,EAAIwnE,EAAY,EAEjB/hE,KAAK2iH,YAIT59G,EAAMxK,EAAIyF,KAAKsiH,gBAAgBlvD,eAH/BruD,EAAMxK,EAAIoO,EAAMpO,EAKjBwK,EAAMzK,EAAIqO,EAAMse,OAASte,EAAMmpD,WAAau8B,EAAKwiB,UAEjD7wG,KAAKs6H,QAAU3xH,EAAMmpD,WAAam3D,EAClC+R,EAAU1gI,EAAI0F,KAAKs6H,OAASrR,EAE5B+R,EAAUzgI,EAAIoO,EAAMpO,IAIZ,YAAA4gI,aAAV,SAAuBxzH,GACtB,GAAIA,EAAQ,EAAG,CACd,IAAIyzH,EAAYp7H,KAAKsjF,OAAOnjC,SAASx4C,GACrC,OAAIyzH,EAAUhvE,aAAegvE,EAAUvvE,QAC/B7rD,KAAKm7H,aAAaxzH,EAAQ,GAG1ByzH,IAUA,YAAAnY,cAAV,WAEC,GAAIjjH,KAAK2iH,YAAa,CACrB,IAAIxkH,EAAQ6B,KAAKsjF,OAAOnnF,OACxB,GAAIgC,EAAQ,EAAG,CAEd,IAAIi9H,EAAYp7H,KAAKm7H,aAAah9H,EAAQ,GAC1C,GAAIi9H,EAAW,CAEd,IAAIC,EAAQD,EAAUh0G,OAClBk0G,EAAQF,EAAUn0G,OAEtB,GAAI9oB,EAAQ,EAAG,CACd,IAAK,IAAI9B,EAAI8B,EAAQ,EAAG9B,GAAK,EAAGA,IAAK,EAChC0I,EAAQ/E,KAAKsjF,OAAOnjC,SAAS9jD,IAEvBwvD,UAAY9mD,EAAMqnD,aACvBrnD,EAAM8kC,SACT9kC,EAAMslD,WAEiB,YAApBrqD,KAAKw7D,YACJz2D,EAAMqiB,OAASriB,EAAMquD,eAAiBioE,IACzCt2H,EAAMxK,EAAIhD,KAAKK,IAAI,IAASyjI,EAAQt2H,EAAMquD,iBAKvCruD,EAAMkiB,OAASliB,EAAMouD,cAAgBmoE,IACxCv2H,EAAMzK,EAAI/C,KAAKK,IAAI,IAAS0jI,EAAQv2H,EAAMouD,gBAG5CkoE,EAAQt2H,EAAMqiB,OACdk0G,EAAQv2H,EAAMkiB,QAIhBo0G,EAAQ,EACRC,EAAQ,EACR,IAASj/H,EAAI,EAAGA,EAAI8B,EAAO9B,IAAK,CAC/B,IAAI0I,KAAQ/E,KAAKsjF,OAAOnjC,SAAS9jD,IACvBwvD,UAAY9mD,EAAMqnD,aACvBrnD,EAAM8kC,SACT9kC,EAAMslD,WAEiB,YAApBrqD,KAAKw7D,YACJz2D,EAAMqiB,OAASi0G,IAClBt2H,EAAMxK,EAAIhD,KAAKK,IAAI,IAASyjI,IAKzBt2H,EAAMkiB,OAASq0G,IAClBv2H,EAAMzK,EAAI/C,KAAKK,IAAI,IAAS0jI,IAI9BD,GAASt2H,EAAMquD,eACfkoE,GAASv2H,EAAMouD,qBAef,YAAAw0B,eAAP,SAAsBC,GACrB,YAAMD,eAAc,UAACC,GAErB,IACIj/E,EADiDi/E,EAAOz4B,SAC1BxmD,MAE9BkoG,EAAYjpB,EAAOipB,UAClB,IAAeA,KACnBA,EAAY,IAEb,IAAII,EAAYrpB,EAAOqpB,UAClB,IAAeA,KACnBA,EAAY,GAGbrpB,EAAOttF,EAAIqO,EAAMse,OAASte,EAAMwqD,cAAgB09C,EAChDjpB,EAAOrtF,EAAIoO,EAAMye,OAASze,EAAMyqD,eAAiB69C,GASlD,sBAAW,0BAAW,C,IAsBtB,WACC,OAAOjxG,KAAKujD,iBAAiB,gB,IAvB9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,KACxCmK,KAAKm6H,eAAiBn6H,KAAKm6H,eAC3Bn6H,KAAK0pD,aACQ,YAAT7zD,GACHmK,KAAKsuF,MAAMrtC,SAAS4vD,UAAY,EAChC7wG,KAAKsuF,MAAMrtC,SAASgwD,UAAY,GAChCjxG,KAAKsjF,OAAOriC,SAASl6B,SAAW,EAChC/mB,KAAKwhE,OAAS,eAGdxhE,KAAKsuF,MAAMrtC,SAAS4vD,UAAY,GAChC7wG,KAAKsuF,MAAMrtC,SAASgwD,UAAY,EAChCjxG,KAAKsjF,OAAOriC,SAASl6B,UAAY,GACjC/mB,KAAKwhE,OAAS,c,gCAsCjB,sBAAW,0BAAW,C,IAStB,WACC,OAAOxhE,KAAKujD,iBAAiB,gB,IAV9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAK0pD,c,gCAwCP,sBAAW,yBAAU,C,IAArB,WACC,IAAK1pD,KAAKu7H,YAAa,CACtB,IAAIP,EAAY,IAAI,GACpBA,EAAUvzE,eAAgB,EAC1BuzE,EAAUpqE,YAAc,GACxBoqE,EAAUnC,gBAAmB,GAC7BmC,EAAUxlE,YAAYhrB,WAAWmmB,QAAU,EAE3C3wD,KAAKkpD,WAAW1qD,KAAKw8H,GAErBh7H,KAAKu7H,YAAc,IAAIj6E,EAAA,EAAa05E,GACpCh7H,KAAKkpD,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAathD,KAAKu7H,cAE5C,OAAOv7H,KAAKu7H,a,gCASN,YAAA13D,KAAP,SAAY98B,GAAZ,WAEKqhD,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SAExB+oB,EAAwBxxG,KAAK0sD,aAAauJ,mBAE1C,IAAelvB,KAClByqE,EAAwBzqE,GAGrB,IAAQ0qE,oBACXD,EAAwB,GAGzB,IAAIl9B,EAAgB,EAapB,OAZA,IAAW,IAAct0E,KAAKgkF,UAAU3+E,aAAa,SAACtO,GACrD,IAAIsF,EAAItF,EAAE,GACNo4D,EAAWp4D,EAAE,GAEb,EAAK46G,yBACRr9B,EAAQ,EAAKs9B,4BAA8Bv1G,EAAIm1G,GAAyBn1G,EAAI+rF,IAAeK,EAAWL,IAEvGj5B,EAAS0U,KAAK2tC,EAAuBl9B,EAAO,CAAC,aAG9B,YAAMzQ,KAAI,UAAC98B,IAWrB,YAAAklB,KAAP,SAAYllB,GAAZ,WACKqkE,EAAmB,CAAC,SAGpBhjB,EAAqBpoF,KAAKooF,WAC1BK,EAAmBzoF,KAAKyoF,SAExBnU,EAAgB,EAChBk9B,EAAwBxxG,KAAKw1D,YAAYS,mBACzC,IAAelvB,KAClByqE,EAAwBzqE,GAGrB,IAAQ0qE,oBACXD,EAAwB,GAGzB,IAAW,IAAcxxG,KAAKgkF,UAAU3+E,aAAa,SAACtO,GACrD,IAAIsF,EAAItF,EAAE,GACNo4D,EAAWp4D,EAAE,GAEb,EAAK46G,yBACRr9B,EAAQ,EAAKs9B,4BAA8Bv1G,EAAIm1G,GAAyBn1G,EAAI+rF,IAAeK,EAAWL,IAEvGj5B,EAASlD,KAAKulD,EAAuBl9B,EAtBlB,EAsBgC82B,MAGpD,IAAI50C,EAAuB,YAAMvK,KAAI,UAACllB,GAKtC,OAJIyvB,IAAcA,EAAUW,cAC3BX,EAAU8d,MAAMA,GAGV9d,GAME,YAAAktD,eAAV,SAAyB7tH,GACxB,YAAM6tH,eAAc,UAAC7tH,GACrBmK,KAAKsuF,MAAMrtC,SAASkJ,UAAYt0D,EAChC,IAAIysH,EAAkBtiH,KAAKsiH,gBACvBA,IAEEzsH,GAMJysH,EAAgB/lH,YAASmQ,EACzB41G,EAAgBhmH,WAAQoQ,EACxB41G,EAAgBr/C,OAAO,GAAI,GAAI,GAAI,MAPnCq/C,EAAgBhmH,MAAQ,YAAQ,KAChCgmH,EAAgB/lH,OAAS,YAAQ,OASnCyD,KAAKm6H,eAAiBn6H,KAAKm6H,gBAkB5B,sBAAW,6BAAc,C,IA6DzB,WACC,OAAOn6H,KAAKujD,iBAAiB,mB,IA9D9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GACxC,IAAI2kI,EAAgBx6H,KAAKsjF,OAAOriC,SAE5Bu6E,EAAoB,OACpBC,EAA6B,OAE5Bz7H,KAAK2iH,YAUL9sH,GACHmK,KAAKsiH,gBAAgBj+C,UAEG,YAApBrkE,KAAKw7D,aACRx7D,KAAKsuF,MAAMrtC,SAAS4vD,UAAY,EAChC2pB,EAAc/uE,iBAAmB,OACjC+vE,EAAa,UAIbx7H,KAAKsuF,MAAMrtC,SAASgwD,UAAY,EAChCupB,EAAc/uE,iBAAmB,QACjCgwE,EAAc,YAKfz7H,KAAKsiH,gBAAgBh+C,SAEG,YAApBtkE,KAAKw7D,aACRx7D,KAAKsuF,MAAMrtC,SAAS4vD,UAAY,EAChC2qB,EAAa,SAIbC,EAAc,MACdz7H,KAAKsuF,MAAMrtC,SAASgwD,UAAY,IAnCV,YAApBjxG,KAAKw7D,YACRggE,EAAa,SAGbC,EAAc,SAoChBjB,EAAc/4D,MAAQ+5D,EACtBhB,EAAcp4D,OAASq5D,EAEvBz7H,KAAK6pE,iBACL7pE,KAAKsuF,MAAMpnF,MAAK,SAACmnF,GAChBA,EAAK3kC,gBAEN1pD,KAAK4pF,uB,gCASP,EA1yBA,CAAkC,IAkzBlC,IAASxqF,kBAAT,aAA6C,GAC7C,IAASA,kBAAT,qBAAqD,GC38BrD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,wBAEjB,EAAK4O,a,EAEP,OAhB2C,iBAgB3C,EAhBA,CAA2C,IAwF3C,eAyCC,mBACC,cAAO,K,OAEP,EAAK5O,UAAY,gBACjB,EAAK69E,SAAW,YAAQ,GACxB,EAAKD,YAAc,YAAQ,KAC3B,EAAK+C,cAAgB,YAAQ,KAC7B,EAAKC,QAAU,OAEf,EAAKtB,WAAWp5E,SAAS3kD,MAAQ,EACjC,EAAK+9H,WAAWp5E,SAAS1kD,OAAS,EAElC,EAAKotD,a,EA2WP,OAhamC,iBA6DxB,YAAAO,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,oBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAQL,YAAAr6B,SAAP,WACC,YAAMA,SAAQ,WACdrqD,KAAK47H,gBAAalvH,GAUT,YAAAkuH,aAAV,SAAuBzrE,GACtB,IAAIxnD,EAAQwnD,EAASxnD,MACjBkzH,EAAoB1rE,EAAS0uC,gBAAgB,SAC7Cl2F,EAAQ3H,KAAKgkF,UAAU7nF,OAAS,IAEnC0+H,EADe76H,KAAKgkF,UAAU7jC,SAASx4C,EAAQ,GAC1Bk2F,gBAAgB,UAKtC,OAHiB,GAAbg9B,IACHA,EAAY,MAENA,GASD,YAAA9qC,qBAAP,sBACKzuB,EAAWthE,KAAKyiH,gBAAgBr8D,WAChC2b,EAAY/hE,KAAKyiH,gBAAgBv8D,YAkBrC,GAhBAlmD,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpB,GAAIA,EAASt5D,MAAQ,EAAG,CACvB,IAAIgmI,EAAW1sE,EAAS0uC,gBAAgB,SAAW1uC,EAASt5D,MACxDmlI,EAAY7rE,EAAS6rE,UACD,YAApB,EAAKx/D,YACRuG,GAAci5D,EAAUjpE,YAAc8pE,EAGtCv6D,GAAa05D,EAAUlpE,WAAa+pE,MAKvC77H,KAAK87H,eAAiB,IAAuB97H,KAAK07H,cAAe35D,GACjE/hE,KAAK+7H,cAAgB,IAAuB/7H,KAAK07H,cAAep6D,GAExC,YAApBthE,KAAKw7D,YAA2B,CACnC,IAAIjhE,GAAKwnE,EAAY/hE,KAAK87H,gBAAkB,EAC5C97H,KAAKyiH,gBAAgBloH,EAAIA,EACzByF,KAAKsiH,gBAAgB/nH,EAAIA,EACzByF,KAAKqiH,eAAe9nH,EAAIA,MAEpB,CACJ,IAAID,GAAKgnE,EAAWthE,KAAK+7H,eAAiB,EAC1C/7H,KAAKyiH,gBAAgBnoH,EAAIA,EACzB0F,KAAKsiH,gBAAgBhoH,EAAIA,EACzB0F,KAAKqiH,eAAe/nH,EAAIA,EAGzB,YAAMy1F,qBAAoB,YASjB,YAAAkrC,cAAV,SAAwB9rE,GAEvB,IAAIlX,EAAMj4C,KAAKmvD,SAASp2D,OAAOlD,MAAMmmI,YAErC,GAAW,GAAP/jF,EAAJ,CAIA,IAAItvC,EAAQwmD,EAASxmD,MACjBqyH,EAAY7rE,EAAS6rE,UACrBj2H,EAAQoqD,EAASpqD,MACjBspF,EAAOl/B,EAASk/B,KAGpBruF,KAAK46H,aAAazrE,GAElB,IAAIk8B,EAAe9zF,KAAK6B,IAAI+1D,EAAS0uC,gBAAgB,UAEjDo+B,EAAej8H,KAAK+7H,cACpBL,EAAgB17H,KAAK87H,eAErBx6D,EAAWthE,KAAKyiH,gBAAgBr8D,WAChC2b,EAAY/hE,KAAKyiH,gBAAgBv8D,YAEjC+iE,EAAY+R,EAAUlpE,WACtBopE,EAAaF,EAAUjpE,YAS3B,GAPsB,GAAlB5C,EAASt5D,OAAcmK,KAAKykH,iBAC/Bt1D,EAAS/C,YAAa,EAGtB+C,EAAS/C,YAAa,EAGC,YAApBpsD,KAAKw7D,YAA2B,CACnC,IAAIo9D,EAAW,IAAuB54H,KAAK44H,SAAUt3D,GAEhD,IAAethE,KAAK47H,cACxB57H,KAAK47H,WAAahD,GAGnB,IAAID,EAAc,IAAuB34H,KAAK24H,YAAar3D,GACvD46D,EAAgBl8H,KAAK47H,WAErB9/H,EAAQvE,KAAKwE,MAAM2/H,EAAe9C,EAAWD,GAExC,IADL/mH,EAAIra,KAAKmB,IAAInB,KAAKD,GAAK,EAAIwE,MAE9B8V,EAAI,MAGL,IAAIuqH,OAAW,EACXC,OAAgB,EAEpB,GAAoB,QAAhBp8H,KAAK27H,QAAmB,CAC3B,IACIU,GADezD,EAAWD,GAAe,EAAI+C,EACtBrwC,EAAepzC,EAEtCh9C,EAAI1D,KAAK6B,IAAI8iI,EAAgBA,EAAgB,EAAIG,EAASzqH,GAI7DwqH,GAFDD,GAAeD,EAAgB3kI,KAAKiD,KAAKS,IAAM2W,GAC7B,GACG,EAAIyqH,EAASF,EAAcD,GAAiBC,EAG7CD,OAKpBE,EAAmBF,GADnBC,EAAcT,EAAgBrwC,EAAepzC,GACIrmC,EAGlDjJ,EAAMpM,OAAS4/H,EACfxzH,EAAMrM,MAAQglE,EACd34D,EAAMgwH,YAAcyD,EACpBzzH,EAAMiwH,SAAWsD,EAEjBlB,EAAUpC,SAAWjwH,EAAMgwH,YAC3BqC,EAAUrC,YAAchwH,EAAMgwH,YAE9BhwH,EAAMpO,EAAIyF,KAAKs6H,OAGVt6H,KAAK2iH,YAIT59G,EAAMzK,EAAI,EAHVyK,EAAMzK,EAAIgnE,EAAW,EAMtBv8D,EAAMxK,EAAIoO,EAAMye,OAASze,EAAMopD,YAAcs8B,EAAK4iB,UAAYtoG,EAAM4e,GAEpEvnB,KAAKs6H,QAAU3xH,EAAMopD,YAAcmpE,EAAa7vC,EAAe9zF,KAAKM,IAAIN,KAAK6B,IAAI+1D,EAASt5D,OAAQ,MAClGmlI,EAAUzgI,EAAIyF,KAAKs6H,OAASY,EAC5BF,EAAU1gI,EAAIgnE,EAAW,MAErB,CACAs3D,EAAW,IAAuB54H,KAAK44H,SAAU72D,GAEhD,IAAe/hE,KAAK47H,cACxB57H,KAAK47H,WAAahD,GAGnB,IAIIhnH,EAJA+mH,EAAc,IAAuB34H,KAAK24H,YAAa52D,GACvDm6D,EAAgBl8H,KAAK47H,WAErB9/H,EAAQvE,KAAKwE,MAAMkgI,EAAcrD,EAAWD,GAEvC,IADL/mH,EAAIra,KAAKmB,IAAInB,KAAKD,GAAK,EAAIwE,MAE9B8V,EAAI,MAGL,IAAI0qH,OAAU,EACVF,OAAgB,EAEpB,GAAoB,QAAhBp8H,KAAK27H,QAIRS,GAAoB,GAFhBC,GADezD,EAAWD,GAAe,EAAIsD,EACtB5wC,EAAepzC,IAC1CqkF,GAAcJ,EAAgB3kI,KAAKiD,KAAK0hI,EAAgBA,EAAgB,EAAIG,EAASzqH,IAAMA,GAC7CsqH,GAAiBI,OAI/DF,EAAmBF,GADnBI,EAAaL,EAAe5wC,EAAepzC,GACKrmC,EAGjDjJ,EAAMrM,MAAQggI,EACd3zH,EAAMpM,OAASwlE,EACfp5D,EAAMgwH,YAAcyD,EACpBzzH,EAAMiwH,SAAWsD,EAEjBlB,EAAUpC,SAAWjwH,EAAMgwH,YAC3BqC,EAAUrC,YAAchwH,EAAMgwH,YAE9BhwH,EAAMrO,EAAI0F,KAAKs6H,OAEVt6H,KAAK2iH,YAIT59G,EAAMxK,EAAIyF,KAAKsiH,gBAAgBlvD,eAH/BruD,EAAMxK,EAAIwnE,EAAY,EAMvBh9D,EAAMzK,EAAIqO,EAAMse,OAASte,EAAMmpD,WAAau8B,EAAKwiB,UAAYloG,EAAM2e,GAEnEtnB,KAAKs6H,QAAU3xH,EAAMmpD,WAAam3D,EAAY59B,EAAe9zF,KAAKM,IAAIN,KAAK6B,IAAI+1D,EAASt5D,OAAQ,MAChGmlI,EAAU1gI,EAAI0F,KAAKs6H,OAASrR,EAC5B+R,EAAUzgI,EAAIwnE,EAAY,EAG3B/hE,KAAK47H,WAAajzH,EAAMgwH,cAgBzB,sBAAW,uBAAQ,C,IASnB,WACC,OAAO34H,KAAKujD,iBAAiB,a,IAV9B,SAAoB1tD,GACfmK,KAAKy6D,mBAAmB,WAAY5kE,GAAO,GAAO,EAAO,IAAI,IAChEmK,KAAK0pD,c,gCAmBP,sBAAW,4BAAa,C,IASxB,WACC,OAAO1pD,KAAKujD,iBAAiB,kB,IAV9B,SAAyB1tD,GACpBmK,KAAKy6D,mBAAmB,gBAAiB5kE,GAAO,GAAO,EAAO,IAAI,IACrEmK,KAAK0pD,c,gCAuBP,sBAAW,0BAAW,C,IAStB,WACC,OAAO1pD,KAAKujD,iBAAiB,gB,IAV9B,SAAuB1tD,GAClBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAO,EAAO,IAAI,IACnEmK,KAAK0pD,c,gCAkCP,sBAAW,sBAAO,C,IASlB,WACC,OAAO1pD,KAAKujD,iBAAiB,Y,IAV9B,SAAmB1tD,GACdmK,KAAKopD,iBAAiB,UAAWvzD,IACpCmK,KAAK0pD,c,gCAUR,EAhaA,CAAmC,IAwanC,IAAStqD,kBAAT,cAA8C,GAC9C,IAASA,kBAAT,sBAAsD,GChgBtD,mBAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,iCAEjB,EAAK4O,a,EAEP,OAhBoD,iBAgBpD,EAhBA,CAAoD,IAgFpD,eAmCC,mBACC,cAAO,K,OAEP,EAAK5O,UAAY,yBACjB,EAAK69E,SAAW,YAAQ,KACxB,EAAKD,YAAc,YAAQ,KAC3B,EAAKgD,QAAU,SAEf,EAAKhyE,aAEL,EAAKg3C,cAAgB,EACrB,EAAKC,YAAc,EACnB,EAAKn/B,MAAQ,SACb,EAAKW,OAAS,SAEd,EAAKm6D,YAAc,EAAK9Z,gBAAgBn5C,YAAY/B,EAAA,GACpD,EAAKg1D,YAAY1wE,SAAU,EAC3B,EAAK0wE,YAAYrzD,OAAS,IAC1B,EAAKqzD,YAAY3zE,aAAc,E,EAyTjC,OA9W4C,iBA6DpC,YAAAmnC,qBAAP,WAEC,IAAIzuB,EAAWthE,KAAKyiH,gBAAgBnhD,SAChCS,EAAY/hE,KAAKyiH,gBAAgB1gD,UAEjCy6D,EAAax8H,KAAKu8H,YAGlBE,EAAeD,EAAWrpE,cAAgBqpE,EAAWh1G,MACrDk1G,EAAgBF,EAAWppE,eAAiBopE,EAAWh1G,MAEvDA,EAAQ,IAAUu6C,EAAY26D,EAAep7D,EAAWm7D,GAExDj1G,GAAStD,MACZsD,EAAQ,GAGTA,EAAQ,IAAU,KAAOA,GAEzB,IA6BIjtB,EACAD,EA9BAqmG,EAAgB3gG,KAAK2gG,cACrBC,EAAc5gG,KAAK4gG,YAEnB+7B,EAAW,IAAUr7D,EAAUm7D,EAAej1G,GAC9Co1G,EAAY,IAAU76D,EAAW26D,EAAgBl1G,GAErDg1G,EAAWh1G,MAAQA,EAEK,YAApBxnB,KAAKw7D,aACRx7D,KAAK44H,SAAW+D,EAAW,EAC3B38H,KAAK24H,YAAcgE,EAAW,EAC9B38H,KAAK07H,cAAgBkB,GAAah8B,EAAcD,GAChD67B,EAAWliI,EAAIgnE,EAAW,EAC1Bk7D,EAAWjiI,EAAIqiI,EAAY,IAG3B58H,KAAK44H,SAAWgE,EAAY,EAC5B58H,KAAK24H,YAAciE,EAAY,EAC/B58H,KAAK07H,cAAgBiB,GAAY/7B,EAAcD,GAC/C67B,EAAWp6D,OAAS,SACpBo6D,EAAWliI,EAAIqiI,EAAW,EAC1BH,EAAWjiI,EAAIwnE,EAAY,GAG5By6D,EAAW9wE,eAAiB,SAC5B8wE,EAAW/wE,iBAAmB,SAE9B,YAAMskC,qBAAoB,WAKF,YAApB/vF,KAAKw7D,aACW,UAAfx7D,KAAKoiE,SACR7nE,EAAKwnE,EAAY66D,GAEC,UAAf58H,KAAKoiE,SACR7nE,GAAKwnE,EAAY66D,GAAa,GAEZ,OAAf58H,KAAKoiE,SACR7nE,EAAI,GAGa,QAAdyF,KAAKyhE,QACRnnE,IAAMgnE,EAAWq7D,GAAY,GAEZ,UAAd38H,KAAKyhE,QACRnnE,EAAI,GAEa,SAAd0F,KAAKyhE,QACRnnE,GAAKgnE,EAAWq7D,GAAY,GAG7B38H,KAAKwiH,OAAOvhE,SAAS15B,GAAKo5E,EAAgBi8B,EACtC58H,KAAK2iH,cACR3iH,KAAKyiH,gBAAgBn7F,GAAKhtB,KAIR,UAAf0F,KAAKoiE,SACR7nE,GAAKwnE,EAAY66D,GAAa,GAEZ,UAAf58H,KAAKoiE,SACR7nE,EAAI,GAEc,OAAfyF,KAAKoiE,SACR7nE,IAAMwnE,EAAY66D,GAAa,GAGd,QAAd58H,KAAKyhE,QACRnnE,EAAI,GAEa,UAAd0F,KAAKyhE,QACRnnE,GAAKgnE,EAAWq7D,GAAY,GAEX,SAAd38H,KAAKyhE,QACRnnE,EAAKgnE,EAAWq7D,GAGjB38H,KAAKwiH,OAAOvhE,SAAS35B,GAAKq5E,EAAgBg8B,EACtC38H,KAAK2iH,cACR3iH,KAAKyiH,gBAAgBl7F,GAAKhtB,IAI5ByF,KAAKyiH,gBAAgBnoH,EAAIA,EACzB0F,KAAKsiH,gBAAgBhoH,EAAIA,EACzB0F,KAAKqiH,eAAe/nH,EAAIA,EAExB0F,KAAKyiH,gBAAgBloH,EAAIA,EACzByF,KAAKsiH,gBAAgB/nH,EAAIA,EACzByF,KAAKqiH,eAAe9nH,EAAIA,EAEpBoiI,EAAW,GAAKC,EAAY,IAC/B58H,KAAKyiH,gBAAgB7wD,KAAO4qE,IAQpB,YAAAtyE,sBAAV,WACC,YAAMA,sBAAqB,WACtB,IAAelqD,KAAK86D,eACxB96D,KAAK86D,YAAc96D,KAAKu4D,SAASsc,UAAU,oBAUnC,YAAA6P,eAAV,WACC,OAAO,IAAI,IAuCZ,sBAAW,yBAAU,C,IAArB,WACC,OAAO1kF,KAAKu8H,a,gCAQH,YAAAzZ,UAAV,SAAoBn6G,GACnB,YAAMm6G,UAAS,UAACn6G,GAEhB,IAAIk0H,EAAKl0H,EAAMskD,OAAO/N,OAAO,SACzB29E,IACHA,EAAGryF,WAAWquF,eAAiB,IAgDjC,sBAAW,4BAAa,C,IASxB,WACC,OAAO74H,KAAKujD,iBAAiB,kB,IAV9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,IAC1CmK,KAAK4pF,uB,gCAuDP,sBAAW,0BAAW,C,IAStB,WACC,OAAO5pF,KAAKujD,iBAAiB,gB,IAV9B,SAAuB1tD,GAClBmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAK4pF,uB,gCAUR,EA9WA,CAA4C,IAsX5C,IAASxqF,kBAAT,uBAAuD,GACvD,IAASA,kBAAT,+BAA+D,G,cC/a/D,eA0BC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,a,EAyBnB,OArDgC,iBAkC/B,YAAA6yE,aAAA,WACC5tH,KAAK88H,WAAa98H,KAAKspE,YAAYyzD,GAAA,GACnC/8H,KAAK88H,WAAWl0E,aAAc,EAG9B5oD,KAAK8qE,OAAc9qE,KAAK88H,YAQzB,YAAAj8E,SAAA,SAAS//B,GACR,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAK88H,YACR98H,KAAK88H,WAAWj8E,SAAS//B,EAAOg8G,aAGnC,EArDA,CAAgC,IA6DhC,IAAS19H,kBAAT,WAA2C,GCxF3C,mBAgBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,qBACjB,EAAK4O,a,EAGP,OAtBwC,iBAsBxC,EAtBA,CAAwC,IAsExC,eAkCC,mBACC,cAAO,K,OAEP,EAAK5O,UAAY,aACjB,EAAK4O,a,EA8DP,OApGgC,iBA8CrB,YAAAymE,qBAAV,WACC,OAAO,IAAI,IAQF,YAAA3iB,YAAV,WACC,IAAInmF,EAAK,EACLC,EAAK,EACLujD,EAAS9qE,KAAKguH,QAAQ7tE,SAAS,GAEnC,GAAG2qB,EAQF,OAPI9qE,KAAKkhG,UAAYlhG,KAAK6+F,MACzBt3E,EAAKujD,EAAOgyD,WAAW12E,WAAa,EAAI,EAGxC9+B,EAAKwjD,EAAOgyD,WAAW52E,YAAc,EAAI,EAGnC,IAAiB,CACvB5rD,GAAIgtB,EACJ/sB,EAAG,EACH+B,MAAO0D,KAAK6+F,MAAMzO,WAAa9oE,EAC/B/qB,OAAQyD,KAAK+mG,MAAM3W,WAAa7oE,KAY5B,YAAAwnG,wBAAP,SAA+B5/D,GAG9B,GAFA,YAAM4/D,wBAAuB,UAAC5/D,GACjBA,EAAS2b,OACZ,CACT,IAAIgyD,EAAa3tE,EAAS2b,OAAOgyD,WAEjCA,EAAWphF,KAAOyT,EAAS2b,OAAOpvB,KAE9B17C,KAAKkhG,UAAYlhG,KAAK+mG,MACzB+1B,EAAWthE,YAAc,aAGzBshE,EAAWthE,YAAc,aAI7B,EApGA,CAAgC,IA4GhC,IAASp8D,kBAAT,WAA2C,GAC3C,IAASA,kBAAT,mBAAmD,GC5HnD,mBAyBC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,e,EA8GnB,OAzIkC,iBAoCvB,YAAA6yE,aAAV,WACC5tH,KAAKg9H,aAAeh9H,KAAKspE,YAAY/B,EAAA,GACrCvnE,KAAKg9H,aAAap0E,aAAc,EAEhC5oD,KAAKopD,iBAAiB,UAAW,IAEjCppD,KAAK1D,MAAQ,YAAQ,KACrB0D,KAAKzD,OAAS,YAAQ,KAGtByD,KAAK8qE,OAAc9qE,KAAKg9H,cAQlB,YAAAzyE,KAAP,WACC,YAAMA,KAAI,WACV,IAKIruD,EALAwiC,EAAI1+B,KAAKsyE,UACTp5C,EAAIl5B,KAAKuyE,WACTj4E,EAAI0F,KAAKuvH,MAAQvvH,KAAKinB,OACtB1sB,EAAIyF,KAAKwvH,MAAQxvH,KAAKonB,OAK1B,IAAYpnB,KAAK1D,OAEjB,IAAIqB,EAAW,EACXC,EAAW,EAES,YAApBoC,KAAKw7D,aACR79D,EAAWqC,KAAKjC,QAChB7B,EAAS,CAAC,CAAE5B,EAAG,EAAGC,EAAG2+B,EAAI3+B,GAAK,CAAED,EAAGokC,EAAI,EAAGnkC,EAAGA,GAAK,CAAED,EAAGokC,EAAGnkC,EAAG2+B,EAAI3+B,MAGjEqD,EAAWoC,KAAKjC,QAChB7B,EAAS,CAAC,CAAE5B,EAAGA,EAAGC,EAAG,GAAK,CAAED,EAAGA,EAAIokC,EAAGnkC,EAAG2+B,EAAI,GAAK,CAAE5+B,EAAGA,EAAGC,EAAG2+B,KAG9D,IAAIptB,EAAO,IAAa5P,EAAO,IAAM,IAAI,KAAmByB,EAAUC,GAAUu+G,OAAOjgH,GACvF8D,KAAK8qE,OAAOh/D,KAAOA,GAQb,YAAA+0C,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACX9gB,KAAKg9H,cACRh9H,KAAKg9H,aAAan8E,SAAS//B,EAAOk8G,eAiBpC,sBAAW,sBAAO,C,IAOlB,WACC,OAAOh9H,KAAKujD,iBAAiB,Y,IAR9B,SAAmB1tD,GAClBmK,KAAKopD,iBAAiB,UAAWvzD,GAAO,I,gCAkBzC,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GAAO,I,gCAU9C,EAzIA,CAAkC,IAiJlC,IAASuJ,kBAAT,aAA6C,GCxM7C,mBAeC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,6BACjB,EAAK4O,a,EAGP,OArBgD,iBAqBhD,EArBA,CAAgD,IAoEhD,eAmCC,mBACC,cAAO,K,OAEP,EAAK5O,UAAY,qBACjB,EAAK4O,a,EAuCP,OA9EwC,iBAgD7B,YAAAymE,qBAAV,WACC,OAAO,IAAI,IAUL,YAAArB,wBAAP,SAA+B5/D,GAC9B,YAAM4/D,wBAAuB,UAAC5/D,GAE9B,IAAI2b,EAAS3b,EAAS2b,QACtBA,EAAS3b,EAAS2b,UAGE3b,EAAS2b,OAAOkyD,aAEtBthF,KAAOyT,EAAS2b,OAAOpvB,KAEhC17C,KAAKkhG,UAAYlhG,KAAK+mG,MACzBj8B,EAAOtP,YAAc,aAGrBsP,EAAOtP,YAAc,aAIzB,EA9EA,CAAwC,IAsFxC,IAASp8D,kBAAT,mBAAmD,GACnD,IAASA,kBAAT,2BAA2D,GC9H3D,mBAyBC,mBACC,cAAO,KAEP,EAAK27C,UAAY,eAEjB,IAAIm6B,EAAS,EAAK5L,YAAY6L,GAAA,G,OAC9BD,EAAOtsB,aAAc,EACrBssB,EAAO72E,OAAS,EAChB62E,EAAO1pB,YAAa,EACpB,EAAK0pB,OAASA,EAEd,EAAKvrB,a,EAaP,OAjDkC,iBA6C1B,YAAA9I,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKk1E,OAAOr0B,SAAS//B,EAAOo0D,SAE9B,EAjDA,CAAkC,GAyDlC,IAAS91E,kBAAT,aAA6C,GCxD7C,mBAsBC,mBACC,cAAO,K,OAEP,EAAK27C,UAAY,cACjB,EAAKkiF,UAAY,EAAK3zD,YAAY/B,EAAA,GAClC,EAAK01D,UAAUr0E,aAAc,EAC7B,EAAKtsD,MAAQ,GACb,EAAKC,OAAS,GACd,EAAKs0D,cAAgB,EACrB,EAAKy4B,WAAY,E,EAsBnB,OArDiC,iBAmChC,YAAA5+B,iBAAA,WACC,YAAMA,iBAAgB,WACtB,IAAIhsB,EAAI1+B,KAAK8xD,WAAa,EACtB54B,EAAIl5B,KAAK+xD,YAAc,EAE3B/xD,KAAKi9H,UAAUnxH,KAAO,IAAa,CAACxR,GAAGokC,EAAGnkC,GAAG2+B,IAAM,IAAa,CAAC5+B,EAAEokC,EAAGnkC,GAAG2+B,IAAM,IAAa,CAAC5+B,EAAE,EAAGC,GAAG2+B,IAAM,IAAa,CAAC5+B,EAAE,EAAGC,EAAE2+B,IAAM,IAAa,CAAC5+B,GAAGokC,EAAGnkC,EAAE2+B,IAAM,IAAa,CAAC5+B,EAAEokC,EAAGnkC,EAAE2+B,KASjL,YAAA2nB,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKi9H,UAAUp8E,SAAS//B,EAAOm8G,YAEjC,EArDA,CAAiC,GA6DjC,IAAS79H,kBAAT,YAA4C,G,wBCtF5C,eAUC,mBACC,cAAO,K,OACP,EAAK27C,UAAY,wBACjB,EAAK4O,a,EAmBP,OAhC2C,iBAqB1C,sBAAW,mBAAI,C,IAOf,WACC,OAAO3pD,KAAKwqC,WAAL,M,IARR,SAAgB30C,GACfmK,KAAKolD,YAAY,OAAQvvD,I,gCAU3B,EAhCA,CAA2CgsF,EAAA,GA0F3C,eA2DC,mBAGC,cAAO,KACP,EAAK9mC,UAAY,gBAEjB,IAAI+4B,EAAkB,IAAIC,EAAA,EAEtBmpD,EAAW,IAAIC,GAAA,EACnBD,EAAS96D,OAAS,SAClB86D,EAAS7zG,WAAa,EACtB6zG,EAAS5zG,cAAgB,EAEzB,EAAKA,cAAgB,EAErB,EAAK89F,MAAQ,IAAI9lE,EAAA,EAAuB47E,GACxC,EAAKh0E,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAK8lE,QAC3C,EAAKl+D,WAAW1qD,KAAK0+H,GAErB,EAAKE,eAAiB,IAAI,IAA6B,EAAKhW,OAAO,WAAM,SAAKA,MAAL,YACzE,EAAKgW,eAAe3kF,gBAAiB,EAErC,IAAI4kF,EAAW,IAAIpnD,GAAA,EACnBonD,EAAS7zF,UAAY,QACrB6zF,EAAS/gI,MAAQ,EACjB+gI,EAAS9gI,OAAS,GAClB8gI,EAAS3hF,KAAOo4B,EAAgBlK,OAAO,yBACvCyzD,EAASzsE,YAAc,GACvBysE,EAASj7D,OAAS,SAClBi7D,EAASh6D,WAAa,GACtBg6D,EAASl6D,YAAc,GAEvB,EAAKm6D,WAAa,IAAIh8E,EAAA,EAAuB+7E,GAC7C,EAAKn0E,WAAW1qD,KAAK,IAAI8iD,EAAA,EAAa,EAAKg8E,aAC3C,EAAKp0E,WAAW1qD,KAAK6+H,GAErB,IAAIE,EAAa,IAAIJ,GAAA,E,OACrB,EAAKI,WAAaA,EAClBA,EAAW18E,SAASq8E,GACpBK,EAAWn7D,OAAS,SACpBm7D,EAAWC,WAAa,OAExB,EAAKlhI,MAAQ,YAAQ,KACrB,EAAKklE,OAAS,OACd,EAAKorB,WAAWrqF,KAAO,OAGvB,EAAKonD,a,EA2CP,OArJmC,iBAkH3B,YAAAomC,qBAAP,WACC/vF,KAAKwpE,iBACLxpE,KAAKo9H,eAAezkF,QACpB,YAAMo3C,qBAAoB,YAUpB,YAAApL,oBAAP,SAA2Bx1B,GAG1B,IAAI+tE,EACJ,GAHA,YAAMv4C,oBAAmB,UAACx1B,GAGtBA,EAASxnD,MAAQ3H,KAAKgkF,UAAU7nF,OAAS,EAAG,EAC/C+gI,EAAWl9H,KAAKo9H,eAAerkF,WACtB5rC,OAASnN,KAClB,IAAI+pB,EAAY/pB,KAAKs9H,WAAWn6H,SAChC4mB,EAAU5c,OAASnN,KACnB+pB,EAAUq4C,OAAS,cAGnB86D,EAAWl9H,KAAKu9H,YACPv+H,OAAO6hD,SAAS7gD,KAAKonH,MAAMnmE,SAASjiD,QAC7Ck+H,EAASjxE,KAAK,GACdixE,EAASr5D,OACTq5D,EAAS/vH,OAASnN,KAEnBk9H,EAAS/tE,SAAWA,EACpB+tE,EAAS36G,KAAO4sC,EAAS5sD,KACzB26H,EAAS7yE,YAEX,EArJA,CAAmCowB,EAAA,GA6JnC,IAASr7E,kBAAT,cAA8C,GAC9C,IAASA,kBAAT,sBAAsD,G,aCvKtD,eA0FC,mBAGC,cAAO,KA7DD,EAAAlE,MAAgB,CAAEZ,EAAG,EAAGC,EAAG,GAoCxB,EAAAkjI,OAAmC,OA0B5C,EAAK1iF,UAAY,SAGjB,EAAKz+C,MAAQ,YAAQ,KACrB,EAAKC,OAAS,YAAQ,KACtB,EAAKqsD,aAAc,EAEnB,EAAKqD,KAAK,GAEV,EAAK6Q,WAAY,EACjB,EAAKpH,WAAY,EAEjB,EAAKlK,YAAa,EAIlB,IAAMoR,EAAc,c,OACpB,EAAK1T,WAAW1qD,KAAKo+D,EAAYj4D,KAAK3F,OAAOmgD,GAAG,OAAQ,EAAKu+E,iBAAkB,IAC/E,EAAKx0E,WAAW1qD,KAAKo+D,EAAYj4D,KAAK3F,OAAOmgD,GAAG,KAAM,EAAKw+E,eAAgB,IAC3E,EAAKz0E,WAAW1qD,KAAKo+D,EAAYj4D,KAAK3F,OAAOmgD,GAAG,QAAS,EAAKy+E,iBAAkB,IAGhF,EAAKj0E,a,EAsTP,OA1a4B,iBA8HpB,YAAAi0E,iBAAP,SAAwBz5E,GAGvB,MAAKnkD,KAAK8rD,qBAAwB9rD,KAAKmtD,aAAa4Q,kBAAoB5Z,EAAM6Z,OAA9E,CAIA,IAA+B,QAAzBh+D,KAAK69H,kBAAuD,OAAzB79H,KAAK69H,mBAA+B79H,KAAK+vG,WAAe,cAAiBhiC,eAAe5pB,EAAMga,QAASn+D,KAAKO,MAAMD,IAAKN,KAAKC,KAArK,CAQA,IAAIwoC,EAAgB,IAA6B0b,EAAMga,QAAQjjE,MAAO8E,MAatE,MAXmB,QAAfA,KAAKy9H,QAAoBz9H,KAAK89H,cACjCr1F,EAAQzoC,KAAK89H,aAGK,QAAf99H,KAAKy9H,QAAoBz9H,KAAK89H,cAC5B99H,KAAKmtE,aAAa1kC,KACtBA,EAAQzoC,KAAK89H,cAIf99H,KAAK+9H,YAAYt1F,GACVA,EAnBDzoC,KAAKk2D,UAAal2D,KAAK4mD,UAC3B5mD,KAAKisD,SA4BE,YAAAiY,SAAV,SAAmBn9B,GAClB,GAAoB,QAAf/mC,KAAKy9H,QAAmC,QAAfz9H,KAAKy9H,SAAqBz9H,KAAK89H,YAG7D,OAAO,YAAM55D,SAAQ,UAACn9B,IA4BhB,YAAAg3F,YAAP,SAAmB7iI,EAAe8iI,EAAkCC,GAEnE/iI,EAAMZ,EAAI,IAAYY,EAAMZ,EAAG,GAC/BY,EAAMX,EAAI,IAAYW,EAAMX,EAAG,GAE3ByjI,IACHh+H,KAAKy9H,OAASO,GAGF,QAATA,GAA4B,QAATA,IACtBh+H,KAAK89H,YAAc5iI,GAGpB8E,KAAKk+H,gBAAgBhjI,EAAO+iI,IAQnB,YAAAC,gBAAV,SAA0BhjI,EAAe+iI,IACpCj+H,KAAK9E,MAAMZ,GAAKY,EAAMZ,GAAK0F,KAAK9E,MAAMX,GAAKW,EAAMX,GAAK0jI,KACzDj+H,KAAK9E,MAAQA,EACb8E,KAAKyqD,qBAEDzqD,KAAKmtE,aAAajyE,GACrB8E,KAAK6jE,KAAK,GAIL7jE,KAAK+vG,WACT/vG,KAAKisD,KAAK,GAIRjsD,KAAK6rD,UACR7rD,KAAKm+H,eACLn+H,KAAKmB,SAAS,4BAUV,YAAAi9H,YAAP,SAAmBljI,GAClB8E,KAAKq+H,gBAAgBnjI,IAQZ,YAAAmjI,gBAAV,SAA0BnjI,GACzB,OAAQ8E,KAAK69H,kBACZ,IAAK,OACJ79H,KAAKyB,oBAAoB,eACzB,MACD,IAAK,SACJzB,KAAKyB,oBAAoB,iBACzB,MACD,IAAK,MACJzB,KAAKyB,oBAAoB,cACzB,cAAiB68H,eAAe9pD,EAAA,EAAiBhO,YAU7C,YAAA+3D,UAAP,SAAiBrjI,GAChB8E,KAAKw+H,cAActjI,IAQV,YAAAsjI,cAAV,SAAwBtjI,GACvB,KAAOkvD,eACPpqD,KAAKy+H,YAAYz+H,KAAK0+H,SACtB,IAAI9hE,EAAc,cAElB,GAAI,IAAkB58D,KAAK2+H,aAAc3+H,KAAK4+H,gBAAkBhiE,EAAYiiE,aAAa7+H,KAAKmtD,aAAc,gBAAiB,CAC5H,OAAQntD,KAAK69H,kBACZ,IAAK,OACJ79H,KAAKmB,SAAS,aACd,MAED,IAAK,SACJnB,KAAKmB,SAAS,eACd,MAED,IAAK,MACJnB,KAAKmB,SAAS,YACdy7D,EAAY0hE,eAAe9pD,EAAA,EAAiBlkE,SAG9CtQ,KAAK+vG,eAAYrjG,EACjB1M,KAAK8+H,oBAmBA,YAAAA,gBAAP,aAMU,YAAAX,aAAV,WAECn+H,KAAKoqF,UAAYpqF,KAAK9E,MAAMZ,EAAI0F,KAAKomD,WACrCpmD,KAAKqqF,UAAY,EAAIrqF,KAAK9E,MAAMX,EAAIyF,KAAKkmD,aASnC,YAAAw3E,iBAAP,SAAwBv5E,GAEvB,MAAKnkD,KAAK8rD,qBAAwB9rD,KAAKmtD,aAAa4Q,kBAAoB5Z,EAAM6Z,QAAW,cAAiB+P,eAAe5pB,EAAMga,QAASn+D,KAAKO,MAAMD,IAAKN,KAAKC,KAA7J,CAKA,IAAIwoC,EAAgB,IAA6B0b,EAAMga,QAAQjjE,MAAO8E,MAEnD,QAAfA,KAAKy9H,QAAoBz9H,KAAK89H,cACjCr1F,EAAQzoC,KAAK89H,aAGd99H,KAAK4+H,eAAiB,CAAEtkI,EAAGmuC,EAAMnuC,EAAGC,EAAGkuC,EAAMluC,GAGzC4pD,EAAMA,MAAM46E,YAAc/+H,KAAKg/H,sBAAsB76E,EAAM6Z,QAAUh+D,KAAKmtE,aAAa1kC,IAC1F0b,EAAMA,MAAM86E,iBAIbj/H,KAAK+9H,YAAYt1F,GACjBzoC,KAAKo+H,YAAY31F,KAUR,YAAAu2F,sBAAV,SAAgChhE,GAC/B,OAAO,GAOE,YAAAygE,YAAV,SAAsBvjI,KASf,YAAAyiI,eAAP,SAAsBx5E,GACrB,GAAKnkD,KAAK8rD,sBAGL9rD,KAAK+vG,WAAc,cAAiBhiC,eAAe5pB,EAAMga,QAASn+D,KAAKO,MAAMD,IAAKN,KAAKC,MAA5F,CAGA,IAAIwoC,EAAgB,IAA6B0b,EAAMga,QAAQjjE,MAAO8E,MAEnD,QAAfA,KAAKy9H,QAAoBz9H,KAAK89H,cACjCr1F,EAAQzoC,KAAK89H,aAGd99H,KAAK2+H,aAAe,CAAErkI,EAAGmuC,EAAMnuC,EAAGC,EAAGkuC,EAAMluC,GAE3CyF,KAAK+9H,YAAYt1F,GACjBzoC,KAAKu+H,UAAU91F,KAQhB,sBAAW,oBAAK,C,IAUhB,WACC,OAAOzoC,KAAK0nF,Q,IAXb,SAAiB7xF,GAChBmK,KAAK0nF,OAAS7xF,EACV,IAAqBmK,KAAK0nF,OAAQgmB,gBACrC,cAAiBwxB,YAAkBl/H,KAAK0nF,OAAQgmB,cAAcvgD,e,gCAUjE,EA1aA,CAA4Bsb,EAAA,GAkb5B,IAASrpE,kBAAT,OAAuC,GC9ZvC,mBA8DC,mBAGC,cAAO,KA7CE,EAAA+/H,OAAS,IAAI,IAKb,EAAAC,OAAS,IAAI,IAoBb,EAAA7zB,OAAS,IAAI,IAKb,EAAAC,OAAS,IAAI,IAOb,EAAA6zB,iBAAgC,GASzC,EAAKtkF,UAAY,WAGjB,EAAKm+D,SAAW,QAEhB,EAAKQ,UAAY,GAEjB,IAAI5lC,EAAkB,IAAIC,EAAA,EAGtB+7B,EAAoB,EAAKxmC,YAAY/B,EAAA,GACzCuoC,EAAUlnD,aAAc,EACxBknD,EAAUl/C,YAAc,GACxBk/C,EAAUp0D,KAAOo4B,EAAgBlK,OAAO,yBACxCkmC,EAAUtkD,YAAa,EACvBskD,EAAUjkD,SAAU,EACpBikD,EAAUhkD,qBAAsB,EAChC,EAAKgkD,UAAYA,EACjB,EAAK5mD,WAAW1qD,KAAK,EAAKsxG,WAG1B,IAAIwvB,EAAgB,EAAKh2D,YAAY/B,EAAA,GACrC+3D,EAAM12E,aAAc,EACpB02E,EAAMjxE,OAASylB,EAAgBlK,OAAO,QACtC01D,EAAM5jF,KAAO,cACb4jF,EAAMvuE,gBAAkB,MACxBuuE,EAAM9zE,YAAa,EACnB8zE,EAAMzuE,cAAgB,GACtByuE,EAAMxzE,qBAAsB,EAC5BwzE,EAAM/kI,EAAI,EACV,EAAK+kI,MAAQA,EACb,EAAKp2E,WAAW1qD,KAAK,EAAK8gI,OAG1B,IAAIC,EAAgB,EAAKj2D,YAAY/B,EAAA,G,OACrCg4D,EAAM32E,aAAc,EACpB22E,EAAMlxE,OAASylB,EAAgBlK,OAAO,QACtC21D,EAAM7jF,KAAO,cACb6jF,EAAMxuE,gBAAkB,MACxBwuE,EAAM/zE,YAAa,EACnB+zE,EAAM1uE,cAAgB,GACtB0uE,EAAMzzE,qBAAsB,EAC5ByzE,EAAMjlI,EAAI,EACV,EAAKilI,MAAQA,EACb,EAAKr2E,WAAW1qD,KAAK,EAAK+gI,OAG1B,EAAKvgI,OAAOmgD,GAAG,cAAe,EAAKqgF,WAAY,GAAM,GAErD,EAAKt2E,WAAW1qD,KAAK,EAAK2gI,QAC1B,EAAKj2E,WAAW1qD,KAAK,EAAK4gI,QAC1B,EAAKl2E,WAAW1qD,KAAK,EAAK+sG,QAC1B,EAAKriD,WAAW1qD,KAAK,EAAKgtG,QAE1B,EAAK55C,KAAO,EAEZ,EAAKi+C,+BAAgC,EAGrC,EAAKlmD,a,EA41BP,OAz9B8B,iBAsItB,YAAA61E,WAAP,WACKx/H,KAAKs/H,QACRt/H,KAAKs/H,MAAMxzH,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG,EAAGC,EAAGyF,KAAKkmD,eAE3ElmD,KAAKu/H,QACRv/H,KAAKu/H,MAAMzzH,KAAO,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAAO,IAAa,CAAED,EAAG0F,KAAKomD,WAAY7rD,EAAG,MASlF,YAAAukI,gBAAP,WACC,GAAI9+H,KAAKy/H,eAAgB,CACxB,IAAI1vB,EAAoB/vG,KAAK+vG,UACzBmJ,EAAWl5G,KAAKk5G,SAEpB,GAAInJ,EAAW,CAEd,IAAI70G,EAAgB8E,KAAK9E,MAErB8E,KAAKs/H,QACRpkI,EAAMZ,EAAI0F,KAAKs/H,MAAMr4G,QAGlBjnB,KAAKu/H,QACRrkI,EAAMX,EAAIyF,KAAKu/H,MAAMn4G,QAGtB,IAAI0oF,EAAoB9vG,KAAK8vG,UAEzBx1G,EAAY/C,KAAKK,IAAIsD,EAAMZ,EAAGy1G,EAAUz1G,GACxCC,EAAYhD,KAAKK,IAAIsD,EAAMX,EAAGw1G,EAAUx1G,GAExCmkC,EAAY,IAAYnnC,KAAK6B,IAAI22G,EAAUz1G,EAAIY,EAAMZ,GAAI0F,KAAKknD,oBAC9DhuB,EAAY,IAAY3hC,KAAK6B,IAAI22G,EAAUx1G,EAAIW,EAAMX,GAAIyF,KAAKknD,oBAElE,OAAQgyD,GACP,IAAK,QACJ3+G,EAAI,EACJ2+B,EAAIl5B,KAAK+xD,YACT,MACD,IAAK,QACJz3D,EAAI,EACJokC,EAAI1+B,KAAK8xD,WACT,MACD,IAAK,UACJv3D,EAAI,EACJ2+B,EAAIl5B,KAAK+xD,YACT,MACD,IAAK,UACJz3D,EAAI,EACJokC,EAAI1+B,KAAK8xD,WAIXg+C,EAAUx1G,EAAIA,EACdw1G,EAAUv1G,EAAIA,EAEdu1G,EAAUhkG,KAAO,IAAgB4yB,EAAGxF,GAEpC42E,EAAUplD,uBAGmB,UAAzB1qD,KAAK69H,kBACR79H,KAAK8vG,UAAU7jD,SAYT,YAAAyzE,SAAV,SAAmBxkI,GAMlB,OALAA,EAAMZ,EAAI/C,KAAKM,IAAI,EAAGqD,EAAMZ,GAC5BY,EAAMX,EAAIhD,KAAKM,IAAI,EAAGqD,EAAMX,GAC5BW,EAAMZ,EAAI/C,KAAKK,IAAIoI,KAAK8xD,WAAY52D,EAAMZ,GAC1CY,EAAMX,EAAIhD,KAAKK,IAAIoI,KAAK+xD,YAAa72D,EAAMX,GAEpCW,GASE,YAAAgjI,gBAAV,SAA0BhjI,EAAe+iI,GAExC,YAAMC,gBAAe,UAAChjI,EAAO+iI,GAC7B,IAAIh3B,EAAejnG,KAAKinG,aACxB,GAAKA,IAAiBjnG,KAAK+vG,UAC1B,GAAI9I,aAAwB,GACvBA,EAAa/wC,UAChBl2D,KAAK2/H,oBAAoBzkI,OAGtB,CACJ,IAAI,GAAY,EAChB,IAAY+rG,GAAc,SAAChsG,GACrBA,EAAEi7D,WACN,GAAY,MAGV,GACHl2D,KAAK2/H,oBAAoBzkI,QAK3B8E,KAAK2/H,oBAAoBzkI,GAGtB8E,KAAK+vG,WAAa,IAAkB/vG,KAAK+vG,UAAW70G,GAAS,GACnC,OAAzB8E,KAAK69H,mBACR79H,KAAK4/H,mBACL5/H,KAAKmB,SAAS,aASP,YAAAw+H,oBAAV,SAA8BzkI,GAC7BA,EAAQ8E,KAAK0/H,SAAS1/H,KAAK9E,OAEvB8E,KAAKs/H,OAASt/H,KAAKs/H,MAAMzzE,UAAY7rD,KAAK6+F,QAC7C7+F,KAAKs/H,MAAMhlI,EAAIY,EAAMZ,GAElB0F,KAAKu/H,OAASv/H,KAAKu/H,MAAM1zE,UAAY7rD,KAAK+mG,QAC7C/mG,KAAKu/H,MAAMhlI,EAAIW,EAAMX,GAEtByF,KAAK8+H,mBAII,YAAAT,gBAAV,SAA0BnjI,GAEzB,GAAI8E,KAAK6rD,UAAY7rD,KAAK4mD,SAMzB,GAJ6B,UAAzB5mD,KAAK69H,mBACR79H,KAAK8vG,UAAU3iG,OAASnN,KAAKmN,QAG1BnN,KAAKmtE,aAAajyE,GAAQ,CAC7B8E,KAAK+vG,UAAY,CAAEz1G,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,GAExCyF,KAAKy+H,YAAYvjI,GAIjB8E,KAAK9E,MAAMZ,EAAI0F,KAAK+vG,UAAUz1G,EAC9B0F,KAAK9E,MAAMX,EAAIyF,KAAK+vG,UAAUx1G,EAE9B,IAAIu1G,EAAoB9vG,KAAK8vG,UACzB+vB,EAAqB7/H,KAAK+vG,UAAUz1G,EACpCwlI,EAAqB9/H,KAAK+vG,UAAUx1G,EAEpCyF,KAAKy/H,iBACR3vB,EAAUx1G,EAAIulI,EACd/vB,EAAUv1G,EAAIulI,EACdhwB,EAAUhkG,KAAO,GACjBgkG,EAAUjsC,QAEX,YAAMw6D,gBAAe,UAACnjI,QAGtB8E,KAAK+vG,eAAYrjG,OAIlB1M,KAAK+vG,eAAYrjG,GAQT,YAAA+xH,YAAV,SAAsBvjI,GACjB8E,KAAKs/H,QACRpkI,EAAMZ,EAAI0F,KAAKs/H,MAAMr4G,QAElBjnB,KAAKu/H,QACRrkI,EAAMX,EAAIyF,KAAKu/H,MAAMn4G,SAUb,YAAAo3G,cAAV,SAAwBtjI,GACvB,GAAI8E,KAAK+/H,WACJ//H,KAAK+vG,YACR/vG,KAAK0+H,QAAUxjI,EAEf8E,KAAKy+H,YAAYz+H,KAAK0+H,SAEO,OAAzB1+H,KAAK69H,kBACR79H,KAAKggI,YAGuB,UAAzBhgI,KAAK69H,kBACR79H,KAAK8vG,UAAU7jD,OAEhB,YAAMuyE,cAAa,UAACtjI,QAGjB,CAWJ,GAV6B,UAAzB8E,KAAK69H,iBACR79H,KAAK8vG,UAAU7jD,KAAK,IAGpBjsD,KAAKm5G,YAASzsG,EACd1M,KAAKo5G,YAAS1sG,EACd1M,KAAKyB,oBAAoB,gBAIG,OAAzBzB,KAAK69H,iBACU,cACNS,eAAe9pD,EAAA,EAAiBlkE,SAG7CtQ,KAAKyB,oBAAoB,oBAE1BzB,KAAK+vG,eAAYrjG,EACjB1M,KAAKmB,SAAS,0BAQP,YAAA4+H,SAAR,WAWC,OATqB,SAAjB//H,KAAKk5G,UAAwC,QAAjBl5G,KAAKk5G,SACzB,IAA4Bl5G,KAAK2+H,aAAc3+H,KAAK4+H,gBAEtC,SAAjB5+H,KAAKk5G,UAAwC,QAAjBl5G,KAAKk5G,SAC9B,IAA0Bl5G,KAAK2+H,aAAc3+H,KAAK4+H,gBAGlD,IAAkB5+H,KAAK2+H,aAAc3+H,KAAK4+H,iBAEpC,cAAiBC,aAAa7+H,KAAKmtD,aAAc,iBAQ1D,YAAAyyE,iBAAV,WAEC,IAAIzW,EAAS,IAAYnpH,KAAK+vG,UAAUz1G,EAAI0F,KAAKomD,WAAY,GACzDgjE,EAAS,EAAI,IAAYppH,KAAK+vG,UAAUx1G,EAAIyF,KAAKkmD,YAAa,GAK9D2xC,EAASsxB,EAHE,IAAYnpH,KAAK9E,MAAMZ,EAAI0F,KAAKomD,WAAY,GAIvDshD,EAAS0hB,GAHE,EAAI,IAAYppH,KAAK9E,MAAMX,EAAIyF,KAAKkmD,YAAa,IAKhElmD,KAAKm5G,OAAS,CAAE1/G,MAAOo+F,EAAQj+F,IAAK,EAAIi+F,GACxC73F,KAAKo5G,OAAS,CAAE3/G,MAAOiuG,EAAQ9tG,IAAK,EAAI8tG,GAEnB,QAAjB1nG,KAAKk5G,WACRl5G,KAAKo5G,OAAO3/G,MAAQ,EACpBuG,KAAKo5G,OAAOx/G,IAAM,GAEE,QAAjBoG,KAAKk5G,WACRl5G,KAAKm5G,OAAO1/G,MAAQ,EACpBuG,KAAKm5G,OAAOv/G,IAAM,IASV,YAAAomI,UAAV,WACKhgI,KAAKs/H,QACRt/H,KAAK0+H,QAAQpkI,EAAI0F,KAAKs/H,MAAMr4G,QAEzBjnB,KAAKu/H,QACRv/H,KAAK0+H,QAAQnkI,EAAIyF,KAAKu/H,MAAMn4G,QAI7B,IAAYpnB,KAAK8vG,WAEjB,IAAIqZ,EAAiB,IAAYnpH,KAAK+vG,UAAUz1G,EAAI0F,KAAKomD,WAAY,GACjE2iE,EAAe,IAAa/oH,KAAK0+H,QAAQpkI,EAAK0F,KAAKomD,WAAY,GAE/DgjE,EAAiB,EAAI,IAAYppH,KAAK+vG,UAAUx1G,EAAIyF,KAAKkmD,YAAa,GACtE8iE,EAAe,EAAI,IAAahpH,KAAK0+H,QAAQnkI,EAAKyF,KAAKkmD,YAAa,GAExElmD,KAAKm5G,OAAS,CAAE1/G,MAAO,IAAU0vH,EAAQJ,GAAOnvH,IAAK,IAAUuvH,EAAQJ,IACvE/oH,KAAKo5G,OAAS,CAAE3/G,MAAO,IAAU2vH,EAAQJ,GAAOpvH,IAAK,IAAUwvH,EAAQJ,KA0BxE,sBAAW,uBAAQ,C,IAsBnB,WACC,OAAOhpH,KAAKujD,iBAAiB,a,IAvB9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,GAEzCmK,KAAKy/H,gBAAiB,GAEQ,GAA1B5pI,EAAMiB,QAAQ,UACjBkJ,KAAK69H,iBAAmB,OACxB79H,KAAKy/H,gBAAiB,IAES,GAA5B5pI,EAAMiB,QAAQ,YACjBkJ,KAAK69H,iBAAmB,SACxB79H,KAAKy/H,gBAAiB,IAEM,GAAzB5pI,EAAMiB,QAAQ,SACjBkJ,KAAK69H,iBAAmB,MACxB79H,KAAKy/H,gBAAiB,I,gCAkBd,YAAAT,sBAAV,SAAgChhE,GAC/B,QAASh+D,KAAKmtD,aAAa4Q,mBAAqBC,IAA2B,QAAjBh+D,KAAKk5G,UAYhE,sBAAW,6BAAc,C,IAUzB,WACC,OAAOl5G,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GACnCA,GACJmK,KAAKw/H,c,gCAoBP,sBAAW,6BAAc,C,IAUzB,WACC,OAAOx/H,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GACnCA,GACJmK,KAAKw/H,c,gCAiBP,sBAAW,4CAA6B,C,IAOxC,WACC,OAAOx/H,KAAKujD,iBAAiB,kC,IAR9B,SAAyC1tD,GACxCmK,KAAKopD,iBAAiB,gCAAiCvzD,I,gCAqBxD,sBAAW,iCAAkB,C,IAO7B,WACC,OAAOmK,KAAKujD,iBAAiB,uB,IAR9B,SAA8B1tD,GAC7BmK,KAAKopD,iBAAiB,qBAAsBvzD,I,gCAgB7C,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,I,gCAuBpC,sBAAW,oBAAK,C,IAqBhB,WACC,OAAOmK,KAAKurG,OAAOrqG,O,IAtBpB,SAAiBgpF,GAAjB,WACKlqF,KAAKurG,OAAOrqG,OAASgpF,GACxBlqF,KAAKurG,OAAOvqG,IAAIkpF,EAAM,IAAI,IAAc,CACvCA,EAAK18B,QAAQxuD,OAAOmgD,GAAG,kBAAmBn/C,KAAKigI,uBAAwBjgI,MAAM,GAE7EkqF,EAAKlrF,OAAOmgD,GAAG,sBAAsB,SAACgF,GACrC,EAAK8H,KAAK,GACV,EAAKjD,aAAc,SACjBt8C,GAAW,GACdw9E,EAAKlrF,OAAOmgD,GAAG,oBAAoB,SAACgF,GACnC,EAAK6E,aAAc,EACnB,EAAKiD,KAAK,GACV,EAAK9qD,SAAS,gCACZuL,GAAW,O,gCAyBjB,sBAAW,oBAAK,C,IAqBhB,WACC,OAAO1M,KAAKwrG,OAAOtqG,O,IAtBpB,SAAiBgpF,GAAjB,WACKlqF,KAAKwrG,OAAOtqG,OAASgpF,GACxBlqF,KAAKwrG,OAAOxqG,IAAIkpF,EAAM,IAAI,IAAc,CACvCA,EAAK18B,QAAQxuD,OAAOmgD,GAAG,kBAAmBn/C,KAAKkgI,uBAAwBlgI,MAAM,GAE7EkqF,EAAKlrF,OAAOmgD,GAAG,sBAAsB,SAACgF,GACrC,EAAK8H,KAAK,GACV,EAAKG,YAAa,SAChB1/C,GAAW,GACdw9E,EAAKlrF,OAAOmgD,GAAG,oBAAoB,SAACgF,GACnC,EAAKiI,YAAa,EAClB,EAAKH,KAAK,GACV,EAAK9qD,SAAS,gCACZuL,GAAW,O,gCAkBP,YAAAuzH,uBAAV,SAAiC97E,GAChC,IAAIqJ,EAAmBxtD,KAAK6+F,MAAMrxC,QAC9BtyD,EAAgB,IAAwB,CAAEZ,EAAGkzD,EAAQvmC,OAAQ1sB,EAAGizD,EAAQpmC,QAAUpnB,MAClF1F,EAAYY,EAAMZ,EAUtB,GATAY,EAAMX,EAAI,EAENyF,KAAKs/H,QACRt/H,KAAKs/H,MAAMhlI,EAAIA,EACV0F,KAAKmtE,aAAajyE,IACtB8E,KAAKisD,QAIHjsD,KAAK6+F,OAAS7+F,KAAKmgI,eAAgB,CACtC,IAAIhuC,EAAqBnyF,KAAK6+F,MAAMxM,sBAChCD,EAAmBpyF,KAAK6+F,MAAMvM,oBAClC,GAAIH,GAAcC,EAAU,CAC3BpyF,KAAKs/H,MAAMhlI,EAAIA,EACf,IAAIgC,EAAgB81F,EAAS93F,EAAI63F,EAAW73F,EAC5C0F,KAAKs/H,MAAMxzH,KAAO,IAAgBxP,EAAO0D,KAAKkmD,aAAc5pD,EAAQ,MAW7D,YAAA4jI,uBAAV,SAAiC/7E,GAChC,IAAIqJ,EAAmBxtD,KAAK+mG,MAAMv5C,QAC9BtyD,EAAgB,IAAwB,CAAEZ,EAAGkzD,EAAQvmC,OAAQ1sB,EAAGizD,EAAQpmC,QAAUpnB,MAClFzF,EAAYW,EAAMX,EAWtB,GAVAW,EAAMZ,EAAI,EAEN0F,KAAKu/H,QACRv/H,KAAKu/H,MAAMhlI,EAAIA,EAEVyF,KAAKmtE,aAAajyE,IACtB8E,KAAKisD,QAIHjsD,KAAK+mG,OAAS/mG,KAAKogI,eAAgB,CACtC,IAAIjuC,EAAqBnyF,KAAK+mG,MAAM1U,sBAChCD,EAAmBpyF,KAAK+mG,MAAMzU,oBAClC,GAAIH,GAAcC,EAAU,CAC3BpyF,KAAKu/H,MAAMhlI,EAAIA,EACf,IAAIgC,EAAiB61F,EAAS73F,EAAI43F,EAAW53F,EAC7CyF,KAAKu/H,MAAMzzH,KAAO,IAAgB9L,KAAKomD,WAAY7pD,EAAQ,GAAIA,EAAS,MAU3E,sBAAW,oBAAK,C,IAehB,WACC,OAAOyD,KAAKm/H,OAAOj+H,O,IAhBpB,SAAiBo+H,GACZA,GACHA,EAAMjtE,WAAWryD,KAAKO,MAAM+I,IAAI,SAChCtJ,KAAKm/H,OAAOn+H,IAAIs+H,EAAOA,EAAMtgI,OAAOmgD,GAAG,kBAAmBn/C,KAAK8+H,gBAAiB9+H,MAAM,IACtFs/H,EAAMxzE,qBAAsB,EAC5BwzE,EAAMnyH,OAASnN,MAGfA,KAAKm/H,OAAOxmF,S,gCAgBd,sBAAW,oBAAK,C,IAehB,WACC,OAAO34C,KAAKo/H,OAAOl+H,O,IAhBpB,SAAiBq+H,GACZA,GACHA,EAAMltE,WAAWryD,KAAKO,MAAM+I,IAAI,SAChCtJ,KAAKo/H,OAAOp+H,IAAIu+H,EAAOA,EAAMvgI,OAAOmgD,GAAG,kBAAmBn/C,KAAK8+H,gBAAiB9+H,MAAM,IACtFu/H,EAAMpyH,OAASnN,KACfu/H,EAAMzzE,qBAAsB,GAG5B9rD,KAAKo/H,OAAOzmF,S,gCAgBd,sBAAW,wBAAS,C,IAWpB,WACC,OAAO34C,KAAKqgI,Y,IAZb,SAAqBvwB,GACpB9vG,KAAKqgI,WAAavwB,EACdA,IACHA,EAAUpnF,QAAU1oB,KAAKO,MAAM+I,IAAI,QACnCwmG,EAAU3iG,OAASnN,O,gCAoBd,YAAAmmE,cAAP,SAAqB33D,GAArB,WAEC,GAAIA,IAGC,IAAeA,EAAOqwF,QAAU,IAAerwF,EAAOqwF,SACrD7+F,KAAKkrB,IAAIizB,OAAO3vC,EAAOqwF,OAC1BrwF,EAAOqwF,MAAQ7+F,KAAKkrB,IAAIg0B,OAAO1wC,EAAOqwF,QAGtC7+F,KAAK4+F,iBAAiBpgG,KAAK,+BAAkCgQ,EAAOqwF,MAAQ,8BACrErwF,EAAOqwF,QAGZ,IAAerwF,EAAOu4F,QAAU,IAAev4F,EAAOu4F,SACrD/mG,KAAKkrB,IAAIizB,OAAO3vC,EAAOu4F,OAC1Bv4F,EAAOu4F,MAAQ/mG,KAAKkrB,IAAIg0B,OAAO1wC,EAAOu4F,QAGtC/mG,KAAK4+F,iBAAiBpgG,KAAK,+BAAkCgQ,EAAOu4F,MAAQ,8BACrEv4F,EAAOu4F,QAIZ,IAAev4F,EAAOy4F,eAAe,CACxC,IAAI,EAAS,IAAcz4F,EAAOy4F,cAAgBz4F,EAAOy4F,aAAe,CAACz4F,EAAOy4F,cAC5E,GAAY,EAChB,IAAY,GAAQ,SAACq5B,EAAM34H,GACtB,IAAe24H,KACd,EAAKp1G,IAAIizB,OAAOmiF,GACnB,EAAO34H,GAAS,EAAKujB,IAAIg0B,OAAOohF,IAGhC,EAAK1hC,iBAAiBpgG,KAAK,iCAAoC8hI,EAAO,wBACtE,GAAY,OAIX,SACI9xH,EAAOy4F,aAGdz4F,EAAOy4F,aAAe,EAMzB,YAAM9gC,cAAa,UAAC33D,IAWrB,sBAAW,2BAAY,C,IAwBvB,WACC,OAAOxO,KAAKujD,iBAAiB,iB,IAzB9B,SAAwB6oC,GAAxB,WACKpsF,KAAKopD,iBAAiB,eAAgBgjC,KAErCA,aAAkB,KACrBA,EAAS,CAACA,IAEPpsF,KAAKq/H,kBACR,IAAYr/H,KAAKq/H,kBAAkB,SAACp9E,GACnCA,EAASpC,aAGX7/C,KAAKq/H,iBAAmB,GAEpBjzC,GACH,IAAYA,GAAQ,SAACnxF,GACpB,EAAKokI,iBAAiB7gI,KAAKvD,EAAE+D,OAAOmgD,GAAG,kBAAkB,WAAQ,EAAKu4D,WAAWz8G,UAAMyR,GAAW,S,gCAmB/F,YAAAgrG,WAAP,SAAkBtrB,GACjB,IAAKpsF,KAAK+vG,UAAW,CACpB,IAAIz1G,EAAI8xF,EAAO9mB,cAAgB8mB,EAAOyS,MAAM53E,OACxC1sB,EAAI6xF,EAAO7mB,cAAgB6mB,EAAO2a,MAAM3/E,OAExCpnB,KAAK6+F,OACJ7+F,KAAK6+F,MAAMtR,SAAS4J,WACvB58F,GAAKyF,KAAK+xD,aAIZ/xD,KAAK9E,MAAQ,CAAEZ,EAAGA,EAAGC,EAAGA,GACxByF,KAAKm+H,eAEL,IAAIoC,EAAKjmI,EACLukC,EAAKtkC,EAETD,GAAK0F,KAAK8xD,WAEN9xD,KAAK+mG,OACJ/mG,KAAK+mG,MAAMxZ,SAAS4J,WACvB78F,GAAK0F,KAAK8xD,YAIZ,IAAItE,EAAU4+B,EAAO5+B,QACjBzmB,EAAWymB,EAAQwX,kBACnBhP,EAASxI,EAAQgzE,gBAGjB3hC,EAAQzS,EAAOyS,MACfkI,EAAQ3a,EAAO2a,MAEflI,aAAiB,MAAeA,aAAiB,KAAakI,aAAiB,MAAeA,aAAiB,KAClH3a,EAAO2a,MAAM5c,sBAAsBnqF,KAAKqqF,WACxC+B,EAAOyS,MAAM1U,sBAAsBnqF,KAAKoqF,aAGpCgC,EAAO8U,UAAY9U,EAAOyS,OAC7BzS,EAAO2a,MAAM5c,sBAAsBnqF,KAAKqqF,WAGrC+B,EAAO8U,UAAY9U,EAAO2a,OAC7B3a,EAAOyS,MAAM1U,sBAAsBnqF,KAAKoqF,YAI1CpqF,KAAKs/H,MAAMxpE,QAAQ,CAAC,CAAEzrB,SAAU,IAAKna,GAAI31B,IAAMwsC,EAAUivB,GACzDh2D,KAAKu/H,MAAMzpE,QAAQ,CAAC,CAAEzrB,SAAU,IAAKna,GAAI51B,IAAMysC,EAAUivB,GAEpDh2D,KAAK6+F,OACT7+F,KAAKs/H,MAAMxpE,QAAQ,CAAC,CAAEzrB,SAAU,IAAKna,GAAIqwG,IAAOx5F,EAAUivB,GAEtDh2D,KAAK+mG,OACT/mG,KAAKu/H,MAAMzpE,QAAQ,CAAC,CAAEzrB,SAAU,IAAKna,GAAI2O,IAAOkI,EAAUivB,KAQtD,YAAAnW,QAAP,WACC7/C,KAAKisD,KAAK,GACV,YAAMpM,QAAO,YAEf,EAz9BA,CAA8B,IAi+B9B,IAASzgD,kBAAT,SAAyC,GCvhCzC,mBA4BC,mBAGC,cAAO,K,OACP,EAAK27C,UAAY,cACjB,EAAK18C,OAAS,YAAQ,KACtB,EAAKgU,YAAc,YAAQ,GAG3B,EAAKs3C,aAEL,EAAKiI,UAAOllD,E,EAubd,OA9diC,iBAiDzB,YAAAygE,aAAP,SAAoBjyE,GACnB,IAAImD,EAAS,IAAkBnD,GAK/B,OAAImD,EAAS2B,KAAKygI,gBAAkB,GAAKpiI,EAAS2B,KAAK6+G,iBAAmB,GAW3E,sBAAW,yBAAU,C,IAOrB,WACC,OAAO7+G,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCAe5C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAWhC,YAAAqoI,gBAAV,SAA0BhjI,EAAc+iI,GAElCj+H,KAAK6+F,SAAU7+F,KAAK6+F,OAAW7+F,KAAK6+F,MAAMlM,uBAAwB3yF,KAAK6+F,MAAMrxC,QAAQrD,WACzFnqD,KAAK0gI,YAAY1gI,KAAK9E,OAElB8E,KAAK+mG,SAAU/mG,KAAK+mG,OAAW/mG,KAAK+mG,MAAMpU,uBAAwB3yF,KAAK+mG,MAAMv5C,QAAQrD,WACzFnqD,KAAK2gI,YAAY3gI,KAAK9E,OAGvB8E,KAAK8+H,kBACL,YAAMZ,gBAAe,UAAChjI,EAAO+iI,IAQpB,YAAAyC,YAAV,SAAsBxlI,GAErB,IAAImD,EAAiB2B,KAAK4+G,YACtB3gH,EAAqB+B,KAAK/B,WAC1BC,EAAmB8B,KAAK9B,SACxBmU,EAAsBrS,KAAK6+G,iBAE/B,GAAIxgH,EAAS,GAAK,IAAeJ,IAAe,IAAeC,IAAa,IAAemU,GAAc,CACxG,IAAIvW,EAAgB,IAAsB,IAAeZ,GAAQ+C,EAAYC,GACzE4N,OAAI,EAER,GAAI9L,KAAKs/H,OAASt/H,KAAKs/H,MAAMzzE,QAAS,CAKrC,GAHA7rD,KAAKs/H,MAAMhuH,OAAO,CAAEhX,EAAG,EAAGC,EAAG,IAGzByF,KAAK6+F,OAAS7+F,KAAKmgI,eAAgB,CAEtC,IAAIhuC,EAAqBnyF,KAAK6+F,MAAMxM,sBAChCD,EAAmBpyF,KAAK6+F,MAAMvM,oBAElC,GAAIH,GAAcC,EAAU,CAC3B,IAAIwuC,EAAyB,IAAsB,IAAezuC,GAAal0F,EAAYC,GAGvFW,EAFuB,IAAsB,IAAeuzF,GAAWn0F,EAAYC,GAEtD0iI,EAI7B3iI,EAAaC,EACZW,EAAM,IACTA,GAAO,KAKJA,EAAM,IACTA,GAAO,KAIT/C,GAAS+C,EAAM,EAEfiN,EAAO,IAAa,CAAExR,EAAG+X,EAAc,IAAUvW,GAAQvB,EAAG8X,EAAc,IAAUvW,KACjF,IAAa,CAAExB,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,KACnE,IAAYA,EAAO+C,EAAKR,GACxB,IAAa,CAAE/D,EAAG+X,EAAc,IAAUvW,EAAQ+C,GAAMtE,EAAG8X,EAAc,IAAUvW,EAAQ+C,KAC3F,IAAY/C,EAAQ+C,GAAMA,EAAKwT,IAK/BvG,IACJA,EAAO,IAAa,CAAExR,EAAG+X,EAAc,IAAUvW,GAAQvB,EAAG8X,EAAc,IAAUvW,KAAY,IAAa,CAAExB,EAAG+D,EAAS,IAAUvC,GAAQvB,EAAG8D,EAAS,IAAUvC,MAGpKkE,KAAKs/H,MAAMxzH,KAAOA,KAUX,YAAA60H,YAAV,SAAsBzlI,GACrB,GAAI8E,KAAKu/H,OAASv/H,KAAKu/H,MAAM1zE,QAAS,CACrC,IAAI5tD,EAAa+B,KAAK/B,WAClBC,EAAW8B,KAAK9B,SAChBuiI,EAAkBzgI,KAAKygI,gBACvBpiI,EAAS,IAAiB,IAAkBnD,GAAQ,EAAG8E,KAAKygI,iBAChE,GAAI,IAAepiI,IAAW,IAAeJ,GAAa,CACzD+B,KAAKu/H,MAAMjuH,OAAO,CAAEhX,EAAG,EAAGC,EAAG,IAE7B,IAAIuR,OAAI,EACJjN,EAAcX,EAAWD,EAE7B,GAAI+B,KAAK+mG,OAAS/mG,KAAKogI,eAAgB,CAEtC,IAAIjuC,EAAqBnyF,KAAK+mG,MAAM1U,sBAChCD,EAAmBpyF,KAAK+mG,MAAMzU,oBAElC,GAAIH,GAAcC,EAAU,CAC3B,IAAI//E,EAAsB,IAAiB,IAAkB8/E,GAAa,EAAGsuC,GAC7EpiI,EAAS,IAAiB,IAAkB+zF,GAAW,EAAGquC,GAE1D30H,EAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUJ,GAAa1D,EAAG8D,EAAS,IAAUJ,KAAiB,IAAYA,EAAYY,EAAKR,GAC7HyN,GAAQ,IAAa,CAAExR,EAAG+X,EAAc,IAAUnU,GAAW3D,EAAG8X,EAAc,IAAUnU,KAAe,IAAYA,GAAWW,EAAKwT,IAIhIvG,IACJA,EAAO,IAAa,CAAExR,EAAG+D,EAAS,IAAUJ,GAAa1D,EAAG8D,EAAS,IAAUJ,KAAiB,IAAYA,EAAYC,EAAWD,EAAYI,IAGhJ2B,KAAKu/H,MAAMzzH,KAAOA,KAUd,YAAAgzH,gBAAP,WACC,GAAI9+H,KAAKy/H,eAAgB,CACxB,IAAI1vB,EAAoB/vG,KAAK+vG,UAE7B,GAAIA,EAAW,CAEd,IAAI70G,EAAgB8E,KAAK9E,MAErBmD,EAAiB2B,KAAK4+G,YACtB6hB,EAA0BzgI,KAAKygI,gBAC/BpuH,EAAsBrS,KAAK6+G,iBAE3B5gH,EAAqB1G,KAAKK,IAAIoI,KAAK/B,WAAY+B,KAAK9B,UACpDA,EAAmB3G,KAAKM,IAAImI,KAAK/B,WAAY+B,KAAK9B,UAElD2iI,EAAoB,IAAsB,IAAe9wB,GAAY9xG,EAAYC,GACjFpC,EAAgB,IAAsB,IAAeZ,GAAQ+C,EAAYC,GAEzE4iI,EAAqB,IAAkB/wB,GAC3C,GAAI+wB,EAAaL,EAAiB,CAEjC,IAAIM,EAAgB,IAAiB,IAAkB7lI,GAAQ,EAAGulI,GAElEzgI,KAAKghI,WAAallI,EAElB,IAAIgQ,EAAe,IAAa,CAAExR,EAAG,EAAGC,EAAG,IAEvC0mI,EAAkB,IAAUJ,GAC5BK,EAAkB,IAAUL,GAE5BpoI,EAAc,IAAUqD,GACxBnD,EAAc,IAAUmD,GAExBo9G,EAAWl5G,KAAKk5G,SACJ,SAAZA,GAAmC,WAAZA,EAC1BptG,GAAQ,IAAa,CAAExR,EAAG+D,EAAS6iI,EAAS3mI,EAAG8D,EAAS4iI,IAAa,IAAYJ,EAAW/kI,EAAQ+kI,EAAWxiI,GAAU,IAAa,CAAE/D,EAAG+X,EAAc1Z,EAAK4B,EAAG8X,EAAc5Z,IAAS,IAAYqD,EAAO+kI,EAAY/kI,EAAOuW,GAE1M,SAAZ6mG,GAAmC,WAAZA,EAC/BptG,EAAO,IAAa,CAAExR,EAAGymI,EAAgB,IAAU9iI,GAAa1D,EAAGwmI,EAAgB,IAAU9iI,KAAiB,IAAYA,EAAYC,EAAWD,EAAY8iI,GAAiB,IAAa,CAAEzmI,EAAGwmI,EAAa,IAAU5iI,GAAW3D,EAAGumI,EAAa,IAAU5iI,KAAe,IAAYA,EAAUD,EAAaC,EAAU4iI,GAAc,MAElT,UAAZ5nB,IACRptG,EAAO,IAAa,CAAExR,EAAGymI,EAAgB,IAAUF,GAAYtmI,EAAGwmI,EAAgB,IAAUF,KAAgB,IAAYA,EAAW/kI,EAAQ+kI,EAAWE,GAAiB,IAAa,CAAEzmI,EAAGwmI,EAAa,IAAUhlI,GAAQvB,EAAGumI,EAAa,IAAUhlI,KAAY,IAAYA,EAAO+kI,EAAY/kI,EAAOglI,GAAc,OAGnT9gI,KAAK8vG,UAAUhkG,KAAOA,EAEvB9L,KAAK8vG,UAAUx+F,OAAO,CAAEhX,EAAG,EAAGC,EAAG,OAQ1B,YAAA4jI,aAAV,WAGC,GADwBn+H,KAAK46E,MAClB,CACV,IAAIvoE,EAAcrS,KAAK6+G,iBACnBxgH,EAAiB2B,KAAKygI,gBAAkBpuH,EAExCpU,EAAqB+B,KAAK/B,WAC1BC,EAAmB8B,KAAK9B,SAGxBksF,GADgB,IAAsB,IAAepqF,KAAK9E,OAAQ+C,EAAYC,GACxDD,IAAeC,EAAWD,GACpD+B,KAAKoqF,UAAYA,EAEjBpqF,KAAKqqF,UAAY,KAAkB,IAAkBrqF,KAAK9E,OAASmX,GAAehU,EAAQ,EAAG,KASrF,YAAAogI,YAAV,SAAsBvjI,KASZ,YAAA+kI,uBAAV,SAAiC97E,GAChC,GAAInkD,KAAK6+F,MAAMlM,qBAAsB,CACpC,IAAInlC,EAAmBxtD,KAAK6+F,MAAMrxC,QAClCxtD,KAAK0gI,YAAY,IAAwB,CAAEpmI,EAAGkzD,EAAQvmC,OAAQ1sB,EAAGizD,EAAQpmC,QAAUpnB,SAU3E,YAAAkgI,uBAAV,SAAiC/7E,GAChC,GAAInkD,KAAK+mG,MAAMpU,qBAAsB,CACpC,IAAInlC,EAAmBxtD,KAAK+mG,MAAMv5C,QAClCxtD,KAAK2gI,YAAY,IAAwB,CAAErmI,EAAGkzD,EAAQvmC,OAAQ1sB,EAAGizD,EAAQpmC,QAAUpnB,SAQ3E,YAAA2/H,oBAAV,SAA8BzkI,KAUpB,YAAA8kI,UAAV,WACC,IAAIjwB,EAAY/vG,KAAK+vG,UACrB,GAAIA,EAAW,CACd,IAAI2uB,EAAkB1+H,KAAK0+H,QAG3B,GADwB1+H,KAAK46E,MAClB,CACV,IAAIv8E,EAAiB2B,KAAK4+G,YACtB3gH,EAAqB+B,KAAK/B,WAC1BC,EAAmB8B,KAAK9B,SAExB2iI,EAAoB,IAAsB,IAAe9wB,GAAY/vG,KAAK/B,WAAY+B,KAAK9B,UAC3FijI,EAAkB,IAAsB,IAAezC,GAAU1+H,KAAK/B,WAAY+B,KAAK9B,UAEvF4iI,EAAa,IAAiB,IAAkB/wB,GAAY,EAAG1xG,GAC/D+iI,EAAW,IAAiB,IAAkB1C,GAAU,EAAGrgI,GAE3D8qH,EAAiB,EACjBJ,EAAe,EAEfK,EAAiB,EACjBJ,EAAe,EAEf9P,EAAWl5G,KAAKk5G,SACpB,GAAgB,SAAZA,GAAmC,WAAZA,GAAqC,UAAZA,GAAoC,YAAZA,EAAwB,CACnG,IAAIr6G,EAAcX,EAAWD,EAC7BkrH,EAAS,KAAa0X,EAAY5iI,GAAcY,EAAK,GACrDkqH,EAAO,KAAaoY,EAAUljI,GAAcY,EAAK,GAGlC,SAAZq6G,GAAmC,WAAZA,GAAqC,UAAZA,GAAoC,YAAZA,IAC3EkQ,EAAS,IAAY0X,EAAaziI,EAAQ,GAC1C2qH,EAAO,IAAYoY,EAAW/iI,EAAQ,IAGvC2B,KAAKm5G,OAAS,CAAE1/G,MAAOlC,KAAKK,IAAIuxH,EAAQJ,GAAOnvH,IAAKrC,KAAKM,IAAIsxH,EAAQJ,IACrE/oH,KAAKo5G,OAAS,CAAE3/G,MAAOlC,KAAKK,IAAIwxH,EAAQJ,GAAOpvH,IAAKrC,KAAKM,IAAIuxH,EAAQJ,IAEhD,WAAjBhpH,KAAKk5G,UAA0C,WAAjBl5G,KAAKk5G,UAA0C,YAAjBl5G,KAAKk5G,UAIpEl5G,KAAK8vG,UAAU7jD,UAcZ,YAAAuzE,WAAP,aAQA,sBAAW,qBAAM,C,IAOjB,WACC,OAAOx/H,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAO,EAAO,IAAI,I,gCAgB5D,sBAAW,0BAAW,C,IAAtB,WACC,OAAO,IAA6BmK,KAAK3B,OAAQ2B,KAAKygI,kB,gCAUvD,sBAAW,8BAAe,C,IAA1B,WACC,OAAO,IAAuB,YAAQ,KAAM,IAAUzgI,KAAKomD,WAAa,EAAGpmD,KAAKkmD,YAAc,K,gCAS/F,sBAAW,0BAAW,C,IAOtB,WACC,OAAOlmD,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAO,EAAO,IAAI,I,gCAgBjE,sBAAW,+BAAgB,C,IAA3B,WAEC,IAAIwc,EAAcrS,KAAKqS,YAMvB,OAJIA,aAAuBknC,EAAA,IAC1BlnC,EAAc,YAAQ,IAAMA,EAAYxc,MAAQmK,KAAK46E,MAAMulC,sBAGrD,IAA6B9tG,EAAarS,KAAKygI,kBAAoB,G,gCASjE,YAAAf,SAAV,SAAmBxkI,GAElB,OAAOA,GAET,EA9dA,CAAiC,IAsejC,IAASkE,kBAAT,YAA4C,I,6BChjB5C,yPAOWiiI,EAAmD,CAC7Dj7F,YAAa,EACbD,OAAQ,IACRD,OAAQ,IACRlB,KAAM,KACN3f,IAAK,MACLC,KAAM,OACNsP,MAAO,OACP/O,KAAM,SAYD,SAAUy7G,EAAY/tG,GAC3B,OAAQA,GACP,IAAK,OACJ,OAED,IAAK,QACJ,MAAO,OAER,IAAK,OAGL,IAAK,MACJ,MAAO,QAER,IAAK,OACJ,MAAO,MAER,IAAK,SACJ,MAAO,OAER,IAAK,SACJ,MAAO,SAER,IAAK,cACJ,MAAO,UAeJ,SAAUk9F,EAAYl9F,EAAgBp1B,GAI3C,OAHK,IAAeA,KACnBA,EAAQ,GAEFkjI,EAAkB9tG,GAAQp1B,EAiB5B,SAAU0mB,IACf,OATO,IAAIH,MASEG,UAUR,SAAU7X,EAAK+X,GACpB,OAAO,IAAIL,KAAKK,EAAKF,WAahB,SAAU08G,EAAYC,EAAeC,EAAeluG,EAAgBvO,GAEzEw8G,EAAU,IAAI98G,KAAK88G,EAAQ38G,WAC3B48G,EAAU,IAAI/8G,KAAK+8G,EAAQ58G,WAE3B,IAAI68G,EAAkB,EAClBC,EAAkB,EAEjB38G,GAAe,eAARuO,IACXmuG,EAAkBF,EAAQr8G,oBAC1Bq8G,EAAQv+F,cAAcu+F,EAAQt+F,gBAAkBw+F,GAEhDC,EAAkBF,EAAQt8G,oBAC1Bs8G,EAAQx+F,cAAcw+F,EAAQv+F,gBAAkBy+F,IAGjD,IAAIp0D,GAAU,EACd,OAAQh6C,GACP,IAAK,OACAiuG,EAAQhoG,kBAAoBioG,EAAQjoG,mBACvC+zC,GAAU,GAEX,MACD,IAAK,SACAi0D,EAAQhoG,kBAAoBioG,EAAQjoG,kBAG/BgoG,EAAQ79F,eAAiB89F,EAAQ99F,iBAFzC4pC,GAAU,GAKX,MAED,IAAK,OACAi0D,EAAQ79F,eAAiB89F,EAAQ99F,eAG5B69F,EAAQ59F,cAAgB69F,EAAQ79F,gBAFxC2pC,GAAU,GAMX,MAED,IAAK,OACAi0D,EAAQI,eAAiBH,EAAQG,gBACpCr0D,GAAU,GAEX,MAED,IAAK,SACAi0D,EAAQt+F,iBAAmBu+F,EAAQv+F,kBACtCqqC,GAAU,GAGX,MAED,IAAK,SACAi0D,EAAQK,iBAAmBJ,EAAQI,kBACtCt0D,GAAU,GAEX,MAED,IAAK,cACAi0D,EAAQ38G,WAAa48G,EAAQ58G,YAChC0oD,GAAU,GAKb,GAAIA,EACH,OAAO,EAGR,IAAIu0D,EAAqCR,EAAY/tG,GACrD,QAAIuuG,IACHN,EAAQv+F,cAAcu+F,EAAQt+F,gBAAkBw+F,GAChDD,EAAQx+F,cAAcw+F,EAAQv+F,gBAAkBy+F,GACzCJ,EAAYC,EAASC,EAASK,EAAU98G,IAgB3C,SAAU1b,EAAIyb,EAAYwO,EAAgBp1B,EAAe6mB,GAC9D,IAAI+8G,EAAiB,EAOrB,OALK/8G,GAAe,eAARuO,IACXwuG,EAAiBh9G,EAAKI,oBACtBJ,EAAKke,cAAcle,EAAKme,gBAAkB6+F,IAGnCxuG,GACP,IAAK,MACJ,IAAIlO,EAAcN,EAAK6e,aACvB7e,EAAKi9G,WAAW38G,EAAMlnB,GACtB,MAED,IAAK,SACJ,IAAIw+B,EAAkB5X,EAAK88G,gBAC3B98G,EAAKk9G,cAActlG,EAAUx+B,GAC7B,MAED,IAAK,cACJ,IAAImpC,EAAuBviB,EAAKm9G,qBAChCn9G,EAAKo9G,mBAAmB76F,EAAenpC,GACvC,MAED,IAAK,OACJ,IAAI8nB,EAAgBlB,EAAK68G,cACzB78G,EAAKq9G,YAAYn8G,EAAQ9nB,GACzB,MAED,IAAK,SACJ,IAAIq+B,EAAkBzX,EAAKme,gBAC3Bne,EAAKke,cAAczG,EAAUr+B,GAC7B,MAED,IAAK,OACJ,IAAI0nB,EAAed,EAAKyU,iBACxBzU,EAAKgB,eAAeF,EAAO1nB,GAC3B,MAED,IAAK,QACJ,IAAIy2B,EAAgB7P,EAAK4e,cACzB5e,EAAKs9G,YAAYztG,EAAQz2B,GACzB,MAED,IAAK,OACJ,IAAImkI,EAAev9G,EAAK6e,aACxB7e,EAAKi9G,WAAWM,EAAe,EAARnkI,GAGzB,IAAK6mB,GAAe,eAARuO,IACXxO,EAAKke,cAAcle,EAAKme,gBAAkB6+F,GAE9B,OAARxuG,GAAyB,QAARA,GAA0B,SAARA,GAA2B,QAARA,GAAgB,CACzE,IAAIgvG,EAAoBx9G,EAAKI,oBAC7B,GAAIo9G,GAAqBR,EAAgB,CACxC,IAAI78G,EAAOq9G,EAAoBR,EAE/Bh9G,EAAKke,cAAcle,EAAKme,gBAAkBhe,GAEtCH,EAAKI,qBAAuBo9G,GAC/Bx9G,EAAKke,cAAcle,EAAKme,gBAAkBhe,IAM9C,OAAOH,EAaF,SAAUhtB,EAAMgtB,EAAYwO,EAAgBp1B,EAAeqkI,EAA0Bx9G,EAAey9G,GAEpG,IAAetkI,KACnBA,EAAQ,GAGT,IAAI4jI,EAAiB,EAOrB,OALK/8G,GAAe,eAARuO,IACXwuG,EAAiBh9G,EAAKI,oBACtBJ,EAAKke,cAAcle,EAAKme,gBAAkB6+F,IAGnCxuG,GAEP,IAAK,MACJ,IAAIlO,EAAMN,EAAK6e,aAEf,GAAIzlC,EAAQ,GAEX,GAAIskI,EAAW,CACdA,EAAY1qI,EAAM0qI,EAAW,MAAO,GAEpC,IAAIjuC,EAAazvE,EAAKF,UAAY49G,EAAU59G,UACxC69G,EAAYnrI,KAAKU,MAAMu8F,EAAai8B,EAAY,OAAStyH,GACzD4oC,EAAW0pF,EAAY,MAAOiS,EAAYvkI,GAC9C4mB,EAAKyjB,QAAQi6F,EAAU59G,UAAYkiB,EAAWg7F,EAAiBtR,EAAY,iBAI5E1rG,EAAKi9G,WAAW38G,GAEjBN,EAAKq9G,YAAY,EAAG,EAAG,EAAG,GAE1B,MAED,IAAK,SACJ,IAAIzlG,EAAU5X,EAAK88G,gBACf1jI,EAAQ,IACXw+B,EAAUplC,KAAKU,MAAM0kC,EAAUx+B,GAASA,GAEzC4mB,EAAKk9G,cAActlG,EAAS,GAC5B,MAED,IAAK,cACJ,GAAa,GAATx+B,EACH,OAAO4mB,EAGR,IAAIuiB,EAAeviB,EAAKm9G,qBACxB56F,EAAe/vC,KAAKU,MAAMqvC,EAAenpC,GAASA,EAClD4mB,EAAKo9G,mBAAmB76F,GACxB,MAED,IAAK,OAEJ,IAAIrhB,EAAQlB,EAAK68G,cACbzjI,EAAQ,IACX8nB,EAAQ1uB,KAAKU,MAAMguB,EAAQ9nB,GAASA,GAErC4mB,EAAKq9G,YAAYn8G,EAAO,EAAG,EAAG,GAE9B,MAED,IAAK,SAEJ,IAAIuW,EAAUzX,EAAKme,gBACnBoE,EAAeviB,EAAKm9G,qBAChB/jI,EAAQ,IACXq+B,EAAUjlC,KAAKU,MAAMukC,EAAUr+B,GAASA,GAGzC4mB,EAAKke,cAAczG,EAAS,EAAG,GAE/B,MAED,IAAK,QAEJ,IAAI5H,EAAQ7P,EAAK4e,cACbxlC,EAAQ,IACXy2B,EAAQr9B,KAAKU,MAAM28B,EAAQz2B,GAASA,GAGrC4mB,EAAKs9G,YAAYztG,EAAO,GACxB7P,EAAKq9G,YAAY,EAAG,EAAG,EAAG,GAE1B,MAED,IAAK,OAEJ,IAAIv8G,EAAOd,EAAKyU,iBACZr7B,EAAQ,IACX0nB,EAAOtuB,KAAKU,MAAM4tB,EAAO1nB,GAASA,GAEnC4mB,EAAKgB,eAAeF,EAAM,EAAG,GAC7Bd,EAAKq9G,YAAY,EAAG,EAAG,EAAG,GAK1B,MAGD,IAAK,OAEJ,IAAIE,EAAOv9G,EAAK6e,aACZ++F,EAAU59G,EAAK8U,YAEd,IAAe2oG,KACnBA,EAAkB,GAKlBF,EADGK,GAAWH,EACPF,EAAOK,EAAUH,EAEjBF,GAAQ,EAAIK,GAAWH,EAG/Bz9G,EAAKi9G,WAAWM,GAChBv9G,EAAKq9G,YAAY,EAAG,EAAG,EAAG,GAI5B,IAAKp9G,GAAe,eAARuO,IACXxO,EAAKke,cAAcle,EAAKme,gBAAkB6+F,GAE9B,OAARxuG,GAAyB,QAARA,GAA0B,SAARA,GAA2B,QAARA,GAAgB,CACzE,IAAIgvG,EAAoBx9G,EAAKI,oBAC7B,GAAIo9G,GAAqBR,EAAgB,CACxC,IAAI78G,EAAOq9G,EAAoBR,EAE/Bh9G,EAAKke,cAAcle,EAAKme,gBAAkBhe,IAK7C,OAAOH,I,6BC3aR,oEA4EA,cAsCC,mBACC,cAAO,K,OAjCE,EAAA69G,UAA2B,CACpCv0E,OAAQ,YAAM,WACd3S,KAAM,YAAM,WAEZmnF,cAAe,YAAM,WACrBC,mBAAoB,YAAM,WAC1BC,kBAAmB,YAAM,WACzBC,oBAAqB,YAAM,WAC3BC,kBAAmB,YAAM,WACzBC,oBAAqB,YAAM,WAE3BC,gBAAiB,YAAM,WACvBC,qBAAsB,YAAM,WAAW5lF,UAAU,KACjD6lF,oBAAqB,YAAM,WAAW7lF,UAAU,KAChD8lF,sBAAuB,YAAM,WAAW9lF,SAAS,KACjD+lF,oBAAqB,YAAM,WAE3BC,sBAAuB,YAAM,WAE7Br1C,KAAM,YAAM,WACZppB,WAAY,YAAM,WAClB0+D,sBAAuB,YAAM,WAC7BlhH,KAAM,YAAM,WACZmhH,gBAAiB,YAAM,WACvBC,mBAAoB,YAAM,WAC1BC,SAAU,YAAM,WAChBz/G,SAAU,YAAM,YAQhB,EAAK42B,UAAY,oBACjB,EAAK4O,a,EAkCP,OA3EuC,iBA4C5B,YAAAk6E,MAAV,aAiBO,YAAAj6D,OAAP,SAAck6D,GACb,OAAO9jI,KAAK4iI,UAAUkB,IAShB,YAAAC,OAAP,SAAcD,EAA8B/mF,GAC3C/8C,KAAK4iI,UAAUkB,GAAW/mF,GAG5B,EA3EA,CAAuC,KAmFvC,IAAS39C,kBAAT,kBAAkD20E,G,6GC/JlD,SAASl6B,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAEnX,SAASgT,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAIhT,SAASy1C,EAAkBz3C,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAM7S,SAASkB,EAAgBz0C,EAAG9C,GAA+G,OAA1Gu3C,EAAkB13C,OAAOC,gBAAkB,SAAyBgD,EAAG9C,GAAsB,OAAjB8C,EAAE/C,UAAYC,EAAU8C,IAA6BA,EAAG9C,GAErK,SAASm3C,EAAaC,GAAW,IAAI+pF,EAMrC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GANzPq1C,GAA6B,OAAO,WAAkC,IAAsCn1C,EAAlC21C,EAAQT,EAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,EAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,EAA2B95C,KAAMuE,IAE5Z,SAASu1C,EAA2B1zC,EAAMnQ,GAAQ,OAAIA,GAA2B,WAAlB4jD,EAAQ5jD,IAAsC,oBAATA,EAEpG,SAAgCmQ,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbD,CAAuBC,GAAtCnQ,EAMnI,SAASwjD,EAAgB9zC,GAAwJ,OAAnJ8zC,EAAkB/2C,OAAOC,eAAiBD,OAAOoE,eAAiB,SAAyBnB,GAAK,OAAOA,EAAE/C,WAAaF,OAAOoE,eAAenB,KAA8BA,GAMjM,IAEHs+H,EAA8B,SAAUC,IApB5C,SAAmB5pF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,sDAAyD80C,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUrxC,UAAU,EAAMC,cAAc,KAAeqxC,GAAYH,EAAgBE,EAAUC,GAqBjXF,CAAU4pF,EAAgBC,GAE1B,IAzBoBp3G,EAAassB,EAAYC,EAyBzC8qF,EAASnqF,EAAaiqF,GAE1B,SAASA,EAAe1pH,GACtB,IAAIrL,EAOJ,OAvCJ,SAAyB2d,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAkC5GonB,CAAgB5sB,KAAMikI,GAEtB/0H,EAAQi1H,EAAOluI,KAAK+J,KAAMua,GAC1B6pH,YAAoB7pH,EAAMwT,QAAUxT,EAAMwT,OAAOs2G,OACjDC,YAdkB,iBAcP/pH,EAAMgqH,YAA0B,iBAAkB,iHACtDr1H,EA+BT,OAlEoB4d,EAsCPm3G,GAtCoB7qF,EAsCJ,CAAC,CAC5Bt4C,IAAK,qBACLjL,MAAO,SAA4B2uI,GACjC,IAAIz2G,EAAS/tB,KAAKua,MAAMwT,OAEpBy2G,EAAUz2G,SAAWA,GACvBq2G,YAAoBr2G,GAAUA,EAAOs2G,SAGxC,CACDvjI,IAAK,uBACLjL,MAAO,WACLuuI,gBAED,CACDtjI,IAAK,SACLjL,MAAO,WACL,IAAI4uI,EAAczkI,KAAKua,MACnBwT,EAAS02G,EAAY12G,OACrB3X,EAAWquH,EAAYruH,SAC3B,OAAoB3B,gBAAoBiwH,IAAczuH,SAAU,CAC9DpgB,MAAOskB,EAASA,EAAS,GAAI4T,GAAS,CACpC42G,OAAO,KAERvuH,QA9DqE6iC,EAAkBnsB,EAAY5pB,UAAWk2C,GAAiBC,GAAaJ,EAAkBnsB,EAAausB,GAkE3K4qF,EA5CyB,CA6ChCxvH,aAGFwvH,EAAeW,aAAe,CAC5B72G,OAAQ,I,8CC/EV,SAAS5T,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAezS,IAAIqhI,EAAsB,CAAC,qBAAsB,oBAAqB,gBAAiB,eAAgB,cAAe,MAAO,0BAA2B,SAAU,cA0G1JC,IAxGM,SAAwBvqH,GAC3C9F,aAAgB,WACV8F,EAAMivB,YACRu8B,IAAQv3D,OAAO,CACbkU,IAAyB,QAApBnI,EAAMivB,YAEbu7F,IAAav2H,OAAO,CAClBkU,IAAyB,QAApBnI,EAAMivB,eAGd,CAACjvB,EAAMivB,YAEV,IAAIw7F,EAAsB,SAA6B7uH,GACrD,OAAO,SAAU8uH,EAAWC,GAC1B,IAAIC,EAAY5qH,EAAM4qH,UACtB,GAAID,EAAoB,OAAOA,EAC/B,IAAIE,EAAkBD,GAAahvH,EAAQkvH,aAAa,IACxD,OAAOJ,EAAY,GAAG/+H,OAAOk/H,EAAiB,KAAKl/H,OAAO++H,GAAaG,IAgF3E,OAAoB3wH,gBAAoB6wH,IAAgB,MAAM,SAAUxgI,EAAG9B,EAAIuiI,GAC7E,OAAoB9wH,gBAAoB+wH,IAAgB,MAAM,SAAUrvH,GACtE,OA9EiB,SAAwBA,EAASovH,GACpD,IAAInvH,EAAWmE,EAAMnE,SACjBqvH,EAAqBlrH,EAAMkrH,mBAC3BC,EAAoBnrH,EAAMmrH,kBAC1BC,EAAcprH,EAAMorH,YACpBC,EAAMrrH,EAAMqrH,IACZC,EAA0BtrH,EAAMsrH,wBAChCC,EAAOvrH,EAAMurH,KACbt6G,EAAQjR,EAAMiR,MACduC,EAASxT,EAAMwT,OACfg4G,EAAaxrH,EAAMwrH,WACnBC,EAAgBzrH,EAAMyrH,cACtBx8F,EAAYjvB,EAAMivB,UAClBy8F,EAAQ1rH,EAAM0rH,MACdC,EAAU3rH,EAAM2rH,QAChBC,EAA2B5rH,EAAM4rH,yBAEjC33H,EAAS2L,EAASA,EAAS,GAAIhE,GAAU,CAC3CkvH,aAAcL,EAAoB7uH,GAClCyvH,IAAKA,EACLC,wBAAyBA,EACzB93G,OAAQA,GAAUw3G,EAClB/7F,UAAWA,EACXy8F,MAAOA,EACPC,QAASA,EACTC,yBAA0BA,IAGxBV,IACFj3H,EAAOi3H,mBAAqBA,GAG1BC,IACFl3H,EAAOk3H,kBAAoBA,GAGzBC,IACFn3H,EAAOm3H,YAAcA,GAGnBI,IACFv3H,EAAOu3H,WAAaA,GAGlBv6G,IACFhd,EAAOgd,MAAQA,GAGjB,IAAI46G,EAAYhwH,EAEZiwH,EAAmB,GAgBvB,OAdIt4G,GAAUA,EAAOu4G,MAAQv4G,EAAOu4G,KAAKC,0BACvCF,EAAmBt4G,EAAOu4G,KAAKC,yBAG7BT,GAAQA,EAAKO,mBACfA,EAAmBlsH,EAASA,EAAS,GAAIksH,GAAmBP,EAAKO,mBAG/D3jI,OAAO6E,KAAK8+H,GAAkBlqI,OAAS,IACzCiqI,EAAyB3xH,gBAAoB+xH,eAAgB,CAC3DH,iBAAkBA,GACjBjwH,IAGe3B,gBAAoBgyH,IAAqB,CAC3DruD,KAAM4tD,GACQvxH,gBAAoBiyH,IAAczwH,SAAU,CAC1DpgB,MAAO2Y,GACOiG,gBAAoBwvH,EAAgB,CAClDl2G,OAAQA,GAAUw3G,EAClBhB,YDlFgB,gBCmFf6B,KAKMO,CAAexwH,EAASovH,W,kGChHtB,SAAShkF,EAAmB/wC,GACzC,OCJa,SAA4BA,GACzC,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAO,OAAAgxC,EAAA,GAAiBhxC,GDGzC,CAAkBA,IAAQ,OAAAo2H,EAAA,GAAgBp2H,IAAQ,OAAAQ,EAAA,GAA2BR,IELvE,WACb,MAAM,IAAIhL,UAAU,wIFIwE,K,6BGL9F,uLAgHA,cAwKC,mBAGC,cAAO,K,OAvJE,EAAAqhI,oBAA8B,EAK9B,EAAAC,eAAiB,CAC1B,YAAe,YACf,UAAa,UACb,YAAe,YACf,cAAiB,UACjB,YAAe,YACf,WAAc,WACd,MAAS,SAQA,EAAAC,uBAAiC,EAKjC,EAAAC,qBAA+B,EAO/B,EAAAC,iBAA2B,EAK3B,EAAAC,mBAA6B,EAK7B,EAAAC,eAA2C,CAAEv0F,IAAK,IAKrD,EAAAw0F,YAAuC,IAAI,IAK3C,EAAAC,YAAuC,IAAI,IAK3C,EAAAC,eAA0C,IAAI,IAK9C,EAAAC,mBAA8C,IAAI,IAWlD,EAAAC,SAAW,IAAI,IAiBf,EAAA9pE,eAAiB,IAAI,IAMrB,EAAAmB,WAA0B,CAEhC,cAAiB,IAEjB,aAAgB,GAChB,SAAW,GAOL,EAAAP,aAA8B,CACpC,iBAAoB,QACpB,cAAiB,KAOX,EAAAmB,aAA8B,CACpC,KAAQ,IACR,kBAAqB,GACrB,oBAAuB,IAOjB,EAAAhD,gBAAoC,CAC1C,MAAS,GACT,cAAiB,IACjB,mBAAsB,KAShB,EAAAC,aAA8B,CACpC,YAAe,GAcf,EAAK3hB,UAAY,cAGjB,EAAKp2C,KAAO,EAAKk4D,eAAe9lD,SAASpS,MAEzC,EAAKukD,WAAW1qD,KAAK,EAAKmG,MAGtBmS,OAAOhU,eAAe,iBAEzB,EAAKgkI,eAAeW,YAAc,cAClC,EAAKX,eAAeY,UAAY,YAChC,EAAKZ,eAAea,YAAc,cAClC,EAAKb,eAAec,cAAgB,gBACpC,EAAKd,eAAee,YAAc,cAClC,EAAKf,eAAegB,WAAa,cAEvBhxH,OAAOhU,eAAe,mBAEhC,EAAKgkI,eAAeW,YAAc,gBAClC,EAAKX,eAAeY,UAAY,cAChC,EAAKZ,eAAea,YAAc,gBAClC,EAAKb,eAAec,cAAgB,cACpC,EAAKd,eAAee,YAAc,gBAClC,EAAKf,eAAegB,WAAa,gBAGF,qBAAfC,YAA+BA,WAAW,kBAAkBv7G,QAMxE,iBAAkB1V,SACrB,EAAKmwH,iBAAkB,EACvB,EAAKD,qBAAsB,GAGpBlwH,OAAO2qE,UAAUC,UAAU/iE,MAAM,UAIjC,EAAKqpH,SAFb,EAAKjB,uBAAwB,EAW7B,EAAKC,qBAAsB,EAWxB,YAAajwH,SAASH,cAAc,OAEvC,EAAKkwH,eAAemB,MAAQ,QAEpB,IAAqBlxH,SAAUmxH,gBAEvC,EAAKpB,eAAemB,MAAQ,cAI7B,EAAKvqE,eAAexN,OAAO,OAAQ,CAClC,KAAQ,IACR,SAAY,IACZ,OAAU,EACV,OAAU,MAEX,EAAKwN,eAAexN,OAAO,SAAU,CACpC,KAAQ,IACR,SAAY,IACZ,OAAU,EACV,OAAU,MAIX,EAAKg3E,kBAAoBiB,EAAYC,iBAGrC,EAAKz+E,a,EA64FP,OAppGiC,iBAkRtB,YAAAq+E,OAAV,WACC,OAAQlxH,OAAO2qE,UAAUC,UAAU/iE,MAAM,aAAiB7H,OAAO2qE,UAAUC,UAAU/iE,MAAM,YAGlF,YAAAklH,MAAV,aAiBO,YAAAwE,gBAAP,sBACMroI,KAAK6mI,qBAEJ7mI,KAAKgnI,sBACThnI,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA/W,KAAK8mI,eAAeW,aACpB,SAAC7uE,GAAqB,EAAK0vE,wBAAwB1vE,OAGpD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA/W,KAAK8mI,eAAea,aACpB,SAAC/uE,GAAqB,EAAK2vE,wBAAwB3vE,OAGpD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA/W,KAAK8mI,eAAeY,WACpB,SAAC9uE,GAAqB,EAAK4vE,sBAAsB5vE,OAGlD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA/W,KAAK8mI,eAAec,eACpB,SAAChvE,GAAqB,EAAK4vE,sBAAsB5vE,GAAI,OAGtD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,cACA,SAAC6hD,GACK,IAAeA,EAAG6vE,gBAAiC,GAAd7vE,EAAG8vE,SAA4B,GAAZ9vE,EAAG+vE,OAC/D,EAAKC,oBAAoBhwE,QASxB54D,KAAK+mI,wBACT/mI,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,cACA,SAAC6hD,GAAqB,EAAKiwE,uBAAuBjwE,OAGnD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,aACA,SAAC6hD,GAAqB,EAAKkwE,sBAAsBlwE,OAGlD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,YACA,SAAC6hD,GAAqB,EAAKmwE,qBAAqBnwE,QAIlD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,WACA,SAAC6hD,GAAwB,EAAKowE,oBAAoBpwE,OAGnD54D,KAAKkpD,WAAW1qD,KAAK,YACpBuY,SACA,SACA,SAAC6hD,GAAwB,EAAKqwE,kBAAkBrwE,OAGjD54D,KAAK6mI,oBAAqB,IAUrB,YAAAqC,iBAAP,SAAwBC,GAEvBnpI,KAAKopI,iBAAiBD,IAShB,YAAAE,mBAAP,SAA0BF,GACrBA,EAAGhsE,oBACDgsE,EAAGG,eAAenrF,OAAO,wBAC7BgrF,EAAGG,eAAep5E,OAAO,sBACxB,YAA4Ci5E,EAAGzgH,QAAS,eAAe,SAACrkB,GACvEA,EAAE46H,qBAMDkK,EAAGG,eAAenrF,OAAO,wBAC5BgrF,EAAGG,eAAepqF,OAAO,uBAAuBW,WAW5C,YAAA0pF,iBAAP,SAAwBJ,GAAxB,WACC,GAAIA,EAAG1zE,WAAa0zE,EAAGrsE,UAGtB98D,KAAKqoI,kBAGLroI,KAAKugE,qBAAqB4oE,IAGrBA,EAAGG,eAAenrF,OAAO,cAAgBn+C,KAAKinI,iBAClDkC,EAAGG,eAAep5E,OAAO,YAAa,IAAI,IAAc,CACvD,YAA4Ci5E,EAAGzgH,QAAS1oB,KAAK8mI,eAAegB,YAAY,SAACzjI,GAAM,SAAKmlI,iBAAiBL,EAAtB,MAC/F,YAA4CA,EAAGzgH,QAAS1oB,KAAK8mI,eAAee,aAAa,SAACxjI,GAAM,SAAKolI,kBAAkBN,EAAvB,SAI9FA,EAAGrsE,cAID,CACN,IAAM7a,EAAWknF,EAAGG,eAAepqF,OAAO,aAE1B,MAAZ+C,IACHA,EAASpC,UACTspF,EAAGG,eAAe96E,UAAU,cAK9BxuD,KAAKopI,iBAAiBD,IAUhB,YAAAO,eAAP,SAAsBP,IAGjBA,EAAGpsE,WAAaosE,EAAGnsE,WAAamsE,EAAGrsE,WAAaqsE,EAAGlsE,aAGjDj9D,KAAK2pI,gBAAgBR,IAAQA,EAAGprE,kBACpC/9D,KAAK4pI,YAAYT,GAIlBnpI,KAAKugE,qBAAqB4oE,IAK3BnpI,KAAKopI,iBAAiBD,IAUhB,YAAAU,iBAAP,SAAwBV,GACvBnpI,KAAKupI,iBAAiBJ,GACtBnpI,KAAK0pI,eAAeP,GAChBA,EAAGrsE,UACN98D,KAAKsnI,eAAe1mF,UAAUuoF,GAG9BnpI,KAAKsnI,eAAernF,YAAYkpF,IAU3B,YAAAW,iBAAP,SAAwBX,GACvBnpI,KAAK0pI,eAAeP,IAad,YAAAY,iBAAP,SAAwBZ,GACvBnpI,KAAK0pI,eAAeP,IAUd,YAAAa,iBAAP,SAAwBb,GACvBnpI,KAAK0pI,eAAeP,IAUd,YAAAc,iBAAP,SAAwBd,GAAxB,WACC,GAAIA,EAAGjsE,UAEDisE,EAAGG,eAAenrF,OAAO,cAC7BgrF,EAAGG,eAAep5E,OAAO,YAAa,IAAI,IAAc,CACvD,YACCi5E,EAAGzgH,QACH1oB,KAAK8mI,eAAemB,OACpB,SAAC5jI,GAAM,SAAK6lI,iBAAiBf,EAAtB,OACPnpI,KAAKknI,mBAAoB,CAAEiD,SAAS,IAErChB,EAAGnqI,OAAOmgD,GAAG,OAAO,SAAC96C,GAChB8kI,EAAGjsE,WACN,EAAKktE,iBAGPjB,EAAGnqI,OAAOmgD,GAAG,QAAQ,SAAC96C,GACjB8kI,EAAGjsE,WACN,EAAKmtE,sBAMH,CACN,IAAMpoF,EAAWknF,EAAGG,eAAepqF,OAAO,aAE1B,MAAZ+C,IACHA,EAASpC,UACTspF,EAAGG,eAAe96E,UAAU,gBAcxB,YAAA87E,iBAAP,SAAwBnB,GAAxB,WACC,IAAqB,IAAjBA,EAAGh4E,WAAuBg4E,EAAG/3E,UAAY,IAAOpxD,KAAKgnI,oBACnDmC,EAAGG,eAAenrF,OAAO,cAC7BgrF,EAAGG,eAAep5E,OAAO,YAAa,IAAI,IAAc,CACvD,YAA6Bi5E,EAAGzgH,QAAS,SAAS,SAACrkB,GAAM,SAAK0zD,YAAYoxE,EAAjB,MACzD,YAA6BA,EAAGzgH,QAAS,QAAQ,SAACrkB,GAAM,SAAK2zD,WAAWmxE,EAAhB,MACxD,YACCA,EAAGzgH,QACH1oB,KAAK8mI,eAAeW,aACpB,SAACpjI,GAAM,SAAKkmI,gBAAgBpB,EAArB,MAGR,YACCA,EAAGzgH,QACH,cACA,SAACrkB,GAAM,SAAKkmI,gBAAgBpB,EAArB,OACPnpI,KAAKknI,mBAAoB,CAAEiD,SAAS,WAKnC,CACJ,IAAMloF,EAAWknF,EAAGG,eAAepqF,OAAO,aAE1B,MAAZ+C,IACHA,EAASpC,UACTspF,EAAGG,eAAe96E,UAAU,gBAYxB,YAAA46E,iBAAP,SAAwBD,GAAxB,WAGC,GAAIA,EAAGzzE,WAAayzE,EAAG1zE,WAAa0zE,EAAGrsE,WAAaqsE,EAAGpsE,WAAaosE,EAAGnsE,WAAamsE,EAAGlsE,UAGtFj9D,KAAKqoI,kBAGAc,EAAGG,eAAenrF,OAAO,eACxBn+C,KAAKgnI,qBAAwBhnI,KAAK+mI,sBAkB7B/mI,KAAKgnI,oBASLhnI,KAAK+mI,uBACdoC,EAAGG,eAAep5E,OAAO,YACxB,YACCi5E,EAAGzgH,QACH,cACA,SAACrkB,GAAM,SAAKmmI,gBAAgBrB,EAArB,OACPnpI,KAAKknI,mBAAoB,CAAEiD,SAAS,KAdtChB,EAAGG,eAAep5E,OAAO,YACxB,YACCi5E,EAAGzgH,QACH1oB,KAAK8mI,eAAeW,aACpB,SAACpjI,GAAM,SAAKomI,kBAAkBtB,EAAvB,OAtBTA,EAAGG,eAAep5E,OAAO,YAAa,IAAI,IAAc,CAEvD,YACCi5E,EAAGzgH,QACH1oB,KAAK8mI,eAAeW,aACpB,SAACpjI,GAAM,SAAKomI,kBAAkBtB,EAAvB,MAGR,YACCA,EAAGzgH,QACH,cACA,SAACrkB,GAAM,SAAKmmI,gBAAgBrB,EAArB,OACPnpI,KAAKknI,mBAAoB,CAAEiD,SAAS,YA0BlC,CACN,IAAMloF,EAAWknF,EAAGG,eAAepqF,OAAO,aAE1B,MAAZ+C,IACHA,EAASpC,UACTspF,EAAGG,eAAe96E,UAAU,gBAoBxB,YAAAuJ,YAAP,SAAmBoxE,EAAuBvwE,GACzC,GAAKuwE,EAAGh4E,WAKR,GADAg4E,EAAGxyE,WAAY,EACXwyE,EAAGnqI,OAAOsC,UAAU,WAAa,IAAOopI,SAAU,CACrD,IAAIC,EAAsE,CACzEppI,KAAM,QACNC,OAAQ2nI,EACRhlF,MAAOyU,GAERuwE,EAAGnqI,OAAOyC,oBAAoB,QAASkpI,SAVvC/xE,EAAGqmE,kBAsBG,YAAAsL,gBAAR,SAAwBpB,EAAuBvwE,IACzB,IAAjBuwE,EAAGh4E,WAAuBnxD,KAAK6+H,aAAasK,EAAI,YACnDA,EAAGnqI,OAAOggE,KAAK,SAAS,WACvBmqE,EAAGnqI,OAAOo7E,YAAY,QACtB,MACI+uD,EAAG9oI,QACN8oI,EAAG9oI,OAAO23D,aAEXmxE,EAAGnqI,OAAOw7E,WAAW,YAYjB,YAAAxiB,WAAP,SAAkBmxE,EAAuBvwE,GACxC,GAAKuwE,EAAGh4E,WAKR,GADAg4E,EAAGxyE,WAAY,EACXwyE,EAAGnqI,OAAOsC,UAAU,UAAY,IAAOopI,SAAU,CACpD,IAAIC,EAAqE,CACxEppI,KAAM,OACNC,OAAQ2nI,EACRhlF,MAAOyU,GAERuwE,EAAGnqI,OAAOyC,oBAAoB,OAAQkpI,SAVtC/xE,EAAGqmE,kBA6BE,YAAA+J,oBAAP,SAA2BpwE,GAE1B,GAAI54D,KAAK4qI,cACR,GAAI,IAASxmD,MAAMxrB,EAAI,OAEtB,WAEI,GAAI54D,KAAK4qI,cAAc7tE,WAAa,IAASqnB,MAAMxrB,EAAI,CAAC,KAAM,OAAQ,OAAQ,UAAW,CAG7FA,EAAGqmE,iBAGH,IAAIkK,EAAKnpI,KAAK4qI,cAOd,GAAIzB,EAAGG,eAAenrF,OAJJ,6BAKjB,OAID,IAAI0sF,EAAK,IAAI,IAA0B1B,EAAIvwE,GAE3C,OADAuwE,EAAGG,eAAep5E,OAVA,4BAUoB26E,GAC9B,IAASC,YAAYlyE,IAC5B,IAAK,KACJiyE,EAAGE,YAAc,EACjB,MACD,IAAK,OACJF,EAAGE,WAAa,EAChB,MACD,IAAK,OACJF,EAAGG,YAAc,EACjB,MACD,IAAK,QACJH,EAAGG,WAAa,KAad,YAAA/B,kBAAP,SAAyBrwE,GAExB,GAAI54D,KAAK4qI,cAAe,CACvB,IAAM3oF,EAAWjiD,KAAK4qI,cAActB,eAAepqF,OAFlC,6BAID,MAAZ+C,IAEH2W,EAAGqmE,iBAGHh9E,EAASpC,UACT7/C,KAAK4qI,cAActB,eAAe96E,UAVlB,gCA4BZ,YAAA+5E,wBAAP,SAA+B3vE,GAE9B,IAAIuF,EAAoBn+D,KAAKirI,WAAWryE,GAMxC,GAHAuF,EAAQjjE,MAAQ8E,KAAKkrI,gBAAgBtyE,GAGjC54D,KAAKhB,OAAOsC,UAAU,WAAa,IAAOopI,SAAU,CACvD,IAAIC,EAAmD,CACtDppI,KAAM,QACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,QAASkpI,GAI1C3qI,KAAKmrI,cAAchtE,EAASA,EAAQjjE,OAGpC8E,KAAKorI,iBAAiBjtE,EAASvF,IASzB,YAAA0vE,wBAAP,SAA+B1vE,GAG9B54D,KAAKqrI,iBAGL,IAAIltE,EAAoBn+D,KAAKirI,WAAWryE,GAGxC,GAAI54D,KAAKhB,OAAOsC,UAAU,UAAY,IAAOopI,SAAU,CACtD,IAAIC,EAAkD,CACrDppI,KAAM,OACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,OAAQkpI,KAUnC,YAAAW,mBAAP,SAA0B1yE,GACpBA,EAAG2yE,kBACP3yE,EAAGqmE,kBAUE,YAAAuJ,sBAAP,SAA6B5vE,EAAgByF,QAAA,IAAAA,OAAA,GAG5C,IAAIF,EAAoBn+D,KAAKirI,WAAWryE,GAGxC,GAAI54D,KAAKhB,OAAOsC,UAAU,QAAU,IAAOopI,SAAU,CACpD,IAAIC,EAAgD,CACnDppI,KAAM,KACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,KAAMkpI,GAIvC3qI,KAAKwrI,eAAertE,EAASvF,EAAIyF,IAgB3B,YAAAyqE,sBAAP,SAA6BlwE,GAG5B,IAAK,IAAIv8D,EAAI,EAAGA,EAAIu8D,EAAG6yE,eAAetvI,OAAQE,IAAK,CAElD,IAAI8hE,EAAoBn+D,KAAKirI,WAAWryE,EAAG6yE,eAAepvI,IAM1D,GAHA8hE,EAAQjjE,MAAQ8E,KAAKkrI,gBAAgBtyE,EAAG6yE,eAAepvI,IAGnD2D,KAAKhB,OAAOsC,UAAU,WAAa,IAAOopI,SAAU,CACvD,IAAIC,EAAmD,CACtDppI,KAAM,QACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,QAASkpI,GAI1C3qI,KAAKmrI,cAAchtE,EAASA,EAAQjjE,OAGpC8E,KAAKorI,iBAAiBjtE,EAASvF,KAW1B,YAAAiwE,uBAAP,SAA8BjwE,GAG7B54D,KAAKqrI,iBAGL,IAAK,IAAIhvI,EAAI,EAAGA,EAAIu8D,EAAG6yE,eAAetvI,OAAQE,IAAK,CAGlD,IAAI8hE,EAAoBn+D,KAAKirI,WAAWryE,EAAG6yE,eAAepvI,IAG1D,IAAK2D,KAAK+mI,uBAAyB/mI,KAAKhB,OAAOsC,UAAU,UAAY,IAAOopI,SAAU,CACrF,IAAIC,EAAkD,CACrDppI,KAAM,OACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,OAAQkpI,MAapC,YAAA5B,qBAAP,SAA4BnwE,GAG3B,IAAK,IAAIv8D,EAAI,EAAGA,EAAIu8D,EAAG6yE,eAAetvI,OAAQE,IAAK,CAGlD,IAAI8hE,EAAoBn+D,KAAKirI,WAAWryE,EAAG6yE,eAAepvI,IAG1D,GAAI2D,KAAKhB,OAAOsC,UAAU,QAAU,IAAOopI,SAAU,CACpD,IAAIC,EAAgD,CACnDppI,KAAM,KACNC,OAAQxB,KACRmkD,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBh+D,KAAKhB,OAAOyC,oBAAoB,KAAMkpI,GAIvC3qI,KAAKwrI,eAAertE,EAASvF,KAqBxB,YAAA6xE,kBAAP,SAAyBtB,EAAuBvwE,GAU/C,IAAIuF,EAAUn+D,KAAKirI,WAAWryE,IAGzBuF,EAAQH,OAAqB,GAAZpF,EAAG+vE,OAA0B,GAAZ/vE,EAAG+vE,SAK1CxqE,EAAQ8W,OAASrc,EAAG+vE,MAGpB3oI,KAAK0rI,aAAavtE,EAASvF,GAG3B54D,KAAK63D,WAAWsxE,EAAIhrE,EAASvF,KAUvB,YAAA6wE,kBAAP,SAAyBN,EAAuBvwE,GAE/C,IAAIuF,EAAUn+D,KAAKirI,WAAWryE,GAG9B54D,KAAK03D,WAAWyxE,EAAIhrE,EAASvF,IAUvB,YAAA4wE,iBAAP,SAAwBL,EAAuBvwE,GAG9C,IAAIuF,EAAUn+D,KAAKirI,WAAWryE,GAG9B54D,KAAK43D,UAAUuxE,EAAIhrE,EAASvF,IAWtB,YAAAsxE,iBAAP,SAAwBf,EAAuBvwE,GAG9C,IAAIuF,EAAUn+D,KAAKirI,WAAWryE,GAG9BuF,EAAQjjE,MAAQ8E,KAAKkrI,gBAAgBtyE,GAGrC,IAAIi/B,EAAiB,EAAG6P,EAAiB,EAKrCikC,EAAM,EASV,GARoB,GAAhB/yE,EAAGgzE,YACND,EAAM,IAIPA,GAAO3rI,KAAK6rI,eAAe1C,EAAI,iBAG3BvwE,aAAckzE,YAIjB,MAAM,IAAI31I,MAAM,sBAHhB0hG,EAAStgG,KAAKQ,OAAQ,EAAU6gE,EAAImzE,aAAgBnzE,EAAGi/B,QAAU8zC,EACjEjkC,EAASnwG,KAAKQ,OAAQ,EAAU6gE,EAAIozE,aAAgBpzE,EAAG8uC,QAAUikC,EAMlE3rI,KAAK6lF,YAAYsjD,EAAIhrE,EAAS05B,EAAQ6P,EAAQ9uC,IAmBxC,YAAA4xE,gBAAP,SAAuBrB,EAAuBvwE,GAQ7C,IAAK,IAAIv8D,EAAI,EAAGA,EAAIu8D,EAAG6yE,eAAetvI,OAAQE,IAAK,CAGlD,IAAI8hE,EAAUn+D,KAAKirI,WAAWryE,EAAG6yE,eAAepvI,IAChD2D,KAAKisI,oBAAoB9C,EAAIvwE,EAAIuF,GAGjCn+D,KAAK0rI,aAAavtE,EAASvF,EAAG6yE,eAAepvI,IAG7C2D,KAAK63D,WAAWsxE,EAAIhrE,EAASvF,KAqBxB,YAAAitD,UAAP,SAAiBsjB,EAAuBhrE,EAAmBvF,GAG1D,IAAIn1B,EAAM,MACV,GAAI0lG,EAAG+C,SAAY/C,EAAG+C,SAAYzoG,EAAMzjC,KAAK6+H,aAAasK,EAAI,iBAAoB,CASjF,GAAK1lG,EAAM0lG,EAAG+C,QAAW,IAExB,OAQD,GAJA/C,EAAG+C,aAAUx/H,EACby8H,EAAGgD,oBAAiBz/H,EAGhBy8H,EAAGnqI,OAAOsC,UAAU,eAAiB,IAAOopI,SAAU,CACzD,IAAIC,EAA0E,CAC7EppI,KAAM,YACNC,OAAQ2nI,EACRjuI,MAAOijE,EAAQjjE,MACfipD,MAAOyU,EACPoF,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,YAAakpI,SAU5C,GAHAxB,EAAG+C,QAAUzoG,EACb0lG,EAAGgD,eAAiBhuE,EAEG,IAAnBA,EAAQ8W,QAEX,GAAIk0D,EAAGnqI,OAAOsC,UAAU,gBAAkB,IAAOopI,SAAU,CACtDC,EAA2E,CAC9EppI,KAAM,aACNC,OAAQ2nI,EACRhlF,MAAOyU,GAERuwE,EAAGnqI,OAAOyC,oBAAoB,aAAckpI,SAG7C,GAAIxB,EAAGnqI,OAAOsC,UAAU,SAAW,IAAOopI,SAAU,CAC/CC,EAAoE,CACvEppI,KAAM,MACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf8iE,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,MAAOkpI,KAiBlC,YAAAjzE,WAAP,SAAkByxE,EAAuBhrE,EAAmBvF,EAA6BwzE,GAExF,QAFwF,IAAAA,OAAA,GAEnFjD,EAAG1zE,YAKRz1D,KAAKqrI,iBAGLlC,EAAGkD,aAAazrF,UAAUud,IAGrBgrE,EAAGxxE,cAGPwxE,EAAGp1E,SAAU,EACbo1E,EAAGxxE,aAAc,EACjB33D,KAAKonI,YAAYxmF,UAAUuoF,GAK3BnpI,KAAKssI,YAAYtsI,KAAK2E,KAAMw5D,EAASvF,GAAI,GAGrCuwE,EAAGnqI,OAAOsC,UAAU,UAAY,IAAOopI,WAAU,CACpD,IAAIC,EAAqE,CACxEppI,KAAM,OACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,OAAQkpI,KAqBlC,YAAA/yE,UAAP,SAAiBuxE,EAAuBhrE,EAAmBvF,EAA6BwzE,EAAuBnO,GAA/G,WAEC,QAFuF,IAAAmO,OAAA,QAAuB,IAAAnO,OAAA,GAEzGkL,EAAG1zE,YAKR0zE,EAAGkD,aAAapsF,YAAYke,GAGxBgrE,EAAGp1E,WAAao1E,EAAGoD,eAAiBtO,IAAQ,CAI/C,GAAImO,GAAQjD,EAAGkD,aAAalwI,OAI3B,OAID,GAAIgiE,EAAQH,QAAUigE,IAAUj+H,KAAKwsI,IAAIruE,GAAU,CAIlD,IAAI+6C,EAAWl5G,KAAKysI,eAAetD,EAAI,oBACvC,GAAgB,SAAZjwB,EAYH,OARAl5G,KAAKmnI,eAAev0F,IAAIp0C,KAAK,CAC5B+C,KAAM,MACN4nI,GAAIA,EACJhrE,QAASA,EACTha,MAAOyU,EACP8zE,UAAW,MAAkB,WAE9BvD,EAAGoD,eAAgB,GAGf,GAAgB,SAAZrzB,GAAuBl5G,KAAKysI,eAAetD,EAAI,iBAWvD,YAVAnpI,KAAKmnI,eAAev0F,IAAIp0C,KAAK,CAC5B+C,KAAM,MACN4nI,GAAIA,EACJhrE,QAASA,EACTha,MAAOyU,EACP8zE,UAAW,MAAkB,IAC7BC,QAAS3sI,KAAK2+D,YAAW,WACxB,EAAK/G,UAAUuxE,EAAIhrE,EAASvF,GAAI,KAC9B54D,KAAKysI,eAAetD,EAAI,oBAe9B,GAJAA,EAAGp1E,SAAU,EACb/zD,KAAKonI,YAAYnnF,YAAYkpF,GAGzBA,EAAGnqI,OAAOsC,UAAU,SAAW,IAAOopI,SAAU,CACnD,IAAIC,EAAoE,CACvEppI,KAAM,MACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,MAAOkpI,GAItCxB,EAAGkD,aAAa9iI,QAChB4/H,EAAGoD,eAAgB,IAWb,YAAAlB,eAAR,WAGC,IAFA,IAAIuB,EAGHA,EAAe5sI,KAAKmnI,eAAev0F,IAAIntC,OAMnCmnI,EAAaD,SAChBC,EAAaD,QAAQ9sF,UAGtB7/C,KAAK43D,UAAUg1E,EAAazD,GAAIyD,EAAazuE,QAASyuE,EAAazoF,OAAO,GAAO,IAa5E,YAAA0T,WAAP,SAAkBsxE,EAAuBhrE,EAAmBvF,GA2C3D,GAxCA54D,KAAKisI,oBAAoB9C,EAAIvwE,EAAIuF,GAG7BgrE,EAAG/rE,OACNp9D,KAAK6sI,YAAY1D,GAKlBnpI,KAAK03D,WAAWyxE,EAAIhrE,EAASvF,GAAI,GAGjCuwE,EAAGzyE,aAAa9V,UAAUud,GAG1Bn+D,KAAK8sI,qBAAqB3D,EAAIhrE,GAGzBgrE,EAAG1yE,UAGc,IAAjB0yE,EAAGh4E,WAAuBnxD,KAAK6+H,aAAasK,EAAI,YAAcnpI,KAAK4qI,eACtE,MAIDzB,EAAG1yE,QAAS,EACZz2D,KAAKqnI,YAAYzmF,UAAUuoF,GAGvBA,EAAGpsE,WACN/8D,KAAK+sI,iBAAiB5D,EAAIhrE,EAASvF,GAEhCuwE,EAAGlsE,WACNj9D,KAAKgtI,mBAAmB7D,EAAIhrE,EAASvF,IAMnCuwE,EAAGnqI,OAAOsC,UAAU,UAAY,IAAOopI,SAAU,CACpD,IAAIC,EAAqE,CACxEppI,KAAM,OACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,OAAQkpI,KAYjC,YAAAa,eAAP,SAAsBrtE,EAAmBvF,EAAyCyF,GAAlF,gBAAkF,IAAAA,OAAA,GACjF,IAAM4uE,EAASjtI,KAAKqnI,YAAYtuI,OAAO4P,QAEvCskI,EAAOz0G,MAAK,SAACl+B,EAAGC,GACf,GAAID,GAAKC,EAAG,CACX,IAAMyiC,EAAM1iC,EAAEouB,QAAQwkH,wBAAwB3yI,EAAEmuB,SAEhD,OAAIsU,EAAMmwG,KAAKC,+BACP,EAEGpwG,EAAMmwG,KAAKE,4BACb,EAGD,EAIR,OAAO,KAKT,IAAYJ,GAAQ,SAAC9D,GAGhBA,GAAMA,EAAGzyE,aAAane,SAAS4lB,IAClC,EAAKrG,SAASqxE,EAAIhrE,EAASvF,EAAIyF,OAY3B,YAAAuqE,oBAAP,SAA2BhwE,GAA3B,WAGC,IAAW54D,KAAKqnI,YAAYroF,YAAY35C,YAAY,SAAC8jI,GACpDA,EAAGzyE,aAAaxvD,MAAK,SAACi3D,GACrB,EAAKrG,SAASqxE,EAAIhrE,EAASvF,UAcvB,YAAAd,SAAP,SAAgBqxE,EAAuBhrE,EAAmBvF,EAA6ByF,GAetF,QAfsF,IAAAA,OAAA,GAGtFr+D,KAAKstI,uBAAuBnE,EAAIhrE,GAGhCgrE,EAAGzyE,aAAazW,YAAYke,IAIxBA,EAAQH,OAASh+D,KAAKgnI,sBACzBhnI,KAAK43D,UAAUuxE,EAAIhrE,EAASvF,GAAI,GAI7BuwE,EAAG1yE,OAAQ,CAUd,GAP8B,GAA1B0yE,EAAGzyE,aAAav6D,SAEnBgtI,EAAG1yE,QAAS,EACZz2D,KAAKqnI,YAAYpnF,YAAYkpF,IAI1BA,EAAGnqI,OAAOsC,UAAU,QAAU,IAAOopI,SAAU,CAClD,IAAIC,EAAmE,CACtEppI,KAAM,KACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPuF,QAASA,EACTH,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,KAAMkpI,GAOhCtsE,IAGA8qE,EAAGnsE,WAAah9D,KAAKutI,OAAOpE,EAAIhrE,GAEnCn+D,KAAKwtI,YAAYrE,EAAIhrE,EAASvF,IAI1BuwE,EAAGzzE,YAAc11D,KAAKytI,MAAMtvE,EAASn+D,KAAK6+H,aAAasK,EAAI,kBAC9DnpI,KAAK6lH,UAAUsjB,EAAIhrE,EAASvF,GAIzBuwE,EAAG/rE,OAASp9D,KAAKytI,MAAMtvE,EAASn+D,KAAK6+H,aAAasK,EAAI,iBACzDnpI,KAAK0tI,cAAcvE,EAAIhrE,GAEfgrE,EAAGpsE,WACX/8D,KAAK2tI,gBAAgBxE,EAAIhrE,EAASvF,GAG/BuwE,EAAGlsE,WACNj9D,KAAK4tI,kBAAkBzE,EAAIhrE,EAASvF,OAkBjC,YAAAqzE,oBAAR,SAA4B9C,EAAuBvwE,EAAyCuF,IAE1F,IAAevF,MACXuwE,EAAGpsE,WAAaosE,EAAGnsE,WAAamsE,EAAGrsE,WAAaqsE,EAAGlsE,YACnDj9D,KAAK2pI,gBAAgBR,KACJ,IAAlBvwE,EAAGmmE,YACDoK,EAAGprE,kBAAqBI,GAAYA,EAAQH,OAEjDpF,EAAGqmE,kBAWE,YAAAmM,iBAAP,SAAwBjtE,EAAmBvF,GAA3C,WAKC,IAAKuF,EAAQH,MAAO,CACnB,IAAM,EAAsB,IAAwBG,EAAQ0vE,WAE5D,IAAW7tI,KAAKonI,YAAYpoF,YAAY35C,YAAY,SAAC8jI,GAEpD,GAAIA,GAAMA,EAAGkD,aAAa9zF,SAAS4lB,IAAYgrE,EAAG1zE,UAAW,CAE5D,IAAI9c,GAAQ,EACRwwF,EAAGzgH,SAAWy1C,EAAQ0vE,WACpB,IAAc1E,EAAGzgH,QAAS,KAK/BiwB,GAAQ,GAELA,GACH,EAAKif,UAAUuxE,EAAIhrE,EAASvF,GAAI,OAQpC,IAAW54D,KAAKunI,mBAAmBvoF,YAAY35C,YAAY,SAAC8jI,IAEvDA,EAAGzyE,aAAane,SAAS4lB,IAE1BgrE,EAAGnsE,WAAa,EAAK8wE,QAAQ3E,EAAIhrE,KAClCgrE,EAAGpsE,YAAaosE,EAAGlsE,WACpB,EAAK8wE,gBAAgB5E,EAAIvwE,MAK3B,IAAW54D,KAAKsnI,eAAetoF,YAAY35C,YAAY,SAAC8jI,GAElDA,EAAGkD,aAAa9zF,SAAS4lB,IAC7B,EAAKmuE,YAAYnD,EAAIhrE,EAASvF,OAc1B,YAAA0zE,YAAP,SAAmBnD,EAAuBhrE,EAAmBvF,EAA6Bo1E,GAGzF,QAHyF,IAAAA,OAAA,IAGpFA,GAAchuI,KAAKytI,MAAMtvE,EAAS,KAKnCgrE,EAAGnqI,OAAOsC,UAAU,WAAa,IAAOopI,SAAU,CACrD,IAAIC,EAAsE,CACzEppI,KAAM,QACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACfijE,QAASA,EACTH,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,QAASkpI,KAYlC,YAAA6C,YAAP,SAAmBrE,EAAuBhrE,EAAmBvF,GAI5D,GAAIuwE,EAAGnqI,OAAOsC,UAAU,WAAa,IAAOopI,SAAU,CACrD,IAAIC,EAAsE,CACzEppI,KAAM,QACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPoF,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,QAASkpI,GAGxC,GAAIxsE,EAAQg0B,WAAW73F,EAAI6jE,EAAQjjE,MAAMZ,GACxC,GAAI6uI,EAAGnqI,OAAOsC,UAAU,gBAAkB,IAAOopI,SAAU,CACtDC,EAA2E,CAC9EppI,KAAM,aACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPoF,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,aAAckpI,SAI7C,GAAIxB,EAAGnqI,OAAOsC,UAAU,eAAiB,IAAOopI,SAAU,CACrDC,EAA0E,CAC7EppI,KAAM,YACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPoF,MAAOG,EAAQH,OAEhBmrE,EAAGnqI,OAAOyC,oBAAoB,YAAakpI,KAgBvC,YAAA9kD,YAAP,SAAmBsjD,EAAuBhrE,EAAmB05B,EAAgB6P,EAAgB9uC,GAC5F,IAAM7lB,EAAgB,CACrBz4C,EAAGu9F,EACHt9F,EAAGmtG,GAIAyhC,EAAGnqI,OAAOsC,UAAU,WAAa,IAAOopI,UAC3CvB,EAAGnqI,OAAOyC,oBAAoB,QAAS,CACtCF,KAAM,QACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf63C,MAAOA,IAOL8kD,EAAS,EACRsxC,EAAGnqI,OAAOsC,UAAU,eAAiB,IAAOopI,UAC/CvB,EAAGnqI,OAAOyC,oBAAoB,YAAa,CAC1CF,KAAM,YACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf63C,MAAOA,IAIC8kD,EAAS,EACfsxC,EAAGnqI,OAAOsC,UAAU,gBAAkB,IAAOopI,UAChDvB,EAAGnqI,OAAOyC,oBAAoB,aAAc,CAC3CF,KAAM,aACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf63C,MAAOA,IAKC20D,EAAS,EACfyhC,EAAGnqI,OAAOsC,UAAU,aAAe,IAAOopI,UAC7CvB,EAAGnqI,OAAOyC,oBAAoB,UAAW,CACxCF,KAAM,UACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf63C,MAAOA,IAIC20D,EAAS,GACfyhC,EAAGnqI,OAAOsC,UAAU,eAAiB,IAAOopI,UAC/CvB,EAAGnqI,OAAOyC,oBAAoB,YAAa,CAC1CF,KAAM,YACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP19D,MAAOijE,EAAQjjE,MACf63C,MAAOA,KAcJ,YAAA26F,cAAP,SAAqBvE,EAAuBhrE,GAEvCgrE,EAAGpsE,WAAwC,IAA3BosE,EAAGzyE,aAAav6D,QACnC6D,KAAKiuI,kBAAkB9E,EAAIhrE,GAGxBgrE,EAAGlsE,WAAaksE,EAAGzyE,aAAav6D,OAAS,GAC5C6D,KAAKkuI,oBAAoB/E,EAAIhrE,IAaxB,YAAA8vE,kBAAP,SAAyB9E,EAAuBhrE,GAC/C,IAAIvB,EAAcusE,EAEdjuI,EAAQ,CACX,EAAKijE,EAAQjjE,MAAMZ,EACnB,EAAK6jE,EAAQjjE,MAAMX,GAEhB43F,EAAa,CAChB,EAAKh0B,EAAQg0B,WAAW73F,EACxB,EAAK6jE,EAAQg0B,WAAW53F,GAIrB4zI,EAAU,IAAI,IAAQvxE,EAXP,OAW0B1hE,EAAOi3F,GAGhD32E,EAAMxb,KAAKouI,cAAcjwE,EAAS,MAAkBn+D,KAAKquI,iBAAiBlF,EAAI,OAAQ,SAC1F,GAAmB,qBAAR3tH,EAAX,CAMA,IAAI8yH,EAAStuI,KAAKquI,iBAAiBlF,EAAI,OAAQ,UAC3CpzE,EAAmB,CAAC,CACvB,GAAMoI,EAAQjjE,MAAMZ,GAAK6jE,EAAQjjE,MAAMZ,EAAIkhB,EAAItgB,MAAMZ,GAAKg0I,EAC1D,SAAY,KACV,CACF,GAAMnwE,EAAQjjE,MAAMX,GAAK4jE,EAAQjjE,MAAMX,EAAIihB,EAAItgB,MAAMX,GAAK+zI,EAC1D,SAAY,MAIT93E,EAAuB,IAAI,IAC9B23E,EACAp4E,EACA/1D,KAAKquI,iBAAiBlF,EAAI,OAAQ,YAClCnpI,KAAKquI,iBAAiBlF,EAAI,OAAQ,WACjC1vI,QACFuG,KAAKkpD,WAAW1qD,KAAKg4D,EAAUx3D,OAAOmgD,GAAG,kBAAkB,SAACyZ,GAC3Du1E,EAAQ3pI,WAIT2kI,EAAGoF,SAASr+E,OAAO,OAAQi+E,QA1B1BnuI,KAAK2tI,gBAAgBxE,EAAIhrE,EAASA,EAAQqwE,cAyCrC,YAAAN,oBAAP,SAA2B/E,EAAuBhrE,KAc3C,YAAA4vE,gBAAP,SAAuB5E,EAAuBvwE,GAI7C,IAUI61E,EACAp0I,EACAiB,EAZAozI,EAAqCvF,EAAGzyE,aAAavW,SAAS,GAC9D/lD,EAAiB,KACjBiB,EAAsB,KAEtBqzI,IACHt0I,EAASs0I,EAASxzI,MAClBG,EAAcqzI,EAASv8C,YAaxB72F,EAJAjB,EAAS,CACR,EAAK8uI,EAAGlrE,iBAAiB3jE,EACzB,EAAK6uI,EAAGlrE,iBAAiB1jE,GAM1B,IADA,IAAIo0I,GAAuB,EAClBtyI,EAAI,EAAGA,EAAI8sI,EAAGzyE,aAAav6D,OAAQE,IAAK,CAGhD,IAAIuyI,EAAczF,EAAGzyE,aAAavW,SAAS9jD,GAG3C,GAAIhB,EAAYf,GAAKs0I,EAAYz8C,WAAW73F,GAAKe,EAAYd,GAAKq0I,EAAYz8C,WAAW53F,EAAG,CAG3Fo0I,GAAc,EAIdt0I,GADAo0I,EAAWG,GACO1zI,MAClBI,EAAcmzI,EAASt8C,WAGvB,OAKF,IAAI08C,EAAgBH,GAAY1uI,KAAKytI,MAAMiB,EAAU,GAWrD,GARIvF,EAAGpsE,WAAa2xE,GAAYA,EAASI,iBAAmBJ,EAASI,gBAAgB3yI,QAAU0yI,GAC1F1F,EAAGnqI,OAAOsC,UAAU,eAAiB,IAAOopI,UAC/CvB,EAAGnqI,OAAOyC,oBAAoB,YAAaitI,EAASI,gBAAgB/7F,SAMlE47F,GAAexF,EAAGpsE,UAIrB/8D,KAAK+uI,oBAAoB5F,EAAI/uI,EAAQiB,EAAau9D,EAAIi2E,EAAeH,EAAS1wE,WAG1E,CAGJ,IAAIgxE,EAAgBP,GAAYzuI,KAAKytI,MAAMgB,EAAU,GAEjDtF,EAAGpsE,WAAaosE,EAAGlsE,WAEtBj9D,KAAK+uI,oBAAoB5F,EAAI/uI,EAAQiB,EAAau9D,EAAIi2E,GAAiBG,EAAeN,EAAS1wE,OAC/Fh+D,KAAKivI,sBAAsB9F,EAAI/uI,EAAQiB,EAAahB,EAAQiB,EAAas9D,EAAIi2E,GAAiBG,EAAeN,EAAS1wE,SAIlHmrE,EAAGpsE,WACN/8D,KAAK+uI,oBAAoB5F,EAAI/uI,EAAQiB,EAAau9D,EAAIi2E,EAAeH,EAAS1wE,QAG3EmrE,EAAGlsE,WAAe0xE,IAAe/1E,EAAG0oB,SACvCthF,KAAKivI,sBAAsB9F,EAAI/uI,EAAQiB,EAAahB,EAAQiB,EAAas9D,EAAIi2E,GAAiBG,EAAeN,EAAS1wE,UAmBnH,YAAA+wE,oBAAP,SAA2B5F,EAAuBjuI,EAAei3F,EAAoBv5B,EAA6Cs2E,EAAuBlxE,GAExJ,GAAIkxE,GACC/F,EAAGnqI,OAAOsC,UAAU,UAAY,IAAOopI,YAAcvB,EAAGprE,mBAAqBC,GAAQ,CACxF,IAAI2sE,EAAqE,CACxEppI,KAAM,OACNC,OAAQ2nI,EACRhlF,MAAOyU,EACP7lB,MAAO,CACN,EAAK73C,EAAMZ,EAAI63F,EAAW73F,EAC1B,EAAKY,EAAMX,EAAI43F,EAAW53F,GAE3B43F,WAAYA,EACZj3F,MAAOA,EACP8iE,MAAOA,GAERmrE,EAAGnqI,OAAOyC,oBAAoB,OAAQkpI,KAmBlC,YAAAsE,sBAAP,SAA6B9F,EAAuB/uI,EAAgBiB,EAAqBhB,EAAgBiB,EAAqBs9D,EAA6Bs2E,EAAuBlxE,GACjL,GAAImrE,EAAGnqI,OAAOsC,UAAU,YAAc,IAAOopI,YAAcvB,EAAGprE,mBAAqBC,GAAQ,CAC1F,IAAI2sE,EAAuE,CAC1EppI,KAAM,SACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPpxC,MAAO,IAAeptB,EAAQiB,EAAahB,EAAQiB,GACnDD,YAAaA,EACbjB,OAAQA,EACRkB,YAAaA,EACbjB,OAAQA,EACR2jE,MAAOA,GAERmrE,EAAGnqI,OAAOyC,oBAAoB,SAAUkpI,KAanC,YAAAoC,iBAAP,SAAwB5D,EAAuBhrE,EAAoBvF,GAGlE54D,KAAKunI,mBAAmB3mF,UAAUuoF,GAGlC,IAAIwB,EAA0E,CAC7EppI,KAAM,YACNC,OAAQ2nI,EACRhlF,MAAOyU,EACPoF,QAAOG,GAAUA,EAAQH,OAKtBG,IACHA,EAAQgxE,WAAahG,GASlBhrE,GAAWA,EAAQ2wE,gBACtB3wE,EAAQ2wE,gBAAgBtwI,KAAKmsI,GAGxB,IAAOD,UACXvB,EAAG1nI,oBAAoB,YAAakpI,IAahC,YAAAgD,gBAAP,SAAuBxE,EAAuBhrE,EAAoBvF,GAmBjE,GAhBKuF,IACJA,EAAUn+D,KAAKovI,eAAejG,IAI3BhrE,IACHA,EAAQgxE,gBAAaziI,GAItB1M,KAAKunI,mBAAmBtnF,YAAYkpF,KAM/BhrE,GAAWn+D,KAAKytI,MAAMtvE,EAAS,KAC/BgrE,EAAGnqI,OAAOsC,UAAU,cAAgB,IAAOopI,SAAU,CACxD,IAAIC,EAAyE,CAC5EppI,KAAM,WACNC,OAAQ2nI,EACRnrE,QAAOG,GAAUA,EAAQH,OAE1BmrE,EAAGnqI,OAAOyC,oBAAoB,WAAYkpI,KAatC,YAAAqC,mBAAP,SAA0B7D,EAAuBhrE,EAAoBvF,GAGpE54D,KAAKunI,mBAAmB3mF,UAAUuoF,IAY5B,YAAAyE,kBAAP,SAAyBzE,EAAuBhrE,EAAoBvF,GAGnE54D,KAAKunI,mBAAmBtnF,YAAYkpF,IAwB9B,YAAAjrE,UAAP,SAAiBirE,EAAuBhrE,GAClCA,IACJA,EAAUn+D,KAAKovI,eAAejG,IAG3BhrE,GACHn+D,KAAK63D,WAAWsxE,EAAIhrE,EAASA,EAAQkxE,gBAUhC,YAAAjxE,SAAP,SAAgB+qE,EAAuBhrE,EAAoBE,GACrDF,IACJA,EAAUn+D,KAAKovI,eAAejG,IAG3BhrE,IAAYE,GACfr+D,KAAKwrI,eAAertE,EAASA,EAAQqwE,YAAanwE,IAY7C,YAAA+wE,eAAP,SAAsBjG,GACrB,OAAIA,EAGIA,EAAGzyE,aAAavW,SAAS,GAExBngD,KAAKunI,mBAAmBprI,OAEzB6D,KAAKovI,eAAepvI,KAAKunI,mBAAmBpnF,SAAS,SAG5D,GAkBQ,YAAAmvF,aAAV,SAAuB12E,GAStB,OAPI,IAAeA,EAAG22E,YAChB,GAAa32E,EAAG22E,WACX,IAAe32E,EAAG42E,WACvB,GAAa52E,EAAG42E,UAEhB,KAEI94I,QAAQ,IAAK,KASd,YAAAw0I,gBAAV,SAA0BtyE,GACzB,MAAO,CACN,EAAKA,EAAG62E,QACR,EAAK72E,EAAG82E,UAYA,YAAAzE,WAAV,SAAqBryE,GAGpB,IAMIuF,EANA5P,EAAKvuD,KAAKsvI,aAAa12E,GAGvB19D,EAAQ8E,KAAKkrI,gBAAgBtyE,GA2CjC,OAvCI54D,KAAKwnI,SAASrpF,OAAOoQ,IAGxB4P,EAAUn+D,KAAKwnI,SAAStoF,OAAOqP,IAGvByP,MAAQh+D,KAAK2vI,eAAe/2E,IAQpCuF,EAAU,CACT,GAAM5P,EAGN,MAASvuD,KAAK2vI,eAAe/2E,GAC7B,WAAc19D,EACd,UAAa,MACb,MAASA,EACT,MAAS,GACT,eAAiB,EACjB,gBAAmB,IAIpB8E,KAAKmrI,cAAchtE,EAASjjE,GAG5B8E,KAAKwnI,SAASt3E,OAAO3B,EAAI4P,IAI1BA,EAAQ0vE,UAAYj1E,EAEpB54D,KAAK2kE,YAAcxG,EAEZA,GASE,YAAAwxE,eAAV,SAAyB/2E,GACxB,GAAqB,qBAAVg3E,OAAyBh3E,aAAcg3E,MACjD,OAAO,EAEH,GAA4B,qBAAjBC,cAAgCj3E,aAAci3E,cAAgB,IAAqBj3E,EAAIk3E,aACtG,OAAcl3E,EAAIk3E,aACjB,IAAK,QACL,IAAK,MACL,KAAK,EACJ,OAAO,EACR,IAAK,QACL,KAAK,EACJ,OAAO,EACR,QACC,QAASl3E,aAAcm3E,iBAGrB,GAAI,IAAqBn3E,EAAIr3D,OACvBq3D,EAAIr3D,KAAKod,MAAM,UACxB,OAAO,EAGT,OAAO,GASE,YAAA+sH,aAAV,SAAuBvtE,EAAmBvF,GAEzC,IAAI19D,EAAQ8E,KAAKkrI,gBAAgBtyE,GACjCuF,EAAQqmC,UAAY,MACpBrmC,EAAQg0B,WAAa,CAAE73F,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,GAC5C4jE,EAAQjjE,MAAQ,CAAEZ,EAAGY,EAAMZ,EAAGC,EAAGW,EAAMX,GACvC4jE,EAAQ6xE,MAAQ,GAChB7xE,EAAQ8xE,eAAgB,GAWf,YAAA9E,cAAV,SAAwBhtE,EAAmBjjE,GAC1CijE,EAAQ6xE,MAAMxxI,KAAK,CAClB,UAAa,MACb,MAAStD,KASJ,YAAAg1I,aAAP,WACClwI,KAAK4pI,YAAY5pI,KAAK2E,OAQhB,YAAAwrI,eAAP,WACuC,GAAlCnwI,KAAKunI,mBAAmBprI,QAC3B6D,KAAKowI,iBAAiBpwI,KAAK2E,OAStB,YAAAu6H,YAAP,SAAmBiK,GAClBnpI,KAAK4pI,YAAYT,IAQX,YAAAkH,cAAP,SAAqBlH,GACpBnpI,KAAKowI,iBAAiBjH,IAQhB,YAAAkB,UAAP,WACCvzH,OAAO1W,iBACNJ,KAAK8mI,eAAemB,MACpBjoI,KAAKswI,iBACLtwI,KAAKknI,mBAAoB,CAAEiD,SAAS,KAS/B,YAAAC,YAAP,WACCtzH,OAAO2rC,oBACNziD,KAAK8mI,eAAemB,MACpBjoI,KAAKswI,iBAaA,YAAAviE,eAAP,SAAsB5P,EAAmB79D,EAAoBiuD,GAC5D,IAAMzQ,EAAS99C,KAAKiB,SAAS,iBAAmBk9D,EAAQ5P,IACxD,GAAI,IAAezQ,GAClB,OAAOA,EAER,IAAMyyF,EAAO,IAAajwI,IAAQyW,SAClC,GAAIw5H,EAAIC,iBAAkB,CACzB,IAAMhvI,EAAS+uI,EAAIC,iBAAiBryE,EAAQjjE,MAAMZ,EAAG6jE,EAAQjjE,MAAMX,GAC7DkuC,EAAQjnC,GAAU,IAAclB,EAAkBkB,GAExD,OADAxB,KAAKa,SAAS,iBAAmBs9D,EAAQ5P,GAAK,IAAMA,EAAI9lB,EAAO,KACxDA,EAER,OAAO,GAUE,YAAA6nG,eAAV,SAAyB13E,GAExB,OADAA,EAAGqmE,kBACI,GAUD,YAAA2K,YAAP,SAAmBT,GAElB,IAAIxmF,EAAKwmF,EAAGzgH,QAEZ,GAAIi6B,EAAI,CAWP,IARA,IAAIpoC,EAAQ,CACX,cAAe,oBAAqB,iBAAkB,gBAAiB,gBAAiB,eACxF,aAAc,mBAAoB,gBAAiB,eAAgB,eAAgB,cACnF,cAAe,oBAAqB,iBAAkB,gBAAiB,gBAAiB,eACxF,eAAgB,qBAAsB,kBAAmB,iBAAkB,iBAAkB,gBAC7F,iBAAkB,uBAAwB,oBAAqB,mBAAoB,mBAAoB,kBACvG,WAAY,iBAAkB,cAAe,aAAc,aAAc,aAEjEle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAC7Bke,EAAMle,KAAMsmD,EAAG1H,OAClBj7C,KAAKywI,kBAAkBtH,EAAI5uH,EAAMle,GAAI,QAKvC2D,KAAKywI,kBAAkBtH,EAAI,oBAAqB,sBAY3C,YAAAuH,cAAP,SAAqBvH,GAEpB,IAAIxmF,EAAKwmF,EAAGzgH,QAEZ,GAAIi6B,EAAI,CAWP,IARA,IAAIpoC,EAAQ,CACX,cAAe,oBAAqB,iBAAkB,gBAAiB,gBAAiB,eACxF,aAAc,mBAAoB,gBAAiB,eAAgB,eAAgB,cACnF,cAAe,oBAAqB,iBAAkB,gBAAiB,gBAAiB,eACxF,eAAgB,qBAAsB,kBAAmB,iBAAkB,iBAAkB,gBAC7F,iBAAkB,uBAAwB,oBAAqB,mBAAoB,mBAAoB,kBACvG,WAAY,iBAAkB,cAAe,aAAc,aAAc,aAEjEle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAC7Bke,EAAMle,KAAMsmD,EAAG1H,OAClBj7C,KAAK2wI,aAAaxH,EAAI5uH,EAAMle,IAK9B2D,KAAK2wI,aAAaxH,EAAI,uBAcjB,YAAAtK,aAAP,SAAoBsK,EAAuBjyE,GAC1C,IAAI1qD,EAAM28H,EAAGtqE,WAAW3H,GAIxB,MAHmB,qBAAR1qD,IACVA,EAAMxM,KAAK6+D,WAAW3H,IAEhB1qD,GAWD,YAAAigI,eAAP,SAAsBtD,EAAuBjyE,GAC5C,IAAI1qD,EAAM28H,EAAG7qE,aAAapH,GAI1B,MAHmB,qBAAR1qD,IACVA,EAAMxM,KAAKs+D,aAAapH,IAElB1qD,GAWD,YAAAokI,eAAP,SAAsBzH,EAAuBjyE,GAC5C,IAAI1qD,EAAM28H,EAAG1pE,aAAavI,GAI1B,MAHmB,qBAAR1qD,IACVA,EAAMxM,KAAKy/D,aAAavI,IAElB1qD,GAWD,YAAAqkI,kBAAP,SAAyB1H,EAAuBjyE,GAC/C,IAAI1qD,EAAM28H,EAAG1sE,gBAAgBvF,GAI7B,MAHmB,qBAAR1qD,IACVA,EAAMxM,KAAKy8D,gBAAgBvF,IAErB1qD,GAWD,YAAAq/H,eAAP,SAAsB1C,EAAuBjyE,GAC5C,IAAI1qD,EAAM28H,EAAGzsE,aAAaxF,GAI1B,MAHmB,qBAAR1qD,IACVA,EAAMxM,KAAK08D,aAAaxF,IAElB1qD,GAYD,YAAA6hI,iBAAP,SAAwBlF,EAAuB5nI,EAAoB21D,GAClE,IAAI96C,EAAe+sH,EAAGzrE,eAAexe,OAAO39C,GAQ5C,OANI6a,GAAW,IAAeA,EAAQ86C,IAC/B96C,EAAQ86C,GAGFl3D,KAAK09D,eAAexe,OAAO39C,GAAO21D,IAWtC,YAAA21E,YAAV,SAAsB1D,GAGrB,IAFA,IAAI7uI,EACAi0I,EAAgC,CAAC,OAAQ,UACpClyI,EAAI,EAAGA,EAAIkyI,EAASpyI,OAAQE,IAEpC,GADA/B,EAAIi0I,EAASlyI,GACT8sI,EAAGoF,SAASpwF,OAAO7jD,GAAI,CAC1B,IAAI6zI,EAAmChF,EAAGoF,SAASrvF,OAAO5kD,GAC1D,GAAI6zI,EAAS,CACZA,EAAQtuF,UAGR,YAaG,YAAAiuF,QAAP,SAAe3E,EAAuBhrE,GACrC,IAAI16B,EAAM,MAEV,QAAI06B,EAAQ8xE,gBAAkB9G,EAAGnsE,aAI/BzlE,KAAK6B,IAAI+kE,EAAQg0B,WAAW53F,EAAI4jE,EAAQjjE,MAAMX,GAAKyF,KAAK4wI,eAAezH,EAAI,sBAC3EhrE,EAAQqmC,UAAa/gE,EAAMzjC,KAAK4wI,eAAezH,EAAI,UAgB/C,YAAAoE,OAAP,SAAcpE,EAAuBhrE,GACpC,IAAI16B,EAAM,MACV,OAAI06B,EAAQ8xE,gBAIV14I,KAAK6B,IAAI+kE,EAAQg0B,WAAW73F,EAAI6jE,EAAQjjE,MAAMZ,GAAK0F,KAAK4wI,eAAezH,EAAI,wBAC3E5xI,KAAK6B,IAAI+kE,EAAQg0B,WAAW53F,EAAI4jE,EAAQjjE,MAAMX,GAAKyF,KAAK4wI,eAAezH,EAAI,sBAC3EhrE,EAAQqmC,UAAa/gE,EAAMzjC,KAAK4wI,eAAezH,EAAI,UAgB/C,YAAA5oE,qBAAP,SAA4B4oE,GAG3B,IAAI/sH,EAAU+sH,EAAG/oE,cAEjB,GAAK,IAAehkD,EAAQikD,WAK5B,IAAK,IAAIhkE,EAAI,EAAGA,EAAI+f,EAAQikD,UAAUlkE,OAAQE,IAC7C,IAAc8sI,EAAGzgH,QAAStM,EAAQikD,UAAUhkE,GAAGguC,SAAUjuB,EAAQikD,UAAUhkE,GAAGxG,QAazE,YAAAi3I,qBAAP,SAA4B3D,EAAuBhrE,GAGlD,IAAIA,EAAQH,MAAZ,CAIA,IAAMwC,EAAY2oE,EAAG/oE,cAAcI,UAEnC,GAAI2oE,EAAGzyE,aAAane,SAAS4lB,IAAY,IAAeqC,GAEvD,IAAK,IAAInkE,EAAI,EAAGA,EAAImkE,EAAUrkE,OAAQE,IACrC2D,KAAKywI,kBAAkBzwI,KAAK2E,KAAM67D,EAAUnkE,GAAGguC,SAAUm2B,EAAUnkE,GAAGxG,OACtEmK,KAAKywI,kBAAkBtH,EAAI3oE,EAAUnkE,GAAGguC,SAAUm2B,EAAUnkE,GAAGxG,SAY3D,YAAAy3I,uBAAP,SAA8BnE,EAAuBhrE,GAGpD,IAAIA,EAAQH,MAAZ,CAIA,IAAMwC,EAAY2oE,EAAG/oE,cAAcI,UAGnC,GAAI2oE,EAAGzyE,aAAane,SAAS4lB,IAAY,IAAeqC,GAEvD,IAAK,IAAInkE,EAAI,EAAGA,EAAImkE,EAAUrkE,OAAQE,IACrC2D,KAAK2wI,aAAa3wI,KAAK2E,KAAM67D,EAAUnkE,GAAGguC,UAC1CrqC,KAAK2wI,aAAaxH,EAAI3oE,EAAUnkE,GAAGguC,YAW/B,YAAAi0F,eAAP,SAAsBrjF,GAGrB,IAFA,IAAIt2C,EAAOk4D,IAAiBl4D,KACxB4/C,EAAiC,IAActJ,GAASA,EAAQ,CAACA,GAC5D5+C,EAAI,EAAGA,EAAIkoD,EAAOpoD,OAAQE,IAClC2D,KAAKywI,kBAAkB9rI,EAAM4/C,EAAOloD,GAAGguC,SAAUka,EAAOloD,GAAGxG,QAUtD,YAAAi7I,mBAAP,SAA0B71F,GAGzB,IAFA,IAAIt2C,EAAOk4D,IAAiBl4D,KACxB4/C,EAAiC,IAActJ,GAASA,EAAQ,CAACA,GAC5D5+C,EAAI,EAAGA,EAAIkoD,EAAOpoD,OAAQE,IAClC2D,KAAK2wI,aAAahsI,EAAM4/C,EAAOloD,GAAGguC,WAU1B,YAAAs/F,gBAAV,SAA0BR,GACzB,OAAOpyH,SAASpS,OAASwkI,EAAGzgH,SAWtB,YAAA+kH,MAAP,SAAatvE,EAAmB4yE,EAAmBC,QAAA,IAAAA,MAAA,KASlD,IAAIj+F,EAAQ/yC,KAAKixI,SAAS9yE,GAE1B,OAAQ5mE,KAAK6B,IAAI25C,EAAMz4C,GAAKy2I,GAAex5I,KAAK6B,IAAI25C,EAAMx4C,GAAKw2I,GAYzD,YAAAvE,IAAP,SAAWruE,EAAmB6yE,GAC7B,YAD6B,IAAAA,MAAA,KACtB,MAAkB7yE,EAAQqmC,UAAYwsC,GAUvC,YAAAC,SAAP,SAAgB9yE,GACf,MAAO,CACN,EAAKA,EAAQg0B,WAAW73F,EAAI6jE,EAAQjjE,MAAMZ,EAC1C,EAAK6jE,EAAQg0B,WAAW53F,EAAI4jE,EAAQjjE,MAAMX,IAWrC,YAAA6zI,cAAP,SAAqBjwE,EAAmBgnC,GAEvC,IADA,IAAI34F,EACKnQ,EAAI,EAAGA,EAAI8hE,EAAQ6xE,MAAM7zI,OAAQE,IACzC,GAAI8hE,EAAQ6xE,MAAM3zI,GAAG8oG,WAAaA,EAAW,CAC5C34F,EAAM2xD,EAAQ6xE,MAAM3zI,GACpB,MAGF,OAAOmQ,GAUE,YAAA0kI,cAAV,SAAwB14F,EAAsB2lB,GAC7C,IAAIgzE,GAAS,EAOb,OANA34F,EAAKtxC,MAAK,SAACijC,GACNA,GAAQg0B,IAGZgzE,EAAShnG,EAAKjvC,MAAMZ,GAAK6jE,EAAQjjE,MAAMZ,GAAK6vC,EAAKjvC,MAAMX,GAAK4jE,EAAQjjE,MAAMX,MAEpE42I,GAYD,YAAAt0E,eAAP,SAAsBn0C,GACrB,OAAO,IAAI,IAAkBA,IAYvB,YAAA+nH,kBAAP,SAAyBtH,EAAuB9+F,EAAkBx0C,GAIjE,IAAI8sD,EAAKwmF,EAAGzgH,QAGR,IAAqBi6B,EAAG1H,MAAO5Q,MAAe8+F,EAAGiI,eAAejzF,OAAO9T,IAC1E8+F,EAAGiI,eAAelhF,OAAO7lB,EAAgBsY,EAAG1H,MAAO5Q,IAIpD,IAAcsY,EAAItY,EAAUx0C,IAUtB,YAAA86I,aAAP,SAAoBxH,EAAuB9+F,GAGtC8+F,EAAGiI,eAAejzF,OAAO9T,IACtB8+F,EAAGzgH,QAAQuyB,MAAO5Q,GAAY8+F,EAAGiI,eAAelyF,OAAO7U,GAC7D8+F,EAAGiI,eAAe5iF,UAAUnkB,WAGf8+F,EAAGzgH,QAAQuyB,MAAO5Q,IAS1B,YAAA+lG,iBAAP,SAAwBjH,GACvB,IAAWA,EAAGiI,eAAe/rI,YAAY,SAACtO,GACzC,IAAM+J,EAAM/J,EAAE,GACRlB,EAAQkB,EAAE,GACVoyI,EAAGzgH,QAAQuyB,MAAOn6C,GAAOjL,EAC/BszI,EAAGiI,eAAe5iF,UAAU1tD,OAOvB,YAAA++C,QAAP,WACM7/C,KAAK6hD,eACT,YAAMhC,QAAO,WACb7/C,KAAKowI,iBAAiBpwI,KAAK2E,MAC3B3E,KAAKoqI,gBAKC,YAAAlkE,IAAR,SAAY3jD,EAAcq2C,EAA4CuwE,GAIpE,GAAUvwE,EAAI6yE,eACb,IAAK,IAAIpvI,EAAI,EAAGA,EAAUu8D,EAAI6yE,eAAetvI,OAAQE,IACpD2D,KAAKqxI,SAAS9uH,EAAMq2C,EAAGr3D,KAAYq3D,EAAI6yE,eAAepvI,QAFxD,CAQA,IAAIkF,EAAO,GACX,GAAUq3D,EAAIk3E,YACb,OAAcl3E,EAAIk3E,aACjB,KAAK,EACJvuI,EAAO,QACP,MACD,KAAK,EACJA,EAAO,QACP,MACD,QACCA,EAAaq3D,EAAIk3E,iBAKnBvuI,EAD6B,oBAAd+vI,YAA6B14E,aAAc04E,WACnD,QAEC14E,EAAGr3D,KAAKod,MAAM,UACf,QAGA,MAIR,IAAI4vC,EAAK,GAERA,EADG,IAAqBqK,EAAI22E,YACT32E,EAAI22E,WACb,IAAqB32E,EAAI42E,WAChB52E,EAAI42E,UAElB,MAGFrG,EACHl4G,QAAQi1C,IAAI3jD,EAAO,KAAO4mH,EAAGlpI,IAAM,MAAQ24D,EAAGr3D,KAAO,KAAOA,EAAO,KAAOgtD,GAG1Et9B,QAAQi1C,IAAI3jD,EAAO,KAAOq2C,EAAGr3D,KAAO,KAAOA,EAAO,KAAOgtD,KAgBrD,YAAAgjF,eAAP,SAAsBv4B,GACrB,IAAI76G,EAAQ6B,KAAKunI,mBAAmBprI,OACpC,GAAI68G,EAEH,IADA,IAAM9xF,EAAK,IAAc8xF,GAAUA,EAAS,CAACA,GACrC38G,EAAI,EAAGA,EAAI6qB,EAAG/qB,OAAQE,IACzB2D,KAAKunI,mBAAmBhvF,SAASrxB,EAAG7qB,KACvC8B,IAIH,OAAOA,EAAQ,GAMR,YAAAkzI,SAAR,SAAiB9uH,EAAchhB,EAAcq3D,GAC5C3nC,QAAQi1C,IAAI3jD,EAAO,KAAOhhB,EAAO,YAAwBq3D,EAAG22E,aAW7D,sBAAW,qBAAgB,C,IAA3B,sBAEC,GAA8B,MAA1BvvI,KAAKknI,kBAGR,IACC,IAAI9qH,EAAU1Z,OAAOsG,eAAe,GAAI,UAAW,CAClD9H,IAAK,WACJ,EAAKgmI,mBAAoB,KAG3BpwH,OAAO1W,iBAAiB,OAAQgc,EAASA,GACzCtF,OAAO2rC,oBAAoB,OAAQrmC,EAASA,GAC3C,MAAOrL,GACR/Q,KAAKknI,mBAAoB,EAI3B,OAAOlnI,KAAKknI,mB,gCAGd,EAppGA,CAAiC,KAupG7BtqE,EAAkC,KAQhC,SAAUC,IAKf,OAJmB,MAAfD,IACHA,EAAc,IAAIurE,GAGZvrE,I,wLCxqGR,cACC,WAAY40E,GAAZ,IACOvvF,EAAWuvF,EAAKxyI,OAAOmgD,GAAG,WAAW,SAAC7kD,GAC3CA,EAAEklD,SAASK,iBACTnzC,GAAW,G,OAEd,aAAM,WACLu1C,EAASpC,UAGT,IAAW2xF,EAAKnsI,YAAY,SAACtO,GAClBA,EAAE,GACV8oD,iBAEF,KAEJ,OAhBgE,iBAgBhE,EAhBA,CAAgE,KAwBhE,aAeC,aALO,KAAA7gD,OAAkF,IAAI,IAM5FgB,KAAKyxI,YAAc,GA6QrB,OApQQ,YAAAtzF,OAAP,SAAcr9C,GACb,OAAO,IAAed,KAAKyxI,YAAa3wI,IASlC,YAAAo+C,OAAP,SAAcp+C,GACb,OAAOd,KAAKyxI,YAAY3wI,IAWlB,YAAAunE,UAAP,SAAiBvnE,EAAUjL,GAC1B,GAAI,IAAemK,KAAKyxI,YAAa3wI,GACpC,MAAM,IAAI3K,MAAM,OAAS2K,EAAM,iCAG/Bd,KAAKyxI,YAAY3wI,GAAOjL,EAEpBmK,KAAKhB,OAAOsC,UAAU,cACzBtB,KAAKhB,OAAOyC,oBAAoB,YAAa,CAC5CF,KAAM,YACNC,OAAQxB,KACRc,IAAKA,EACLs+C,SAAUvpD,KAgBP,YAAAq6D,OAAP,SAAcpvD,EAAUjL,GACvB,GAAI,IAAemK,KAAKyxI,YAAa3wI,GAAM,CAC1C,IAAM0+C,EAAWx/C,KAAKyxI,YAAY3wI,GAE9B0+C,IAAa3pD,IAChBmK,KAAKyxI,YAAY3wI,GAAOjL,EAEpBmK,KAAKhB,OAAOsC,UAAU,WACzBtB,KAAKhB,OAAOyC,oBAAoB,SAAU,CACzCF,KAAM,SACNC,OAAQxB,KACRc,IAAKA,EACL0+C,SAAUA,EACVJ,SAAUvpD,IAIRmK,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACRw/C,SAAUA,UAMbx/C,KAAKyxI,YAAY3wI,GAAOjL,EAEpBmK,KAAKhB,OAAOsC,UAAU,cACzBtB,KAAKhB,OAAOyC,oBAAoB,YAAa,CAC5CF,KAAM,YACNC,OAAQxB,KACRc,IAAKA,EACLs+C,SAAUvpD,KAkBP,YAAA67I,UAAP,SAAiB5wI,EAAUyN,GAC1B,IAAI,IAAevO,KAAKyxI,YAAa3wI,GA2BpC,MAAM,IAAI3K,MAAM,OAAS2K,EAAM,gCA1B/B,IAAM0+C,EAAWx/C,KAAKyxI,YAAY3wI,GAC5Bs+C,EAAW7wC,EAAGixC,GAEhBA,IAAaJ,IAChBp/C,KAAKyxI,YAAY3wI,GAAOs+C,EAEpBp/C,KAAKhB,OAAOsC,UAAU,WACzBtB,KAAKhB,OAAOyC,oBAAoB,SAAU,CACzCF,KAAM,SACNC,OAAQxB,KACRc,IAAKA,EACL0+C,SAAUA,EACVJ,SAAUA,IAIRp/C,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACRw/C,SAAUA,MAeR,YAAAgP,UAAP,SAAiB1tD,GAChB,GAAI,IAAed,KAAKyxI,YAAa3wI,GAAM,CAC1C,IAAM0+C,EAAWx/C,KAAKyxI,YAAY3wI,UAE3Bd,KAAKyxI,YAAY3wI,GAEpBd,KAAKhB,OAAOsC,UAAU,cACzBtB,KAAKhB,OAAOyC,oBAAoB,YAAa,CAC5CF,KAAM,YACNC,OAAQxB,KACRc,IAAKA,EACL0+C,SAAUA,IAIRx/C,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACRw/C,SAAUA,MAeP,YAAAmyF,iBAAP,SAAwB7wI,EAAU8wI,GAKjC,OAJK5xI,KAAKm+C,OAAOr9C,IAChBd,KAAKqoE,UAAUvnE,EAAK8wI,KAGX5xI,KAAKk/C,OAAOp+C,IAMhB,YAAAyI,MAAP,sBAEKvJ,KAAKhB,OAAOsC,UAAU,YACzB,IAAatB,KAAKyxI,aAAa,SAAC3wI,EAAKjL,GACpC,EAAKmJ,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQ,EACRg+C,SAAU3pD,OAKbmK,KAAKyxI,YAAc,GAEfzxI,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,QAUJ,YAAA6gD,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOzb,YAAY,SAACtO,GAE9B,EAAKm5D,OAAYn5D,EAAE,GAAIA,EAAE,QAUpB,YAAAsO,SAAP,WAGC,OAAiC,IAAgBrF,KAAKyxI,cAM/C,YAACrsI,OAAOC,UAAhB,W,sFAEiBrF,KAAKyxI,Y,yDAChB,IAAezxI,KAAKyxI,YAAa3wI,GACpC,GAAM,CAAMA,EAAKd,KAAKyxI,YAAY3wI,KAD/B,O,aACH,S,wDAQI,YAAAoG,KAAP,SAAYtC,GACX,IAAW5E,KAAKqF,YAAY,SAAC,G,IAAA,mBAACvE,EAAA,KAAKjL,EAAA,KAAW,OAAA+O,EAAE9D,EAAKjL,OAU/C,YAAAmyH,eAAP,WACC,OAAO,IAAWhoH,KAAKqF,YAAY,SAAC/K,EAAGC,GAAM,WAAcD,EAAE,GAAIC,EAApB,QAG/C,EA7RA,GAySA,cAaC,WAAmB+I,GAAnB,MACC,cAAO,K,OACP,EAAK29C,SAAW39C,E,EA6ClB,OA5D2G,iBAwB1G,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOtD,KAAKkhD,W,IATb,SAAoB57C,GACnBA,EAAE67C,YAAa,EACfnhD,KAAKkhD,UAAY57C,G,gCAeX,YAAAu7C,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOzb,YAAY,SAACtO,GAG9B,EAAKm5D,OAAYn5D,EAAE,GAAIA,EAAE,GAAG6R,aAWvB,YAAAzF,OAAP,SAAcrC,GAAd,WACC,OAAOd,KAAK2xI,iBAAiB7wI,GAAK,WAAM,SAAKmgD,SAAL,YAG1C,EA5DA,CAA2GmlC,I,6BC7a3G,kCACA,IAAIyrD,EAAS,GACN,SAASt2F,EAAQu2F,EAAO/rE,GAEzBgsE,EAIC,SAASC,EAAKF,EAAO/rE,GAEtBgsE,EAOC,SAAS97I,EAAKwjE,EAAQq4E,EAAO/rE,GAC7B+rE,GAAUD,EAAO9rE,KACpBtM,GAAO,EAAOsM,GACd8rE,EAAO9rE,IAAW,GAMf,SAASksE,EAASH,EAAO/rE,GAC9B9vE,EAAK+7I,EAAMF,EAAO/rE,GAELmsE,IANR,SAAqBJ,EAAO/rE,GACjC9vE,EAAKslD,EAASu2F,EAAO/rE,K,6BCxBvB,YAEgB,aAAU+rE,EAAOlwI,EAAWmkE,GAC1Cu+D,YAAWwN,EAAO,UAAU5rI,OAAOtE,EAAW,MAAMsE,OAAO6/D,M,6BCH9C,SAAStsB,EAAgB9zC,GAItC,OAHA8zC,EAAkB/2C,OAAOC,eAAiBD,OAAOoE,eAAiB,SAAyBnB,GACzF,OAAOA,EAAE/C,WAAaF,OAAOoE,eAAenB,KAEvBA,GAJzB,mC,6BCAA,+CACe,SAASw1C,EAAyBr6B,EAAQqxH,GACvD,GAAc,MAAVrxH,EAAgB,MAAO,GAC3B,IACIhgB,EAAKzE,EADLmF,EAAS,YAA6Bsf,EAAQqxH,GAGlD,GAAIzvI,OAAOuL,sBAAuB,CAChC,IAAImkI,EAAmB1vI,OAAOuL,sBAAsB6S,GAEpD,IAAKzkB,EAAI,EAAGA,EAAI+1I,EAAiBj2I,OAAQE,IACvCyE,EAAMsxI,EAAiB/1I,GACnB81I,EAASr7I,QAAQgK,IAAQ,GACxB4B,OAAOQ,UAAUmvI,qBAAqBp8I,KAAK6qB,EAAQhgB,KACxDU,EAAOV,GAAOggB,EAAOhgB,IAIzB,OAAOU,I,6BCjBT,qJAQI8wI,EAAe,WACjB,OAAO/6I,KAAKg7I,SAASv8I,SAAS,IAAIw8I,UAAU,GAAGvwH,MAAM,IAAIxb,KAAK,MAG5DgsI,EAAc,CAChBC,KAAM,eAAiBJ,IACvBK,QAAS,kBAAoBL,IAC7BM,qBAAsB,WACpB,MAAO,+BAAiCN,MAQ5C,SAASO,EAAc1rI,GACrB,GAAmB,kBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIN,EAAQM,EAE4B,OAAjCzE,OAAOoE,eAAeD,IAC3BA,EAAQnE,OAAOoE,eAAeD,GAGhC,OAAOnE,OAAOoE,eAAeK,KAASN,EA6BxC,SAASisI,EAAYC,EAASC,EAAgBC,GAC5C,IAAIl6H,EAEJ,GAA8B,oBAAnBi6H,GAAqD,oBAAbC,GAA+C,oBAAbA,GAAmD,oBAAjBzvI,UAAU,GAC/H,MAAM,IAAIrN,MAAM,uJAQlB,GAL8B,oBAAnB68I,GAAqD,qBAAbC,IACjDA,EAAWD,EACXA,OAAiBtmI,GAGK,qBAAbumI,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAI98I,MAAM,2CAGlB,OAAO88I,EAASH,EAATG,CAAsBF,EAASC,GAGxC,GAAuB,oBAAZD,EACT,MAAM,IAAI58I,MAAM,0CAGlB,IAAI+8I,EAAiBH,EACjBI,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBzqI,SAUrC,SAAS8N,IACP,GAAI68H,EACF,MAAM,IAAIn9I,MAAM,wMAGlB,OAAOg9I,EA2BT,SAAS/9H,EAAUF,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAI/e,MAAM,2CAGlB,GAAIm9I,EACF,MAAM,IAAIn9I,MAAM,6TAGlB,IAAIkf,GAAe,EAGnB,OAFAk+H,IACAF,EAAc70I,KAAK0W,GACZ,WACL,GAAKG,EAAL,CAIA,GAAIi+H,EACF,MAAM,IAAIn9I,MAAM,kKAGlBkf,GAAe,EACfk+H,IACA,IAAI5rI,EAAQ0rI,EAAcv8I,QAAQoe,GAClCm+H,EAAc1nH,OAAOhkB,EAAO,GAC5ByrI,EAAmB,OA8BvB,SAASjyI,EAASiW,GAChB,IAAKy7H,EAAcz7H,GACjB,MAAM,IAAIjhB,MAAM,2EAGlB,GAA2B,qBAAhBihB,EAAO7V,KAChB,MAAM,IAAIpL,MAAM,sFAGlB,GAAIm9I,EACF,MAAM,IAAIn9I,MAAM,sCAGlB,IACEm9I,GAAgB,EAChBH,EAAeD,EAAeC,EAAc/7H,GAF9C,QAIEk8H,GAAgB,EAKlB,IAFA,IAAIn+H,EAAYi+H,EAAmBC,EAE1Bh3I,EAAI,EAAGA,EAAI8Y,EAAUhZ,OAAQE,IAAK,EAEzC6Y,EADeC,EAAU9Y,MAI3B,OAAO+a,EAcT,SAASo8H,EAAeC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIt9I,MAAM,8CAGlB+8I,EAAiBO,EAKjBtyI,EAAS,CACPI,KAAMkxI,EAAYE,UAWtB,SAASe,IACP,IAAIx9H,EAEAy9H,EAAiBv+H,EACrB,OAAOc,EAAO,CASZd,UAAW,SAAmBw+H,GAC5B,GAAwB,kBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAIpuI,UAAU,0CAGtB,SAASquI,IACHD,EAASxvI,MACXwvI,EAASxvI,KAAKqS,KAMlB,OAFAo9H,IAEO,CACLp+H,YAFgBk+H,EAAeE,OAK7BC,KAAgB,WACtB,OAAO9zI,MACNkW,EASL,OAHA/U,EAAS,CACPI,KAAMkxI,EAAYC,QAEb35H,EAAQ,CACb5X,SAAUA,EACViU,UAAWA,EACXqB,SAAUA,EACV+8H,eAAgBA,IACTM,KAAgBJ,EAAY36H,EA0BvC,SAASg7H,EAA8BjzI,EAAKsW,GAC1C,IAAI48H,EAAa58H,GAAUA,EAAO7V,KAElC,MAAO,UADiByyI,GAAc,WAAcjqG,OAAOiqG,GAAc,KAAQ,aAC3C,cAAiBlzI,EAAM,iLAgE/D,SAASmzI,EAAgBC,GAIvB,IAHA,IAAIC,EAAczxI,OAAO6E,KAAK2sI,GAC1BE,EAAgB,GAEX/3I,EAAI,EAAGA,EAAI83I,EAAYh4I,OAAQE,IAAK,CAC3C,IAAIyE,EAAMqzI,EAAY93I,GAElB01I,EAMyB,oBAAlBmC,EAASpzI,KAClBszI,EAActzI,GAAOozI,EAASpzI,IAIlC,IASIuzI,EATAC,EAAmB5xI,OAAO6E,KAAK6sI,GAWnC,KAjEF,SAA4BF,GAC1BxxI,OAAO6E,KAAK2sI,GAAUzsI,SAAQ,SAAU3G,GACtC,IAAIiyI,EAAUmB,EAASpzI,GAKvB,GAA4B,qBAJTiyI,OAAQrmI,EAAW,CACpCnL,KAAMkxI,EAAYC,OAIlB,MAAM,IAAIv8I,MAAM,YAAe2K,EAAM,iRAGvC,GAEO,qBAFIiyI,OAAQrmI,EAAW,CAC5BnL,KAAMkxI,EAAYG,yBAElB,MAAM,IAAIz8I,MAAM,YAAe2K,EAAM,6EAAqF2xI,EAAYC,KAAO,kTAoD/I6B,CAAmBH,GACnB,MAAO/vI,GACPgwI,EAAsBhwI,EAGxB,OAAO,SAAqBwD,EAAOuP,GAKjC,QAJc,IAAVvP,IACFA,EAAQ,IAGNwsI,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbx2H,EAAY,GAEPlN,EAAK,EAAGA,EAAKwjI,EAAiBn4I,OAAQ2U,IAAM,CACnD,IAAI2jI,EAAOH,EAAiBxjI,GACxBiiI,EAAUqB,EAAcK,GACxBC,EAAsB7sI,EAAM4sI,GAC5BE,EAAkB5B,EAAQ2B,EAAqBt9H,GAEnD,GAA+B,qBAApBu9H,EAAiC,CAC1C,IAAIC,EAAeb,EAA8BU,EAAMr9H,GACvD,MAAM,IAAIjhB,MAAMy+I,GAGlB52H,EAAUy2H,GAAQE,EAClBH,EAAaA,GAAcG,IAAoBD,EAIjD,OADAF,EAAaA,GAAcF,EAAiBn4I,SAAWuG,OAAO6E,KAAKM,GAAO1L,QACtD6hB,EAAYnW,GAIpC,SAASgtI,EAAkBC,EAAe3zI,GACxC,OAAO,WACL,OAAOA,EAAS2zI,EAAcrxI,MAAMzD,KAAMwD,aA0B9C,SAASsZ,EAAmBi4H,EAAgB5zI,GAC1C,GAA8B,oBAAnB4zI,EACT,OAAOF,EAAkBE,EAAgB5zI,GAG3C,GAA8B,kBAAnB4zI,GAAkD,OAAnBA,EACxC,MAAM,IAAI5+I,MAAM,0EAA+F,OAAnB4+I,EAA0B,cAAgBA,GAAkB,8FAG1J,IAAIC,EAAsB,GAE1B,IAAK,IAAIl0I,KAAOi0I,EAAgB,CAC9B,IAAID,EAAgBC,EAAej0I,GAEN,oBAAlBg0I,IACTE,EAAoBl0I,GAAO+zI,EAAkBC,EAAe3zI,IAIhE,OAAO6zI,EAGT,SAASroH,EAAgBxlB,EAAKrG,EAAKjL,GAYjC,OAXIiL,KAAOqG,EACTzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAC9BjL,MAAOA,EACPkT,YAAY,EACZG,cAAc,EACdD,UAAU,IAGZ9B,EAAIrG,GAAOjL,EAGNsR,EAGT,SAASK,EAAQlF,EAAQ+E,GACvB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GASvB,OAPII,OAAOuL,uBACT1G,EAAK/I,KAAKiF,MAAM8D,EAAM7E,OAAOuL,sBAAsB3L,IAGjD+E,IAAgBE,EAAOA,EAAKylB,QAAO,SAAUC,GAC/C,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAE/CxB,EAGT,SAAS2lB,EAAe1rB,GACtB,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CACzC,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAE/CA,EAAI,EACNmL,EAAQsZ,GAAQ,GAAMrZ,SAAQ,SAAU3G,GACtC6rB,EAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAE7B4B,OAAOyqB,0BAChBzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAEjEtZ,EAAQsZ,GAAQrZ,SAAQ,SAAU3G,GAChC4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAKjF,OAAOU,EAaT,SAASyzI,IACP,IAAK,IAAIC,EAAO1xI,UAAUrH,OAAQg5I,EAAQ,IAAI99I,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAChFU,EAAMV,GAAQjxI,UAAUixI,GAG1B,OAAqB,IAAjBU,EAAMh5I,OACD,SAAUgU,GACf,OAAOA,GAIU,IAAjBglI,EAAMh5I,OACDg5I,EAAM,GAGRA,EAAMl8I,QAAO,SAAUlC,EAAG0L,GAC/B,OAAO,WACL,OAAO1L,EAAE0L,EAAEgB,WAAM,EAAQD,gBAsB/B,SAAS4xI,IACP,IAAK,IAAIF,EAAO1xI,UAAUrH,OAAQk5I,EAAc,IAAIh+I,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IACtFY,EAAYZ,GAAQjxI,UAAUixI,GAGhC,OAAO,SAAU3B,GACf,OAAO,WACL,IAAIv9H,EAAQu9H,EAAYrvI,WAAM,EAAQD,WAElC8xI,EAAY,WACd,MAAM,IAAIn/I,MAAM,2HAGdo/I,EAAgB,CAClB9+H,SAAUlB,EAAMkB,SAChBtV,SAAU,WACR,OAAOm0I,EAAU7xI,WAAM,EAAQD,aAG/BgyI,EAAQH,EAAYnqH,KAAI,SAAUuqH,GACpC,OAAOA,EAAWF,MAGpB,OAAOroH,EAAe,GAAI3X,EAAO,CAC/BpU,SAFFm0I,EAAYL,EAAQxxI,WAAM,EAAQ+xI,EAAtBP,CAA6B1/H,EAAMpU,gB,6BCnoBrD,uFAwhBau0I,EAAiB,IAzf9B,WAoDC,aAhDU,KAAAC,WAAqB,EAOxB,KAAAn+E,WAAsC,GAKtC,KAAAv3D,IAAc,IAASC,cAgBvB,KAAA01I,aAAuB,EASpB,KAAAC,iBAA2B,EAE9B,KAAAC,mBAA6B,GAUnC91I,KAAKwtC,KAAO9oB,KAAK+e,MA2bnB,OAhbQ,YAAAsyG,WAAP,SAAkBvvI,EAAamyC,GAC1B34C,KAAK41I,aAGLj9F,IACH34C,KAAKwtC,KAAO9oB,KAAK+e,QAcZ,YAAAqxD,OAAP,sBAEC,IAAI90F,KAAK21I,UAAT,CAIA31I,KAAK61I,iBAAkB,EAEvB,IAAIroG,EAAO9oB,KAAK+e,MAEhB,IAAShiC,oBAAoB,cAoB7B,IAAK,IAAIX,KAAO,IAASvB,aACxB,GAAI,IAAe,IAASA,aAAcuB,GAAM,CAG/C,IAFA,IAAIk1I,EAAc,IAASz2I,aAAauB,GAEjCk1I,EAAY75I,OAAS,GAAG,CAC9B,IACI03G,GADAjyG,EAAuBo0I,EAAY,IACiBniC,aAExD,GAAKjyG,EAAUigD,aA4Bd,IAAcm0F,EAAap0I,QA1B3B,GAAIiyG,GAAgBA,EAAalmC,YAChC,IAEC,GADAkmC,EAAa1R,eACT0R,EAAaoiC,uBAAyB,EACzC,MAGF,MAAO5xI,GACN,IAAc2xI,EAAaniC,GAC3BA,EAAajuC,mBAAmBvhE,QAIjC,IAEC,GADAzC,EAAUugG,eACNvgG,EAAUq0I,uBAAyB,EACtC,MAGF,MAAO5xI,GACN,IAAc2xI,EAAap0I,GAC3BA,EAAUgkE,mBAAmBvhE,IAQjC,GAAIqgB,KAAK+e,MAAQ+J,EAAOxtC,KAAK81I,mBAC5B,MAKH,KAAO,IAASt2I,gBAAgBrD,OAAS,GAAG,CAE3C,IADIyF,EAAuB,IAASpC,gBAAgB,IACrCqiD,aAUd,IAAc,IAASriD,gBAAiBoC,QATxC,IACCA,EAAU8wH,kBAEX,MAAOruH,GACN,IAAc,IAAS7E,gBAAiBoC,GACxCA,EAAUgkE,mBAAmBvhE,IAShC,KAAO,IAAS5E,iBAAiBtD,OAAS,GAAG,CAGxC03G,GAFAjyG,EAAuB,IAASnC,iBAAiB,IAEGo0G,aAGxD,GAAIjyG,EAAUigD,cAAgBjgD,EAAU+rE,aAAgBkmC,GAAgBA,EAAalmC,kBAIpF,IACC/rE,EAAUqmF,oBAEX,MAAO5jF,GACN,IAAc,IAAS5E,iBAAkBmC,GACzCA,EAAUgkE,mBAAmBvhE,GAK/B,IAAc,IAAS5E,iBAAkBmC,GAI1C,KAAO,IAASlC,iBAAiBvD,OAAS,GAAG,CAC5C,IAAIyF,EAEAiyG,GAFAjyG,EAAuB,IAASlC,iBAAiB,IAEGm0G,aAExD,GAAIjyG,EAAUigD,cAAgBjgD,EAAU+rE,aAAgBkmC,GAAgBA,EAAalmC,kBAIpF,IACC/rE,EAAUogG,oBACLpgG,EAAUq8F,gBACdr8F,EAAUH,oBAAoB,oBAE/BG,EAAUq8F,gBAAiB,EAE5B,MAAO55F,GACN,IAAc,IAAS3E,iBAAkBkC,GACzCA,EAAUgkE,mBAAmBvhE,GAI/B,IAAc,IAAS3E,iBAAkBkC,GAG1C,IAAIulE,EAA2B,GAK/B,IAAa,IAASvnE,gBAAgB,SAACkB,GACtC,EAAKo1I,gBAAgBp1I,MAGtB,IAAa,IAASnB,kBAAkB,SAACmB,GACxC,EAAKq1I,kBAAkBr1I,MAIxB,IAAIs1I,GAAsB,EAkG1B,GAhGA5oG,EAAO9oB,KAAK+e,MAEZ,IAAa,IAASnkC,gBAAgB,SAACwB,EAAKxB,GAG3C,IAFA,IAAInB,EAAQ,EAELmB,EAAenD,OAAS,GAAG,CAMjC,GALA,EAAK+5I,gBAAgBp1I,GACrB,EAAKq1I,kBAAkBr1I,GAIV,KAFb3C,EAEgB,CACf,GAAIumB,KAAK+e,MAAQ+J,EAAO,EAAKsoG,mBAC5B,MAED33I,EAAQ,EAGT,IAAIkC,EAAiBf,EAAeA,EAAenD,OAAS,GAG5D,GAAIkE,IAAWA,EAAOwhD,aAAc,CACnC,GAAKxhD,EAAO+mE,yBAKX,GAAK,EAAKivE,iBAAiBh2I,GAK1B,IACCA,EAAO6mE,cAAcC,GAEtB,MAAO9iE,GACNhE,EAAOwpC,SAAU,EACjB,IAAcvqC,EAAgBe,GAC9BA,EAAOulE,mBAAmBvhE,QAT3B8iE,EAAe3oE,KAAK6B,QALrB8mE,EAAe3oE,KAAK6B,GAmBrBA,EAAOwpC,SAAU,EAElB,IAAcvqC,EAAgBe,GAG/B,IAASf,eAAewB,GAAO,IAASxB,eAAewB,GAAKoF,OAAOihE,MAGpE,IAAa,IAAS7nE,gBAAgB,SAACwB,EAAKjL,GACvCA,EAAMsG,OAAS,IAClBi6I,GAAa,MAIf,IAAa,IAAS72I,cAAc,SAACuB,EAAKjL,GACrCA,EAAMsG,OAAS,IAClBi6I,GAAa,MAMf,IAAY,IAAYp2I,KAAKw3D,aAAa,SAACl9D,GAC1CA,EAAEw6F,YAIH,IAAa,IAASl1F,gBAAgB,SAACkB,GACtC,EAAKo1I,gBAAgBp1I,MAGtB,IAAa,IAASnB,kBAAkB,SAACmB,GACxC,EAAKq1I,kBAAkBr1I,MAIxB,cAEA,IAAa,IAASlB,gBAAgB,SAACkB,GACtC,EAAKo1I,gBAAgBp1I,MAGtB,IAAa,IAASnB,kBAAkB,SAACmB,GACxC,EAAKq1I,kBAAkBr1I,MAIxB,IAASW,oBAAoB,cAEzB20I,GAAcp2I,KAAKw3D,WAAWr7D,OAAS,GAlON,GAkO6BA,OAAS,IAC1E6D,KAAKoqD,eAGFpqD,KAAK81I,mBAAqB,IAAK,CAClC,IAAI,GAAO,EAEX,IAAa,IAASv2I,cAAc,SAACuB,EAAKjL,GACrCA,EAAMsG,OAAS,IAClB,GAAO,MAIT,IAAa,IAASmD,gBAAgB,SAACwB,EAAKjL,GACvCA,EAAMsG,OAAS,IAClB,GAAO,MAIL,IACH6D,KAAK81I,mBAAqB,QAKtB,YAAAO,iBAAP,SAAwBh2I,GACvB,QAAIA,EAAO8uD,UAAY9uD,EAAO8uD,SAASvtD,WAAavB,EAAO8uD,SAASvtD,UAAU+rE,cAAgBttE,EAAO8uD,SAASvtD,UAAUu/C,aAWlH,YAAAiJ,aAAP,sBACMpqD,KAAK61I,kBAET,aAAI,WACH,EAAK/gD,YAEN90F,KAAK61I,iBAAkB,IAYlB,YAAAS,eAAP,SAAsB58D,GAAtB,WACCA,EAAUtjE,SAASlP,MAAK,SAACynD,GACpBA,aAAiB,KACpB,EAAK2nF,eAAe3nF,GAEjBA,EAAM5F,gBACL,YAAU4F,EAAO,SACpBA,EAAM4nF,iBAGN5nF,EAAMjF,aAEPiF,EAAM5F,eAAgB,OAYlB,YAAAotF,kBAAP,SAAyB5nF,GAKxB,IAFA,IAAI5uD,EAAmB,IAASA,iBAAiB4uD,GAE1C5uD,EAAiBxD,OAAS,GAAG,CACnC,IAAIkE,EAAiBV,EAAiBA,EAAiBxD,OAAS,GAChE,GAAKkE,EAAOwhD,aAWX,IAAcliD,EAAkBU,QAVhC,IACCA,EAAOgnE,2BAER,MAAOhjE,GACNhE,EAAOknD,iBAAkB,EACzB,IAAc5nD,EAAkBU,GAChCA,EAAOulE,mBAAmBvhE,MAgBvB,YAAA6xI,gBAAP,SAAuB3nF,GAItB,IADA,IAAI3uD,EAAiB,IAASA,eAAe2uD,GACtC3uD,EAAezD,OAAS,GAAG,CACjC,IAAIu9E,EAAuB95E,EAAeA,EAAezD,OAAS,GAClE,GAAKu9E,EAAU73B,aAed,IAAcjiD,EAAgB85E,QAd9B,IACCA,EAAUtjE,SAASlP,MAAK,SAAC7G,GACxBA,EAAOinE,4BAGRoS,EAAU7P,iBAEX,MAAOxlE,GACNq1E,EAAU9R,eAAgB,EAC1B,IAAchoE,EAAgB85E,GAC9BA,EAAU9T,mBAAmBvhE,MAc1B,YAAA6hE,IAAP,SAAWrwE,GACV,IAASA,IAQV,sBAAW,uBAAQ,C,IAWnB,WACC,OAAOmK,KAAK21I,W,IAZb,SAAoB9/I,GACnBmK,KAAK21I,UAAY9/I,EACZA,IACJmK,KAAK61I,iBAAkB,EACvB71I,KAAKoqD,iB,gCA5cA,EAAAosF,QAAkB,SAud1B,EAhfA,K,6BC/BA,iHACIC,EAAiBhiI,iBAEd,SAASiiI,EAAehuH,EAASiuH,EAAap8H,GACnD,OAAKk8H,EAAe/tH,GACAjU,eAAmBiU,EAA0B,oBAAVnO,EAAuBA,IAAUA,GADnDo8H,EAGhC,SAASC,EAAaluH,EAASnO,GACpC,OAAOm8H,EAAehuH,EAASA,EAASnO,K,8BCR1C,mV,o9CAeA,2BAkBA,OAjBkB,EAAAs8H,WAAd,SAAyBzmH,EAAU7tB,GAC/B,GAAY,OAAR6tB,QAAwB1jB,IAAR0jB,EAChB,MAAM,IAAIj6B,MAAM,QAAQoM,EAAI,4BAGtB,EAAAgf,WAAd,SAAyB6O,EAAa7tB,GAClC,IAAK6tB,GAAOA,EAAIzR,MAAM,SAClB,MAAM,IAAIxoB,MAAM,QAAQoM,EAAI,oCAItB,EAAAu0I,KAAd,SAAmB1mH,EAAUr3B,EAAawJ,GAEtC,KAAM6tB,KAAOr3B,GACT,MAAM,IAAI5C,MAAM,WAAWoM,EAAI,WAAW6tB,EAAG,MAGzD,EAlBA,GAqBA,2BAYA,OAXI,sBAAkB,cAAS,C,IAA3B,WACI,MAAyB,kBAAXtZ,Q,gCAGlB,sBAAkB,gBAAW,C,IAA7B,WACI,MAAuB,kBAAT1Q,MAAqB,kBAAmBA,M,gCAG1D,sBAAkB,WAAM,C,IAAxB,WACI,OAAQpG,KAAK+2I,YAAc/2I,KAAKg3I,a,gCAExC,EAZA,GAeM,WAAwB31I,EAAW41I,GACrC,IAAIC,EAAS,GAYb,OAXIC,EAAc91I,IACd61I,EAAS,yBAAyB71I,EAAK+1I,WACnCH,IACAC,GAAU,eAYhB,SAA4B71I,GAC9B,IAAMg2I,EAAO,IAAIC,WAAWj2I,GAGxB2gB,EAAM,GAOV,OANAq1H,EAAK5vI,SAAQ,SAACkd,GAEV3C,GAAO,MADK2C,EAAM,GAAK,IAAM,IACXA,EAAI3uB,SAAS,IAAG,OAI/BgsB,EAAIyE,OAAO,EAAGzE,EAAI7lB,OAAS,GAvBDo7I,CAAkBl2I,GAAK,MAE7B,kBAATA,IACd61I,EAAS,yBAAyB71I,EAAKlF,OACnC86I,IACAC,GAAU,eAAe71I,EAAI,MAG9B61I,EAoBL,WAAwB9mH,GAC1B,OAAOA,GAA8B,qBAAhBonH,cAChBpnH,aAAeonH,aAEXpnH,EAAIntB,aAAwC,gBAAzBmtB,EAAIntB,YAAYV,MAI1C,WAA4Bk1I,EAAiBC,EAAuBC,EAAwB32H,EAAa42H,EAC7E9xE,EAA+B+xE,EAA4BC,EAA0BC,G,qHAC/GC,EAAU,GACVJ,EACc,GAAMA,KADpB,M,QACMplH,EAAQ,aAEH,MACH,cAAmB,UAAUA,EADjCwlH,EAEC,G,iBAUQ,OANX,EAAgBC,IAAf11I,EAAI,KAAE1M,EAAK,KAClBmiJ,EAAQz1I,GAAQ1M,EAEhB4hJ,EAAOvxE,IAAI,IAASgyE,MAAO,IAAIR,EAAa,6BAA6BS,EAAcryE,EAAS+xE,GAAkB,KAE5GO,EAAejB,EAAcrxE,GAAW,cAAgB,OAC7C,GAAM6xE,EAAWU,KAAKr3H,EAAK,CACxC8kD,QAAO,EACPkyE,QAAS,EAAF,GAAOA,EAAYD,GAC1BK,aAAY,EACZN,gBAAe,K,cAJbQ,EAAW,SAOjBb,EAAOvxE,IAAI,IAASgyE,MAAO,IAAIR,EAAa,kDAAkDY,EAASC,WAAU,K,WAI/G,WAAuBd,GACzB,YAAe/qI,IAAX+qI,EACO,IAAIe,EAAc,IAASC,aAGvB,OAAXhB,EACO,IAAW5qH,SAGjB4qH,EAAmBvxE,IACbuxE,EAGJ,IAAIe,EAAcf,GAI7B,iBAII,WAAYiB,EAAqB9E,GAC7B5zI,KAAK04I,QAAUA,EACf14I,KAAK4zI,SAAWA,EAaxB,OAVW,YAAA/zF,QAAP,WACI,IAAMl4C,EAAgB3H,KAAK04I,QAAQC,UAAU7hJ,QAAQkJ,KAAK4zI,UACtDjsI,GAAS,GACT3H,KAAK04I,QAAQC,UAAUhtH,OAAOhkB,EAAO,GAGH,IAAlC3H,KAAK04I,QAAQC,UAAUx8I,QAAgB6D,KAAK04I,QAAQE,gBACpD54I,KAAK04I,QAAQE,iBAAiBC,OAAM,SAAC/zI,QAGjD,EAnBA,GAsBA,aAWI,WAAYg0I,GACR94I,KAAK84I,gBAAkBA,EACvB94I,KAAK+4I,cAAgB9nH,QAuB7B,OApBW,YAAAi1C,IAAP,SAAW8yE,EAAoBjzE,GAC3B,GAAIizE,GAAYh5I,KAAK84I,gBACjB,OAAQE,GACJ,KAAK,IAASC,SACd,KAAK,IAAS9iJ,MACV6J,KAAK+4I,cAAc/yI,MAAM,KAAI,IAAI0e,MAAOgrB,cAAa,KAAK,IAASspG,GAAS,KAAKjzE,GACjF,MACJ,KAAK,IAASmzE,QACVl5I,KAAK+4I,cAAchoH,KAAK,KAAI,IAAIrM,MAAOgrB,cAAa,KAAK,IAASspG,GAAS,KAAKjzE,GAChF,MACJ,KAAK,IAAS0yE,YACVz4I,KAAK+4I,cAAczkI,KAAK,KAAI,IAAIoQ,MAAOgrB,cAAa,KAAK,IAASspG,GAAS,KAAKjzE,GAChF,MACJ,QAEI/lE,KAAK+4I,cAAc7yE,IAAI,KAAI,IAAIxhD,MAAOgrB,cAAa,KAAK,IAASspG,GAAS,KAAKjzE,KAKnG,EApCA,GAuCM,aACF,IAAIozE,EAAsB,uBAI1B,OAHIC,EAASC,SACTF,EAAsB,cAEnB,CAAEA,EAAqBG,EAhMH,SAgM+BC,IAAaC,IAAcC,MAInF,WAA6B7iG,EAAiB8iG,EAAYC,EAAiBC,GAE7E,IAAIl4D,EAAoB,qBAElBm4D,EAAgBjjG,EAAQ30B,MAAM,KAmBpC,OAlBAy/D,GAAgBm4D,EAAc,GAAE,IAAIA,EAAc,GAClDn4D,GAAa,KAAK9qC,EAAO,KAGrB8qC,GADAg4D,GAAa,KAAPA,EACUA,EAAE,KAEL,eAGjBh4D,GAAa,GAAGi4D,EAGZj4D,GADAk4D,EACa,KAAKA,EAEL,4BAGjBl4D,GAAa,IAIjB,SAAS63D,IACL,IAAIH,EAASC,OAYT,MAAO,GAXP,OAAQtH,EAAQ+H,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAO/H,EAAQ+H,UAO/B,SAASL,IACL,GAAIL,EAASC,OACT,OAAOtH,EAAQgI,SAAS5pF,KAKhC,SAASqpF,IACL,OAAIJ,EAASC,OACF,SAEA,a,gDCtQf,wLAmCA,aA4FC,aA7EU,KAAA13F,WAAqB,EAKrB,KAAAuH,WAA+B,GAyExClpD,KAAK+6C,UAAY,aAsoCnB,OAloCW,YAAA8oF,MAAV,aASA,sBAAW,kBAAG,C,IAAd,WAKC,OAJK7jI,KAAKg6I,OACTh6I,KAAKg6I,KAAO,IAAS95I,cACrB,IAASgrB,IAAIglC,OAAOlwD,KAAKg6I,KAAMh6I,OAEzBA,KAAKg6I,M,gCAQb,sBAAW,iBAAE,C,IAQb,WACC,OAAOh6I,KAAKiwD,K,IATb,SAAcp6D,GAEbmK,KAAKiwD,IAAMp6D,G,gCAgBZ,sBAAW,kBAAG,C,IAAd,WAIC,OAHKmK,KAAKY,OACTZ,KAAKY,KAAO,IAAI,KAEVZ,KAAKY,M,gCAUb,sBAAW,yBAAU,C,IAArB,WAIC,OAHKZ,KAAKgwD,cACThwD,KAAKgwD,YAAc,IAAI,KAEjBhwD,KAAKgwD,a,gCAWN,YAAAy6C,cAAP,SAAqBpgE,EAAkBkkB,GACtC,IAAMrjC,EAAMlrB,KAAK+vD,WACZ7kC,EAAIizB,OAAOoQ,IACfrjC,EAAIglC,OAAO3B,EAAI,IAEHrjC,EAAIg0B,OAAOqP,GACnB/vD,KAAK,CACT6rC,SAAUA,EACV7oC,OAAQxB,QASH,YAAAsmE,kBAAP,sBACCtmE,KAAK+vD,WAAW7oD,MAAK,SAACqnD,EAAI/V,GACzB,GAAI,EAAKttB,IAAIizB,OAAOoQ,GAAK,CACxB,IAAM,EAAS,EAAKrjC,IAAIg0B,OAAOqP,GAC/B,IAAY/V,GAAM,SAACrO,GAClBA,EAAK3oC,OAAO2oC,EAAKE,UAAY,KAE9B,EAAK0lB,WAAWvB,UAAUD,QAUtB,YAAA5E,WAAP,sBAEC,GAAI,IAAU,CACb,IAAI1qD,EAASe,KAAK+pD,mBAGd9qD,GACH,IAAYA,GAAQ,SAACg7I,EAAOtyI,GAC3BsyI,EAAM,QAYV,sBAAW,qBAAM,C,IAQjB,WACC,OAAOj6I,KAAKgqD,S,IATb,SAAkBn0D,GACjBmK,KAAKgqD,QAAUn0D,G,gCAiBT,YAAAk0D,iBAAP,WACC,OAAO/pD,KAAKf,QAAU,IAASA,QAQzB,YAAA4iD,WAAP,WACC,OAAO7hD,KAAK2hD,WAMN,YAAA9B,QAAP,WACC,IAAK7/C,KAAK2hD,UAAW,CACpB3hD,KAAK2hD,WAAY,EAEjB,IAAM5qD,EAAIiJ,KAAKkpD,WAIf,IAFAlpD,KAAKkpD,WAAkB,KAEH,IAAbnyD,EAAEoF,QAAc,CACLpF,EAAEg8C,QACV8M,UAIV7/C,KAAKswF,aAGDtwF,KAAKsuD,YACRtuD,KAAKsuD,WAAWqH,OAAO1V,YAAYjgD,MAGpC,IAAMC,EAAMD,KAAKg6I,KAEN,MAAP/5I,GACH,IAASirB,IAAIsjC,UAAUvuD,KAWnB,YAAAuvD,YAAP,SAAmBhuD,GAClBxB,KAAKkpD,WAAW1qD,KAAKgD,IASf,YAAA4wD,cAAP,SAAqB5wD,GAEpB,IAAKxB,KAAK2hD,UAAW,CACpB,IAAIh6C,EAAQ,IAAe3H,KAAKkpD,WAAY1nD,GACxCmG,GAAS,GACZ3H,KAAKkpD,WAAWv9B,OAAOhkB,EAAO,GAIhCnG,EAAOq+C,WAUD,YAAAj3C,MAAP,SAA6BsxI,GACvBA,IACJA,EAAU,SAAW,IAASh6I,eAG/B,IAAIi6I,EAAkB,IAAoBn6I,KAAKiD,YAS/C,OARAk3I,EAAUD,QAAUA,EAEpBC,EAAUt5F,SAAS7gD,MAMZm6I,GASR,sBAAW,qBAAM,C,IAAjB,WAIC,OAHKn6I,KAAK+tD,UACT/tD,KAAK+tD,QAAU,IAAI,KAEb/tD,KAAK+tD,S,gCAQN,YAAAlN,SAAP,SAAgBv+C,GACfA,EAAOqzD,OAAOn3D,KAAKwB,MACnBA,KAAKsuD,WAAahsD,GASnB,sBAAW,wBAAS,C,IAWpB,WACC,OAAOtC,KAAKslD,Y,IAZb,SAAqBzvD,GACpBmK,KAAKslD,WAAazvD,G,gCAsBZ,YAAAgL,SAAP,SAAgBC,EAAajL,EAAYkL,GACxC,IAAMC,IAAIhB,KAAKC,IAAKa,EAAKjL,EAAOkL,IAc1B,YAAAE,SAAP,SAAgBH,EAAajL,GAC5B,YAD4B,IAAAA,WAAA,GACrB,IAAMqL,IAAIlB,KAAKC,IAAKa,EAAKjL,IAQ1B,YAAAy6F,WAAP,WACC,IAAM/mF,MAAMvJ,KAAKC,MAaX,YAAA0+D,WAAP,SAAkBpwD,EAAgB+lE,GAAlC,WACO/lB,EAAKoQ,YAAW,WACrB,EAAKvM,cAAcnQ,GACnB1zC,MACE+lE,GAEGryB,EAAW,IAAI,KAAS,WAC7B23B,aAAarrB,MAId,OADAvuD,KAAKkpD,WAAW1qD,KAAKyjD,GACdA,GAaD,YAAAm4F,YAAP,SAAmB7rI,EAAgB+lE,GAAnC,WACO/lB,EAAK6rF,aAAY,WACtB,EAAKhoF,cAAcnQ,GACnB1zC,MACE+lE,GAEGryB,EAAW,IAAI,KAAS,WAC7B23B,aAAarrB,MAId,OADAvuD,KAAKkpD,WAAW1qD,KAAKyjD,GACdA,GAoBR,sBAAW,qBAAM,C,IAAjB,SAAkBzzC,GACjB,IACCxO,KAAKmmE,cAAc33D,GAEpB,MAAOnK,GAIArE,KAAM4lE,mBAAmBvhE,K,gCAUvB,YAAA8hE,cAAV,SAAwB33D,GAAxB,WAEC,GAAKA,EAAL,CAKA,IAAIhN,EAAcxB,KA+SlB,GA5SA,IAAoBwO,GAAQ,SAAC6rI,EAAWxkJ,GACvC,IAUK,EAVDykJ,EAAmBzkJ,EAQvB,GALiB,YAAbwkJ,GAA2C,mBAATxkJ,GAC/BA,EAAOI,KAAKuL,GAIf,EAAKytF,YAAYorD,GAuCpB,IA/BC,IAAeC,KACZ,IAAqBA,EAAY,OAElC,IAAe94I,EAAO64I,KACnB,IAAe74I,EAAO64I,GAAWt/F,aAC5Bu/F,EAAY,aAClB94I,EAAO64I,GAAWt/F,WAAmBu/F,EAAY,MAEjD,EAAKtzC,KAAKqzC,GAed,EAAO74I,EAAO64I,IAbd,EAAO,EAAKE,oBAA0BD,EAAY,OAIjD94I,EAAO64I,GAAa,EAGpB,EAAO74I,EAAO64I,GAcZ,aAAgB,IAInB,EAAKG,gBAAgB,EAAMF,QAGvB,GAAI,aAAgB,IAIxB,EAAKG,cAAc,EAAMH,QAGrB,GAAiB,UAAbD,GAAyB,IAAeC,GAItCxjI,OAAQ,WAAawjI,KAC9B94I,EAAO64I,GAAmBvjI,OAAQ,WAAawjI,SAI5C,GAAiB,UAAbD,GAAyB,IAAeC,GAAc,CAI9D,IAAM,EAAS,EAAKpvH,IAAIg0B,OAAOo7F,GAC3B,EACH94I,EAAO64I,GAAa,EAGpB,EAAK5vC,cAAc,SAAU6vC,QAI1B,GAAI,EAAKtzC,KAAKqzC,GAKlB74I,EAAO64I,GAAaC,OAGhB,GAAI,EAAKI,WAAWL,IAAc,IAAeC,GAAc,CAInE,IAAI,IAAe,IAASl7I,kBAAkBk7I,IAI7C,MAAMnkJ,MAAM,4BAA8BmkJ,GAH1C94I,EAAO64I,GAAa,IAASj7I,kBAAkBk7I,QAO5C,GAASA,aAAuBK,EAIpCn5I,EAAO64I,GAAaC,OAGhB,GAAI,aAAgBK,EAKxB,EAAKnsI,OAAS8rI,OAGV,GAAI,aAAgB,KAAgB,aAAgB,KAAuB,aAAgB,KAM/F,GAAI,IAAcA,GAKb,aAAgB,IACnB,EAAKM,oBAAoBN,EAAa,GAGtC,EAAKO,uBAAuBP,EAAa,QAItC,GAAI,IAAeA,GAGvB,GAASA,aAAuBK,EAE/B,EAAK15F,SAAWq5F,MAEZ,CAIJ,IAAIQ,OAAa,EAEhBA,EADG,IAAqBR,EAAar5F,UACfq5F,EAAar5F,SAGnBq5F,EAGb,EAAKr5F,oBAAoB05F,EAGtB,EAAK15F,SAAUzyC,OAASssI,EAI9B,IAAaA,GAAe,SAACC,EAAUC,GAEtC,IAAIC,EAAiB,EAAKh6F,SAAU85F,GAEhCE,aAAoB,IACvB,EAAKT,gBAAgBS,EAAUD,GAEvBC,aAAoB,IAC5B,EAAKR,cAAcQ,EAAUD,GAErBC,aAAoB,IAC5B,EAAKC,0BAA0BD,EAAUD,GAEjC,EAAK/5F,SAAS85F,aAAqBJ,EAErC,EAAK15F,SAAS85F,GAAWvsI,OAASwsI,EAEhC,IAAeA,IAAe,IAAqBA,EAAW,OACtEC,EAAW,EAAKV,oBAA0BS,EAAW,QAGhDC,aAAoBN,IACvBM,EAASzsI,OAAcwsI,GAExB,EAAK/5F,SAAS85F,GAAYE,GAG1B,EAAKh6F,SAAS85F,GAAYC,EAGnBC,aAAoB,IAE5B,EAAKE,YAAYH,EAAYC,GAI7B,EAAKh6F,SAAS85F,GAAY,EAAKpvD,oBAAoBqvD,MAMlD,IAAqBV,EAAavhJ,UACjC,aAAgB,IACnB,EAAK6hJ,oBAA0BN,EAAavhJ,OAAQ,GAGpD,EAAK8hJ,uBAA6BP,EAAavhJ,OAAQ,UAenD,aAAgB,IAKP,YAAbshJ,EACH,EAAKc,YAAYb,EAAa,EAAM,GAGpC,EAAKa,YAAYb,EAAa,GAMvB,aAAgB,IAKxB,EAAKY,0BAA0B,EAAMZ,GAI7B,aAAgB,IAKxB,EAAKc,kBAAkB,EAAMd,GAIrB,aAAgB,KAAS,aAAgB,IAIjD94I,EAAO64I,GAAa,EAAK1uD,oBAAoB2uD,GAIrC,IAAe,IAAS,IAAeA,GAK/C,IAAkCA,EAAqB,IAUvDA,EAAc,EAAK3uD,oBAAoB2uD,GAGvC94I,EAAO64I,GAAaC,QAKZ,EAAKe,WAAWhB,KAIzB74I,EAAO64I,GAAaC,KAGnBt6I,KAAK2mE,aAGJ3mE,KAAK4+F,iBAAiBziG,OAAQ,CACjC,IAAIm/I,EAASt7I,KAAK4+F,iBAAiBn4F,KAAK,MAExC,MADAzG,KAAKu7I,kBAAoB,GACnBplJ,MAAMmlJ,MAeJ,YAAA3vD,oBAAV,SAA8B91F,GAC7B,GAAI,IAAeA,GAAQ,CAC1B,GAAIA,EAAM8oB,MAAM,oBACf,OAAO,YAAQ,IAAe9oB,IAE1B,GAAIA,EAAM8oB,MAAM,wBACpB,OAAO,YAAM9oB,GAGf,OAAOA,GAGE,YAAA2kJ,gBAAV,SAA0BrwG,EAAyB37B,GAAnD,WACK,IAAcA,GACjB,IAAYA,GAAQ,SAAC9G,EAA0DC,GAC9EwiC,EAAK7gC,IAAI5B,EAAM5G,IAAK4G,EAAMkN,SAAUlN,EAAMwsB,UAAY,EAAG,MAGlD,IAAe1lB,IACvB,IAAaA,GAAQ,SAAC1N,EAAK4G,GACrByiC,EAAKpiC,IAAIjH,EAAK4G,IAClByiC,EAAK7gC,IAAIxI,EAAK4G,OAMR,YAAA+yI,cAAV,SAAwBtwG,EAA4B37B,GAApD,WACK,IAAeA,GAClB,IAAaA,GAAQ,SAAC1N,EAAK4G,GACrByiC,EAAKpiC,IAAIjH,EAAK4G,IAClByiC,EAAKgV,GAAGr+C,EAAK4G,MAIP,IAAc8G,IACtB,IAAYA,GAAQ,SAAC9G,EAAwCC,GAC5DwiC,EAAKgV,GAAGz3C,EAAMnG,KAAMmG,EAAMkN,SAAU,OAY7B,YAAAsmI,0BAAV,SAAoC/wG,EAAoC37B,GAInE,IAAeA,IAIlB,IAAaA,GAAQ,SAACusI,EAAUC,GAC/B,IAAIC,GAIHA,EADe,YAAZF,EACQ5wG,EAAK8W,SAER9W,EAAKgU,OAAO48F,GACT5wG,EAAK+U,OAAO67F,GAGZ5wG,EAAKhnC,OAAO43I,cAIAJ,EACvBM,EAASzsI,OAASwsI,EAEV,IAAeC,IAAa,IAAeD,GACnD,IAAkCA,EAAoBC,GAGtDA,EAAS/qF,OAAO6qF,EAAUC,OAcpB,YAAAI,kBAAV,SAA4BjxG,EAA4B37B,GAInD,IAAeA,IAKlB,IAAaA,GAAQ,SAACusI,EAAUC,GAC/B7wG,EAAK+lB,OAAO6qF,EAAUC,OAYf,YAAAJ,oBAAV,SAA8BN,EAAkBnwG,GAAhD,WA8CC,IA5CA,IAAYmwG,GAAa,SAAC5yI,EAAOC,GAChC,IACIszI,EADA15I,EAAO,EAAKi6I,mBAAmB9zI,GAEnC,GAAIyiC,EAAK+V,SAASv4C,KAAiBD,EAAM,YACxCuzI,EAAW9wG,EAAKgW,SAASx4C,OAErB,IAASD,aAAiBizI,EAG9B,YADAxwG,EAAK3rC,KAAKkJ,GAIVuzI,EADQ15I,EACG4oC,EAAKhnC,OAAO5B,GAGZ4oC,EAAKhnC,SAGbuE,IAAUuzI,GAKT,IAAevzI,KAIduzI,aAAoBN,EACjBM,EAAUzsI,OAAS9G,EAEjB,IAAeuzI,IAAa,IAAevzI,GACnD,IAAkCA,EAAeuzI,GAGjD9wG,EAAKiW,SAASjW,EAAKrzC,QAAQmkJ,GAAWvzI,OAUnC4yI,EAAYn+I,OAASguC,EAAKhuC,QAChCguC,EAAK1kC,OAWG,YAAAo1I,uBAAV,SAAiCP,EAAkBnwG,GAAnD,WAEC,IAAYmwG,GAAa,SAAC5yI,EAAOC,GAChC,IACIszI,EADA15I,EAAO,EAAKi6I,mBAAmB9zI,GAGlCuzI,EADG15I,EACQ4oC,EAAKhnC,OAAO5B,GAGZ4oC,EAAKhnC,SAGb,IAAeuE,KAIduzI,aAAoBN,EACjBM,EAAUzsI,OAAS9G,EAEjB,IAAeuzI,IAAa,IAAevzI,GACnD,IAAkCA,EAAeuzI,GAGjD9wG,EAAKsxG,OAAO/zI,QAcN,YAAAyzI,YAAV,SAAsBb,EAAkBnwG,EAAiBh9B,GAAzD,WAGM,IAAcmtI,KAClBA,EAAc,CAACA,IAKhB,IAAMoB,EAAYvxG,EAAKhuC,OA4DvB,IA3DA,IAAYm+I,GAAa,SAAC5yI,EAAOC,GAEhC,GAAI,IAAeD,GAAQ,CAW1B,IAAIuzI,OAAQ,EACZ,GAAKtzI,EAAQ+zI,IAAqBh0I,EAAM,YACvCuzI,EAAW9wG,EAAKgW,SAASx4C,OAErB,IAASD,aAAiBizI,EAG9B,YADAxwG,EAAK3rC,KAAKkJ,GAIVuzI,EAAW,EAAKU,oBAAoBj0I,GAChCyF,EACH8tI,EAAS9tI,OAASA,EAGlBg9B,EAAK3rC,KAAKy8I,GAMRA,aAAoBN,EACjBM,EAAUzsI,OAAS9G,EAEjB,IAAeuzI,IAAa,IAAevzI,IACnD,IAAkCA,EAAeuzI,QAQ9C9wG,EAAK+V,SAASv4C,GACjBwiC,EAAKiW,SAASz4C,EAAOD,GAGrByiC,EAAK3rC,KAAKkJ,MASN4yI,EAAYn+I,OAASguC,EAAKhuC,QAChCguC,EAAK1kC,OAeG,YAAAkhE,YAAV,SAAsB5vE,EAAW0L,GAChC,OAAI1L,GAAK0L,EACD,EAKM,YAAL1L,GACA,EAEK,YAAL0L,EACD,EAIA,GAaC,YAAAukG,KAAV,SAAev0D,GACd,OAA6C,GAAtC,IAAe,CAAC,UAAWA,IAUzB,YAAAioG,WAAV,SAAqBjoG,GACpB,OAAO,GAUE,YAAA8nG,oBAAV,SAA8Bx/F,GAC7B,GAAI,IAAe,IAAS37C,kBAAkB27C,IAC7C,OAAO,IAAI,IAAS37C,kBAAkB27C,GAGtC,MAAM5kD,MAAM,kBAAqB4kD,EAAY,OAYrC,YAAA4gG,oBAAV,SAA8BntI,GAC7B,IAAIhC,EAIJ,OAHI,IAAegC,EAAM,QACxBhC,EAAMxM,KAAKu6I,oBAAoB/rI,EAAM,OAEjChC,GACGgC,GAYC,YAAAgtI,mBAAV,SAA6BhtI,GAC5B,GAAI,IAAeA,EAAM,MAAW,CACnC,GAAI,IAAe,IAASpP,kBAAkBoP,EAAM,OACnD,OAAO,IAASpP,kBAAkBoP,EAAM,MAGxC,MAAMrY,MAAM,kBAAqBqY,EAAM,KAAW,QAa3C,YAAAygF,YAAV,SAAsBjnF,GACrB,OAAOA,KAAQhI,MASN,YAAAq7I,WAAV,SAAqBv6I,GACpB,OAAiD,IAA1C,CAAC,OAAQ,eAAehK,QAAQgK,IAQxC,sBAAc,+BAAgB,C,IAA9B,WAIC,OAHKd,KAAKu7I,oBACTv7I,KAAKu7I,kBAAoB,IAEnBv7I,KAAKu7I,mB,gCAGd,EAnuCA,GA+uCA,cAKC,mBACC,cAAO,K,OACP,EAAKxgG,UAAY,mB,EA+FnB,OAtGsC,iBAqBrC,sBAAW,qBAAM,C,IAAjB,WAKC,OAJK/6C,KAAKsmD,mBACTtmD,KAAKsmD,iBAAmB,IAAI,IAC5BtmD,KAAKkpD,WAAW1qD,KAAKwB,KAAKsmD,mBAEpBtmD,KAAKsmD,kB,gCAgBN,YAAAnlD,SAAP,SAAmDC,EAAgBC,GAE9DrB,KAAKsmD,kBACJtmD,KAAKhB,OAAOsC,UAAUF,KACrBC,GACHA,EAAKE,KAAOH,EACZC,EAAKG,OAASH,EAAKG,QAAUxB,KACvBA,KAAKhB,OAAQmC,SAASC,EAAW,CACtCG,KAAMH,EACNI,OAAQxB,QAIHA,KAAKhB,OAAQmC,SAASC,EAAW,CACtCG,KAAMH,EACNI,OAAQxB,SAcN,YAAAyB,oBAAP,SAA8DL,EAAgBC,GAEzErB,KAAKsmD,kBACJtmD,KAAKhB,OAAOsC,UAAUF,KACrBC,GACHA,EAAKE,KAAOH,EACZC,EAAKG,OAASH,EAAKG,QAAUxB,KACvBA,KAAKhB,OAAQyC,oBAAoBL,EAAWC,IAG5CrB,KAAKhB,OAAQyC,oBAAoBL,EAAW,CACjDG,KAAMH,EACNI,OAAQxB,SAYN,YAAA6gD,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACXA,EAAOwlC,kBACVtmD,KAAKhB,OAAO6hD,SAAS//B,EAAOwlC,mBAI/B,EAtGA,CAAsCq0F,I,gBCjwCpCllJ,EAAOC,QAAUC,EAAQ,IAARA,I,8BCfnB,SAASimJ,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAFxC,CAMI7J,EAUJ,IAEE8J,+BAA+BD,SAASA,GACxC,MAAO7qI,GAGPkgB,QAAQjrB,MAAM+K,KAOhB6qI,GACAnmJ,EAAOC,QAAUC,EAAQ,M,6BC6H3B,kCAGO,IAAMymB,EAAmB,CAC/B6pD,SAAS,EACTwI,mBAAmB,EACnBjd,gBAAiB,YACjB3H,kBAAkB,EAClBz4C,gBAAiB,GACjB4oE,oBAAoB,EACpBj6E,OAAO,EACP45E,aAAa,EACbjL,SAAU,GACV1I,gBAAgB,EAChByrC,mBAAmB,EACnBhtD,MAAO,K,6BC9KO,SAAS93B,EAAgBxlB,EAAKrG,EAAKjL,GAYhD,OAXIiL,KAAOqG,EACTzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAC9BjL,MAAOA,EACPkT,YAAY,EACZG,cAAc,EACdD,UAAU,IAGZ9B,EAAIrG,GAAOjL,EAGNsR,EAZT,mC,cCMA1R,EAAOC,QANP,SAAgCyR,GAC9B,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CACnC,QAAWA,IAKf1R,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQomJ,YAAa,G,6BCPxE,4BAUeC,UATf,SAAc50I,EAAKikG,GAEjB,IADA,IAAI5iG,EAAc2R,IAAS,GAAIhT,GACtB9K,EAAI,EAAGA,EAAI+uG,EAAOjvG,OAAQE,IAAK,QAE/BmM,EADG4iG,EAAO/uG,IAGnB,OAAOmM,I,6BCPT,+KAuKA,cAkEC,mBAGC,cAAO,K,OAhEE,EAAAwzI,OAAS,IAAI,IAWb,EAAAC,cAA8C,GAK9C,EAAAC,gBAA4B,GAK5B,EAAAC,aAAc,EAoBjB,EAAAjvF,QAAU,IAAI,IAAmC,GAK9C,EAAAkvF,UAAW,EAKX,EAAAC,qBAAyC,GAK3C,EAAAC,UAAsB,GAS7B,EAAKvhG,UAAY,aAGjB,EAAKwhG,MAAMv9I,OAAOmgD,GAAG,YAAY,WAAQ,EAAKq9F,gBAAiB,GAC/D,EAAKD,MAAMv9I,OAAOmgD,GAAG,WAAW,WAAQ,EAAKq9F,gBAAiB,GAC9D,EAAKtzF,WAAW1qD,KAAK,EAAK+9I,MAAMv9I,QAGhC,EAAK2qD,a,EAgYP,OA9cgC,iBAuF/B,sBAAW,wBAAS,C,IA6BpB,WACC,OAAO3pD,KAAKy8I,Y,IA9Bb,SAAqB5mJ,GAArB,WAGKA,GAASmK,KAAKy8I,aAKlBz8I,KAAK08I,4BAGL18I,KAAKy8I,WAAa5mJ,EAGlBmK,KAAKq8I,qBAAqB79I,KAAK,IAAewB,KAAK4B,WAAW5C,OAAOmgD,GAAG,eAAe,WAAQ,EAAKq9F,eAAiBx8I,OACrHA,KAAKq8I,qBAAqB79I,KAAK,IAAewB,KAAK4B,WAAW5C,OAAOmgD,GAAG,iBAAiB,WACpF,EAAKs9F,WAAWlwF,WACnB,EAAKiwF,YAAW,KAEfx8I,OAGHA,KAAK28I,SAAU,I,gCAiBhB,sBAAW,sBAAO,C,IAYlB,WACC,OAAO38I,KAAKktD,QAAQzpD,MAAM,UAAWzD,KAAKo8I,W,IAb3C,SAAmBvmJ,GACdmK,KAAKo8I,UAAYvmJ,IACpBmK,KAAKo8I,SAAWvmJ,EAGhBmK,KAAK48I,e,gCAqBP,sBAAW,yBAAU,C,IAYrB,WACC,OAAO58I,KAAKktD,QAAQzpD,MAAM,aAAczD,KAAKm8I,c,IAb9C,SAAsBtmJ,GACjBmK,KAAKm8I,aAAetmJ,IACvBmK,KAAKm8I,YAActmJ,EAGnBmK,KAAK48I,e,gCAsBP,sBAAW,oBAAK,C,IAShB,WACC,OAAO58I,KAAKktD,QAAQzpD,MAAM,QAASzD,KAAKg8I,S,IAVzC,SAAiBnmJ,GAChBmK,KAAKg8I,OAASnmJ,EACdmK,KAAKo8I,UAAW,EAChBp8I,KAAK48I,c,gCAgBN,sBAAW,2BAAY,C,IAAvB,WACC,OAAO58I,KAAKktD,QAAQzpD,MAAM,eAAgBo5I,I,gCAU3C,sBAAW,uBAAQ,C,IAAnB,WAGC,IAAIN,EAAQ,IAAI,IAYhB,OAPIv8I,KAAK88I,YACRP,EAAM17F,SAAS7gD,KAAK68I,cAIrBN,EAAM17F,SAAS7gD,KAAKu8I,OAEbv8I,KAAKktD,QAAQzpD,MAAM,WAAY84I,I,gCAS7B,YAAAQ,UAAV,SAAoBC,GACnB,IAAMvxD,EAAOzrF,KAAKi8I,cAAce,GAChC,QAAO,IAAevxD,IAAQA,GASxB,YAAA+wD,WAAP,SAAkBve,GAAlB,gBAAkB,IAAAA,OAAA,GAGjB,IAAIse,EAAQv8I,KAAKi9I,SACjB,GAAKV,GAAyB,GAAhBA,EAAMpgJ,OAApB,CAKA,IAAI+gJ,GAAwB,EAEtBt7I,EAAY,IAAe5B,KAAK4B,WAyBtC,GAtBA,IAAW26I,EAAMl3I,YAAY,SAAComF,GAGxBA,EAAKl9B,KACTk9B,EAAKl9B,GAAK,IAASruD,eAIpB,IAAIuD,EAAQgoF,EAAK/I,SAAS9gF,IAGrB6B,IAAU,EAAKs5I,UAAUtxD,EAAKl9B,MAAU9qD,GAAS,EAAKs5I,UAAUtxD,EAAKl9B,OACzE2uF,GAAe,GAEhB,EAAKjB,cAAcxwD,EAAKl9B,IAAM9qD,KAG3Bw6H,IACHif,GAAe,GAIZA,EAAc,CAEjB,IAAKl9I,KAAK4B,UAAU2qD,UAUnB,OALA3qD,EAAUoqD,QAAS,OACnBpqD,EAAU5C,OAAOggE,KAAK,SAAS,SAACpG,GAC/BA,EAAGp3D,OAAOqiE,KAAK,GACf,EAAK+4E,gBAIP58I,KAAKyB,oBAAoB,gBACzBzB,KAAK48I,gBAYA,YAAAA,WAAP,SAAkBp7I,GAAlB,WAEO27I,EAAa,IAAe37I,GAC/BA,EACA,IAAexB,KAAK4B,WAEnBw7I,GAAsB,EAC1B,GAAIp9I,KAAK28I,QAAS,CACjB,IAAI,GAAY,EAChB,IAAW38I,KAAKi9I,SAAS53I,YAAY,SAAComF,GAGrC,IAAI5jF,EAAQ,EAAK4O,SAASg1E,EAAM0xD,GAG5Bt1I,IAKEu1I,KAEyD,IAAzD,IAAe,EAAKlB,gBAAiBiB,EAAUl9I,MAGlDk9I,EAAU1wF,SAAS,EAAK4wF,gBAAgBF,GAAY,GAErDC,GAAsB,GAInB,EAAKL,UAAU,IAAetxD,EAAKl9B,OAEtC1mD,EAAMouD,mBAAqB,EAC3B,EAAKqnF,eAAeH,EAAWt1I,GAC/B,EAAKpG,oBAAoB,cAAe,CACvCgqF,KAAMA,IAEP,GAAY,OAKX,EACH,IAAezrF,KAAKk8I,gBAAiBiB,EAAUl9I,KAG/C,IAAcD,KAAKk8I,gBAAiBiB,EAAUl9I,KAK5Ck9I,EAAU/mI,UACb,IAAW+mI,EAAU/mI,SAAS/Q,YAAY,SAACspD,GAC1C,EAAKiuF,WAAWjuF,OAcT,YAAAl4C,SAAV,SAAmBg1E,EAAuBjqF,GACzC,IAAIqhF,EAAU,cAAgB4I,EAAKl9B,GAC/BgvF,EAAQ/7I,EAAOvB,IAAM,IAAM4iF,EAC/B,IAA+C,IAA3C,IAAe7iF,KAAKs8I,UAAWiB,GAAnC,CAGK,GAAK/7I,EAAOyrD,OAAO9O,OAAO0kC,GAQ9B,OAAOrhF,EAAOyrD,OAAO/N,OAAO2jC,GAP5B,IAAIh7E,EAAQ4jF,EAAK5jF,MAAMrG,EAAQqhF,GAI/B,OAHKh7E,GACJ7H,KAAKs8I,UAAU99I,KAAK++I,GAEd11I,IAcC,YAAAw1I,gBAAV,SAA0B77I,GACzB,OAAIA,EAAOyrD,OAAO9O,OAAO,sBACjB38C,EAAOyrD,OAAO/N,OAAO,sBAEtB19C,EAAOyrD,OAAO9pD,OAAO,uBAUnB,YAAAm6I,eAAV,SAAyB97I,EAAaqG,GAAtC,WAEO6kD,EAAe1sD,KAAKq9I,gBAAgB77I,GAC1C,IAAaqG,EAAM2iC,YAAY,SAAC1pC,EAAKsvB,GAC/B,IAAes8B,EAAaliB,WAAW1pC,MAC3C4rD,EAAaliB,WAAW1pC,GAAO,EAAK9J,SAASwK,EAAQV,OAGvDU,EAAOirD,SAAS5kD,IAWV,YAAA7Q,SAAP,SAAgBwK,EAAa6oC,GAG5B,IAAIx0C,EAAa2L,EAAO+hD,iBAAiBlZ,GAIzC,OAHK,IAAex0C,IAAU,IAAe2L,EAAO6oC,MACnDx0C,EAAQ2L,EAAO6oC,IAETx0C,GAMD,YAAAgqD,QAAP,WACC7/C,KAAK08I,4BACL,YAAM78F,QAAO,YAMJ,YAAA68F,0BAAV,WAEC,IADA,IAAIz6F,EAAWjiD,KAAKq8I,qBAAqB52I,MAClCw8C,GACNA,EAASpC,UACToC,EAAWjiD,KAAKq8I,qBAAqB52I,OAIxC,EA9cA,CAAgC,KAqdrBo3I,EAAe,IAAI,IAC9BA,EAAa79I,OAAOmgD,GAAG,YAAY,SAACyZ,GACnCA,EAAGxZ,SAASmP,GAAK,IAASruD,iBAO3B,+BA+HA,OAlHQ,EAAA6iF,SAAP,SAAgBrJ,GACf,OAAOA,EAAU5nB,YAAc0rF,EAAsBC,KAG/C,EAAA76D,QAAP,SAAelJ,GACd,OAAOA,EAAU5nB,YAAc0rF,EAAsBE,IAG/C,EAAAvlD,OAAP,SAAcze,GACb,OAAOA,EAAU5nB,YAAc0rF,EAAsBz/D,GAG/C,EAAA4/D,OAAP,SAAcjkE,GACb,OAAOA,EAAU5nB,YAAc0rF,EAAsBrkH,GAG/C,EAAAykH,OAAP,SAAclkE,GACb,OAAOA,EAAU5nB,YAAc0rF,EAAsBvpI,GAG/C,EAAA4pI,QAAP,SAAenkE,GACd,OAAOA,EAAU5nB,YAAc0rF,EAAsBM,IAG/C,EAAAC,SAAP,SAAgBrkE,GACf,OAAOA,EAAU5nB,YAAc0rF,EAAsBQ,KAI/C,EAAAh7D,UAAP,SAAiBtJ,GAChB,OAAOA,EAAU3nB,aAAeyrF,EAAsBC,KAGhD,EAAA36D,SAAP,SAAgBpJ,GACf,OAAOA,EAAU3nB,aAAeyrF,EAAsBE,IAGhD,EAAAO,QAAP,SAAevkE,GACd,OAAOA,EAAU3nB,aAAeyrF,EAAsBz/D,GAGhD,EAAAmgE,QAAP,SAAexkE,GACd,OAAOA,EAAU3nB,aAAeyrF,EAAsBrkH,GAGhD,EAAAglH,QAAP,SAAezkE,GACd,OAAOA,EAAU3nB,aAAeyrF,EAAsBvpI,GAGhD,EAAAmqI,SAAP,SAAgB1kE,GACf,OAAOA,EAAU3nB,aAAeyrF,EAAsBM,IAGhD,EAAAO,UAAP,SAAiB3kE,GAChB,OAAOA,EAAU3nB,aAAeyrF,EAAsBQ,KAIhD,EAAAM,MAAP,SAAa5kE,GACZ,OAAQA,EAAU5nB,YAAc0rF,EAAsBC,KAAS/jE,EAAU3nB,aAAeyrF,EAAsBC,KAGxG,EAAAt6D,KAAP,SAAYzJ,GACX,OAAQA,EAAU5nB,YAAc0rF,EAAsBE,IAAQhkE,EAAU3nB,aAAeyrF,EAAsBE,IAGvG,EAAAa,IAAP,SAAW7kE,GACV,OAAQA,EAAU5nB,YAAc0rF,EAAsBz/D,GAAOrE,EAAU3nB,aAAeyrF,EAAsBz/D,GAGtG,EAAAygE,IAAP,SAAW9kE,GACV,OAAQA,EAAU5nB,YAAc0rF,EAAsBrkH,GAAOugD,EAAU3nB,aAAeyrF,EAAsBrkH,GAGtG,EAAAslH,IAAP,SAAW/kE,GACV,OAAQA,EAAU5nB,YAAc0rF,EAAsBvpI,GAAOylE,EAAU3nB,aAAeyrF,EAAsBvpI,GAGtG,EAAAyqI,KAAP,SAAYhlE,GACX,OAAQA,EAAU5nB,YAAc0rF,EAAsBM,IAAQpkE,EAAU3nB,aAAeyrF,EAAsBM,IAGvG,EAAAa,MAAP,SAAajlE,GACZ,OAAQA,EAAU5nB,YAAc0rF,EAAsBQ,KAAStkE,EAAU3nB,aAAeyrF,EAAsBQ,KAIxG,EAAAY,SAAP,SAAgBllE,GACf,OAAQA,EAAU5nB,YAAc0rF,EAAsBC,KAAS/jE,EAAU3nB,aAAeyrF,EAAsBC,KAGxG,EAAAroD,QAAP,SAAe1b,GACd,OAAQA,EAAU5nB,YAAc0rF,EAAsBE,IAAQhkE,EAAU3nB,aAAeyrF,EAAsBE,IAGvG,EAAAmB,OAAP,SAAcnlE,GACb,OAAQA,EAAU5nB,YAAc0rF,EAAsBz/D,GAAOrE,EAAU3nB,aAAeyrF,EAAsBz/D,GAGtG,EAAA+gE,OAAP,SAAcplE,GACb,OAAQA,EAAU5nB,YAAc0rF,EAAsBrkH,GAAOugD,EAAU3nB,aAAeyrF,EAAsBrkH,GAGtG,EAAA4lH,OAAP,SAAcrlE,GACb,OAAQA,EAAU5nB,YAAc0rF,EAAsBvpI,GAAOylE,EAAU3nB,aAAeyrF,EAAsBvpI,GAGtG,EAAA+qI,QAAP,SAAetlE,GACd,OAAQA,EAAU5nB,YAAc0rF,EAAsBM,IAAQpkE,EAAU3nB,aAAeyrF,EAAsBM,IAGvG,EAAAmB,SAAP,SAAgBvlE,GACf,OAAQA,EAAU5nB,YAAc0rF,EAAsBQ,KAAStkE,EAAU3nB,aAAeyrF,EAAsBQ,KA1HxG,EAAAP,IAAM,IACN,EAAAC,GAAK,IACL,EAAA3/D,EAAI,IACJ,EAAA5kD,EAAI,IACJ,EAAAllB,EAAI,IACJ,EAAA6pI,GAAK,IACL,EAAAE,IAAM,IAsHd,EA/HA,I,47BC5nBMkB,E,oJACJC,QAAUC,YAAc,EAAD,O,sCAEvBC,kB,OACS,uBAAQF,QAASn/I,KAAjB,QAA+BoW,SAAUpW,KAAKua,MAAMnE,Y,GAJnC3B,IAAMgmE,W,ICA5B6kE,E,oJACJH,QAAUC,YAAc,EAAD,O,sCAEvBC,kB,OACS,uBAAQF,QAASn/I,KAAjB,QAA+BoW,SAAUpW,KAAKua,MAAMnE,Y,GAJtC3B,IAAMgmE,WCPxB,IAAM8kE,EAAoB,SAACrvH,EAAIsvH,G,MACtB,oBAAPtvH,EAAoBA,EAA3B,GAD+B,GAGpBuvH,EAAsB,SAACvvH,EAAIsvH,G,MACjB,kBAAPtvH,EACVwvH,YAAexvH,EAAI,KAAM,KADtB,GAAP,GCCIyvH,EAAiB,SAAAxiE,G,OAAC,GAClBxjE,EAAelF,IAAfkF,WACN,qBAAWA,IACTA,KAOF,IAAMimI,EAAajmI,GACjB,c,IAEIkmI,EAMC,EANDA,SACAC,EAKC,EALDA,SACA9kG,EAIC,EAJDA,QACG+kG,EAGF,iDACKv+I,EAAWu+I,EADhB,OAGCxlI,EAAQ,OAAH,IAAG,CAAH,MAEPygC,QAAS,SAAAmJ,G,IAEL,GAAanJ,KACb,MAAO9zB,G,MACPi9B,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEY3iD,GA7BtB,SAAyB2iD,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BS67F,CAJH,KAME77F,mBACA27F,Q,OAOJvlI,MADEolI,IAAJ,GACcllI,GAEZF,EAGK,sBAAP,MAWJ,IAAM0lI,EAAOtmI,GACX,c,QAEI/X,iBAOC,MAPWg+I,EAOX,EANDlpJ,EAMC,EANDA,QACAw5B,EAKC,EALDA,GACA2vH,EAIC,EAJDA,SACGE,EAGF,uD,OAED,kBAACG,IAAD,eACG,SAAA/pI,GACC,mB,IAEQgpI,EAAYhpI,EAHV,QAKJkL,EAAWo+H,EACfF,EAAkBrvH,EAAI/Z,EADY,UAElCA,EAFF,UAKMmL,EAAOD,EAAW89H,aAAH,GAArB,GACM5kI,EAAQ,OAAH,IAAG,CAAH,MAET+G,KAFS,EAGTw+H,SAHS,W,IAIDz+H,EAAWk+H,EAAkBrvH,EAAI/Z,EAAvC,WACezf,EAAUyoJ,EAAH,QAAqBA,EAA3C,MAEA1lF,M,OAKAkmF,IAAJ,EACEplI,MAAYE,GAAZF,EAEAA,aAGK9F,oBAAP,SCvGJkrI,EAAiB,SAAAxiE,G,OAAC,GAClBxjE,EAAelF,IAAfkF,WACN,qBAAW,IACTA,KAUF,IAAMwmI,EAAUxmI,GACd,c,QAEI,gBAAgBymI,OAcf,MAd6B,OAc7B,E,IAbDC,uBAaC,MAbiB,SAajB,EAZDC,EAYC,EAZDA,YACWC,EAWV,EAXDxlG,UACAylG,EAUC,EAVDA,MACUC,EAST,EATDrqF,SACUsqF,EAQT,EARDr/H,SACA2M,EAOC,EAPDA,OACO2yH,EAMN,EAND1lG,MACA/qB,EAKC,EALDA,GACA2vH,EAIC,EAJDA,SACGE,EAGF,2I,OAED,kBAACG,IAAD,eACG,SAAA/pI,GACC,mB,IAEMqpI,EAAkBkB,GAAgBvqI,EAAxC,SACMyqI,EAAanB,EACjBF,EAAkBrvH,EADkB,GAAtC,GAIkBpkB,EAAS80I,EARjB,SAUJC,EACJ/0I,GAAQA,sCADV,QAGM6S,EAAQkiI,EACVC,YAAUtB,EAAD,SAA2B,CAClC1zI,KADkC,EAElC00I,MAFkC,EAGlCxyH,WAJN,KAOMooC,KAAcqqF,EAChBA,EAAa9hI,EADe,GAAhC,GAIMo8B,EAAYqb,EAnD5B,W,2BAA2B2qF,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAA1kJ,G,OAAC,KAAnB,KAAP,KAmDY2kJ,CAAeT,EADO,GAA1B,EAGMtlG,EAAQmb,EAAW,OAAH,IAAG,CAAH,WAAtB,EAEM77C,EAAQ,OAAH,IAAG,CAAH,C,eACQ67C,GAAD,GADP,KAETrb,UAFS,EAGTE,MAHS,EAIT/qB,GAAI0wH,GAjCI,G,OAsCNjB,IAAJ,EACEplI,MAAYE,GAAZF,EAEAA,aAGK,oBAAP,U,gBCrFV,IAAIs/B,EAAU,EAAQ,KAA0C,QAEhE,SAASonG,EAAyBC,GAChC,GAAuB,oBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAAkCC,GACnE,OAAOA,EAAcG,EAAmBD,IACvCF,GA4CLzrJ,EAAOC,QAzCP,SAAiCyR,EAAK+5I,GACpC,IAAKA,GAAe/5I,GAAOA,EAAI20I,WAC7B,OAAO30I,EAGT,GAAY,OAARA,GAAiC,WAAjB0yC,EAAQ1yC,IAAoC,oBAARA,EACtD,MAAO,CACL,QAAWA,GAIf,IAAIm6I,EAAQL,EAAyBC,GAErC,GAAII,GAASA,EAAMv5I,IAAIZ,GACrB,OAAOm6I,EAAMpgJ,IAAIiG,GAGnB,IAAIo6I,EAAS,GACTC,EAAwB9+I,OAAOsG,gBAAkBtG,OAAOoG,yBAE5D,IAAK,IAAIhI,KAAOqG,EACd,GAAY,YAARrG,GAAqB4B,OAAOQ,UAAUJ,eAAe7M,KAAKkR,EAAKrG,GAAM,CACvE,IAAI+H,EAAO24I,EAAwB9+I,OAAOoG,yBAAyB3B,EAAKrG,GAAO,KAE3E+H,IAASA,EAAK3H,KAAO2H,EAAK7H,KAC5B0B,OAAOsG,eAAeu4I,EAAQzgJ,EAAK+H,GAEnC04I,EAAOzgJ,GAAOqG,EAAIrG,GAWxB,OANAygJ,EAAgB,QAAIp6I,EAEhBm6I,GACFA,EAAMtgJ,IAAImG,EAAKo6I,GAGVA,GAIT9rJ,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQomJ,YAAa,G,6BCrDxE,4MASO,IAKI2F,EAAiB,SAKjBC,EAAiB,SAKjBjqG,EAAe,OAKfkqG,EAAmB,WAKnBC,EAAsB,mBAKtBC,EAAuB,wB,6BCrClCn/I,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQosJ,YAAcpsJ,EAAQqsJ,cAAgBrsJ,EAAQssJ,YAActsJ,EAAQusJ,YAAcvsJ,EAAQwsJ,YAAcxsJ,EAAQysJ,aAAezsJ,EAAQ0sJ,cAAW11I,EAE1J,IAEI21I,EAAaC,EAFD3sJ,EAAQ,MAMpB4sJ,EAAiBD,EAFD3sJ,EAAQ,MAIxB6sJ,EAAe7sJ,EAAQ,KAEvB8sJ,EAAgBH,EAAuBE,GAIvCE,EAAgBJ,EAFD3sJ,EAAQ,MAMvBgtJ,EAAkBL,EAFD3sJ,EAAQ,MAMzBitJ,EAAgBN,EAFD3sJ,EAAQ,MAI3B,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAEmJ,QAASnJ,GAcvFzR,EAAQ0sJ,SAAWC,EAAW/xI,QAC9B5a,EAAQysJ,aAAeI,EAAejyI,QACtC5a,EAAQwsJ,YAAcQ,EAAcpyI,QACpC5a,EAAQusJ,YAAcO,EAAaP,YACnCvsJ,EAAQssJ,YAAcS,EAAcnyI,QACpC5a,EAAQqsJ,cAAgBY,EAAgBryI,QACxC5a,EAAQosJ,YAAcc,EAActyI,S,6BCjDpC,IAAIuyI,EAA0BltJ,EAAQ,IAElC2sJ,EAAyB3sJ,EAAQ,IAErC+M,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAElB,IAAIwyI,EAAkBR,EAAuB3sJ,EAAQ,MAEjDotJ,EAAmBT,EAAuB3sJ,EAAQ,MAElDqtJ,EAA4BV,EAAuB3sJ,EAAQ,MAE3D8e,EAAQouI,EAAwBltJ,EAAQ,IAExCstJ,EAAcX,EAAuB3sJ,EAAQ,IAE7CutJ,EAAYZ,EAAuB3sJ,EAAQ,MAE3CwtJ,EAAuBxtJ,EAAQ,KAE/BytJ,EAASztJ,EAAQ,MAIrB,EAAIwtJ,EAAqBtnG,iBAAiB,WAC1C,IAAIM,EAAO1nC,EAAMkF,YAAW,SAAUY,EAAOiB,GAC3C,IAAIu/B,EAAYxgC,EAAMwgC,UAClBD,EAAOvgC,EAAMugC,KACbsB,EAAO7hC,EAAM6hC,KACbC,EAAS9hC,EAAM8hC,OACfC,EAAW/hC,EAAM+hC,SACjBtB,EAAUzgC,EAAMygC,QAChBc,EAAevhC,EAAMuhC,aACrBZ,GAAY,EAAI8nG,EAA0B1yI,SAASiK,EAAO,CAAC,YAAa,OAAQ,OAAQ,SAAU,WAAY,UAAW,iBACzHgiC,GAAc,EAAI0mG,EAAY3yI,SAAS,WAAW,EAAIyyI,EAAiBzyI,SAAS,GAAI,WAAWpK,OAAO40C,EAAKv4C,MAAOsR,QAAQinC,EAAKv4C,OAAQw4C,GACvIyB,GAAiB,EAAIymG,EAAY3yI,SAAS,CAC5C,iBAAkB8rC,GAAsB,YAAdtB,EAAKv4C,OAE7Bk6C,EAAeH,OAEE5vC,IAAjB+vC,GAA8BzB,IAChCyB,GAAgB,GAGlB,IAAIC,EAAWL,EAAS,CACtBM,YAAa,UAAUz2C,OAAOm2C,EAAQ,QACtCO,UAAW,UAAU12C,OAAOm2C,EAAQ,cAClC3vC,EAEAqvC,GAAwB,EAAIqnG,EAAOpnG,wBAAwBF,GAC3DG,GAAyB,EAAI6mG,EAAgBxyI,SAASyrC,EAAuB,GAC7ErB,EAAeuB,EAAuB,GACtCtB,EAAiBsB,EAAuB,GAE5C,OAAOxnC,EAAMmC,cAAc,OAAQlU,OAAOW,OAAO,CAC/Cw5C,KAAM,MACN,aAAc/B,EAAKv4C,MAClB24C,EAAW,CACZ1/B,IAAKA,EACL8gC,SAAUG,EACVzB,QAASA,EACTD,UAAWwB,IACT9nC,EAAMmC,cAAcssI,EAAU5yI,QAAS,CACzCyqC,UAAWyB,EACX1B,KAAMA,EACNJ,aAAcA,EACdC,eAAgBA,EAChBM,MAAOyB,QAGXP,EAAKliC,YAAc,WACnBkiC,EAAKW,gBAAkBqmG,EAAqBrmG,gBAC5CX,EAAKN,gBAAkBsnG,EAAqBtnG,gBAC5C,IAAIwnG,EAAWlnG,EACfzmD,EAAQ4a,QAAU+yI,G,6BC/EH,SAASz2H,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAItnB,UAAU,qCAFxB,mC,6BCAA,SAASyzC,EAAkBz3C,EAAQ+Y,GACjC,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CACrC,IAAI68C,EAAa3+B,EAAMle,GACvB68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EACjDmwC,EAAWhwC,cAAe,EACtB,UAAWgwC,IAAYA,EAAWjwC,UAAW,GACjDvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAInC,SAASC,EAAarsB,EAAassB,EAAYC,GAG5D,OAFID,GAAYH,EAAkBnsB,EAAY5pB,UAAWk2C,GACrDC,GAAaJ,EAAkBnsB,EAAausB,GACzCvsB,EAbT,mC,6BCEApqB,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4tJ,SAAW5tJ,EAAQ6tJ,KAAO7tJ,EAAQ8tJ,aAAe9tJ,EAAQ+tJ,YAAc/tJ,EAAQguJ,WAAQh3I,EAE/F,IAEIi3I,EAAiBrB,EAFD3sJ,EAAQ,MAMxBiuJ,EAAiBtB,EAFD3sJ,EAAQ,MAMxBkuJ,EAAevB,EAFD3sJ,EAAQ,MAMtBmuJ,EAAUxB,EAFA3sJ,EAAQ,MAMlBouJ,EAAWzB,EAFD3sJ,EAAQ,MAMlBquJ,EAAS1B,EAFA3sJ,EAAQ,MAIrB,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAEmJ,QAASnJ,GAEvFzR,EAAQguJ,MAAQI,EAAQxzI,QACxB5a,EAAQ+tJ,YAAcK,EAAQxzI,QAC9B5a,EAAQ8tJ,aAAeO,EAASzzI,QAChC5a,EAAQ6tJ,KAAOS,EAAO1zI,QACtB,IAAIgzI,EAAW5tJ,EAAQ4tJ,SAAW,SAAkBpzI,GAClD,IAAK,IAAIglI,EAAO1xI,UAAUrH,OAAQ8nJ,EAAc5sJ,MAAM69I,EAAO,EAAIA,EAAO,EAAI,GAAIT,EAAO,EAAGA,EAAOS,EAAMT,IACrGwP,EAAYxP,EAAO,GAAKjxI,UAAUixI,GAGpC,IAAIyP,GAAc,EAAIP,EAAerzI,SAAS2zI,GAC1CE,GAAS,EAAIP,EAAetzI,SAASJ,EAASg0I,GAClD,OAAO,EAAIL,EAAavzI,SAAS6zI,IAGnCzuJ,EAAQ4a,QAAUgzI,G,6BC/ClB,+CACe,SAASjpG,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI/0C,UAAU,sDAGtB80C,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CACrED,YAAa,CACXpN,MAAOykD,EACPrxC,UAAU,EACVC,cAAc,KAGdqxC,GAAY,YAAeD,EAAUC,K,6BCb3C,gEAEe,SAAST,EAA2B1zC,EAAMnQ,GACvD,OAAIA,GAA2B,WAAlB,IAAQA,IAAsC,oBAATA,EAI3C,YAAsBmQ,GAHpBnQ,I,iBCJX,YAOA,IAPA,IAAIwtC,EAAM9tC,EAAQ,KACd6uD,EAAyB,qBAAX1tC,OAAyBstI,EAASttI,OAChDutI,EAAU,CAAC,MAAO,UAClBv0G,EAAS,iBACTw0G,EAAM9/F,EAAK,UAAY1U,GACvBy0G,EAAM//F,EAAK,SAAW1U,IAAW0U,EAAK,gBAAkB1U,GAEpDzzC,EAAI,GAAIioJ,GAAOjoJ,EAAIgoJ,EAAQloJ,OAAQE,IACzCioJ,EAAM9/F,EAAK6/F,EAAQhoJ,GAAK,UAAYyzC,GACpCy0G,EAAM//F,EAAK6/F,EAAQhoJ,GAAK,SAAWyzC,IAC5B0U,EAAK6/F,EAAQhoJ,GAAK,gBAAkByzC,GAI7C,IAAIw0G,IAAQC,EAAK,CACf,IAAItvI,EAAO,EACPs5C,EAAK,EACLxuD,EAAQ,GAGZukJ,EAAM,SAAS1vI,GACb,GAAoB,IAAjB7U,EAAM5D,OAAc,CACrB,IAAIqoJ,EAAO/gH,IACPr/B,EAAO7M,KAAKM,IAAI,EALJ,IAAO,IAKiB2sJ,EAAOvvI,IAC/CA,EAAO7Q,EAAOogJ,EACd7lF,YAAW,WACT,IAAIwuD,EAAKptH,EAAM4I,MAAM,GAIrB5I,EAAM5D,OAAS,EACf,IAAI,IAAIE,EAAI,EAAGA,EAAI8wH,EAAGhxH,OAAQE,IAC5B,IAAI8wH,EAAG9wH,GAAGgiE,UACR,IACE8uD,EAAG9wH,GAAGuY,SAASK,GACf,MAAM5Q,GACNs6D,YAAW,WAAa,MAAMt6D,IAAK,MAIxC9M,KAAKQ,MAAMqM,IAOhB,OALArE,EAAMvB,KAAK,CACTimJ,SAAUl2F,EACV35C,SAAUA,EACVypD,WAAW,IAEN9P,GAGTg2F,EAAM,SAASE,GACb,IAAI,IAAIpoJ,EAAI,EAAGA,EAAI0D,EAAM5D,OAAQE,IAC5B0D,EAAM1D,GAAGooJ,SAAWA,IACrB1kJ,EAAM1D,GAAGgiE,WAAY,IAM7B5oE,EAAOC,QAAU,SAAS6Y,GAIxB,OAAO+1I,EAAIruJ,KAAKuuD,EAAMj2C,IAExB9Y,EAAOC,QAAQgvJ,OAAS,WACtBH,EAAI9gJ,MAAM+gD,EAAMhhD,YAElB/N,EAAOC,QAAQivJ,SAAW,SAASriJ,GAC5BA,IACHA,EAASkiD,GAEXliD,EAAOsiJ,sBAAwBN,EAC/BhiJ,EAAOuiJ,qBAAuBN,K,gDCzEjB,SAASpqI,IAetB,OAdAA,EAAWzX,OAAOW,QAAU,SAAU7B,GACpC,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CACzC,IAAIykB,EAAStd,UAAUnH,GAEvB,IAAK,IAAIyE,KAAOggB,EACVpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAC/CU,EAAOV,GAAOggB,EAAOhgB,IAK3B,OAAOU,IAGOiC,MAAMzD,KAAMwD,WAf9B,mC,6BCAe,SAASq2C,EAAQ1yC,GAa9B,OATE0yC,EADoB,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB8B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAI9GA,GAbjB,mC,6BCAe,SAAShB,EAAuBC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EALT,mC,6BCAA,gQAIA,SAASoB,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAKtgB,SAAS09C,EAAOp+C,EAAKk8B,GAC1B,OAAY,OAARl8B,QAAwB4L,IAAR5L,EACXA,EAGFk8B,EA6BF,SAAS8nH,EAAkBC,GAgChC,OA/BA,SAASC,EAAI70F,GAEX,OADgBjkC,YAAQikC,GACPjlC,KAAI,SAAU+5H,GAE7B,IAAKC,YAAWD,GAEd,OADA1pG,aAAS0pG,EAAU,uDACZ,KAGT,IAAInkJ,EAAMmkJ,EAASnkJ,IAEfqkJ,EAAkBF,EAAS1qI,MAC3BnE,EAAW+uI,EAAgB/uI,SAG3BgvI,EAAW5qG,EAAc,CAC3B15C,IAAKA,GAHIq6C,YAAyBgqG,EAAiB,CAAC,cAMlDE,EAAiBL,EAAI5uI,GAMzB,OAJIivI,EAAelpJ,SACjBipJ,EAAShvI,SAAWivI,GAGfD,KACNp4H,QAAO,SAAUo4H,GAClB,OAAOA,KAIJJ,CAAID,GASN,SAASO,IACd,IAAIC,EAAe/hJ,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GACnFgiJ,EAAehiJ,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GACnFiiJ,EAAiB,IAAIr9I,KAAqB,IAAjBo9I,EAAwB,GAAKA,GACtDE,EAAc,GAElB,SAASV,EAAIxsG,GACX,IAAIrrC,EAAS3J,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,KACjF,OAAOg1C,EAAKttB,KAAI,SAAU+5H,EAAUt9I,GAClC,IAAIq1B,EAAM2oH,YAAYx4I,EAASA,EAAO6vB,IAAM,IAAKr1B,GAC7Ci+I,EAAY1mG,EAAO+lG,EAASnkJ,IAAKk8B,GAEjC6oH,EAAcrrG,EAAcA,EAAc,GAAIyqG,GAAW,GAAI,CAC/D93I,OAAQA,EACR6vB,IAAKA,EACL5mB,SAAU,KACV/U,KAAM4jJ,EACNr+C,QAAS,GAAG1gG,OAAOq7C,YAAmBp0C,EAASA,EAAOy5F,QAAU,IAAK,CAAW,IAAVj/F,IACtEg/F,MAAO,GAAGzgG,OAAOq7C,YAAmBp0C,EAASA,EAAOw5F,MAAQ,IAAK,CAACh/F,IAAU6wC,EAAKr8C,OAAS,MAW5F,OARAupJ,EAAYlnJ,KAAKqnJ,IAEI,IAAjBL,GAAyBC,EAAe19I,IAAI69I,GAC9CC,EAAYzvI,SAAW4uI,EAAIC,EAAS7uI,UAAY,GAAIyvI,GAEpDA,EAAYzvI,SAAW,GAGlByvI,KAKX,OADAb,EAAIO,GACGG,EAOF,SAASI,EAAkBC,EAAWnxI,IAC3C,SAASoxI,EAAY71F,EAAMxoD,EAAOwF,GAChC,IAAIiJ,EAAW+5C,EAAOA,EAAK/5C,SAAW2vI,EAClC/oH,EAAMmzB,EAAOw1F,YAAYx4I,EAAO6vB,IAAKr1B,GAAS,IAElD,GAAIwoD,EAAM,CACR,IAAI9uD,EAAO,CACT8uD,KAAMA,EACNxoD,MAAOA,EACPq1B,IAAKA,EACLl8B,IAAkB,OAAbqvD,EAAKrvD,IAAeqvD,EAAKrvD,IAAMk8B,EACpCipH,UAAW94I,EAAOgjD,KAAOhjD,EAAO6vB,IAAM,KACtCguF,MAAO79G,EAAO69G,MAAQ,GAExBp2G,EAASvT,GAIP+U,GACFA,EAAS3O,SAAQ,SAAUy+I,EAASC,GAClCH,EAAYE,EAASC,EAAU,CAC7Bh2F,KAAMA,EACNnzB,IAAKA,EACLguF,MAAO79G,EAASA,EAAO69G,MAAQ,GAAK,OAM5Cg7B,CAAY,MAMP,SAASI,EAAsBL,GACpC,IAAI7vI,EAAO1S,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAC3E6iJ,EAAcnwI,EAAKmwI,YACnBC,EAAgBpwI,EAAKowI,cACrBC,EAAoBrwI,EAAKqwI,kBAEzBC,EAAc,GACdC,EAAc,GACdC,EAAU,CACZF,YAAaA,EACbC,YAAaA,GAyCf,OAtCIJ,IACFK,EAAUL,EAAYK,IAAYA,GAGpCZ,EAAkBC,GAAW,SAAU57G,GACrC,IAAIgmB,EAAOhmB,EAAKgmB,KACZxoD,EAAQwiC,EAAKxiC,MACbq1B,EAAMmN,EAAKnN,IACXl8B,EAAMqpC,EAAKrpC,IACXmlJ,EAAY97G,EAAK87G,UAEjBU,EAAS,CACXx2F,KAAMA,EACNxoD,MAAOA,EACP7G,IAAKA,EACLk8B,IAAKA,EACLguF,MANU7gF,EAAK6gF,OAQb46B,EAAY1mG,EAAOp+C,EAAKk8B,GAC5BwpH,EAAYxpH,GAAO2pH,EACnBF,EAAYb,GAAae,EAEzBA,EAAOx5I,OAASq5I,EAAYP,GAExBU,EAAOx5I,SACTw5I,EAAOx5I,OAAOiJ,SAAWuwI,EAAOx5I,OAAOiJ,UAAY,GACnDuwI,EAAOx5I,OAAOiJ,SAAS5X,KAAKmoJ,IAG1BL,GACFA,EAAcK,EAAQD,MAItBH,GACFA,EAAkBG,GAGbA,EAMF,SAASE,EAAiB9lJ,EAAKiY,GACpC,IAAIysI,EAAezsI,EAAMysI,aACrBqB,EAAe9tI,EAAM8tI,aACrBC,EAAa/tI,EAAM+tI,WACnBC,EAAchuI,EAAMguI,YACpBC,EAAcjuI,EAAMiuI,YACpBC,EAAkBluI,EAAMkuI,gBACxBC,EAAkBnuI,EAAMmuI,gBACxBC,EAAepuI,EAAMouI,aAErBR,EADc5tI,EAAM0tI,YACC3lJ,GAezB,MAdoB,CAClBsmJ,SAAUtmJ,EACVumJ,UAAyC,IAA/B7B,EAAa1uJ,QAAQgK,GAC/BwmJ,UAAyC,IAA/BT,EAAa/vJ,QAAQgK,GAC/BymJ,QAAqC,IAA7BT,EAAWhwJ,QAAQgK,GAC3B0mJ,SAAuC,IAA9BT,EAAYjwJ,QAAQgK,GAC7Bo6D,SAAuC,IAA9B8rF,EAAYlwJ,QAAQgK,GAC7B2mJ,aAA+C,IAAlCR,EAAgBnwJ,QAAQgK,GACrCk8B,IAAK+M,OAAO48G,EAASA,EAAO3pH,IAAM,IAElC0qH,SAAUR,IAAoBpmJ,GAAwB,IAAjBqmJ,EACrCQ,eAAgBT,IAAoBpmJ,IAAyB,IAAlBqmJ,EAC3CS,kBAAmBV,IAAoBpmJ,GAAwB,IAAjBqmJ,GAI3C,SAASU,EAA4BttI,GAC1C,IAAIlZ,EAAOkZ,EAAMlZ,KACbgmJ,EAAW9sI,EAAM8sI,SACjBC,EAAW/sI,EAAM+sI,SACjBpsF,EAAU3gD,EAAM2gD,QAChBqsF,EAAShtI,EAAMgtI,OACfC,EAAUjtI,EAAMitI,QAChBC,EAAcltI,EAAMktI,YACpBC,EAAWntI,EAAMmtI,SACjBC,EAAiBptI,EAAMotI,eACvBC,EAAoBrtI,EAAMqtI,kBAC1B5qH,EAAMziB,EAAMyiB,IACZ8qH,EAASvtI,EAAMutI,OAEfC,EAAYvtG,EAAcA,EAAc,GAAIn5C,GAAO,GAAI,CACzDgmJ,SAAUA,EACVC,SAAUA,EACVpsF,QAASA,EACTqsF,OAAQA,EACRC,QAASA,EACTC,YAAaA,EACbC,SAAUA,EACVC,eAAgBA,EAChBC,kBAAmBA,EACnB5qH,IAAKA,EACL8qH,OAAQA,IAYV,MATM,UAAWC,GACfrlJ,OAAOsG,eAAe++I,EAAW,QAAS,CACxC7mJ,IAAK,WAEH,OADAq6C,aAAQ,EAAO,yIACRhhC,KAKNwtI,I,6BC3RT,saAYO,SAASC,EAAOxvG,EAAM3iD,GAC3B,IAAI+S,EAAQ4vC,EAAK7vC,QACbhB,EAAQiB,EAAM9R,QAAQjB,GAM1B,OAJI8R,GAAS,GACXiB,EAAM+iB,OAAOhkB,EAAO,GAGfiB,EAEF,SAASq/I,EAAOzvG,EAAM3iD,GAC3B,IAAI+S,EAAQ4vC,EAAK7vC,QAMjB,OAJ8B,IAA1BC,EAAM9R,QAAQjB,IAChB+S,EAAMpK,KAAK3I,GAGN+S,EAEF,SAASs/I,EAASlrH,GACvB,OAAOA,EAAI/a,MAAM,KAEZ,SAAS0jI,EAAY36B,EAAOrjH,GACjC,MAAO,GAAGzB,OAAO8kH,EAAO,KAAK9kH,OAAOyB,GAE/B,SAASu9I,EAAW/0F,GACzB,OAAOA,GAAQA,EAAK5uD,MAAQ4uD,EAAK5uD,KAAK2jJ,WAEjC,SAASiD,EAAiBC,EAAa3B,GAC5C,IAAI4B,EAAgB,CAACD,GAcrB,OAXA,SAASpD,IACP,IAAIxsG,EAAOh1C,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAC/Eg1C,EAAK/wC,SAAQ,SAAUyO,GACrB,IAAIpV,EAAMoV,EAAKpV,IACXsV,EAAWF,EAAKE,SACpBiyI,EAAc7pJ,KAAKsC,GACnBkkJ,EAAI5uI,MAIR4uI,CAZayB,EAAY2B,GAYdhyI,UACJiyI,EAGF,SAASC,EAAiBnkG,EAAO8gG,GACtC,IAAIvV,EAAUvrF,EAAMurF,QAEhB6Y,EAAwBtD,EAASuD,aAAapgI,wBAC9CC,EAAMkgI,EAAsBlgI,IAC5BjsB,EAASmsJ,EAAsBnsJ,OAC/BG,EAASgsJ,EAAsBhsJ,OAE/BksJ,EAAMlxJ,KAAKM,IAxDK,IAwDD0E,EAvDF,GAyDjB,OAAImzI,GAAWrnH,EAAMogI,GACX,EAGN/Y,GAAWtzI,EAASqsJ,EACf,EAGF,EASF,SAASC,EAAiB7B,EAActsI,GAC7C,GAAKssI,EAGL,OAFetsI,EAAMouI,SAGZ9B,EAAal+I,QAGlBk+I,EAAa1qJ,OACR,CAAC0qJ,EAAa,IAGhBA,EA2BF,SAAS+B,EAAiBrhJ,GAC/B,IAAKA,EACH,OAAO,KAIT,IAAIshJ,EAEJ,GAAIxxJ,MAAMD,QAAQmQ,GAEhBshJ,EAAW,CACT7B,YAAaz/I,EACb0/I,qBAAiBv6I,OAEd,IAAsB,WAAlBmtC,YAAQtyC,GAOjB,OADAg0C,aAAQ,EAAO,8CACR,KANPstG,EAAW,CACT7B,YAAaz/I,EAAK2zD,cAAWxuD,EAC7Bu6I,gBAAiB1/I,EAAKkgJ,kBAAe/6I,GAOzC,OAAOm8I,EAQF,SAASC,EAAoBC,EAAStC,GAC3C,IAAIjB,EAAe,IAAIp9I,IAmBvB,OAHC2gJ,GAAW,IAAIthJ,SAAQ,SAAU3G,IAdlC,SAASkoJ,EAAUloJ,GACjB,IAAI0kJ,EAAaz9I,IAAIjH,GAArB,CACA,IAAI6lJ,EAASF,EAAY3lJ,GACzB,GAAK6lJ,EAAL,CACAnB,EAAal8I,IAAIxI,GACjB,IAAIqM,EAASw5I,EAAOx5I,OACTw5I,EAAOx2F,KACThG,UAELh9C,GACF67I,EAAU77I,EAAOrM,OAKnBkoJ,CAAUloJ,MAELygD,YAAmBikG,GAMrB,SAASyD,EAAe1uI,GAC7B,IAAI2uI,EAAY,GAMhB,OALAxmJ,OAAO6E,KAAKgT,GAAO9S,SAAQ,SAAU3G,IAC/BA,EAAIqoJ,WAAW,UAAYroJ,EAAIqoJ,WAAW,YAC5CD,EAAUpoJ,GAAOyZ,EAAMzZ,OAGpBooJ,I,6BC7LT,gGA0OWE,EAA+B,IApH1C,wBAKS,KAAAC,YAAsB,EAKtB,KAAAC,WAAa,IAAI,KAAmC,SAAC1wJ,EAAMC,GAClE,OAAO,IAAU,IAAcD,EAAKs7B,SAAUr7B,EAAMq7B,UACnD,IAAct7B,EAAK21D,GAAI11D,EAAM01D,QA+EhC,OAlDQ,YAAAg7F,OAAP,SAAchoJ,EAAWT,EAAU8T,EAAesf,EAAsBjqB,QAAtB,IAAAiqB,MAAA,GACjDl0B,KAAKspJ,WAAW7N,OAAO,CACtBltF,KAAMvuD,KAAKqpJ,YACXvoJ,IAAKA,EACL8T,SAAUA,EACVsf,SAAUA,EACVjqB,MAAOA,EACP1I,KAAMA,KAWD,YAAAD,UAAP,SAAiDC,EAAcT,GAC9D,OAAO,IAAWd,KAAKspJ,WAAWvwJ,QAAQ,SAACuB,GAAM,OAAAA,EAAEwG,MAAQA,GAAOS,aAAgBjH,EAAjC,SAU3C,YAAAkvJ,SAAP,SAA0DjoJ,EAAcT,EAAUjL,GAEjF,IAAM4zJ,EAAYzpJ,KAAKspJ,WAAWvwJ,OAC5BoD,EAASstJ,EAAUttJ,OAEzB,GAAc,GAAVA,EACH,OAAOtG,EAIR,IAAK,IAAIwG,EAAI,EAAGA,EAAIF,IAAUE,EAAG,CAChC,IAAM8tC,EAAOs/G,EAAUptJ,GAEnB8tC,EAAKrpC,MAAQA,GAAOS,aAAgB4oC,EAAK5oC,OAC5C1L,EAAcs0C,EAAMv1B,SAAS3e,KAAKk0C,EAAKlgC,MAAOpU,EAAO0L,EAAMT,IAI7D,OAAOjL,GAGT,EA3FA,IAoKA,aAsCC,WAAY+b,GAjCJ,KAAAy3I,YAAsB,EAQtB,KAAAC,WAAa,IAAI,KAAwC,SAAC1wJ,EAAMC,GACvE,OAAO,IAAU,IAAcD,EAAKs7B,SAAUr7B,EAAMq7B,UACnD,IAAct7B,EAAK21D,GAAI11D,EAAM01D,QAGrB,KAAAjG,UAA2C,GAqBpDtoD,KAAKsC,OAASsP,EAGd5R,KAAKhB,OAASgB,KAAKspJ,WAAWtqJ,OA4NhC,OAvKQ,YAAAsK,IAAP,SAAmCxI,EAAU8T,EAAwEsf,EAAsBjqB,QAAtB,IAAAiqB,MAAA,GACpHl0B,KAAKspJ,WAAW7N,OAAO,CACtBltF,KAAMvuD,KAAKqpJ,YACXvoJ,IAAKA,EACL8T,SAAUA,EACVsf,SAAUA,EACVjqB,MAAOA,KAaF,YAAAlC,IAAP,SAAmCjH,EAAU8T,EAAwEsf,EAAsBjqB,GAC1I,YADoH,IAAAiqB,MAAA,GAC7G,IAAel0B,KAAKspJ,WAAWjkJ,YAAY,SAAC8kC,GAClD,OAAOA,EAAKrpC,MAAQA,GAAOqpC,EAAKv1B,WAAaA,GAAYu1B,EAAKjW,WAAaA,GAAYiW,EAAKlgC,QAAUA,MAajG,YAAAwhB,OAAP,SAAc3qB,EAAaozB,GAA3B,WAIC,IAAY,IAAcl0B,KAAKspJ,WAAWjkJ,aAAa,SAAC8kC,GAEnDA,EAAKrpC,MAAQA,GAAS,IAAeozB,IAAaA,IAAaiW,EAAKjW,UACvE,EAAKo1H,WAAW79H,OAAO0e,OAWnB,YAAAu/G,UAAP,SAAsC5oJ,UAC9Bd,KAAKsoD,UAAUxnD,IAYhB,YAAA6oJ,WAAP,SAAuC7oJ,EAAU8oJ,QAAA,IAAAA,MAAA,KAChD5pJ,KAAKsoD,UAAUxnD,GAAO8oJ,GAGb,YAAAC,oBAAV,SAAmD/oJ,GAClD,OAAO,IAAWd,KAAKspJ,WAAWvwJ,QAAQ,SAACuB,GAAM,OAAAA,EAAEwG,MAAF,MAQ3C,YAAAQ,UAAP,SAAsCR,GACrC,OAA8B,MAAvBd,KAAKsoD,UAAUxnD,KAAiBd,KAAK6pJ,oBAAoB/oJ,IAAQsoJ,EAAc9nJ,UAA0BtB,KAAKsC,OAAQxB,KAGpH,YAAAgpJ,gBAAV,SAA+ChpJ,GAC9C,IAAM3C,EAAQ6B,KAAKsoD,UAAUxnD,GAE7B,OAAK,IAAe3C,KAIfA,GAAS,SACL6B,KAAKsoD,UAAUxnD,KAGpBd,KAAKsoD,UAAUxnD,IAGX,IAYF,YAAA2C,MAAP,SAAkC3C,EAAUjL,GAC3C,GAAImK,KAAK8pJ,gBAAgBhpJ,GAAM,CAE9B,IAAM2oJ,EAAYzpJ,KAAKspJ,WAAWvwJ,OAC5B,EAAS0wJ,EAAUttJ,OAEzB,GAAI,EAAS,EACZ,IAAK,IAAIE,EAAI,EAAGA,EAAI,IAAUA,EAAG,CAChC,IAAM8tC,EAAOs/G,EAAUptJ,GAEnB8tC,EAAKrpC,MAAQA,IAChBjL,EAAQs0C,EAAKv1B,SAAS3e,KAAKk0C,EAAKlgC,MAAOpU,EAAOmK,KAAKsC,OAAQxB,IAQ9D,OAFAjL,EAAQuzJ,EAAcI,SAAyBxpJ,KAAKsC,OAAQxB,EAAKjL,GAKjE,OAAOA,GASF,YAAA0R,KAAP,WAEC,OAAO,IAAc,IAAUvH,KAAKspJ,WAAWjkJ,YAAY,SAAC/K,GAAM,OAAAA,EAAA,SAS5D,YAAAumD,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOwoI,WAAWjkJ,YAAY,SAAC/K,GACzC,EAAKgP,IAAIhP,EAAEwG,IAAKxG,EAAEsa,SAAUta,EAAE45B,SAAU55B,EAAE2P,UAE3C,IAAa6W,EAAOwnC,WAAW,SAACxnD,EAAKsvB,GACpC,EAAKk4B,UAAUxnD,GAAOsvB,MAOjB,YAAA7mB,MAAP,WAECvJ,KAAKspJ,WAAW//I,SAGlB,EAtQA,I,uJC1Peo8H,EA5BG,SAAqBokB,GACrC,OAAoBt1I,gBAAoB+wH,EAAgB,MAAM,SAAUtvH,GACtE,IACI25B,GAASw1F,EADMnvH,EAAKmvH,cACE,SAE1B,OAAQ0kB,GACN,IAAK,QACL,IAAK,OACH,OAAoBt1I,gBAAoBu1I,IAAO,CAC7CC,MAAOD,IAAME,yBAGjB,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACH,OAAoBz1I,gBAAoBu1I,IAAO,CAC7CC,MAAOD,IAAME,uBACbnvG,UAAW,GAAG70C,OAAO2pC,EAAQ,YAGjC,QACE,OAAoBp7B,gBAAoBu1I,IAAO,WC3BvD,SAAS7vI,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAIzS,IAAIkjI,EAA6BjyH,gBAAoB,CAE1D4wH,aAAc,SAAsBJ,EAAWC,GAC7C,OAAIA,IACGD,EAAY,OAAO/+H,OAAO++H,GAAa,QAEhDU,YAAawkB,IAEJ3kB,EAAiBkB,EAAc9rH,SACnC,SAASwvI,EAAmB57I,GACjC,OAAO,SAAgCisE,GAErC,IAAI4vE,EAAM,SAAa9vI,GACrB,OAAoB9F,gBAAoB+wH,EAAgB,MAAM,SAAU8kB,GACtE,IAAIC,EAAiB/7I,EAAO22H,UAGxBA,GAAYE,EAFGilB,EAAYjlB,cAEFklB,EADJhwI,EAAM4qH,WAE/B,OAAoB1wH,gBAAoBgmE,EAAWtgE,EAAS,GAAImwI,EAAa/vI,EAAO,CAClF4qH,UAAWA,SAKbqlB,EAAO/vE,EAAUx3E,YACjBV,EAAOioJ,GAAQA,EAAKvwI,aAAewgE,EAAUl4E,MAAQ,YAEzD,OADA8nJ,EAAIpwI,YAAc,sBAAsB/T,OAAO3D,EAAM,KAC9C8nJ,K,6BC/BX,kCAgBA,+BAgFA,OA3EQ,EAAA9jF,KAA8B,CAAC,CACrC,SAAY,SACZ,MAAS,QACP,CACF,SAAY,SACZ,MAAS,QACP,CACF,SAAY,SACZ,MAAS,iBAMH,EAAAC,SAAkC,CAAC,CACzC,SAAY,SACZ,MAAS,QACP,CACF,SAAY,SACZ,MAAS,YACP,CACF,SAAY,SACZ,MAAS,qBAMH,EAAArI,QAAiC,CAAC,CACxC,SAAY,SACZ,MAAS,YAMH,EAAA7tD,QAAiC,CAAC,CACxC,SAAY,SACZ,MAAS,YAMH,EAAAm2D,iBAA0C,CAAC,CACjD,SAAY,SACZ,MAAS,cAMH,EAAAC,eAAwC,CAAC,CAC/C,SAAY,SACZ,MAAS,cAOH,EAAA+jF,WAAoC,CAAC,CAC3C,SAAY,SACZ,MAAS,gBAOH,EAAAloI,KAA8B,CAAC,CACrC,SAAY,SACZ,MAAS,SAGX,EAhFA,I,6BChBA,+DAEe,SAAS2J,EAAQ9V,GAC9B,IAAI2yB,EAAM,GAcV,OAbAt0B,IAAMi2I,SAASjjJ,QAAQ2O,GAAU,SAAUu4C,QAC3BjiD,IAAViiD,GAAiC,OAAVA,IAIvBt3D,MAAMD,QAAQu3D,GAChB5lB,EAAMA,EAAI7iC,OAAOgmB,EAAQyiC,IAChBg8F,qBAAWh8F,IAAUA,EAAMp0C,MACpCwuB,EAAMA,EAAI7iC,OAAOgmB,EAAQyiC,EAAMp0C,MAAMnE,WAErC2yB,EAAIvqC,KAAKmwD,OAGN5lB,I,6BCjBT,uLA6MA,SAAS6hH,EAAkBC,EAAkB16H,EAAcD,GAC1D,OAAOC,GAASD,EAAKC,GAAQ06H,EAY9B,SAASC,EAAmBD,EAAkB16H,EAAeD,GAC5D,OAAO,IAAI,IAAQ06H,EAAkBC,EAAU16H,EAAK1O,QAASyO,EAAGzO,UAWjE,SAASspI,EAAiBF,EAAkB16H,EAAaD,GACxD,IAAM6sB,EAAQ,IAAI,IAAM,IAAoB5sB,EAAKotB,IAAKrtB,EAAGqtB,IAAKstG,IAI9D,OAHI16H,EAAKgtB,OAASjtB,EAAGitB,QACpBJ,EAAMI,MAAQhtB,EAAKgtB,OAASjtB,EAAGitB,MAAQhtB,EAAKgtB,OAAS0tG,GAE/C9tG,EAWR,SAASiuG,EAAkB3gH,EAAkB9oC,GAC5C,OAAOA,EAAO8oC,EAAS+J,OAAO,GAAGlyB,cAAgBmoB,EAAS5jB,OAAO,GAIlE,iBAGC,WAAYsE,GACX/qB,KAAKgiD,UAAY,IAAI,KAAS,WAC7B,KAAwB,IAAjBj3B,EAAM5uB,QACZ4uB,EAAM,GAAG80B,aAYb,OAPC,YAAAgC,WAAA,WACC,OAAO7hD,KAAKgiD,UAAUH,cAGvB,YAAAhC,QAAA,WACC7/C,KAAKgiD,UAAUnC,WAEjB,EAlBA,GA2BA,cAiFC,WAAYv9C,EAAqByzD,EAA2DhvB,EAAkBivB,GAA9G,MAGC,cAAO,K,OA7DD,EAAAjvB,SAAmB,EAOnB,EAAAivB,OAAoC,IAKpC,EAAA60F,SAAmB,EAWhB,EAAAI,MAAgB,EAKhB,EAAAC,QAAkB,EAKlB,EAAAC,cAAkC,KAUlC,EAAAC,MAAgB,EAKhB,EAAAC,aAAuB,EAchC,EAAKtwG,UAAY,aAGiB,IAA9B,IAAQ02D,oBACX1qE,EAAW,GAIZ,EAAKzkC,OAASA,EACd,EAAKyzD,iBAAmB,IAAeA,GACvC,EAAKhvB,SAAWA,EACZivB,IACH,EAAKA,OAASA,GAaf,EAAKrM,a,EAybP,OAviB+B,iBAqEpB,YAAAk6E,MAAV,aA+CO,YAAAhkF,QAAP,WACC,YAAMA,QAAO,WACb7/C,KAAKsrJ,SASC,YAAAh3E,MAAP,SAAaA,GAAb,WAEC,GAAIA,EAAQ,EAAG,CACdt0E,KAAKsrJ,QAIL,IAAYtrJ,KAAKsC,OAAOk1D,WAAYx3D,MAEpC,IAAI,EAAK2+D,YAAW,WACnB,EAAKwsF,cAAgB,KACrB,EAAK1xJ,UACH66E,GAEHt0E,KAAKmrJ,cAAgB,IAAI,KAAS,WACjCvxE,aAAa,MAGf,OAAO55E,MAGA,YAAA8+C,OAAR,WACC9+C,KAAKqrJ,aAAc,EAEfrrJ,KAAKmrJ,gBACRnrJ,KAAKoyD,cAAcpyD,KAAKmrJ,eACxBnrJ,KAAKmrJ,cAAgB,MAKtBnrJ,KAAKurJ,qBAGLvrJ,KAAKkrJ,QAAS,EAGd,IAAY,IAAO1zF,WAAYx3D,MAG/B,IAAYA,KAAKsC,OAAOk1D,WAAYx3D,MAEpC,IAAOoqD,gBAQD,YAAA3wD,MAAP,WACCuG,KAAK8+C,SACL9+C,KAAKwrJ,WAAa9mI,KAAK+e,MACvBzjC,KAAKorJ,MAAQ,EACbprJ,KAAKyrJ,cAAgB,GAGrB,IAAK,IAAIpvJ,EAAY2D,KAAK+1D,iBAAiB55D,OAAS,EAAGE,GAAK,EAAGA,IAAK,CACnE,IAAI,EAA6B2D,KAAK+1D,iBAAiB15D,GAkBvD,GAjBK,IAAe,EAAQ8zB,QACvB,EAAQu7H,YACX,EAAQv7H,KAAO,EAAQu7H,YAAY,EAAQrhH,WAG3C,EAAQla,KAAanwB,KAAKsC,OAAQ,EAAQ+nC,UAErC,IAAe,EAAQla,QAC3B,EAAQA,KAAa,IAAa,EAAQka,aASzC,EAAQla,MAAQ,EAAQD,GAC3B,IAAclwB,KAAK+1D,iBAAkB,QAEjC,IAAK,IAAe,EAAQ5lC,SAAY,EAAQA,gBAAgB,MAAa,EAAQD,cAAc,KAAe,EAAQC,gBAAgB,OAAc,EAAQD,cAAc,KAElLlwB,KAAKyrJ,cAAcjtJ,KAAK,GACxB,IAAcwB,KAAK+1D,iBAAkB,QAIrC,GAAI,IAAuB,EAAQ7lC,IAMlC,GAHA,EAAQy7H,aAAef,EAGnB,EAAQz6H,gBAAgB,IAAS,CAGpC,IAAIy7H,EAA8B5rJ,KAAKsC,OAAQ0oJ,EAAkB,EAAQ3gH,SAAU,UAC9Ez0C,MAAMg2J,IAIV5rJ,KAAKyrJ,cAAcjtJ,KAAK,GACxB,IAAcwB,KAAK+1D,iBAAkB,IAJrC,EAAQ5lC,KAAOy7H,OAORh2J,MAAc,EAAQu6B,QAE9BnwB,KAAKyrJ,cAAcjtJ,KAAK,GACxB,IAAcwB,KAAK+1D,iBAAkB,SAKtC,GAAI,EAAQ7lC,cAAc,IAGrB,EAAQC,KACX,EAAQw7H,aAAeZ,GAIvB/qJ,KAAKyrJ,cAAcjtJ,KAAK,GACxB,IAAcwB,KAAK+1D,iBAAkB,SAGlC,GAAI,EAAQ7lC,cAAc,KAK9B,GAHA,EAAQy7H,aAAeb,GAGlBl1J,MAAc,EAAQu6B,MAAO,CAG7By7H,EAA8B5rJ,KAAKsC,OAAQ0oJ,EAAkB,EAAQ3gH,SAAU,aAC9Ez0C,MAAMg2J,KACV,EAAQz7H,KAAO,YAAwB,IAAhBy7H,UAMzB5rJ,KAAKyrJ,cAAcjtJ,KAAK,GACxB,IAAcwB,KAAK+1D,iBAAkB,GAUzC,GAFA/1D,KAAK6rJ,qBAED7rJ,KAAKhB,OAAOsC,UAAU,oBAAqB,CAC9C,IAAM,EAA6D,CAClEC,KAAM,mBACNC,OAAQxB,KACR6qJ,SAAU7qJ,KAAK6qJ,UAEhB7qJ,KAAKhB,OAAOyC,oBAAoB,mBAAoB,GAUrD,OAPAzB,KAAK80F,SAGiB,IAAlB90F,KAAK+mC,UACR/mC,KAAKpG,MAGCoG,MAUD,YAAAujJ,KAAP,SAAYplJ,GAKX,OAJK,IAAeA,KACnBA,EAAQ+lB,KAETlkB,KAAKirJ,MAAQ9sJ,EACN6B,MAQD,YAAAsrJ,MAAP,WAWC,OAVAtrJ,KAAKkrJ,QAAS,EAEVlrJ,KAAKmrJ,gBACRnrJ,KAAKoyD,cAAcpyD,KAAKmrJ,eACxBnrJ,KAAKmrJ,cAAgB,MAGtB,IAAc,IAAO3zF,WAAYx3D,MACjC,IAAcA,KAAKsC,OAAOk1D,WAAYx3D,MAE/BA,MAQD,YAAA8rJ,OAAP,WAGC,OAFA9rJ,KAAK8+C,SACL9+C,KAAKwrJ,WAAa9mI,KAAK+e,MAAQzjC,KAAKorJ,MAC7BprJ,MASD,YAAApG,IAAP,WAWC,GARkB,GAAdoG,KAAKirJ,OACRjrJ,KAAKsrJ,QAENtrJ,KAAK+rJ,YAAY,GAGjB/rJ,KAAK6rJ,qBAED7rJ,KAAKhB,OAAOsC,UAAU,kBAAmB,CAC5C,IAAM,EAA2D,CAChEC,KAAM,iBACNC,OAAQxB,KACR6qJ,SAAU7qJ,KAAK6qJ,UAEhB7qJ,KAAKhB,OAAOyC,oBAAoB,iBAAkB,GAanD,OATIzB,KAAKirJ,MAAQ,GAChBjrJ,KAAKirJ,QACLjrJ,KAAKvG,UAGLuG,KAAK8uH,OACL9uH,KAAKqrJ,aAAc,GAGbrrJ,MAMD,YAAAgkE,KAAP,WACChkE,KAAKsrJ,QACLtrJ,KAAKqrJ,aAAc,GAQb,YAAAl0F,WAAP,WACC,OAAOn3D,KAAKqrJ,aAMH,YAAAQ,mBAAV,sBACC,IAAY7rJ,KAAKyrJ,eAAe,SAACrvI,GAC5BA,EAAQsvI,YACXtvI,EAAQsvI,YAAYtvI,EAAQiuB,UAA6B,GAAjB,EAAKwgH,SAAgBzuI,EAAQ8T,GAAK9T,EAAQ+T,KAG5E,EAAK7tB,OAAQ8Z,EAAQiuB,UAA6B,GAAjB,EAAKwgH,SAAgBzuI,EAAQ8T,GAAK9T,EAAQ+T,SAc7E,YAAA2+F,KAAP,SAAYk9B,GAEX,GADAhsJ,KAAKsrJ,SACAU,GACAhsJ,KAAKhB,OAAOsC,UAAU,oBAAqB,CAC9C,IAAM,EAA6D,CAClEC,KAAM,mBACNC,OAAQxB,KACR6qJ,SAAU7qJ,KAAK6qJ,UAEhB7qJ,KAAKhB,OAAOyC,oBAAoB,mBAAoB,GAGtD,OAAOzB,MAQD,YAAA+rJ,YAAP,SAAmBlB,GAAnB,WAgBC,GAfA7qJ,KAAKorJ,MAAQprJ,KAAK+mC,SAAW8jH,EAC7B,IAAY7qJ,KAAK+1D,kBAAkB,SAAC35C,GACnC,GAAIA,EAAQuvI,cAAgB,IAAevvI,EAAQ+T,MAAO,CACzD,IAAIt6B,EAAQumB,EAAQuvI,aAAad,EAAUzuI,EAAQ+T,KAAM/T,EAAQ8T,IAE7D9T,EAAQsvI,YACXtvI,EAAQsvI,YAAYtvI,EAAQiuB,UAAYx0C,EAGlC,EAAKyM,OAAQ8Z,EAAQiuB,UAAYx0C,MAK1CmK,KAAK6qJ,SAAWA,EACZ7qJ,KAAKhB,OAAOsC,UAAU,qBAAsB,CAC/C,IAAM,EAA8D,CACnEC,KAAM,oBACNC,OAAQxB,KACR6qJ,SAAU7qJ,KAAK6qJ,UAEhB7qJ,KAAKhB,OAAOyC,oBAAoB,oBAAqB,GAGtD,IAAO2oD,gBASD,YAAA0qC,OAAP,WACC,IAAK90F,KAAKkrJ,OAAQ,CAEjB,IAAIL,OAAQ,EACZ7qJ,KAAKorJ,MAAQ,IAAiB1mI,KAAK+e,MAAQzjC,KAAKwrJ,WAAa,EAAGxrJ,KAAK+mC,UACrE,IAAIklH,EAAejsJ,KAAKorJ,MAAQprJ,KAAK+mC,SACrC8jH,EAAW7qJ,KAAKg2D,OAAOi2F,IACF,GAAjBjsJ,KAAK+mC,WAAkB,IAAe8jH,IAAaoB,GAAgB,KACtEpB,EAAW,GAGZ7qJ,KAAK+rJ,YAAYlB,GAEiC,GAA9C,IAAY7qJ,KAAKorJ,MAAQprJ,KAAK+mC,SAAU,IAC3C/mC,KAAKpG,MAIP,OAAOoG,MASR,sBAAW,sBAAO,C,IAAlB,WACC,QAAOA,KAAKmrJ,e,gCAWL,YAAAI,mBAAR,sBAIC,IAAY,IAAYvrJ,KAAKsC,OAAOk1D,aAAa,SAAChB,GACjD,GAAIA,IAAc,IAASA,EAAU01F,QAAS,CAC7C,IAAM,EAAmC,GAEzC,IAAY,EAAKn2F,kBAAkB,SAACo2F,GACnC,IAAY31F,EAAUT,kBAAkB,SAACq2F,GACpCD,EAAW9hH,UAAY+hH,EAAW/hH,UAAY8hH,EAAWT,aAAeU,EAAWV,cACtF,EAAOltJ,KAAK4tJ,GAE6B,GAArC51F,EAAUT,iBAAiB55D,QAC9Bq6D,EAAUwN,cAMd,IAAY,GAAQ,SAACooF,GACpB,IAAc51F,EAAUT,iBAAkBq2F,WAYpC,YAAA1R,WAAV,SAAqBjoG,GACpB,MAAgB,UAATA,GAAqB,YAAMu0D,KAAI,UAACv0D,IAGzC,EAviBA,CAA+B,M,6BCtR/B,2HAgOA,cA0DC,mBAGC,cAAO,K,OA1CD,EAAA45G,aAAuB,EA6C7B,EAAKtxG,UAAY,QAEjB,EAAKW,MAAO,IAAI,KAAoBkuB,OAAO,QAQ3C,EAAK0iF,MAAO,EACZ,EAAK/nE,UAAW,EAChB,EAAK9hE,WAAY,EACjB,EAAKU,SAAW,SAChB,EAAKkxD,UAAY,QACjB,EAAKk4E,WAAa,MAElB,EAAK/qF,OAAS,WACd,EAAKgrF,eAAiB,IAEtB,EAAKtlG,mBAAqB,EAI1B,EAAKloD,OAAOmgD,GAAG,kBAAkB,WAC5B,EAAKyV,QACR,EAAK+zD,kBAEJ,GAAM,GAGT,EAAK3pH,OAAOggE,KAAK,YAAa,EAAKyO,eAAgB,GAAM,GAGzD,EAAK9jB,a,EAq5CP,OAv/C2B,iBA4GhB,YAAAa,UAAV,WAEC,YAAMA,UAAS,WACfxqD,KAAK0qD,oBAUC,YAAA2F,SAAP,SAAgB9vD,GAEf,IAAIgtE,EAAU,YAAMld,SAAQ,UAAC9vD,GAK7B,OAHIgtE,GACHvtE,KAAKu2I,iBAEChpE,GAME,YAAAE,eAAV,YACMztE,KAAKolE,cAAeplE,KAAKuiB,MAA6B,GAAnBviB,KAAKmoB,KAAK7rB,OAAkC,GAApB0D,KAAKmoB,KAAK5rB,QACzE,IAASyC,OAAOggE,KAAK,YAAah/D,KAAKu2I,eAAgBv2I,OAO/C,YAAA2oH,cAAV,WAEG3oH,KAAKmoB,KAAK7rB,MAAQ0D,KAAKysJ,gBACnBzsJ,KAAKmoB,KAAK7rB,MAAQ0D,KAAKysJ,iBAAoBzsJ,KAAKqsJ,aAAersJ,KAAKukF,WACrEvkF,KAAKmoB,KAAK5rB,OAASyD,KAAKurH,iBACvBvrH,KAAKmoB,KAAK5rB,OAASyD,KAAKurH,iBAAoBvrH,KAAKqsJ,YAEtDrsJ,KAAK0pD,aAGL1pD,KAAK0sJ,gBAUA,YAAAviF,QAAP,aAUU,YAAAwiF,kBAAV,WAEC,IAAIxhI,EAAgB5I,EAEhB,IAAkBviB,KAAKmlE,OAASnlE,KAAKO,MAAMqsJ,yBAG9CzhI,EAAS,OACT5I,EAAOviB,KAAKmlE,OAGZh6C,EAAS,MACT5I,EAAOviB,KAAKuiB,MAIT,IAAeA,KAClBA,EAAOA,EAAKvsB,YAIT,IAAeusB,IAAkB,KAATA,IAC3BA,EAAOviB,KAAK84D,eAAev2C,EAAMviB,KAAKmvD,WAGzB,QAAVhkC,EACCnrB,KAAK4pD,YACRrnC,EAAOviB,KAAK4pD,UAAUnmD,MAAM,aAAc8e,IAIvCviB,KAAK4pD,YACRrnC,EAAOviB,KAAK4pD,UAAUnmD,MAAM,aAAc8e,IAK5C,IAAIgrD,EAAUhrD,GAAQviB,KAAKolE,aAAej6C,GAAUnrB,KAAK6sJ,eAIzD,OAHA7sJ,KAAKolE,YAAc7iD,EACnBviB,KAAK6sJ,eAAiB1hI,EAEfoiD,GAQD,YAAAgpE,eAAP,WACCv2I,KAAK8sJ,YAAc,GACnB9sJ,KAAK0pD,cAOI,YAAAqjG,YAAV,SAAsBC,GAWrB,IAAItkI,EAAUskI,GAAYA,EAAStkI,QAC/BynC,EAAOznC,GAAWA,EAAQynC,KAG1BA,GAAQA,EAAKtM,aAChBmpG,EAAS7kI,KAAOO,EAAQzsB,YASnB,YAAAsuD,KAAP,WAGC,YAAMA,KAAI,WAEV,IAAI0iG,EAAOjtJ,KAAKmoB,KAAK7rB,MACjB4wJ,EAAOltJ,KAAKmoB,KAAK5rB,OAEjBuyD,EAAY9uD,KAAK8uD,UACrB,IAAIA,GACEA,EAAUwS,UAAaxS,EAAUiT,UADvC,CAQA,IAAIT,EAAmB,IAAUthE,KAAKysJ,eAAiBzsJ,KAAK0nB,iBAAmB1nB,KAAKizD,kBAAmB,GACnG8O,EAAoB,IAAU/hE,KAAKurH,gBAAkBvrH,KAAK2nB,gBAAkB3nB,KAAKkzD,mBAAoB,GAGrGi6F,EAASprF,EAAY,IAAMT,EAAWthE,KAAKssJ,KAAOtsJ,KAAKukF,SAAWvkF,KAAKyiB,UAAYziB,KAAK0iB,IAAM1iB,KAAKmjB,SAGvG,GAAKnjB,KAAK2sJ,sBAAuB3sJ,KAAK40D,QAAU50D,KAAK8sJ,aAAeK,EAApE,CAIAntJ,KAAKupD,eAAiB,EACtBvpD,KAAKwpD,gBAAkB,EAGvBxpD,KAAKqsJ,aAAc,EAGnB,IAAIlhI,EAASnrB,KAAK6sJ,eACdtqI,EAAOviB,KAAKolE,YAGhB,GAAK,IAAe7iD,IAAiB,IAARA,EAA7B,CAOA,IAAI6qI,EAAkB7qI,EAAKN,MAAM,MAKjCjiB,KAAK8sJ,YAAcK,EAEnBntJ,KAAKq0E,UAAYr0E,KAAKq0E,UAGtB,IAAIg5E,EAAUrtJ,KAAKynB,MAAM6lI,QAAQ,WAUjC,GATe,QAAXD,GACHrtJ,KAAKynB,MAAM8pC,WAAW,WAGnBvxD,KAAKq/G,iBACRr/G,KAAKq/G,gBAAgB71C,iBAIP,QAAXr+C,EAAkB,CAKrBnrB,KAAK0oB,QAAQ6oC,WAAW,WAGxB,IAAI9pC,EAAsBznB,KAAK0oB,QAE/B1oB,KAAKutJ,YAOL,IAJA,IAAIC,EAAwB,EACxBC,EAAwB,GAGnBpxJ,EAAI,EAAGA,EAAI+wJ,EAAMjxJ,OAAQE,IAAK,CAGtC,IAAIm2F,EAAe46D,EAAM/wJ,GAGzB,GAAY,IAARm2F,EAAJ,CA+BA,IAAIk7D,EAAuB,cAAmBC,MAAMn7D,EAAM,KAAMxyF,KAAK4tJ,kBACjEC,EAA4B,EAC5BC,GAAsB,EACtBC,GAA0B,EAG1Bf,EAAWhtJ,KAAKguJ,YAAY3xJ,GAE5B2wJ,GAEHA,EAASzqI,KAAO,GAChByqI,EAAStkI,QAAQ4zC,YAAc,KAI/B0wF,EAAW,CACV,KAAQ,GACR,QAAWhtJ,KAAKiuJ,kBAAkB,GAAI,GACtC,SAAW,GAMZxmI,EAAMne,IAAI0jJ,EAAStkI,UAGpBskI,EAAStkI,QAAQ6oC,WAAW,WAC5By7F,EAAStkI,QAAQ8gD,iBAEbxpE,KAAKq/G,iBACR2tC,EAAStkI,QAAQpf,IAAItJ,KAAKq/G,iBAS3B,IAAK,IAAI/kH,EAAY,EAAGA,EAAIozJ,EAAOvxJ,OAAQ7B,IAAK,CAG3CA,IACH0yJ,EAASkB,SAAU,GAIpB,IAAIP,EAAQD,EAAOpzJ,GAGnB,GAAmB,WAAfqzJ,EAAMpsJ,KAITksJ,EAAgBE,EAAMprI,SAGlB,CAQJ,GAAIwrI,EACH,SAMDf,EAASzqI,KAAOorI,EAAMprI,KACtByqI,EAAS/xG,MAAQ,cAAmBkzG,wBAAwBV,GAE5D,IAAIW,EAAQpuJ,KAAKquJ,cAAcrB,EAASzqI,KAAMyqI,EAAS/xG,OAkBvD,GAhBIj7C,KAAKq/G,gBACRr/G,KAAKq/G,gBAAgB/1G,IAAI8kJ,GAGzBpB,EAAStkI,QAAQpf,IAAI8kJ,GAGtBpuJ,KAAK+sJ,YAAYC,GACjBA,EAAS7kI,KAAK7rB,MAAQ/E,KAAKc,KAAK20J,EAAS7kI,KAAK7rB,OAG1CuxJ,EAAoBb,EAAS7kI,KAAK5rB,SACrCsxJ,EAAoBb,EAAS7kI,KAAK5rB,SAI9ByD,KAAKssJ,MAAQtsJ,KAAKukF,WAAcyoE,EAAS7kI,KAAK7rB,MAAQglE,EAAW,CAGrEthE,KAAKqsJ,aAAc,EAGnB,IAAIiC,EAAmBtB,EAAStkI,QAAQ4zC,YACpCiyF,EAAwBvB,EAAS7kI,KAAK7rB,MAAQgyJ,EAASnyJ,OAGvDqyJ,EAAsB,IAAUj3J,KAAKc,MAAM20J,EAAS7kI,KAAK7rB,MAAQglE,GAAYitF,GAAeD,EAASnyJ,QAGzG,GAAI6D,KAAKukF,SAAU,CAelB,IAAIkqE,GAAuB,EAKvB,EAAOzB,EAAStkI,QAAQynC,KAC5B,GAAI,GAAQ,EAAKtC,WAChB,IAAK,IAAIxpD,EAAI2oJ,EAAStkI,QAAQynC,KAAKtC,WAAW1xD,OAAS,EAAGkI,GAAK,EAAGA,IAAK,CAGtE,IAAI,EAAO2oJ,EAAStkI,QAAQynC,KAAKtC,WAAWxpD,GAM5C,GAAIoqJ,GAAgBzB,EAAS7kI,KAAK7rB,OAASglE,IAG1C,EAAKhF,aAAe,IAAMt8D,KAAKmjB,SAG/B6pI,EAAS7kI,KAAO6kI,EAAStkI,QAAQzsB,UACjC+wJ,EAAS7kI,KAAK7rB,MAAQ/E,KAAKU,MAAM+0J,EAAS7kI,KAAK7rB,OAI3C0wJ,EAAS7kI,KAAK7rB,OAASglE,GAC1B,MAIFmtF,GAAc,EAGd,IAAIC,EAAc,EAAKpyF,YAOvB,IAJAgyF,EAAWtB,EAAStkI,QAAQ4zC,YAC5BkyF,EAAc,IAAUj3J,KAAKc,MAAM20J,EAAS7kI,KAAK7rB,MAAQglE,GAAYitF,GAAeD,EAASnyJ,QAGrF6wJ,EAAS7kI,KAAK7rB,MAAQglE,GAAcktF,GAAeF,EAASnyJ,QAAYqyJ,EAAc,GAAI,EAG7FhsI,EAAmB,IAAU8rI,EAASnyJ,OAASqyJ,EAAcxuJ,KAAKmjB,SAAShnB,OAAQ,KAGvE,IAKfqyJ,EAAc,EAIVnqJ,EAAI,IAGPoqJ,GAAc,EAGdzB,EAAStkI,QAAQynC,KAAKxM,YAAY,MAMpC+qG,EAAc,IAA4BA,EAAalsI,EAAUxiB,KAAKmjB,SAAUnjB,KAAKyiB,UAAWziB,KAAK0iB,MAEpFvmB,OAASqmB,GAAaxiB,KAAKyiB,YAG3CisI,EAAc,IAA4BA,EAAalsI,EAAUxiB,KAAKmjB,UAAU,EAAOnjB,KAAK0iB,MAI7F,EAAK45C,YAAcoyF,EAGnB1B,EAAS7kI,KAAO6kI,EAAStkI,QAAQzsB,UACjC+wJ,EAAS7kI,KAAK7rB,MAAQ/E,KAAKU,MAAM+0J,EAAS7kI,KAAK7rB,OAK/CkyJ,EAAcj3J,KAAKc,KAAmB,IAAdm2J,GAKzBT,GAAiB,OAKf,CAUJ,GADWf,EAAStkI,QAAQynC,KAClB,CAKT,IAJA,IAAIw+F,EAAW3B,EAAStkI,QAAQynC,KAAKy+F,UAGjCC,OAAU,EACN7B,EAAS7kI,KAAK7rB,MAAQglE,GAAcktF,GAAeF,EAASnyJ,QAAYqyJ,EAAc,GAAI,CAGjG,IAAIhsI,EAAmB,IAAUmrI,EAAMprI,KAAKpmB,OAASqyJ,EAAa,GAI9DV,EAGHe,EAAa,IAA4BlB,EAAMprI,KAAMC,GAAU,EAAMxiB,KAAK0iB,OAM1EmsI,EAAa,IAA4BlB,EAAMprI,KAAMC,GAAU,EAAMxiB,KAAK0iB,MAG1D,GAAGvmB,OAASqmB,GAA0B,IAAbA,KAIxCwqI,EAAStkI,QAAQynC,KAAKxM,YAAYgrG,GAGlCH,EAAc,GAMZA,EAAc,IACjBG,EAASryF,YAAc,cAAmBwyF,QAAQ,IAAYD,EAAW97G,WAI1Ei6G,EAAS7kI,KAAO6kI,EAAStkI,QAAQzsB,UACjC+wJ,EAAS7kI,KAAK7rB,MAAQ/E,KAAKU,MAAM+0J,EAAS7kI,KAAK7rB,OAI/CkyJ,EAAcj3J,KAAKc,KAAmB,IAAdm2J,GAMzB,GAAIK,EAAW1yJ,OAAS,EAAG,CAE1B,IAAI4yJ,EAAqB,GAGrB,IAAeF,KACd7uJ,KAAK0iB,IACRqsI,GAAcF,EAAWpoJ,KAAK,IAAMgnJ,EAGpCsB,GAActB,EAAgBoB,EAAWpoJ,KAAK,IAAI/P,QAAQ,eAAgB,SAK5E,IAAK,IAAIkb,EAAYtX,EAAI,EAAGsX,EAAI87I,EAAOvxJ,OAAQyV,IACxB,SAAlB87I,EAAO97I,GAAGrQ,KAKbwtJ,GAAcrB,EAAO97I,GAAG2Q,KAAK7rB,QAAQ,eAAgB,QAGrDq4J,GAAcrB,EAAO97I,GAAG2Q,KAM1B6qI,EAAMzhI,OAAOtvB,EAAI,EAAG,EAAG0yJ,GAGxBhB,GAAiB,IAKhB/tJ,KAAKmoB,KAAK7rB,MAAQ0wJ,EAAS7kI,KAAK7rB,QACnC0D,KAAKmoB,KAAK7rB,MAAQ0wJ,EAAS7kI,KAAK7rB,OAQjC0D,KAAKmoB,KAAK5rB,OAASixJ,EAAgBK,EAG9B7tJ,KAAKq/G,gBAQT2tC,EAAStkI,QAAQiiC,KAAK,CACrB,IAAO3qD,KAAKspB,cAActzB,aAR3Bg3J,EAAStkI,QAAQiiC,KAAK,CACrB,EAAK,IACL,EAAK6iG,EAAgBK,EACrB,GAAM,IAAa7tJ,KAAKwsJ,cAAgBqB,EAAoB,GAAG73J,aAQjE83J,GAAa,GAMf,IAAI39F,EAAO68F,EAAStkI,QAAQynC,KAC5B,GAAIA,GACCw+F,EAAWx+F,EAAKy+F,aAEnBD,EAASryF,YAAct8D,KAAK0iB,IAC3B,IAAaisI,EAASryF,aACtB,IAAaqyF,EAASryF,cAKzBkxF,GAAiBK,EAGjB7tJ,KAAKgvJ,YAAYhC,EAAU3wJ,OA3Y3B,CAKC,IAAI4yJ,EAAcjvJ,KAAKiuJ,kBAAkB,GAAI,GAC7CgB,EAAY3lJ,IACXtJ,KAAKquJ,cACJ,IACA,cAAmBF,wBAAwBV,KAI7ChmI,EAAMne,IAAI2lJ,GACV,IAAIjnH,EAASzwC,KAAKc,KAAK42J,EAAYhzJ,UAAUM,QACzCyrC,EAAS,IACZwlH,GAAiBxlH,GAElBvgB,EAAM8qC,cAAc08F,GAGpB,IAAI,EAAWjvJ,KAAKguJ,YAAY3xJ,GAC5B,IACH,EAASkmB,KAAO,GAChB,EAASmG,QAAQ4zC,YAAc,KAuXlCt8D,KAAKkvJ,qBAELlvJ,KAAK+oD,eAAgB,EACE,GAAnB/oD,KAAKmoB,KAAK7rB,OAAkC,GAApB0D,KAAKmoB,KAAK5rB,SACrCyD,KAAK+oD,eAAgB,GAItB/oD,KAAKupD,eAAiB,IAAY,IAAUvpD,KAAKmoB,KAAK7rB,MAAO0D,KAAK8xD,WAAa9xD,KAAK0nB,iBAAmB1nB,KAAKizD,oBAC5GjzD,KAAKwpD,gBAAkB,IAAY,IAAUxpD,KAAKmoB,KAAK5rB,OAAQyD,KAAK+xD,YAAc/xD,KAAK2nB,gBAAkB3nB,KAAKkzD,qBAG9GlzD,KAAK0sJ,eAEL1sJ,KAAKmoB,KAAK7rB,MAAQ0D,KAAKupD,eACvBvpD,KAAKmoB,KAAK5rB,OAASyD,KAAKwpD,gBAEpB0jG,GAAQltJ,KAAKwpD,iBAAmByjG,GAAQjtJ,KAAKupD,gBAChDvpD,KAAKmB,SAAS,eAGfnB,KAAKmvJ,WAAW/B,EAAMjxJ,YAElB,CAMJ6D,KAAK0oB,QAAQ6oC,WAAW,WACxBvxD,KAAKutJ,aAGD9lI,EAAsBznB,KAAK0oB,SACzB8gD,iBAGN,IAAI4lF,EAAKpvJ,KAAKO,MAAM8uJ,gBACpB5nI,EAAMne,IAAI8lJ,GAINpvJ,KAAKshE,UACR8tF,EAAGzkG,KAAK,CACPruD,MAAO0D,KAAKshE,WAGVthE,KAAK+hE,WACRqtF,EAAGzkG,KAAK,CACPpuD,OAAQyD,KAAK+hE,YAMf,IAAIq6C,EAA2Bp8G,KAAKsvJ,mBAAmB/sI,GACvD6sI,EAAGj/F,KAAK1M,YAAY24D,GAGpBA,EAAYnhE,MAAMoyG,QAAU,eAC5B,IAAM5sJ,EAAc27G,EAAY37G,YAC1BC,EAAe07G,EAAY17G,aAEjC07G,EAAYnhE,MAAMoyG,QAAU,QAC5BrtJ,KAAKsnD,MAAQ,CACZhtD,EAAG,EACHC,EAAG,EACH+B,MAAOmE,EACPlE,OAAQmE,GAKT0uJ,EAAGzkG,KAAK,CACPruD,MAAOmE,EACPlE,OAAQmE,IAITV,KAAKkvJ,qBAGLlvJ,KAAKupD,eAAiB,IAAUvpD,KAAKmoB,KAAK7rB,MAAO0D,KAAK8xD,WAAa9xD,KAAK0nB,iBAAmB1nB,KAAKizD,mBAChGjzD,KAAKwpD,gBAAkB,IAAUxpD,KAAKmoB,KAAK5rB,OAAQyD,KAAK+xD,YAAc/xD,KAAK2nB,gBAAkB3nB,KAAKkzD,oBAElGlzD,KAAKmoB,KAAK7rB,MAAQ0D,KAAKupD,eACvBvpD,KAAKmoB,KAAK5rB,OAASyD,KAAKwpD,gBAGpBxpD,KAAKukF,WACR63B,EAAYnhE,MAAM1sB,SAAW,WAGzB9tB,EAAc6gE,GAAc5gE,EAAeqhE,KAC/C/hE,KAAKqsJ,aAAc,GAMrBrsJ,KAAKuvJ,YACLvvJ,KAAK2yD,eACL3yD,KAAKktE,mBAEU,QAAXmgF,GACHrtJ,KAAKynB,MAAMkjC,KAAK,CAAE0iG,QAAS,SAGxBrtJ,KAAKwvJ,aACRxvJ,KAAKO,MAAMqvD,UAAU5vD,KAAKwvJ,kBA7iB1BxvJ,KAAK0oB,QAAQiiC,KAAK,CAAE0iG,QAAS,eA7B5Bv+F,EAAU9vD,OAAOggE,KAAK,iBAAkBh/D,KAAKu2I,eAAgBv2I,MAAM,IAilB9D,YAAAkvJ,mBAAR,WACKlvJ,KAAK0oH,gBACH1oH,KAAKysJ,eAAiBzsJ,KAAKmoB,KAAK7rB,OAAW0D,KAAKurH,gBAAkBvrH,KAAKmoB,KAAK5rB,QAChFyD,KAAK0oB,QAAQiiC,KAAK,CAAE0iG,QAAS,SAC7BrtJ,KAAKqsJ,aAAc,IAGnBrsJ,KAAK0oB,QAAQ6oC,WAAW,WACxBvxD,KAAKqsJ,aAAc,KAUf,YAAAK,aAAP,WAEC,IAAIjlI,EAAsBznB,KAAK0oB,QAC3BtS,EAAWqR,EAAM0oC,KAAK/5C,UAAYqR,EAAM0oC,KAAKtC,WAGjD,GAAKz3C,KAAaA,GAA+B,GAAnBA,EAASja,QAAvC,CAIA,IAAIG,EAAQ0D,KAAKupD,eACbhtD,EAASyD,KAAKwpD,gBAGlB,IAAYxpD,KAAK0nB,kBACjB,IAAY1nB,KAAKizD,mBACjB,IAAYjzD,KAAK2nB,iBACjB,IAAY3nB,KAAKkzD,oBAIjB,IAAK,IAAI72D,EAAI+Z,EAASja,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAI9C,IAAI8zD,EAAmB/5C,EAAS/Z,GAIhC,GAFA8zD,EAAK3vD,aAAa,cAAeR,KAAKq0E,WAElCr0E,KAAKq/G,gBACRlvD,EAAKxvD,gBAAgB,KACrBwvD,EAAKxvD,gBAAgB,SAEjB,CACJ,OAAQX,KAAKq0E,WACZ,IAAK,SACJlkB,EAAK3vD,aAAa,KAAMlE,EAAQ,GAAGtG,WAAa,MAChD,MACD,IAAK,MACAgK,KAAK0iB,KAIRytC,EAAK3vD,aAAa,IAAKlE,EAAMtG,YAE9B,MACD,QACKgK,KAAK0iB,IACRytC,EAAK3vD,aAAa,IAAKlE,EAAMtG,YAG7Bm6D,EAAKxvD,gBAAgB,eAKxB,IAAIpG,EAAI,IAAe41D,EAAKjN,aAAa,MAEzC,OAAQljD,KAAKusJ,YACZ,IAAK,SACJp8F,EAAK3vD,aAAa,MAAOjG,GAAK,IAAMgC,EAASyD,KAAKmoB,KAAK5rB,QAAU,GAAGvG,YACpE,MACD,IAAK,SACJm6D,EAAK3vD,aAAa,MAAOjG,GAAK,GAAKgC,EAASyD,KAAKmoB,KAAK5rB,QAAQvG,YAC9D,MACD,QACCm6D,EAAK3vD,aAAa,KAAMjG,GAAK,GAAGvE,iBAgB9B,YAAAi4J,kBAAP,SAAyB1rI,EAAchoB,GAGtC,IAAImuB,EAAiB1oB,KAAKO,MAAM4oD,SAAS,QA+BzC,OA9BAzgC,EAAQ4zC,YAAc/5C,EAGtBmG,EAAQiiC,KAAK,CACZ,EAAK,MAOF,IAAepwD,IAClBmuB,EAAQiiC,KAAK,CACZ,EAAKpwD,EAAEvE,cAKLgK,KAAKukF,UAAYvkF,KAAKssJ,OACzB5jI,EAAQiiC,KAAK,CAAE,SAAY,WAIxB3qD,KAAK0iB,KACRgG,EAAQiiC,KAAK,CACZ,UAAa,QAKRjiC,GAQD,YAAA6kI,UAAP,WACCvtJ,KAAKsnD,MAAQ,CAAEhtD,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,IAWvC,YAAA+yJ,mBAAP,SAA0B/sI,GAGzB,IAAIktI,EAAmB14I,SAASH,cAAc,OAI9C,OAHA64I,EAAIl2E,UAAYh3D,EAGRviB,KAAKq0E,WACZ,IAAK,SACJo7E,EAAIx0G,MAAMo5B,UAAY,SACtB,MACD,IAAK,MACJo7E,EAAIx0G,MAAMo5B,UAAY,QA6BxB,OAxBIr0E,KAAKssJ,KACRmD,EAAIx0G,MAAMy0G,SAAW,aAGrBD,EAAIx0G,MAAM00G,WAAa,SAUpB3vJ,KAAK0iB,MACR+sI,EAAIx0G,MAAMzR,UAAY,OAKnB,IAAexpC,KAAK07C,QACvB+zG,EAAIx0G,MAAM8B,MAAQ/8C,KAAK07C,KAAK1lD,YAGtBy5J,GAUD,YAAAF,UAAP,WACC,IAAI9nI,EAAsBznB,KAAK0oB,SAC1B1oB,KAAK4vJ,YAAc5vJ,KAAK+8D,WAAa/8D,KAAKi9D,WAAaj9D,KAAKg9D,UAChEv1C,EAAMkwD,SAAS,CACd,iBAAoB,OACpB,aAAgB,SAGT33E,KAAK4vJ,aACbnoI,EAAMiwD,YAAY,oBAClBjwD,EAAMiwD,YAAY,kBAOV,YAAAy3E,WAAV,SAAqBxnJ,GACpB3H,KAAK6vJ,gBACL,IAAIzC,EAAyBptJ,KAAKiB,SAAS,YAC3C,GAAImsJ,EAAMjxJ,QAAUwL,EACnB,IAAK,IAAItL,EAAIsL,EAAOtL,EAAI+wJ,EAAMjxJ,OAAQE,IAAK,CAC1C,IAAIm2F,EAAO46D,EAAM/wJ,GACbm2F,GAAQA,EAAK9pE,SAChB8pE,EAAK9pE,QAAQiiC,KAAK,CAAE,QAAW,WAenC,sBAAW,mBAAI,C,IAQf,WACC,OAAO3qD,KAAKujD,iBAAiB,S,IAT9B,SAAgB1tD,GAEfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAsBtC,sBAAW,mBAAI,C,IA2Bf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IA5B9B,SAAgB1tD,GACXmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,KACpCmK,KAAKwvJ,aACRxvJ,KAAKwvJ,YAAY3vG,UAGd7/C,KAAKq/G,iBACRr/G,KAAKq/G,gBAAgBx/D,UAGtB7/C,KAAKwvJ,YAAcxvJ,KAAKO,MAAM+I,IAAI,QAClCtJ,KAAKwvJ,YAAY7kG,KAAK,CAAE,EAAK90D,IAC7BmK,KAAKwvJ,YAAY7kG,KAAK,CAAE,GAAM,aAAe3qD,KAAKC,MAClDD,KAAKkpD,WAAW1qD,KAAKwB,KAAKwvJ,aAE1BxvJ,KAAKq/G,gBAAkBr/G,KAAKO,MAAM4oD,SAAS,YAC3CnpD,KAAKq/G,gBAAgBxwC,OAAO,IAAY,aAAc,cAAgB7uE,KAAKC,KAE3ED,KAAKq/G,gBAAgB10D,KAAK,CAAE,KAAQ90D,IACpCmK,KAAKkpD,WAAW1qD,KAAKwB,KAAKq/G,iBAC1Br/G,KAAKu2I,mB,gCAqBP,sBAAW,6BAAc,C,IAUzB,WACC,OAAOv2I,KAAKujD,iBAAiB,mB,IAX9B,SAA0B1tD,GACzBmK,KAAKopD,iBAAiB,iBAAkBvzD,GACpCmK,KAAKq/G,iBACRr/G,KAAKq/G,gBAAgB10D,KAAK,CAAE,YAAwB,IAAR90D,EAAe,O,gCAmB7D,sBAAW,4BAAa,C,IAOxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,I,gCAexC,sBAAW,mBAAI,C,IAQf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAT9B,SAAgB1tD,GACfmK,KAAKutJ,YACLvtJ,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAsBtC,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAT9B,SAAoB1tD,GACnBmK,KAAKutJ,YACLvtJ,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAiB1C,sBAAW,wBAAS,C,IAOpB,WACC,OAAOmK,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAgB3C,sBAAW,uBAAQ,C,IAOnB,WACC,OAAOmK,KAAKujD,iBAAiB,a,IAR9B,SAAoB1tD,GACnBmK,KAAKopD,iBAAiB,WAAYvzD,GAAO,I,gCAkB1C,sBAAW,yBAAU,C,IAQrB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAT9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,GAC3CmK,KAAKuvJ,a,gCAoBN,sBAAW,wBAAS,C,IAOpB,WACC,OAAOvvJ,KAAKujD,iBAAiB,c,IAR9B,SAAqB1tD,GACpBmK,KAAKopD,iBAAiB,YAAavzD,GAAO,I,gCAiB3C,sBAAW,yBAAU,C,IASrB,WACC,OAAOmK,KAAKujD,iBAAiB,e,IAV9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GAAO,I,gCA0B5C,sBAAW,mBAAI,C,IAOf,WACC,OAAOmK,KAAKujD,iBAAiB,S,IAR9B,SAAgB1tD,GACfmK,KAAKopD,iBAAiB,OAAQvzD,GAAO,I,gCAgBtC,sBAAW,4BAAa,C,IAOxB,WACC,OAAOmK,KAAKujD,iBAAiB,kB,IAR9B,SAAyB1tD,GACxBmK,KAAKopD,iBAAiB,gBAAiBvzD,GAAO,I,gCAiB/C,sBAAW,+BAAgB,C,IAO3B,WACC,OAAOmK,KAAKujD,iBAAiB,qB,IAR9B,SAA4B1tD,GAC3BmK,KAAKopD,iBAAiB,mBAAoBvzD,GAAO,I,gCAc3C,YAAA81D,eAAP,aASO,YAAAqiG,YAAP,SAAmBrmJ,GAClB3H,KAAK6vJ,gBACL,IAAIzC,EAAQptJ,KAAKiB,SAAS,YAC1B,OAAOmsJ,EAAMjxJ,OAASwL,EAAQylJ,EAAMzlJ,QAAS+E,GAUvC,YAAAsiJ,YAAP,SAAmBx8D,EAAqB7qF,GACvC3H,KAAK6vJ,gBACL7vJ,KAAKiB,SAAS,YAAY0G,GAAS6qF,GAM5B,YAAAq9D,cAAR,WACM,IAAe7vJ,KAAKiB,SAAS,cACjCjB,KAAKa,SAAS,WAAY,GAAI,IAWzB,YAAAw5D,YAAP,SAAmBlL,GACdnvD,KAAK8vJ,uBACR9vJ,KAAK8vJ,sBAAsBjwG,UAExBsP,IACHnvD,KAAK8vJ,sBAAwB,IAAI,IAAc,CAC9C3gG,EAASnwD,OAAOmgD,GAAG,eAAgBn/C,KAAK0pD,WAAY1pD,MAAM,GAC1DmvD,EAASnwD,OAAOmgD,GAAG,sBAAuBn/C,KAAK0pD,WAAY1pD,MAAM,GACjEmvD,EAASnwD,OAAOmgD,GAAG,yBAA0Bn/C,KAAK0pD,WAAY1pD,MAAM,GACpEmvD,EAASnwD,OAAOmgD,GAAG,kBAAmBn/C,KAAK0pD,WAAY1pD,MAAM,MAG/D,YAAMq6D,YAAW,UAAClL,IASnB,sBAAW,6BAAc,C,IAAzB,WACC,OAAO,IAAenvD,KAAKshE,UAAYthE,KAAKshE,SAAWthE,KAAK8xD,Y,gCAQ7D,sBAAW,8BAAe,C,IAA1B,WACC,OAAO,IAAe9xD,KAAK+hE,WAAa/hE,KAAK+hE,UAAY/hE,KAAK+xD,a,gCAIxD,YAAAs8F,cAAP,SAAqB9rI,EAAc04B,GAClC,IAAIvyB,EAAU1oB,KAAKO,MAAM+I,IAAI,SAK7B,OAJAof,EAAQ4zC,YAAc/5C,EAClB04B,GACHvyB,EAAQynC,KAAK3vD,aAAa,QAASy6C,GAE7BvyB,GAOD,YAAA0vC,eAAP,WACC,YAAMA,eAAc,WACpBp4D,KAAKu2I,kBAQN,sBAAW,0BAAW,C,IAUtB,WACC,IAAI17E,EAAQ76D,KAAKujD,iBAAiB,eAUlC,OATKsX,IACJA,EAAQ76D,KAAK84D,eACZ,IACC,IAAkB94D,KAAKmlE,MACpBnlE,KAAKmlE,KACLnlE,KAAKuiB,QAIJs4C,G,IArBR,SAAuBhlE,GACtBA,EAAQ,IAAaA,GACjBmK,KAAKopD,iBAAiB,cAAevzD,IACxCmK,KAAK4uD,sB,gCAoBR,EAv/CA,CAA2B,KA+/C3B,IAASxvD,kBAAT,MAAsCg1E,EAStC,IAAa51E,KAAK,CACjBkkF,SAAU,IAAsBI,SAChCj7E,MAAO,SAASrG,EAAQqhF,GACvB,GAAIrhF,aAAkB4yE,GAAS5yE,EAAO2L,QAAU3L,EAAO2L,OAAOw7C,aAAc,CAC3E,IAAI9gD,EAAQrG,EAAOyrD,OAAO9pD,OAAO0/E,GAEjC,OADAh7E,EAAM2iC,WAAW2f,UAAW,EACrBtiD,EAGR,OAAO,S,6BCjvDT,6CACIkoJ,EAA2Bt7I,qBAAoB/H,GACxC+5H,EAAsB,SAA6BvwH,GAC5D,IAAIE,EAAWF,EAAKE,SAChBgiE,EAAOliE,EAAKkiE,KAChB,OAAoB3jE,gBAAoBs7I,EAAYn1I,SAAU,MAAM,SAAUo1I,GAC5E,OAAoBv7I,gBAAoBs7I,EAAY95I,SAAU,CAC5DpgB,MAAOuiF,GAAQ43E,GACd55I,OAGQ25I,O,6BCXf,oEACO,IAAIE,EAAQ,WACjB,IAAK,IAAI/a,EAAO1xI,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EluI,EAAKkuI,GAAQjxI,UAAUixI,GAGzB,OAAOluI,GAEE2pJ,EAAW,WACpB,IAAK,IAAIC,EAAQ3sJ,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM84J,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7pJ,EAAK6pJ,GAAS5sJ,UAAU4sJ,GAG1B,OAAO7pJ,I,6BCXT7D,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAGT,IAAIw6J,EAAS16J,EAAQ,KAErB+M,OAAOsG,eAAetT,EAAS,QAAS,CACtCqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuB+N,GAAQ//I,WAI1C,IAAIggJ,EAAc36J,EAAQ,KAE1B+M,OAAOsG,eAAetT,EAAS,aAAc,CAC3CqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBgO,GAAahgJ,WAI/C,IAAIigJ,EAAiB56J,EAAQ,KAE7B+M,OAAOsG,eAAetT,EAAS,gBAAiB,CAC9CqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBiO,GAAgBjgJ,WAIlD,IAAIkgJ,EAAO76J,EAAQ,KAEnB+M,OAAOsG,eAAetT,EAAS,MAAO,CACpCqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBkO,GAAMlgJ,WAIxC,IAAImgJ,EAAU96J,EAAQ,KAEtB+M,OAAOsG,eAAetT,EAAS,SAAU,CACvCqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBmO,GAASngJ,WAI3C,IAAIogJ,EAAc/6J,EAAQ,KAE1B+M,OAAOsG,eAAetT,EAAS,aAAc,CAC3CqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBoO,GAAapgJ,WAI/C,IAAIqgJ,EAAah7J,EAAQ,KAEzB+M,OAAOsG,eAAetT,EAAS,YAAa,CAC1CqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBqO,GAAYrgJ,WAI9C,IAAIsgJ,EAAUj7J,EAAQ,KAStB,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAEmJ,QAASnJ,GAPvFzE,OAAOsG,eAAetT,EAAS,SAAU,CACvCqT,YAAY,EACZ7H,IAAK,WACH,OAAOohJ,EAAuBsO,GAAStgJ,Y,6BC1E3C,aACewkE,MAAf,G,6BCDA,4LA4DM,SAAU+7E,EAAOvtJ,GACtB,OAAQA,EAgCH,SAAUwtJ,EAAOxtJ,EAAWe,GACjC,OAAO9M,KAAKa,IAAIkL,EAAGe,GAOd,SAAU0sJ,EAAQztJ,EAAWe,GAClC,OAAO,EAAI9M,KAAKa,IAAI,EAAIkL,EAAGe,GAOtB,SAAU2sJ,EAAU1tJ,EAAWe,GAEpC,QADAf,GAAK,IACQ,EAAI/L,KAAKa,IAAIkL,EAAGe,GAAK,EAAI9M,KAAKa,IAAI,EAAIkL,EAAGe,IAAM,EAevD,SAAU4sJ,EAAS3tJ,GACxB,OAAOytJ,EAAQztJ,EAAG,GAgEb,SAAU4tJ,EAAO5tJ,GACtB,OAAO/L,KAAKkB,IAAI6K,EAAI,KAuBf,SAAU6tJ,EAAQ7tJ,GACvB,OAAOA,EAAIA,EAAIA,EAOV,SAAU8tJ,EAAS9tJ,GACxB,QAASA,EAAIA,EAAIA,EAAI,EAjKtB,IAASlE,kBAAkB,eAAiByxJ,EAQ5C,IAASzxJ,kBAAkB,eAHrB,SAAiBkE,GACtB,OAAOA,EAAIA,GAUZ,IAASlE,kBAAkB,gBAHrB,SAAkBkE,GACvB,OAAOA,GAAK,EAAIA,IAWjB,IAASlE,kBAAkB,kBAJrB,SAAoBkE,GAEzB,QADAA,GAAK,IACQ,EAAIA,EAAIA,IAAMA,GAAK,EAAIA,GAAK,GAAK,GAU/C,IAASlE,kBAAkB,eAAiB0xJ,EAQ5C,IAAS1xJ,kBAAkB,gBAAkB2xJ,EAS7C,IAAS3xJ,kBAAkB,kBAAoB4xJ,EAQ/C,IAAS5xJ,kBAAkB,gBAHrB,SAAkBkE,GACvB,OAAOwtJ,EAAOxtJ,EAAG,IAUlB,IAASlE,kBAAkB,iBAAmB6xJ,EAQ9C,IAAS7xJ,kBAAkB,mBAHrB,SAAqBkE,GAC1B,OAAO0tJ,EAAU1tJ,EAAG,IAkBrB,IAASlE,kBAAkB,cAHrB,SAAgBkE,GACrB,OAAO/L,KAAKa,IAAI,EAAG,GAAKkL,EAAI,KAU7B,IAASlE,kBAAkB,eAHrB,SAAiBkE,GACtB,OAAO,EAAI/L,KAAKa,IAAI,GAAI,GAAKkL,IAW9B,IAASlE,kBAAkB,iBAJrB,SAAmBkE,GAExB,QADAA,GAAK,IACQ,EAAI/L,KAAKa,IAAI,EAAG,GAAKkL,EAAI,IAAM,EAAI/L,KAAKa,IAAI,EAAG,GAAK,GAAKkL,IAAM,GAkB7E,IAASlE,kBAAkB,cAHrB,SAAgBkE,GACrB,OAAO,EAAI/L,KAAKoB,IAAI2K,EAAI,MAUzB,IAASlE,kBAAkB,eAAiB8xJ,EAQ5C,IAAS9xJ,kBAAkB,iBAHrB,SAAmBkE,GACxB,OAAQ,EAAI/L,KAAKoB,IAAI,IAAW2K,IAAM,GAkBvC,IAASlE,kBAAkB,gBAAkB+xJ,EAQ7C,IAAS/xJ,kBAAkB,iBAAmBgyJ,EAS9C,IAAShyJ,kBAAkB,mBAJrB,SAAqBkE,GAE1B,QADAA,GAAK,IACQ,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,GAkBtD,IAASlE,kBAAkB,iBAHrB,SAAmBkE,GACxB,OAAO,EAAI/L,KAAKiD,KAAK,EAAI8I,EAAIA,IAU9B,IAASlE,kBAAkB,kBAHrB,SAAoBkE,GACzB,OAAO/L,KAAKiD,KAAK,KAAM8I,EAAIA,IAW5B,IAASlE,kBAAkB,oBAJrB,SAAsBkE,GAE3B,QADAA,GAAK,IACQ,EAAI,EAAI/L,KAAKiD,KAAK,EAAI8I,EAAIA,GAAK/L,KAAKiD,KAAK,GAAK8I,GAAK,GAAKA,GAAK,GAAK,GAWhF,IASC8P,EAAK,OAaA,SAAUi+I,EAAU/tJ,GAEzB,OADAA,GAAKA,GAvBG,EAAI,GAwBI8P,EAAK9P,EAAIA,EAAIA,EAtBxB,EAAI,GAsB6B8P,GAAM9P,GAvBvC,EAAI,IAuB8CA,EArBlD,EAAI,EAqBuDA,EAnB3D,GAAK,GAmB+D8P,GAAM9P,GApB1E,EAAI,IAoBiFA,EAlBrF,GAAK,GAkByF8P,GAAM9P,GAjBpG,GAAK,IAiB0GA,EAhB/G,GAAK,GASX,IAASlE,kBAAkB,iBAHrB,SAAmBkE,GACxB,OAAO,EAAI+tJ,EAAU,EAAI/tJ,IAW1B,IAASlE,kBAAkB,kBAAoBiyJ,EAS/C,IAASjyJ,kBAAkB,oBAJrB,SAAsBkE,GAE3B,QADAA,GAAK,IACQ,EAAI,EAAI+tJ,EAAU,EAAI/tJ,GAAK+tJ,EAAU/tJ,EAAI,GAAK,GAAK,GAUjE,IAAIguJ,EAAM,EAAI/5J,KAAKD,GAEfmyC,EAAS,GAAM6nH,EACfr2J,EAAI1D,KAAKsb,KAAK,GAAiB42B,EAYnC,IAASrqC,kBAAkB,kBAHrB,SAAoBkE,GACzB,OAZe,EAYI/L,KAAKa,IAAI,EAAG,KAAOkL,GAAK/L,KAAKkB,KAAKwC,EAAIqI,GAAKmmC,IAc/D,IAASrqC,kBAAkB,mBAHrB,SAAqBkE,GAC1B,OAAO,EAxBQ,EAwBQ/L,KAAKa,IAAI,GAAI,IAAMkL,GAAKA,IAAM/L,KAAKkB,KAAK6K,EAAIrI,GAAKwuC,IAiBzE,IAASrqC,kBAAkB,qBANrB,SAAuBkE,GAE5B,QADAA,EAAQ,EAAJA,EAAQ,GACA,EArCG,EAsCA/L,KAAKa,IAAI,EAAG,GAAKkL,GAAK/L,KAAKkB,KAAKwC,EAAIqI,GAAKmmC,GACrD,EAvCY,EAuCIlyC,KAAKa,IAAI,GAAI,GAAKkL,GAAK/L,KAAKkB,KAAKwC,EAAIqI,GAAKmmC,IAAW,I,6BClWvE,IAEgCtiC,EAPhCzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAMlB,IAAI+yI,GAF4Bl8I,EAFcxR,EAAQ,OAEDwR,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAGzFzR,EAAQ4a,QAAU+yI,EAClB5tJ,EAAOC,QAAU2tJ,G,0ECXJt1H,E,OAAf,E,SCDA,SAAS8rB,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAEnX,SAASgT,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAEhT,SAASopB,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAEhH,SAASyzC,EAAkBz3C,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAM7S,SAASkB,EAAgBz0C,EAAG9C,GAA+G,OAA1Gu3C,EAAkB13C,OAAOC,gBAAkB,SAAyBgD,EAAG9C,GAAsB,OAAjB8C,EAAE/C,UAAYC,EAAU8C,IAA6BA,EAAG9C,GAErK,SAASm3C,EAAaC,GAAW,IAAI+pF,EAMrC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GANzPq1C,GAA6B,OAAO,WAAkC,IAAsCn1C,EAAlC21C,EAAQT,EAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,EAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,EAA2B95C,KAAMuE,IAE5Z,SAASu1C,EAA2B1zC,EAAMnQ,GAAQ,OAAIA,GAA2B,WAAlB4jD,EAAQ5jD,IAAsC,oBAATA,EAEpG,SAAgCmQ,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbD,CAAuBC,GAAtCnQ,EAMnI,SAASwjD,EAAgB9zC,GAAwJ,OAAnJ8zC,EAAkB/2C,OAAOC,eAAiBD,OAAOoE,eAAiB,SAAyBnB,GAAK,OAAOA,EAAE/C,WAAaF,OAAOoE,eAAenB,KAA8BA,GAMxM,IAAI2/H,EAA8B,SAAUpB,IAlB5C,SAAmB5pF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,sDAAyD80C,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUrxC,UAAU,EAAMC,cAAc,KAAeqxC,GAAYH,EAAgBE,EAAUC,GAmBjXF,CAAUirF,EAAgBpB,GAE1B,IAvBoBp3G,EAAassB,EAAYC,EAuBzC8qF,EAASnqF,EAAasrF,GAE1B,SAASA,IAGP,OAFA14G,EAAgB5sB,KAAMslI,GAEfnB,EAAO1gI,MAAMzD,KAAMwD,WAiC5B,OA7DoBspB,EA+BPw4G,GA/BoBlsF,EA+BJ,CAAC,CAC5Bt4C,IAAK,YACLjL,MAAO,WACL,IAAI4uI,EAAczkI,KAAKua,MACnBwvI,EAAgBtlB,EAAYslB,cAE5Bh8H,EADgB02G,EAAY8sB,eACFC,EAAkBzH,GAAiB,UAC7D0H,EAAYzxJ,KAAKmW,QACjBu7I,EAAoB3H,GAAiB0H,EAAYA,EAAU1H,GAAiB,GAChF,OAAO5vI,EAASA,EAAS,GAAsB,oBAAX4T,EAAwBA,IAAWA,GAAS2jI,GAAqB,MAEtG,CACD5wJ,IAAK,gBACLjL,MAAO,WACL,IAAI47J,EAAYzxJ,KAAKmW,QACjBw7I,EAAaF,GAAaA,EAAU1jI,OAExC,OAAI0jI,GAAaA,EAAU9sB,QAAUgtB,EAC5BH,EAAkBzjI,OAGpB4jI,IAER,CACD7wJ,IAAK,SACLjL,MAAO,WACL,OAAOmK,KAAKua,MAAMnE,SAASpW,KAAK2/B,YAAa3/B,KAAK4xJ,gBAAiB5xJ,KAAKmW,cAzDA8iC,EAAkBnsB,EAAY5pB,UAAWk2C,GAAiBC,GAAaJ,EAAkBnsB,EAAausB,GA6D3KisF,EAzCyB,CA0ChC7wH,aAGF6wH,EAAeV,aAAe,CAC5BmlB,cAAe,UAEjBzkB,EAAeusB,YAAcntB,K,6BC5E7B,sWAgBIotB,EAAc,CACjBC,UAAW,CAAEjsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCuvJ,aAAc,CAAElsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACnCwvJ,KAAM,CAAEnsJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KACzByvJ,WAAY,CAAEpsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjC0vJ,MAAO,CAAErsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5B2vJ,MAAO,CAAEtsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5B4vJ,OAAQ,CAAEvsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC7B6vJ,MAAO,CAAExsJ,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,GACxB8vJ,eAAgB,CAAEzsJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACrC+vJ,KAAM,CAAE1sJ,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,KACvBgwJ,WAAY,CAAE3sJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KAChCiwJ,MAAO,CAAE5sJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC3BkwJ,UAAW,CAAE7sJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCmwJ,UAAW,CAAE9sJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KAC/BowJ,WAAY,CAAE/sJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GACjCqwJ,UAAW,CAAEhtJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAChCswJ,MAAO,CAAEjtJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAC5BuwJ,eAAgB,CAAEltJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACrCwwJ,SAAU,CAAEntJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/BywJ,QAAS,CAAEptJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC7B0wJ,KAAM,CAAErtJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KACzB2wJ,SAAU,CAAEttJ,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,KAC3B4wJ,SAAU,CAAEvtJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KAC7B6wJ,cAAe,CAAExtJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IACpC8wJ,SAAU,CAAEztJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/B+wJ,SAAU,CAAE1tJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/BgxJ,UAAW,CAAE3tJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,GAC9BixJ,UAAW,CAAE5tJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCkxJ,YAAa,CAAE7tJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,KAChCmxJ,eAAgB,CAAE9tJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,IACpCoxJ,WAAY,CAAE/tJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GACjCqxJ,WAAY,CAAEhuJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KAChCsxJ,QAAS,CAAEjuJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,GAC5BuxJ,WAAY,CAAEluJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjCwxJ,aAAc,CAAEnuJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACnCyxJ,cAAe,CAAEpuJ,EAAG,GAAIjB,EAAG,GAAIpC,EAAG,KAClC0xJ,cAAe,CAAEruJ,EAAG,GAAIjB,EAAG,GAAIpC,EAAG,IAClC2xJ,cAAe,CAAEtuJ,EAAG,GAAIjB,EAAG,GAAIpC,EAAG,IAClC4xJ,cAAe,CAAEvuJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KAClC6xJ,WAAY,CAAExuJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,KAC/B8xJ,SAAU,CAAEzuJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KAC9B+xJ,YAAa,CAAE1uJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KAChCgyJ,QAAS,CAAE3uJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9BiyJ,QAAS,CAAE5uJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9BkyJ,WAAY,CAAE7uJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KAChCmyJ,UAAW,CAAE9uJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC/BoyJ,YAAa,CAAE/uJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAClCqyJ,YAAa,CAAEhvJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,IACjCsyJ,QAAS,CAAEjvJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,KAC5BuyJ,UAAW,CAAElvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCwyJ,WAAY,CAAEnvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjCyyJ,KAAM,CAAEpvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GAC3B0yJ,UAAW,CAAErvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAChC2yJ,KAAM,CAAEtvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3B4yJ,KAAM,CAAEvvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3B6yJ,MAAO,CAAExvJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,GAC1B8yJ,YAAa,CAAEzvJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAClC+yJ,SAAU,CAAE1vJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/BgzJ,QAAS,CAAE3vJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9BizJ,UAAW,CAAE5vJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC/BkzJ,OAAQ,CAAE7vJ,EAAG,GAAIjB,EAAG,EAAGpC,EAAG,KAC1BmzJ,MAAO,CAAE9vJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5BozJ,MAAO,CAAE/vJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5BqzJ,SAAU,CAAEhwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/BszJ,cAAe,CAAEjwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACpCuzJ,UAAW,CAAElwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GAChCwzJ,aAAc,CAAEnwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACnCyzJ,UAAW,CAAEpwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC0zJ,WAAY,CAAErwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjC2zJ,UAAW,CAAEtwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC4zJ,qBAAsB,CAAEvwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3C6zJ,UAAW,CAAExwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC8zJ,UAAW,CAAEzwJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC+zJ,WAAY,CAAE1wJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjCg0J,UAAW,CAAE3wJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCi0J,YAAa,CAAE5wJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAClCk0J,cAAe,CAAE7wJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KACnCm0J,aAAc,CAAE9wJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACnCo0J,eAAgB,CAAE/wJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACrCq0J,eAAgB,CAAEhxJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACrCs0J,eAAgB,CAAEjxJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACrCu0J,YAAa,CAAElxJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAClCw0J,KAAM,CAAEnxJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,GACzBy0J,UAAW,CAAEpxJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,IAC/B00J,MAAO,CAAErxJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5B20J,QAAS,CAAEtxJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,KAC5B40J,OAAQ,CAAEvxJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,GAC3B60J,iBAAkB,CAAExxJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACvC80J,WAAY,CAAEzxJ,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,KAC7B+0J,aAAc,CAAE1xJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KAClCg1J,aAAc,CAAE3xJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACnCi1J,eAAgB,CAAE5xJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KACpCk1J,gBAAiB,CAAE7xJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACtCm1J,kBAAmB,CAAE9xJ,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KACtCo1J,gBAAiB,CAAE/xJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KACrCq1J,gBAAiB,CAAEhyJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KACrCs1J,aAAc,CAAEjyJ,EAAG,GAAIjB,EAAG,GAAIpC,EAAG,KACjCu1J,UAAW,CAAElyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCw1J,UAAW,CAAEnyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCy1J,SAAU,CAAEpyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/B01J,YAAa,CAAEryJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAClC21J,KAAM,CAAEtyJ,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,KACvB41J,QAAS,CAAEvyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9B61J,MAAO,CAAExyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GAC5B81J,UAAW,CAAEzyJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAChC+1J,OAAQ,CAAE1yJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GAC7Bg2J,UAAW,CAAE3yJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,GAC/Bi2J,OAAQ,CAAE5yJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC7Bk2J,cAAe,CAAE7yJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACpCm2J,UAAW,CAAE9yJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCo2J,cAAe,CAAE/yJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACpCq2J,cAAe,CAAEhzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACpCs2J,WAAY,CAAEjzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjCu2J,UAAW,CAAElzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCw2J,KAAM,CAAEnzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IAC3By2J,KAAM,CAAEpzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3B02J,KAAM,CAAErzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3B22J,WAAY,CAAEtzJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjC42J,OAAQ,CAAEvzJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,KAC3B62J,cAAe,CAAExzJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KACnC82J,IAAK,CAAEzzJ,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,GACxB+2J,UAAW,CAAE1zJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChCg3J,UAAW,CAAE3zJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KAC/Bi3J,YAAa,CAAE5zJ,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IACjCk3J,OAAQ,CAAE7zJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC7Bm3J,WAAY,CAAE9zJ,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,IACjCo3J,SAAU,CAAE/zJ,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,IAC9Bq3J,SAAU,CAAEh0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC/Bs3J,OAAQ,CAAEj0J,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC5Bu3J,OAAQ,CAAEl0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC7Bw3J,QAAS,CAAEn0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9By3J,UAAW,CAAEp0J,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,KAC/B03J,UAAW,CAAEr0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC23J,UAAW,CAAEt0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAChC43J,KAAM,CAAEv0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC3B63J,YAAa,CAAEx0J,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KAChC83J,UAAW,CAAEz0J,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KAC/B/J,IAAK,CAAEoN,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC1B+3J,KAAM,CAAE10J,EAAG,EAAGjB,EAAG,IAAKpC,EAAG,KACzBg4J,QAAS,CAAE30J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC9Bi4J,OAAQ,CAAE50J,EAAG,IAAKjB,EAAG,GAAIpC,EAAG,IAC5Bk4J,UAAW,CAAE70J,EAAG,GAAIjB,EAAG,IAAKpC,EAAG,KAC/Bm4J,OAAQ,CAAE90J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC7Bo4J,MAAO,CAAE/0J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5Bq4J,MAAO,CAAEh1J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KAC5Bs4J,WAAY,CAAEj1J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KACjCu4J,OAAQ,CAAEl1J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,GAC7Bw4J,YAAa,CAAEn1J,EAAG,IAAKjB,EAAG,IAAKpC,EAAG,KA2B7B,SAAU86C,EAAIR,EAAeI,GAGlC,IAAII,EA6BJ,OAxBUu0G,EAAa/0G,GACtBQ,EAAYu0G,EAAa/0G,GAIG,MAApBA,EAAM3I,OAAO,GACrBmJ,EA4BI,SAAmBF,GAGxBA,EAAMA,EAAI3mD,QADW,oCACa,SAASkP,EAAGE,EAAGjB,EAAGpC,GACnD,OAAOqD,EAAIA,EAAIjB,EAAIA,EAAIpC,EAAIA,KAG5B,IAAI8B,EAAS,4CAA4C0c,KAAKo8B,GAC9D,OAAO94C,EAAS,CACfuB,EAAGizB,SAASx0B,EAAO,GAAI,IACvBM,EAAGk0B,SAASx0B,EAAO,GAAI,IACvB9B,EAAGs2B,SAASx0B,EAAO,GAAI,KAWnB,SAA4B84C,GAGjCA,EAAMA,EAAI3mD,QADW,6CACa,SAASkP,EAAGE,EAAGjB,EAAGpC,EAAG1L,GACtD,OAAO+O,EAAIA,EAAIjB,EAAIA,EAAIpC,EAAIA,EAAI1L,EAAIA,KAGpC,IAAIwN,EAAS,wDAAwD0c,KAAKo8B,GAC1E,OAAO94C,EAAS,CACfuB,EAAGizB,SAASx0B,EAAO,GAAI,IACvBM,EAAGk0B,SAASx0B,EAAO,GAAI,IACvB9B,EAAGs2B,SAASx0B,EAAO,GAAI,IACvBxN,EAAGgiC,SAASx0B,EAAO,GAAI,IAAM,UAC1BmI,EAvBAwuJ,CAAkB79G,GAxCf89G,CAASp+G,GAIPA,EAAMp+B,MAAM,cACpB4+B,EAoEI,SAAoBR,GAIzB,IAAIvwB,GAHJuwB,EAAQA,EAAMrmD,QAAQ,OAAQ,KAGOioB,MAAM,uCAG3C,GAAI6N,EACHA,EAAQhuB,KAAK,UAKb,KAFAguB,EAAUuwB,EAAMp+B,MAAM,mDAGrB,OAIF,MAAO,CACN7Y,EAAGizB,SAASvM,EAAQ,IACpB3nB,EAAGk0B,SAASvM,EAAQ,IACpB/pB,EAAGs2B,SAASvM,EAAQ,IACpBz1B,EAAG+xB,WAAW0D,EAAQ,KA1FhB4uI,CAAUr+G,IAIZQ,IACJA,EAAM,CAAEz3C,EAAG,EAAGjB,EAAG,EAAGpC,EAAG,EAAG1L,EAAG,IAI1B,IAAeomD,KAClBI,EAAIxmD,EAAIomD,GAGFI,EAwFF,SAAU89G,EAAS99G,GACxB,MAAO,IAAM+9G,EAAK/9G,EAAIz3C,EAAE9P,SAAS,KAAOslK,EAAK/9G,EAAI14C,EAAE7O,SAAS,KAAOslK,EAAK/9G,EAAI96C,EAAEzM,SAAS,KAUlF,SAAUulK,EAAUh+G,GACzB,OAAI,IAAeA,EAAIxmD,IAAgB,IAAVwmD,EAAIxmD,EACzB,QAAUwmD,EAAIz3C,EAAI,IAAMy3C,EAAI14C,EAAI,IAAM04C,EAAI96C,EAAI,IAAM86C,EAAIxmD,EAAI,IAG5D,OAASwmD,EAAIz3C,EAAI,IAAMy3C,EAAI14C,EAAI,IAAM04C,EAAI96C,EAAI,IAWhD,SAAU64J,EAAK1pJ,GACpB,OAAmB,GAAZA,EAAEzV,OAAc,IAAMyV,EAAI,GAAKA,EAcjC,SAAU4pJ,EAAYC,EAA4BC,EAA4Bj6I,GAGnF,OAFAA,EAAU,IAAiBA,EAAS,EAAG,GAEnCg6I,EACCC,EACI,CACN51J,EAAG21J,EAAK31J,EAAIvO,KAAKQ,OAAO2jK,EAAK51J,EAAI21J,EAAK31J,GAAK2b,GAC3C5c,EAAG42J,EAAK52J,EAAItN,KAAKQ,OAAO2jK,EAAK72J,EAAI42J,EAAK52J,GAAK4c,GAC3Chf,EAAGg5J,EAAKh5J,EAAIlL,KAAKQ,OAAO2jK,EAAKj5J,EAAIg5J,EAAKh5J,GAAKgf,GAC3C1qB,GAAI0kK,EAAK1kK,GAAK,GAAKQ,KAAKQ,QAAQ2jK,EAAK3kK,GAAK,IAAM0kK,EAAK1kK,GAAK,IAAM0qB,IAI1Dg6I,EAGEC,GAIHD,EAYH,SAAUn+G,EAAQC,EAA2B97B,GAClD,OAAI87B,EACI,CACNz3C,EAAGvO,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAK2lD,EAAIz3C,EAAI61J,EAAiBp+G,EAAIz3C,EAAG2b,KAC7D5c,EAAGtN,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAK2lD,EAAI14C,EAAI82J,EAAiBp+G,EAAI14C,EAAG4c,KAC7Dhf,EAAGlL,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAK2lD,EAAI96C,EAAIk5J,EAAiBp+G,EAAI96C,EAAGgf,KAC7D1qB,EAAGwmD,EAAIxmD,GAKDwmD,EAYH,SAAUo+G,EAAiB9lK,EAAe4rB,GAC/C,IAAIhZ,EAAOgZ,EAAU,EAAI,IAAM5rB,EAAQA,EACvC,OAAO0B,KAAKQ,MAAM0Q,EAAOgZ,GAWpB,SAAU+7B,EAASD,EAA2B97B,GACnD,GAAI87B,EAAK,CACR,IAEIp5C,EAAOw3J,EAFApkK,KAAKK,IAAIL,KAAKM,IAAI0lD,EAAIz3C,EAAGy3C,EAAI14C,EAAG04C,EAAI96C,GAAI,KAEjBgf,GAClC,MAAO,CACN3b,EAAGvO,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAKL,KAAKQ,MAAMwlD,EAAIz3C,EAAI3B,KAChDU,EAAGtN,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAKL,KAAKQ,MAAMwlD,EAAI14C,EAAIV,KAChD1B,EAAGlL,KAAKM,IAAI,EAAGN,KAAKK,IAAI,IAAKL,KAAKQ,MAAMwlD,EAAI96C,EAAI0B,KAChDpN,EAAGwmD,EAAIxmD,GAKR,OAAOwmD,EA6BH,SAAUE,EAASF,EAA2BG,GACnD,GAAW,MAAPH,GAA6B,GAAdG,EAClB,OAAOH,EAGR,IAAIq+G,EAAMC,EAASt+G,GAEnB,OADAq+G,EAAI3gK,EAAIyiD,EACDo+G,EAASF,GAuCX,SAAUE,EAAS/+G,GACxB,IAAIj3C,EAAGjB,EAAGpC,EACNy2B,EAAI6jB,EAAM7jB,EACVj+B,EAAI8hD,EAAM9hD,EACV6W,EAAIirC,EAAMjrC,EAEd,GAAS,GAAL7W,EACH6K,EAAIjB,EAAIpC,EAAIqP,MACN,CACN,IAAIiqJ,EAAU,SAAiBl5J,EAAWm5J,EAAW14J,GAGpD,OAFIA,EAAI,IAAKA,GAAK,GACdA,EAAI,IAAKA,GAAK,GACdA,EAAI,EAAI,EAAYT,EAAc,GAATm5J,EAAIn5J,GAASS,EACtCA,EAAI,GAAgB04J,EACpB14J,EAAI,EAAI,EAAYT,GAAKm5J,EAAIn5J,IAAM,EAAI,EAAIS,GAAK,EAC7CT,GAGJm5J,EAAIlqJ,EAAI,GAAMA,GAAK,EAAI7W,GAAK6W,EAAI7W,EAAI6W,EAAI7W,EACxC4H,EAAI,EAAIiP,EAAIkqJ,EAChBl2J,EAAIi2J,EAAQl5J,EAAGm5J,EAAG9iI,EAAI,EAAI,GAC1Br0B,EAAIk3J,EAAQl5J,EAAGm5J,EAAG9iI,GAClBz2B,EAAIs5J,EAAQl5J,EAAGm5J,EAAG9iI,EAAI,EAAI,GAG3B,MAAO,CACNpzB,EAAGvO,KAAKQ,MAAU,IAAJ+N,GACdjB,EAAGtN,KAAKQ,MAAU,IAAJ8M,GACdpC,EAAGlL,KAAKQ,MAAU,IAAJ0K,IAmBV,SAAUo5J,EAAS9+G,GACxB,IAAIj3C,EAAIi3C,EAAMj3C,EAAI,IACdjB,EAAIk4C,EAAMl4C,EAAI,IACdpC,EAAIs6C,EAAMt6C,EAAI,IACd5K,EAAMN,KAAKM,IAAIiO,EAAGjB,EAAGpC,GACrB7K,EAAML,KAAKK,IAAIkO,EAAGjB,EAAGpC,GACrBy2B,EAAI,EACJj+B,EAAI,EACJ6W,GAAKja,EAAMD,GAAO,EAEtB,GAAIC,IAAQD,EACXshC,EAAIj+B,EAAI,MAEF,CACN,IAAI9C,EAAIN,EAAMD,EAId,OAFAqD,EAAI6W,EAAI,GAAM3Z,GAAK,EAAIN,EAAMD,GAAOO,GAAKN,EAAMD,GAEvCC,GACP,KAAKiO,EAAGozB,GAAKr0B,EAAIpC,GAAKtK,GAAK0M,EAAIpC,EAAI,EAAI,GAAI,MAC3C,KAAKoC,EAAGq0B,GAAKz2B,EAAIqD,GAAK3N,EAAI,EAAG,MAC7B,KAAKsK,EAAGy2B,GAAKpzB,EAAIjB,GAAK1M,EAAI,EAG3B+gC,GAAK,EAGN,MAAO,CACNA,EAAGA,EACHj+B,EAAGA,EACH6W,EAAGA,GA0HC,SAAUmqJ,EAAQl/G,GACvB,OAAmB,IAAVA,EAAMj3C,EAAsB,IAAVi3C,EAAMl4C,EAAsB,IAAVk4C,EAAMt6C,GAAY,KAAQ,M,6BCtsBxE,mGA+DA,cAyBC,mBAGC,cAAO,K,OAvBE,EAAAy5J,OAA8B,IAAI,IAelC,EAAAC,UAAoB,EAS7B,EAAKphH,UAAY,iBAEjB,EAAKmhH,OAAOl9J,OAAOmgD,GAAG,WAAY,EAAKkL,SAAU,GACjD,EAAK6xG,OAAOl9J,OAAOmgD,GAAG,WAAY,EAAKkL,SAAU,GAEjD,EAAK3hC,QAAU,EAAKnoB,MAAM4oD,SAAS,kBACnC,EAAKoF,GAAK,YAAc,IAASruD,cACjC,EAAKwoB,QAAQiiC,KAAK,CAAE,GAAM,EAAK4D,KAC/B,EAAKrF,WAAW1qD,KAAK,EAAKkqB,SAG1B,EAAKihC,a,EA8IP,OAtLoC,iBAiD5B,YAAAU,SAAP,sBAEKtjC,GAAY/mB,KAAKm8J,UAAY,IAAM,IAEnCrkE,EAAavgG,KAAKQ,MAAM,GAAoC,GAA/BR,KAAKkB,IAAIsuB,EAAWxvB,KAAKD,KAAY,IAClEmgG,EAAalgG,KAAKQ,MAAM,GAA0B,GAArBR,KAAKoB,IAAIouB,IAAkB,IAExDgxE,EAAaxgG,KAAKQ,MAAM,GAA0B,GAArBR,KAAKkB,IAAIsuB,IAAkB,IACxD2wE,EAAangG,KAAKQ,MAAM,GAAoC,GAA/BR,KAAKoB,IAAIouB,EAAWxvB,KAAKD,KAAY,IAGlE8kK,EAAyBp8J,KAAK0oB,QAClC0zI,EAAgBpqG,mBAChBoqG,EAAgBzxG,KAAK,CAAC,GAAMmtC,EAAI,GAAKC,EAAI,GAAMN,EAAI,GAAKC,IAExD,IAAW,IAAc13F,KAAKk8J,OAAO72J,aAAa,SAACtO,GAClD,IAAIsF,EAAItF,EAAE,GACN+3H,EAAO/3H,EAAE,GACTixC,EAAiC8mF,EAAK9mF,OAErC,IAAeA,KACnBA,EAAS3rC,GAAK,EAAK6/J,OAAO//J,OAAS,IAGpC,IAAIkgK,EAA0B,EAAK97J,MAAM+I,IAAI,QACzC,IAAewlH,EAAK/xE,QACvBs/G,EAAa1xG,KAAK,CAAE,aAAcmkE,EAAK/xE,MAAM/mD,aAE1C,IAAe84H,EAAKn+D,UACvB0rG,EAAa1xG,KAAK,CAAE,eAAgBmkE,EAAKn+D,UAGtC,IAAe3oB,IAClBq0H,EAAa1xG,KAAK,CAAE,OAAU3iB,IAG/Bo0H,EAAgB9yJ,IAAI+yJ,OASf,YAAA9yJ,MAAP,WACCvJ,KAAKk8J,OAAO3yJ,SAUN,YAAAuvE,SAAP,SAAgB/7B,EAAc4T,EAAkB3oB,GAC/ChoC,KAAKk8J,OAAO19J,KAAK,CAAEu+C,MAAOA,EAAO4T,QAASA,EAAS3oB,OAAQA,KAQ5D,sBAAW,oBAAK,C,IAAhB,WACC,OAAOhoC,KAAKk8J,Q,gCASb,sBAAW,oBAAK,C,IAYhB,WACC,OAAIl8J,KAAKowD,OACDpwD,KAAKowD,OAEN,e,IAhBR,SAAiB7vD,GACZP,KAAKowD,QAAU7vD,IAClBP,KAAKowD,OAAS7vD,EACdP,KAAKqqD,WACL9pD,EAAMqvD,UAAU5vD,KAAK0oB,W,gCAoBvB,sBAAW,uBAAQ,C,IASnB,WACC,OAAO1oB,KAAKm8J,W,IAVb,SAAoBtmK,GAEnBmK,KAAKm8J,UAAYtmK,EACjBmK,KAAKqqD,Y,gCAWC,YAAAxJ,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GAEf9gB,KAAKomH,MAAMvlE,SAAS//B,EAAOslG,OAE3BpmH,KAAKm8J,UAAYr7I,EAAOiG,UAYzB,sBAAW,4BAAa,C,IAAxB,SAAyBlxB,GACxBmK,KAAK0oB,QAAQiiC,KAAK,CAAC2xG,cAAczmK,K,gCAEnC,EAtLA,CAAoC,KA8LpC,IAASuJ,kBAAT,eAA+Cy5E,G,6BC7P/C,8GAiCA,aAsBC,WAAYl7E,EAAkBC,GAC7BoC,KAAKu8J,UAAY5+J,EACjBqC,KAAKw8J,UAAY5+J,EA4EnB,OAjEQ,YAAAu+G,OAAP,SAAcjgH,GAEb,IAAK,IAAIG,EAAIH,EAAOC,OAAS,EAAGE,EAAI,EAAGA,IAAK,CAC3C,IAAIkB,EAAKrB,EAAOG,GACZmB,EAAKtB,EAAOG,EAAI,GAEhB9E,KAAK6B,IAAImE,EAAGjD,EAAIkD,EAAGlD,GAAK,IAAO/C,KAAK6B,IAAImE,EAAGhD,EAAIiD,EAAGjD,GAAK,IAC1D2B,EAAOyvB,OAAOtvB,EAAG,GAKnB,IAAIsB,EAAWqC,KAAKu8J,UAChB3+J,EAAWoC,KAAKw8J,UAEpB,GAAItgK,EAAOC,OAAS,GAAMwB,GAAY,GAAKC,GAAY,EACtD,OAAO,IAAe1B,GAGvB,IAAI8Y,EAAgB9Y,EAAO,GACvB+Y,EAAe/Y,EAAOA,EAAOC,OAAS,GAEtCsgK,GAAkB,EAElB,IAAYznJ,EAAM1a,EAAG,IAAM,IAAY2a,EAAK3a,IAAM,IAAY0a,EAAMza,IAAM,IAAY0a,EAAK1a,KAC9FkiK,GAAS,GAMV,IAFA,IAAI3wJ,EAAe,GAEHuF,GAAPhV,EAAI,EAASH,EAAOC,OAAS,GAAGE,EAAIgV,EAAKhV,IAAK,CAClDkB,EAAarB,EAAOG,EAAI,GAExBmB,EAAatB,EAAOG,GAFxB,IAIIoB,EAAavB,EAAOG,EAAI,GAExBqB,EAAaxB,EAAOG,EAAI,GAElB,IAANA,EAEFkB,EADGk/J,EACEvgK,EAAOA,EAAOC,OAAS,GAGvBD,EAAOG,GAEHA,GAAKH,EAAOC,OAAS,IAE9BuB,EADG++J,EACEvgK,EAAO,GAGPA,EAAOG,EAAI,IAKlB,IAAIzB,EAAwB,IAA4B2C,EAAIC,EAAIC,EAAIC,EAAIC,EAAUC,GAC9E/C,EAAwB,IAA4B0C,EAAIC,EAAIC,EAAIC,EAAIC,EAAUC,GAElFkO,GAAQ,IAAmBrO,EAAI7C,EAAeC,GAG/C,OAAOiR,GAET,EApGA,GAkHM,SAAU4wJ,EAAUtiK,EAAgBC,EAAgBsiK,EAAoBC,EAAoB7+J,EAAiB8+J,GAElH,IAAI/kE,EAAa19F,EAAOE,EACpBm9F,EAAar9F,EAAOG,EAEpBw9F,EAAa19F,EAAOC,EACpBo9F,EAAar9F,EAAOE,EAEpBQ,EAAmB,IAAkBX,EAAQC,GAE7CwiK,IACHF,EAAa5hK,EAAWxD,KAAKQ,MAAMgD,EAAW4hK,IAG/C,IAAIxkK,EAAY,IAAS8I,SAAS,IAAiB,CAAC,YAAa7G,EAAOE,EAAGD,EAAOC,EAAGF,EAAOG,EAAGF,EAAOE,EAAGoiK,EAAYC,KACrH,IAAKzkK,EAAG,CACP,GAAI4C,EAAW,EAAG,CACjB,IAAIe,EAAgBvE,KAAKwE,MAAM27F,EAAKD,EAAIM,EAAKD,GAEzCn/F,EAAcpB,KAAKoB,IAAImD,GACvBrD,EAAclB,KAAKkB,IAAIqD,GAEvBghK,EAAsBH,EAAahkK,EACnCokK,EAAsBJ,EAAalkK,EAEvC,GAAIkkK,GAAc,GAAKC,GAAc,EACpCzkK,EAAI,IAAakC,OAEb,CACJ,IAAI2iK,EAAwBzlK,KAAKQ,MAAM,EAAIgD,EAAW4hK,GAElDzgK,EAAmB,GACnBgsC,EAAe,EAEf6vD,EAAKD,IACR5vD,IAAS,GAGNwvD,EAAKD,IACRvvD,IAAS,GAGV,IAAK,IAAI7rC,EAAY,EAAGA,GAAK2gK,EAAe3gK,IAAK,CAEhD,IAAI/B,EAAYw9F,EAAKz7F,EAAIygK,EAAc,GADvC50H,IAAS,GACyC00H,EAAa,EAAInkK,EAC/D8B,EAAYk9F,EAAKp7F,EAAI0gK,EAAc,EAAI70H,EAAO00H,EAAa,EAAIjkK,EACnEuD,EAAOsC,KAAK,CAAElE,EAAGA,EAAGC,EAAGA,IAGxBpC,EAAI,IAAI8kK,EAAQl/J,EAASA,GAASo+G,OAAOjgH,SAI1C/D,EAAI,GAGL,IAAS0I,SAAS,IAAiB,CAAC,YAAazG,EAAOE,EAAGD,EAAOC,EAAGF,EAAOG,EAAGF,EAAOE,EAAGoiK,EAAYC,IAAczkK,GAGpH,OAAOA,GAQR,WAeC,WAAYmc,GACXtU,KAAKk9J,QAAU5oJ,EAAKmoJ,OAWd,YAAAtgD,OAAP,SAAcjgH,GAAd,WACKwlH,EAAa7xF,IACbioE,EAAajoE,IACbkoE,EAAaloE,IACbstI,EAAattI,IACbutI,EAAavtI,IACbg0F,EAAah0F,IACb4nE,EAAa5nE,IACb6nE,EAAa7nE,IACbwtI,EAAaxtI,IACbytI,EAAaztI,IACb30B,EAAgB,EAEhBiwB,EAAS,GAEPoyI,EAAY,SAACjjK,EAAWC,GAC7B4wB,GAAU,IACT,CACC7wB,GAAIonH,EAAK,EAAI5pB,EAAKx9F,GAAK,EACrBC,GAAIspH,EAAK,EAAIpsB,EAAKl9F,GAAK,GAG1B,CACCD,GAAI,EAAIonH,EAAK5pB,GAAM,EACjBv9F,GAAI,EAAIspH,EAAKpsB,GAAM,GAGtB,CACCn9F,GAAIonH,EAAK,EAAI5pB,GAAM,EACjBv9F,GAAIspH,EAAK,EAAIpsB,GAAM,KAKlB+lE,EAAY,SAAC,G,IAAEljK,EAAA,EAAAA,EAAGC,EAAA,EAAAA,EACvB,OAAQW,GACP,KAAK,EACJA,EAAQ,EAEJ,EAAKgiK,SACRnlE,EAAKz9F,EACLo9F,EAAKn9F,GAGL4wB,GAAU,IAAa,CAAE7wB,EAAC,EAAEC,EAAC,IAE9B,MAED,KAAK,EACJW,EAAQ,EAEJ,EAAKgiK,UACRC,EAAK7iK,EACL+iK,EAAK9iK,GAEN,MAED,KAAK,EAGJ,GAFAW,EAAQ,EAEJ,EAAKgiK,QAAS,CACjBE,EAAK9iK,EACLgjK,EAAK/iK,EACL4wB,GAAU,IAAa,CAAE7wB,GAAIonH,EAAK,EAAI5pB,EAAKx9F,GAAK,EAAGC,GAAIspH,EAAK,EAAIpsB,EAAKl9F,GAAK,IAC1E,MAGA4wB,GAAU,IAAa,CAAE7wB,GAAI,EAAIonH,EAAK5pB,GAAM,EAAGv9F,GAAI,EAAIspH,EAAKpsB,GAAM,IAIpE,QACC8lE,EAAUjjK,EAAGC,GAIfmnH,EAAK5pB,EACLA,EAAKx9F,EACLupH,EAAKpsB,EACLA,EAAKl9F,GAKN,GAFA,IAAY2B,EAAQshK,GAEhBx9J,KAAKk9J,QACR,OAAQhiK,GACP,KAAK,EACJiwB,GAAU,IAAa,CAAE7wB,EAAGy9F,EAAIx9F,EAAGm9F,IACnCvsE,GAAU,MACV,MACD,KAAK,EACJA,GAAU,IAAa,CAAE7wB,GAAIy9F,EAAK,EAAIolE,GAAM,EAAG5iK,GAAIm9F,EAAK,EAAI2lE,GAAM,IAClElyI,GAAU,IAAa,CAAE7wB,GAAI6iK,EAAK,EAAIplE,GAAM,EAAGx9F,GAAI8iK,EAAK,EAAI3lE,GAAM,IAClEvsE,GAAU,MACV,MACD,KAAK,EACJqyI,EAAU,CAAEljK,EAAGy9F,EAAIx9F,EAAGm9F,IACtB8lE,EAAU,CAAEljK,EAAG6iK,EAAI5iK,EAAG8iK,IACtBG,EAAU,CAAEljK,EAAG8iK,EAAI7iK,EAAG+iK,QAIlB,CACN,OAAQpiK,GACP,KAAK,EACJqiK,EAAUzlE,EAAIL,GAEf,KAAK,EACJtsE,GAAU,IAAa,CAAE7wB,EAAGw9F,EAAIv9F,EAAGk9F,IAIrCtsE,GAAU,MAGX,OAAOA,GA9IT,I,6BCpNAz1B,EAAQomJ,YAAa,EAErB,IAIgC30I,EAJ5Bs2J,EAAU9nK,EAAQ,KAElB+nK,GAE4Bv2J,EAFMs2J,IAEet2J,EAAI20I,WAAa30I,EAAM,CAAEmJ,QAASnJ,GAEvFzR,EAAQ4a,QAAUotJ,EAASptJ,SAAW,SAAU9O,GAC9C,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CACzC,IAAIykB,EAAStd,UAAUnH,GAEvB,IAAK,IAAIyE,KAAOggB,EACVpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAC/CU,EAAOV,GAAOggB,EAAOhgB,IAK3B,OAAOU,I,6BCrBT,sDAAS+O,EAAeC,EAAKnU,GAAK,OAUlC,SAAyBmU,GAAO,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOA,EAVtBmtJ,CAAgBntJ,IAQzD,SAA+BA,EAAKnU,GAAK,GAAsB,qBAAX+I,UAA4BA,OAAOC,YAAY3C,OAAO8N,IAAO,OAAQ,IAAIC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKlE,EAAW,IAAM,IAAK,IAAiCmE,EAA7BC,EAAKN,EAAIpL,OAAOC,cAAmBqL,GAAMG,EAAKC,EAAG1M,QAAQI,QAAoBiM,EAAKjS,KAAKqS,EAAGhb,QAAYwG,GAAKoU,EAAKtU,SAAWE,GAA3DqU,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAtL,QAAuM,IAAWL,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,EARjamtJ,CAAsBptJ,EAAKnU,IAI5F,SAAqCsJ,EAAGk4J,GAAU,IAAKl4J,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOm4J,EAAkBn4J,EAAGk4J,GAAS,IAAIt6J,EAAIb,OAAOQ,UAAUlN,SAASC,KAAK0P,GAAGgD,MAAM,GAAI,GAAc,WAANpF,GAAkBoC,EAAE1C,cAAaM,EAAIoC,EAAE1C,YAAYV,MAAM,GAAU,QAANgB,GAAqB,QAANA,EAAa,OAAOlM,MAAM84B,KAAKxqB,GAAI,GAAU,cAANpC,GAAqB,2CAA2C0nB,KAAK1nB,GAAI,OAAOu6J,EAAkBn4J,EAAGk4J,GAJpTE,CAA4BvtJ,EAAKnU,IAEnI,WAA8B,MAAM,IAAImJ,UAAU,6IAFuFw4J,GAMzI,SAASF,EAAkBttJ,EAAKa,IAAkB,MAAPA,GAAeA,EAAMb,EAAIrU,UAAQkV,EAAMb,EAAIrU,QAAQ,IAAK,IAAIE,EAAI,EAAG8iC,EAAO,IAAI9nC,MAAMga,GAAMhV,EAAIgV,EAAKhV,IAAO8iC,EAAK9iC,GAAKmU,EAAInU,GAAM,OAAO8iC,EAOjK,SAAS8+H,EAAmBC,EAAmBhnG,GAC5D,IAAIhhD,EAAOghD,GAAU,GACjBhgE,EAAegf,EAAKhf,aACpBrB,EAAQqgB,EAAKrgB,MACbsoK,EAAWjoJ,EAAKioJ,SAChBC,EAAYloJ,EAAKkoJ,UAajBC,EAAmB9tJ,EAXDkE,YAAe,WACnC,YAAc/H,IAAV7W,EACKA,OAGY6W,IAAjBxV,EAC6B,oBAAjBA,EAA8BA,IAAiBA,EAG3B,oBAAtBgnK,EAAmCA,IAAsBA,KAElB,GACnDI,EAAaD,EAAiB,GAC9BE,EAAgBF,EAAiB,GAEjCG,OAAwB9xJ,IAAV7W,EAAsBA,EAAQyoK,EAE5CF,IACFI,EAAcJ,EAAUI,IAY1B,IAAIC,EAAiBhqJ,UAAa,GAWlC,OAVAA,aAAgB,WACVgqJ,EAAevmJ,QACjBumJ,EAAevmJ,SAAU,OAIbxL,IAAV7W,GACF0oK,EAAc1oK,KAEf,CAACA,IACG,CAAC2oK,EApBR,SAAuBp/G,GACrBm/G,EAAcn/G,GAEVo/G,IAAgBp/G,GAAY++G,GAC9BA,EAAS/+G,EAAUo/G,O,6BC7CzB,kFAuFA,cAoBC,mBACC,cAAO,K,OACP,EAAKzjH,UAAY,mBAEjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAE9B,EAAKgJ,aAAa,EAAG,EAAG,EAAG,GAE3B,EAAKq3C,a,EAmKP,OA/LsC,iBAoC9B,YAAAY,KAAP,WACC,YAAMA,KAAI,WAEV,IAAI7rB,EAAY1+B,KAAKomD,WACjBltB,EAAYl5B,KAAKkmD,YAErB,GAAI,IAAexnB,IAAM,IAAexF,GAAI,CAE3C,IAAIwlI,EAAU,IAAUhgI,EAAGxF,GAAK,EAE5BylI,EAAsB,IAAuB3+J,KAAK2+J,oBAAqBD,GACvEE,EAAuB,IAAuB5+J,KAAK4+J,qBAAsBF,GACzEG,EAA0B,IAAuB7+J,KAAK6+J,wBAAyBH,GAC/EI,EAAyB,IAAuB9+J,KAAK8+J,uBAAwBJ,GAE7EK,EAAgB,IAAUxnK,KAAK6B,IAAIslC,EAAI,GAAInnC,KAAK6B,IAAI8/B,EAAI,IACxD8lI,EAAe,IAAiBL,EAAqB,EAAGI,GACxDE,EAAe,IAAiBL,EAAsB,EAAGG,GACzDG,EAAe,IAAiBL,EAAyB,EAAGE,GAC5DI,EAAe,IAAiBL,EAAwB,EAAGC,GAa3DjzJ,EAXgB,IAAMkzJ,EAAO,QAAUtgI,EAAIugI,GAAQ,MAKnC,KAAOA,EAAO,IAAMA,EAAO,UAAYA,EAAO,IAAMA,IAFpD,KAAOvgI,EAAI,KAAOxF,EAAIgmI,KAGtB,KAAOA,EAAO,IAAMA,EAAO,WAAaA,EAAO,IAAMA,IALrD,KAAOC,EAAO,IAAMjmI,IAMpB,KAAOimI,EAAO,IAAMA,EAAO,WAAaA,EAAO,KAAOA,IALtD,OAASH,IAMT,KAAOA,EAAO,IAAMA,EAAO,UAAYA,EAAO,KAAOA,GAGU,KAEnFh/J,KAAK8L,KAAOA,IAcP,YAAAwG,aAAP,SAAoB4mH,EAAsBE,EAAsBG,EAAsBF,GACrFr5H,KAAK2+J,oBAAsBzlC,EAC3Bl5H,KAAK4+J,qBAAuBxlC,EAC5Bp5H,KAAK8+J,uBAAyBvlC,EAC9Bv5H,KAAK6+J,wBAA0BxlC,GAShC,sBAAW,kCAAmB,C,IAO9B,WACC,OAAOr5H,KAAKujD,iBAAiB,wB,IAR9B,SAA+B1tD,GAC9BmK,KAAKy6D,mBAAmB,sBAAuB5kE,GAAO,I,gCAgBvD,sBAAW,mCAAoB,C,IAO/B,WACC,OAAOmK,KAAKujD,iBAAiB,yB,IAR9B,SAAgC1tD,GAC/BmK,KAAKy6D,mBAAmB,uBAAwB5kE,GAAO,I,gCAgBxD,sBAAW,sCAAuB,C,IAOlC,WACC,OAAOmK,KAAKujD,iBAAiB,4B,IAR9B,SAAmC1tD,GAClCmK,KAAKy6D,mBAAmB,0BAA2B5kE,GAAO,I,gCAgB3D,sBAAW,qCAAsB,C,IAOjC,WACC,OAAOmK,KAAKujD,iBAAiB,2B,IAR9B,SAAkC1tD,GACjCmK,KAAKy6D,mBAAmB,yBAA0B5kE,GAAO,I,gCAenD,YAAA81D,eAAP,aASA,sBAAW,mBAAI,C,IAAf,WACC,OAAI3rD,KAAKyyD,YACDzyD,KAAKyyD,YAGTzyD,KAAKwrD,WACD,CACNlxD,EAAG,EACHC,EAAG,EACH+B,MAAO0D,KAAKomD,WACZ7pD,OAAQyD,KAAKkmD,aAIP,CAAE5rD,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,I,gCAI1C,EA/LA,CAAsC,KAuMtC,IAAS6C,kBAAT,iBAAiD+2E,G,6BCxR/C,IAEgChvE,EAPhCzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAMlB,IAAI+yI,GAF4Bl8I,EAFgBxR,EAAQ,OAEHwR,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAGzFzR,EAAQ4a,QAAU+yI,EAClB5tJ,EAAOC,QAAU2tJ,G,6BCZnB,+CACe,SAAS+b,EAA2Bz5J,GACjD,GAAsB,qBAAXP,QAAgD,MAAtBO,EAAEP,OAAOC,UAAmB,CAC/D,GAAIhO,MAAMD,QAAQuO,KAAOA,EAAI,YAA2BA,IAAK,CAC3D,IAAItJ,EAAI,EAEJghF,EAAI,aAER,MAAO,CACLpiF,EAAGoiF,EACH95E,EAAG,WACD,OAAIlH,GAAKsJ,EAAExJ,OAAe,CACxBqI,MAAM,GAED,CACLA,MAAM,EACN3O,MAAO8P,EAAEtJ,OAGbgI,EAAG,SAAWuM,GACZ,MAAMA,GAERhM,EAAGy4E,GAIP,MAAM,IAAI73E,UAAU,yIAGtB,IAAI65J,EAGAtuJ,EAFAuuJ,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLtkK,EAAG,WACDokK,EAAK15J,EAAEP,OAAOC,aAEhB9B,EAAG,WACD,IAAIY,EAAOk7J,EAAGj7J,OAEd,OADAk7J,EAAmBn7J,EAAKK,KACjBL,GAETE,EAAG,SAAWm7J,GACZD,GAAS,EACTxuJ,EAAMyuJ,GAER56J,EAAG,WACD,IACO06J,GAAoC,MAAhBD,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIE,EAAQ,MAAMxuJ,O,6BClD1B,wNAoBI0uJ,GAAe,EAEbC,EAA6B,GAC7BC,EAA6B,GAC7BC,EAA8B,GAC9BC,EAA6B,GAWtBvb,EACsB,oBAA1BM,sBACL,SAASr2I,GACVq2I,sBAAsBr2I,IAErB,SAASA,GACVowD,WAAWpwD,EAdF,IAAO,KAuBnB,SAASuxJ,IAMR,IALA,IAAMr8H,EAAM/e,KAAK+e,MAGXtnC,EAASujK,EAAUvjK,OAEhBE,EAAI,EAAGA,EAAIF,IAAUE,EAC7BqjK,EAAUrjK,GAAGonC,GAGd,IAAiBi8H,EAAWvjK,GAG5B,IAASE,EAAI,EAAGA,EAAIsjK,EAAUxjK,SAAUE,EACvCsjK,EAAUtjK,GAAGonC,GAGdk8H,EAAUxjK,OAAS,EAGnB,IAASE,EAAI,EAAGA,EAAIujK,EAAWzjK,SAAUE,EACxCujK,EAAWvjK,GAAGonC,GAGfm8H,EAAWzjK,OAAS,EAGK,IAArBujK,EAAUvjK,QAAqC,IAArBwjK,EAAUxjK,OACvCsjK,GAAe,EAGfnb,EAAIwb,GAUN,SAASC,IACHN,IACJA,GAAe,EAEfnb,EAAIwb,IAYA,SAAUE,EAAUzxJ,GACzBmxJ,EAAUlhK,KAAK+P,GACfwxJ,IAUK,SAAUE,EAAU1xJ,GACzBoxJ,EAAUnhK,KAAK+P,GACfwxJ,IAUK,SAAUG,EAAW3xJ,GAC1BqxJ,EAAWphK,KAAK+P,GAChBwxJ,IAUK,SAAUI,EAAS5xJ,GACxBsxJ,EAAUrhK,KAAK+P,GAUV,SAAU6xJ,IAKf,IAJA,IAAM38H,EAAM/e,KAAK+e,MAEXtnC,EAAS0jK,EAAU1jK,OAEhBE,EAAI,EAAGA,EAAIF,IAAUE,EACvBwjK,EAAU9sH,OAAV8sH,CAAmBp8H,K,6BCjK3B,+GA8DA,aAaC,aACCzjC,KAAKqgK,WAAa,GAClBrgK,KAAKsgK,QAAU,GACftgK,KAAKsoD,UAAY,GACjBtoD,KAAKugK,WAAa,EAClBvgK,KAAKo8I,UAAW,EAChBp8I,KAAK2hD,WAAY,EAycnB,OAjcQ,YAAAE,WAAP,WACC,OAAO7hD,KAAK2hD,WAMN,YAAA9B,QAAP,WACC,IAAK7/C,KAAK2hD,UAAW,CACpB3hD,KAAK2hD,WAAY,EAEjB,IAAM5qD,EAAIiJ,KAAKqgK,WAEfrgK,KAAKugK,WAAa,EAClBvgK,KAAKqgK,WAAkB,KACvBrgK,KAAKsoD,UAAiB,KAEtB,IACC,IAAYvxD,GAAG,SAACuD,GACfA,EAAE2nD,SAASpC,aAFb,QAMC7/C,KAAKsgK,QAAe,KACpBtgK,KAAKugK,WAAkB,QAUnB,YAAAC,aAAP,WACC,OAAkC,IAA3BxgK,KAAKqgK,WAAWlkK,QAQjB,YAAAskK,mBAAP,SAA+Cl/J,GAC9C,OAAO,IAAWvB,KAAKqgK,YAAY,SAAC/lK,GAAM,OAAY,OAAXA,EAAEiH,MAAiBjH,EAAEiH,OAASA,KAAUjH,EAAzC,WAOpC,YAAAw3G,OAAP,WACC9xG,KAAKo8I,UAAW,GAMV,YAAAvqC,QAAP,WACC7xG,KAAKo8I,UAAW,GASV,YAAA5hE,WAAP,SAAuCj5E,UAC/BvB,KAAKsoD,UAAU/mD,IAYhB,YAAA64E,YAAP,SAAwC74E,EAAWqoJ,QAAA,IAAAA,MAAA,KAClD5pJ,KAAKsoD,UAAU/mD,GAAQqoJ,GAUd,YAAA8W,gBAAV,SAA0BxrJ,GACzB,GAAwB,IAApBlV,KAAKugK,WAAkB,CAC1B,IAAM54J,EAAQ3H,KAAKqgK,WAAWvpK,QAAQoe,GAEtC,IAAe,IAAXvN,EACH,MAAM,IAAIxR,MAAM,4CAGjB6J,KAAKqgK,WAAW10I,OAAOhkB,EAAO,QAG9B3H,KAAKsgK,QAAQ9hK,KAAK0W,IAYV,YAAAyrJ,wBAAV,SAA6D3hG,EAAez9D,EAAkBqT,EAAcuB,GAC3G,GAAInW,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAGjB6J,KAAK4gK,eAAc,SAACtsJ,GACfA,EAAK0qD,OAASA,GACjB1qD,EAAK/S,OAASA,GACD,MAAZqT,GAAoBN,EAAKM,WAAaA,GACvCN,EAAK6B,UAAYA,GACjB7B,EAAK2tC,SAASpC,cAWV,YAAAv+C,UAAP,SAAsCC,GACrC,GAAIvB,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAIjB,OAAO6J,KAAKo8I,UAAYp8I,KAAKqgK,WAAWlkK,OAAS,GAAK6D,KAAKygK,mBAAmBl/J,IAAiC,MAAxBvB,KAAKsoD,UAAU/mD,IAWhG,YAAAwG,IAAP,SAAmCxG,EAAWqT,EAA6CuB,GAQ1F,OAAkB,IAPJ,IAAiBnW,KAAKqgK,YAAY,SAAC/rJ,GAChD,OAAqB,IAAdA,EAAK0qD,MACX1qD,EAAK/S,OAASA,IACD,MAAZqT,GAAoBN,EAAKM,WAAaA,IACvCN,EAAK6B,UAAYA,MAYV,YAAA2zI,gBAAV,SAA+CvoJ,GAC9C,GAAIvB,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAGjB,IAAMgI,EAAQ6B,KAAKsoD,UAAU/mD,GAE7B,OAAK,IAAepD,IAIfA,GAAS,SACL6B,KAAKsoD,UAAU/mD,KAGpBvB,KAAKsoD,UAAU/mD,IAGX,GAVAvB,KAAKo8I,UAsBJ,YAAAwkB,cAAV,SAAwBryJ,GAAxB,aACGvO,KAAKugK,WAEP,IACC,IAAYvgK,KAAKqgK,WAAY9xJ,GAD9B,UAIGvO,KAAKugK,WAGiB,IAApBvgK,KAAKugK,YAA4C,IAAxBvgK,KAAKsgK,QAAQnkK,SAEzC,IAAY6D,KAAKsgK,SAAS,SAACO,GAC1B,EAAKH,gBAAgBG,MAGtB7gK,KAAKsgK,QAAQnkK,OAAS,KAYlB,YAAAsF,oBAAP,SAAgDF,EAAW4iD,GACtDnkD,KAAK8pJ,gBAAgBvoJ,IAGxBvB,KAAK4gK,eAAc,SAAC1rJ,GACdA,EAAS2rJ,QAA6B,OAAlB3rJ,EAAS3T,MAAiB2T,EAAS3T,OAASA,GACpE2T,EAAS/T,SAASI,EAAM4iD,OAarB,YAAAhjD,SAAP,SAAqCI,EAAW4iD,GAC3CnkD,KAAK8pJ,gBAAgBvoJ,IACxBvB,KAAK4gK,eAAc,SAAC1rJ,GAEdA,EAAS2rJ,QAA6B,OAAlB3rJ,EAAS3T,MAAiB2T,EAAS3T,OAASA,GAGpE,KAAgB,WACV2T,EAAS2rJ,QACb3rJ,EAAS/T,SAASI,EAAM4iD,UAqBpB,YAAA28G,IAAV,SAAyC9hG,EAAez9D,EAAkBqT,EAAauB,EAAYyyC,EAAsBznD,GAAzH,WACC,GAAInB,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAGjB6J,KAAK2gK,wBAAwB3hG,EAAMz9D,EAAMqT,EAAUuB,GAEnD,IAAM7B,EAAyB,CAC9B/S,KAAMA,EACNqT,SAAUA,EACVuB,QAASA,EACTyyC,YAAaA,EACbznD,SAAeA,EACf0/J,QAAQ,EACR7hG,KAAMA,EACN/c,SAAU,IAAI,KAAS,WACtB3tC,EAAKusJ,QAAS,EACd,EAAKH,gBAAgBpsJ,OAMvB,OAFAtU,KAAKqgK,WAAW7hK,KAAK8V,GAEdA,GAYD,YAAAm8C,MAAP,SAAqC77C,EAAuDuB,EAAayyC,GACxG,YADwG,IAAAA,OAAA,GACjG5oD,KAAK8gK,KAAI,EAAO,KAAMlsJ,EAAUuB,EAASyyC,GAAa,SAACrnD,EAAM4iD,GAAU,OAAAvvC,EAAS3e,KAAKkgB,EAAS5U,EAAvB,MAAqC0gD,UAwC7G,YAAA9C,GAAP,SAAkC59C,EAAWqT,EAA4CuB,EAAayyC,GACrG,YADqG,IAAAA,OAAA,GAC9F5oD,KAAK8gK,KAAI,EAAOv/J,EAAMqT,EAAUuB,EAASyyC,GAAa,SAACrnD,EAAM4iD,GAAU,OAAAvvC,EAAS3e,KAAKkgB,EAAd,MAA+B8rC,UA0CvG,YAAA+c,KAAP,SAAoCz9D,EAAWqT,EAA4CuB,EAAayyC,QAAA,IAAAA,OAAA,GACvG,IAAMtuD,EAAI0F,KAAK8gK,KAAI,EAAMv/J,EAAMqT,EAAUuB,EAASyyC,GAAa,SAACrnD,EAAM4iD,GACrE7pD,EAAE2nD,SAASpC,UACXjrC,EAAS3e,KAAKkgB,EAASguC,MAIxB,OAAO7pD,EAAE2nD,UAUH,YAAA0xD,IAAP,SAAmCpyG,EAAWqT,EAA6CuB,GAC1FnW,KAAK2gK,yBAAwB,EAAOp/J,EAAMqT,EAAUuB,IAU9C,YAAA0qC,SAAP,SAAgB//B,GAAhB,WACC,GAAI9gB,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAGjB,GAAI2qB,IAAW9gB,KACd,MAAM,IAAI7J,MAAM,oDAGjB,IAAY2qB,EAAOu/I,YAAY,SAAC/lK,IAE1BA,EAAEumK,QAAUvmK,EAAEsuD,cACH,OAAXtuD,EAAEiH,KACL,EAAKkvD,MAAMn2D,EAAEsa,SAAUta,EAAE6b,SAEf7b,EAAE0kE,KACZ,EAAKA,KAAK1kE,EAAEiH,KAAMjH,EAAEsa,SAAUta,EAAE6b,SAGhC,EAAKgpC,GAAG7kD,EAAEiH,KAAMjH,EAAEsa,SAAUta,EAAE6b,cAMnC,EA5dA,GAoeA,cAYC,WAAY3U,GAAZ,MACC,cAAO,K,OACP,EAAKA,OAASA,E,EAsChB,OApDwD,iBAuBhD,YAAAq/C,SAAP,SAAgB//B,GAAhB,WACC,GAAI9gB,KAAK2hD,UACR,MAAM,IAAIxrD,MAAM,+BAGjB,GAAI2qB,IAAW9gB,KACd,MAAM,IAAI7J,MAAM,oDAGjB,IAAY2qB,EAAOu/I,YAAY,SAAC/lK,GAE3BA,EAAE6b,UAAY2K,EAAOtf,SAIpBlH,EAAEumK,QAAUvmK,EAAEsuD,cACH,OAAXtuD,EAAEiH,KACL,EAAKkvD,MAAMn2D,EAAEsa,SAAUta,EAAE6b,SAEf7b,EAAE0kE,KACZ,EAAKA,KAAK1kE,EAAEiH,KAAMjH,EAAEsa,SAAUta,EAAE6b,SAGhC,EAAKgpC,GAAG7kD,EAAEiH,KAAMjH,EAAEsa,SAAUta,EAAE6b,cAMnC,EApDA,CAAwD4qJ,I,gBCliB6ovEtrK,EAAOC,QAA5svE,SAAkB0oF,EAAEj6C,GAAG,aAAa,IAAI85C,EAAE,mg/DAAmg/DD,EAAE,CAAC,iBAAiB,eAAe,qBAAqB,iBAAiB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,kBAAkB,qBAAqB,mBAAmB,eAAe,oBAAoB,eAAe,iBAAiB,eAAe,uBAAuB,kBAAkB,gBAAgB,kBAAkB,kBAAkB,kBAAkB,gBAAgB,sBAAsB,cAAc,iBAAiB,kBAAkB,gBAAgB,kBAAkB,eAAe,oBAAoB,cAAc,gBAAgB,oBAAoB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,iBAAiB,mBAAmB,kBAAkB,iBAAiB,kBAAkB,gBAAgB,oBAAoB,qBAAqB,oBAAoB,kBAAkB,iBAAiB,eAAe,kBAAkB,eAAe,oBAAoB,mBAAmB,kBAAkB,oBAAoB,iCAAiC,8BAA8B,4BAA4B,0BAA0B,6BAA6B,4BAA4B,iCAAiC,0BAA0B,6BAA6B,6BAA6B,4BAA4B,4BAA4B,gBAAgB,mBAAmB,mBAAmB,gBAAgB,yBAAyB,mBAAmB,gBAAgB,iBAAiB,uBAAuB,oBAAoB,iBAAiB,gBAAgB,wBAAwB,uBAAuB,iBAAiB,kBAAkB,kBAAkB,iBAAiB,kBAAkB,oBAAoB,qBAAqB,kBAAkB,iBAAiB,kBAAkB,uBAAuB,uBAAuB,iBAAiB,kBAAkB,mBAAmB,mBAAmB,mBAAmB,sBAAsB,sBAAsB,oBAAoB,oBAAoB,kBAAkB,oBAAoB,qBAAqB,kBAAkB,qBAAqB,oBAAoB,oBAAoB,iBAAiB,kBAAkB,iBAAiB,qBAAqB,+BAA+B,uBAAuB,0BAA0B,6BAA6B,4BAA4B,4BAA4B,kBAAkB,kBAAkB,iBAAiB,8BAA8B,8BAA8B,qBAAqB,iBAAiB,eAAe,sBAAsB,wBAAwB,iBAAiB,kBAAkB,iBAAiB,kBAAkB,qBAAqB,oBAAoB,mBAAmB,oBAAoB,iBAAiB,sBAAsB,mBAAmB,kBAAkB,oBAAoB,qBAAqB,qBAAqB,iBAAiB,mBAAmB,eAAe,kBAAkB,8BAA8B,iCAAiC,kBAAkB,iBAAiB,sBAAsB,qBAAqB,kBAAkB,yBAAyB,wBAAwB,sBAAsB,sBAAsB,uBAAuB,uBAAuB,iBAAiB,iBAAiB,qBAAqB,mBAAmB,mBAAmB,wBAAwB,oBAAoB,uBAAuB,gBAAgB,wBAAwB,mBAAmB,mBAAmB,mBAAmB,oBAAoB,qBAAqB,sBAAsB,gBAAgB,sBAAsB,kBAAkB,kBAAkB,kBAAkB,oBAAoB,qBAAqB,mBAAmB,kBAAkB,sBAAsB,mBAAmB,mBAAmB,4BAA4B,uBAAuB,oBAAoB,qBAAqB,qBAAqB,mBAAmB,mBAAmB,oBAAoB,sBAAsB,YAAY,cAAc,aAAa,cAAc,aAAa,cAAc,gBAAgB,cAAc,eAAe,eAAe,YAAY,eAAe,eAAe,cAAc,eAAe,cAAc,aAAa,kBAAkB,eAAe,gBAAgB,aAAa,YAAY,aAAa,gBAAgB,iBAAiB,YAAY,cAAc,mBAAmB,iBAAiB,YAAY,eAAe,eAAe,gBAAgB,iBAAiB,aAAa,iBAAiB,eAAe,iBAAiB,gBAAgB,eAAe,mBAAmB,oBAAoB,eAAe,cAAc,aAAa,eAAe,gBAAgB,cAAc,cAAc,eAAe,oBAAoB,mBAAmB,YAAY,YAAY,kBAAkB,iBAAiB,iBAAiB,aAAa,gBAAgB,iBAAiB,cAAc,gBAAgB,iBAAiB,aAAa,gBAAgB,iBAAiB,qBAAqB,cAAc,gBAAgB,eAAe,cAAc,eAAe,aAAa,aAAa,mBAAmB,cAAc,gBAAgB,iBAAiB,mBAAmB,eAAe,cAAc,qBAAqB,eAAe,kBAAkB,mBAAmB,kBAAkB,sBAAsB,iBAAiB,mBAAmB,qBAAqB,yBAAyB,qBAAqB,mBAAmB,qBAAqB,qBAAqB,wBAAwB,mBAAmB,mBAAmB,kBAAkB,mBAAmB,sBAAsB,sBAAsB,kBAAkB,mBAAmB,UAAU,YAAY,aAAa,aAAa,aAAa,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU,mBAAmB,iBAAiB,mBAAmB,gBAAgB,kBAAkB,gBAAgB,oBAAoB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,kBAAkB,qBAAqB,kBAAkB,gBAAgB,qBAAqB,cAAc,eAAe,gBAAgB,mBAAmB,gBAAgB,oBAAoB,gBAAgB,eAAe,mBAAmB,eAAe,gBAAgB,gBAAgB,cAAc,eAAe,mBAAmB,gBAAgB,cAAc,cAAc,gBAAgB,oBAAoB,kBAAkB,iBAAiB,oBAAoB,gBAAgB,eAAe,mBAAmB,iBAAiB,gBAAgB,mBAAmB,kBAAkB,eAAe,gBAAgB,iBAAiB,mBAAmB,gBAAgB,gBAAgB,oBAAoB,gBAAgB,sBAAsB,gBAAgB,mBAAmB,eAAe,gBAAgB,mBAAmB,cAAc,kBAAkB,mBAAmB,iBAAiB,iBAAiB,eAAe,mBAAmB,uBAAuB,kBAAkB,gBAAgB,iBAAiB,gBAAgB,oBAAoB,kBAAkB,eAAe,mBAAmB,oBAAoB,kBAAkB,sBAAsB,eAAe,mBAAmB,qBAAqB,iBAAiB,oBAAoB,iBAAiB,oBAAoB,iBAAiB,gBAAgB,eAAe,kBAAkB,iBAAiB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,uBAAuB,oBAAoB,iBAAiB,iBAAiB,iBAAiB,oBAAoB,eAAe,kBAAkB,GAAG75C,GAAGA,KAAK,KAAKi6C,GAAGA,IAAIA,GAAG,KAAK,KAAKj6C,GAAGA,GAAG,KAAK,MAAM,IAAI68H,WAAW,uBAAuB,GAAG,IAAI5iF,EAAE,MAAM,UAAU,IAAIL,GAAG,EAAEG,EAAE,IAAI,IAAI/5C,GAAG,mBAAmBg6C,EAAE,IAAI,GAAGC,GAAG,mBAAmBC,EAAE,EAAEH,EAAE/kD,EAAE,EAAEglD,EAAEb,EAAE,GAAGnkD,EAAE,EAAEklD,EAAE,IAAIf,EAAE,GAAGW,EAAEgjF,WAAW3jF,GAAGW,EAAEgjF,WAAW3jF,EAAE,GAAG,KAAKA,EAAEU,EAAE7hF,OAAO,MAAMmhF,EAAE,GAAGW,EAAEgjF,WAAW3jF,EAAE,GAAGS,EAAEA,EAAET,EAAE,GAAG,GAAGnkD,EAAE,GAAGglD,EAAE,GAAGA,EAAEhlD,GAAG,IAAI,GAAGklD,EAAE,GAAGH,EAAE,GAAGA,EAAEG,GAAG,IAAI,MAAMJ,EAAEgjF,WAAW3jF,EAAE,GAAG,KAAK,OAAOU,EAAEV,EAAEU,EAAE7hF,OAAO,Q,8KCqDlqvE,aAiBC,WAAY4jD,GAZF,KAAAC,QAAoB,GAKvB,KAAAhhD,OAAyE,IAAI,IAQpE,MAAX+gD,GACH//C,KAAK8gD,OAAOf,GAgRf,OApQC,sBAAW,qBAAM,C,IAAjB,WACC,OAAO//C,KAAKggD,S,gCAQH,YAAAV,QAAV,SAAkBzpD,GAEjB,OADAmK,KAAKggD,QAAQxhD,KAAK3I,GACXmK,KAAKggD,QAAQ7jD,OAAS,GAS9B,sBAAW,qBAAM,C,IAAjB,WACC,OAAO6D,KAAKggD,QAAQ7jD,Q,gCAWd,YAAArF,QAAP,SAAejB,GACd,OAAO,IAAemK,KAAKggD,QAASnqD,IAS9B,YAAA0iD,SAAP,SAAgB1iD,GACf,OAAgC,IAAzBmK,KAAKlJ,QAAQjB,IASd,YAAAsqD,SAAP,SAAgBx4C,GACf,OAAO3H,KAAKggD,QAAQr4C,IAQrB,sBAAW,oBAAK,C,IAAhB,WACC,OAAO3H,KAAKggD,QAAQ,I,gCAQrB,sBAAW,mBAAI,C,IAAf,WACC,OAAOhgD,KAAKggD,QAAQhgD,KAAKggD,QAAQ7jD,OAAS,I,gCAQpC,YAAAs/I,OAAP,SAAc5lJ,GACb,IAAM8R,EAAQ3H,KAAKs/C,QAAQzpD,GAEvBmK,KAAKhB,OAAOsC,UAAU,aACzBtB,KAAKhB,OAAOyC,oBAAoB,WAAY,CAC3CF,KAAM,WACNC,OAAQxB,KACR2H,MAAOA,EACPy3C,SAAUvpD,KAUN,YAAA41B,OAAP,SAAc51B,GACb,IAAM8R,EAAQ3H,KAAKlJ,QAAQjB,GAE3B,IAAe,IAAX8R,EAAc,CACjB,IAAM63C,EAAWx/C,KAAKggD,QAAQr4C,GAE9B,IAAmB3H,KAAKggD,QAASr4C,GAE7B3H,KAAKhB,OAAOsC,UAAU,YACzBtB,KAAKhB,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQxB,KACR2H,MAAOA,EACP63C,SAAUA,MAaP,YAAAsB,OAAP,SAAcC,GAAd,WACC,IAAmB/gD,KAAKggD,SAAS,SAAC1lD,EAAG+B,GACpC,EAAK2jD,QAAQv6C,MAET,EAAKzG,OAAOsC,UAAU,YACzB,EAAKtC,OAAOyC,oBAAoB,UAAW,CAC1CF,KAAM,UACNC,OAAQ,EACRmG,MAAOtL,EACPmjD,SAAUllD,OAKb,IAAYymD,GAAU,SAAClrD,GACtB,EAAK4lJ,OAAO5lJ,OAOP,YAAA0T,MAAP,WACCvJ,KAAK8gD,OAAO,KAWN,YAAAn4C,MAAP,SAAalP,EAAeG,GAC3B,IAAMg5C,EAAM,IAAIsuH,EAIhB,OAFAtuH,EAAIoN,QAAUhgD,KAAKggD,QAAQr3C,MAAMlP,EAAOG,GAEjCg5C,GAYD,YAAAivD,iBAAP,SAAwBhsG,EAAe0Y,EAA0Bi7B,QAAA,IAAAA,MAAA,OAEhE,IACI23H,EACAC,EAFAC,GAAwB,EAIxBhlK,EAAI,EAmDR,OAjDA,IAAmB2D,KAAKqF,YAAY,SAACqjB,GACpC,IAAMyhB,EAAe57B,EAAGma,GAGxB,GAAkB,QAAd8gB,EAAqB,CAGxB,GAAIW,IAASt0C,EAGZ,OADAwrK,EAAehlK,GACR,EAGR,IAAIm4F,EAAaj9F,KAAK6B,IAAIvD,EAAQs0C,KAC7B,IAAei3H,IAAuBA,EAAoB5sE,KAC9D6sE,EAAehlK,EACf8kK,EAAeh3H,EACfi3H,EAAoB5sE,OAGC,SAAdhrD,GAAyBW,EAAOt0C,IACnC,IAAesrK,IAAkBA,EAAeh3H,KACpDk3H,EAAehlK,EACf8kK,EAAeh3H,GAGM,UAAdX,GAA0BW,GAAQt0C,KACrC,IAAesrK,IAAkBA,GAAgBh3H,KACrDk3H,EAAehlK,EACf8kK,EAAeh3H,GAKjB,QADE9tC,GACK,MAIc,IAAlBglK,IACe,SAAd73H,EAEH63H,EAAe,EAEO,UAAd73H,IAER63H,EAAerhK,KAAK7D,OAAS,IAIxBklK,GAQD,YAAAh8J,SAAP,WACC,OAAO,IAAgBrF,KAAKggD,UAMrB,YAAC56C,OAAOC,UAAhB,W,oEACOlJ,EAAS6D,KAAKggD,QAAQ7jD,OAEnBE,EAAI,E,wBAAGA,EAAIF,EACnB,GAAM6D,KAAKggD,QAAQ3jD,IADM,M,OACzB,S,yBAD6BA,E,4BAQxB,YAAA6K,KAAP,SAAYtC,GACX,IAAY5E,KAAKggD,QAASp7C,IAE5B,EAnSA,GA0SA,cAYC,WAAY4zB,GAAZ,MACC,cAAO,K,OACP,EAAK8oI,UAAY9oI,E,EA4DnB,OA1EmC,iBAsBxB,YAAA8mB,QAAV,SAAkBzpD,GACT,IAAA8R,EAAA,mCAAAA,MAIR,OAFA,IAAmB3H,KAAKggD,QAASr4C,EAAO9R,GAEjC8R,GAWD,YAAA7Q,QAAP,SAAejB,GACR,yCAAE61B,EAAA,EAAAA,MAAO/jB,EAAA,EAAAA,MAEf,OAAI+jB,EACI/jB,GAGC,GAWH,YAAAmtF,OAAP,SAAcj/F,GAEb,IAAM8R,EAAQ,IAAe3H,KAAKggD,QAASnqD,GAG3C,IAAe,IAAX8R,EAAc,CACjB,IAAMsN,EAAOjV,KAAKggD,QAAQ7jD,OAAS,GAGlB,IAAVwL,GAAe3H,KAAKshK,UAAUthK,KAAKggD,QAAQr4C,EAAQ,GAAI9R,GAAS,KACrE8R,IAAUsN,GAAQjV,KAAKshK,UAAUzrK,EAAOmK,KAAKggD,QAAQr4C,EAAQ,IAAM,KAEpE,IAAmB3H,KAAKggD,QAASr4C,GACjC3H,KAAKs/C,QAAQzpD,MAKjB,EA1EA,CAAmCqrK,GAuFnC,cAcC,WAAmB59J,GAAnB,MACC,cAAO,K,OACP,EAAK29C,SAAW39C,E,EAmElB,OAnFwF,iBAyBvF,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOtD,KAAKkhD,W,IATb,SAAoB57C,GACnBA,EAAE67C,YAAa,EACfnhD,KAAKkhD,UAAY57C,G,gCAeX,YAAAu7C,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOzb,YAAY,SAACxP,GAC9B,EAAK4lJ,OAAO5lJ,EAAM+S,aAYb,YAAAD,MAAP,SAAalP,EAAeG,GAC3B,IAAMg5C,EAAM,IAAI2uH,EAAuBvhK,KAAKihD,UAI5C,OAFArO,EAAIoN,QAAUhgD,KAAKggD,QAAQr3C,MAAMlP,EAAOG,GAEjCg5C,GAYD,YAAAzvC,OAAP,SAAci+C,GACb,IAAMx4C,EACI,MAARw4C,EACE,IAAIA,EACJphD,KAAKihD,SAASr4C,QAIlB,OAFA5I,KAAKy7I,OAAO7yI,GAELA,GAET,EAnFA,CAAwFs4J,GA+FxF,cAiBC,WAAmB59J,EAAMk1B,GAAzB,MACC,YAAMA,IAAK,K,OACX,EAAKyoB,SAAW39C,E,EAoDlB,OAvEuF,iBA4BtF,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOtD,KAAKkhD,W,IATb,SAAoB57C,GACnBA,EAAE67C,YAAa,EACfnhD,KAAKkhD,UAAY57C,G,gCAeX,YAAAu7C,SAAP,SAAgB//B,GAAhB,WACC,IAAWA,EAAOzb,YAAY,SAACxP,GAC9B,EAAK4lJ,OAAO5lJ,EAAM+S,aAab,YAAAzF,OAAP,SAAci+C,GACb,IAAMx4C,EACI,MAARw4C,EACE,IAAIA,EACJphD,KAAKihD,SAASr4C,QAIlB,OAFA5I,KAAKy7I,OAAO7yI,GAELA,GAGT,EAvEA,CAAuFuqF,I,6BCrhBvF,0FAgFA,cAoBC,mBACC,cAAO,K,OACP,EAAKp4C,UAAY,OACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9B,EAAKoyC,KAAO,cAEZ,EAAKo8C,GAAK,EACV,EAAKL,GAAK,EAEV,EAAK9tC,a,EAyIP,OAtK0B,iBAqClB,YAAAY,KAAP,WACC,YAAMA,KAAI,WACNvqD,KAAK83F,IAAM93F,KAAK+3F,IAAM/3F,KAAKy3F,IAAMz3F,KAAK03F,GACzC13F,KAAKqzD,cAAe,EAGpBrzD,KAAKqzD,cAAe,EAGrBrzD,KAAK83F,GAAK93F,KAAK83F,GACf93F,KAAK+3F,GAAK/3F,KAAK+3F,GAEf/3F,KAAKy3F,GAAKz3F,KAAKy3F,GACfz3F,KAAK03F,GAAK13F,KAAK03F,IAQhB,sBAAW,iBAAE,C,IAgBb,WACC,OAAO13F,KAAKujD,iBAAiB,O,IAjB9B,SAAc1tD,GACR,IAAeA,KACnBA,EAAQ,GAET,IAAIkwF,EAAQ,EACR/lF,KAAKqzD,cAAgBrzD,KAAKquD,kBAAkB,MAC/C03B,EAAQ,MAGT/lF,KAAKopD,iBAAiB,KAAMvzD,GAAO,GACnCmK,KAAK0oB,QAAQiiC,KAAK,CAAE,GAAM90D,EAAQkwF,K,gCAenC,sBAAW,iBAAE,C,IAWb,WACC,IAAIlwF,EAAQmK,KAAKujD,iBAAiB,MAIlC,OAHK,IAAe1tD,KACnBA,EAAQmK,KAAK8xD,YAEPj8D,G,IAhBR,SAAcA,GACR,IAAeA,KACnBA,EAAQ,GAETmK,KAAKopD,iBAAiB,KAAMvzD,GAAO,GACnCmK,KAAK0oB,QAAQiiC,KAAK,CAAE,GAAM90D,K,gCAmB3B,sBAAW,iBAAE,C,IAiBb,WACC,OAAOmK,KAAKujD,iBAAiB,O,IAlB9B,SAAc1tD,GACR,IAAeA,KACnBA,EAAQ,GAGT,IAAIkwF,EAAQ,EACR/lF,KAAKqzD,cAAgBrzD,KAAKquD,kBAAkB,MAC/C03B,EAAQ,MAGT/lF,KAAKopD,iBAAiB,KAAMvzD,GAAO,GACnCmK,KAAK0oB,QAAQiiC,KAAK,CAAE,GAAM90D,EAAQkwF,K,gCAenC,sBAAW,iBAAE,C,IAWb,WACC,IAAIlwF,EAAQmK,KAAKujD,iBAAiB,MAIlC,OAHK,IAAe1tD,KACnBA,EAAQmK,KAAK+xD,aAEPl8D,G,IAhBR,SAAcA,GACR,IAAeA,KACnBA,EAAQ,GAETmK,KAAKopD,iBAAiB,KAAMvzD,GAAO,GACnCmK,KAAK0oB,QAAQiiC,KAAK,CAAE,GAAM90D,K,gCAoBpB,YAAAg4F,gBAAP,SAAuBnyF,GACtB,IAAItB,EAAS,CAAEE,EAAG0F,KAAK83F,GAAIv9F,EAAGyF,KAAKy3F,IAC/Bp9F,EAAS,CAAEC,EAAG0F,KAAK+3F,GAAIx9F,EAAGyF,KAAK03F,IAC/Bx8F,EAAQ,IAAkBd,EAAQC,EAAQqB,GAC1CI,EAAQ,IAAe1B,EAAQC,GAEnC,MAAO,CAACC,EAAEY,EAAMZ,EAAGC,EAAEW,EAAMX,EAAGuB,MAAMA,IAEtC,EAtKA,CAA0B,KA8K1B,IAASsD,kBAAT,KAAqCo/G,G,6BCxPnC,IAEgCr3G,EAPhCzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAMlB,IAAI+yI,GAF4Bl8I,EAFYxR,EAAQ,OAECwR,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAGzFzR,EAAQ4a,QAAU+yI,EAClB5tJ,EAAOC,QAAU2tJ,G,yGC4CJ,GAKd,kBAAqB,IACrB,mBAAsB,IAUtB,qBAAwB,IACxB,qBAAwB,IACxB,qBAAwB,IACxB,sBAAyB,IACzB,sBAAyB,IACzB,sBAAyB,IACzB,sBAAyB,IACzB,sBAAyB,IAEzB,uBAA0B,IAC1B,uBAA0B,SAC1B,uBAA0B,IAC1B,wBAA2B,IAC3B,wBAA2B,IAC3B,wBAA2B,IAC3B,wBAA2B,IAC3B,wBAA2B,IAE3B,eAAkB,IAClB,gBAAmB,KACnB,gBAAmB,KACnB,gBAAmB,KACnB,gBAAmB,KACnB,gBAAmB,KAanB,MAAS,aACT,kBAAqB,YACrB,aAAgB,WAChB,aAAgB,QAChB,WAAc,QACd,UAAa,SACb,WAAc,KACd,YAAe,MACf,WAAc,OAuBd,sBAAyB,MACzB,6BAAgC,SAChC,6BAAgC,YAChC,2BAA8B,eAC9B,0BAA6B,iBAC7B,2BAA8B,iBAC9B,4BAA+B,uBAC/B,2BAA8B,6BAE9B,iBAAoB,KACpB,wBAA2B,QAC3B,sBAAyB,WACzB,qBAAwB,gBACxB,sBAAyB,gBACzB,uBAA0B,sBAC1B,sBAAyB,4BAEzB,iBAAoB,KACpB,sBAAyB,QACzB,qBAAwB,aACxB,sBAAyB,aACzB,uBAA0B,mBAC1B,sBAAyB,yBAEzB,eAAkB,QAClB,mBAAsB,aACtB,oBAAuB,aACvB,qBAAwB,mBACxB,oBAAuB,yBAEvB,cAAiB,OACjB,mBAAsB,OACtB,oBAAuB,aACvB,mBAAsB,mBAEtB,eAAkB,OAClB,qBAAwB,OACxB,oBAAuB,OAEvB,gBAAmB,OACnB,qBAAwB,aAExB,eAAkB,OAGlB,QAAW,KACX,QAAW,KAUX,EAAK,GACL,EAAK,GACL,GAAM,GACN,GAAM,GACN,OAAQ,GACR,OAAQ,GAoBR,QAAW,GACX,SAAY,GACZ,MAAS,GACT,MAAS,GACT,IAAO,GACP,KAAQ,GACR,KAAQ,GACR,OAAU,GACV,UAAa,GACb,QAAW,GACX,SAAY,GACZ,SAAY,GACZ,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,aAAc,MACd,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GAGP,OAAU,GACV,OAAU,GACV,QAAW,GACX,UAAa,GACb,SAAY,GACZ,OAAU,GACV,SAAY,GACZ,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GAWP,SAAY,SAASh+H,GACpB,IAAI7Y,EAAM,KACV,GAAK6Y,EAAM,IAAQA,EAAM,GACxB,OAAQA,EAAM,IACb,KAAK,EACJ7Y,EAAM,KACN,MACD,KAAK,EACJA,EAAM,KACN,MACD,KAAK,EACJA,EAAM,KAIT,OAAOA,GAKR,WAAY,GAGZ,KAAQ,GACR,KAAQ,GAGR,OAAU,GAGV,sCAAuC,GAGvC,QAAW,GAIX,KAAQ,GAKR,MAAS,GACT,eAAgB,GAChB,YAAa,GACb,YAAa,GACb,cAAe,GACf,cAAe,GACf,iBAAkB,GAClB,eAAgB,GAChB,gBAAiB,GACjB,gBAAiB,GACjB,sBAAuB,GACvB,eAAgB,GAKhB,OAAU,GACV,qBAAsB,GACtB,cAAe,GACf,gBAAiB,GACjB,cAAe,GACf,mBAAoB,GACpB,gBAAiB,GACjB,iBAAkB,GAClB,aAAc,GAGd,IAAO,GACP,yBAA0B,GAC1B,0BAA2B,GAC3B,oCAAqC,GACrC,8DAA+D,GAY/D,OAAU,GACV,MAAS,GACT,KAAQ,GACR,MAAS,GACT,oCAAqC,GACrC,sCAAuC,GACvC,6CAA8C,GAC9C,2EAA4E,GAC5E,uFAAwF,GACxF,oCAAqC,GACrC,wBAAyB,GACzB,+EAAgF,GAChF,aAAc,GACd,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,IAAO,GACP,KAAQ,GACR,IAAO,GACP,KAAQ,GAYR,8EAA+E,GAC/E,8CAA+C,GAC/C,mDAAoD,GACpD,oDAAqD,GACrD,wEAAyE,GACzE,2CAA4C,GAC5C,iDAAkD,GAClD,iDAAkD,GAClD,gBAAiB,GACjB,UAAW,GACX,QAAS,GAGT,mCAAoC,GACpC,yBAA0B,GAC1B,0BAA2B,GAC3B,eAAgB,GAGhB,MAAS,GACT,SAAY,I,QCrEb,cA8BC,mBACC,cAAO,K,OAjBD,EAAA0gD,QAA2C,IAAIs0G,EAAA,EAAQ,GAKpD,EAAA7wI,QAAmB8wI,EAMnB,EAAAC,eAAiCD,EAO1C,EAAK1mH,UAAY,WAGb,IAAe,IAAQw2G,iBAC1B,EAAKxjI,OAAS,IAAQwjI,eAGvB,EAAK5nG,a,EA+NP,OAtQ8B,iBAgDnB,YAAAhqB,UAAV,SAAoB5R,GAKnB,OAJc,MAAVA,IACHA,EAAS/tB,KAAK2wB,SAGR3wB,KAAKktD,QAAQzpD,MAAM,SAAU,CACnCsqB,OAAQA,IACNA,QA2BG,YAAA8mD,UAAP,SAAsD8sF,EAAa5zI,G,IAAkB,wDAGpFA,EAAS/tB,KAAK2/B,UAAU5R,GAGxB,IAAI6zI,EAAsBD,EAGtBE,EAAe7hK,KAAK8hK,gBAAgB/zI,GAEpCl4B,EAA6CgsK,EAAaF,GAG9D,GAAc,OAAV9rK,EACHA,EAAQ,QAEJ,GAAI,IAAeA,GAEnBA,IACH+rK,EAAc/rK,QAGX,GAAIk4B,IAAW/tB,KAAK0hK,eAExB,OAAO1hK,KAAK60E,UAAS,MAAd70E,KAAI,aAAW2hK,EAAQ3hK,KAAK0hK,gBAAmB3hB,IAIvD,GAAIA,EAAK5jJ,OACR,IAAK,IAAIkV,EAAM0uI,EAAK5jJ,OAAQE,EAAI,EAAGA,EAAIgV,IAAOhV,EAC7CulK,EAAcA,EAAY3/I,MAAM,KAAO5lB,EAAI,IAAIoK,KAAKs5I,EAAK1jJ,IAK3D,OAAO2D,KAAKktD,QAAQzpD,MAAM,YAAa,CACtCm+J,YAAaA,EACb7zI,OAAQA,IACN6zI,aAeG,YAAAG,aAAP,SAAoBJ,EAAgB5zI,G,IAAkB,wDACrD,OAAO/tB,KAAK60E,UAAS,MAAd70E,KAAI,aAAgB2hK,EAAQ5zI,GAAWgyH,KAcxC,YAAAiiB,eAAP,SAA2DL,EAAa5zI,G,IAAkB,wDACzF,IAAI6zI,EAAc5hK,KAAK60E,UAAS,MAAd70E,KAAI,aAAW2hK,EAAQ5zI,GAAWgyH,IACpD,OAAO6hB,GAAeD,EAAS,GAAKC,GAc9B,YAAAK,cAAP,SAAyDN,EAAa5zI,GAGrEA,EAAS/tB,KAAK2/B,UAAU5R,GAGxB,IAEIl4B,EAFemK,KAAK8hK,gBAAgB/zI,GAEwB4zI,GAGhE,OAAa,MAAT9rK,EACIA,EAIJk4B,IAAW/tB,KAAK0hK,eACZ1hK,KAAKiiK,cAAcN,EAAQ3hK,KAAK0hK,gBAIjC,WACN,MAAO,KAWF,YAAAQ,aAAP,SAAyD1pH,EAAkBzqB,GAA3E,WAEC,OAAK/tB,KAAKmiK,YAIF3pH,EAHA,IAAWA,GAAM,SAACl+C,GAAM,SAAKu6E,UAAUv6E,EAAf,OAY1B,YAAA6nK,UAAP,WACC,OAAOniK,KAAK0hK,iBAAmB1hK,KAAK2wB,SAQrC,sBAAW,qBAAM,C,IAmBjB,WACC,OAAO3wB,KAAK2wB,S,IApBb,SAAkB96B,GACjB,GAAImK,KAAK2wB,SAAW96B,IACnBmK,KAAK2wB,QAAU96B,EAGXmK,KAAKhB,OAAOsC,UAAU,kBAAkB,CAC3C,IAAM,EAAyD,CAC9DC,KAAM,gBACNwsB,OAAQl4B,EACR2L,OAAQxB,MAETA,KAAKhB,OAAOyC,oBAAoB,gBAAiB,K,gCAoB7C,YAAAqgK,gBAAP,SAAuB/zI,GACtB,OAAO/tB,KAAKktD,QAAQzpD,MAAM,eAAgB,CACzCo+J,aAAc9zI,EACdA,OAAQA,IACN8zI,cAGL,EAtQA,CAA8B1uF,EAAA,I,6BClV9B,6CAsJWivF,EAAW,IAzGtB,yBAiGA,OAxFQ,YAAAt3B,YAAP,SAAmBlyE,GAGlB,IACC93D,EAGD,OAJmB83D,EAAGwoB,SAAWxoB,EAAG+vE,OAKnC,KAAK,GAAK7nI,EAAM,KAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,QAAS,MACzB,KAAK,GAAKA,EAAM,QAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,EAAKA,EAAM,MAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,GAAKA,EAAM,QAAS,MACzB,KAAK,GAAKA,EAAM,QAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,OAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,GAAKA,EAAM,MAAS,MACzB,KAAK,IAAKA,EAAM,OAAS,MACzB,KAAK,IAAKA,EAAM,QAAS,MACzB,QAAUA,EAAM,QAGjB,OAAOA,GAUD,YAAAsjF,MAAP,SAAaxrB,EAAmB93D,GAC/B,IAAIsmJ,EAAWpnJ,KAAK8qI,YAAYlyE,GAIhC,OAHI,IAAe93D,KAClBA,EAAM,CAACA,KAE0B,IAA3BA,EAAIhK,QAAQswJ,IASb,YAAAib,SAAP,SAAgBzpG,GACf,OAAOA,EAAGypG,UASJ,YAAA/gF,QAAP,SAAe1oB,GACd,OAAOA,EAAG0oB,SAQJ,YAAAD,OAAP,SAAczoB,GACb,OAAOA,EAAGyoB,QAQJ,YAAAE,QAAP,SAAe3oB,GACd,OAAOA,EAAG2oB,SAGZ,EAjGA,K,6BC7CA,sCA8eI+gF,EA9eJ,sDAqDA,cAeC,mBACC,cAAO,K,OAND,EAAAp1G,QAAU,IAAI,IAA+C,GAOnE,EAAKnS,UAAY,gBACjB,EAAK4O,a,EAoaP,OAtbmC,iBAqBxB,YAAAk6E,MAAV,aASO,YAAAlgH,OAAP,SAAcpB,EAAc4I,GAGtB,IAAeA,KACnBA,EAAS,OAIV,IAAIo3I,EAAoB,GAMpBh+G,GAHJhiC,EAAOviB,KAAKg5D,OAAOz2C,IAGgB5D,MAAM,mBAEzC,IAAK4lC,EAEJ,OAAOvkD,KAAKssJ,KAAK/pI,EAAM,GAAI4I,GAO5B,IAHA,IAAIq3I,EAAkBjgJ,EAAKN,MAAM,gBAGxB5lB,EAAI,EAAGgV,EAAMmxJ,EAAMrmK,OAAQE,EAAIgV,EAAKhV,IAAK,CAGjD,IAAIiH,EAAYk/J,EAAMnmK,GAGtB,GAAU,KAANiH,EAAJ,CAKAA,EAAItD,KAAKktD,QAAQzpD,MAAM,QAASH,GAGhC,IAAIrI,EAAY,GACZoB,EAAI,IACPpB,EAAIspD,EAAOloD,EAAI,GAAG3F,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAIjD6rK,GAAaviK,KAAKssJ,KAAKhpJ,EAAGrI,EAAGkwB,IAO9B,OAHAo3I,EAAYviK,KAAKm5D,SAASopG,GAGnBviK,KAAK8uJ,QAAQyT,IAWd,YAAAvpG,OAAP,SAAcz2C,GACb,OAAOA,EACN7rB,QAAQ,QAAS,IAASgL,eAAe,MACzChL,QAAQ,kBAAmB,KAAO,IAASgL,eAAe,MAC1DhL,QAAQ,QAAS,IAASgL,eAAe,MACzChL,QAAQ,QAAS,IAASgL,eAAe,MACzChL,QAAQ,QAAS,IAASgL,eAAe,MACzChL,QAAQ,QAAS,IAASgL,eAAe,OAUpC,YAAAy3D,SAAP,SAAgB52C,GACf,OAAOA,EACN7rB,QAAQ,IAAIusB,OAAO,IAASvhB,eAAe,KAAM,KAAM,MACvDhL,QAAQ,IAAIusB,OAAO,IAASvhB,eAAe,KAAM,KAAM,MACvDhL,QAAQ,IAAIusB,OAAO,IAASvhB,eAAe,KAAM,KAAM,MACvDhL,QAAQ,IAAIusB,OAAO,IAASvhB,eAAe,KAAM,KAAM,MACvDhL,QAAQ,IAAIusB,OAAO,IAASvhB,eAAe,KAAM,KAAM,MAUlD,YAAAotJ,QAAP,SAAevsI,GACd,OAAOA,EACN7rB,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAYZ,YAAA41J,KAAP,SAAY/pI,EAAc04B,EAAe9vB,GAOxC,OALc,KAAV8vB,GAA0B,MAAVA,IAEnBA,EAAQ,IAGD9vB,GACP,IAAK,OACJ,OAAOnrB,KAAKyiK,SAASlgJ,EAAMviB,KAAKmuJ,wBAAwBlzG,IACzD,QACC,OAAOj7C,KAAK0iK,QAAQngJ,EAAMviB,KAAKmuJ,wBAAwBlzG,MAanD,YAAAynH,QAAP,SAAengJ,EAAc04B,GAC5B,MAAc,KAAVA,EACI,UAAY14B,EAAO,WAGnB,iBAAmB04B,EAAQ,KAAO14B,EAAO,YAY3C,YAAA8rI,cAAP,SAAqB9rI,EAAc04B,GAClC,IAAIvyB,EAAU,IAAI,IAAU,SAK5B,OAJAA,EAAQ4zC,YAAc/5C,EAClB04B,GACHvyB,EAAQynC,KAAK3vD,aAAa,QAASy6C,GAE7BvyB,GAYD,YAAA+5I,SAAP,SAAgBlgJ,EAAc04B,GAC7B,MAAc,KAAVA,EACI,SAAW14B,EAAO,UAGlB,gBAAkBviB,KAAK2iK,eAAe1nH,GAAS,KAAO14B,EAAO,WAY/D,YAAAqgJ,eAAP,SAAsBrgJ,EAAc04B,GACnC,IAAIvyB,EAAU3R,SAASH,cAAc,QAKrC,OAJA8R,EAAQ6wD,UAAYh3D,EAChB04B,GACHvyB,EAAQloB,aAAa,QAASy6C,GAExBvyB,GAWD,YAAAi6I,eAAP,SAAsB1nH,GAErB,OADAA,EAAQA,EAAMvkD,QAAQ,QAAS,WAczB,YAAAy3J,wBAAP,SAA+BlzG,GAG9B,GAAa,IAATA,GAAwB,OAATA,EAClB,MAAO,GAGR,IAAI6C,EAAS,IAAS78C,SAAS,2BAA6Bg6C,GAC5D,GAAI6C,EACH,OAAOA,EAIR,IAAMk+G,EAAI/gH,EAAMt8B,MAAM,yBACtB,GAAIq9I,EACH,IAAK,IAAI3/J,EAAY,EAAGA,EAAI2/J,EAAE7/J,OAAQE,IACrC4+C,EAAQA,EAAMvkD,QAAQslK,EAAE3/J,GAAI2/J,EAAE3/J,GAAG3F,QAAQ,SAAU,IAAIA,QAAQ,QAAS,MAK1E,IAAI+L,EAAqBw4C,EAAMt8B,MAAM,yDAGrC,IAAKlc,EACJ,OAAOw4C,EAIR,IAAS5+C,EAAY,EAAGA,EAAIoG,EAAEtG,OAAQE,IAEjCoG,EAAEpG,GAAGsiB,MAAM,WAEdlc,EAAEpG,GAAK,eAAiBoG,EAAEpG,GAEV,KAARoG,EAAEpG,GAGVoG,EAAEpG,GAAK,GAEEoG,EAAEpG,GAAGsiB,MAAM,KAKpBlc,EAAEpG,GAAKoG,EAAEpG,GAAG3F,QAAQ,MAAO,KAH3B+L,EAAEpG,GAAK,QAAUoG,EAAEpG,GAQrB,IAAImQ,EAAM/J,EAAEgE,KAAK,KAGjB,OAFA,IAAS5F,SAAS,2BAA6Bo6C,EAAOzuC,GAE/CA,GAuBD,YAAAmhJ,MAAP,SAAaprI,EAAcsgJ,EAA+BC,QAA/B,IAAAD,OAAA,QAA+B,IAAAC,OAAA,GAGzD,IAAIt2J,EAAoB,GAGxB+V,EAAOviB,KAAKg5D,OAAOz2C,GAInB,IADA,IAAImrI,EAASmV,EAAetgJ,EAAKN,MAAM,KAAO,CAACM,GACtClmB,EAAY,EAAGA,EAAIqxJ,EAAOvxJ,OAAQE,IAAK,CAC/C,IAAIsxJ,EAAQD,EAAOrxJ,GAGnB,GAAc,KAAVsxJ,EAIJ,GAAKtxJ,EAAI,IAAO,EASf,IADA,IAAI0mK,GADJpV,GADAA,EAAQA,EAAMj3J,QAAQ,QAAS,IAAM,IAAuB,MAC9CA,QAAQ,QAAS,QACXurB,MAAM,WACjB+gJ,EAAa,EAAGA,EAAKD,EAAQ5mK,OAAQ6mK,IAAM,EAC/CC,EAASjjK,KAAK8uJ,QAAQ9uJ,KAAKm5D,SAAS4pG,EAAQC,QAGjC,MAKA,KAAXC,IAKCD,EAAK,IAAO,EAChBx2J,EAAIhO,KAAK,CACR,KAAQ,QACR,KAAQwB,KAAKktD,QAAQzpD,MAAM,QAASw/J,KAIrCz2J,EAAIhO,KAAK,CACR,KAAQskK,EAAe,QAAU,SACjC,KAAQ,IAAMG,EAAS,aAY1B,IADIF,EAAUpV,EAAM1rI,MAAM,WACjB+gJ,EAAa,EAAGA,EAAKD,EAAQ5mK,OAAQ6mK,IAAM,CACnD,IAAIC,EAGW,MAHXA,EAASjjK,KAAK8uJ,QAAQ9uJ,KAAKm5D,SAAS4pG,EAAQC,QAQ3CA,EAAK,IAAO,EAChBx2J,EAAIhO,KAAK,CACR,KAAQ,OACR,KAAQykK,IAGDjjK,KAAKkjK,QAAQD,GACrBz2J,EAAIhO,KAAK,CACR,KAAQ,QACR,KAAQ,IAAMykK,EAAS,MAIxBz2J,EAAIhO,KAAK,CACR,KAAQ,SACR,KAAQ,IAAMykK,EAAS,QAQ5B,OAAOz2J,GAYD,YAAA02J,QAAP,SAAe3gJ,GACd,QAAOA,EAAK5D,MAAM,aAGpB,EAtbA,CAAmC,KAic7B,SAAUwkJ,IAKf,OAJiB,MAAbb,IACHA,EAAY,IAAIc,GAGVd,EASR,IAASljK,kBAAT,cAA8CgkK,G,6BCpgB9C,6GAOA,SAAS57J,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASw4C,EAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAkC,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAU5Z,IAEI8+J,EAEJ,WACE,IAAIA,EAAmC,SAAUn/B,GAC/C7pF,YAAUgpH,EAAqBn/B,GAE/B,IAAIC,EAASnqF,EAAaqpH,GAE1B,SAASA,IACP,IAAIn0J,EAqDJ,OAnDA0d,YAAgB5sB,KAAMqjK,IAEtBn0J,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YACrB8/J,eAAiB,KACvBp0J,EAAMk3H,UAAY,KAClBl3H,EAAMq0J,eAAiB,KACvBr0J,EAAMrH,MAAQ,CACZvL,MAAO,EACPC,OAAQ,GAGV2S,EAAMs0J,SAAW,SAAUtlH,GACzB,IAAIslH,EAAWt0J,EAAMqL,MAAMipJ,SACvBhiK,EAAS08C,EAAQ,GAAG18C,OAEpBiiK,EAAwBjiK,EAAO4mB,wBAC/B9rB,EAAQmnK,EAAsBnnK,MAC9BC,EAASknK,EAAsBlnK,OAE/BmnK,EAAcliK,EAAOkiK,YACrBC,EAAeniK,EAAOmiK,aAOtBC,EAAarsK,KAAKU,MAAMqE,GACxBunK,EAActsK,KAAKU,MAAMsE,GAE7B,GAAI2S,EAAMrH,MAAMvL,QAAUsnK,GAAc10J,EAAMrH,MAAMtL,SAAWsnK,EAAa,CAC1E,IAAIzrF,EAAO,CACT97E,MAAOsnK,EACPrnK,OAAQsnK,GAGV30J,EAAMu9C,SAAS2rB,GAEXorF,GACFA,EAAShpH,EAAcA,EAAc,GAAI49B,GAAO,GAAI,CAClDsrF,YAAaA,EACbC,aAAcA,OAMtBz0J,EAAM40J,aAAe,SAAU3zG,GAC7BjhD,EAAMk3H,UAAYj2E,GAGbjhD,EAoFT,OAjFAiqC,YAAakqH,EAAqB,CAAC,CACjCviK,IAAK,oBACLjL,MAAO,WACLmK,KAAK+jK,uBAEN,CACDjjK,IAAK,qBACLjL,MAAO,WACLmK,KAAK+jK,uBAEN,CACDjjK,IAAK,uBACLjL,MAAO,WACLmK,KAAKgkK,oBAEN,CACDljK,IAAK,qBACLjL,MAAO,WAGL,GAFemK,KAAKua,MAAM4vC,SAGxBnqD,KAAKgkK,sBADP,CAMA,IAAIt7I,EAAUu7I,YAAYjkK,KAAKomI,WAAapmI,MACvB0oB,IAAY1oB,KAAKujK,iBAGpCvjK,KAAKgkK,kBACLhkK,KAAKujK,eAAiB76I,IAGnB1oB,KAAKsjK,gBAAkB56I,IAC1B1oB,KAAKsjK,eAAiB,IAAIY,IAAelkK,KAAKwjK,UAC9CxjK,KAAKsjK,eAAe1oG,QAAQlyC,OAG/B,CACD5nB,IAAK,kBACLjL,MAAO,WACDmK,KAAKsjK,iBACPtjK,KAAKsjK,eAAea,aACpBnkK,KAAKsjK,eAAiB,QAGzB,CACDxiK,IAAK,SACLjL,MAAO,WACL,IAAIugB,EAAWpW,KAAKua,MAAMnE,SACtBy3C,EAAa3hC,YAAQ9V,GAEzB,GAAIy3C,EAAW1xD,OAAS,EACtBo/C,aAAQ,EAAO,sGACV,GAA0B,IAAtBsS,EAAW1xD,OAEpB,OADAo/C,aAAQ,EAAO,iEACR,KAGT,IAAI6qF,EAAYv4E,EAAW,GAE3B,GAAIp5C,iBAAqB2xH,IAAcg+B,YAAWh+B,GAAY,CAC5D,IAAI5qH,EAAM4qH,EAAU5qH,IACpBqyC,EAAW,GAAKp5C,eAAmB2xH,EAAW,CAC5C5qH,IAAK6oJ,YAAW7oJ,EAAKxb,KAAK8jK,gBAI9B,OAA6B,IAAtBj2G,EAAW1xD,OAAe0xD,EAAW,GAAKA,EAAW3iC,KAAI,SAAUilC,EAAMxoD,GAC9E,OAAK8M,iBAAqB07C,IAAS,QAASA,GAAqB,OAAbA,EAAKrvD,IAChDqvD,EAGF17C,eAAmB07C,EAAM,CAC9BrvD,IAAK,GAAGoF,OA9IM,kBA8IsB,KAAKA,OAAOyB,YAMjD07J,EA/I8B,CAgJrC5uJ,aAGF,OADA4uJ,EAAoBppJ,YAAc,iBAC3BopJ,EApJT,GAuJeA,a,cC9Kf5tK,EAAOC,QAAU,SAAsBomB,EAAMC,EAAMuoJ,EAASC,GAC1D,IAAIx7H,EAAMu7H,EAAUA,EAAQruK,KAAKsuK,EAAgBzoJ,EAAMC,QAAQ,EAE/D,QAAY,IAARgtB,EACF,QAASA,EAGX,GAAIjtB,IAASC,EACX,OAAO,EAGT,GAAoB,kBAATD,IAAsBA,GAAwB,kBAATC,IAAsBA,EACpE,OAAO,EAGT,IAAIC,EAAQtZ,OAAO6E,KAAKuU,GACpBG,EAAQvZ,OAAO6E,KAAKwU,GAExB,GAAIC,EAAM7f,SAAW8f,EAAM9f,OACzB,OAAO,EAMT,IAHA,IAAIqoK,EAAkB9hK,OAAOQ,UAAUJ,eAAegM,KAAKiN,GAGlDitD,EAAM,EAAGA,EAAMhtD,EAAM7f,OAAQ6sE,IAAO,CAC3C,IAAIloE,EAAMkb,EAAMgtD,GAEhB,IAAKw7F,EAAgB1jK,GACnB,OAAO,EAGT,IAAI2jK,EAAS3oJ,EAAKhb,GACd4jK,EAAS3oJ,EAAKjb,GAIlB,IAAY,KAFZioC,EAAMu7H,EAAUA,EAAQruK,KAAKsuK,EAAgBE,EAAQC,EAAQ5jK,QAAO,SAEtC,IAARioC,GAAkB07H,IAAWC,EACjD,OAAO,EAIX,OAAO,I,6BCpBH,SAAUp4I,EAAMv1B,EAAW0L,GAChC,OAAI1L,IAAM0L,EACF,EAEG1L,EAAI0L,GACN,EAGD,EAvBT,mC,6BCTA,uDACI8rD,EAAK,EACLo2G,EAAM,GAEK,SAASC,EAAWhwJ,GACjC,IAAIiwJ,EAAcrhK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,EAClFshK,EAAOv2G,IACPw2G,EAAaF,EAEjB,SAASG,KACPD,GAAc,IAEI,GAChBnwJ,WACO+vJ,EAAIG,IAEXH,EAAIG,GAAQxgB,IAAI0gB,GAKpB,OADAL,EAAIG,GAAQxgB,IAAI0gB,GACTF,EAGTF,EAAWlgB,OAAS,SAAgBugB,QACtBv4J,IAARu4J,IACJ3gB,IAAII,OAAOigB,EAAIM,WACRN,EAAIM,KAGbL,EAAWD,IAAMA,G,6BC9BjB,4SAGA,SAASn9J,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAMtgB,SAAS+5C,EAAQu2F,EAAO/rE,GAC7Bh1C,YAAK+gH,EAAO,uBAAuB5rI,OAAO6/D,IAErC,SAASvqB,EAAiBh6C,GAC/B,MAA2B,WAApBq4C,YAAQr4C,IAA+C,kBAAhBA,EAAOe,MAA6C,kBAAjBf,EAAOy4I,QAAgD,WAAzBpgG,YAAQr4C,EAAOs5C,OAA6C,oBAAhBt5C,EAAOs5C,MAE7J,SAASoqH,IACd,IAAIC,EAAQ3hK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAChF,OAAOd,OAAO6E,KAAK49J,GAAOlsK,QAAO,SAAUmsK,EAAKtkK,GAC9C,IAAIsvB,EAAM+0I,EAAMrkK,GAEhB,OAAQA,GACN,IAAK,QACHskK,EAAIrqH,UAAY3qB,SACTg1I,EAAIC,MACX,MAEF,QACED,EAAItkK,GAAOsvB,EAGf,OAAOg1I,IACN,IAEE,SAAS3pH,EAAS0U,EAAMrvD,EAAKwkK,GAClC,OAAKA,EAQE7wJ,IAAMmC,cAAcu5C,EAAK8I,IAAKze,EAAcA,EAAc,CAC/D15C,IAAKA,GACJokK,EAAe/0G,EAAKg1G,QAASG,IAAan1G,EAAK/5C,UAAY,IAAI8U,KAAI,SAAUyjC,EAAOhnD,GACrF,OAAO8zC,EAASkT,EAAO,GAAGzoD,OAAOpF,EAAK,KAAKoF,OAAOiqD,EAAK8I,IAAK,KAAK/yD,OAAOyB,QAVjE8M,IAAMmC,cAAcu5C,EAAK8I,IAAKze,EAAc,CACjD15C,IAAKA,GACJokK,EAAe/0G,EAAKg1G,SAAUh1G,EAAK/5C,UAAY,IAAI8U,KAAI,SAAUyjC,EAAOhnD,GACzE,OAAO8zC,EAASkT,EAAO,GAAGzoD,OAAOpF,EAAK,KAAKoF,OAAOiqD,EAAK8I,IAAK,KAAK/yD,OAAOyB,QAUvE,SAAS0zC,EAAkBX,GAEhC,OAAO6qH,mBAAc7qH,GAAc,GAE9B,SAASsB,EAAuBF,GACrC,OAAKA,EAIEzkD,MAAMD,QAAQ0kD,GAAgBA,EAAe,CAACA,GAH5C,GAOJ,IAAI0pH,EAAe,CACxBlpK,MAAO,MACPC,OAAQ,MACRm/C,KAAM,eACN,cAAe,OACfyV,UAAW,SAEFs0G,EAAa,y7BACpBC,GAAkB,EACXpqH,EAAkB,WAC3B,IAAIqqH,EAAWniK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAKiiK,EACnF/uJ,qBAAU,WACHgvJ,IACHE,oBAAUD,EAAU,CAClBE,SAAS,IAEXH,GAAkB,KAEnB,M,cCjFL,IAAII,EAAOrwK,EAAOC,QAAU,CAAEkhD,QAAS,UACrB,iBAAPmvH,MAAiBA,IAAMD,I,6BCDlC,2GAmDA,aA2BC,WAAYpsF,EAAwBnrB,GAGnCvuD,KAAK05E,UAAYA,EACjB15E,KAAKuuD,GAAKA,EAGV,IAAIjuD,EAAqByW,SAASivJ,gBAAgB,IAAY,OAC9D1lK,EAAIE,aAAa,UAAW,OAC5BF,EAAI2lK,eAAe,IAAY,QAAS,KACxC3lK,EAAI2lK,eAAe,IAAY,cAAe,KAC9C3lK,EAAIE,aAAa,OAAQ,SACzBR,KAAK05E,UAAUj2B,YAAYnjD,GAQ3BN,KAAKkmK,KAAuBnvJ,SAASivJ,gBAAgB,IAAY,QACjE1lK,EAAImjD,YAAYzjD,KAAKkmK,MAGrB5lK,EAAI26C,MAAM3+C,MAAQ,OAClBgE,EAAI26C,MAAM1+C,OAAS,OACnB+D,EAAI26C,MAAM1sB,SAAW,UAGrBvuB,KAAKM,IAAMA,EAkEb,OAzDQ,YAAAgJ,IAAP,SAAW68J,GACV,OAAO,IAAI,IAAUA,IASf,YAAAh9G,SAAP,SAAgBi9G,GACf,OAAO,IAAI,IAAMA,IAQX,YAAA3sF,OAAP,SAAc/wD,GACTA,GACH1oB,KAAKM,IAAImjD,YAAY/6B,EAAQynC,OASxB,YAAAP,UAAP,SAAiBlnC,GACZA,GACH1oB,KAAKkmK,KAAKziH,YAAY/6B,EAAQynC,OAUzB,YAAAk/F,cAAP,WAGC,OAFc,IAAI,IAAU,kBAUtB,YAAAzC,sBAAP,WACC,OAAO71I,SAASsvJ,eAAeC,WAAW,mDAAoD,QAGhG,EA1HA,GA6HIC,EAA2B,KAQzB,SAAUC,IACf,GAAmB,OAAfD,EAAqB,CAExB,IAAIE,EAA2B1vJ,SAASH,cAAc,OACtD6vJ,EAASz6G,QAAS,EAClBj1C,SAASpS,KAAK8+C,YAAYgjH,GAC1B,IAAIC,EAAoB,IAAI,IAAaD,GAAU,GACnDF,EAAa,IAAI/sF,EAAMktF,EAAkBloG,aAAc,SAIxD,OAAO+nG,I,6BCnMR,oFAqEA,cAmCC,mBAGC,cAAO,KACP,EAAKxrH,UAAY,SAEjB,EAAKg6B,SAAW,EAGhB,EAAK4xF,aAAe,OACpB,EAAKnlG,OAAS,aACd,EAAK4K,aAAe,SACpB,EAAKC,cAAgB,SACrB,EAAK/I,QAAQ,EAAG,GAAI,EAAG,IACvB,EAAK8J,oBAAqB,EAE1B,IAAI0G,EAAkB,IAAI,IAGtB/O,EAAa,EAAKA,WACtBA,EAAWrpB,KAAOo4B,EAAgBlK,OAAO,mBACzC7E,EAAW1W,OAASylB,EAAgBlK,OAAO,yBAC3C7E,EAAWnU,YAAc,EACzBmU,EAAWlU,cAAgB,EAC3BkU,EAAWzyD,aAAa,EAAG,EAAG,EAAG,GAGjC,EAAKvN,MAAQ,IAAI,IACjB,EAAKA,MAAM22C,KAAOo4B,EAAgBlK,OAAO,uBACzC,EAAK7kE,MAAM6jD,aAAc,EAGzB,IAAIwwB,EAAarU,EAAW9X,OAAO9pD,OAAO,SAC1Ci2E,EAAW5uC,WAAWomB,YAAc,EACpCwoB,EAAW5uC,WAAWkR,KAAOo4B,EAAgBlK,OAAO,wBAEpD,IAAImpC,EAAYhuC,EAAW9X,OAAO9pD,OAAO,Q,OACzC4vG,EAAU98C,mBAAqB,IAC/B88C,EAAUvoE,WAAWkR,KAAOo4B,EAAgBlK,OAAO,uBACnDmpC,EAAUvoE,WAAWomB,YAAc,EAGnC,EAAK/T,KAAO,SACZ,EAAKsU,WAAY,EAGjB,EAAKxH,a,EA8GP,OA/L4B,iBA0F3B,sBAAW,mBAAI,C,IAoBf,WACC,OAAO3pD,KAAK4mK,O,IArBb,SAAgB9rH,GACf,IAAI+rH,EAAc7mK,KAAK4mK,MACnBC,IAGHA,EAAY15J,YAAST,GAElBouC,IACH96C,KAAK4mK,MAAQ9rH,EACbA,EAAK3tC,OAASnN,KACd86C,EAAKgR,qBAAsB,EAC3BhR,EAAK8N,aAAc,EACnB5oD,KAAK2mK,aAAe3mK,KAAK2mK,aACzB3mK,KAAKkpD,WAAW1qD,KAAKs8C,K,gCAiBvB,sBAAW,2BAAY,C,IAgBvB,WACC,OAAO96C,KAAKujD,iBAAiB,iB,IAjB9B,SAAwB7nD,GACvBsE,KAAKopD,iBAAiB,eAAgB1tD,GAElCsE,KAAK86C,OACQ,QAAZp/C,EACHsE,KAAK86C,KAAKwpB,SAGVtkE,KAAK86C,KAAKupB,Y,gCAiBb,sBAAW,oBAAK,C,IAgBhB,WACC,OAAOrkE,KAAKqjF,Q,IAjBb,SAAiBt+E,GACZ/E,KAAKqjF,QAERrjF,KAAKoyD,cAAcpyD,KAAKqjF,QAEzBrjF,KAAKqjF,OAASt+E,EACVA,IACHA,EAAMoI,OAASnN,KACf+E,EAAM+mD,qBAAsB,EAC5B9rD,KAAKkpD,WAAW1qD,KAAKwB,KAAKqjF,U,gCAiBrB,YAAA3Z,iBAAP,WACC,OAAO,IAAI,KASL,YAAA7oB,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACXA,EAAO/b,OACV/E,KAAK+E,MAAM87C,SAAS//B,EAAO/b,OAExB+b,EAAOg6B,OACV96C,KAAK86C,KAAOh6B,EAAOg6B,KAAKlyC,UAI3B,EA/LA,CAA4B,KAuM5B,IAASxJ,kBAAT,OAAuC01E,G,6BC5QvC,SAASj7B,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAE5W,SAAS2/J,EAAQtrJ,EAAK20C,GACR,oBAAR30C,EACTA,EAAI20C,GACsB,WAAjBtW,EAAQr+B,IAAqBA,GAAO,YAAaA,IAC1DA,EAAItD,QAAUi4C,GAOX,SAASk0G,IACd,IAAK,IAAInvB,EAAO1xI,UAAUrH,OAAQ4qK,EAAO,IAAI1vK,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EsyB,EAAKtyB,GAAQjxI,UAAUixI,GAGzB,OAAO,SAAUtkF,GACf42G,EAAKt/J,SAAQ,SAAU+T,GACrBsrJ,EAAQtrJ,EAAK20C,OAIZ,SAASi0G,EAAW4C,GAEzB,QAAIA,EAAgBzlK,MAAQylK,EAAgBzlK,KAAK2B,YAAc8jK,EAAgBzlK,KAAK2B,UAAUm8I,WAK/D,oBAApB2nB,GAAkCA,EAAgB9jK,YAAc8jK,EAAgB9jK,UAAUm8I,QA/BvG,qE,6BCAe,SAASvlI,EAA8BgH,EAAQqxH,GAC5D,GAAc,MAAVrxH,EAAgB,MAAO,GAC3B,IAEIhgB,EAAKzE,EAFLmF,EAAS,GACTylK,EAAavkK,OAAO6E,KAAKuZ,GAG7B,IAAKzkB,EAAI,EAAGA,EAAI4qK,EAAW9qK,OAAQE,IACjCyE,EAAMmmK,EAAW5qK,GACb81I,EAASr7I,QAAQgK,IAAQ,IAC7BU,EAAOV,GAAOggB,EAAOhgB,IAGvB,OAAOU,EAZT,mC,6BCAA,mLAASq4C,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAEnX,SAASgT,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAIhT,SAASy1C,EAAkBz3C,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAM7S,SAASkB,EAAgBz0C,EAAG9C,GAA+G,OAA1Gu3C,EAAkB13C,OAAOC,gBAAkB,SAAyBgD,EAAG9C,GAAsB,OAAjB8C,EAAE/C,UAAYC,EAAU8C,IAA6BA,EAAG9C,GAErK,SAASm3C,EAAaC,GAAW,IAAI+pF,EAMrC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GANzPq1C,GAA6B,OAAO,WAAkC,IAAsCn1C,EAAlC21C,EAAQT,EAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,EAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,EAA2B95C,KAAMuE,IAE5Z,SAASu1C,EAA2B1zC,EAAMnQ,GAAQ,OAAIA,GAA2B,WAAlB4jD,EAAQ5jD,IAAsC,oBAATA,EAEpG,SAAgCmQ,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbD,CAAuBC,GAAtCnQ,EAMnI,SAASwjD,EAAgB9zC,GAAwJ,OAAnJ8zC,EAAkB/2C,OAAOC,eAAiBD,OAAOoE,eAAiB,SAAyBnB,GAAK,OAAOA,EAAE/C,WAAaF,OAAOoE,eAAenB,KAA8BA,GAExM,SAASgnB,EAAgBxlB,EAAKrG,EAAKjL,GAAiK,OAApJiL,KAAOqG,EAAOzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,EASpM,SAAS+/J,EAAmBrxK,GACjC,MAAqB,qBAAVA,GAAmC,OAAVA,EAC3B,GAGFA,EAEF,SAASsxK,EAAgB3lK,EAAQ6C,EAAG85J,GACzC,GAAIA,EAAU,CACZ,IAAIh6G,EAAQ9/C,EAEZ,GAAe,UAAXA,EAAE9C,KAAkB,EAEtB4iD,EAAQzhD,OAAOS,OAAOkB,IAChB7C,OAASA,EACf2iD,EAAMijH,cAAgB5lK,EACtB,IAAI6lK,EAAqB7lK,EAAO3L,MAMhC,OAJA2L,EAAO3L,MAAQ,GACfsoK,EAASh6G,QAET3iD,EAAO3L,MAAQwxK,GAIjBlJ,EAASh6G,IAGN,SAASmjH,EAAkBniC,EAAW/sD,EAAMjuB,EAAU3gB,GAC3D,IAAI+9H,EAEJ,OAAOt3J,IAAWk1H,GAA8Bx4G,EAAlB46I,EAAc,GAAiC,GAAGrhK,OAAOi/H,EAAW,OAAiB,UAAT/sD,GAAmBzrD,EAAgB46I,EAAa,GAAGrhK,OAAOi/H,EAAW,OAAiB,UAAT/sD,GAAmBzrD,EAAgB46I,EAAa,GAAGrhK,OAAOi/H,EAAW,aAAch7E,GAAWx9B,EAAgB46I,EAAa,GAAGrhK,OAAOi/H,EAAW,QAAuB,QAAd37F,GAAsB+9H,IAGxW,IAAIC,EAAqB,SAAUtjC,IAzDnC,SAAmB5pF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,sDAAyD80C,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUrxC,UAAU,EAAMC,cAAc,KAAeqxC,GAAYH,EAAgBE,EAAUC,GA0DjXF,CAAUmtH,EAAOtjC,GAEjB,IA9DoBp3G,EAAassB,EAAYC,EA8DzC8qF,EAASnqF,EAAawtH,GAE1B,SAASA,EAAMjtJ,GACb,IAAIrL,GArER,SAAyB2d,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAuE5GonB,CAAgB5sB,KAAMwnK,IAEtBt4J,EAAQi1H,EAAOluI,KAAK+J,KAAMua,IACpBivB,UAAY,MAElBt6B,EAAMw0C,MAAQ,WACZx0C,EAAMsc,MAAMk4B,SAGdx0C,EAAMu4J,mBAAqB,SAAUj8I,GACnCtc,EAAMw4J,eAAiBl8I,GAGzBtc,EAAMy4J,UAAY,SAAUn8I,GAC1Btc,EAAMsc,MAAQA,GAGhBtc,EAAM04J,QAAU,SAAUvjK,GACxB,IAAIujK,EAAU14J,EAAMqL,MAAMqtJ,QAE1B14J,EAAMu9C,SAAS,CACbo7G,SAAS,GACR34J,EAAM44J,6BAELF,GACFA,EAAQvjK,IAIZ6K,EAAM64J,OAAS,SAAU1jK,GACvB,IAAI0jK,EAAS74J,EAAMqL,MAAMwtJ,OAEzB74J,EAAMu9C,SAAS,CACbo7G,SAAS,GACR34J,EAAM44J,6BAELC,GACFA,EAAO1jK,IAIX6K,EAAM84J,YAAc,SAAU3jK,GAC5B6K,EAAMo3E,SAAS,IAAI,WACjBp3E,EAAMw0C,WAGRyjH,EAAgBj4J,EAAMsc,MAAOnnB,EAAG6K,EAAMqL,MAAM4jJ,WAG9CjvJ,EAAM+4J,YAAc,SAAU9iC,EAAW/sD,GACvC,IAAI5sD,EAAQhoB,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAC5EihI,EAAcv1H,EAAMqL,MACpBwgC,EAAY0pF,EAAY1pF,UACxBmtH,EAAczjC,EAAYyjC,YAC1BC,EAAa1jC,EAAY0jC,WACzBC,EAAgB3jC,EAAYrsD,KAC5BjuB,EAAWs6E,EAAYt6E,SAEvBk+G,EAAatsB,kBAAK7sI,EAAMqL,MAAO,CAAC,YAAa,eAAgB,cAAe,aAAc,SAAU,SAAU,aAElH,eAAgB,OAAQ,cACxB,OAAoB9F,gBAAoB,QAAS0F,EAAS,CACxDmuJ,aAAc98I,EAAM88I,cACnBD,EAAY,CACblK,SAAUjvJ,EAAMq5J,aAChBX,QAAS14J,EAAM04J,QACfG,OAAQ74J,EAAM64J,OACdS,UAAWt5J,EAAMu5J,cACjB1tH,UAAW9qC,IAAWq3J,EAAkBniC,EAAWijC,GAAiBhwF,EAAMjuB,EAAUj7C,EAAMs6B,WAAY7c,EAAgB,GAAIouB,EAAWA,IAAcmtH,IAAgBC,IACnK3sJ,IAAKtM,EAAMy4J,cAIfz4J,EAAM44J,4BAA8B,WAElC54J,EAAMw5J,sBAAwB/pG,YAAW,WACnCzvD,EAAMsc,OAA8C,aAArCtc,EAAMsc,MAAM03B,aAAa,SAA0Bh0C,EAAMsc,MAAMm9I,aAAa,UAC7Fz5J,EAAMsc,MAAM7qB,gBAAgB,aAKlCuO,EAAMq5J,aAAe,SAAUlkK,GAC7B6K,EAAMo3E,SAASjiF,EAAE7C,OAAO3L,MAAOqZ,EAAM44J,6BAErCX,EAAgBj4J,EAAMsc,MAAOnnB,EAAG6K,EAAMqL,MAAM4jJ,WAG9CjvJ,EAAMu5J,cAAgB,SAAUpkK,GAC9B,IAAIukK,EAAe15J,EAAMqL,MACrBsuJ,EAAeD,EAAaC,aAC5BL,EAAYI,EAAaJ,UAEX,KAAdnkK,EAAE+8E,SAAkBynF,GACtBA,EAAaxkK,GAGXmkK,GACFA,EAAUnkK,IAId6K,EAAM45J,gBAAkB,SAAU5yJ,GAChC,IAAImvH,EAAenvH,EAAKmvH,aACpB77F,EAAYtzB,EAAKszB,UACjBhe,EAAQtV,EAAKsV,MACbu9I,EAAc75J,EAAMrH,MACpBhS,EAAQkzK,EAAYlzK,MACpBgyK,EAAUkB,EAAYlB,QAEtB1iC,EAAYE,EAAa,QADJn2H,EAAMqL,MAAM4qH,WAGrC,OADAj2H,EAAMs6B,UAAYA,EACE/0B,gBAAoBs7I,IAAYn1I,SAAU,MAAM,SAAUw9D,GAC5E,OAAoB3jE,gBAAoBu0J,IAAuB7uJ,EAAS,CACtEi+D,KAAMA,GACLlpE,EAAMqL,MAAO,CACd4qH,UAAWA,EACX8jC,UAAW,QACXpzK,MAAOqxK,EAAmBrxK,GAC1B6yB,QAASxZ,EAAM+4J,YAAY9iC,EAAW/sD,EAAM5sD,GAC5Cw8I,YAAa94J,EAAM84J,YACnBxsJ,IAAKtM,EAAMu4J,mBACXj+H,UAAWA,EACXq+H,QAASA,EACTqB,aAAch6J,EAAMw0C,aAK1B,IAAI7tD,EAA+B,qBAAhB0kB,EAAM1kB,MAAwB0kB,EAAMrjB,aAAeqjB,EAAM1kB,MAO5E,OANAqZ,EAAMrH,MAAQ,CACZhS,MAAOA,EACPgyK,SAAS,EAETl/E,UAAWpuE,EAAM1kB,OAEZqZ,EAqET,OAhRoB4d,EA8MP06I,EA9MgCnuH,EAgQzC,CAAC,CACHv4C,IAAK,2BACLjL,MAAO,SAAkCszK,EAAWpwJ,GAClD,IAAI4vE,EAAY5vE,EAAM4vE,UAClBygF,EAAW,CACbzgF,UAAWwgF,EAAUtzK,OAOvB,YAJwB6W,IAApBy8J,EAAUtzK,OAAuB8yF,IAAcwgF,EAAUtzK,QAC3DuzK,EAASvzK,MAAQszK,EAAUtzK,OAGtBuzK,MA5QsBhwH,EA8Mb,CAAC,CACnBt4C,IAAK,oBACLjL,MAAO,WACLmK,KAAK8nK,gCAIN,CACDhnK,IAAK,qBACLjL,MAAO,cACN,CACDiL,IAAK,0BACLjL,MAAO,SAAiC2uI,GAKtC,OAJI6kC,YAAgB7kC,KAAe6kC,YAAgBrpK,KAAKua,QACtD+pH,YAAWtkI,KAAKwrB,QAAUzU,SAASuyJ,cAAe,QAAS,4KAGtD,OAER,CACDxoK,IAAK,uBACLjL,MAAO,WACDmK,KAAK0oK,uBACP9uF,aAAa55E,KAAK0oK,yBAGrB,CACD5nK,IAAK,OACLjL,MAAO,WACLmK,KAAKwrB,MAAMg4B,SAEZ,CACD1iD,IAAK,SACLjL,MAAO,WACLmK,KAAKwrB,MAAM+9I,WAEZ,CACDzoK,IAAK,WACLjL,MAAO,SAAkBA,EAAO+e,QACLlI,IAArB1M,KAAKua,MAAM1kB,OACbmK,KAAKysD,SAAS,CACZ52D,MAAOA,GACN+e,KAGN,CACD9T,IAAK,SACLjL,MAAO,WACL,OAAoB4e,gBAAoB+wH,IAAgB,KAAMxlI,KAAK8oK,sBA9PK7vH,EAAkBnsB,EAAY5pB,UAAWk2C,GAAiBC,GAAaJ,EAAkBnsB,EAAausB,GAgR3KmuH,EArNgB,CAsNvB/yJ,aAEF+yJ,EAAM5iC,aAAe,CACnBrjI,KAAM,QAEOimK,O,6BC5Rf,SAASrtJ,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAFhT,kCAIO,IAAIgmK,EAAkB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAClDC,EAAgB,CACzBC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,sBACJC,IAAK,uBAEHC,EAAc,GACdC,GAAU,EACVC,EAAU,GACVC,EAAoB,CACtBC,cAAe,GACfjpK,SAAU,SAAkBkpK,GAK1B,OAJAH,EAAUG,EACVL,EAAYviK,SAAQ,SAAU0iC,GAC5BA,EAAKxX,KAAKu3I,MAELF,EAAY7tK,QAAU,GAE/BiZ,UAAW,SAAmBud,GACD,IAAvBq3I,EAAY7tK,QACd6D,KAAKsqK,WAGP,IAAI93I,KAAWy3I,GAAQj0K,WAMvB,OALAg0K,EAAYxrK,KAAK,CACfg0B,MAAOA,EACPG,KAAMA,IAERA,EAAKu3I,GACE13I,GAET/c,YAAa,SAAqB+c,GAKL,KAJ3Bw3I,EAAcA,EAAYh9I,QAAO,SAAUmd,GACzC,OAAOA,EAAK3X,QAAUA,MAGRr2B,QACd6D,KAAKuqK,cAGTA,WAAY,WACV,IAAIr7J,EAAQlP,KAEZ0C,OAAO6E,KAAKkiK,GAAehiK,SAAQ,SAAU+iK,GAC3C,IAAIC,EAAkBhB,EAAce,GAChCE,EAAUx7J,EAAMk7J,cAAcK,GAE9BC,GAAWA,EAAQC,KAAOD,EAAQx1J,UACpCw1J,EAAQC,IAAIC,eAAeF,EAAQx1J,cAIzCo1J,SAAU,WACR,IAAI96J,EAASxP,KAEb0C,OAAO6E,KAAKkiK,GAAehiK,SAAQ,SAAU+iK,GAC3C,IAAIC,EAAkBhB,EAAce,GAEhCt1J,EAAW,SAAkBgB,GAC/B,IAlEiB/O,EAAKrG,EAAKjL,EAkEvB22B,EAAUtW,EAAKsW,QAEnBhd,EAAOrO,SAASgZ,EAASA,EAAS,GAAI+vJ,IApEXr0K,EAoEiD22B,GApEtD1rB,EAoE8C0pK,KApEnDrjK,EAoE+C,IApEVzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,MAuEjMwjK,EAAM7zJ,OAAOixH,WAAW0iC,GAC5BE,EAAIE,YAAY31J,GAChB1F,EAAO46J,cAAcK,GAAmB,CACtCE,IAAKA,EACLz1J,SAAUA,GAEZA,EAASy1J,QAIAR,O,cCjFf,IAAItlK,EAGJA,EAAK,WACJ,OAAO7E,KADH,GAIL,IAEC6E,EAAIA,GAAK,IAAI4sB,SAAS,cAAb,GACR,MAAOptB,GAEc,kBAAXyS,SAAqBjS,EAAIiS,QAOrCrhB,EAAOC,QAAUmP,G,6BCjBjBnC,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQo1K,eA6ER,SAAwB9pJ,GACtB,OAAO+pJ,EAAe/pJ,EAAKgqJ,IA7E7Bt1K,EAAQu1K,aAgFR,SAAsBjqJ,GACpB,OAAO+pJ,EAAe/pJ,EAAKkqJ,IAhF7Bx1K,EAAQ48I,aAoFR,WACE,OAAO/6I,KAAKg7I,SAASv8I,SAAS,IAAIywB,OAAO,EAAG,IApF9C/wB,EAAQy1K,YAuFR,SAAqB7oK,GACnB,OAAOI,OAAO6E,KAAKjF,GAAQ4oB,KAAI,SAAUpqB,GACvC,MAAO,GAAGoF,OAAOpF,EAAK,KAAKoF,OAAO5D,EAAOxB,OACxC2F,KAAK,MAzFV/Q,EAAQ01K,OAgHR,SAAgBpqJ,EAAKqqJ,GACnB,IAAIC,EAAW9nK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,KAC/E+nK,EAAW/nK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,WACjF,OAAO,GAELgoK,EAAchoK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAKioK,EAAW,QAC7FC,EAAiBC,EAAUN,GAE/B,GAAIK,GAAkBH,EAASG,GAC7B,OAAO3nK,QAAQC,QAAQ0nK,GAGzB,OAAO,IAAI3nK,SAAQ,SAAUC,EAASC,GAGpC,GAAI2nK,EAAS5qJ,GACX4qJ,EAAS5qJ,GAAKxiB,KAAK,CACjBwF,QAASA,EACTC,OAAQA,QAHZ,CAQA2nK,EAAS5qJ,GAAO,CAAC,CACfhd,QAASA,EACTC,OAAQA,IAGV,IAAI4nK,EAAW,SAAkBC,GAE/BF,EAAS5qJ,GAAKvZ,SAAQ,SAAUskK,GAC9B,OAAOA,EAAQ/nK,QAAQ8nK,OAI3B,GAAIR,EAAU,CACZ,IAAIU,EAAkBl1J,OAAOw0J,GAE7Bx0J,OAAOw0J,GAAY,WACbU,GAAiBA,IACrBH,EAASF,EAAUN,KAIvBG,EAAYxqJ,GAAK,SAAUjQ,GACrBA,GAGF66J,EAAS5qJ,GAAKvZ,SAAQ,SAAUskK,GAC9B,OAAOA,EAAQ9nK,OAAO8M,MAExB66J,EAAS5qJ,GAAO,MACNsqJ,GACVO,EAASF,EAAUN,YApK3B31K,EAAQu2K,UA0KR,SAAmB1xJ,EAAOqqH,GACxB,OAAO,EAAIsnC,EAAU,SAAatnC,EAAap2H,OAAQ+L,EAAM/L,SA1K/D9Y,EAAQqmJ,KA6KR,SAAcz5I,GAGZ,IAFA,IAAI4T,EAEKg/H,EAAO1xI,UAAUrH,OAAQgwK,EAAS,IAAI90K,MAAM69I,EAAO,EAAIA,EAAO,EAAI,GAAIT,EAAO,EAAGA,EAAOS,EAAMT,IACpG03B,EAAO13B,EAAO,GAAKjxI,UAAUixI,GAQ/B,IALA,IAAI23B,GAAYl2J,EAAO,IAAIhQ,OAAOzC,MAAMyS,EAAMi2J,GAE1ChhJ,EAAS,GACT5jB,EAAO7E,OAAO6E,KAAKjF,GAEd+pK,EAAM,EAAG5sH,EAAQl4C,EAAM8kK,EAAM5sH,EAAMtjD,OAAQkwK,IAAO,CACzD,IAAIvrK,EAAM2+C,EAAM4sH,IAEe,IAA3BD,EAASt1K,QAAQgK,KACnBqqB,EAAOrqB,GAAOwB,EAAOxB,IAIzB,OAAOqqB,GAhMTz1B,EAAQ42K,WAmMR,SAAoB7yG,GAClB,IAAI8yG,EAIJ,IAAKvsK,KAAKwsK,SAAWxsK,KAAKwsK,OAAO/yG,GAAS,CACxC,IAAIsM,EAAU,gBAAgB7/D,OAAOlG,KAAKiD,YAAYgX,YAAa,6BAA6B/T,OAAOuzD,EAAQ,cAS/G,OAPKz5D,KAAKwsK,OAEExsK,KAAKwsK,OAAO/yG,KACtBsM,GAAW,gCAFXA,GAAW,+BAKb90C,QAAQF,KAAKg1C,EAAS,oBAAqB,IACpC,KAGT,IAAK,IAAIoqF,EAAQ3sJ,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM84J,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG7pJ,EAAK6pJ,EAAQ,GAAK5sJ,UAAU4sJ,GAG9B,OAAQmc,EAAevsK,KAAKwsK,QAAQ/yG,GAAQh2D,MAAM8oK,EAAchmK,IAxNlE7Q,EAAQ+2K,cA2NR,SAAuBzrJ,GACrB,MAAyB,qBAAXlK,QAAwD,qBAAvBA,OAAO41J,aAA+B1rJ,aAAelK,OAAO41J,aA3N7Gh3K,EAAQi3K,UA8NR,SAAmB3rJ,GACjB,MAAO,SAASiK,KAAKjK,IA9NvBtrB,EAAQk3K,+BAiOR,WACE,IAAIC,EAAQrpK,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAKuT,SAASH,cAAc,SAGnGk2J,GAAwD,IAA5C,cAAc7hJ,KAAKw2D,UAAUC,WAC7C,OAAOmrF,EAAME,gCAA6E,oBAApCF,EAAMG,2BAA4CF,GApO1G,IAAIrB,EAAcnpB,EAAuB3sJ,EAAQ,OAE7Cu2K,EAAa5pB,EAAuB3sJ,EAAQ,MAEhD,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAEzF,SAASoJ,EAAeC,EAAKnU,GAAK,OAUlC,SAAyBmU,GAAO,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOA,EAVtBmtJ,CAAgBntJ,IAQzD,SAA+BA,EAAKnU,GAAK,GAAsB,qBAAX+I,UAA4BA,OAAOC,YAAY3C,OAAO8N,IAAO,OAAQ,IAAIC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKlE,EAAW,IAAM,IAAK,IAAiCmE,EAA7BC,EAAKN,EAAIpL,OAAOC,cAAmBqL,GAAMG,EAAKC,EAAG1M,QAAQI,QAAoBiM,EAAKjS,KAAKqS,EAAGhb,QAAYwG,GAAKoU,EAAKtU,SAAWE,GAA3DqU,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAtL,QAAuM,IAAWL,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,EARjamtJ,CAAsBptJ,EAAKnU,IAI5F,SAAqCsJ,EAAGk4J,GAAU,IAAKl4J,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOm4J,EAAkBn4J,EAAGk4J,GAAS,IAAIt6J,EAAIb,OAAOQ,UAAUlN,SAASC,KAAK0P,GAAGgD,MAAM,GAAI,GAAc,WAANpF,GAAkBoC,EAAE1C,cAAaM,EAAIoC,EAAE1C,YAAYV,MAAM,GAAU,QAANgB,GAAqB,QAANA,EAAa,OAAOlM,MAAM84B,KAAKxqB,GAAI,GAAU,cAANpC,GAAqB,2CAA2C0nB,KAAK1nB,GAAI,OAAOu6J,EAAkBn4J,EAAGk4J,GAJpTE,CAA4BvtJ,EAAKnU,IAEnI,WAA8B,MAAM,IAAImJ,UAAU,6IAFuFw4J,GAMzI,SAASF,EAAkBttJ,EAAKa,IAAkB,MAAPA,GAAeA,EAAMb,EAAIrU,UAAQkV,EAAMb,EAAIrU,QAAQ,IAAK,IAAIE,EAAI,EAAG8iC,EAAO,IAAI9nC,MAAMga,GAAMhV,EAAIgV,EAAKhV,IAAO8iC,EAAK9iC,GAAKmU,EAAInU,GAAM,OAAO8iC,EAMhL,IAAI6rI,EAAoB,+BACpBE,EAAkB,uBAClB+B,EAAoB,gBACpBC,EAAgB,QAGpB,SAASnC,EAAe/pJ,EAAKu3D,GAC3B,KAAIv3D,aAAe3pB,OAAnB,CAIA,IAAIsnB,EAAQqC,EAAIrC,MAAM45D,GAEtB,GAAI55D,EAAO,CACT,IAAIwuJ,EAAQxuJ,EAAM,GAElB,GAAIwuJ,EAAMxuJ,MAAMsuJ,GACd,OAWN,SAAyBE,GACvB,IAAIxwI,EAAU,EACV5R,EAAQkiJ,EAAkBhsJ,KAAKksJ,GAEnC,KAAiB,OAAVpiJ,GAAgB,CACrB,IACIqiJ,EAAU78J,EADDwa,EACwB,GACjC5sB,EAAQivK,EAAQ,GAChB3jI,EAAS2jI,EAAQ,GAEN,MAAX3jI,IAAgB9M,GAAiC,GAAtB5D,SAAS56B,EAAO,IAAW,IAC3C,MAAXsrC,IAAgB9M,GAAiC,GAAtB5D,SAAS56B,EAAO,KAChC,MAAXsrC,IAAgB9M,GAAW5D,SAAS56B,EAAO,KAC/C4sB,EAAQkiJ,EAAkBhsJ,KAAKksJ,GAGjC,OAAOxwI,EA3BI0wI,CAAgBF,GAGzB,GAAID,EAAcjiJ,KAAKkiJ,GACrB,OAAOp0I,SAASo0I,KA6CtB,SAASxB,EAAU7qK,GACjB,OAAIgW,OAAOhW,GACFgW,OAAOhW,GAGZgW,OAAOphB,SAAWohB,OAAOphB,QAAQoL,GAC5BgW,OAAOphB,QAAQoL,GAGpBgW,OAAOrhB,QAAUqhB,OAAOrhB,OAAOC,SAAWohB,OAAOrhB,OAAOC,QAAQoL,GAC3DgW,OAAOrhB,OAAOC,QAAQoL,GAGxB,KAKT,IAAI8qK,EAAW,I,6BCvHf,4FAoJA,cAiNC,mBACC,cAAO,K,OAzJE,EAAAtjH,WAAqB,EASxB,EAAA67C,eAAyB,EAKhB,EAAAprG,OAA2D,GAU3D,EAAAsxG,WAA0C,GAK1C,EAAAv4D,MAAmC,GAUnC,EAAA2xD,UAAyC,GAKzC,EAAAqC,iBAAgD,GAgBhD,EAAAt7D,WAAuC,GAWhD,EAAA1jB,QAAoB,GAMpB,EAAAq6B,YAAsB,EActB,EAAA2iD,OAAwB,KAOrB,EAAAwpE,UAAoB,EAOpB,EAAAC,SAAmB,EAOnB,EAAAhnF,eAAyB,EAS5B,EAAAiqC,YAA4C,GAM5C,EAAA5pE,UAAoB,EAajB,EAAA4mH,iBAAiD,GAMjD,EAAAC,oBAAoD,GAQ7D,EAAK1yH,UAAY,WACjB,EAAK4O,a,EA+1BP,OAnjC8B,iBA0B7B,sBAAW,sBAAO,C,IAAlB,WAIC,OAHK3pD,KAAK4pD,YACT5pD,KAAK4pD,UAAY,IAAI,IAAgC5pD,OAE/CA,KAAK4pD,W,gCA+Lb,sBAAW,oBAAK,C,IAAhB,WACC,OAAI5pD,KAAK4B,WACW,MAAf5B,KAAK8jG,OACD9jG,KAAK8jG,QAML,G,gCASV,sBAAW,yBAAU,C,IAArB,WAKC,OAJK9jG,KAAK41D,cACT51D,KAAK41D,YAAc,GACnB51D,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAkBwB,KAAK41D,eAE1C51D,KAAK41D,a,gCAQb,sBAAW,sBAAO,C,IAmGlB,WACC,OAAI51D,KAAKutK,SAGFvtK,KAAKstK,U,IAvGb,SAAmBz3K,GACdA,IACHmK,KAAKgsD,QAAS,GAEXhsD,KAAKstK,UAAYz3K,GACpBmK,KAAKm2D,cAActgE,I,gCASrB,sBAAW,qBAAM,C,IAiBjB,WACC,OAAOmK,KAAKutK,S,IAlBb,SAAkB13K,GACbmK,KAAKutK,SAAW13K,IACnBmK,KAAKutK,QAAU13K,EACXA,EACHmK,KAAKm2D,eAAc,GAGnBn2D,KAAKm2D,eAAc,GAAM,K,gCAoB5B,sBAAW,yBAAU,C,IAgBrB,WACC,OAAOn2D,KAAKsoD,W,IAjBb,SAAsBzyD,GAErBmK,KAAKsoD,UAAYzyD,EAEjB,IAAYmK,KAAK8mB,SAAS,SAACzmB,GAC1BA,EAAO+rD,WAAav2D,M,gCAoBf,YAAAsgE,cAAP,SAAqBtgE,EAAgBu5F,GAgBpC,GAfA,IAAYpvF,KAAK8mB,SAAS,SAACzmB,GACtBxK,EACHwK,EAAOwrD,QAAUxrD,EAAOqsD,aAAaliB,WAAWqhB,QAG5CxrD,EAAOm1D,YACVn1D,EAAOwrD,QAAUxrD,EAAOm1D,YAAYhrB,WAAWqhB,QAG/CxrD,EAAOwrD,SAAU,KAKpB7rD,KAAKstK,SAAWz3K,EACZmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,qBAAsB,CAC/C,IAAM,EAA6D,CAClEC,KAAM,oBACNC,OAAQxB,KACR6rD,QAASh2D,GAEVmK,KAAKhB,OAAOyC,oBAAoB,oBAAqB,KAwBjD,YAAAoiE,KAAP,SAAY98B,EAAmButC,EAAgB82B,GAA/C,IAUM,EAVN,OACC,IAAKprG,KAAKgsD,OA4BT,OA3BAhsD,KAAKm2D,eAAc,GAAM,GAEzBn2D,KAAK4mD,UAAW,EAEZ5mD,KAAK0tK,eACR1tK,KAAKoyD,cAAcpyD,KAAK0tK,eAKrBtiE,GACH,IAAYA,GAAQ,SAAC34D,GACpB,EAAY,EAAK0qE,gBAAgB1qE,EAAO,EAAK15C,OAAO05C,GAAO58C,MAAOkxC,EAAUutC,MAI9E,IAAYt0E,KAAK8mB,SAAS,SAACzmB,GAC1B,IAAIm2D,EAAYn2D,EAAOwjE,KAAK98B,GAEX,MAAbyvB,GAAsBA,EAAUW,eACnC,EAAKjO,WAAW1qD,KAAKg4D,GAER,MAAT8d,GAAiBA,EAAQ,GAC5B9d,EAAU8d,MAAMA,OAIZ,GAOF,YAAAz0B,QAAP,WACC,YAAMA,QAAO,WAEb,IAAY7/C,KAAK8mB,SAAS,SAACzmB,GAC1BA,EAAOw/C,aAGR7/C,KAAK8mB,QAAU,IAWT,YAAAmlC,KAAP,SAAYllB,EAAmButC,EAAgB8tC,EAAkBhX,GAAjE,WAgBC,GAfAprG,KAAK4mD,UAAW,EAEhB,IAAY5mD,KAAK8mB,SAAS,SAACzmB,GAE1B,IAAIm2D,EAAYn2D,EAAO4rD,KAAKllB,GAEX,MAAbyvB,GAAsBA,EAAUW,eACnC,EAAKjO,WAAW1qD,KAAKg4D,GAER,MAAT8d,GAAiBA,EAAQ,GAC5B9d,EAAU8d,MAAMA,OAKf,IAAe8tC,IAAYhX,EAAQ,CACtC,IAAI,EASJ,GAPA,IAAYA,GAAQ,SAAC34D,GACpB,IAAI8+D,EAAO,EAAK4L,gBAAgB1qE,EAAO2vE,EAASr7E,EAAUutC,GACtDi9B,IACH,EAAYA,MAIV,IAAc,EAAUp6C,aAO3B,OANAn3D,KAAK0tK,cAAgB,EAAU1uK,OAAOmgD,GAAG,kBAAkB,WAC1D,EAAKgX,eAAc,GAAO,GAC1B,EAAKvP,UAAW,KAGjB5mD,KAAKkpD,WAAW1qD,KAAKwB,KAAK0tK,eACnB,EAGP1tK,KAAK4mD,UAAW,EAChB5mD,KAAKm2D,eAAc,GAAO,QAI3Bn2D,KAAK4mD,UAAW,EAChB5mD,KAAKm2D,eAAc,IAcd,YAAAs6D,YAAP,SAAmB1pF,GAClB,IAAK,IAAeA,GAAW,CAC9B,IAAInlC,EAAuC5B,KAAK4B,UAC5CA,IACHmlC,EAAWnlC,EAAU4vG,uBAIvB,GAAgB,MAAZzqE,EACH,OAAK/mC,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,WAAYsjC,GAHjCA,GAoBH,YAAA/vC,SAAP,SAAgBuL,EAAcq4C,GAC7B,GAAIr4C,GAAQvC,KAAK4B,UAAW,CACtBg5C,IACJA,EAAmB56C,KAAK4B,UAAUgrF,WAAYrqF,EAAO,WAEpDq4C,EAAa,SAIf,IAAM/kD,EAAQmK,KAAKjH,OAAOwJ,GAAMq4C,GAEhC,OAAI56C,KAAK4pD,WAAa5pD,KAAK4pD,UAAUtoD,UAAU,SACvCtB,KAAK4pD,UAAUnmD,MAAM,QAAS,CACpC5N,MAAOA,EACP48C,MAAOlwC,IACL1M,MAGIA,IAiBH,YAAAgoG,gBAAP,SAAuBt7F,GACtB,GAAIA,GAAQvC,KAAK4B,UAAW,CAC3B,IAAI+rK,EAAiB3tK,KAAK4B,UAAUgrF,WAAYrqF,EAAO,QAKvD,OAHKorK,IACJA,EAAW,gBAER3tK,KAAK4pD,UACD5pD,KAAK4pD,UAAUnmD,MAAM,eAAgB,CAC3C4nF,aAAcrrF,KAAKjH,OAAOwJ,GAAMorK,GAChCl7H,MAAOlwC,IACL8oF,aAGIrrF,KAAKjH,OAAOwJ,GAAMorK,KASrB,YAAAtlF,sBAAP,SAA6B9lF,GAC5B,OAAOvC,KAAKjH,OAAOwJ,GAAM8oF,cAanB,YAAA/E,SAAP,SAAgB/jF,EAAc1M,EAAekxC,EAAmButC,GAC/D,IAAIrd,EAAuBj3D,KAAKjH,OAAOwJ,GAAM1M,MACzC+3K,EAAsC5tK,KAAKywH,YAAY1pF,GAE3D,GAAIkwB,KADJphE,EAAQ,IAAeA,IACK,CAE3B,GADAmK,KAAKjH,OAAOwJ,GAAM1M,MAAQA,EACtBmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,gBAAiB,CAC1C,IAAM,EAAwD,CAC7DC,KAAM,eACNC,OAAQxB,KACRqqC,SAAU9nC,GAEXvC,KAAKhB,OAAOyC,oBAAoB,eAAgB,GAI9CzB,KAAK4B,WACR5B,KAAK4B,UAAUiyH,0BAA0B7zH,KAAMuC,GAIjDvC,KAAKm9G,gBAAgB56G,EAAM1M,EAAO+3K,EAAat5F,IAGhD,YAAAoU,mBAAA,SAAmBnmF,EAAc1M,EAAe+kD,GAG/C,GAF2B56C,KAAKjH,OAAOwJ,GAAMq4C,KAExB/kD,GAAS,IAAeA,GAAQ,CAGpD,GAFAmK,KAAKjH,OAAOwJ,GAAMq4C,GAAc/kD,EAE5BmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,0BAA2B,CACpD,IAAM,EAAkE,CACvEC,KAAM,yBACNC,OAAQxB,KACRqqC,SAAU9nC,GAEXvC,KAAKhB,OAAOyC,oBAAoB,yBAA0B,GAIxDzB,KAAK4B,WACR5B,KAAK4B,UAAUisK,oCAAoC7tK,KAAMuC,KAerD,YAAA46G,gBAAP,SAAuB56G,EAAc1M,EAAekxC,EAAmButC,GACtE,GAAI,IAAet0E,KAAKjH,OAAOwJ,GAAM1M,OAAQ,CAC5C,IAAI+3K,EAAsC5tK,KAAKywH,YAAY1pF,GAEvDskD,EAAuBrrF,KAAKjH,OAAOwJ,GAAM8oF,aAE7C,GAAmB,MAAfuiF,GAAuBA,EAAc,GAAK,IAAeviF,IAAiBrrF,KAAK4B,UAAW,CAE7F,GAAIypF,GAAgBx1F,EAAO,CAC1B,IAAI2gE,EAAuBx2D,KAAK81D,QAAQ,CAAE41F,YAAa1rJ,KAAKjH,OAAOwJ,GAAO8nC,SAAU,eAAgBla,KAAMk7D,EAAcn7D,GAAIr6B,EAAOo3E,UAAW1qE,GAAQqrK,EAAa5tK,KAAK4B,UAAUmqH,qBAQlL,OAPa,MAATz3C,GACH9d,EAAU8d,MAAMA,GAEjB9d,EAAUx3D,OAAOmgD,GAAG,mBAAoBn/C,KAAK8tK,4BAA6B9tK,MAC1Ew2D,EAAUx3D,OAAOmgD,GAAG,oBAAqBn/C,KAAK8tK,4BAA6B9tK,MAC3Ew2D,EAAUx3D,OAAOmgD,GAAG,iBAAkBn/C,KAAK8tK,4BAA6B9tK,MACxEA,KAAKwtK,iBAAiBjrK,GAAQi0D,EACvBA,GAGHu3G,EAAiB/tK,KAAKwtK,iBAAiBjrK,KAE1CwrK,EAAej/C,OAGhB9uH,KAAKjH,OAAOwJ,GAAM8oF,aAAex1F,MAG9B,CAEJ,IAAIk4K,EAMJ,IANIA,EAAiB/tK,KAAKwtK,iBAAiBjrK,KAE1CwrK,EAAej/C,OAGhB9uH,KAAKjH,OAAOwJ,GAAM8oF,aAAex1F,EAC7BmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,uBAAwB,CACjD,IAAM,EAA+D,CACpEC,KAAM,sBACNC,OAAQxB,KACRqqC,SAAU9nC,GAEXvC,KAAKhB,OAAOyC,oBAAoB,sBAAuB,GAIrDzB,KAAK4B,WACR5B,KAAK4B,UAAU6nF,iCAAiCzpF,KAAMuC,MAkBnD,YAAAwoG,YAAP,SAAmBxoG,EAAc1M,EAAekxC,EAAmButC,GAGlE,GAF8Bt0E,KAAKyjG,UAAUlhG,KAErB1M,EAAO,CAE9B,GADAmK,KAAKyjG,UAAUlhG,GAAQ1M,EACnBmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,mBAAoB,CAC7C,IAAM,EAA2D,CAChEC,KAAM,kBACNC,OAAQxB,KACRqqC,SAAU9nC,GAEXvC,KAAKhB,OAAOyC,oBAAoB,kBAAmB,GAIjDzB,KAAK4B,WACR5B,KAAK4B,UAAUiyH,0BAA0B7zH,KAAMuC,GAGhDvC,KAAKwjG,mBAAmBjhG,EAAM1M,EAAOkxC,EAAUutC,KAa1C,YAAAkvB,mBAAP,SAA0BjhG,EAAc1M,EAAekxC,EAAmButC,GACzE,IAAIs5F,EAAsC5tK,KAAKywH,YAAY1pF,GACvDinI,EAA0BhuK,KAAK8lG,iBAAiBvjG,GAEpD,GAAmB,MAAfqrK,GAAuBA,EAAc,GAAK,IAAeI,IAAoBhuK,KAAK4B,UAAW,CAChG,GAAIosK,GAAmBn4K,EAAO,CAC7B,IAAI2gE,EAAuBx2D,KAAK81D,QAAQ,CAAE41F,YAAa1rJ,KAAK8lG,iBAAkBz7D,SAAU9nC,EAAM4tB,KAAM69I,EAAiB99I,GAAIr6B,EAAOo3E,UAAW1qE,GAAQqrK,EAAa5tK,KAAK4B,UAAUmqH,qBAQ/K,OAPa,MAATz3C,GACH9d,EAAU8d,MAAMA,GAEjB9d,EAAUx3D,OAAOmgD,GAAG,mBAAoBn/C,KAAK8tK,4BAA6B9tK,MAC1Ew2D,EAAUx3D,OAAOmgD,GAAG,oBAAqBn/C,KAAK8tK,4BAA6B9tK,MAC3Ew2D,EAAUx3D,OAAOmgD,GAAG,iBAAkBn/C,KAAK8tK,4BAA6B9tK,MACxEA,KAAKytK,oBAAoBlrK,GAAQi0D,EAC1BA,GAGHy3G,EAAoBjuK,KAAKytK,oBAAoBlrK,KAEhD0rK,EAAkBn/C,OAGnB9uH,KAAK8lG,iBAAiBvjG,GAAQ1M,MAG3B,CACJ,IAAIo4K,EAOJ,IAPIA,EAAoBjuK,KAAKytK,oBAAoBlrK,KAEhD0rK,EAAkBn/C,OAGnB9uH,KAAK8lG,iBAAiBvjG,GAAQ1M,EAE1BmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,0BAA2B,CACpD,IAAM,EAAkE,CACvEC,KAAM,yBACNC,OAAQxB,KACRqqC,SAAU9nC,GAEXvC,KAAKhB,OAAOyC,oBAAoB,yBAA0B,GAIxDzB,KAAK4B,WACR5B,KAAK4B,UAAUssK,oCAAoCluK,KAAMuC,KAarD,YAAAw8F,QAAP,SAAex8F,EAAcwiB,EAAYgiB,IAEnC,IAAahiB,IAAS/kB,KAAK4B,YAC/BmjB,EAAO/kB,KAAK4B,UAAU62D,cAAc/Z,MAAM35B,IAGnB/kB,KAAK8xC,MAAMvvC,KACfwiB,IACnB/kB,KAAK8xC,MAAMvvC,GAAQwiB,EACnB/kB,KAAKsmF,SAAS/jF,EAAMwiB,EAAKF,UAAWkiB,KAU/B,YAAAlD,QAAP,SAAethC,GACd,OAAIvC,KAAK4pD,UACD5pD,KAAK4pD,UAAUnmD,MAAM,OAAQ,CACnCshB,KAAM/kB,KAAK8xC,MAAMvvC,GACjBkwC,MAAOlwC,IACLwiB,KAGI/kB,KAAK8xC,MAAMvvC,IAUb,YAAA6iD,YAAP,SAAmB7iD,EAAc1M,GAChC,GAAImK,KAAKwqC,WAAWjoC,KAAU1M,EAAO,CAGpC,GAFAmK,KAAKmkG,eAAgB,EACrBnkG,KAAKwqC,WAAWjoC,GAAQ1M,EACpBmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,mBAAoB,CAC7C,IAAM,EAA2D,CAChEC,KAAM,kBACNC,OAAQxB,KACRqqC,SAAU9nC,EACV1M,MAAOA,GAERmK,KAAKhB,OAAOyC,oBAAoB,kBAAmB,GAIjDzB,KAAK4B,WACR5B,KAAK4B,UAAUskF,6BAA6BlmF,KAAMuC,KAY9C,YAAAyoG,YAAP,SAAmBzoG,EAAc1M,GAC3B,IAAeA,KACnBA,EAAQ,IAAiBA,IAGtBmK,KAAKqqG,WAAW9nG,KAAU1M,IAC7BmK,KAAKqqG,WAAW9nG,GAAQ1M,IAoBnB,YAAAgrD,SAAP,SAAgB//B,GAEf,YAAM+/B,SAAQ,UAAC//B,GAEXA,EAAO64C,cACV35D,KAAK25D,YAAc,IAAY74C,EAAO64C,YAAa,KAGpD,IAAsB74C,EAAO2iF,UAAWzjG,KAAKyjG,WAUzC3iF,EAAO8oC,WACV5pD,KAAKktD,QAAQrM,SAAS//B,EAAO8oC,WAG9B5pD,KAAK4B,UAAYkf,EAAOlf,WAQzB,sBAAW,sBAAO,C,IAAlB,SAAmB/L,GAClB,IAAYmK,KAAK8mB,SAAS,SAACzmB,GAC1BA,EAAOswD,QAAU96D,M,gCAanB,sBAAW,2BAAY,C,IAuBvB,WACC,OAAOmK,KAAKumF,e,IAxBb,SAAwB1wF,GAEvB,GADAmK,KAAKumF,cAAgB1wF,EACjBmK,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,mBAAoB,CAC7C,IAAM,EAA2D,CAChEC,KAAM,kBACNC,OAAQxB,KACRqqC,SAAU,eACVx0C,MAAOA,GAERmK,KAAKhB,OAAOyC,oBAAoB,kBAAmB,GAIjDzB,KAAK4B,WACR5B,KAAK4B,UAAUskF,6BAA6BlmF,KAAM,iB,gCAsB7C,YAAA81D,QAAP,SAAeC,EAA2DhvB,EAAkBivB,GAC3F,OAAO,IAAI,IAAUh2D,KAAM+1D,EAAkBhvB,EAAUivB,GAAQv8D,SAUzD,YAAAq0K,4BAAP,SAAmC3pH,GAClC,IAGI4R,EAHuB5R,EAAM3iD,OAGmBu0D,iBAAiB,GACrE,GAAIA,EAAkB,CACrB,GAAI/1D,KAAKsmD,mBAAqBtmD,KAAKosD,YAC9BpsD,KAAKhB,OAAOsC,UAAU,uBAAwB,CACjD,IAAM,EAA+D,CACpEC,KAAM,sBACNC,OAAQxB,KACRqqC,SAAU0rB,EAAiBkX,WAG5BjtE,KAAKhB,OAAOyC,oBAAoB,sBAAuB,GAIrDzB,KAAK4B,WACR5B,KAAK4B,UAAU6nF,iCAAiCzpF,KAAM+1D,EAAiBkX,aAanE,YAAA32E,SAAP,SAAgB80G,GAEf,IAAK,IAAI/uG,EAAI,EAAGgV,EAAM+5F,EAAOjvG,OAAQE,EAAIgV,EAAKhV,IAAK,CAClD,IAAItD,EAASiH,KAAKjH,OAAOqyG,EAAO/uG,IAChC,IAAKtD,IAAW,IAAeA,EAAOlD,OACrC,OAAO,EAGT,OAAO,GAWR,sBAAW,oBAAK,C,IAAhB,WACC,OAAKmK,KAAKmN,OAIFnN,KAAKmN,OAAOy3G,MAAQ,EAHpB,G,gCAYT,sBAAW,0BAAW,C,IAAtB,WACC,OAAO5kH,KAAKswH,c,IASb,SAAuBz6H,GACtBmK,KAAKswH,aAAez6H,G,gCAQrB,YAAA0tF,UAAA,SAAUljF,GACLA,EAAO8uD,UAAY9uD,EAAO8uD,UAAYnvD,MACzC,IAAcK,EAAO8uD,SAASroC,QAASzmB,GAEnCL,KAAK6rD,SACTxrD,EAAO4rD,KAAK,GAGTjsD,KAAK4mD,UACRvmD,EAAO4rD,OAERjsD,KAAK8mB,QAAQtoB,KAAK6B,GAClBA,EAAO8uD,SAAWnvD,MAEpB,EAnjCA,CAA8B,M,eCnJ9B,IAAIokJ,EAAS3uJ,EAAOC,QAA2B,oBAAVohB,QAAyBA,OAAOvf,MAAQA,KACzEuf,OAAwB,oBAAR1Q,MAAuBA,KAAK7O,MAAQA,KAAO6O,KAE3DqrB,SAAS,cAATA,GACc,iBAAP08I,MAAiBA,IAAM/pB,I,gBCLlC,IAAI7uI,EAAQ5f,EAAQ,IAARA,CAAqB,OAC7BsK,EAAMtK,EAAQ,KACdyP,EAASzP,EAAQ,KAAayP,OAC9BgpK,EAA8B,mBAAVhpK,GAET3P,EAAOC,QAAU,SAAU6M,GACxC,OAAOgT,EAAMhT,KAAUgT,EAAMhT,GAC3B6rK,GAAchpK,EAAO7C,KAAU6rK,EAAahpK,EAASnF,GAAK,UAAYsC,MAGjEgT,MAAQA,G,gBCVjB,IAAI84J,EAAY14K,EAAQ,KAkCpB4oD,EAjCiB5oD,EAAQ,IAiCjB24K,EAAe,SAAShsK,EAAQwe,EAAQytJ,GAClDF,EAAU/rK,EAAQwe,EAAQytJ,MAG5B94K,EAAOC,QAAU6oD,G,kNCsMjB,cAyUC,mBAGC,cAAO,K,OA/TD,EAAAquC,WAAkC,GAmC/B,EAAA4hF,aAAgD,GAehD,EAAAv5D,eAAyB,EAczB,EAAAqd,eAAmC,GA2BnC,EAAArxB,kBAA4B,GAqB5B,EAAAniD,OAAiB,EAOjB,EAAAC,KAAe,EAoBlB,EAAAk/C,gBAA0B,EAiB1B,EAAA1C,oBAA8B,EAQ9B,EAAAC,kBAA+C,IAgB/C,EAAAizE,oBAA8B,GAQ9B,EAAA9gG,aAAuB,EAOvB,EAAA+gG,gBAA0B,EAQ1B,EAAAhlF,kBAA4B,EAQ5B,EAAAilF,kBAA4B,EAc5B,EAAAn9D,sBAAgC,EAUhC,EAAAua,oBAAiD,IAUjD,EAAApa,wBAAkC,EAWlC,EAAAC,4BAAsC,EAOtC,EAAAqkC,uBAAiC,EA0C9B,EAAAvzB,kBAA4B,EAI5B,EAAA72B,WAAqB,EAW9B,EAAK9wC,UAAY,YAEjB,EAAKs4D,aAAe,EACpB,EAAKD,aAAe,EAEpB,EAAKw7D,WAAa,IAAI,IAA8B,EAAKlqF,kBACzD,EAAKkqF,WAAW5vK,OAAOmgD,GAAG,WAAY,EAAK0vH,oBAAqB,GAAM,GACtE,EAAKD,WAAW5vK,OAAOmgD,GAAG,UAAW,EAAK2vH,sBAAuB,GAAM,GACvE,EAAK5lH,WAAW1qD,KAAK,IAAI,IAAa,EAAKowK,aAC3C,EAAK1lH,WAAW1qD,KAAK,EAAKowK,WAAW3tH,UAErC,EAAKy5B,iBAGL,EAAK2R,UAAUrtF,OAAOmgD,GAAG,WAAY,EAAK4vH,oBAAqB,GAAM,GAGrE,EAAK7lH,WAAW1qD,KAAK,IAAI,IAAc,EAAK8zH,iBAE5C,EAAKxzE,OAAS,EACd,EAAKC,KAAO,EAEZ,EAAKiwH,mBAAqB,EAG1B,EAAKrlH,a,EAorDP,OA1hE+B,iBAgXpB,YAAA+6B,eAAV,WACC,OAAO,IAAI,KAUF,YAAAqqF,oBAAV,SAA8B5qH,GACdA,EAAM/E,SACZy0D,aAAe7zG,MASlB,YAAA6zH,0BAAP,SAAiC1kE,EAA8B5sD,GACzDvC,KAAK2uK,kBACT3uK,KAAK4pF,uBASA,YAAAH,iCAAP,SAAwCt6B,EAA8B5sD,KAS/D,YAAA2rK,oCAAP,SAA2C/+G,EAA8B5sD,KASlE,YAAAsrK,oCAAP,SAA2C1+G,EAA8B5sD,KASlE,YAAA2jF,6BAAP,SAAoC/2B,EAA8B5sD,KAaxD,YAAA8mG,gBAAV,SAA0Bl6C,EAA6BwK,GAAvD,WACC,GAAIxK,EAAU,CACRwK,IACJA,EAAc,IAIfxK,EAASwK,YAAcA,EAEvB,IAAI,GAAgB,EAEpB,IAAa35D,KAAK4sF,YAAY,SAAC9rF,EAAKw5D,GACnC,IAAM20G,EAA4BnuK,EAE9BjL,EAAmB8jE,EAAaW,GAYpC,GAVI,EAAK1Q,WACJ,EAAKA,UAAUtoD,UAAU,sBAC5BzL,EAAQ,EAAK+zD,UAAUnmD,MAAM,mBAAoB,CAChDgvC,MAAOw8H,EACPp5K,MAAOA,EACPs5D,SAAUA,IACRt5D,OAID,IAAeA,GAGlB,GAFA,GAAgB,EAEZs5D,EAASqhE,YAAYy+C,GAAY,CACpC,IAAIhuH,EAAW,EAAKyjC,iBACpBzjC,EAASJ,SAAS,EAAK2hD,YAAYvhD,UACnC,IAAI7qC,EAAW,IAAI,IAA8B6qC,GACjD7qC,EAASpX,OAAOmgD,GAAG,WAAY,EAAK0vH,oBAAqB,GAAM,GAC/Dz4J,EAASpX,OAAOmgD,GAAG,UAAW,EAAK2vH,sBAAuB,GAAM,GAChE,EAAKx8C,eAAe9zH,KAAK,IAAI,IAAa4X,IAE1C,IADA,IAAIjY,EAAQtI,EAAMsG,OACTE,EAAI,EAAGA,EAAI8B,EAAO9B,IAAK,CAC/B,IAAIkyG,EAAc14G,EAAMwG,GACpB6yK,EAAmC94J,EAASjT,SAChD+rK,EAAc/hK,OAASgiD,EACvB,EAAKk6C,gBAAgB6lE,EAAe3gE,GAEdp/C,EACX8/G,GAAkB74J,OAIxB+4C,EAAU8/G,GAAap5K,KAKhC,IAAamK,KAAKwnD,gBAAgB,SAAC1mD,EAAKw5D,GACvC,IAAM11D,EAAoB9D,EACtBjL,EAAmB8jE,EAAaW,GAEhC,IAAezkE,KAClB,GAAgB,EAChBs5D,EAAS/J,YAAYxgD,EAAG/O,OAKrBmK,KAAK0iH,kBAAqB,GAC9B1iH,KAAKwiG,YAAY/2E,OAAO0jC,KAYjB,YAAAy9C,eAAV,SAAyBz9C,GAAzB,WACC,GAAIA,EAAU,CAEb,IAAI,EAAcA,EAASwK,YAE3B,IAAa35D,KAAK4sF,YAAY,SAAC9rF,EAAKw5D,GACnC,IAAM20G,EAA4BnuK,EAE9BjL,EAAmB,EAAaykE,IAEhC,EAAK1Q,YACR/zD,EAAQ,EAAK+zD,UAAUnmD,MAAM,mBAAoB,CAChDgvC,MAAOw8H,EACPp5K,MAAOA,EACPs5D,SAAUA,IACRt5D,OAGA,IAAeA,MACds5D,EAASqhE,YAAYy+C,GACD9/G,EACkD8/G,GAChE/nK,MAAK,SAACynD,GACd,EAAKi+C,eAAej+C,MAKfQ,EAAU8/G,GAAap5K,MAKhC,IAAamK,KAAKwnD,gBAAgB,SAAC1mD,EAAKw5D,GACvC,IAAM11D,EAAoB9D,EACtBjL,EAAmB,EAAaykE,GAChC,IAAezkE,IAClBs5D,EAAS/J,YAAYxgD,EAAG/O,QAalB,YAAAk6F,qBAAV,WAGC,IAFA,IAAI5xF,EAAQ6B,KAAKyoF,SAERpsF,EAAI2D,KAAKooF,WAAY/rF,EAAI8B,EAAO9B,IAAK,CAC7C,IAAM8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,GAGrC8yD,GACHnvD,KAAK2kF,oBAAoBx1B,KAUrB,YAAA9E,SAAP,WACCrqD,KAAK+vF,uBACL,YAAM1lC,SAAQ,YASR,YAAAs6B,oBAAP,SAA2Bx1B,KASpB,YAAAw9B,QAAP,SAAe4hB,EAAgCC,EAAsBC,GAArE,WAmBC,IAhBKzuG,KAAK2tE,aAAe3tE,KAAK40D,SAC7B50D,KAAKi1G,eAAiBj1G,KAAKqB,KAAKlF,QAG7BsyG,IACCF,aAAuBl3G,MAE1B,IAAYk3G,GAAa,SAACp/C,GACzB,EAAK9tD,KAAK7C,KAAK2wD,MAIhBnvD,KAAKqB,KAAK7C,KAAK+vG,IAIbvuG,KAAK40D,OACR50D,KAAK47G,WAAWpN,EAAaC,QAG7B,GAAI,IAAeD,GAClB,KAAOA,EAAc,GACpBxuG,KAAKqB,KAAK0xC,QACVy7D,IAKHxuG,KAAK06E,kBAQC,YAAAkhC,WAAP,SAAkBz9G,EAA+BswG,GAChD,GAAI,IAAetwG,IAAUA,EAAQ,EAAG,CACvC,KAAOA,EAAQ,GAAG,CACjB,IAAIgxD,EAAWnvD,KAAKwiG,YAAYriD,SAAS,GACrCgP,GACHnvD,KAAKwiG,YAAY/2E,OAAO0jC,GAGzBnvD,KAAKqsF,UAAUnlF,MAAK,SAAColF,GACpB,IAAKA,EAASjrF,MAAgC,GAAxBirF,EAASjrF,KAAKlF,OAAa,CAChD,IAAI,EAAWmwF,EAASkW,YAAYriD,SAAS,GACzC,GACHmsC,EAASkW,YAAY/2E,OAAO,OAI3BgjF,GACHzuG,KAAKqB,KAAK0xC,QAGP/yC,KAAKi1G,eAAiB,GACzBj1G,KAAKi1G,iBAGN92G,IAGD6B,KAAK4pF,wBASA,YAAAlP,eAAP,WACK16E,KAAKmqD,UAAYnqD,KAAKmhD,aAK1B,IAASx/C,uBAAuB3B,MAChC,IAAOoqD,eACPpqD,KAAK2tE,aAAc,EAEnB,IAAW3tE,KAAKqsF,UAAUhnF,YAAY,SAAC/K,GACtCA,EAAEsvF,2BAWG,YAAA+7B,oBAAP,WACC,IAAW3lH,KAAKqsF,UAAUhnF,YAAY,SAAC/K,GACtCA,EAAEovD,iBAUG,YAAAkgC,oBAAP,WACK5pF,KAAKmqD,UAAYnqD,KAAKmhD,aAK1B,IAAY,IAAS1hD,iBAAkBO,MACvC,IAAOoqD,eAEPpqD,KAAK2uK,kBAAmB,EAExB,IAAW3uK,KAAKqsF,UAAUhnF,YAAY,SAAC/K,GACtCA,EAAEsvF,2BAWG,YAAA4e,oBAAP,WACKxoG,KAAKmqD,UAAYnqD,KAAKmhD,aAK1BnhD,KAAK0pF,kBAAmB,EACxB,IAAY,IAAShqF,iBAAkBM,MACvC,IAAOoqD,iBAUD,YAAA43C,kBAAP,WACC,IAAc,IAAStiG,iBAAkBM,MACzCA,KAAK0pF,kBAAmB,EAEpB1pF,KAAKooF,YAAcpoF,KAAK4uG,iBAAmB5uG,KAAKyoF,UAAYzoF,KAAK6uG,gBACpE7uG,KAAKuoF,oBACLvoF,KAAKmvK,kBACLnvK,KAAK0pD,aACL1pD,KAAKyB,oBAAoB,sBAUjB,YAAA87G,UAAV,WACCv9G,KAAKy9G,mBAAqBz9G,KAAKooF,WAC/BpoF,KAAK09G,iBAAmB19G,KAAKyoF,UASpB,YAAAF,kBAAV,WACCvoF,KAAKu9G,YACLv9G,KAAK4uG,gBAAkB5uG,KAAKooF,WAC5BpoF,KAAK6uG,cAAgB7uG,KAAKyoF,UASjB,YAAA0mF,gBAAV,WAGC,IADA,IAAIhxK,EAAQ6B,KAAKyoF,SACRpsF,EAAY2D,KAAKooF,WAAY/rF,EAAI8B,EAAO9B,IAAK,EAGjD8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,MAEtC8yD,EAAS/C,YAAa,GAIxB,IAAS/vD,EAAI,EAAGA,EAAI2D,KAAKooF,WAAY/rF,IAAK,EACrC8yD,EAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,IAC9B+vD,YAAa,EAGvB,IAAS/vD,EAAI2D,KAAKyoF,SAAUpsF,EAAI2D,KAAKgkF,UAAU7nF,OAAQE,IAAK,CAC3D,IAAI8yD,KAAWnvD,KAAKgkF,UAAU7jC,SAAS9jD,IAC9B+vD,YAAa,IAQjB,YAAAk+B,kBAAP,WACKtqF,KAAKmqD,UAAYnqD,KAAKmhD,aAK1B,IAAY,IAAS3hD,gBAAiBQ,MACtC,IAAOoqD,eAEPpqD,KAAK0uK,gBAAiB,EAEtB,IAAW1uK,KAAKqsF,UAAUhnF,YAAY,SAAC/K,GACtCA,EAAEgwF,yBAQG,YAAAooC,gBAAP,sBACC,IAAc,IAASlzH,gBAAiBQ,MACxC,IAAWA,KAAKwiG,YAAYn9F,YAAY,SAAC8pD,GACpCA,GACH,EAAKy9C,eAAez9C,OAQhB,YAAAtP,QAAP,sBACC7/C,KAAKwiG,YAAYvhD,SAAS0U,OAAOpsD,QACjC,IAAavJ,KAAKwuK,cAAc,SAAC1tK,EAAKggB,GACrC,EAAKsxC,cAActxC,MAEpB,YAAM++B,QAAO,YAMP,YAAAupD,YAAP,WACCppG,KAAKwiG,YAAYvhD,SAAS0U,OAAOpsD,QAEjC,IAAYvJ,KAAKsyH,gBAAgB,SAACh4H,GACjCA,EAAEulD,aAIH,IAAW7/C,KAAKqsF,UAAUhnF,YAAY,SAACinF,GACtCA,EAAS8c,iBAGVppG,KAAKsyH,eAAen2H,OAAS,EAE7B6D,KAAK83E,iBAAcprE,EACnB1M,KAAKgpG,eAAYt8F,EAGjB1M,KAAKwiG,YAAYj5F,QAEjBvJ,KAAKwiG,YAAYvhD,SAAS0U,OAAOpsD,QAE7BvJ,KAAK6iG,WACR7iG,KAAK6iG,UAAUt5F,SAKP,YAAA+/F,YAAV,SAAsB3vC,GACrB,OAAO35D,KAAKwiG,YAAYr/F,UAQlB,YAAAg/F,aAAP,WAOC,GANAniG,KAAKyB,oBAAoB,uBAEzBzB,KAAK2tE,aAAc,EAEnB,IAAS7rE,4BAA4B9B,OAEjCA,KAAKosD,WAAT,CAaA,GATApsD,KAAKi2I,uBAAyB,EAE9Bj2I,KAAK4uG,qBAAkBliG,EACvB1M,KAAK6uG,mBAAgBniG,EAGrB1M,KAAK83E,iBAAcprE,EACnB1M,KAAKgpG,eAAYt8F,EAEb1M,KAAK4sF,WAAWvrF,MAAQrB,KAAKmvD,SAAU,CAC1C,IAAIwK,EAAmB35D,KAAKmvD,SAASwK,YACrC35D,KAAK4nC,MAAQ+xB,EAAY35D,KAAK4sF,WAAWvrF,MAW1C,GAJ4B,IAAxBrB,KAAKi1G,gBAAwBj1G,KAAKqB,KAAKlF,OAAS,GACnD6D,KAAKopG,cAGFppG,KAAKqB,KAAKlF,OAAS,EAAG,CACzB,IAAIkxE,EAAuCrtE,KAAKqtE,UAGhD,IAAWrtE,KAAKqsF,UAAUhnF,YAAY,SAACinF,GAEtCA,EAASxU,iBAAcprE,EACvB4/E,EAAS0c,eAAYt8F,KAStB,IANA,IAAI0iK,EAAkB,EAClB5qE,EAAoB9/E,KAAK+e,MAEzBpnC,EAAI2D,KAAKi1G,eACT1xG,EAAIvD,KAAKqB,KAAKlF,O,aAGjB,IAAIoyG,EAAc,EAAKltG,KAAKhF,GAC5B,GAAI,EAAKwvF,UAAW,CACnB,IAAI18B,EAA8B,EAAKm6C,YAAYiF,GACnD,EAAKlF,gBAAgBl6C,EAAUo/C,GAahC,IAVA,EAAKliB,UAAUnlF,MAAK,SAAColF,GACpB,GAA4B,GAAxBA,EAASjrF,KAAKlF,OAAa,CAC9B,IAAIkzK,EAA6B/iF,EAASgd,YAAYiF,GACtDjiB,EAAS+c,gBAAgBgmE,EAAkB9gE,OAO9B,OAHf6gE,KAICA,EAAU,EACY1qJ,KAAK+e,MAAQ+gE,EAErB,EAAKiqE,qBACdpyK,EAAI,EAAKgF,KAAKlF,OAAS,I,OAC1B,EAAK84G,eAAiB54G,EAAI,EAGtBgxE,IACChxE,EAAI,EAAKgF,KAAKlF,OAAS,KAAQkxE,EAAUxhB,UAI5CwhB,EAAUw9E,SAAWxuJ,EAAI,EAAKgF,KAAKlF,SAIrC,EAAK85I,uBAAyB55I,EAAI,EAAKgF,KAAKlF,OAE5CE,EAAI,EAAKgF,KAAKlF,OACd,EAAKu+E,iB,uBAtCDr+E,EAAIkH,EAAGlH,IAAG,C,gDA6CdgxE,IACHA,EAAUw9E,SAAW,GAGtB7qJ,KAAKqsF,UAAUnlF,MAAK,SAAColF,GAChBA,EAAStgC,QACZsgC,EAASrgC,KAAK,MAKjBjsD,KAAKi2I,uBAAyB,EAC9Bj2I,KAAKi1G,eAAiB,EAEtBj1G,KAAK4pF,sBAEA5pF,KAAKyoD,0BACTzoD,KAAKkqD,wBAGNlqD,KAAKmB,SAAS,mBAQR,YAAA8mF,kBAAP,WACC,IAAc,IAASxoF,iBAAkBO,MAEzCA,KAAK2uK,kBAAmB,EAExB3uK,KAAKwoG,sBACLxoG,KAAK0pD,aACL1pD,KAAKmB,SAAS,uBAYf,sBAAW,mBAAI,C,IA0Bf,WAIC,OAHKnB,KAAK4nC,QACT5nC,KAAK4nC,MAAQ,IAET5nC,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,OAAQzD,KAAK4nC,OAHlC5nC,KAAK4nC,O,IA/Bd,SAAgB/xC,GACfmK,KAAK2uG,QAAQ94G,I,gCAGJ,YAAA84G,QAAV,SAAkB94G,GAIjBmK,KAAKi1G,eAAiB,EACtBj1G,KAAKopG,cACLppG,KAAK4nC,MAAQ/xC,EACTA,GAASA,EAAMsG,OAAS,EAC3B6D,KAAK06E,kBAGL16E,KAAKyB,oBAAoB,uBACzBzB,KAAKmB,SAAS,mBAgCT,YAAAmuK,cAAP,SAAqBjlI,GAArB,WAeC,OAdK,IAAerqC,KAAKwuK,aAAankI,MACrCrqC,KAAKwuK,aAAankI,GAAY,IAAI,IAClCrqC,KAAKwuK,aAAankI,GAAUzoC,UAAY5B,KACxCA,KAAKuvK,oBAAoBvvK,KAAKwuK,aAAankI,GAAWA,GACtDrqC,KAAKwuK,aAAankI,GAAU6iB,QAAQ5jD,IAAI,cAAc,SAAC8mB,GACtD,OAAO,EAAKkrF,qBAAqBlrF,MAElCpwB,KAAKwuK,aAAankI,GAAU6iB,QAAQ5jD,IAAI,gBAAgB,SAAC8mB,GACxD,OAAO,EAAKorF,uBAAuBprF,MAEpCpwB,KAAKhB,OAAOmgD,GAAG,UAAU,WACxB,EAAKqwH,SAASnlI,KACZrqC,MAAM,IAEHA,KAAKwuK,aAAankI,IAS1B,sBAAW,yBAAU,C,IAerB,WAIC,OAHKrqC,KAAKwuK,aAAL,MACJxuK,KAAKsvK,cAAc,QAEbtvK,KAAKwuK,aAAL,M,IAnBR,SAAsB34K,GAAtB,WACKmK,KAAKwuK,aAAL,MACHxuK,KAAKoyD,cAAcpyD,KAAKwuK,aAAL,MAEpBxuK,KAAKwuK,aAAL,KAA4B34K,EAC5BmK,KAAKwuK,aAAL,KAA0B5sK,UAAY5B,KACtCA,KAAKhB,OAAOmgD,GAAG,UAAU,WACxB,EAAKqwH,SAAS,UACZxvK,MAAM,GACTA,KAAKuvK,oBAAoB15K,EAAO,S,gCAkBvB,YAAA25K,SAAV,SAAmBnlI,GAClBrqC,KAAKwuK,aAAankI,GAAUolI,QAYnB,YAAAn0D,qBAAV,SAA+BzlH,GAC9B,OAAOA,GAYE,YAAA2lH,uBAAV,SAAiC3lH,GAChC,OAAOA,GAYE,YAAA0lH,yBAAV,SAAmC/iE,EAAgBo0C,EAAyC8iF,GAM3F,OALA,IAAYA,GAAY,SAAC75K,GACpB+2F,EAAW/2F,KAAuD,IAA7C,IAAe2iD,EAAMo0C,EAAW/2F,KACxD2iD,EAAKh6C,KAAKouF,EAAW/2F,OAGhB2iD,GAQE,YAAA+2H,oBAAV,SAA8BzpF,EAAgBz7C,GAA9C,WACCy7C,EAAG9mF,OAAOmgD,GAAG,WAAW,SAACyZ,GACxB,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,UAGpBn+I,GAAW,GACdo5E,EAAG9mF,OAAOmgD,GAAG,eAAe,SAACyZ,GAC5B,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,YAEpBn+I,GAAW,GACdo5E,EAAG9mF,OAAOmgD,GAAG,aAAa,SAACyZ,GAC1B,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,WAEpBn+I,GAAW,GACdo5E,EAAG9mF,OAAOmgD,GAAG,cAAc,SAACyZ,GAC3B,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,YAEpBn+I,GAAW,GACdo5E,EAAG9mF,OAAOmgD,GAAG,SAAS,SAACyZ,GACtB,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,UAEpBn+I,GAAW,GACdo5E,EAAG9mF,OAAOmgD,GAAG,SAAS,SAACyZ,GACtB,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,GAEtB,EAAK7pF,UAAUpI,EAAGmN,gBAChBr5D,GAAW,GAEV29B,GACHy7C,EAAG9mF,OAAOmgD,GAAG,QAAQ,SAACyZ,GACrB,IAAMyU,EAAY,EAAKA,UACnBA,IACHA,EAAUw9E,SAAW,GAEN,QAAZxgH,GAAuB,IAAcuuB,EAAGv3D,QAC3Cu3D,EAAGv3D,KAAO,CAACu3D,EAAGv3D,OAEXykF,EAAG6pF,aAA2B,QAAZtlI,GAAsB,EAAKhpC,KAAKlF,OACrD,EAAKwwF,QAAQ/zB,EAAGv3D,KAAMykF,EAAG8pF,UAAYh3G,EAAGv3D,KAAKlF,OAAS,GAE9C2pF,EAAG+pF,mBAAiC,QAAZxlI,GAAsB,EAAKhpC,KAAKlF,QAEhE,IAAY,EAAKkF,MAAM,SAAC8oC,EAAMxiC,GACzB,IAAeixD,EAAGv3D,KAAKsG,KAC1B,IAAawiC,GAAM,SAACrpC,EAAKsvB,GACpB,IAAewoC,EAAGv3D,KAAKsG,GAAO7G,MACjCqpC,EAAKrpC,GAAO83D,EAAGv3D,KAAKsG,GAAO7G,UAK/B,EAAKwpF,qBAGC,EAAMjgD,GAAYuuB,EAAGv3D,SAgB/B,sBAAW,yBAAU,C,IAQrB,WAKC,OAJKrB,KAAK8vK,cACT9vK,KAAK8vK,YAAc,IAAI,IACvB9vK,KAAK8vK,YAAYluK,UAAY5B,MAEvBA,KAAK8vK,a,IAbb,SAAsBj6K,GACrBmK,KAAK8vK,YAAcj6K,EACnBmK,KAAK8vK,YAAYluK,UAAY5B,M,gCA+BvB,YAAA49F,KAAP,SAAY7jG,EAAekkG,EAAiCx4B,EAA4Bk4B,GAAxF,gBAA2B,IAAAM,OAAA,QAAiC,IAAAx4B,OAAA,GAC3D,IAAIhsE,EAAgCM,EAAMN,MACtCG,EAAMG,EAAMH,IACZs6B,EAAWn6B,EAAMm6B,SAuBrB,GArBIn6B,EAAMN,OAASM,EAAMH,MACxBG,EAAMN,MAAQM,EAAMN,MAAQ,GAAMuG,KAAKugG,cACvCxmG,EAAMH,IAAMG,EAAMH,IAAM,GAAMoG,KAAKugG,eAGpB,OAAZrsE,GAA4B,GAAPt6B,GAAqB,GAATH,GAChCA,EAAQuG,KAAKvG,QAChBy6B,EAAW,SAIG,SAAZA,GAAgC,GAATz6B,GACtBG,EAAMoG,KAAKpG,MACds6B,EAAW,OAIR,IAAeypE,KACnBA,EAAc39F,KAAKgvK,qBAGf,IAAev1K,KAAW,IAAeG,GAC7C,MAAO,CAAEH,MAAOuG,KAAKvG,MAAOG,IAAKoG,KAAKpG,KAGvC,GAAIoG,KAAK+vK,aAAet2K,GAASuG,KAAKgwK,WAAap2K,EAAK,CAEvD,IAAI2mG,EAAwBvgG,KAAKugG,cAAgBvgG,KAAKqzG,aAClD4C,EAAwBj2G,KAAKugG,cAAgBvgG,KAAKozG,aAkEtD,GA9DgB,SAAZl/E,GAECl0B,KAAKozG,aAAe,GAEnB,GAAKx5G,EAAMH,GAASw8G,IACvBr8G,EAAMH,EAAQ,EAAIw8G,GAKhB,GAAKr8G,EAAMH,GAAS8mG,IACvB3mG,EAAMH,EAAQ,EAAI8mG,GAGf3mG,EAAM,GAAKA,EAAMH,EAAQ,EAAI8mG,IAEhC9mG,EAAQG,EAAM,EAAI2mG,KAMfvgG,KAAKozG,aAAe,GAEnB,GAAKx5G,EAAMH,GAASw8G,IACvBx8G,EAAQG,EAAM,EAAIq8G,GAKhB,GAAKr8G,EAAMH,GAAS8mG,IACvB9mG,EAAQG,EAAM,EAAI2mG,GAEf9mG,EAAQ,GAAKG,EAAMH,EAAQ,EAAI8mG,IAElC3mG,EAAMH,EAAQ,EAAI8mG,IAIhB9mG,GAAUkkG,IACblkG,GAAUkkG,GAGP,GAAK/jG,EAAMH,GAAS8mG,IACvB3mG,EAAMH,EAAQ,EAAI8mG,GAGf3mG,EAAM,EAAI+jG,IACb/jG,EAAM,EAAI+jG,GAGP,GAAK/jG,EAAMH,GAAS8mG,IACvB9mG,EAAQG,EAAM,EAAI2mG,GAGnBvgG,KAAKgwK,UAAYp2K,EACjBoG,KAAK+vK,YAAct2K,EAEnBuG,KAAKi+F,eAAiBA,EAEtBj+F,KAAKyB,oBAAoB,sBAErBzB,KAAKu7F,oBAAsB,IAAM91B,EAAW,CAG/C,IAAI4sD,EAAkDryH,KAAKqyH,qBAC3D,GAAIA,GAAwBA,EAAqBw4B,SAAW,EAAG,CAC9D,IAAIzuI,EAAUi2G,EAAqBt8D,iBACnC,GAAI35C,EAAQjgB,OAAS,EAAG,CACvB,GAAIigB,EAAQ,GAAG8T,IAAMz2B,GAAS2iB,EAAQ,GAAG8T,IAAMt2B,EAC9C,MAAO,CAAEH,MAAOA,EAAOG,IAAKA,GAGvBy4H,EAAqBxwE,cACzBwwE,EAAqBvD,QAMrB9uH,KAAKqyH,sBACRryH,KAAKqyH,qBAAqBruD,OAG3BquD,EAAuBryH,KAAK81D,QAAQ,CAAC,CAAEzrB,SAAU,QAASna,GAAIz2B,GAAS,CAAE4wC,SAAU,MAAOna,GAAIt2B,IAAQoG,KAAKu7F,oBAAqBv7F,KAAKw7F,mBACrIx7F,KAAKqyH,qBAAuBA,EAExBA,IAAyBA,EAAqBl7D,aACjDk7D,EAAqBrzH,OAAOmgD,GAAG,kBAAkB,WAChD,EAAK19C,oBAAoB,uBAI1BzB,KAAKyB,oBAAoB,yBAK1BzB,KAAKvG,MAAQA,EACbuG,KAAKpG,IAAMA,EACXoG,KAAKmB,SAAS,oBAIhB,MAAO,CAAE1H,MAAOA,EAAOG,IAAKA,IAiBtB,YAAAiwG,cAAP,SAAqBzhB,EAAoBK,EAAkBwV,EAA0Bx4B,GACpF,GAAK,IAAe2iB,IAAgB,IAAeK,GAAnD,CAIA,IAAIhvF,EAAgB2uF,EAAapoF,KAAKgkF,UAAU7nF,OAC5CvC,EAAc6uF,EAAWzoF,KAAKgkF,UAAU7nF,OAE5C6D,KAAK49F,KAAK,CAAEnkG,MAAOA,EAAOG,IAAKA,GAAOqkG,EAAgBx4B,KASvD,sBAAW,yBAAU,C,IAArB,WACC,OAAO,IAAiB,GAAKzlE,KAAKpG,IAAMoG,KAAKvG,OAAQ,EAAGuG,KAAKugG,gB,gCAsB9D,sBAAW,4BAAa,C,IAaxB,WACC,OAAOvgG,KAAKujD,iBAAiB,kB,IAd9B,SAAyB1tD,GACpBmK,KAAKopD,iBAAiB,gBAAiBvzD,KAC7B,GAATA,IACHmK,KAAKgvK,mBAAqB,GAG3BhvK,KAAKwoG,wB,gCAmBP,sBAAW,iCAAkB,C,IAU7B,WACC,OAAOxoG,KAAKujD,iBAAiB,uB,IAX9B,SAA8B1tD,GACzBmK,KAAKopD,iBAAiB,qBAAsBvzD,IAC/CmK,KAAKwoG,uB,gCAkBP,sBAAW,yBAAU,C,IAqBrB,WAKC,OAJK,IAAexoG,KAAK83E,eACxB93E,KAAK83E,YAAc,GAGb93E,KAAK83E,a,IA1Bb,SAAsBjiF,GACrBmK,KAAK83E,YAAc,IAAiBvgF,KAAKQ,MAAMlC,GAAQ,EAAGmK,KAAKgkF,UAAU7nF,QAEzE6D,KAAKvG,MAAQuG,KAAK2nG,gBAAgB3nG,KAAK83E,c,gCASjC,YAAA6vB,gBAAP,SAAuBhgG,GACtB,OAAOA,EAAQ3H,KAAKgkF,UAAU7nF,QAsB/B,sBAAW,uBAAQ,C,IAWnB,WACC,IAAIgC,EAAQ6B,KAAKgkF,UAAU7nF,OAI3B,QAHK,IAAe6D,KAAKgpG,YAAchpG,KAAKgpG,UAAY7qG,KACvD6B,KAAKgpG,UAAY7qG,GAEX6B,KAAKgpG,W,IAhBb,SAAoBnzG,GACnBmK,KAAKgpG,UAAY,IAAiBzxG,KAAKQ,MAAMlC,GAAQ,EAAGmK,KAAKgkF,UAAU7nF,QAEvE6D,KAAKpG,IAAMoG,KAAK2nG,gBAAgB3nG,KAAKgpG,Y,gCAuBtC,sBAAW,oBAAK,C,IAoBhB,WACC,OAAKhpG,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,QAASzD,KAAK8+C,QAHnC9+C,KAAK8+C,Q,IAtBd,SAAiBjpD,GAMhB,GAAImK,KAAK8+C,QAAUjpD,EAAO,CACzBmK,KAAK8+C,OAASjpD,EACd,IAAIuyF,EAAa7wF,KAAKM,IAAI,EAAGN,KAAKU,MAAM+H,KAAKgkF,UAAU7nF,OAAStG,IAAU,GAC1EmK,KAAK83E,YAAcvgF,KAAKK,IAAIwwF,EAAYpoF,KAAKgkF,UAAU7nF,QACvD6D,KAAKwoG,sBACLxoG,KAAK0pD,aACL1pD,KAAKyB,oBAAoB,gBACzBzB,KAAKmB,SAAS,qB,gCAuBhB,sBAAW,kBAAG,C,IAoBd,WACC,OAAKnB,KAAK4pD,UAIF5pD,KAAK4pD,UAAUnmD,MAAM,MAAOzD,KAAK++C,MAHjC/+C,KAAK++C,M,IAtBd,SAAelpD,GAOVmK,KAAK++C,MAAQlpD,IAChBmK,KAAK++C,KAAOlpD,EACZmK,KAAKgpG,UAAYzxG,KAAKK,IAAIoI,KAAKgkF,UAAU7nF,OAAQ5E,KAAKc,KAAK2H,KAAKgkF,UAAU7nF,OAAStG,IAAU,GAC7FmK,KAAKwoG,sBACLxoG,KAAK0pD,aACL1pD,KAAKyB,oBAAoB,cACzBzB,KAAKmB,SAAS,qB,gCAuBN,YAAA6rD,mBAAV,WACC,YAAMA,mBAAkB,WACxB,IAASlrD,4BAA4B9B,MACrC,IAAc,IAASP,iBAAkBO,MACzC,IAAc,IAASN,iBAAkBM,MACzC,IAAc,IAASR,gBAAiBQ,OAQzC,sBAAW,wBAAS,C,IAApB,WACC,GAA8B,IAA1BA,KAAKihG,kBAAyB,CACjC,IAAIjd,EAAYhkF,KAAKgjG,SAAS9jD,OAAOl/C,KAAKihG,mBAC1C,GAAIjd,EACH,OAAOA,EAGT,OAAOhkF,KAAK4uK,Y,gCAUb,sBAAW,uBAAQ,C,IAAnB,WAIC,OAHK5uK,KAAK6iG,YACT7iG,KAAK6iG,UAAY,IAAI,KAEf7iG,KAAK6iG,W,gCAaN,YAAA1B,WAAP,SAAkB5yC,GAEjB,GAAIvuD,KAAKihG,mBAAqB1yC,EAAI,CAEjC,GADcvuD,KAAKgjG,SAAS9jD,OAAOqP,GAmClC,OAdAvuD,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAAS/C,YAAa,KAGvBpsD,KAAKihG,kBAAoB1yC,EAEzBvuD,KAAKwoG,sBAELxoG,KAAK4uG,qBAAkBliG,EAEvB1M,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAAS/C,YAAa,MAGhB,EAjCP,GAA8B,IAA1BpsD,KAAKihG,kBAeR,OAdAjhG,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAAS/C,YAAa,KAGvBpsD,KAAKihG,kBAAoB,GAEzBjhG,KAAKwoG,sBAELxoG,KAAK4uG,qBAAkBliG,EAEvB1M,KAAKgkF,UAAU98E,MAAK,SAACioD,GACpBA,EAAS/C,YAAa,MAGhB,EAqBV,OAAO,GAUR,sBAAW,+BAAgB,C,IAA3B,WACC,OAAOpsD,KAAKihG,mB,gCAUb,sBAAW,0BAAW,C,IAAtB,WACC,OAAOjhG,KAAK4uK,Y,gCAQH,YAAA/8C,uBAAV,SAAiCzpC,GAIhC,IAHA,IAAMpE,EAAYhkF,KAAKwiG,YAAYzpG,OAC7BoD,EAAS6nF,EAAU7nF,OAEhBE,EAAI+rF,EAAY/rF,EAAIF,IAAUE,EACtC2nF,EAAU3nF,GAAGynG,OAASznG,GAUd,YAAAwyK,oBAAV,SAA8B1qH,GAC7BA,EAAM/E,SAASx9C,UAAY5B,KAE3BA,KAAK6xH,uBAAuB1tE,EAAMx8C,OAE7B3H,KAAK2uK,kBACT3uK,KAAK4pF,uBAUG,YAAAklF,sBAAV,SAAgC3qH,GAG/BnkD,KAAK6xH,uBAAuB1tE,EAAMx8C,OAE7B3H,KAAK2uK,kBACT3uK,KAAK4pF,uBAiBA,YAAAqmF,cAAP,SAA4Dx9H,EAAY58C,GACvEmK,KAAK4sF,WAAWn6C,GAAS58C,EACzBmK,KAAKwoG,uBAQC,YAAA7e,wBAAP,WACC3pF,KAAKkwK,sBACLlwK,KAAKwoG,uBASC,YAAA0nE,oBAAP,WACClwK,KAAK6uG,cAAgB,KACrB7uG,KAAK4uG,gBAAkB,MAWxB,sBAAW,wBAAS,C,IAApB,sBAeC,OAdK5uG,KAAKwsF,aACTxsF,KAAKwsF,WAAa,IAAI,IAKtBxsF,KAAKkpD,WAAW1qD,KAAK,IAAI,KAAS,WAEjC,IAAW,EAAKguF,WAAWnnF,YAAY,SAAC/K,GACvCA,EAAEulD,kBAKE7/C,KAAKwsF,Y,gCAQN,YAAA5jF,MAAP,WACC,IAAIhH,EAAkB,YAAMgH,MAAK,WAEjC,OADAhH,EAAUgrF,WAAa,IAAsB5sF,KAAK4sF,WAAY,IACvDhrF,GAQD,YAAAi/C,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GACf9gB,KAAKqB,KAAOyf,EAAOzf,KACnBrB,KAAK2xG,uBAAyB7wF,EAAO6wF,uBACrC3xG,KAAK4xG,4BAA8B9wF,EAAO8wF,4BAC1C5xG,KAAKwxG,sBAAwB1wF,EAAO0wF,sBACpCxxG,KAAK+rH,oBAAsBjrG,EAAOirG,qBAS5B,YAAAv/D,OAAP,WACCxsD,KAAK0mD,SAAU,EACf1mD,KAAKo4D,kBAQI,YAAAsI,aAAV,WACC,IAAME,EAAU,YAAMF,aAAY,WAOlC,OANKE,EAAQ1T,QAAQnlD,IAAI,OAAQ/H,KAAKmwK,aAAc,EAAGnwK,QACtD4gE,EAAQ1T,QAAQ5jD,IAAI,OAAQtJ,KAAKmwK,aAAc,EAAGnwK,MAClDA,KAAKhB,OAAOmgD,GAAG,iBAAiB,SAACyZ,GAChCgI,EAAQwvG,wBAGHxvG,GAGA,YAAAuvG,YAAR,SAAoBhgK,GAEnB,OADAA,EAAI9O,KAAOrB,KAAKqB,KACT8O,GAGE,YAAA+nD,YAAV,SAAsBriE,GACrB,IAAI03E,EAAU,YAAMrV,YAAW,UAACriE,GAIhC,OAHI03E,GACHvtE,KAAK06E,iBAECnN,GAME,YAAA3G,cAAV,SAAwB/wE,GACnBA,GAASmK,KAAKujD,iBAAiB,iBAC9B1tD,GAAUmK,KAAK40D,QAAW50D,KAAKgsD,OAK9BhsD,KAAKqwK,sBACRrwK,KAAKoyD,cAAcpyD,KAAKqwK,uBALzBrwK,KAAKqwK,qBAAuBrwK,KAAKhB,OAAOggE,KAAK,qBAAsBh/D,KAAK8mE,cAAe9mE,MAAM,GAC7FA,KAAKkpD,WAAW1qD,KAAKwB,KAAKqwK,wBAS5B,YAAMzpG,cAAa,UAAC/wE,IAGX,YAAAwpE,UAAV,SAAoBxpE,GACfA,GAASmK,KAAKo/D,SACbp/D,KAAK2tE,cACR3tE,KAAK2tE,aAAc,EACnB,IAAS7rE,4BAA4B9B,MACrCA,KAAKo/D,QAAUvpE,EACfmK,KAAK06E,kBAGP,YAAMrb,UAAS,UAACxpE,IAYjB,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,I,gCAsBvC,sBAAW,2BAAY,C,IAOvB,WACC,OAAOmK,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,I,gCAehC,YAAAuxE,uBAAP,WACC,QAAIpnE,KAAK2tE,aAAgB3tE,KAAK6zG,cAAgB7zG,KAAK6zG,aAAalmC,cAcvD,YAAA+sE,WAAV,SAAqBjoG,GACpB,MAAgB,uBAATA,GAA2C,qBAATA,GAAgC,YAAMu0D,KAAI,UAACv0D,IAEtF,EA1hEA,CAA+B,KAkiE/B,IAASrzC,kBAAT,UAA0Cq7E,G,6BC9wE1C,mFA+DA,cAoBC,mBACC,cAAO,K,OAEP,EAAK1/B,UAAY,SACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,UAE9B,EAAKmxD,mBAAmB,SAAU,YAAQ,MAC1C,EAAKrR,iBAAiB,mBAAoB,UAC1C,EAAKA,iBAAiB,iBAAkB,UACxC,EAAKO,a,EAyDP,OAtF4B,iBAmCjB,YAAAY,KAAV,WACC,YAAMA,KAAI,WACVvqD,KAAK0oB,QAAQiiC,KAAK,CAAE,EAAK3qD,KAAK4+G,eAU/B,sBAAW,qBAAM,C,IAOjB,WACC,OAAO5+G,KAAKujD,iBAAiB,W,IAR9B,SAAkB1tD,GACjBmK,KAAKy6D,mBAAmB,SAAU5kE,GAAO,GAAM,EAAO,IAAI,I,gCAmB3D,sBAAW,0BAAW,C,IAAtB,WACC,OAAO,IAAuBmK,KAAK3B,OAAQ,IAAU2B,KAAKomD,WAAa,EAAGpmD,KAAKkmD,YAAc,K,gCAQvF,YAAAyF,eAAP,WACC,IAAIizD,EAAc5+G,KAAK4+G,YACvB5+G,KAAKsnD,MAAQ,CACZhtD,GAAIskH,EACJrkH,GAAIqkH,EACJtiH,MAAqB,EAAdsiH,EACPriH,OAAsB,EAAdqiH,IAIX,EAtFA,CAA4B,KA8F5B,IAASx/G,kBAAT,OAAuC+1E,G,6BC7JvC,8FAsFA,cAsEC,mBAGC,cAAO,K,OAhDD,EAAA3qC,WAAuC,GAYvC,EAAA2W,YAAsB,EAYnB,EAAAmvH,OAAiB,EAOjB,EAAAC,aAAuB,EAkBhC,EAAKx1H,UAAY,SAGjB,EAAKg8B,iBAAmB,IAAI,IAC5B,EAAKvsC,WAAWynB,YAAc,oBAI9B,EAAK8kB,iBAAiB/3E,OAAOmgD,GAAG,YAAY,SAACyZ,GAC5C,EAAK1P,WAAW1qD,KAAKo6D,EAAGxZ,aAIzB,EAAK9iD,MAAQ,IACb,EAAKC,OAAS,IAGd,EAAKotD,a,EAuNP,OAlT4B,iBAqGpB,YAAAuI,iBAAP,SAAwBvC,GACvB,IAAW3vD,KAAK+2E,iBAAiB1xE,YAAY,SAACmrK,GAC7C7gH,EAAcrmD,IAAIknK,OAcb,YAAA16G,QAAP,SAAeC,EAA2DhvB,EAAkBivB,GAE3F,OAD2B,IAAI,IAAUh2D,KAAM+1D,EAAkBhvB,EAAUivB,GAAQv8D,SAcpF,sBAAW,oBAAK,C,IAOhB,WACC,OAAOuG,KAAKwqC,WAAL,O,IARR,SAAiB30C,GAChBmK,KAAKwqC,WAAL,MAA2B30C,G,gCAoB5B,sBAAW,qBAAM,C,IAOjB,WACC,OAAOmK,KAAKwqC,WAAL,Q,IARR,SAAkB30C,GACjBmK,KAAKwqC,WAAL,OAA4B30C,G,gCAetB,YAAAgrD,SAAP,SAAgB7zB,GAAhB,WACC,YAAM6zB,SAAQ,UAAC7zB,GACf,IAAaA,EAAOwd,YAAY,SAAC1pC,EAAKjL,GAC/B,EAAMiL,GAAOjL,MAUrB,sBAAW,oBAAK,C,IAShB,WACC,OAAImK,KAAKowD,OACDpwD,KAAKowD,OAEN,e,IAbR,SAAiB7vD,GACZP,KAAKowD,QAAU7vD,IAClBP,KAAKowD,OAAS7vD,I,gCAoBhB,sBAAW,yBAAU,C,IAArB,WAKC,OAJKP,KAAK41D,cACT51D,KAAK41D,YAAc,GACnB51D,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAkBwB,KAAK41D,eAE1C51D,KAAK41D,a,gCAQb,sBAAW,oBAAK,C,IAQhB,WACC,OAAO51D,KAAKswK,Q,IATb,SAAiBz6K,GAChBmK,KAAKswK,OAASz6K,EACdmK,KAAKywK,e,gCAeI,YAAAA,YAAV,aAaA,sBAAW,0BAAW,C,IAOtB,WACC,OAAOzwK,KAAKwqC,WAAWynB,a,IARxB,SAAuBp8D,GACtBmK,KAAKwqC,WAAWynB,YAAcp8D,G,gCAiB/B,sBAAW,yBAAU,C,IAWrB,WACC,OAAOmK,KAAKuwK,a,IAZb,SAAsB16K,GACrBmK,KAAKuwK,YAAc16K,EACdA,IACJmK,KAAKswK,OAAS,GAEftwK,KAAKywK,e,gCAoBN,sBAAW,qBAAM,C,IAAjB,SAAkB56K,GACjBmK,KAAKw3E,UAAU3hF,I,gCASN,YAAA2hF,UAAV,SAAoB3hF,GACfmK,KAAKy3E,SAAWz3E,KAAKy3E,SAAW5hF,GACnCmK,KAAKy3E,QAAQ1qB,QAAQ9M,YAAYjgD,MAElCA,KAAKy3E,QAAU5hF,GAEjB,EAlTA,CAA4B,M,4SCtFrB,SAASq2B,EAAQr2B,GACtB,YAAc6W,IAAV7W,GAAiC,OAAVA,EAClB,GAGFwB,MAAMD,QAAQvB,GAASA,EAAQ,CAACA,G,sBCLzC,SAASqe,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQvT,EAAKqP,GACpE,IACE,IAAImE,EAAOH,EAAIrT,GAAKqP,GAChBta,EAAQye,EAAKze,MACjB,MAAOmQ,GAEP,YADA/B,EAAO+B,GAILsO,EAAK9P,KACPR,EAAQnO,GAERkO,QAAQC,QAAQnO,GAAO4O,KAAK2P,EAAOC,GAIxB,SAASE,EAAkBhG,GACxC,OAAO,WACL,IAAInI,EAAOpG,KACPuG,EAAO/C,UACX,OAAO,IAAIO,SAAQ,SAAUC,EAASC,GACpC,IAAIkQ,EAAM5F,EAAG9K,MAAM2C,EAAMG,GAEzB,SAAS6N,EAAMve,GACbqe,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQ,OAAQxe,GAGlE,SAASwe,EAAOtD,GACdmD,EAAmBC,EAAKnQ,EAASC,EAAQmQ,EAAOC,EAAQ,QAAStD,GAGnEqD,OAAM1H,O,qBC/BZ,SAASlF,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAI9U,SAASolB,EAAgBxlB,EAAKrG,EAAKjL,GAAiK,OAApJiL,KAAOqG,EAAOzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,EAE3M,SAASo6C,EAAmB/wC,GAAO,OAInC,SAA4BA,GAAO,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOstJ,EAAkBttJ,GAJ1CkgK,CAAmBlgK,IAAQmgK,EAAiBngK,IAAQutJ,EAA4BvtJ,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8EorK,GAMlI,SAASC,EAASrgK,GAAO,OAUzB,SAAyBA,GAAO,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOA,EAV/BmtJ,CAAgBntJ,IAAQmgK,EAAiBngK,IAAQutJ,EAA4BvtJ,IAE7G,WAA8B,MAAM,IAAIhL,UAAU,6IAFmEw4J,GAIrH,SAASD,EAA4Bp4J,EAAGk4J,GAAU,GAAKl4J,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOm4J,EAAkBn4J,EAAGk4J,GAAS,IAAIt6J,EAAIb,OAAOQ,UAAUlN,SAASC,KAAK0P,GAAGgD,MAAM,GAAI,GAAiE,MAAnD,WAANpF,GAAkBoC,EAAE1C,cAAaM,EAAIoC,EAAE1C,YAAYV,MAAgB,QAANgB,GAAqB,QAANA,EAAoBlM,MAAM84B,KAAKxqB,GAAc,cAANpC,GAAqB,2CAA2C0nB,KAAK1nB,GAAWu6J,EAAkBn4J,EAAGk4J,QAAzG,GAE7S,SAASC,EAAkBttJ,EAAKa,IAAkB,MAAPA,GAAeA,EAAMb,EAAIrU,UAAQkV,EAAMb,EAAIrU,QAAQ,IAAK,IAAIE,EAAI,EAAG8iC,EAAO,IAAI9nC,MAAMga,GAAMhV,EAAIgV,EAAKhV,IAAO8iC,EAAK9iC,GAAKmU,EAAInU,GAAM,OAAO8iC,EAEhL,SAASwxI,EAAiBvpK,GAAQ,GAAsB,qBAAXhC,QAA0BA,OAAOC,YAAY3C,OAAO0E,GAAO,OAAO/P,MAAM84B,KAAK/oB,GAI3G,SAASpG,EAAI2lJ,EAAQmqB,EAAOj7K,GACzC,IAAKi7K,EAAM30K,OACT,OAAOtG,EAGT,IAII+S,EAJAmoK,EAASF,EAASC,GAClBhlK,EAAOilK,EAAO,GACdC,EAAWD,EAAOpoK,MAAM,GAa5B,OANEC,EAHG+9I,GAA0B,kBAAT76I,EAEXzU,MAAMD,QAAQuvJ,GACfplG,EAAmBolG,GApC/B,SAAuBnlJ,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,EAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAsCjgBg5C,CAAc,GAAImsG,GAJlB,IAOJ76I,GAAQ9K,EAAI4H,EAAMkD,GAAOklK,EAAUn7K,GAClC+S,ECxCT,SAASpB,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAevU,SAAS0pK,EAAYnlK,GAC1B,OAAOogB,EAAQpgB,GAEV,SAAS9U,EAASue,EAAO27J,GAE9B,OCxBa,SAAavqB,EAAQ76I,GAGlC,IAFA,IAAIoM,EAAUyuI,EAELtqJ,EAAI,EAAGA,EAAIyP,EAAK3P,OAAQE,GAAK,EAAG,CACvC,GAAgB,OAAZ6b,QAAgCxL,IAAZwL,EACtB,OAGFA,EAAUA,EAAQpM,EAAKzP,IAGzB,OAAO6b,EDYKhX,CAAIqU,EAAO27J,GAGlB,SAAS5qF,EAAS/wE,EAAO27J,EAAUr7K,GAExC,OADemL,EAAIuU,EAAO27J,EAAUr7K,GAG/B,SAASs7K,EAAoB57J,EAAO67J,GACzC,IAAIC,EAAW,GAKf,OAJAD,EAAa3pK,SAAQ,SAAUypK,GAC7B,IAAIr7K,EAAQmB,EAASue,EAAO27J,GAC5BG,EAAW/qF,EAAS+qF,EAAUH,EAAUr7K,MAEnCw7K,EAEF,SAASC,EAAiBF,EAAcF,GAC7C,OAAOE,GAAgBA,EAAa9jJ,MAAK,SAAUxhB,GACjD,OAAOylK,EAAczlK,EAAMolK,MAI/B,SAASt6K,EAASuQ,GAChB,MAAwB,WAAjB0yC,YAAQ1yC,IAA6B,OAARA,GAAgBzE,OAAOoE,eAAeK,KAASzE,OAAOQ,UAQ5F,SAASsuK,EAAkBj8J,EAAOxc,GAChC,IAAIs4K,EAAWh6K,MAAMD,QAAQme,GAASgsC,YAAmBhsC,GAhD3D,SAAuB/T,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAgDzcg5C,CAAc,GAAIjlC,GAEpF,OAAKxc,GAIL2J,OAAO6E,KAAKxO,GAAQ0O,SAAQ,SAAU3G,GACpC,IAAI6nF,EAAY0oF,EAASvwK,GACrBjL,EAAQkD,EAAO+H,GAEf2wK,EAAY76K,EAAS+xF,IAAc/xF,EAASf,GAChDw7K,EAASvwK,GAAO2wK,EAAYD,EAAkB7oF,EAAW9yF,GAAS,IAAMA,KAEnEw7K,GAVEA,EAaJ,SAASK,EAAUn8J,GACxB,IAAK,IAAI2/H,EAAO1xI,UAAUrH,OAAQw1K,EAAa,IAAIt6K,MAAM69I,EAAO,EAAIA,EAAO,EAAI,GAAIT,EAAO,EAAGA,EAAOS,EAAMT,IACxGk9B,EAAWl9B,EAAO,GAAKjxI,UAAUixI,GAGnC,OAAOk9B,EAAW14K,QAAO,SAAUif,EAASm5J,GAC1C,OAAOG,EAAkBt5J,EAASm5J,KACjC97J,GAEE,SAASg8J,EAAcL,EAAUU,GACtC,SAAKV,IAAaU,GAAmBV,EAAS/0K,SAAWy1K,EAAgBz1K,SAIlE+0K,EAASW,OAAM,SAAUC,EAAUz1K,GACxC,OAAOu1K,EAAgBv1K,KAAOy1K,KA8B3B,SAASC,EAAyBC,GACvC,IAAI7tH,EAAQ3gD,UAAUrH,QAAU,OAAIuQ,EAAYlJ,UAAU,GAE1D,OAAI2gD,GAASA,EAAM3iD,QAAUwwK,KAAiB7tH,EAAM3iD,OAC3C2iD,EAAM3iD,OAAOwwK,GAGf7tH,EAaF,SAASv4B,EAAKb,EAAOknJ,EAAWpmJ,GACrC,IAAI1vB,EAAS4uB,EAAM5uB,OAEnB,GAAI81K,EAAY,GAAKA,GAAa91K,GAAU0vB,EAAU,GAAKA,GAAW1vB,EACpE,OAAO4uB,EAGT,IAAIof,EAAOpf,EAAMknJ,GACb/sJ,EAAO+sJ,EAAYpmJ,EAEvB,OAAI3G,EAAO,EAEF,GAAGhf,OAAOq7C,YAAmBx2B,EAAMpiB,MAAM,EAAGkjB,IAAW,CAACse,GAAOoX,YAAmBx2B,EAAMpiB,MAAMkjB,EAASomJ,IAAa1wH,YAAmBx2B,EAAMpiB,MAAMspK,EAAY,EAAG91K,KAGvK+oB,EAAO,EAEF,GAAGhf,OAAOq7C,YAAmBx2B,EAAMpiB,MAAM,EAAGspK,IAAa1wH,YAAmBx2B,EAAMpiB,MAAMspK,EAAY,EAAGpmJ,EAAU,IAAK,CAACse,GAAOoX,YAAmBx2B,EAAMpiB,MAAMkjB,EAAU,EAAG1vB,KAG5K4uB,EE3JT,IAAImnJ,EAAe,mCACR3rC,EAA0B,CACnCj2H,QAAS,sCACT6hK,SAAU,wBACVC,KAAM,qCACNC,WAAY,4BACZttJ,KAAM,CACJpB,OAAQ,uCACR+6B,MAAO,wCACP7U,QAAS,6BAEXyoI,MAAO,CACLzwI,OAAQqwI,EACRz4G,OAAQy4G,EACRnnJ,MAAOmnJ,EACP5vK,OAAQ4vK,EACRvoJ,OAAQuoJ,EACRntJ,KAAMmtJ,EACNK,QAASL,EACTM,QAASN,EACTO,MAAOP,EACPQ,OAAQR,EACRS,MAAOT,EACPlxJ,IAAKkxJ,EACL70H,IAAK60H,GAEPrwI,OAAQ,CACNxwB,IAAK,8CACLzZ,IAAK,+CACLC,IAAK,oDACLkC,MAAO,0DAET4vB,OAAQ,CACNtY,IAAK,8BACLzZ,IAAK,uCACLC,IAAK,0CACLkC,MAAO,+CAETgxB,MAAO,CACL1Z,IAAK,6CACLzZ,IAAK,iDACLC,IAAK,oDACLkC,MAAO,yDAETw+E,QAAS,CACPq6F,SAAU,gDCvCd,SAASprK,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAQ7gB,IAAIqxK,EAAiBC,IAkBrB,SAASC,EAAgBC,EAAUzwK,EAAMkpF,EAAMwnF,GAC7C,IAAIC,EAAK14H,EAAc,GAAIixC,EAAM,CAC/BlpF,KAAMA,EACN6vK,MAAO3mF,EAAK2mF,MAAQ,IAAI3rK,KAAK,QAG3B0sK,EAAc,SAAqBlyH,EAAUmyH,GAC/C,OAAO,WACL,OApBN,SAAwBnyH,EAAUiyH,GAChC,OAAOjyH,EAASvqD,QAAQ,cAAc,SAAUsrB,GAC9C,IAAIlhB,EAAMkhB,EAAIrZ,MAAM,GAAI,GACxB,OAAOuqK,EAAGpyK,MAiBDuyK,CAAepyH,EAAUzG,EAAc,GAAI04H,EAAI,GAAIE,MAyB9D,OAnBA,SAASE,EAAaxyJ,GACpB,IAAItf,EAASgC,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAajF,OAZAd,OAAO6E,KAAKuZ,GAAQrZ,SAAQ,SAAU8rK,GACpC,IAAI19K,EAAQirB,EAAOyyJ,GAEE,kBAAV19K,EACT2L,EAAO+xK,GAAYJ,EAAYt9K,EAAOo9K,GAC7Bp9K,GAA4B,WAAnBgkD,YAAQhkD,IAC1B2L,EAAO+xK,GAAY,GACnBD,EAAaz9K,EAAO2L,EAAO+xK,KAE3B/xK,EAAO+xK,GAAY19K,KAGhB2L,EAKF8xK,CAAa5B,EAAU,GAAInrC,EAAyBysC,IAG7D,SAASQ,EAAaC,EAAIC,EAAKC,EAAKC,EAAKC,GACvC,OAAOC,EAAcrwK,MAAMzD,KAAMwD,WAQnC,SAASswK,IAyEP,OAxEAA,EAAgBv/J,EAAgCw/J,IAAoBC,MAAK,SAASC,EAAQ1xK,EAAM1M,EAAO41F,EAAMrvE,EAAS62J,GACpH,IAAIiB,EAAWC,EAAcC,EAAWpB,EAAUzuK,EAAQ8vK,EAC1D,OAAON,IAAoBznB,MAAK,SAAkBgoB,GAChD,OACE,OAAQA,EAASp7K,KAAOo7K,EAASlwK,MAC/B,KAAK,EAgBH,OAfA8vK,EAAY15H,EAAc,GAAIixC,GAE9B0oF,EAAe,KAEXD,GAAgC,UAAnBA,EAAU3yK,MAAoB2yK,EAAUK,eACvDJ,EAAeD,EAAUK,oBAClBL,EAAUK,cAGnBH,EAAY,IAAIvB,EAAelmJ,YAAgB,GAAIpqB,EAAM,CAAC2xK,KAC1DlB,EAAWD,EAAgB32J,EAAQiqH,iBAAkB9jI,EAAM2xK,EAAWjB,GACtEmB,EAAUpB,SAASA,GACnBzuK,EAAS,GACT+vK,EAASp7K,KAAO,EAChBo7K,EAASlwK,KAAO,GACTL,QAAQC,QAAQowK,EAAU/pH,SAAS19B,YAAgB,GAAIpqB,EAAM1M,GAAQ2kD,EAAc,GAAIp+B,KAEhG,KAAK,GACHk4J,EAASlwK,KAAO,GAChB,MAEF,KAAK,GACHkwK,EAASp7K,KAAO,GAChBo7K,EAASE,GAAKF,EAAQ,MAAU,GAE5BA,EAASE,GAAGl5B,OACd/2I,EAAS+vK,EAASE,GAAGl5B,OAAOpwH,KAAI,SAAUhV,EAAMvO,GAC9C,IAAIo+D,EAAU7vD,EAAK6vD,QACnB,OACEtxD,iBAAqBsxD,GAAWtxD,eAAmBsxD,EAAS,CAC1DjlE,IAAK,SAASoF,OAAOyB,KAClBo+D,MAIT90C,QAAQjrB,MAAMsuK,EAASE,IACvBjwK,EAAS,CAACyuK,EAAS1iK,YAGvB,KAAK,GACH,GAAO/L,EAAOpI,SAAUg4K,EAAe,CACrCG,EAASlwK,KAAO,GAChB,MAIF,OADAkwK,EAASlwK,KAAO,GACTL,QAAQ0wK,IAAI5+K,EAAMq1B,KAAI,SAAUwpJ,EAAUr4K,GAC/C,OAAOm3K,EAAa,GAAGttK,OAAO3D,EAAM,KAAK2D,OAAO7J,GAAIq4K,EAAUP,EAAc/3J,EAAS62J,OAGzF,KAAK,GAEH,OADAoB,EAAaC,EAAStvK,KACfsvK,EAASK,OAAO,SAAUN,EAAWp7K,QAAO,SAAUC,EAAMoiJ,GACjE,MAAO,GAAGp1I,OAAOq7C,YAAmBroD,GAAOqoD,YAAmB+5F,MAC7D,KAEL,KAAK,GACH,OAAOg5B,EAASK,OAAO,SAAUpwK,GAEnC,KAAK,GACL,IAAK,MACH,OAAO+vK,EAASxlD,UAGrBmlD,EAAS,KAAM,CAAC,CAAC,EAAG,WAEJxwK,MAAMzD,KAAMwD,WAG5B,SAASoxK,EAAc1D,EAAUr7K,EAAO0mJ,EAAOngI,EAASy4J,EAAe5B,GAC5E,IAAI1wK,EAAO2uK,EAASzqK,KAAK,KAgDrBquK,EA9Ccv4B,EAAMrxH,KAAI,SAAU6pJ,GACpC,IAAIC,EAAsBD,EAAYX,UAEtC,OAAKY,EAIEx6H,EAAc,GAAIu6H,EAAa,CACpCX,UAAW,SAAmB3oF,EAAMr7D,EAAKxb,GACvC,IAAIqgK,GAAa,EAkBbC,EAAUF,EAAoBvpF,EAAMr7D,GAhBlB,WACpB,IAAK,IAAI8kH,EAAO1xI,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EluI,EAAKkuI,GAAQjxI,UAAUixI,GAIzB1wI,QAAQC,UAAUS,MAAK,WACrB82C,aAAS05H,EAAY,qFAEhBA,GACHrgK,EAASnR,WAAM,EAAQ8C,SAO7B0uK,EAAaC,GAAmC,oBAAjBA,EAAQzwK,MAAgD,oBAAlBywK,EAAQr8B,MAM7Et9F,YAAQ05H,EAAY,8DAEhBA,GACFC,EAAQzwK,MAAK,WACXmQ,OACCikI,OAAM,SAAU9nI,GACjB6D,EAAS7D,SApCRgkK,KA0CoB7pJ,KAAI,SAAUugE,GAC3C,OAAO+nF,EAAajxK,EAAM1M,EAAO41F,EAAMrvE,EAAS62J,MAE9CkC,GAAkBN,EA0CxB,SAA6BO,GAC3B,OAAOC,EAAqB5xK,MAAMzD,KAAMwD,WA3CF8xK,CAAoBR,GAc5D,SAA2BS,GACzB,OAAOC,EAAmB/xK,MAAMzD,KAAMwD,WAfoCiyK,CAAkBX,IAAerwK,MAAK,SAAU62I,GACxH,OAAKA,EAAOn/I,OAIL4H,QAAQE,OAAOq3I,GAHb,MASX,OAHA65B,EAAet8B,OAAM,SAAUx0I,GAC7B,OAAOA,KAEF8wK,EAOT,SAASK,IAqBP,OApBAA,EAAqBjhK,EAAgCw/J,IAAoBC,MAAK,SAAS0B,EAASZ,GAC9F,OAAOf,IAAoBznB,MAAK,SAAmBqpB,GACjD,OACE,OAAQA,EAAUz8K,KAAOy8K,EAAUvxK,MACjC,KAAK,EACH,OAAOuxK,EAAUhB,OAAO,SAAU5wK,QAAQ0wK,IAAIK,GAAcrwK,MAAK,SAAUmxK,GACzE,IAAI78J,EAIJ,OAFcA,EAAQ,IAAI7S,OAAOzC,MAAMsV,EAAOwoC,YAAmBq0H,QAKrE,KAAK,EACL,IAAK,MACH,OAAOD,EAAU7mD,UAGtB4mD,QAEqBjyK,MAAMzD,KAAMwD,WAOxC,SAAS6xK,IA+BP,OA9BAA,EAAuB9gK,EAAgCw/J,IAAoBC,MAAK,SAAS6B,EAASf,GAChG,IAAI32K,EACJ,OAAO41K,IAAoBznB,MAAK,SAAmBwpB,GACjD,OACE,OAAQA,EAAU58K,KAAO48K,EAAU1xK,MACjC,KAAK,EAEH,OADAjG,EAAQ,EACD23K,EAAUnB,OAAO,SAAU,IAAI5wK,SAAQ,SAAUC,GACtD8wK,EAAartK,SAAQ,SAAUytK,GAC7BA,EAAQzwK,MAAK,SAAU62I,GACjBA,EAAOn/I,QACT6H,EAAQs3I,IAGVn9I,GAAS,KAEK22K,EAAa34K,QACzB6H,EAAQ,cAMlB,KAAK,EACL,IAAK,MACH,OAAO8xK,EAAUhnD,UAGtB+mD,QAEuBpyK,MAAMzD,KAAMwD,WCnR1C,SAASgE,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAI7gB,SAASk4C,KAA8B,GAAuB,qBAAZ5sC,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAU1T,SAAS0xK,GAAcC,EAAc98K,EAAMkL,EAAMukF,EAAWkyC,EAAWvmH,GACrE,MAA4B,oBAAjB0hK,EACFA,EAAa98K,EAAMkL,EAAM,WAAYkQ,EAAO,CACjDwM,OAAQxM,EAAKwM,QACX,IAGC6nE,IAAckyC,EAIvB,IAAIo7C,GAAqB,SAAU/xC,GACjC7pF,YAAU47H,EAAO/xC,GAEjB,IA1BoBjqF,EA0BhBkqF,GA1BgBlqF,EA0BMg8H,EA1BY,WAAc,IAAsC1xK,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAIP,KAA6B,CAAE,IAAIS,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,KA4B3U,SAAS0xK,IACP,IAAI/mK,EAiYJ,OA/XA0d,YAAgB5sB,KAAMi2K,IAEtB/mK,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YACrBqE,MAAQ,CACZquK,WAAY,GAEdhnK,EAAMinK,mBAAqB,KAC3BjnK,EAAMknK,SAAU,EAMhBlnK,EAAMmnK,SAAU,EAGhBnnK,EAAMonK,OAAQ,EACdpnK,EAAMqnK,gBAAkB,KACxBrnK,EAAMosI,OAAS,GAEfpsI,EAAMsnK,eAAiB,WACjBtnK,EAAMinK,oBACRjnK,EAAMinK,qBAGRjnK,EAAMinK,mBAAqB,MAI7BjnK,EAAM+hK,YAAc,WAClB,IAAI1uK,EAAO2M,EAAMqL,MAAMhY,KACnBk0K,EAAwBvnK,EAAMiH,QAAQugK,WACtCA,OAAuC,IAA1BD,EAAmC,GAAKA,EACzD,YAAgB/pK,IAATnK,EAAqB,GAAG2D,OAAOq7C,YAAmBm1H,GAAan1H,YAAmBh/C,IAAS,IAGpG2M,EAAMynK,SAAW,WACf,IAAIC,EAAoB1nK,EAAMqL,MAAMgiI,MAEpC,YADkC,IAAtBq6B,EAA+B,GAAKA,GACnC1rJ,KAAI,SAAUugE,GACzB,MAAoB,oBAATA,EACFA,EAAKv8E,EAAMiH,SAGbs1E,MAIXv8E,EAAM2nK,QAAU,WACV3nK,EAAMknK,SAKVlnK,EAAMu9C,UAAS,SAAUv2C,GAEvB,MAAO,CACLggK,WAFehgK,EAAKggK,WAEK,OAO/BhnK,EAAM4nK,cAAgB,SAAUC,EAAW3F,EAAc98J,GACvD,IAAImwH,EAAcv1H,EAAMqL,MACpBy7J,EAAevxC,EAAYuxC,aAC3BgB,EAAwBvyC,EAAY/sH,aACpCA,OAAyC,IAA1Bs/J,EAAmC,GAAKA,EACvDC,EAAUxyC,EAAYwyC,QACtB1hK,EAAQjB,EAAKiB,MAEb27J,EAAWhiK,EAAM+hK,cAEjBtoF,EAAYz5E,EAAMlY,SAAS+/K,GAE3BG,EAAWhoK,EAAMlY,SAASue,GAE1B4hK,EAAgB/F,GAAgBE,EAAiBF,EAAcF,GASnE,OAPkB,gBAAd58J,EAAK/S,MAA0C,aAAhB+S,EAAKwM,QAAyB6nE,IAAcuuF,IAC7EhoK,EAAMmnK,SAAU,EAChBnnK,EAAMonK,OAAQ,EACdpnK,EAAMqnK,gBAAkB,KACxBrnK,EAAMosI,OAAS,IAGThnI,EAAK/S,MACX,IAAK,QACH,IAAK6vK,GAAgB+F,EAanB,OAXAjoK,EAAMmnK,SAAU,EAChBnnK,EAAMonK,OAAQ,EACdpnK,EAAMqnK,gBAAkB,KACxBrnK,EAAMosI,OAAS,GAEX27B,GACFA,SAGF/nK,EAAM2nK,UAKR,MAEF,IAAK,WAED,GAAIM,EAAe,CACjB,IAAI91K,EAAOiT,EAAKjT,KAkBhB,MAhBI,YAAaA,IACf6N,EAAMmnK,QAAUh1K,EAAKg1K,SAGnB,eAAgBh1K,KAAU,kBAAmBA,KAC/C6N,EAAMqnK,gBAAkBl1K,EAAK+1K,WAAarzK,QAAQC,QAAQ,IAAM,MAG9D,WAAY3C,IACd6N,EAAMosI,OAASj6I,EAAKi6I,QAAU,IAGhCpsI,EAAMonK,OAAQ,OAEdpnK,EAAMmoK,WAMR,GAAIrB,IAAiB9E,EAAS/0K,QAAU45K,GAAcC,EAAce,EAAWxhK,EAAOozE,EAAWuuF,EAAU5iK,GAGzG,YAFApF,EAAMmoK,WAKR,MAGJ,IAAK,qBAKD,IAAIC,EAAiB5/J,EAAawT,IAAI+lJ,GAEtC,GAAIkG,GAAiBG,EAAehqJ,MAAK,SAAUiqJ,GACjD,OAAOjG,EAAiBh9J,EAAKkjK,cAAeD,MAI5C,YAFAroK,EAAMmoK,WAKR,MAGJ,QAOE,GAAIF,GAAiBz/J,EAAa4V,MAAK,SAAUiqJ,GAC/C,OAAOjG,EAAiBF,EAAcH,EAAYsG,QAC9CxB,GAAcC,EAAce,EAAWxhK,EAAOozE,EAAWuuF,EAAU5iK,GAGvE,YAFApF,EAAMmoK,YAQS,IAAjBrB,GACF9mK,EAAMmoK,YAIVnoK,EAAM0lK,cAAgB,SAAUx4J,GAC9B,IAAIwsJ,EAAe15J,EAAMqL,MACrBk9J,EAAwB7O,EAAaiM,cACrCA,OAA0C,IAA1B4C,GAA2CA,EAC3DxE,EAAmBrK,EAAaqK,iBAGhCyE,GADQt7J,GAAW,IACCs7J,YAEpBxG,EAAWhiK,EAAM+hK,cAEjB0G,EAAgBzoK,EAAMynK,WAEtBe,IACFC,EAAgBA,EAAc3qJ,QAAO,SAAUy+D,GAC7C,IAAImsF,EAAkBnsF,EAAKmsF,gBAE3B,OAAKA,GAIa1rJ,EAAQ0rJ,GACPC,SAASH,OAIhC,IAAIxC,EAAUN,EAAc1D,EAAUhiK,EAAMlY,WAAY2gL,EAAev7J,EAASy4J,EAAe5B,GAgB/F,OAfA/jK,EAAMonK,OAAQ,EACdpnK,EAAMqnK,gBAAkBrB,EACxBhmK,EAAMosI,OAAS,GACf45B,EAAQr8B,OAAM,SAAUx0I,GACtB,OAAOA,KACNI,MAAK,WACN,IAAI62I,EAAS93I,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAE7E0L,EAAMqnK,kBAAoBrB,IAC5BhmK,EAAMqnK,gBAAkB,KACxBrnK,EAAMosI,OAASA,EAEfpsI,EAAMmoK,eAGHnC,GAGThmK,EAAM4oK,kBAAoB,WACxB,QAAS5oK,EAAMqnK,iBAGjBrnK,EAAM6oK,eAAiB,WACrB,OAAO7oK,EAAMmnK,SAGfnnK,EAAM8oK,aAAe,WACnB,OAAO9oK,EAAMonK,OAGfpnK,EAAM+oK,UAAY,WAChB,OAAO/oK,EAAMosI,QAIfpsI,EAAMgpK,QAAU,WASd,OAPAhpK,EAAMipK,eAAiBjpK,EAAM4oK,oBAClB,CACTzB,QAASnnK,EAAM6oK,iBACfX,WAAYloK,EAAMipK,eAClB78B,OAAQpsI,EAAMosI,OACd/4I,KAAM2M,EAAM+hK,gBAMhB/hK,EAAMkpK,aAAe,SAAUhiK,GAE7B,GAAwB,oBAAbA,EAAyB,CAClC,IAAIiiK,EAAOnpK,EAAMgpK,UAEjB,OAAO19H,GAAc,GAAItrC,EAAMkpK,aAAahiK,EAASlH,EAAMopK,gBAAiBD,EAAMnpK,EAAMiH,UAAW,CACjGqb,YAAY,IAKhB,IAAI+mJ,EAAYC,YAAgBpiK,GAEhC,OAAyB,IAArBmiK,EAAUp8K,QAAiBsY,iBAAqB8jK,EAAU,IAOvD,CACL5pH,MAAO4pH,EAAU,GACjB/mJ,YAAY,GARL,CACLm9B,MAAO4pH,EACP/mJ,YAAY,IAWlBtiB,EAAMlY,SAAW,SAAUue,GACzB,IAAIkjK,EAAiBvpK,EAAMiH,QAAQsiK,eAE/BvH,EAAWhiK,EAAM+hK,cAErB,OAAOj6K,EAASue,GAASkjK,GAAe,GAAOvH,IAGjDhiK,EAAMopK,cAAgB,WACpB,IAAII,EAAal1K,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GACjFm1K,EAAezpK,EAAMqL,MACrBq+J,EAAUD,EAAaC,QACvBhB,EAAkBe,EAAaf,gBAC/BiB,EAAoBF,EAAaE,kBACjCC,EAAYH,EAAaG,UACzB9G,EAAgB2G,EAAa3G,cAC7B+G,EAAgBJ,EAAaI,cAC7BC,OAA4CtsK,IAApBkrK,EAAgCA,EAAkB1oK,EAAMiH,QAAQyhK,gBAExF1G,EAAWhiK,EAAM+hK,cAEjBgI,EAAgB/pK,EAAMiH,QACtB+iK,EAAmBD,EAAcC,iBACjCT,EAAiBQ,EAAcR,eAE/BU,EAAoBD,EAAiBE,KACrCj4K,EAAWg4K,EAAkBh4K,SAE7BtL,EAAQqZ,EAAMlY,WAEdqiL,EAAsBN,GAAiB,SAAU3oJ,GACnD,OAAOzD,YAAgB,GAAIqlJ,EAAe5hJ,IAIxCkpJ,EAAoBZ,EAAWE,GAE/BW,EAAU/+H,GAAc,GAAIk+H,EAAY,GAAIW,EAAoBxjL,IAGpE0jL,EAAQX,GAAW,WAIjB,IAAIx5H,EAFJlwC,EAAMmnK,SAAU,EAChBnnK,EAAMonK,OAAQ,EAGd,IAAK,IAAIphC,EAAO1xI,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EluI,EAAKkuI,GAAQjxI,UAAUixI,GAIvBr1F,EADEy5H,EACSA,EAAkBp1K,WAAM,EAAQ8C,GAEhCwrK,EAAyBtuK,WAAM,EAAQ,CAACuuK,GAAe9rK,OAAOK,IAGvEuyK,IACF15H,EAAW05H,EAAU15H,EAAUvpD,EAAO4iL,GAAe,KAGvDt3K,EAAS,CACPI,KAAM,cACN2vK,SAAUA,EACVr7K,MAAOupD,IAGLk6H,GACFA,EAAkB71K,WAAM,EAAQ8C,IAKpC,IAAIizK,EAAsBttJ,EAAQ8sJ,GAAyB,IAwB3D,OAvBAQ,EAAoB/xK,SAAQ,SAAUiwK,GAEpC,IAAI+B,EAAgBF,EAAQ7B,GAE5B6B,EAAQ7B,GAAe,WACjB+B,GACFA,EAAch2K,WAAM,EAAQD,WAI9B,IAAI+4I,EAAQrtI,EAAMqL,MAAMgiI,MAEpBA,GAASA,EAAMpgJ,QAGjBgF,EAAS,CACPI,KAAM,gBACN2vK,SAAUA,EACVwG,YAAaA,QAKd6B,GAGFrqK,EA2DT,OAvDAiqC,YAAa88H,EAAO,CAAC,CACnBn1K,IAAK,oBACLjL,MAAO,WACL,IAAImgL,EAAeh2K,KAAKua,MAAMy7J,aAI1B0D,GADqBR,EAFFl5K,KAAKmW,QAAQ+iK,kBAEME,KACHM,cAEvC15K,KAAKm2K,mBAAqBuD,EAAc15K,OAEnB,IAAjBg2K,GACFh2K,KAAKq3K,aAGR,CACDv2K,IAAK,uBACLjL,MAAO,WACLmK,KAAKw2K,iBACLx2K,KAAKo2K,SAAU,IAEhB,CACDt1K,IAAK,WACLjL,MAAO,WACDmK,KAAKo2K,SACTp2K,KAAK25K,gBAEN,CACD74K,IAAK,SACLjL,MAAO,WACL,IAQI+jL,EARA1D,EAAal2K,KAAK6H,MAAMquK,WACxB9/J,EAAWpW,KAAKua,MAAMnE,SAEtByjK,EAAqB75K,KAAKo4K,aAAahiK,GACvCu4C,EAAQkrH,EAAmBlrH,MAe/B,OAdiBkrH,EAAmBroJ,WAMlCooJ,EAAkBjrH,EACTl6C,iBAAqBk6C,GAC9BirH,EAAkBnlK,eAAmBk6C,EAAO3uD,KAAKs4K,cAAc3pH,EAAMp0C,SAErEghC,aAASoT,EAAO,qDAChBirH,EAAkBjrH,GAGbl6C,gBAAoBA,WAAgB,CACzC3T,IAAKo1K,GACJ0D,OAIA3D,EAlcgB,CAmcvBxhK,aAEFwhK,GAAMpkB,YAAcioB,IACpB7D,GAAMrxC,aAAe,CACnBg0C,QAAS,WACT5G,cAAe,SAGjB,IAkBe+H,GAlBI,SAAsBC,GACvC,IAAIz3K,EAAOy3K,EAAMz3K,KACb03K,EAAcD,EAAMC,YACpB/+H,EAAYC,YAAyB6+H,EAAO,CAAC,OAAQ,gBAErD9I,OAAoBxkK,IAATnK,EAAqB0uK,EAAY1uK,QAAQmK,EACpD5L,EAAM,OAMV,OAJKm5K,IACHn5K,EAAM,IAAIoF,QAAQgrK,GAAY,IAAIzqK,KAAK,OAGlCgO,gBAAoBwhK,GAAOvzK,OAAOW,OAAO,CAC9CvC,IAAKA,EACLyB,KAAM2uK,GACLh2H,KC3fL,SAAS1zC,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAQ7gB,IAiHe8/C,GAjHJ,SAAcprC,GACvB,IAAI3T,EAAO2T,EAAK3T,KACZ6T,EAAWF,EAAKE,SAChBD,EAAU1B,aAAiBqlK,KAK3BI,EAJSzlK,SAAa,CACxBlN,KAAM,GACNgnD,GAAI,IAEkBr2C,QAExB,GAAwB,oBAAb9B,EAET,OADAmlC,aAAQ,EAAO,gDACR,KAGT,IAAI4+H,EAAmBlJ,EAAY96J,EAAQugK,aAAe,GACtDA,EAAa,GAAGxwK,OAAOq7C,YAAmB44H,GAAmB54H,YAAmB0vH,EAAY1uK,KAYhG,OAAOkS,gBAAoBqlK,IAAa7jK,SAAU,CAChDpgB,MAAO2kD,GAAc,GAAIrkC,EAAS,CAChCugK,WAAYA,KAEbjiK,gBAAoBwhK,GAAO,CAC5B1zK,KAAM,GACNyzK,aAhBiB,SAAsBrtF,EAAWkyC,EAAW9hH,GAG7D,MAAe,aAFFA,EAAM+H,QAMZ6nE,IAAckyC,KAUpB,SAAUh7G,GACX,IAAIu6J,EAAcv6J,EAAMhqB,MACpBA,OAAwB,IAAhBukL,EAAyB,GAAKA,EACtCjc,EAAWt+I,EAAMs+I,SACjBkc,EAAgBlkK,EAAQkkK,cAExBC,EAAc,WAEhB,OADaD,EAAc3D,GAAc,KACxB,IAOf6D,EAAa,CACfjxK,IAAK,SAAapS,GAEhBgjL,EAAW3yK,KAAO,GAAGrB,OAAOq7C,YAAmB24H,EAAW3yK,MAAO,CAAC2yK,EAAW3rH,KAC7E2rH,EAAW3rH,IAAM,EACjB,IAAInP,EAAWk7H,IACfnc,EAAS,GAAGj4J,OAAOq7C,YAAmBnC,GAAW,CAACloD,MAEpDu0B,OAAQ,SAAgB9jB,GACtB,IAAIy3C,EAAWk7H,IAEf,KAAI3yK,EAAQ,GAAKA,GAASy3C,EAASjjD,QAAnC,CAKA,IAAIq+K,EAAUN,EAAW3yK,KAAK2jB,KAAI,SAAUpqB,EAAKytD,GAC/C,OAAIA,EAAK5mD,EACA7G,EAGFo5K,EAAW3yK,KAAKgnD,EAAK,MAE9B2rH,EAAW3yK,KAAOizK,EAAQ7xK,MAAM,GAAI,GAEpCw1J,EAAS/+G,EAASpyB,QAAO,SAAUloB,EAAGypD,GACpC,OAAOA,IAAO5mD,QAGlBikB,KAAM,SAAcuE,EAAMD,GACxB,GAAIC,IAASD,EAAb,CAIA,IAAIkvB,EAAWk7H,IAEXnqJ,EAAO,GAAKA,GAAQivB,EAASjjD,QAAU+zB,EAAK,GAAKA,GAAMkvB,EAASjjD,SAIpE+9K,EAAW3yK,KAAOkzK,EAAMP,EAAW3yK,KAAM4oB,EAAMD,GAE/CiuI,EAASsc,EAAMr7H,EAAUjvB,EAAMD,QAGnC,OAAO9Z,EAASvgB,EAAMq1B,KAAI,SAAUloB,EAAI2E,GACtC,IAAI7G,EAAMo5K,EAAW3yK,KAAKI,GAQ1B,YANY+E,IAAR5L,IACFo5K,EAAW3yK,KAAKI,GAASuyK,EAAW3rH,GACpCztD,EAAMo5K,EAAW3yK,KAAKI,GACtBuyK,EAAW3rH,IAAM,GAGZ,CACLhsD,KAAMoF,EACN7G,IAAKA,EACLm5K,aAAa,MAEbM,Q,SCnHR,IAwEeG,GAxEY,WACzB,SAASA,IACP9tJ,YAAgB5sB,KAAM06K,GAEtB16K,KAAKw4C,KAAO,GAiEd,OA9DAW,YAAauhI,EAAS,CAAC,CACrB55K,IAAK,MACLjL,MAAO,SAAaiL,EAAKjL,GACvB,IAAI8R,EAAQ3H,KAAKw4C,KAAKjsB,WAAU,SAAU4d,GACxC,OAAOonI,EAAcpnI,EAAKrpC,IAAKA,OAGlB,IAAX6G,EACF3H,KAAKw4C,KAAK7wC,GAAO9R,MAAQA,EAEzBmK,KAAKw4C,KAAKh6C,KAAK,CACbsC,IAAKA,EACLjL,MAAOA,MAIZ,CACDiL,IAAK,MACLjL,MAAO,SAAaiL,GAClB,IAAIyD,EAASvE,KAAKw4C,KAAKF,MAAK,SAAUnO,GACpC,OAAOonI,EAAcpnI,EAAKrpC,IAAKA,MAEjC,OAAOyD,GAAUA,EAAO1O,QAEzB,CACDiL,IAAK,SACLjL,MAAO,SAAgBiL,EAAK65K,GAC1B,IACIv2K,EAAOu2K,EADE36K,KAAKkB,IAAIJ,IAGjBsD,EAGHpE,KAAKgB,IAAIF,EAAKsD,GAFdpE,KAAKwJ,OAAO1I,KAKf,CACDA,IAAK,SACLjL,MAAO,SAAiBiL,GACtBd,KAAKw4C,KAAOx4C,KAAKw4C,KAAKxrB,QAAO,SAAUmd,GACrC,OAAQonI,EAAcpnI,EAAKrpC,IAAKA,QAGnC,CACDA,IAAK,MACLjL,MAAO,SAAa+e,GAClB,OAAO5U,KAAKw4C,KAAKttB,IAAItW,KAEtB,CACD9T,IAAK,SACLjL,MAAO,WACL,IAAI+kL,EAAO,GAOX,OANA56K,KAAKkrB,KAAI,SAAUhV,GACjB,IAAIpV,EAAMoV,EAAKpV,IACXjL,EAAQqgB,EAAKrgB,MAEjB,OADA+kL,EAAK95K,EAAI2F,KAAK,MAAQ5Q,EACf,QAEF+kL,MAIJF,EArEkB,GCD3B,SAASlzK,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAStgB,IAAIq5K,GAAY,SAASA,EAAUC,GACxC,IAAI5rK,EAAQlP,KAEZ4sB,YAAgB5sB,KAAM66K,GAEtB76K,KAAK+6K,YAAa,EAClB/6K,KAAKg7K,cAAe,EACpBh7K,KAAKuV,MAAQ,GACbvV,KAAKi7K,cAAgB,GACrBj7K,KAAKk7K,cAAgB,GACrBl7K,KAAKypJ,UAAY,GACjBzpJ,KAAKqmI,iBAAmB,KACxBrmI,KAAKm7K,oBAAsB,KAE3Bn7K,KAAKo7K,QAAU,WACb,MAAO,CACLf,cAAenrK,EAAMmrK,cACrB5B,eAAgBvpK,EAAMupK,eACtB4C,cAAensK,EAAMmsK,cACrBC,eAAgBpsK,EAAMosK,eACtBC,gBAAiBrsK,EAAMqsK,gBACvBxD,eAAgB7oK,EAAM6oK,eACtBD,kBAAmB5oK,EAAM4oK,kBACzB0D,mBAAoBtsK,EAAMssK,mBAC1BC,YAAavsK,EAAMusK,YACnBC,UAAWxsK,EAAMwsK,UACjBC,eAAgBzsK,EAAMysK,eACtBC,eAAgB1sK,EAAM0sK,eACtBC,OAAQ3sK,EAAM2sK,OACd3C,iBAAkBhqK,EAAMgqK,mBAK5Bl5K,KAAKk5K,iBAAmB,SAAUp4K,GAChC,OAAIA,IAAQs4K,KACVlqK,EAAM6rK,YAAa,EACZ,CACL55K,SAAU+N,EAAM/N,SAChBu4K,cAAexqK,EAAMwqK,cACrBoC,aAAc5sK,EAAM4sK,aACpBC,iBAAkB7sK,EAAM6sK,iBACxBC,aAAc9sK,EAAM8sK,aACpBC,oBAAqB/sK,EAAM+sK,oBAC3BC,UAAWhtK,EAAMgtK,aAIrB3gI,aAAQ,EAAO,mEACR,OAGTv7C,KAAK87K,aAAe,SAAUd,GAC5B9rK,EAAM8rK,aAAeA,GAOvBh7K,KAAK+7K,iBAAmB,SAAUb,EAAej0G,GAC/C/3D,EAAMgsK,cAAgBA,GAAiB,GAEnCj0G,IACF/3D,EAAMqG,MAAQm8J,EAAU,GAAIwJ,EAAehsK,EAAMqG,SAIrDvV,KAAKm8K,gBAAkB,SAAUjL,GAC/B,OAAOl6K,EAASkY,EAAMgsK,cAAehK,IAGvClxK,KAAKg8K,aAAe,SAAUvyB,GAC5Bv6I,EAAMu6I,UAAYA,GAGpBzpJ,KAAKi8K,oBAAsB,SAAU51C,GACnCn3H,EAAMm3H,iBAAmBA,GAI3BrmI,KAAKo8K,UAAY,KAEjBp8K,KAAKq8K,gBAAkB,WACjBtqC,GAiBN/xI,KAAKs8K,iBAAmB,WACtB,IAAIliK,EAAO5W,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,IAAmBA,UAAU,GAE1E,OAAK4W,EAIElL,EAAM+rK,cAAcjuJ,QAAO,SAAUylB,GAC1C,OAAOA,EAAMw+H,cAAc90K,UAJpB+S,EAAM+rK,eAQjBj7K,KAAKu8K,aAAe,WAClB,IAAIniK,EAAO5W,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,IAAmBA,UAAU,GACtE89I,EAAQ,IAAIo5B,GAOhB,OALAxrK,EAAMotK,iBAAiBliK,GAAM3S,SAAQ,SAAUgrC,GAC7C,IAAIy+H,EAAWz+H,EAAMw+H,cACrB3vB,EAAMtgJ,IAAIkwK,EAAUz+H,MAGf6uG,GAGTthJ,KAAKw8K,gCAAkC,SAAUC,GAC/C,IAAKA,EACH,OAAOvtK,EAAMotK,kBAAiB,GAGhC,IAAIh7B,EAAQpyI,EAAMqtK,cAAa,GAE/B,OAAOE,EAASvxJ,KAAI,SAAU3oB,GAC5B,IAAI2uK,EAAWD,EAAY1uK,GAC3B,OAAO++I,EAAMpgJ,IAAIgwK,IAAa,CAC5BwL,qBAAsBzL,EAAY1uK,QAKxCvC,KAAKy4K,eAAiB,SAAUgE,EAAUE,GAGxC,GAFAztK,EAAMmtK,mBAEW,IAAbI,IAAsBE,EACxB,OAAOztK,EAAMqG,MAGf,IAAI0lK,EAAgB/rK,EAAMstK,gCAAgCnlL,MAAMD,QAAQqlL,GAAYA,EAAW,MAE3FG,EAAmB,GAcvB,OAbA3B,EAAcxzK,SAAQ,SAAUk/I,GAC9B,IAAIuqB,EAAW,yBAA0BvqB,EAASA,EAAO+1B,qBAAuB/1B,EAAOsqB,cAEvF,GAAK0L,EAEE,CACL,IAAItE,EAAO,YAAa1xB,EAASA,EAAOuxB,UAAY,KAEhDyE,EAAWtE,IACbuE,EAAiBp+K,KAAK0yK,QALxB0L,EAAiBp+K,KAAK0yK,MASnBC,EAAoBjiK,EAAMqG,MAAOqnK,EAAiB1xJ,IAAI+lJ,KAG/DjxK,KAAKq6K,cAAgB,SAAU93K,GAC7B2M,EAAMmtK,kBAEN,IAAInL,EAAWD,EAAY1uK,GAC3B,OAAOvL,EAASkY,EAAMqG,MAAO27J,IAG/BlxK,KAAKs7K,eAAiB,SAAUmB,GAK9B,OAJAvtK,EAAMmtK,kBAEcntK,EAAMstK,gCAAgCC,GAErCvxJ,KAAI,SAAUy7H,EAAQh/I,GACzC,OAAIg/I,KAAY,yBAA0BA,GACjC,CACLpkJ,KAAMokJ,EAAOsqB,cACb31B,OAAQqL,EAAOsxB,aAIZ,CACL11K,KAAM0uK,EAAYwL,EAAS90K,IAC3B2zI,OAAQ,QAKdt7I,KAAKq7K,cAAgB,SAAU94K,GAC7B2M,EAAMmtK,kBAEN,IAAInL,EAAWD,EAAY1uK,GAI3B,OAFiB2M,EAAMosK,eAAe,CAACpK,IAAW,GAEhC51B,QAGpBt7I,KAAKu7K,gBAAkB,WACrBrsK,EAAMmtK,kBAEN,IAAK,IAAInnC,EAAO1xI,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EluI,EAAKkuI,GAAQjxI,UAAUixI,GAGzB,IAEI28B,EAFAyL,EAAOt2K,EAAK,GACZ6I,EAAO7I,EAAK,GAEZu2K,GAAqB,EAEL,IAAhBv2K,EAAKpK,OACPi1K,EAAe,KACU,IAAhB7qK,EAAKpK,OACV9E,MAAMD,QAAQylL,IAChBzL,EAAeyL,EAAK3xJ,IAAI+lJ,GACxB6L,GAAqB,IAErB1L,EAAe,KACf0L,EAAqBD,IAGvBzL,EAAeyL,EAAK3xJ,IAAI+lJ,GACxB6L,EAAqB1tK,GAGvB,IAAI2tK,EAAc,SAAqBtqI,GAErC,IAAK2+H,EACH,OAAO3+H,EAAMslI,iBAGf,IAAIiF,EAAgBvqI,EAAMw+H,cAE1B,OAAIK,EAAiBF,EAAc4L,GAC1BvqI,EAAMslI,iBAGR+E,GAGT,OAAOA,EAAqB5tK,EAAMotK,kBAAiB,GAAMzK,MAAMkL,GAAe7tK,EAAMotK,kBAAiB,GAAMhvJ,KAAKyvJ,IAGlH/8K,KAAK+3K,eAAiB,SAAUx1K,GAG9B,OAFA2M,EAAMmtK,kBAECntK,EAAMqsK,gBAAgB,CAACh5K,KAGhCvC,KAAKw7K,mBAAqB,SAAUiB,GAClCvtK,EAAMmtK,kBAEN,IAAIpB,EAAgB/rK,EAAMotK,mBAE1B,IAAKG,EACH,OAAOxB,EAAc3tJ,MAAK,SAAU2vJ,GAClC,OAAOA,EAAUnF,uBAIrB,IAAI1G,EAAeqL,EAASvxJ,IAAI+lJ,GAChC,OAAOgK,EAAc3tJ,MAAK,SAAU2vJ,GAClC,IAAID,EAAgBC,EAAUhM,cAC9B,OAAOK,EAAiBF,EAAc4L,IAAkBC,EAAUnF,wBAItE93K,KAAK83K,kBAAoB,SAAUv1K,GAGjC,OAFA2M,EAAMmtK,kBAECntK,EAAMssK,mBAAmB,CAACj5K,KAQnCvC,KAAKk9K,2BAA6B,WAChC,IAAI5oK,EAAO9Q,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,GAE3E89I,EAAQ,IAAIo5B,GAEZO,EAAgB/rK,EAAMotK,kBAAiB,GAE3CrB,EAAcxzK,SAAQ,SAAUgrC,GAC9B,IAAI0qI,EAAe1qI,EAAMl4B,MAAM4iK,aAC3BjM,EAAWz+H,EAAMw+H,cAErB,QAAqBvkK,IAAjBywK,EAA4B,CAC9B,IAAIC,EAAU97B,EAAMpgJ,IAAIgwK,IAAa,IAAI9oK,IACzCg1K,EAAQ9zK,IAAI,CACVq9I,OAAQl0G,EACR58C,MAAOsnL,IAET77B,EAAMtgJ,IAAIkwK,EAAUkM,OAIxB,IA+BIC,EA/BAC,EAAkB,SAAyBC,GAC7CA,EAAS91K,SAAQ,SAAUgrC,GAGzB,QAAqB/lC,IAFF+lC,EAAMl4B,MAAM4iK,aAEC,CAC9B,IAAIjM,EAAWz+H,EAAMw+H,cAIrB,QAAyBvkK,IAFFwC,EAAMitK,gBAAgBjL,GAI3C31H,aAAQ,EAAO,+CAA+Cr1C,OAAOgrK,EAASzqK,KAAK,KAAM,uCACpF,CACL,IAAI22K,EAAU97B,EAAMpgJ,IAAIgwK,GAExB,GAAIkM,GAAWA,EAAQhlG,KAAO,EAE5B78B,aAAQ,EAAO,6BAA6Br1C,OAAOgrK,EAASzqK,KAAK,KAAM,iEAClE,GAAI22K,EAAS,CAClB,IAAII,EAActuK,EAAMmrK,cAAcnJ,GAGjC58J,EAAKmpK,gBAA6B/wK,IAAhB8wK,IACrBtuK,EAAMqG,MAAQ+wE,EAASp3E,EAAMqG,MAAO27J,EAAU3vH,YAAmB67H,GAAS,GAAGvnL,eAUrFye,EAAKipK,SACPF,EAAwB/oK,EAAKipK,SACpBjpK,EAAK88J,cACdiM,EAAwB,GACxB/oK,EAAK88J,aAAa3pK,SAAQ,SAAUypK,GAClC,IAGMwM,EAHFN,EAAU97B,EAAMpgJ,IAAIgwK,GAEpBkM,IAGDM,EAAwBL,GAAuB7+K,KAAKiF,MAAMi6K,EAAuBn8H,YAAmBA,YAAmB67H,GAASlyJ,KAAI,SAAUplB,GAC7I,OAAOA,EAAE6gJ,gBAKf02B,EAAwBpC,EAG1BqC,EAAgBD,IAGlBr9K,KAAKy7K,YAAc,SAAUgB,GAC3BvtK,EAAMmtK,kBAEN,IAAItF,EAAY7nK,EAAMqG,MAEtB,IAAKknK,EASH,OARAvtK,EAAMqG,MAAQm8J,EAAU,GAAIxiK,EAAMgsK,eAElChsK,EAAMguK,kCAENhuK,EAAMyuK,gBAAgB5G,EAAW,KAAM,CACrCx1K,KAAM,UAOV,IAAI6vK,EAAeqL,EAASvxJ,IAAI+lJ,GAChCG,EAAa3pK,SAAQ,SAAUypK,GAC7B,IAAIiM,EAAejuK,EAAMitK,gBAAgBjL,GAEzChiK,EAAMqG,MAAQ+wE,EAASp3E,EAAMqG,MAAO27J,EAAUiM,MAGhDjuK,EAAMguK,2BAA2B,CAC/B9L,aAAcA,IAGhBliK,EAAMyuK,gBAAgB5G,EAAW3F,EAAc,CAC7C7vK,KAAM,WAIVvB,KAAK07K,UAAY,SAAUtwE,GACzBl8F,EAAMmtK,kBAEN,IAAItF,EAAY7nK,EAAMqG,MACtB61F,EAAO3jG,SAAQ,SAAUm2K,GACvB,IAAIr7K,EAAOq7K,EAAUr7K,KAEjBlB,GADSu8K,EAAUtiC,OACZngG,YAAyByiI,EAAW,CAAC,OAAQ,YAEpD1M,EAAWD,EAAY1uK,GAEvB,UAAWlB,IACb6N,EAAMqG,MAAQ+wE,EAASp3E,EAAMqG,MAAO27J,EAAU7vK,EAAKxL,QAGrDqZ,EAAMyuK,gBAAgB5G,EAAW,CAAC7F,GAAW,CAC3C3vK,KAAM,WACNF,KAAMu8K,QAKZ59K,KAAKk8K,UAAY,WAiBf,OAhBehtK,EAAMotK,kBAAiB,GAEhBpxJ,KAAI,SAAUunB,GAClC,IAAIy+H,EAAWz+H,EAAMw+H,cAGjB2M,EAAYpjI,GAAc,GAFnB/H,EAAMylI,UAEuB,CACtC31K,KAAM2uK,EACNr7K,MAAOqZ,EAAMmrK,cAAcnJ,KAM7B,OAHAxuK,OAAOsG,eAAe40K,EAAW,gBAAiB,CAChD/nL,OAAO,IAEF+nL,MAMX59K,KAAK05K,cAAgB,SAAU/yB,GAI7B,GAHAz3I,EAAM+rK,cAAcz8K,KAAKmoJ,QAGSj6I,IAA9Bi6I,EAAOpsI,MAAM4iK,aAA4B,CAC3C,IAAIpG,EAAY7nK,EAAMqG,MAEtBrG,EAAMguK,2BAA2B,CAC/BK,SAAU,CAAC52B,GACX82B,WAAW,IAGbvuK,EAAMyuK,gBAAgB5G,EAAW,CAACpwB,EAAOsqB,eAAgB,CACvD1vK,KAAM,cACNuf,OAAQ,aAKZ,OAAO,WACL5R,EAAM+rK,cAAgB/rK,EAAM+rK,cAAcjuJ,QAAO,SAAUmd,GACzD,OAAOA,IAASw8G,OAKtB3mJ,KAAKmB,SAAW,SAAUiW,GACxB,OAAQA,EAAO7V,MACb,IAAK,cAED,IAAI2vK,EAAW95J,EAAO85J,SAClBr7K,EAAQuhB,EAAOvhB,MAEnBqZ,EAAM+yG,YAAYivD,EAAUr7K,GAE5B,MAGJ,IAAK,gBAED,IAAIgoL,EAAYzmK,EAAO85J,SACnBwG,EAActgK,EAAOsgK,YAEzBxoK,EAAM0sK,eAAe,CAACiC,GAAY,CAChCnG,YAAaA,MAWvB13K,KAAK29K,gBAAkB,SAAU5G,EAAW3F,EAAc98J,GACxD,GAAIpF,EAAM8rK,aAAc,CACtB,IAAI8C,EAAatjI,GAAc,GAAIlmC,EAAM,CACvCiB,MAAOrG,EAAMupK,gBAAe,KAG9BvpK,EAAMotK,mBAAmB70K,SAAQ,SAAUyO,IAEzC4gK,EADoB5gK,EAAK4gK,eACXC,EAAW3F,EAAc0M,WAGzC5uK,EAAM4rK,mBAIV96K,KAAKiiH,YAAc,SAAU1/G,EAAM1M,GACjC,IAAIq7K,EAAWD,EAAY1uK,GACvBw0K,EAAY7nK,EAAMqG,MACtBrG,EAAMqG,MAAQ+wE,EAASp3E,EAAMqG,MAAO27J,EAAUr7K,GAE9CqZ,EAAMyuK,gBAAgB5G,EAAW,CAAC7F,GAAW,CAC3C3vK,KAAM,cACNuf,OAAQ,aAIV,IAAIi9J,EAAiB7uK,EAAM8uK,4BAA4B9M,GAEvDhiK,EAAM0sK,eAAemC,GAErB7uK,EAAMyuK,gBAAgB5G,EAAWgH,EAAgB,CAC/Cx8K,KAAM,qBACNi2K,cAAe,CAACtG,GAAUhrK,OAAOq7C,YAAmBw8H,MAItD,IAAIE,EAAiB/uK,EAAMu6I,UAAUw0B,eAEjCA,GAEFA,EADoB9M,EAAoBjiK,EAAMqG,MAAO,CAAC27J,IACxBhiK,EAAMqG,OAGtCrG,EAAMgvK,sBAAsB,CAAChN,GAAUhrK,OAAOq7C,YAAmBw8H,MAInE/9K,KAAK27K,eAAiB,SAAUpmK,GAC9BrG,EAAMmtK,kBAEN,IAAItF,EAAY7nK,EAAMqG,MAElBA,IACFrG,EAAMqG,MAAQm8J,EAAUxiK,EAAMqG,MAAOA,IAGvCrG,EAAMyuK,gBAAgB5G,EAAW,KAAM,CACrCx1K,KAAM,cACNuf,OAAQ,cAIZ9gB,KAAKg+K,4BAA8B,SAAUG,GAC3C,IAAI/nK,EAAW,IAAIhO,IACf21K,EAAiB,GACjBK,EAAsB,IAAI1D,GAM9BxrK,EAAMotK,mBAAmB70K,SAAQ,SAAUgrC,IACtBA,EAAMl4B,MAAM7C,cACd,IAAIjQ,SAAQ,SAAU8vK,GACrC,IAAI8G,EAAqBpN,EAAYsG,GACrC6G,EAAoBtpF,OAAOupF,GAAoB,WAC7C,IAAIjzE,EAAS5nG,UAAUrH,OAAS,QAAsBuQ,IAAjBlJ,UAAU,GAAmBA,UAAU,GAAK,IAAI4E,IAErF,OADAgjG,EAAO9hG,IAAImpC,GACJ24D,WAqBb,OAhBmB,SAASkzE,EAAapN,IAC1BkN,EAAoBl9K,IAAIgwK,IAAa,IAAI9oK,KAC/CX,SAAQ,SAAUgrC,GACvB,IAAKr8B,EAASrO,IAAI0qC,GAAQ,CACxBr8B,EAAS9M,IAAImpC,GACb,IAAIuqI,EAAgBvqI,EAAMw+H,cAEtBx+H,EAAMulI,gBAAkBgF,EAAc7gL,SACxC4hL,EAAev/K,KAAKw+K,GACpBsB,EAAatB,QAMrBsB,CAAaH,GACNJ,GAGT/9K,KAAKk+K,sBAAwB,SAAU9M,EAAcmN,GACnD,IAAIC,EAAiBtvK,EAAMu6I,UAAU+0B,eAErC,GAAIA,EAAgB,CAClB,IAAIpzE,EAASl8F,EAAMgtK,YAMnB,GAAIqC,EAAa,CACf,IAAIj9B,EAAQ,IAAIo5B,GAChB6D,EAAY92K,SAAQ,SAAUsR,GAC5B,IAAIxW,EAAOwW,EAAMxW,KACb+4I,EAASviI,EAAMuiI,OACnBgG,EAAMtgJ,IAAIuB,EAAM+4I,MAElBlwC,EAAO3jG,SAAQ,SAAUgrC,GAEvBA,EAAM6oG,OAASgG,EAAMpgJ,IAAIuxC,EAAMlwC,OAASkwC,EAAM6oG,UAQlDkjC,EAJoBpzE,EAAOp+E,QAAO,SAAUnN,GAC1C,IAAIovJ,EAAYpvJ,EAAMtd,KACtB,OAAO+uK,EAAiBF,EAAcnC,MAEV7jE,KAKlCprG,KAAK47K,eAAiB,SAAUa,EAAUrgK,GACxClN,EAAMmtK,kBAEN,IAAIoC,IAAoBhC,EACpBrL,EAAeqN,EAAkBhC,EAASvxJ,IAAI+lJ,GAAe,GAE7DyN,EAAc,GAElBxvK,EAAMotK,kBAAiB,GAAM70K,SAAQ,SAAUgrC,GAO7C,GALKgsI,GACHrN,EAAa5yK,KAAKi0C,EAAMw+H,eAIrBx+H,EAAMl4B,MAAMgiI,OAAU9pG,EAAMl4B,MAAMgiI,MAAMpgJ,OAA7C,CAIA,IAAI6gL,EAAgBvqI,EAAMw+H,cAE1B,IAAKwN,GAAmBnN,EAAiBF,EAAc4L,GAAgB,CACrE,IAAI9H,EAAUziI,EAAMmiI,cAAcp6H,GAAc,CAC9C6rF,iBAAkB7rF,GAAc,GAAI+rF,EAAyB,GAAIr3H,EAAMm3H,mBACtEjqH,IAEHsiK,EAAYlgL,KAAK02K,EAAQzwK,MAAK,WAC5B,MAAO,CACLlC,KAAMy6K,EACN1hC,OAAQ,OAETzC,OAAM,SAAUyC,GACjB,OAAOv3I,QAAQE,OAAO,CACpB1B,KAAMy6K,EACN1hC,OAAQA,aAMhB,IAAI65B,EC1qBD,SAA0BuJ,GAC/B,IAAIvvK,GAAW,EACXhR,EAAQugL,EAAYviL,OACpBwiL,EAAU,GAEd,OAAKD,EAAYviL,OAIV,IAAI4H,SAAQ,SAAUC,EAASC,GACpCy6K,EAAYj3K,SAAQ,SAAUytK,EAASvtK,GACrCutK,EAAQr8B,OAAM,SAAUx0I,GAEtB,OADA8K,GAAW,EACJ9K,KACNI,MAAK,SAAUF,GAChBpG,GAAS,EACTwgL,EAAQh3K,GAASpD,EAEbpG,EAAQ,IAIRgR,GACFlL,EAAO06K,GAGT36K,EAAQ26K,aApBL56K,QAAQC,QAAQ,IDoqBF46K,CAAiBF,GACtCxvK,EAAMisK,oBAAsBhG,EAE5BA,EAAet8B,OAAM,SAAU8lC,GAC7B,OAAOA,KACNl6K,MAAK,SAAUk6K,GAChB,IAAIE,EAAqBF,EAAQzzJ,KAAI,SAAU8uJ,GAE7C,OADWA,EAAMz3K,QAInB2M,EAAMyuK,gBAAgBzuK,EAAMqG,MAAOspK,EAAoB,CACrDt9K,KAAM,mBAGR2N,EAAMgvK,sBAAsBW,EAAoBF,MAElD,IAAIG,EAAgB3J,EAAe1wK,MAAK,WACtC,OAAIyK,EAAMisK,sBAAwBhG,EACzBpxK,QAAQC,QAAQkL,EAAMupK,eAAerH,IAGvCrtK,QAAQE,OAAO,OACrB40I,OAAM,SAAU8lC,GACjB,IAAII,EAAYJ,EAAQ3xJ,QAAO,SAAUzoB,GACvC,OAAOA,GAAUA,EAAO+2I,OAAOn/I,UAEjC,OAAO4H,QAAQE,OAAO,CACpBlL,OAAQmW,EAAMupK,eAAerH,GAC7B4N,YAAaD,EACbE,UAAW/vK,EAAMisK,sBAAwBhG,OAO7C,OAHA2J,EAAcjmC,OAAM,SAAUx0I,GAC5B,OAAOA,KAEFy6K,GAIT9+K,KAAK67K,OAAS,WACZ3sK,EAAMmtK,kBAENntK,EAAM0sK,iBAAiBn3K,MAAK,SAAU1L,GACpC,IAAImmL,EAAWhwK,EAAMu6I,UAAUy1B,SAE/B,GAAIA,EACF,IACEA,EAASnmL,GACT,MAAOgY,GAEPkgB,QAAQjrB,MAAM+K,OAGjB8nI,OAAM,SAAUx0I,GACjB,IAAI86K,EAAiBjwK,EAAMu6I,UAAU01B,eAEjCA,GACFA,EAAe96K,OAKrBrE,KAAK86K,gBAAkBA,GA2BVsE,OAxBf,SAAiBt5C,GACf,IAAIu5C,EAAU5qK,WAEV6qK,EAAkB7qK,aAElBklK,EADmBppK,aAAe+uK,EAAiB,GACpB,GAEnC,IAAKD,EAAQnnK,QACX,GAAI4tH,EACFu5C,EAAQnnK,QAAU4tH,MACb,CAEL,IAIIy5C,EAAY,IAAI1E,IAJA,WAClBlB,EAAY,OAId0F,EAAQnnK,QAAUqnK,EAAUnE,UAIhC,MAAO,CAACiE,EAAQnnK,UEhwBlB,SAAS1Q,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAG7gB,IAAIg+K,GAAc/qK,gBAAoB,CACpCgrK,kBAAmB,aACnBC,kBAAmB,aACnBC,aAAc,aACdC,eAAgB,eAGdC,GAAe,SAAsB3pK,GACvC,IAAImwH,EAAmBnwH,EAAKmwH,iBACxBy5C,EAAe5pK,EAAK4pK,aACpBC,EAAe7pK,EAAK6pK,aACpB3pK,EAAWF,EAAKE,SAChB4pK,EAAcvrK,aAAiB+qK,IAC/BS,EAAWxrK,SAAa,IAC5B,OAAOA,gBAAoB+qK,GAAYvpK,SAAU,CAC/CpgB,MAAO2kD,GAAc,GAAIwlI,EAAa,CACpC35C,iBAAkB7rF,GAAc,GAAIwlI,EAAY35C,iBAAkB,GAAIA,GAItEo5C,kBAAmB,SAA2Bl9K,EAAM29K,GAC9CJ,GACFA,EAAav9K,EAAM,CACjB29K,cAAeA,EACfC,MAAOF,EAAS/nK,UAIpB8nK,EAAYP,kBAAkBl9K,EAAM29K,IAEtCR,kBAAmB,SAA2Bn9K,EAAMxJ,GAC9CgnL,GACFA,EAAax9K,EAAM,CACjBxJ,OAAQA,EACRonL,MAAOF,EAAS/nK,UAIpB8nK,EAAYN,kBAAkBn9K,EAAMxJ,IAEtC4mL,aAAc,SAAsBp9K,EAAMujI,GACpCvjI,IACF09K,EAAS/nK,QAAUsiC,GAAc,GAAIylI,EAAS/nK,QAASyU,YAAgB,GAAIpqB,EAAMujI,KAGnFk6C,EAAYL,aAAap9K,EAAMujI,IAEjC85C,eAAgB,SAAwBr9K,GACtC,IAAI69K,EAAW5lI,GAAc,GAAIylI,EAAS/nK,gBAEnCkoK,EAAS79K,GAChB09K,EAAS/nK,QAAUkoK,EACnBJ,EAAYJ,eAAer9K,OAG9B6T,IAIUopK,MC9Df,SAASh4K,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAQ7gB,IAmHe8kI,GAnHJ,SAAcpwH,EAAMsF,GAC7B,IAAIjZ,EAAO2T,EAAK3T,KACZ24K,EAAgBhlK,EAAKglK,cACrB9vE,EAASl1F,EAAKk1F,OACd06B,EAAO5vH,EAAK4vH,KACZ1vH,EAAWF,EAAKE,SAChBiqK,EAAiBnqK,EAAKtU,UACtB64E,OAA+B,IAAnB4lG,EAA4B,OAASA,EACjDh6C,EAAmBnwH,EAAKmwH,iBACxBi6C,EAAuBpqK,EAAK0hK,gBAC5BA,OAA2C,IAAzB0I,EAAkC,WAAaA,EACjErC,EAAiB/nK,EAAK+nK,eACtBsC,EAAkBrqK,EAAKsoK,eACvBgC,EAAYtqK,EAAKgpK,SACjBC,EAAiBjpK,EAAKipK,eACtBjkI,EAAYC,YAAyBjlC,EAAM,CAAC,OAAQ,gBAAiB,SAAU,OAAQ,WAAY,YAAa,mBAAoB,kBAAmB,iBAAkB,iBAAkB,WAAY,mBAEvM8pK,EAAcvrK,aAAiB+qK,IAG/BiB,EAAWrB,GAAQt5C,GAEnB46C,EADYnwK,aAAekwK,EAAU,GACZ,GAEzBE,EAAwBD,EAAaxH,iBAAiBE,KACtD0C,EAAe6E,EAAsB7E,aACrCC,EAAmB4E,EAAsB5E,iBACzCC,EAAe2E,EAAsB3E,aACrCC,EAAsB0E,EAAsB1E,oBAGhDxnK,sBAA0B+G,GAAK,WAC7B,OAAOklK,KAGTjsK,aAAgB,WAEd,OADAurK,EAAYL,aAAap9K,EAAMm+K,GACxB,WACLV,EAAYJ,eAAer9K,MAE5B,CAACy9K,EAAaU,EAAcn+K,IAE/B05K,EAAoBzhI,GAAc,GAAIwlI,EAAY35C,iBAAkB,GAAIA,IACxE21C,EAAa,CACXiC,eAAgBA,EAChBO,eAAgB,SAAwB0B,GAGtC,GAFAF,EAAYP,kBAAkBl9K,EAAM29K,GAEhCK,EAAiB,CACnB,IAAK,IAAIrrC,EAAO1xI,UAAUrH,OAAQ4jJ,EAAO,IAAI1oJ,MAAM69I,EAAO,EAAIA,EAAO,EAAI,GAAIT,EAAO,EAAGA,EAAOS,EAAMT,IAClGsL,EAAKtL,EAAO,GAAKjxI,UAAUixI,GAG7B8rC,EAAgB98K,WAAM,EAAQ,CAACy8K,GAAeh6K,OAAO65I,MAGzDm/B,SAAU,SAAkBnmL,GAC1BinL,EAAYN,kBAAkBn9K,EAAMxJ,GAEhCynL,GACFA,EAAUznL,IAGdomL,eAAgBA,IAGlB,IAAIyB,EAAWnsK,SAAa,MAC5BsnK,EAAiBb,GAAgB0F,EAAS1oK,SAErC0oK,EAAS1oK,UACZ0oK,EAAS1oK,SAAU,GAIrB,IAAI2oK,EAAezqK,EACf0qK,EAA0C,oBAAb1qK,EAE7B0qK,IAEFD,EAAezqK,EADFsqK,EAAajI,gBAAe,GACTiI,IAIlC5E,GAAcgF,GAEd,IAAIC,EAAgBtsK,WACpBA,aAAgB,YVZX,SAAmBqM,EAAQtf,GAChC,GAAIsf,IAAWtf,EACb,OAAO,EAGT,IAAKsf,GAAUtf,GAAUsf,IAAWtf,EAClC,OAAO,EAGT,IAAKsf,IAAWtf,GAA8B,WAApBq4C,YAAQ/4B,IAA4C,WAApB+4B,YAAQr4C,GAChE,OAAO,EAGT,IAAIylK,EAAavkK,OAAO6E,KAAKuZ,GACzBkgK,EAAat+K,OAAO6E,KAAK/F,GACzB+F,EAAO,IAAIa,IAAI,GAAGlC,OAAOq7C,YAAmB0lH,GAAa1lH,YAAmBy/H,KAChF,OAAOz/H,YAAmBh6C,GAAMsqK,OAAM,SAAU/wK,GAC9C,IAAImgL,EAAcngK,EAAOhgB,GACrBogL,EAAc1/K,EAAOV,GAEzB,MAA2B,oBAAhBmgL,GAAqD,oBAAhBC,GAIzCD,IAAgBC,MUXlBC,CAAUJ,EAAc7oK,SAAW,GAAIkzF,GAAU,KACpDs1E,EAAahF,UAAUtwE,GAAU,IAGnC21E,EAAc7oK,QAAUkzF,IACvB,CAACA,EAAQs1E,IACZ,IAAIU,EAAmB3sK,WAAc,WACnC,OAAO+lC,GAAc,GAAIkmI,EAAc,CACrC9I,gBAAiBA,MAElB,CAAC8I,EAAc9I,IACdyJ,EAAc5sK,gBAAoBqlK,IAAa7jK,SAAU,CAC3DpgB,MAAOurL,GACNP,GAEH,OAAkB,IAAdpmG,EACK4mG,EAGF5sK,gBAAoBgmE,EAAW/3E,OAAOW,OAAO,GAAI63C,EAAW,CACjEomI,SAAU,SAAkBn9H,GAC1BA,EAAM86E,iBACN96E,EAAMo9H,kBACNb,EAAa7E,YAEbwF,ICvHFG,GADe/sK,aAAiBgtK,IAEpCD,GAAQ3B,aAAeA,GACvB2B,GAAQvL,MAAQA,GAChBuL,GAAQlgI,KAAOA,GACfkgI,GAAQpC,QAAUA,GAEHoC,c,6BCbf,oGAiCA,cA2CC,mBACC,cAAO,K,OAvCE,EAAAtlB,OAA8B,IAAI,IAwC3C,EAAKxzI,QAAU,EAAKnoB,MAAM4oD,SAAS,kBACnC,EAAKoF,GAAK,YAAc,IAASruD,cACjC,EAAKwoB,QAAQiiC,KAAK,CAAE,GAAM,EAAK4D,KAC/B,EAAKrF,WAAW1qD,KAAK,EAAKkqB,SAE1B,EAAKihC,a,EAoMP,OAtPoC,iBAwDzB,YAAAY,KAAV,eA6BM10D,EA7BN,OAEKumK,EAAkBp8J,KAAK0oB,QAEvB,IAAe1oB,KAAKiS,OACnBpc,EAAYmK,KAAKiS,cACD,MACnBpc,EAAQA,EAAM4rB,QAAU,KAEzB26I,EAAgBzxG,KAAK,CAAE,GAAM90D,KAG1B,IAAemK,KAAKkS,OACnBrc,EAAYmK,KAAKkS,cACD,MACnBrc,EAAQA,EAAM4rB,QAAU,KAEzB26I,EAAgBzxG,KAAK,CAAE,GAAM90D,KAG1BmK,KAAK0hL,MACJ7rL,EAAYmK,KAAK0hL,cACD,MACnB7rL,EAAQA,EAAM4rB,QAAU,KAEzB26I,EAAgBzxG,KAAK,CAAE,GAAM90D,KAG1BmK,KAAK2hL,MACJ9rL,EAAYmK,KAAK2hL,cACD,MACnB9rL,EAAQA,EAAM4rB,QAAU,KAEzB26I,EAAgBzxG,KAAK,CAAE,GAAM90D,KAG9BumK,EAAgBpqG,mBAEhB,IAAW,IAAchyD,KAAKk8J,OAAO72J,aAAa,SAACtO,GAClD,IAAIsF,EAAItF,EAAE,GACN+3H,EAAO/3H,EAAE,GACTixC,EAAiC8mF,EAAK9mF,OAErC,IAAeA,KACnBA,EAAS3rC,GAAK,EAAK6/J,OAAO//J,OAAS,IAGpC,IAAIkgK,EAA0B,EAAK97J,MAAM+I,IAAI,QACzC,IAAewlH,EAAK/xE,QACvBs/G,EAAa1xG,KAAK,CAAE,aAAcmkE,EAAK/xE,MAAM/mD,aAE1C,IAAe84H,EAAKn+D,UACvB0rG,EAAa1xG,KAAK,CAAE,eAAgBmkE,EAAKn+D,UAGtC,IAAe3oB,IAClBq0H,EAAa1xG,KAAK,CAAE,OAAU3iB,IAG/Bo0H,EAAgB9yJ,IAAI+yJ,OAWf,YAAAvjF,SAAP,SAAgB/7B,EAAc4T,EAAkB3oB,GAC/ChoC,KAAKk8J,OAAO19J,KAAK,CAAEu+C,MAAOA,EAAO4T,QAASA,EAAS3oB,OAAQA,IAC3DhoC,KAAKuqD,QASN,sBAAW,oBAAK,C,IAYhB,WACC,OAAIvqD,KAAKowD,OACDpwD,KAAKowD,OAEN,e,IAhBR,SAAiB7vD,GACZP,KAAKowD,QAAU7vD,IAClBP,KAAKowD,OAAS7vD,EACdP,KAAKuqD,OACLhqD,EAAMqvD,UAAU5vD,KAAK0oB,W,gCAoBvB,sBAAW,iBAAE,C,IAKb,WACC,OAAO1oB,KAAK4hL,K,IANb,SAAc/rL,GACbmK,KAAK4hL,IAAM/rL,EACXmK,KAAKuqD,Q,gCAYN,sBAAW,iBAAE,C,IAKb,WACC,OAAOvqD,KAAK6hL,K,IANb,SAAchsL,GACbmK,KAAK6hL,IAAMhsL,EACXmK,KAAKuqD,Q,gCAaN,sBAAW,iBAAE,C,IAKb,WACC,OAAOvqD,KAAK8hL,K,IANb,SAAcjsL,GACbmK,KAAK8hL,IAAMjsL,EACXmK,KAAKuqD,Q,gCAYN,sBAAW,iBAAE,C,IAKb,WACC,OAAOvqD,KAAK+hL,K,IANb,SAAclsL,GACbmK,KAAK+hL,IAAMlsL,EACXmK,KAAKuqD,Q,gCASC,YAAA1J,SAAP,SAAgB//B,GACf,YAAM+/B,SAAQ,UAAC//B,GAEf9gB,KAAKomH,MAAMvlE,SAAS//B,EAAOslG,OAE3BpmH,KAAKiS,GAAK6O,EAAO7O,GACjBjS,KAAKkS,GAAK4O,EAAO5O,GAEjBlS,KAAK0hL,GAAK5gK,EAAO4gK,GACjB1hL,KAAK2hL,GAAK7gK,EAAO6gK,IAQlB,sBAAW,oBAAK,C,IAAhB,WACC,OAAO3hL,KAAKk8J,Q,gCAQN,YAAA3yJ,MAAP,WACCvJ,KAAKk8J,OAAO3yJ,SAId,EAtPA,CAAoC,KA8PpC,IAASnK,kBAAT,eAA+Ck3E,G,kDCrQhC0rG,EAxBgB,SAAkCvnG,GAC/D,IAAIv3E,EAAYu3E,EAAUv3E,UAE1B,IAAKA,IAAcA,EAAU++K,iBAC3B,MAAM,IAAI9rL,MAAM,sCAIlB,MAAmD,oBAAxC+M,EAAUg/K,0BACZznG,EAKJhmE,IAAM0tK,UAKXj/K,EAAUk/K,iCAAmCl/K,EAAUg/K,iCAChDh/K,EAAUg/K,0BACVznG,GANEA,GCfJ,SAAS4nG,EAAgBjsK,GAC9B,IAAI2yB,EAAM,GAIV,OAHAt0B,IAAMi2I,SAASjjJ,QAAQ2O,GAAU,SAAUu4C,GACzC5lB,EAAIvqC,KAAKmwD,MAEJ5lB,EAGF,SAASu5I,EAAyBlsK,EAAUtV,GACjD,IAAIioC,EAAM,KAWV,OAVI3yB,GACFA,EAAS3O,SAAQ,SAAUknD,GACrB5lB,GAGA4lB,GAASA,EAAM7tD,MAAQA,IACzBioC,EAAM4lB,MAIL5lB,EAGF,SAASw5I,EAA8BnsK,EAAUtV,EAAK0hL,GAC3D,IAAIz5I,EAAM,KAWV,OAVI3yB,GACFA,EAAS3O,SAAQ,SAAUknD,GACzB,GAAIA,GAASA,EAAM7tD,MAAQA,GAAO6tD,EAAMp0C,MAAMioK,GAAW,CACvD,GAAIz5I,EACF,MAAM,IAAI5yC,MAAM,qDAElB4yC,EAAM4lB,MAIL5lB,E,8BCjBM05I,EApBJ,CACTC,kBAAmB,SAA2BnoK,GAC5C,OAAOA,EAAMooK,gBAAkBpoK,EAAMqoK,kBAAoBroK,EAAMi8C,UAAUuQ,QAE3E87G,iBAAkB,SAA0BtoK,GAC1C,OAAOA,EAAMooK,gBAAkBpoK,EAAMuoK,iBAAmBvoK,EAAMi8C,UAAUusH,OAE1EC,iBAAkB,SAA0BzoK,GAC1C,OAAOA,EAAMooK,gBAAkBpoK,EAAM0oK,iBAAmB1oK,EAAMi8C,UAAU0sH,OAE1EC,oBAAqB,SAA6B5oK,GAChD,OAAOA,EAAMqoK,kBAAoBroK,EAAMi8C,UAAUuQ,QAEnDq8G,mBAAoB,SAA4B7oK,GAC9C,OAAOA,EAAMuoK,iBAAmBvoK,EAAMi8C,UAAUusH,OAElDM,mBAAoB,SAA4B9oK,GAC9C,OAAOA,EAAM0oK,iBAAmB1oK,EAAMi8C,UAAU0sH,QCjBhD/pI,EAAe,WAAc,SAAS/rB,EAAiB5rB,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAAiB,OAAO,SAAUpsB,EAAassB,EAAYC,GAAiJ,OAA9HD,GAAYhsB,EAAiBN,EAAY5pB,UAAWk2C,GAAiBC,GAAajsB,EAAiBN,EAAausB,GAAqBvsB,GAA7gB,GAEnB,SAASF,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAEhH,SAASs0C,EAA2B1zC,EAAMnQ,GAAQ,IAAKmQ,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOpQ,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BmQ,EAAPnQ,EAUlO,IAAIqtL,EAAgB,CAClBP,MAAO,kBACPh8G,OAAQ,mBACRm8G,MAAO,mBA8FMK,EA3FI,SAAUr/C,GAG3B,SAASq/C,IAGP,OAFA32J,EAAgB5sB,KAAMujL,GAEfzpI,EAA2B95C,MAAOujL,EAAa3gL,WAAaF,OAAOoE,eAAey8K,IAAe9/K,MAAMzD,KAAMwD,YAkFtH,OAtGF,SAAmB82C,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,kEAAoE+0C,GAAeD,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUvxC,YAAY,EAAOE,UAAU,EAAMC,cAAc,KAAeqxC,IAAY73C,OAAOC,eAAiBD,OAAOC,eAAe23C,EAAUC,GAAcD,EAAS13C,UAAY23C,GAe/dF,CAAUkpI,EAAcr/C,GAQxB/qF,EAAaoqI,EAAc,CAAC,CAC1BziL,IAAK,uBACLjL,MAAO,WACLmK,KAAK8uH,SAEN,CACDhuH,IAAK,qBACLjL,MAAO,SAA4B2O,GAC7Bg/K,EAASX,iBAAiB7iL,KAAKua,OACjCva,KAAK42D,WAAW,QAASpyD,GAEzBA,MAGH,CACD1D,IAAK,sBACLjL,MAAO,SAA6B2O,GAC9Bg/K,EAASd,kBAAkB1iL,KAAKua,OAClCva,KAAK42D,WAAW,SAAUpyD,GAE1BA,MAGH,CACD1D,IAAK,qBACLjL,MAAO,SAA4B2O,GAC7Bg/K,EAASR,iBAAiBhjL,KAAKua,OACjCva,KAAK42D,WAAW,QAASpyD,GAKzBA,MAGH,CACD1D,IAAK,aACLjL,MAAO,SAAoB4tL,EAAeC,GACxC,IAAIl0K,EAASxP,KAETmwD,EAAOwzH,IAAS1f,YAAYjkK,MAC5Bua,EAAQva,KAAKua,MACbooK,EAAiBpoK,EAAMooK,eACvBiB,EAAsC,kBAAnBjB,EACvB3iL,KAAK8uH,OACL,IAAIl1H,EAAM,WACR4V,EAAOq0K,QAAU,KACjBH,KAEF,IAAKI,MAA4BvpK,EAAMi8C,UAAUitH,KAAmBd,GAAkBpoK,EAAM+oK,EAAcG,IAAiB,CACzH,IAAIlhL,EAAOqhL,EAAYjB,EAAec,GAAiBd,EAAiB,IAAMc,EAC1EM,EAAaxhL,EAAO,UACpBqhL,GAAajB,EAAec,EAAgB,YAC9CM,EAAapB,EAAec,EAAgB,WAE9CzjL,KAAK6jL,QAAUG,YAAW7zH,EAAM,CAC9B5tD,KAAMA,EACNulJ,OAAQi8B,GACPnqL,QAEHoG,KAAK6jL,QAAUtpK,EAAMi8C,UAAUitH,GAAetzH,EAAMv2D,KAGvD,CACDkH,IAAK,OACLjL,MAAO,WACL,IAAIguL,EAAU7jL,KAAK6jL,QACfA,IACF7jL,KAAK6jL,QAAU,KACfA,EAAQ/0D,UAGX,CACDhuH,IAAK,SACLjL,MAAO,WACL,OAAOmK,KAAKua,MAAMnE,aAIfmtK,EAxFU,CAyFjB9uK,IAAMgmE,WC7GJtgE,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,GAEnP23C,EAAe,WAAc,SAAS/rB,EAAiB5rB,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAAiB,OAAO,SAAUpsB,EAAassB,EAAYC,GAAiJ,OAA9HD,GAAYhsB,EAAiBN,EAAY5pB,UAAWk2C,GAAiBC,GAAajsB,EAAiBN,EAAausB,GAAqBvsB,GAA7gB,GAiBnB,IAAIm3J,EAAa,cAAgBv/J,KAAK+e,MAEtC,SAASygJ,EAAqB3pK,GAC5B,IAAInE,EAAWmE,EAAMnE,SACrB,OAAI3B,IAAMgiI,eAAergI,KAClBA,EAAStV,IACL2T,IAAMmiI,aAAaxgI,EAAU,CAClCtV,IAAKmjL,IAIJ7tK,EAGT,SAAS+tK,KAET,IAAIC,EAAU,SAAUlgD,GAGtB,SAASkgD,EAAQ7pK,IAhCnB,SAAyBsS,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAiC5GonB,CAAgB5sB,KAAMokL,GAEtB,IAAIl1K,EAjCR,SAAoC9I,EAAMnQ,GAAQ,IAAKmQ,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOpQ,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BmQ,EAAPnQ,EAiClN6jD,CAA2B95C,MAAOokL,EAAQxhL,WAAaF,OAAOoE,eAAes9K,IAAUnuL,KAAK+J,KAAMua,IAa9G,OAXA8pK,EAAiBpuL,KAAKiZ,GAEtBA,EAAMo1K,uBAAyB,GAC/Bp1K,EAAMq1K,YAAc,GACpBr1K,EAAMs1K,YAAc,GAEpBt1K,EAAMrH,MAAQ,CACZuO,SAAUisK,EAAgB6B,EAAqB3pK,KAGjDrL,EAAMu1K,aAAe,GACdv1K,EA+LT,OA3OF,SAAmBorC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,kEAAoE+0C,GAAeD,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUvxC,YAAY,EAAOE,UAAU,EAAMC,cAAc,KAAeqxC,IAAY73C,OAAOC,eAAiBD,OAAOC,eAAe23C,EAAUC,GAAcD,EAAS13C,UAAY23C,GA0B/dF,CAAU+pI,EAASlgD,GAqBnB/qF,EAAairI,EAAS,CAAC,CACrBtjL,IAAK,oBACLjL,MAAO,WACL,IAAI2Z,EAASxP,KAETwiL,EAAWxiL,KAAKua,MAAMioK,SACtBpsK,EAAWpW,KAAK6H,MAAMuO,SACtBosK,IACFpsK,EAAWA,EAAS4W,QAAO,SAAU2hC,GACnC,QAASA,EAAMp0C,MAAMioK,OAGzBpsK,EAAS3O,SAAQ,SAAUknD,GACrBA,GACFn/C,EAAOk1K,cAAc/1H,EAAM7tD,UAIhC,CACDA,IAAK,4BACLjL,MAAO,SAAmCszK,GACxC,IAAIwb,EAAS3kL,KAEbA,KAAKmpK,UAAYA,EACjB,IAAIyb,EAAevC,EAAgB6B,EAAqB/a,IACpD5uJ,EAAQva,KAAKua,MAEbA,EAAMsqK,WACRniL,OAAO6E,KAAKvH,KAAKskL,wBAAwB78K,SAAQ,SAAU3G,GACzD6jL,EAAO71D,KAAKhuH,MAGhB,IAAI0hL,EAAWjoK,EAAMioK,SACjB8B,EAAyBtkL,KAAKskL,uBAE9BQ,EAAkBvqK,EAAMsqK,UAAYxC,EAAgB6B,EAAqB3pK,IAAUva,KAAK6H,MAAMuO,SAE9F2uK,EAAc,GACdvC,GACFsC,EAAgBr9K,SAAQ,SAAUu9K,GAChC,IA7Fe79K,EAAKrG,EAAKjL,EA6FrBovL,EAAYD,GAAgB1C,EAAyBsC,EAAcI,EAAalkL,KAChFokL,OAAW,GAIbA,EAHID,GAAcA,EAAU1qK,MAAMioK,KAAcwC,EAAazqK,MAAMioK,GAGxDyC,EAFAxwK,IAAMmiI,aAAaquC,GAAaD,GAhGpBnvL,GAgGgE,GAhGrEiL,EAgG2D0hL,KAhGhEr7K,EAgG4D,IAhGvBzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,MAqG/L49K,EAAYvmL,KAAK0mL,MAGrBN,EAAan9K,SAAQ,SAAUw9K,GACxBA,GAAc3C,EAAyBwC,EAAiBG,EAAUnkL,MACrEikL,EAAYvmL,KAAKymL,OAIrBF,EH1CD,SAAuB7rL,EAAMkL,GAClC,IAAI2kC,EAAM,GAINo8I,EAAsB,GACtBC,EAAkB,GAqBtB,OApBAlsL,EAAKuO,SAAQ,SAAUknD,GACjBA,GAAS2zH,EAAyBl+K,EAAMuqD,EAAM7tD,KAC5CskL,EAAgBjpL,SAClBgpL,EAAoBx2H,EAAM7tD,KAAOskL,EACjCA,EAAkB,IAGpBA,EAAgB5mL,KAAKmwD,MAIzBvqD,EAAKqD,SAAQ,SAAUknD,GACjBA,GAASjsD,OAAOQ,UAAUJ,eAAe7M,KAAKkvL,EAAqBx2H,EAAM7tD,OAC3EioC,EAAMA,EAAI7iC,OAAOi/K,EAAoBx2H,EAAM7tD,OAE7CioC,EAAIvqC,KAAKmwD,MAGX5lB,EAAMA,EAAI7iC,OAAOk/K,GGiBGC,CAAcP,EAAiBF,GAI/C5kL,KAAKysD,SAAS,CACZr2C,SAAU2uK,IAGZH,EAAan9K,SAAQ,SAAUknD,GAC7B,IAAI7tD,EAAM6tD,GAASA,EAAM7tD,IACzB,IAAI6tD,IAAS21H,EAAuBxjL,GAApC,CAGA,IAAIwkL,EAAU32H,GAAS2zH,EAAyBwC,EAAiBhkL,GACjE,GAAI0hL,EAAU,CACZ,IAAI+C,EAAa52H,EAAMp0C,MAAMioK,GAC7B,GAAI8C,GACc/C,EAA8BuC,EAAiBhkL,EAAK0hL,IAClD+C,GAChBZ,EAAOJ,YAAY/lL,KAAKsC,QAEjBykL,GACTZ,EAAOJ,YAAY/lL,KAAKsC,QAEhBwkL,GACVX,EAAOJ,YAAY/lL,KAAKsC,OAI5BgkL,EAAgBr9K,SAAQ,SAAUknD,GAChC,IAAI7tD,EAAM6tD,GAASA,EAAM7tD,IACzB,IAAI6tD,IAAS21H,EAAuBxjL,GAApC,CAGA,IAAI0kL,EAAU72H,GAAS2zH,EAAyBsC,EAAc9jL,GAC9D,GAAI0hL,EAAU,CACZ,IAAIiD,EAAY92H,EAAMp0C,MAAMioK,GAC5B,GAAIgD,GACejD,EAA8BqC,EAAc9jL,EAAK0hL,IAC/CiD,GACjBd,EAAOH,YAAYhmL,KAAKsC,QAEjB2kL,GACTd,EAAOH,YAAYhmL,KAAKsC,QAEhB0kL,GACVb,EAAOH,YAAYhmL,KAAKsC,SAI7B,CACDA,IAAK,qBACLjL,MAAO,WACL,IAAI0uL,EAAcvkL,KAAKukL,YACvBvkL,KAAKukL,YAAc,GACnBA,EAAY98K,QAAQzH,KAAK0lL,cACzB,IAAIlB,EAAcxkL,KAAKwkL,YACvBxkL,KAAKwkL,YAAc,GACnBA,EAAY/8K,QAAQzH,KAAK2lL,gBAE1B,CACD7kL,IAAK,oBACLjL,MAAO,SAA2BivL,EAAiBhkL,GACjD,IAAI0hL,EAAWxiL,KAAKua,MAAMioK,SAC1B,OAAIA,EACKD,EAA8BuC,EAAiBhkL,EAAK0hL,GAEtDF,EAAyBwC,EAAiBhkL,KAElD,CACDA,IAAK,OACLjL,MAAO,SAAciL,UACZd,KAAKskL,uBAAuBxjL,GACnC,IAAIc,EAAY5B,KAAKykL,aAAa3jL,GAC9Bc,GACFA,EAAUktH,SAGb,CACDhuH,IAAK,SACLjL,MAAO,WACL,IAAI+vL,EAAS5lL,KAETua,EAAQva,KAAKua,MACjBva,KAAKmpK,UAAY5uJ,EACjB,IAAIsrK,EAAgB7lL,KAAK6H,MAAMuO,SAC3BA,EAAW,KACXyvK,IACFzvK,EAAWyvK,EAAc36J,KAAI,SAAUyjC,GACrC,GAAc,OAAVA,QAA4BjiD,IAAViiD,EACpB,OAAOA,EAET,IAAKA,EAAM7tD,IACT,MAAM,IAAI3K,MAAM,0CAElB,OAAOse,IAAMmC,cACX2sK,EACA,CACEziL,IAAK6tD,EAAM7tD,IACX0a,IAAK,SAAa20C,GAChBy1H,EAAOnB,aAAa91H,EAAM7tD,KAAOqvD,GAEnCqG,UAAWj8C,EAAMi8C,UACjBmsH,eAAgBpoK,EAAMooK,eACtBG,gBAAiBvoK,EAAMuoK,gBACvBF,iBAAkBroK,EAAMqoK,iBACxBK,gBAAiB1oK,EAAM0oK,iBAEzBt0H,OAIN,IAAI8rB,EAAYlgE,EAAM3Y,UACtB,GAAI64E,EAAW,CACb,IAAIqrG,EAAcvrK,EAOlB,MANyB,kBAAdkgE,IACTqrG,EAAc3rK,EAAS,CACrB4gC,UAAWxgC,EAAMwgC,UACjBE,MAAO1gC,EAAM0gC,OACZ1gC,EAAMwrK,iBAEJtxK,IAAMmC,cACX6jE,EACAqrG,EACA1vK,GAGJ,OAAOA,EAAS,IAAM,SAInBguK,EAlNK,CAmNZ3vK,IAAMgmE,WAER2pG,EAAQ4B,WAAY,EACpB5B,EAAQx/C,aAAe,CACrBpuE,UAAW,GACX50D,UAAW,OACXmkL,eAAgB,GAChBjD,iBAAiB,EACjBG,iBAAiB,EACjBL,kBAAkB,EAClBqD,MAAO9B,EACP+B,QAAS/B,EACTgC,QAAShC,EACTiC,SAAUjC,GAGZ,IAAIE,EAAmB,WACrB,IAAIgC,EAASrmL,KAEbA,KAAK0lL,aAAe,SAAU5kL,GAExBulL,EAAO5B,aAAa3jL,KACtBulL,EAAO/B,uBAAuBxjL,IAAO,EACrCulL,EAAO5B,aAAa3jL,GAAKwlL,mBAAmBD,EAAOE,iBAAiBz3K,KAAKu3K,EAAQvlL,EAAK,YAI1Fd,KAAK0kL,cAAgB,SAAU5jL,GACzBulL,EAAO5B,aAAa3jL,KACtBulL,EAAO/B,uBAAuBxjL,IAAO,EACrCulL,EAAO5B,aAAa3jL,GAAK0lL,oBAAoBH,EAAOE,iBAAiBz3K,KAAKu3K,EAAQvlL,EAAK,aAI3Fd,KAAKumL,iBAAmB,SAAUzlL,EAAKS,GACrC,IAAIgZ,EAAQ8rK,EAAO9rK,MAGnB,UAFO8rK,EAAO/B,uBAAuBxjL,IAEjCyZ,EAAMsqK,WAAatqK,IAAU8rK,EAAOld,UAAxC,CAGA,IAAI2b,EAAkBzC,EAAgB6B,EAAqB3pK,IACtD8rK,EAAOI,kBAAkB3B,EAAiBhkL,GAG3B,WAATS,EACLiiL,EAASL,oBAAoB5oK,KAC/BA,EAAM6rK,SAAStlL,GACfyZ,EAAM0rK,MAAMnlL,GAAK,IAEV0iL,EAASJ,mBAAmB7oK,KACrCA,EAAM2rK,QAAQplL,GACdyZ,EAAM0rK,MAAMnlL,GAAK,IARjBulL,EAAOV,aAAa7kL,KAYxBd,KAAK2lL,aAAe,SAAU7kL,GAExBulL,EAAO5B,aAAa3jL,KACtBulL,EAAO/B,uBAAuBxjL,IAAO,EACrCulL,EAAO5B,aAAa3jL,GAAK4lL,mBAAmBL,EAAOM,kBAAkB73K,KAAKu3K,EAAQvlL,MAItFd,KAAK2mL,kBAAoB,SAAU7lL,GACjC,IAAIyZ,EAAQ8rK,EAAO9rK,MAGnB,UAFO8rK,EAAO/B,uBAAuBxjL,IAEjCyZ,EAAMsqK,WAAatqK,IAAU8rK,EAAOld,UAAxC,CAGA,IAAI2b,EAAkBzC,EAAgB6B,EAAqB3pK,IAE3D,GAAI8rK,EAAOI,kBAAkB3B,EAAiBhkL,GAC5CulL,EAAOX,aAAa5kL,OACf,CACL,IAAIlH,EAAM,WACJ4pL,EAASH,mBAAmB9oK,KAC9BA,EAAM4rK,QAAQrlL,GACdyZ,EAAM0rK,MAAMnlL,GAAK,MHhRpB,SAAwB8lL,EAAIC,EAAIrE,GACrC,IAAIsE,EAAOF,EAAGzqL,SAAW0qL,EAAG1qL,OAe5B,OAdI2qL,GACFF,EAAGn/K,SAAQ,SAAUknD,EAAOhnD,GAC1B,IAAIo/K,EAASF,EAAGl/K,GACZgnD,GAASo4H,IACPp4H,IAAUo4H,IAAWp4H,GAASo4H,GAEvBp4H,EAAM7tD,MAAQimL,EAAOjmL,KAErB0hL,GAAY7zH,EAAMp0C,MAAMioK,KAAcuE,EAAOxsK,MAAMioK,MAH5DsE,GAAO,MASRA,EGmQEE,CAAeX,EAAOx+K,MAAMuO,SAAU0uK,EAAiBvqK,EAAMioK,UAChE6D,EAAO55H,SAAS,CACdr2C,SAAU0uK,GACTlrL,GAEHA,QAMOooL,MAAyBoC,I,6BCnVxC,qDAEWhL,EAAY,yBAEnB6N,EAAc,WAChB1rI,aAAQ,EAAO,0EAGb5kC,EAAUlC,gBAAoB,CAChC4lK,cAAe4M,EACfxO,eAAgBwO,EAChB5L,cAAe4L,EACf3L,eAAgB2L,EAChB1L,gBAAiB0L,EACjBlP,eAAgBkP,EAChBnP,kBAAmBmP,EACnBzL,mBAAoByL,EACpBxL,YAAawL,EACbvL,UAAWuL,EACXtL,eAAgBsL,EAChBrL,eAAgBqL,EAChBpL,OAAQoL,EACR/N,iBAAkB,WAEhB,OADA+N,IACO,CACL9lL,SAAU8lL,EACVvN,cAAeuN,EACfnL,aAAcmL,EACdlL,iBAAkBkL,EAClBjL,aAAciL,EACd/K,UAAW+K,EACXhL,oBAAqBgL,MAIZtwK,O,qPCnCf,SAASuwK,EAAWC,GAClB,MAA8B,MAAvBA,EAAS/yI,OAAO,GAIzB,SAASgzI,EAAU5uI,EAAM7wC,GACvB,IAAK,IAAItL,EAAIsL,EAAO+lB,EAAIrxB,EAAI,EAAGkH,EAAIi1C,EAAKr8C,OAAQuxB,EAAInqB,EAAGlH,GAAK,EAAGqxB,GAAK,EAClE8qB,EAAKn8C,GAAKm8C,EAAK9qB,GAGjB8qB,EAAK/yC,MAgEQ4hL,MA5Df,SAAyBn3J,EAAIC,QACdzjB,IAATyjB,IAAoBA,EAAO,IAE/B,IAkBIm3J,EAlBAC,EAAWr3J,GAAMA,EAAGjO,MAAM,MAAS,GACnCulK,EAAar3J,GAAQA,EAAKlO,MAAM,MAAS,GAEzCwlK,EAAUv3J,GAAMg3J,EAAWh3J,GAC3Bw3J,EAAYv3J,GAAQ+2J,EAAW/2J,GAC/Bw3J,EAAaF,GAAWC,EAW5B,GATIx3J,GAAMg3J,EAAWh3J,GAEnBs3J,EAAYD,EACHA,EAAQprL,SAEjBqrL,EAAU/hL,MACV+hL,EAAYA,EAAUthL,OAAOqhL,KAG1BC,EAAUrrL,OAAQ,MAAO,IAG9B,GAAIqrL,EAAUrrL,OAAQ,CACpB,IAAI8Y,EAAOuyK,EAAUA,EAAUrrL,OAAS,GACxCmrL,EAA4B,MAATryK,GAAyB,OAATA,GAA0B,KAATA,OAEpDqyK,GAAmB,EAIrB,IADA,IAAIM,EAAK,EACAvrL,EAAImrL,EAAUrrL,OAAQE,GAAK,EAAGA,IAAK,CAC1C,IAAIy9D,EAAO0tH,EAAUnrL,GAER,MAATy9D,EACFstH,EAAUI,EAAWnrL,GACH,OAATy9D,GACTstH,EAAUI,EAAWnrL,GACrBurL,KACSA,IACTR,EAAUI,EAAWnrL,GACrBurL,KAIJ,IAAKD,EAAY,KAAOC,IAAMA,EAAIJ,EAAUx7J,QAAQ,OAGlD27J,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAON,EAAWM,EAAU,KAExCA,EAAUx7J,QAAQ,IAEpB,IAAIznB,EAASijL,EAAU/gL,KAAK,KAI5B,OAFI6gL,GAA0C,MAAtB/iL,EAAOkiB,QAAQ,KAAYliB,GAAU,KAEtDA,GCvET,SAASspB,EAAQ1mB,GACf,OAAOA,EAAI0mB,QAAU1mB,EAAI0mB,UAAYnrB,OAAOQ,UAAU2qB,QAAQ53B,KAAKkR,GAkCtD0gL,MA/Bf,SAASA,EAAW9wL,EAAG0L,GAErB,GAAI1L,IAAM0L,EAAG,OAAO,EAGpB,GAAS,MAAL1L,GAAkB,MAAL0L,EAAW,OAAO,EAEnC,GAAIpL,MAAMD,QAAQL,GAChB,OACEM,MAAMD,QAAQqL,IACd1L,EAAEoF,SAAWsG,EAAEtG,QACfpF,EAAE86K,OAAM,SAAS1nI,EAAMxiC,GACrB,OAAOkgL,EAAW19I,EAAM1nC,EAAEkF,OAKhC,GAAiB,kBAAN5Q,GAA+B,kBAAN0L,EAAgB,CAClD,IAAIqlL,EAASj6J,EAAQ92B,GACjBgxL,EAASl6J,EAAQprB,GAErB,OAAIqlL,IAAW/wL,GAAKgxL,IAAWtlL,EAAUolL,EAAWC,EAAQC,GAErDrlL,OAAO6E,KAAK7E,OAAOW,OAAO,GAAItM,EAAG0L,IAAIovK,OAAM,SAAS/wK,GACzD,OAAO+mL,EAAW9wL,EAAE+J,GAAM2B,EAAE3B,OAIhC,OAAO,G,SC1BT,SAASknL,EAAgBl8K,GACvB,MAA0B,MAAnBA,EAAKsoC,OAAO,GAAatoC,EAAO,IAAMA,EAE/C,SAASm8K,EAAkBn8K,GACzB,MAA0B,MAAnBA,EAAKsoC,OAAO,GAAatoC,EAAK2a,OAAO,GAAK3a,EAKnD,SAASo8K,EAAcp8K,EAAM+jC,GAC3B,OAJF,SAAqB/jC,EAAM+jC,GACzB,OAA4D,IAArD/jC,EAAK+X,cAAc/sB,QAAQ+4C,EAAOhsB,iBAAuE,IAA/C,MAAM/sB,QAAQgV,EAAKsoC,OAAOvE,EAAO1zC,SAG3FgsL,CAAYr8K,EAAM+jC,GAAU/jC,EAAK2a,OAAOopB,EAAO1zC,QAAU2P,EAElE,SAASs8K,EAAmBt8K,GAC1B,MAAwC,MAAjCA,EAAKsoC,OAAOtoC,EAAK3P,OAAS,GAAa2P,EAAKnD,MAAM,GAAI,GAAKmD,EA0BpE,SAASu8K,EAAWhnK,GAClB,IAAI8lK,EAAW9lK,EAAS8lK,SACpBmB,EAASjnK,EAASinK,OAClBl+J,EAAO/I,EAAS+I,KAChBte,EAAOq7K,GAAY,IAGvB,OAFImB,GAAqB,MAAXA,IAAgBx8K,GAA6B,MAArBw8K,EAAOl0I,OAAO,GAAak0I,EAAS,IAAMA,GAC5El+J,GAAiB,MAATA,IAActe,GAA2B,MAAnBse,EAAKgqB,OAAO,GAAahqB,EAAO,IAAMA,GACjEte,EAGT,SAAS4zI,EAAe5zI,EAAMjE,EAAO/G,EAAK0+I,GACxC,IAAIn+H,EAEgB,kBAATvV,GAETuV,EAvCJ,SAAmBvV,GACjB,IAAIq7K,EAAWr7K,GAAQ,IACnBw8K,EAAS,GACTl+J,EAAO,GACPm+J,EAAYpB,EAASrwL,QAAQ,MAEd,IAAfyxL,IACFn+J,EAAO+8J,EAAS1gK,OAAO8hK,GACvBpB,EAAWA,EAAS1gK,OAAO,EAAG8hK,IAGhC,IAAIC,EAAcrB,EAASrwL,QAAQ,KAOnC,OALqB,IAAjB0xL,IACFF,EAASnB,EAAS1gK,OAAO+hK,GACzBrB,EAAWA,EAAS1gK,OAAO,EAAG+hK,IAGzB,CACLrB,SAAUA,EACVmB,OAAmB,MAAXA,EAAiB,GAAKA,EAC9Bl+J,KAAe,MAATA,EAAe,GAAKA,GAkBfq+J,CAAU38K,IACZjE,MAAQA,QAIS6E,KAD1B2U,EAAWlH,YAAS,GAAIrO,IACXq7K,WAAwB9lK,EAAS8lK,SAAW,IAErD9lK,EAASinK,OACuB,MAA9BjnK,EAASinK,OAAOl0I,OAAO,KAAY/yB,EAASinK,OAAS,IAAMjnK,EAASinK,QAExEjnK,EAASinK,OAAS,GAGhBjnK,EAAS+I,KACqB,MAA5B/I,EAAS+I,KAAKgqB,OAAO,KAAY/yB,EAAS+I,KAAO,IAAM/I,EAAS+I,MAEpE/I,EAAS+I,KAAO,QAGJ1d,IAAV7E,QAA0C6E,IAAnB2U,EAASxZ,QAAqBwZ,EAASxZ,MAAQA,IAG5E,IACEwZ,EAAS8lK,SAAWuB,UAAUrnK,EAAS8lK,UACvC,MAAO9iL,GACP,MAAIA,aAAaskL,SACT,IAAIA,SAAS,aAAetnK,EAAS8lK,SAAW,iFAEhD9iL,EAoBV,OAhBIvD,IAAKugB,EAASvgB,IAAMA,GAEpB0+I,EAEGn+H,EAAS8lK,SAE6B,MAAhC9lK,EAAS8lK,SAAS/yI,OAAO,KAClC/yB,EAAS8lK,SAAWE,EAAgBhmK,EAAS8lK,SAAU3nC,EAAgB2nC,WAFvE9lK,EAAS8lK,SAAW3nC,EAAgB2nC,SAMjC9lK,EAAS8lK,WACZ9lK,EAAS8lK,SAAW,KAIjB9lK,EAET,SAASunK,EAAkB7xL,EAAG0L,GAC5B,OAAO1L,EAAEowL,WAAa1kL,EAAE0kL,UAAYpwL,EAAEuxL,SAAW7lL,EAAE6lL,QAAUvxL,EAAEqzB,OAAS3nB,EAAE2nB,MAAQrzB,EAAE+J,MAAQ2B,EAAE3B,KAAO+mL,EAAW9wL,EAAE8Q,MAAOpF,EAAEoF,OAG7H,SAASghL,IACP,IAAIlnB,EAAS,KAiCb,IAAIxsJ,EAAY,GA4BhB,MAAO,CACL2zK,UA5DF,SAAmBC,GAGjB,OADApnB,EAASonB,EACF,WACDpnB,IAAWonB,IAAYpnB,EAAS,QAyDtCqnB,oBArDF,SAA6B3nK,EAAUjK,EAAQ6xK,EAAqBr0K,GAIlE,GAAc,MAAV+sJ,EAAgB,CAClB,IAAIp9J,EAA2B,oBAAXo9J,EAAwBA,EAAOtgJ,EAAUjK,GAAUuqJ,EAEjD,kBAAXp9J,EAC0B,oBAAxB0kL,EACTA,EAAoB1kL,EAAQqQ,GAG5BA,GAAS,GAIXA,GAAoB,IAAXrQ,QAGXqQ,GAAS,IAmCXs0K,eA7BF,SAAwB36K,GACtB,IAAI6nD,GAAW,EAEf,SAASlhD,IACHkhD,GAAU7nD,EAAG9K,WAAM,EAAQD,WAIjC,OADA2R,EAAU3W,KAAK0W,GACR,WACLkhD,GAAW,EACXjhD,EAAYA,EAAU6X,QAAO,SAAUmd,GACrC,OAAOA,IAASj1B,OAmBpBi0K,gBAdF,WACE,IAAK,IAAIj0C,EAAO1xI,UAAUrH,OAAQoK,EAAO,IAAIlP,MAAM69I,GAAOT,EAAO,EAAGA,EAAOS,EAAMT,IAC/EluI,EAAKkuI,GAAQjxI,UAAUixI,GAGzBt/H,EAAU1N,SAAQ,SAAUyN,GAC1B,OAAOA,EAASzR,WAAM,EAAQ8C,QAYpC,IAAI6iL,IAAiC,qBAAXtyK,SAA0BA,OAAOC,WAAYD,OAAOC,SAASH,eACvF,SAASyyK,EAAgBtjH,EAASnxD,GAChCA,EAASkC,OAAOwyK,QAAQvjH,IA2C1B,SAASwjH,IACP,IACE,OAAOzyK,OAAOqoI,QAAQt3I,OAAS,GAC/B,MAAOxD,GAGP,MAAO,IASX,SAASmlL,EAAqBjvK,QACd,IAAVA,IACFA,EAAQ,IAGT6uK,GAAsGK,aAAU,GACjH,IAAIC,EAAgB5yK,OAAOqoI,QACvBwqC,EAvDN,WACE,IAAIC,EAAK9yK,OAAO2qE,UAAUC,UAC1B,QAAmC,IAA9BkoG,EAAG9yL,QAAQ,gBAAuD,IAA/B8yL,EAAG9yL,QAAQ,iBAA2D,IAAjC8yL,EAAG9yL,QAAQ,mBAAqD,IAA1B8yL,EAAG9yL,QAAQ,YAAqD,IAAjC8yL,EAAG9yL,QAAQ,oBACtJggB,OAAOqoI,SAAW,cAAeroI,OAAOqoI,SAoD3B0qC,GAChBC,KA7CsD,IAAnDhzK,OAAO2qE,UAAUC,UAAU5qF,QAAQ,YA8CtCizL,EAASxvK,EACTyvK,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOd,oBAC/BA,OAAgD,IAA1BiB,EAAmCb,EAAkBa,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAW9vK,EAAM8vK,SAAWjC,EAAmBJ,EAAgBztK,EAAM8vK,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIr0K,EAAOq0K,GAAgB,GACvBzpL,EAAMoV,EAAKpV,IACX+G,EAAQqO,EAAKrO,MAEb2iL,EAAmB1zK,OAAOuK,SAI1BvV,EAHW0+K,EAAiBrD,SACnBqD,EAAiBlC,OACnBkC,EAAiBpgK,KAI5B,OADIigK,IAAUv+K,EAAOo8K,EAAcp8K,EAAMu+K,IAClC3qC,EAAe5zI,EAAMjE,EAAO/G,GAGrC,SAAS2pL,IACP,OAAOlzL,KAAKg7I,SAASv8I,SAAS,IAAIywB,OAAO,EAAG2jK,GAG9C,IAAIM,EAAoB7B,IAExB,SAASp8H,EAASzuC,GAChB7D,YAASglI,EAASnhI,GAElBmhI,EAAQhjJ,OAASutL,EAAcvtL,OAC/BuuL,EAAkBvB,gBAAgBhqC,EAAQ99H,SAAU89H,EAAQ/nI,QAG9D,SAASuzK,EAAexmI,IApE1B,SAAmCA,GACjC,YAAuBz3C,IAAhBy3C,EAAMt8C,QAAiE,IAA1C45E,UAAUC,UAAU5qF,QAAQ,UAqE1D8zL,CAA0BzmI,IAC9B0mI,EAAUP,EAAenmI,EAAMt8C,QAGjC,SAASijL,IACPD,EAAUP,EAAef,MAG3B,IAAIwB,GAAe,EAEnB,SAASF,EAAUxpK,GACjB,GAAI0pK,EACFA,GAAe,EACft+H,QACK,CAELi+H,EAAkB1B,oBAAoB3nK,EADzB,MAC2C4nK,GAAqB,SAAU+B,GACjFA,EACFv+H,EAAS,CACPr1C,OAJO,MAKPiK,SAAUA,IASpB,SAAmB4pK,GACjB,IAAIrqC,EAAazB,EAAQ99H,SAIrBwK,EAAUq/J,EAAQp0L,QAAQ8pJ,EAAW9/I,MACxB,IAAb+qB,IAAgBA,EAAU,GAC9B,IAAIs/J,EAAYD,EAAQp0L,QAAQm0L,EAAanqL,MAC1B,IAAfqqL,IAAkBA,EAAY,GAClC,IAAIplG,EAAQl6D,EAAUs/J,EAElBplG,IACFglG,GAAe,EACf7yI,EAAG6tC,IAnBCqlG,CAAU/pK,OAuBlB,IAAIgqK,EAAkBf,EAAef,KACjC2B,EAAU,CAACG,EAAgBvqL,KAE/B,SAASwqL,EAAWjqK,GAClB,OAAOgpK,EAAWhC,EAAWhnK,GAuE/B,SAAS62B,EAAG30C,GACVmmL,EAAcxxI,GAAG30C,GAWnB,IAAIgoL,EAAgB,EAEpB,SAASC,EAAkBzlG,GAGH,KAFtBwlG,GAAiBxlG,IAEoB,IAAVA,GACzBjvE,OAAO1W,iBA7MO,WA6MyBuqL,GACnCb,GAAyBhzK,OAAO1W,iBA7MpB,aA6MsD0qL,IAC3C,IAAlBS,IACTz0K,OAAO2rC,oBAhNO,WAgN4BkoI,GACtCb,GAAyBhzK,OAAO2rC,oBAhNpB,aAgNyDqoI,IAI7E,IAAIW,GAAY,EAiChB,IAAItsC,EAAU,CACZhjJ,OAAQutL,EAAcvtL,OACtBib,OAAQ,MACRiK,SAAUgqK,EACVC,WAAYA,EACZ9sL,KApIF,SAAcsN,EAAMjE,GAElB,IACIwZ,EAAWq+H,EAAe5zI,EAAMjE,EAAO4iL,IAAatrC,EAAQ99H,UAChEqpK,EAAkB1B,oBAAoB3nK,EAFzB,OAE2C4nK,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAI1pK,EAAOgqK,EAAWjqK,GAClBvgB,EAAMugB,EAASvgB,IACf+G,EAAQwZ,EAASxZ,MAErB,GAAI8hL,EAMF,GALAD,EAAcgC,UAAU,CACtB5qL,IAAKA,EACL+G,MAAOA,GACN,KAAMyZ,GAEL2oK,EACFnzK,OAAOuK,SAASC,KAAOA,MAClB,CACL,IAAIqqK,EAAYT,EAAQp0L,QAAQqoJ,EAAQ99H,SAASvgB,KAC7C8qL,EAAWV,EAAQviL,MAAM,EAAGgjL,EAAY,GAC5CC,EAASptL,KAAK6iB,EAASvgB,KACvBoqL,EAAUU,EACVn/H,EAAS,CACPr1C,OAtBK,OAuBLiK,SAAUA,SAKdvK,OAAOuK,SAASC,KAAOA,OAuG3B5qB,QAlGF,SAAiBoV,EAAMjE,GAErB,IACIwZ,EAAWq+H,EAAe5zI,EAAMjE,EAAO4iL,IAAatrC,EAAQ99H,UAChEqpK,EAAkB1B,oBAAoB3nK,EAFzB,UAE2C4nK,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAI1pK,EAAOgqK,EAAWjqK,GAClBvgB,EAAMugB,EAASvgB,IACf+G,EAAQwZ,EAASxZ,MAErB,GAAI8hL,EAMF,GALAD,EAAcmC,aAAa,CACzB/qL,IAAKA,EACL+G,MAAOA,GACN,KAAMyZ,GAEL2oK,EACFnzK,OAAOuK,SAAS3qB,QAAQ4qB,OACnB,CACL,IAAIqqK,EAAYT,EAAQp0L,QAAQqoJ,EAAQ99H,SAASvgB,MAC9B,IAAf6qL,IAAkBT,EAAQS,GAAatqK,EAASvgB,KACpD2rD,EAAS,CACPr1C,OApBK,UAqBLiK,SAAUA,SAKdvK,OAAOuK,SAAS3qB,QAAQ4qB,QAuE5B42B,GAAIA,EACJ4zI,OA/DF,WACE5zI,GAAI,IA+DJ6zI,UA5DF,WACE7zI,EAAG,IA4DH8zI,MAzCF,SAAerqB,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIsqB,EAAUvB,EAAkB5B,UAAUnnB,GAO1C,OALK8pB,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdS,MAwBTC,OApBF,SAAgBh3K,GACd,IAAIi3K,EAAWzB,EAAkBxB,eAAeh0K,GAEhD,OADAs2K,EAAkB,GACX,WACLA,GAAmB,GACnBW,OAiBJ,OAAOhtC,EAGT,IACIitC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBxgL,GAC9B,MAA0B,MAAnBA,EAAKsoC,OAAO,GAAatoC,EAAO,KAAOm8K,EAAkBn8K,IAElEygL,WAAY,SAAoBzgL,GAC9B,MAA0B,MAAnBA,EAAKsoC,OAAO,GAAatoC,EAAK2a,OAAO,GAAK3a,IAGrD0gL,QAAS,CACPF,WAAYrE,EACZsE,WAAYvE,GAEdyE,MAAO,CACLH,WAAYtE,EACZuE,WAAYvE,IAIhB,SAASjnK,EAAUC,GACjB,IAAIunK,EAAYvnK,EAAIlqB,QAAQ,KAC5B,OAAsB,IAAfyxL,EAAmBvnK,EAAMA,EAAIrY,MAAM,EAAG4/K,GAG/C,SAASmE,IAGP,IAAIprK,EAAOxK,OAAOuK,SAASC,KACvBinK,EAAYjnK,EAAKxqB,QAAQ,KAC7B,OAAsB,IAAfyxL,EAAmB,GAAKjnK,EAAKkxH,UAAU+1C,EAAY,GAO5D,SAASoE,EAAgB7gL,GACvBgL,OAAOuK,SAAS3qB,QAAQqqB,EAAUjK,OAAOuK,SAASC,MAAQ,IAAMxV,GAGlE,SAAS8gL,EAAkBryK,QACX,IAAVA,IACFA,EAAQ,IAGT6uK,GAAmGK,aAAU,GAC9G,IAAIC,EAAgB5yK,OAAOqoI,QAEvB4qC,GAnUGjzK,OAAO2qE,UAAUC,UAAU5qF,QAAQ,WAmU7ByjB,GACT2vK,EAAwBH,EAAOd,oBAC/BA,OAAgD,IAA1BiB,EAAmCb,EAAkBa,EAC3E2C,EAAkB9C,EAAO+C,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDxC,EAAW9vK,EAAM8vK,SAAWjC,EAAmBJ,EAAgBztK,EAAM8vK,WAAa,GAClF0C,EAAwBX,EAAeU,GACvCR,EAAaS,EAAsBT,WACnCC,EAAaQ,EAAsBR,WAEvC,SAASjC,IACP,IAAIx+K,EAAOygL,EAAWG,KAGtB,OADIrC,IAAUv+K,EAAOo8K,EAAcp8K,EAAMu+K,IAClC3qC,EAAe5zI,GAGxB,IAAI4+K,EAAoB7B,IAExB,SAASp8H,EAASzuC,GAChB7D,YAASglI,EAASnhI,GAElBmhI,EAAQhjJ,OAASutL,EAAcvtL,OAC/BuuL,EAAkBvB,gBAAgBhqC,EAAQ99H,SAAU89H,EAAQ/nI,QAG9D,IAAI2zK,GAAe,EACfiC,EAAa,KAMjB,SAASlC,IACP,IAL4B/zL,EAAG0L,EAK3BqJ,EAAO4gL,IACPO,EAAcX,EAAWxgL,GAE7B,GAAIA,IAASmhL,EAEXN,EAAgBM,OACX,CACL,IAAI5rK,EAAWipK,IACX4C,EAAe/tC,EAAQ99H,SAC3B,IAAK0pK,IAdwBtoL,EAc2B4e,GAd9BtqB,EAcgBm2L,GAbnC/F,WAAa1kL,EAAE0kL,UAAYpwL,EAAEuxL,SAAW7lL,EAAE6lL,QAAUvxL,EAAEqzB,OAAS3nB,EAAE2nB,MAaL,OAEnE,GAAI4iK,IAAe3E,EAAWhnK,GAAW,OAEzC2rK,EAAa,KAKjB,SAAmB3rK,GACjB,GAAI0pK,EACFA,GAAe,EACft+H,QACK,CAELi+H,EAAkB1B,oBAAoB3nK,EADzB,MAC2C4nK,GAAqB,SAAU+B,GACjFA,EACFv+H,EAAS,CACPr1C,OAJO,MAKPiK,SAAUA,IASpB,SAAmB4pK,GACjB,IAAIrqC,EAAazB,EAAQ99H,SAIrBwK,EAAUshK,EAASC,YAAY/E,EAAWznC,KAC7B,IAAb/0H,IAAgBA,EAAU,GAC9B,IAAIs/J,EAAYgC,EAASC,YAAY/E,EAAW4C,KAC7B,IAAfE,IAAkBA,EAAY,GAClC,IAAIplG,EAAQl6D,EAAUs/J,EAElBplG,IACFglG,GAAe,EACf7yI,EAAG6tC,IAnBCqlG,CAAU/pK,OAjBdwpK,CAAUxpK,IAyCd,IAAIvV,EAAO4gL,IACPO,EAAcX,EAAWxgL,GACzBA,IAASmhL,GAAaN,EAAgBM,GAC1C,IAAI5B,EAAkBf,IAClB6C,EAAW,CAAC9E,EAAWgD,IAuE3B,SAASnzI,EAAG30C,GAEVmmL,EAAcxxI,GAAG30C,GAWnB,IAAIgoL,EAAgB,EAEpB,SAASC,EAAkBzlG,GAGH,KAFtBwlG,GAAiBxlG,IAEoB,IAAVA,EACzBjvE,OAAO1W,iBAxOW,aAwOyB0qL,GAChB,IAAlBS,GACTz0K,OAAO2rC,oBA1OW,aA0O4BqoI,GAIlD,IAAIW,GAAY,EAiChB,IAAItsC,EAAU,CACZhjJ,OAAQutL,EAAcvtL,OACtBib,OAAQ,MACRiK,SAAUgqK,EACVC,WAnIF,SAAoBjqK,GAClB,IAAIgsK,EAAUt2K,SAASu2K,cAAc,QACjChsK,EAAO,GAMX,OAJI+rK,GAAWA,EAAQnqI,aAAa,UAClC5hC,EAAOP,EAAUjK,OAAOuK,SAASC,OAG5BA,EAAO,IAAMgrK,EAAWjC,EAAWhC,EAAWhnK,KA4HrD7iB,KAzHF,SAAcsN,EAAMjE,GAElB,IACIwZ,EAAWq+H,EAAe5zI,OAAMY,OAAWA,EAAWyyI,EAAQ99H,UAClEqpK,EAAkB1B,oBAAoB3nK,EAFzB,OAE2C4nK,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAIl/K,EAAOu8K,EAAWhnK,GAClB4rK,EAAcX,EAAWjC,EAAWv+K,GAGxC,GAFkB4gL,MAAkBO,EAEnB,CAIfD,EAAalhL,EAxIrB,SAAsBA,GACpBgL,OAAOuK,SAAS+I,KAAOte,EAwIjByhL,CAAaN,GACb,IAAItB,EAAYwB,EAASC,YAAY/E,EAAWlpC,EAAQ99H,WACpDmsK,EAAYL,EAASxkL,MAAM,EAAGgjL,EAAY,GAC9C6B,EAAUhvL,KAAKsN,GACfqhL,EAAWK,EACX/gI,EAAS,CACPr1C,OAnBO,OAoBPiK,SAAUA,SAIZorC,SAgGJ/1D,QA3FF,SAAiBoV,EAAMjE,GAErB,IACIwZ,EAAWq+H,EAAe5zI,OAAMY,OAAWA,EAAWyyI,EAAQ99H,UAClEqpK,EAAkB1B,oBAAoB3nK,EAFzB,UAE2C4nK,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAIl/K,EAAOu8K,EAAWhnK,GAClB4rK,EAAcX,EAAWjC,EAAWv+K,GACtB4gL,MAAkBO,IAMlCD,EAAalhL,EACb6gL,EAAgBM,IAGlB,IAAItB,EAAYwB,EAASr2L,QAAQuxL,EAAWlpC,EAAQ99H,YACjC,IAAfsqK,IAAkBwB,EAASxB,GAAa7/K,GAC5C2gD,EAAS,CACPr1C,OAnBS,UAoBTiK,SAAUA,SAsEd62B,GAAIA,EACJ4zI,OA7DF,WACE5zI,GAAI,IA6DJ6zI,UA1DF,WACE7zI,EAAG,IA0DH8zI,MAzCF,SAAerqB,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIsqB,EAAUvB,EAAkB5B,UAAUnnB,GAO1C,OALK8pB,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdS,MAwBTC,OApBF,SAAgBh3K,GACd,IAAIi3K,EAAWzB,EAAkBxB,eAAeh0K,GAEhD,OADAs2K,EAAkB,GACX,WACLA,GAAmB,GACnBW,OAiBJ,OAAOhtC,EAGT,SAASsuC,EAAMlqL,EAAGmqL,EAAYC,GAC5B,OAAOp2L,KAAKK,IAAIL,KAAKM,IAAI0L,EAAGmqL,GAAaC,GAO3C,SAASC,EAAoBrzK,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIwvK,EAASxvK,EACT0uK,EAAsBc,EAAOd,oBAC7B4E,EAAwB9D,EAAO+D,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBhE,EAAOiE,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpD5D,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CO,EAAoB7B,IAExB,SAASp8H,EAASzuC,GAChB7D,YAASglI,EAASnhI,GAElBmhI,EAAQhjJ,OAASgjJ,EAAQjhG,QAAQ/hD,OACjCuuL,EAAkBvB,gBAAgBhqC,EAAQ99H,SAAU89H,EAAQ/nI,QAG9D,SAASqzK,IACP,OAAOlzL,KAAKg7I,SAASv8I,SAAS,IAAIywB,OAAO,EAAG2jK,GAG9C,IAAIziL,EAAQ8lL,EAAMO,EAAc,EAAGF,EAAe3xL,OAAS,GACvD+hD,EAAU4vI,EAAe5iK,KAAI,SAAUxjB,GACzC,OAAmCg4I,EAAeh4I,OAAOgF,EAAjC,kBAAVhF,EAAsD+iL,IAAgD/iL,EAAM5G,KAAO2pL,QAG/Ha,EAAajD,EAyCjB,SAASnwI,EAAG30C,GACV,IAAI0qL,EAAYR,EAAMtuC,EAAQx3I,MAAQpE,EAAG,EAAG47I,EAAQjhG,QAAQ/hD,OAAS,GAEjEklB,EAAW89H,EAAQjhG,QAAQ+vI,GAC/BvD,EAAkB1B,oBAAoB3nK,EAFzB,MAE2C4nK,GAAqB,SAAU+B,GACjFA,EACFv+H,EAAS,CACPr1C,OALO,MAMPiK,SAAUA,EACV1Z,MAAOsmL,IAKTxhI,OA8BN,IAAI0yF,EAAU,CACZhjJ,OAAQ+hD,EAAQ/hD,OAChBib,OAAQ,MACRiK,SAAU68B,EAAQv2C,GAClBA,MAAOA,EACPu2C,QAASA,EACTotI,WAAYA,EACZ9sL,KA1FF,SAAcsN,EAAMjE,GAElB,IACIwZ,EAAWq+H,EAAe5zI,EAAMjE,EAAO4iL,IAAatrC,EAAQ99H,UAChEqpK,EAAkB1B,oBAAoB3nK,EAFzB,OAE2C4nK,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IACIiD,EADY9uC,EAAQx3I,MACI,EACxBumL,EAAc/uC,EAAQjhG,QAAQv1C,MAAM,GAEpCulL,EAAY/xL,OAAS8xL,EACvBC,EAAYviK,OAAOsiK,EAAWC,EAAY/xL,OAAS8xL,EAAW5sK,GAE9D6sK,EAAY1vL,KAAK6iB,GAGnBorC,EAAS,CACPr1C,OAfS,OAgBTiK,SAAUA,EACV1Z,MAAOsmL,EACP/vI,QAASgwI,SAuEbx3L,QAlEF,SAAiBoV,EAAMjE,GAErB,IACIwZ,EAAWq+H,EAAe5zI,EAAMjE,EAAO4iL,IAAatrC,EAAQ99H,UAChEqpK,EAAkB1B,oBAAoB3nK,EAFzB,UAE2C4nK,GAAqB,SAAU+B,GAChFA,IACL7rC,EAAQjhG,QAAQihG,EAAQx3I,OAAS0Z,EACjCorC,EAAS,CACPr1C,OANS,UAOTiK,SAAUA,SA0Dd62B,GAAIA,EACJ4zI,OAnCF,WACE5zI,GAAI,IAmCJ6zI,UAhCF,WACE7zI,EAAG,IAgCHi2I,MA7BF,SAAe5qL,GACb,IAAI0qL,EAAY9uC,EAAQx3I,MAAQpE,EAChC,OAAO0qL,GAAa,GAAKA,EAAY9uC,EAAQjhG,QAAQ/hD,QA4BrD6vL,MAzBF,SAAerqB,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJ+oB,EAAkB5B,UAAUnnB,IAqBnCuqB,OAlBF,SAAgBh3K,GACd,OAAOw1K,EAAkBxB,eAAeh0K,KAmB1C,OAAOiqI,I,cC53BT,IAAI/nJ,EAAUC,MAAMD,QAEpB3B,EAAOC,QAAU0B,G,6BCvBjB,IAAI0X,EAAOnZ,EAAQ,KAMfK,EAAW0M,OAAOQ,UAAUlN,SAQhC,SAASoB,EAAQg5B,GACf,MAA8B,mBAAvBp6B,EAASC,KAAKm6B,GASvB,SAASzC,EAAYyC,GACnB,MAAsB,qBAARA,EA4EhB,SAASx5B,EAASw5B,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAShC,SAASyiH,EAAcziH,GACrB,GAA2B,oBAAvBp6B,EAASC,KAAKm6B,GAChB,OAAO,EAGT,IAAIltB,EAAYR,OAAOoE,eAAespB,GACtC,OAAqB,OAAdltB,GAAsBA,IAAcR,OAAOQ,UAuCpD,SAASsuB,EAAWpB,GAClB,MAA8B,sBAAvBp6B,EAASC,KAAKm6B,GAwEvB,SAAS3oB,EAAQN,EAAKoH,GAEpB,GAAY,OAARpH,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL/P,EAAQ+P,GAEV,IAAK,IAAI9K,EAAI,EAAGyV,EAAI3K,EAAIhL,OAAQE,EAAIyV,EAAGzV,IACrCkS,EAAGtY,KAAK,KAAMkR,EAAI9K,GAAIA,EAAG8K,QAI3B,IAAK,IAAIrG,KAAOqG,EACVzE,OAAOQ,UAAUJ,eAAe7M,KAAKkR,EAAKrG,IAC5CyN,EAAGtY,KAAK,KAAMkR,EAAIrG,GAAMA,EAAKqG,GA2ErC1R,EAAOC,QAAU,CACf0B,QAASA,EACT+/I,cA1RF,SAAuB/mH,GACrB,MAA8B,yBAAvBp6B,EAASC,KAAKm6B,IA0RrBg+J,SAtSF,SAAkBh+J,GAChB,OAAe,OAARA,IAAiBzC,EAAYyC,IAA4B,OAApBA,EAAIntB,cAAyB0qB,EAAYyC,EAAIntB,cAChD,oBAA7BmtB,EAAIntB,YAAYmrL,UAA2Bh+J,EAAIntB,YAAYmrL,SAASh+J,IAqShFi+J,WAlRF,SAAoBj+J,GAClB,MAA4B,qBAAbk+J,UAA8Bl+J,aAAek+J,UAkR5DC,kBAzQF,SAA2Bn+J,GAOzB,MAL4B,qBAAhBonH,aAAiCA,YAAYg3C,OAC9Ch3C,YAAYg3C,OAAOp+J,GAElBA,GAASA,EAAIq+J,QAAYr+J,EAAIq+J,kBAAkBj3C,aAqQ3D/gJ,SA1PF,SAAkB25B,GAChB,MAAsB,kBAARA,GA0Pd75B,SAjPF,SAAkB65B,GAChB,MAAsB,kBAARA,GAiPdx5B,SAAUA,EACVi8I,cAAeA,EACfllH,YAAaA,EACbx2B,OAlNF,SAAgBi5B,GACd,MAA8B,kBAAvBp6B,EAASC,KAAKm6B,IAkNrBs+J,OAzMF,SAAgBt+J,GACd,MAA8B,kBAAvBp6B,EAASC,KAAKm6B,IAyMrBu+J,OAhMF,SAAgBv+J,GACd,MAA8B,kBAAvBp6B,EAASC,KAAKm6B,IAgMrBoB,WAAYA,EACZo9J,SA9KF,SAAkBx+J,GAChB,OAAOx5B,EAASw5B,IAAQoB,EAAWpB,EAAIy+J,OA8KvCC,kBArKF,SAA2B1+J,GACzB,MAAkC,qBAApB2+J,iBAAmC3+J,aAAe2+J,iBAqKhEC,qBAzIF,WACE,OAAyB,qBAAdvtG,WAAoD,gBAAtBA,UAAUwtG,SACY,iBAAtBxtG,UAAUwtG,SACY,OAAtBxtG,UAAUwtG,WAI/B,qBAAXn4K,QACa,qBAAbC,WAkITtP,QAASA,EACT82C,MAvEF,SAASA,IACP,IAAIh6C,EAAS,GACb,SAAS2qL,EAAY9+J,EAAKtvB,GACpB+xI,EAActuI,EAAOzD,KAAS+xI,EAAcziH,GAC9C7rB,EAAOzD,GAAOy9C,EAAMh6C,EAAOzD,GAAMsvB,GACxByiH,EAAcziH,GACvB7rB,EAAOzD,GAAOy9C,EAAM,GAAInuB,GACfh5B,EAAQg5B,GACjB7rB,EAAOzD,GAAOsvB,EAAIznB,QAElBpE,EAAOzD,GAAOsvB,EAIlB,IAAK,IAAI/zB,EAAI,EAAGyV,EAAItO,UAAUrH,OAAQE,EAAIyV,EAAGzV,IAC3CoL,EAAQjE,UAAUnH,GAAI6yL,GAExB,OAAO3qL,GAuDPqpB,OA5CF,SAAgB72B,EAAG0L,EAAGkB,GAQpB,OAPA8D,EAAQhF,GAAG,SAAqB2tB,EAAKtvB,GAEjC/J,EAAE+J,GADA6C,GAA0B,oBAARysB,EACXthB,EAAKshB,EAAKzsB,GAEVysB,KAGNr5B,GAqCPqsB,KAhKF,SAAcpB,GACZ,OAAOA,EAAItrB,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAgK/Cy4L,SA7BF,SAAkBrpH,GAIhB,OAH8B,QAA1BA,EAAQm7F,WAAW,KACrBn7F,EAAUA,EAAQn9D,MAAM,IAEnBm9D,K,6BClUTpjE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ05L,QAAU15L,EAAQ25L,eAAiB35L,EAAQ45L,gBAAkB55L,EAAQ65L,eAAiB75L,EAAQ85L,iBAAmB95L,EAAQ+5L,iBAAmB/5L,EAAQg6L,kBAAoBh6L,EAAQi6L,kBAAoBj6L,EAAQk6L,mBAAqBl6L,EAAQm6L,sBAAwBn6L,EAAQo6L,yBAA2Bp6L,EAAQq6L,uBAAyBr6L,EAAQs6L,iBAAmBt6L,EAAQu6L,qBAAuBv6L,EAAQw6L,yBAA2Bx6L,EAAQy6L,mBAAqBz6L,EAAQ06L,gBAAkB16L,EAAQ26L,qBAAuB36L,EAAQ46L,uBAAoB,EAE5hB,IAAIltC,EAASztJ,EAAQ,KAErB,SAASypK,EAA2Bz5J,EAAG4qL,GAAkB,IAAIlxB,EAAI,GAAsB,qBAAXj6J,QAAgD,MAAtBO,EAAEP,OAAOC,UAAmB,CAAE,GAAIhO,MAAMD,QAAQuO,KAAO05J,EAE7J,SAAqC15J,EAAGk4J,GAAU,IAAKl4J,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOm4J,EAAkBn4J,EAAGk4J,GAAS,IAAIt6J,EAAIb,OAAOQ,UAAUlN,SAASC,KAAK0P,GAAGgD,MAAM,GAAI,GAAc,WAANpF,GAAkBoC,EAAE1C,cAAaM,EAAIoC,EAAE1C,YAAYV,MAAM,GAAU,QAANgB,GAAqB,QAANA,EAAa,OAAOlM,MAAM84B,KAAKxqB,GAAI,GAAU,cAANpC,GAAqB,2CAA2C0nB,KAAK1nB,GAAI,OAAOu6J,EAAkBn4J,EAAGk4J,GAFpPE,CAA4Bp4J,KAAO4qL,GAAkB5qL,GAAyB,kBAAbA,EAAExJ,OAAqB,CAAMkjK,IAAI15J,EAAI05J,GAAI,IAAIhjK,EAAI,EAAOghF,EAAI,aAAiB,MAAO,CAAEpiF,EAAGoiF,EAAG95E,EAAG,WAAe,OAAIlH,GAAKsJ,EAAExJ,OAAe,CAAEqI,MAAM,GAAe,CAAEA,MAAM,EAAO3O,MAAO8P,EAAEtJ,OAAWgI,EAAG,SAAWuM,GAAM,MAAMA,GAAOhM,EAAGy4E,GAAO,MAAM,IAAI73E,UAAU,yIAA4I,IAA6CuL,EAAzCuuJ,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEtkK,EAAG,WAAeokK,EAAK15J,EAAEP,OAAOC,aAAgB9B,EAAG,WAAe,IAAIY,EAAOk7J,EAAGj7J,OAAsC,OAA9Bk7J,EAAmBn7J,EAAKK,KAAaL,GAASE,EAAG,SAAWm7J,GAAOD,GAAS,EAAMxuJ,EAAMyuJ,GAAQ56J,EAAG,WAAe,IAAW06J,GAAoC,MAAhBD,EAAE,QAAoBA,EAAE,SAAvD,QAAiF,GAAIE,EAAQ,MAAMxuJ,KAIx9B,SAAS+sJ,EAAkBttJ,EAAKa,IAAkB,MAAPA,GAAeA,EAAMb,EAAIrU,UAAQkV,EAAMb,EAAIrU,QAAQ,IAAK,IAAIE,EAAI,EAAG8iC,EAAO,IAAI9nC,MAAMga,GAAMhV,EAAIgV,EAAKhV,IAAO8iC,EAAK9iC,GAAKmU,EAAInU,GAAM,OAAO8iC,EAEhL,IAAImxJ,EAAoB,4JACxB56L,EAAQ46L,kBAAoBA,EAC5B,IAAID,EAAuB,sCAC3B36L,EAAQ26L,qBAAuBA,EAC/B,IAAID,EAAkB,iBACtB16L,EAAQ06L,gBAAkBA,EAC1B,IAAID,EAAqB,6EACzBz6L,EAAQy6L,mBAAqBA,EAC7B,IAAID,EAA2B,6BAC/Bx6L,EAAQw6L,yBAA2BA,EACnC,IAAID,EAAuB,gCAC3Bv6L,EAAQu6L,qBAAuBA,EAC/B,IAAID,EAAmB,uEACvBt6L,EAAQs6L,iBAAmBA,EAC3B,IAAID,EAAyB,iDAC7Br6L,EAAQq6L,uBAAyBA,EACjC,IAAID,EAA2B,mDAC/Bp6L,EAAQo6L,yBAA2BA,EACnC,IAAID,EAAwB,wHAC5Bn6L,EAAQm6L,sBAAwBA,EAChC,IAAID,EAAqB,gCACzBl6L,EAAQk6L,mBAAqBA,EAC7B,IAAID,EAAoB,2CACxBj6L,EAAQi6L,kBAAoBA,EAC5B,IAAID,EAAoB,gKACxBh6L,EAAQg6L,kBAAoBA,EAC5B,IAAID,EAAmB,qEACvB/5L,EAAQ+5L,iBAAmBA,EAC3B,IAAID,EAAmB,qCACvB95L,EAAQ85L,iBAAmBA,EAC3B,IAAID,EAAiB,kBACrB75L,EAAQ65L,eAAiBA,EACzB,IAAID,EAAkB,iBACtB55L,EAAQ45L,gBAAkBA,EAC1B,IAAID,EAAiB,iBACrB35L,EAAQ25L,eAAiBA,EAEzB,IAiCID,EAAU,CACZoB,QAAS,SAAiBxvK,GACxB,OAAIA,aAAe3pB,MACV2pB,EAAI6wJ,OAAM,SAAU1nI,GACzB,OAAOmmJ,EAAkBrlK,KAAKkf,MAI3BmmJ,EAAkBrlK,KAAKjK,IAEhCyvK,WAAY,SAAoBzvK,GAC9B,OAAOqvK,EAAqBplK,KAAKjK,KAASyuK,EAAiBxkK,KAAKjK,IAElE0vK,MAAO,SAAe1vK,GACpB,OAAOovK,EAAgBnlK,KAAKjK,KAASwuK,EAAiBvkK,KAAKjK,KAASuuK,EAAetkK,KAAKjK,IAE1F2vK,SAAU,SAAkB3vK,GAC1B,OAAOmvK,EAAmBllK,KAAKjK,IAAQkvK,EAAyBjlK,KAAKjK,IAEvE4vK,WAAY,SAAoB5vK,GAC9B,OAAOivK,EAAqBhlK,KAAKjK,IAEnC6vK,OAAQ,SAAgB7vK,GACtB,OAAOgvK,EAAiB/kK,KAAKjK,IAE/B8vK,OAAQ,SAAgB9vK,GACtB,OAAO+uK,EAAuB9kK,KAAKjK,IAAQ8uK,EAAyB7kK,KAAKjK,IAE3E+vK,YAAa,SAAqB/vK,GAChC,OAAO6uK,EAAsB5kK,KAAKjK,IAEpCgwK,SAAU,SAAkBhwK,GAC1B,OAAO4uK,EAAmB3kK,KAAKjK,IAEjCiwK,QAAS,SAAiBjwK,GACxB,OAAO2uK,EAAkB1kK,KAAKjK,IAEhCkwK,QAAS,SAAiBlwK,GACxB,OAAO0uK,EAAkBzkK,KAAKjK,IAEhCmwK,KAzEgB,SAASC,EAAYpwK,GACrC,GAAIA,aAAe3pB,MAAO,CACxB,IACI4iG,EADAo3F,EAAYjyB,EAA2Bp+I,GAG3C,IACE,IAAKqwK,EAAUp2L,MAAOg/F,EAAQo3F,EAAU9tL,KAAKiB,MAAO,CAClD,IAAI2lC,EAAO8vD,EAAMpkG,MAEjB,GAAoB,kBAATs0C,GAAqBinJ,EAAYjnJ,GAC1C,OAAO,EAGT,GAAIinJ,EAAYjnJ,EAAKmnJ,KACnB,OAAO,GAGX,MAAOvgL,GACPsgL,EAAUhtL,EAAE0M,GAbd,QAeEsgL,EAAUzsL,IAGZ,OAAO,EAGT,UAAI,EAAIw+I,EAAOqpB,eAAezrJ,MAAQ,EAAIoiI,EAAOupB,WAAW3rJ,MAIrDyuK,EAAiBxkK,KAAKjK,IAAQwuK,EAAiBvkK,KAAKjK,IAAQuuK,EAAetkK,KAAKjK,IAAQsuK,EAAgBrkK,KAAKjK,IAAQquK,EAAepkK,KAAKjK,MA6ClJtrB,EAAQ05L,QAAUA,G,6BC/HlB,mHAiHA,cA4BC,mBAGC,cAAO,K,OACP,EAAKr0I,UAAY,QAGjB,EAAKqO,iBAAiB,eAAgB,GACtC,EAAKA,iBAAiB,aAAc,GACpC,EAAKqR,mBAAmB,cAAe,GACvC,EAAKA,mBAAmB,SAAU,GAClC,EAAKrR,iBAAiB,MAAO,GAC7B,EAAKA,iBAAiB,cAAe,GACrC,EAAKyH,cAAgB,EACrB,EAAKzH,iBAAiB,SAAU,QAGhC,EAAKzgD,MAAQ,EAAK2gE,YAAY,KAC9B,EAAK3gE,MAAM6iD,YAAa,EAExB,EAAKtC,WAAW1qD,KAAK,EAAKmK,OAM1B,EAAKghD,a,EAoSP,OA1V2B,iBA8DnB,YAAAY,KAAP,WACC,YAAMA,KAAI,WACV,IAAI54C,EAAU3R,KAAK2R,QAChB3R,KAAK3B,OAAS,GAAgB,GAAXsT,IACrBA,EAAU,KAEX3R,KAAK2I,MAAMmD,KAAO,IAAU9L,KAAK/B,WAAY+B,KAAKnB,IAAKmB,KAAK3B,OAAQ2B,KAAK6+G,iBAAkBltG,EAAS3R,KAAKsS,aAActS,KAAKuS,mBAC5HvS,KAAK2I,MAAM+gD,aACX1pD,KAAKgkH,YAAchkH,KAAKgkH,YAEpBhkH,KAAKyjE,oBAAoB,KAC5BzjE,KAAKuxL,eAAevxL,KAAKyjE,UAEtBzjE,KAAK2jE,sBAAsB,KAC9B3jE,KAAKuxL,eAAevxL,KAAK2jE,aAIjB,YAAA4tH,eAAV,SAAyBl7G,GACxBA,EAAS3tD,QAAQiiC,KAAK,CAAE,cAAiB,mBACzC0rB,EAAS3tD,QAAQiiC,KAAK,CAAE,EAAK3qD,KAAK3B,SAClCg4E,EAASpkE,GAAK,EACdokE,EAASnkE,GAAK,EACdmkE,EAAS3tD,QAAQiiC,KAAK,CAAEtsD,OAAQ2B,KAAK3B,UAUtC,sBAAW,mBAAI,C,IAAf,WACC,GAAI2B,KAAKyyD,YACR,OAAOzyD,KAAKyyD,YAGb,GAAIzyD,KAAKwrD,WAAY,CACpB,IAAIq1D,EAAY,IAAiB7gH,KAAK/B,WAAY+B,KAAK/B,WAAa+B,KAAKnB,IAAKmB,KAAK6+G,kBAC/E2yE,EAAY,IAAiBxxL,KAAK/B,WAAY+B,KAAK/B,WAAa+B,KAAKnB,IAAKmB,KAAK3B,QACnF,OAAO,IAAyB,CAACwiH,EAAW2wE,IAG5C,MAAO,CAAEl3L,EAAG,EAAGC,EAAG,EAAG+B,MAAO,EAAGC,OAAQ,I,gCAWzC,sBAAW,yBAAU,C,IAOrB,WACC,OAAOyD,KAAKujD,iBAAiB,e,IAR9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAc,IAAqBvzD,IAAQ,I,gCAgBlE,sBAAW,kBAAG,C,IAUd,WACC,OAAOmK,KAAKujD,iBAAiB,Q,IAX9B,SAAe1tD,GACT,IAAeA,KACnBA,EAAQ,GAETmK,KAAKopD,iBAAiB,MAAOvzD,GAAO,I,gCAerC,sBAAW,qBAAM,C,IAOjB,WACC,IAAIwI,EAAiB2B,KAAKujD,iBAAiB,UAI3C,OAHK,IAAellD,KACnBA,EAAS,GAEHA,G,IAZR,SAAkBxI,GACjBmK,KAAKopD,iBAAiB,SAAUvzD,GAAO,I,gCAsBxC,sBAAW,sBAAO,C,IAOlB,WACC,IAAIA,EAAgBmK,KAAKujD,iBAAiB,WAK1C,OAHK,IAAe1tD,KACnBA,EAAQmK,KAAK3B,QAEPxI,G,IAbR,SAAmBA,GAClBmK,KAAKopD,iBAAiB,UAAWvzD,GAAO,I,gCAqBzC,sBAAW,0BAAW,C,IAOtB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAR9B,SAAuB1tD,GACtBmK,KAAKy6D,mBAAmB,cAAe5kE,GAAO,GAAM,EAAO,IAAI,I,gCAahE,sBAAW,+BAAgB,C,IAA3B,WACC,OAAO,IAAuBmK,KAAKqS,YAAarS,KAAK3B,S,gCAStD,sBAAW,2BAAY,C,IAOvB,WACC,OAAO2B,KAAKujD,iBAAiB,iB,IAR9B,SAAwB1tD,GACvBmK,KAAKopD,iBAAiB,eAAgBvzD,GAAO,I,gCAgB9C,sBAAW,gCAAiB,C,IAO5B,WACC,OAAOmK,KAAKujD,iBAAiB,sB,IAR9B,SAA6B1tD,GAC5BmK,KAAKopD,iBAAiB,oBAAqBvzD,GAAO,I,gCAkBnD,sBAAW,0BAAW,C,IAStB,WACC,OAAOmK,KAAKujD,iBAAiB,gB,IAV9B,SAAuB1tD,GACtBmK,KAAKopD,iBAAiB,cAAevzD,GACrCmK,KAAKsnB,GAAKzxB,EAAQmK,KAAK3B,OAAS2B,KAAK4jH,GACrC5jH,KAAKunB,GAAK1xB,EAAQmK,KAAK2R,QAAU3R,KAAK8jH,I,gCAiBvC,sBAAW,iBAAE,C,IAAb,WACC,OAAO,IAAU9jH,KAAKiT,c,gCAUvB,sBAAW,iBAAE,C,IAAb,WACC,OAAIjT,KAAK3B,OACD,IAAU2B,KAAKiT,c,gCAaxB,sBAAW,0BAAW,C,IAAtB,WACC,OAAOjT,KAAK/B,WAAa+B,KAAKnB,IAAM,G,gCAQ9B,YAAAymE,YAAP,WACC,IAAIzvE,EAAQmK,KAAKujD,iBAAiB,YAElC,GAAG,IAAe1tD,GACjB,OAAOA,EAER,IAAIgN,EAAI,GACLhN,aAAiB,MACnBgN,EAAIhN,EAAMA,OAEX,IAAIwc,EAAc,IAAuBrS,KAAKqS,YAAarS,KAAK3B,QAChE,OAAO2B,KAAK4jH,IAAMvxG,GAAerS,KAAK3B,OAASgU,GAAexP,IAQxD,YAAA0iE,YAAP,WACC,IAAI1vE,EAAQmK,KAAKujD,iBAAiB,YAElC,GAAG,IAAe1tD,GACjB,OAAOA,EAER,IAAIgN,EAAI,GACLhN,aAAiB,MACnBgN,EAAIhN,EAAMA,OAEX,IAAIwc,EAAc,IAAuBrS,KAAKqS,YAAarS,KAAK3B,QAChE,OAAO2B,KAAK8jH,IAAMzxG,GAAerS,KAAK3B,OAASgU,GAAexP,GAAK7C,KAAK2I,MAAM4e,IAGhF,EA1VA,CAA2B,KAkW3B,IAASnoB,kBAAT,MAAsC80E,G,0DCndlCu9G,EAAqB,CACvBC,QAAS,EACTC,QAAS,GAEPC,EAAe,CAAC,EAAG,GACZC,EAAa,CACtBj5L,KAAM,CACJsD,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,EAAE,EAAG,GACb4pJ,aAAcA,GAEhB/4L,MAAO,CACLqD,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBvpK,IAAK,CACHnsB,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,GAAI,GACb4pJ,aAAcA,GAEhBx1L,OAAQ,CACNF,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBE,QAAS,CACP51L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,GAAI,GACb4pJ,aAAcA,GAEhBG,QAAS,CACP71L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,EAAE,EAAG,GACb4pJ,aAAcA,GAEhBI,SAAU,CACR91L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,GAAI,GACb4pJ,aAAcA,GAEhBK,SAAU,CACR/1L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBM,YAAa,CACXh2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBO,YAAa,CACXj2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBQ,WAAY,CACVl2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,CAAC,EAAG,GACZ4pJ,aAAcA,GAEhBS,WAAY,CACVn2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,EACVzpJ,OAAQ,EAAE,EAAG,GACb4pJ,aAAcA,IC7DHU,EAbD,SAAiB/3K,GAC7B,IAAIg4K,EAAUh4K,EAAMg4K,QAChBptD,EAAY5qH,EAAM4qH,UAClB52E,EAAKh0C,EAAMg0C,GACXikI,EAAoBj4K,EAAMi4K,kBAC9B,OAAO/9K,IAAMmC,cAAc,MAAO,CAChCmkC,UAAW,GAAG70C,OAAOi/H,EAAW,UAChC52E,GAAIA,EACJ1R,KAAM,UACN5B,MAAOu3I,GACa,oBAAZD,EAAyBA,IAAYA,ICZjD,SAAS14I,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAEnX,SAASK,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAI9U,SAASolB,EAAgBxlB,EAAKrG,EAAKjL,GAAiK,OAApJiL,KAAOqG,EAAOzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,EAE3M,SAASg0C,EAAyBr6B,EAAQqxH,GAAY,GAAc,MAAVrxH,EAAgB,MAAO,GAAI,IAAkEhgB,EAAKzE,EAAnEmF,EAEzF,SAAuCsf,EAAQqxH,GAAY,GAAc,MAAVrxH,EAAgB,MAAO,GAAI,IAA2DhgB,EAAKzE,EAA5DmF,EAAS,GAAQylK,EAAavkK,OAAO6E,KAAKuZ,GAAqB,IAAKzkB,EAAI,EAAGA,EAAI4qK,EAAW9qK,OAAQE,IAAOyE,EAAMmmK,EAAW5qK,GAAQ81I,EAASr7I,QAAQgK,IAAQ,IAAaU,EAAOV,GAAOggB,EAAOhgB,IAAQ,OAAOU,EAFxMsY,CAA8BgH,EAAQqxH,GAAuB,GAAIzvI,OAAOuL,sBAAuB,CAAE,IAAImkI,EAAmB1vI,OAAOuL,sBAAsB6S,GAAS,IAAKzkB,EAAI,EAAGA,EAAI+1I,EAAiBj2I,OAAQE,IAAOyE,EAAMsxI,EAAiB/1I,GAAQ81I,EAASr7I,QAAQgK,IAAQ,GAAkB4B,OAAOQ,UAAUmvI,qBAAqBp8I,KAAK6qB,EAAQhgB,KAAgBU,EAAOV,GAAOggB,EAAOhgB,IAAU,OAAOU,EASne,IChBeq4E,EDyGAlgE,sBAzFD,SAAiBY,EAAOiB,GACpC,IAAIi3K,EAAmBl4K,EAAMk4K,iBACzBC,EAAiBn4K,EAAMq+J,QACvBA,OAA6B,IAAnB8Z,EAA4B,CAAC,SAAWA,EAClDC,EAAwBp4K,EAAMq4K,gBAC9BA,OAA4C,IAA1BD,EAAmC,EAAIA,EACzDE,EAAwBt4K,EAAMu4K,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAMA,EAC3DE,EAAex4K,EAAMw4K,aACrBC,EAAmBz4K,EAAM4qH,UACzBA,OAAiC,IAArB6tD,EAA8B,aAAeA,EACzD58K,EAAWmE,EAAMnE,SACjB68K,EAAkB14K,EAAM04K,gBACxBC,EAAqB34K,EAAM24K,mBAC3BvQ,EAAiBpoK,EAAMooK,eACvBnsH,EAAYj8C,EAAMi8C,UAClB28H,EAAmB54K,EAAM64K,UACzBA,OAAiC,IAArBD,EAA8B,QAAUA,EACpDE,EAAe94K,EAAMknD,MACrBA,OAAyB,IAAjB4xH,EAA0B,GAAKA,EACvCC,EAAwB/4K,EAAMg5K,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAiBj5K,EAAMi5K,eACvBC,EAAsBl5K,EAAMk5K,oBAC5BjB,EAAoBj4K,EAAMi4K,kBAC1Bt3I,EAAYC,EAAyB5gC,EAAO,CAAC,mBAAoB,UAAW,kBAAmB,kBAAmB,eAAgB,YAAa,WAAY,kBAAmB,qBAAsB,iBAAkB,YAAa,YAAa,QAAS,uBAAwB,iBAAkB,sBAAuB,sBAE1Tm5K,EAASp4K,iBAAO,MACpBq4K,8BAAoBn4K,GAAK,WACvB,OAAOk4K,EAAOx7K,WAGhB,IAAI07K,EA7CN,SAAuBpyL,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,EAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EA6C1fg5C,CAAc,GAAIU,GAE/B,YAAa3gC,IACfq5K,EAAWC,aAAet5K,EAAMsxC,SAGlC,IAiBIioI,GAAiB,EACjBC,GAAc,EAElB,GAAoC,mBAAzBR,EACTO,EAAiBP,OACZ,GAAIA,GAA0D,WAAlC15I,EAAQ05I,GAAoC,CAC7E,IAAIS,EAAaT,EAAqBS,WACtCF,GAAgC,IAAfE,EACjBD,GAA6B,IAAfC,EAGhB,OAAOv/K,IAAMmC,cAAcq9K,IAASvxL,OAAOW,OAAO,CAChD6wL,eAAgBzB,EAChBttD,UAAWA,EACXgvD,MA/BoB,WACpB,IAAIC,EAAsB75K,EAAM85K,aAC5BA,OAAuC,IAAxBD,EAAiC,KAAOA,EACvD7B,EAAUh4K,EAAMg4K,QAChBhkI,EAAKh0C,EAAMg0C,GACf,MAAO,CAAC95C,IAAMmC,cAAc,MAAO,CACjCmkC,UAAW,GAAG70C,OAAOi/H,EAAW,UAChCrkI,IAAK,SACJuzL,GAAe5/K,IAAMmC,cAAc07K,EAAS,CAC7CxxL,IAAK,UACLqkI,UAAWA,EACX52E,GAAIA,EACJgkI,QAASA,EACTC,kBAAmBA,MAmBrBp7K,OAAQwhK,EACR0b,kBAAmBzC,EACnB0C,eAAgBnB,EAChB53K,IAAKk4K,EACLc,WAAY/yH,EACZikE,kBAAmB+tD,EACnBgB,qBAAsBxB,EACtByB,wBAAyBxB,EACzByB,oBAAqBhS,EACrBiS,eAAgBp+H,EAChBq+H,oBAAqBrB,EACrBsB,mBAAoBhB,EACpBC,YAAaA,EACbjB,gBAAiBA,EACjBiC,WAAYhC,EACZH,gBAAiBA,GAChBgB,GAAax9K,M,gBEvGlB,SAAS+D,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAGhT,IAAIwxL,EAA4B,CAC9BtD,QAAS,EACTC,QAAS,GAEPsD,EAA6B,CAC/BvD,QAAS,EACTC,QAAS,GAEPC,EAAe,CAAC,EAAG,GAChB,SAASsD,EAAmBzD,GACjC,MAAkC,mBAAvBA,EACFA,EAAqBuD,EAA4BC,EAGnD96K,EAASA,EAAS,GAAI86K,GAA6BxD,G,6BCjB5D,SAAS9kK,EAAgBxlB,EAAKrG,EAAKjL,GAAiK,OAApJiL,KAAOqG,EAAOzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,EAE3M,SAASoJ,EAAeC,EAAKnU,GAAK,OAUlC,SAAyBmU,GAAO,GAAInZ,MAAMD,QAAQoZ,GAAM,OAAOA,EAVtBmtJ,CAAgBntJ,IAQzD,SAA+BA,EAAKnU,GAAK,GAAsB,qBAAX+I,UAA4BA,OAAOC,YAAY3C,OAAO8N,IAAO,OAAQ,IAAIC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKlE,EAAW,IAAM,IAAK,IAAiCmE,EAA7BC,EAAKN,EAAIpL,OAAOC,cAAmBqL,GAAMG,EAAKC,EAAG1M,QAAQI,QAAoBiM,EAAKjS,KAAKqS,EAAGhb,QAAYwG,GAAKoU,EAAKtU,SAAWE,GAA3DqU,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAtL,QAAuM,IAAWL,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,EARjamtJ,CAAsBptJ,EAAKnU,IAI5F,SAAqCsJ,EAAGk4J,GAAU,IAAKl4J,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOm4J,EAAkBn4J,EAAGk4J,GAAS,IAAIt6J,EAAIb,OAAOQ,UAAUlN,SAASC,KAAK0P,GAAGgD,MAAM,GAAI,GAAc,WAANpF,GAAkBoC,EAAE1C,cAAaM,EAAIoC,EAAE1C,YAAYV,MAAM,GAAU,QAANgB,GAAqB,QAANA,EAAa,OAAOlM,MAAM84B,KAAKxqB,GAAI,GAAU,cAANpC,GAAqB,2CAA2C0nB,KAAK1nB,GAAI,OAAOu6J,EAAkBn4J,EAAGk4J,GAJpTE,CAA4BvtJ,EAAKnU,IAEnI,WAA8B,MAAM,IAAImJ,UAAU,6IAFuFw4J,GAMzI,SAASF,EAAkBttJ,EAAKa,IAAkB,MAAPA,GAAeA,EAAMb,EAAIrU,UAAQkV,EAAMb,EAAIrU,QAAQ,IAAK,IAAIE,EAAI,EAAG8iC,EAAO,IAAI9nC,MAAMga,GAAMhV,EAAIgV,EAAKhV,IAAO8iC,EAAK9iC,GAAKmU,EAAInU,GAAM,OAAO8iC,EAMhL,SAAShlB,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAUhT,IAiBI2xL,EAAmB,IAAIlyK,OAAO,KAAK/c,OAAOkvL,IAAiB3uL,KAAK,KAAM,kBAI1E,SAAS4uL,EAA8B3sK,EAASy8G,GAC9C,IAAImwD,EAAc5sK,EAAQnnB,KAE1B,KAAkC,IAA7B+zL,EAAYC,eAAsD,IAA7BD,EAAYE,eAAwD,IAA/BF,EAAYG,gBAA4C,WAAjB/sK,EAAQnnB,OAAsBmnB,EAAQnO,MAAM4vC,SAAU,CAG1K,IAAIurI,EA3BU,SAAqBvuL,EAAKI,GAC1C,IAAIouL,EAAS,GAETC,EAAUz7K,EAAS,GAAIhT,GAQ3B,OANAI,EAAKE,SAAQ,SAAU3G,GACjBqG,GAAOrG,KAAOqG,IAChBwuL,EAAO70L,GAAOqG,EAAIrG,UACX80L,EAAQ90L,OAGZ,CACL60L,OAAQA,EACRC,QAASA,GAcUC,CAAYntK,EAAQnO,MAAM0gC,MAAO,CAAC,WAAY,OAAQ,QAAS,MAAO,SAAU,QAAS,UAAW,WACnH06I,EAASD,EAAaC,OACtBC,EAAUF,EAAaE,QAEvBE,EAAY37K,EAASA,EAAS,CAChCkzI,QAAS,gBACRsoC,GAAS,CACV/xI,OAAQ,cACRtnD,MAAOosB,EAAQnO,MAAMyxK,MAAQ,OAAS,OAGpC+J,EAAc57K,EAASA,EAAS,GAAIy7K,GAAU,CAChDn1H,cAAe,SAGb9R,EAAQioF,YAAaluH,EAAS,CAChCuyB,MAAO86I,EACPh7I,UAAW,OAEb,OAAoBtmC,gBAAoB,OAAQ,CAC9CwmC,MAAO66I,EACP/6I,UAAW9qC,IAAWyY,EAAQnO,MAAMwgC,UAAW,GAAG70C,OAAOi/H,EAAW,kCACnEx2E,GAGL,OAAOjmC,EAGT,IAAImxD,EAAuBplE,cAAiB,SAAU8F,EAAOiB,GAC3D,IAAIw6K,EAEAC,EAAoBxhL,aAAiBiyH,KACrCwvD,EAA2BD,EAAkBvwD,kBAC7CL,EAAe4wD,EAAkB5wD,aACjC77F,EAAYysJ,EAAkBzsJ,UAG9B60H,EAAmB9tJ,EADDkE,aAAiB8F,EAAMsxC,WAAatxC,EAAMi5K,gBACT,GACnD3nI,EAAUwyG,EAAiB,GAC3B83B,EAAa93B,EAAiB,GAElC5pJ,aAAgB,WACV,YAAa8F,GACf47K,EAAW57K,EAAMsxC,WAElB,CAACtxC,EAAMsxC,UAEV,IAAIuqI,EAAY,WACd,IAAIv7H,EAAQtgD,EAAMsgD,MACd03H,EAAUh4K,EAAMg4K,QACpB,OAAQ13H,IAAU03H,GAAqB,IAAV13H,GAa3Bw7H,EAAuB,WACzB,IAAI/B,EAAoB/5K,EAAM+5K,kBAC1BgC,EAAqB/7K,EAAM+7K,mBAC3B7E,EAAqBl3K,EAAMk3K,mBAC/B,OAAO6C,GDnGI,SAAuB9lL,GACpC,IAAI+nL,EAAqB/nL,EAAOgoL,WAC5BA,OAAoC,IAAvBD,EAAgC,EAAIA,EACjDE,EAAwBjoL,EAAOkoL,qBAC/BA,OAAiD,IAA1BD,EAAmC,GAAKA,EAC/DE,EAAwBnoL,EAAOooL,mBAC/BA,OAA+C,IAA1BD,EAAmC,EAAIA,EAC5DlF,EAAqBjjL,EAAOijL,mBAC5BoF,EAAe,CACjBj+L,KAAM,CACJsD,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,EAAE,EAAG,IAEfnvC,MAAO,CACLqD,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC,EAAG,IAEd3f,IAAK,CACHnsB,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC,GAAI,IAEf5rC,OAAQ,CACNF,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC,EAAG,IAEd8pJ,QAAS,CACP51L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,GAAG0uJ,EAAuBF,IAAc,IAElDzE,QAAS,CACP71L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,EAAE,IAAK4uJ,EAAqBJ,KAEtCxE,SAAU,CACR91L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC0uJ,EAAuBF,GAAa,IAE/CvE,SAAU,CACR/1L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC,IAAK4uJ,EAAqBJ,KAErCtE,YAAa,CACXh2L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC0uJ,EAAuBF,EAAY,IAE9CrE,YAAa,CACXj2L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,CAAC,EAAG4uJ,EAAqBJ,IAEnCpE,WAAY,CACVl2L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,GAAG0uJ,EAAuBF,GAAa,IAEjDnE,WAAY,CACVn2L,OAAQ,CAAC,KAAM,MACf8rC,OAAQ,EAAE,EAAG4uJ,EAAqBJ,KAYtC,OATA9zL,OAAO6E,KAAKsvL,GAAcpvL,SAAQ,SAAU3G,GAC1C+1L,EAAa/1L,GAAO0N,EAAO8nL,mBAAqBn8K,EAASA,EAAS,GAAI08K,EAAa/1L,IAAO,CACxFytB,SAAU2mK,EAAmBzD,GAC7BG,aAAcA,IACXz3K,EAASA,EAAS,GAAI03K,EAAW/wL,IAAO,CAC3CytB,SAAU2mK,EAAmBzD,KAE/BoF,EAAa/1L,GAAKg2L,aAAc,KAE3BD,ECgCuBE,CAAc,CACxCT,mBAAoBA,EACpB7E,mBAAoBA,KAiDpBvsD,EAAqB3qH,EAAM4qH,UAC3B6xD,EAAgBz8K,EAAMy8K,cACtBtxD,EAAoBnrH,EAAMmrH,kBAC1B+tD,EAAsBl5K,EAAMk5K,oBAC5BhB,EAAmBl4K,EAAMk4K,iBACzB11I,EAAQxiC,EAAMwiC,MACdy1I,EAAoBj4K,EAAMi4K,kBAC1Bp8K,EAAWmE,EAAMnE,SACjB+uH,EAAYE,EAAa,UAAWH,GACpC+xD,EAAcprI,IAEZ,YAAatxC,IAAU67K,MAC3Ba,GAAc,GAGhB,IAIIC,EACAC,EALAxoI,EAAQ0mI,EAA8B5+C,YAAergI,GAAYA,EAAwB3B,gBAAoB,OAAQ,KAAM2B,GAAW+uH,GACtIuzC,EAAa/pH,EAAMp0C,MACnB68K,EAAWnnL,IAAWyoK,EAAW39H,UAAWpuB,EAAgB,GAAIqqK,GAAiB,GAAG9wL,OAAOi/H,EAAW,UAAU,IAChHkyD,EAAyBpnL,IAAWwiL,GAAsC9lK,EAAnBqpK,EAAe,GAAkC,GAAG9vL,OAAOi/H,EAAW,QAAuB,QAAd37F,GAAsB7c,EAAgBqpK,EAAc,GAAG9vL,OAAOi/H,EAAW,KAAKj/H,OAAO62C,GAAQA,GAASo4I,EAAiBlqK,KAAK8xB,IAASi5I,IAa/Q,OATIj5I,IAAUo4I,EAAiBlqK,KAAK8xB,KAClCm6I,EAA6B/8K,EAASA,EAAS,GAAIq4K,GAAoB,CACrEztH,WAAYhoB,IAEdo6I,EAAoB,CAClBpyH,WAAYhoB,IAIItoC,gBAAoB6iL,EAAWn9K,EAAS,GAAII,EAAO,CACrE4qH,UAAWA,EACXstD,iBAAkB4E,EAClB5D,oBAAqB/tD,GAAqB+tD,GAAuByC,EACjE16K,IAAKA,EACL84K,kBAAmB+B,IACnB9D,QAhDe,WACf,IAAI13H,EAAQtgD,EAAMsgD,MACd03H,EAAUh4K,EAAMg4K,QAEpB,OAAc,IAAV13H,EACKA,EAGF03H,GAAW13H,GAAS,GAwClB08H,GACT1rI,QAASorI,EACThE,gBAxGoB,SAAyBuE,GACvC,YAAaj9K,GACjB47K,GAAWC,KAAsBoB,GAG/Bj9K,EAAM04K,kBAAoBmD,KAC5B77K,EAAM04K,gBAAgBuE,IAmGxBC,aApFiB,SAAsBC,EAASj2H,GAChD,IAAIowH,EAAawE,IAEbjD,EAAY1wL,OAAO6E,KAAKsqL,GAAY7kK,QAAO,SAAUlsB,GACvD,OAAO+wL,EAAW/wL,GAAK5E,OAAO,KAAOulE,EAAMvlE,OAAO,IAAM21L,EAAW/wL,GAAK5E,OAAO,KAAOulE,EAAMvlE,OAAO,MAClG,GAEH,GAAKk3L,EAAL,CAKA,IAAIr/K,EAAO2jL,EAAQtvK,wBACfuvK,EAAkB,CACpBtvK,IAAK,MACLzvB,KAAM,OAGJw6L,EAAUt8L,QAAQ,QAAU,GAAKs8L,EAAUt8L,QAAQ,WAAa,EAClE6gM,EAAgBtvK,IAAM,GAAGniB,OAAO6N,EAAKxX,OAASklE,EAAMz5B,OAAO,GAAI,OACtDorJ,EAAUt8L,QAAQ,QAAU,GAAKs8L,EAAUt8L,QAAQ,WAAa,KACzE6gM,EAAgBtvK,IAAM,GAAGniB,QAAQu7D,EAAMz5B,OAAO,GAAI,OAGhDorJ,EAAUt8L,QAAQ,SAAW,GAAKs8L,EAAUt8L,QAAQ,UAAY,EAClE6gM,EAAgB/+L,KAAO,GAAGsN,OAAO6N,EAAKzX,MAAQmlE,EAAMz5B,OAAO,GAAI,OACtDorJ,EAAUt8L,QAAQ,UAAY,GAAKs8L,EAAUt8L,QAAQ,SAAW,KACzE6gM,EAAgB/+L,KAAO,GAAGsN,QAAQu7D,EAAMz5B,OAAO,GAAI,OAGrD0vJ,EAAQz8I,MAAM08I,gBAAkB,GAAGzxL,OAAOyxL,EAAgB/+L,KAAM,KAAKsN,OAAOyxL,EAAgBtvK,OAuD5FmqK,kBAAmB0E,EACnB7C,aAA2B5/K,gBAAoB,OAAQ,CACrDsmC,UAAW,GAAG70C,OAAOi/H,EAAW,kBAChClqF,MAAOk8I,MAEPF,EAAcrgD,YAAajoF,EAAO,CACpC5T,UAAWq8I,IACRzoI,MAEPkrB,EAAQ5/D,YAAc,UACtB4/D,EAAQ+qD,aAAe,CACrBwuD,UAAW,MACXzQ,eAAgB,gBAChBiQ,gBAAiB,GACjBE,gBAAiB,GACjBwD,oBAAoB,EACpB7E,oBAAoB,GAEP53G,O,4DCnOA+9G,IAAf,ECII1lB,EAAe,kCACf2lB,EAAe,CACjB9pK,OAAQ,KACR+pK,WAAYA,IACZC,WAAYA,IACZC,WAAYA,IACZC,SAAUA,EACV7zC,OAAQ,CACN8zC,YAAa,iBAEfC,MAAO,CACLC,YAAa,cACbC,cAAe,KACfC,YAAa,QACbC,gBAAiB,aACjBC,UAAW,sBACXC,aAAc,sBACdC,aAAc,kBACdC,UAAW,OACXC,OAAQ,aACRC,SAAU,eACVC,YAAa,wBACbC,WAAY,uBACZC,WAAY,wBAEd30D,MAAO,CACL40D,OAAQ,KACRC,WAAY,SACZC,WAAY,MAEdC,WAAY,CACVH,OAAQ,KACRC,WAAY,UAEdG,SAAU,CACRr3G,OAAQ,CAAC,GAAI,IACbs3G,kBAAmB,cACnBC,SAAU,OACVC,UAAW,QACX/tK,OAAQ,SACRguK,cAAe,sBACfC,cAAe,sBACflB,UAAW,kBACXmB,UAAW,kBACXlB,aAAc,uBAEhBmB,OAAQ,CACNC,UAAW,eACXC,WAAY,cACZC,YAAa,eACbC,YAAa,eACbC,aAAc,iBAEhBjwC,MAAO,CACLjvF,YAAa,WAEf5e,KAAM,CACJrB,KAAM,QAERo/I,KAAM,CACJC,KAAM,OACNntL,KAAM,OACNotL,OAAQ,SACRxB,OAAQ,UAEVyB,WAAY,CACVC,KAAM,QAERh0D,KAAM,CACJC,wBAAyB,CACvB,QAAW,kCACX4rC,SAAU,wBACV,KAAQ,oCACRE,WAAY,uCACZttJ,KAAM,CACJpB,OAAQ,kCACR+6B,MAAO,yCACP7U,QAAS,+BAEXyoI,MAAO,CACLzwI,OAAQqwI,EACRz4G,OAAQy4G,EACRnnJ,MAAOmnJ,EACP5vK,OAAQ4vK,EACRvoJ,OAAQuoJ,EACRntJ,KAAMmtJ,EACN,QAAWA,EACXM,QAASN,EACT,MAASA,EACTQ,OAAQR,EACRS,MAAOT,EACPlxJ,IAAKkxJ,EACL70H,IAAK60H,GAEPrwI,OAAQ,CACNxwB,IAAK,qCACLzZ,IAAK,sCACLC,IAAK,mCACLkC,MAAO,qDAET4vB,OAAQ,CACNtY,IAAK,mCACLzZ,IAAK,mCACLC,IAAK,mCACLkC,MAAO,0CAETgxB,MAAO,CACL1Z,IAAK,0BACLzZ,IAAK,2BACLC,IAAK,0BACLkC,MAAO,wDAETw+E,QAAS,CACPq6F,SAAU,qDAKHilB,O,6BC3Hf,wNACO,SAAS3rK,EAAQr2B,GACtB,OAAIwB,MAAMD,QAAQvB,GACTA,OAGQ6W,IAAV7W,EAAsB,CAACA,GAAS,GAMlC,SAAS0kM,EAAa1kM,EAAOqgB,GAClC,IAAIskL,EAAetkL,EAAKskL,aACpBC,EAAWvkL,EAAKukL,SAEpB,QAAc/tL,IAAV7W,GAAiC,KAAVA,GAAgB4kM,EACzC,MAAO,GAGT,IAAI1hM,EAAS1B,MAAMD,QAAQvB,GAASA,EAAQ,CAACA,GAE7C,OAAI2kM,EACKzhM,EAAOmyB,KAAI,SAAUnS,GAC1B,IAAIjY,EAAMiY,EAAMjY,IACZsvB,EAAMrX,EAAMljB,MAChB,YAAe6W,IAAR0jB,EAAoBA,EAAMtvB,KAI9B/H,EAMF,SAAS2hM,EAAcC,EAAW96K,GACvC,IAAI+6K,EAAkB/6K,EAAM+6K,gBACxBJ,EAAe36K,EAAM26K,aACrB7xG,EAAY9oE,EAAM8oE,UAClBvsE,EAAUyD,EAAMzD,QAChBy+K,EAAkBh7K,EAAMg7K,gBACxB9hM,EAAS4hM,EAab,OAXIH,IACFzhM,EAASA,EAAOmyB,KAAI,SAAUkF,GAC5B,OAAOyqK,EAAgBzqK,EAAK,CAC1BhU,QAASA,EACTusE,UAAWA,EACX6xG,aAAcA,EACdI,gBAAiBA,QAKhB7hM,EAEF,SAAS+hM,EAAuBC,EAAehiM,GACpD,IAEI+yB,EAFAkvK,EAAYz5I,YAAmBxoD,GAInC,IAAK+yB,EAAcivK,EAAc5+L,OAAS,EAAG2vB,GAAe,GACrDivK,EAAcjvK,GAAaq+B,SAD6Br+B,GAAe,GAM9E,IAAImvK,EAAe,KAOnB,OALqB,IAAjBnvK,IACFmvK,EAAeD,EAAUlvK,GACzBkvK,EAAUrvK,OAAOG,EAAa,IAGzB,CACL/yB,OAAQiiM,EACRC,aAAcA,GAGX,IAGIC,EAH6B,qBAAXpkL,QAA0BA,OAAOC,UAAYD,OAAOC,SAASovC,gBAItFg1I,EAAO,EAGJ,SAASC,IACd,IAAIC,EAWJ,OAPIH,GACFG,EAAQF,EACRA,GAAQ,GAERE,EAAQ,cAGHA,I,6BCvFM5R,IAVf,SAAmB6R,EAAWv1H,GAC1B,IAAIu1H,EAIA,MAAM,IAAInlM,MANL,sB,cC6BbV,EAAOC,QALP,SAAkBG,GAChB,IAAI0L,SAAc1L,EAClB,OAAgB,MAATA,IAA0B,UAAR0L,GAA4B,YAARA,K,6BCzB/C,SAASs4C,EAAQ1yC,GAAmV,OAAtO0yC,EAArD,oBAAXz0C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8B,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/B,QAAyB+B,EAAIlE,cAAgBmC,QAAU+B,IAAQ/B,OAAOlC,UAAY,gBAAkBiE,IAAyBA,GAEnXzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAET6M,OAAOsG,eAAetT,EAAS,iBAAkB,CAC/CqT,YAAY,EACZ7H,IAAK,WACH,OAAOozK,EAAS9uC,kBAGpB9iI,OAAOsG,eAAetT,EAAS,gBAAiB,CAC9CqT,YAAY,EACZ7H,IAAK,WACH,OAAOozK,EAAS5tC,iBAGpBhxI,EAAO,QAAcA,EAAQmvI,yBAAsB,EAEnD,IAAIpwH,EAAQouI,EAAwBltJ,EAAQ,IAExC4lM,EAAe5lM,EAAQ,KAEvB6lM,EAAkB34C,EAAwBltJ,EAAQ,MAElD8lM,EAAkBn5C,EAAuB3sJ,EAAQ,MAEjD2+K,EAAW3+K,EAAQ,KAEnB+lM,EAAe/lM,EAAQ,KAEvBgmM,EAAWr5C,EAAuB3sJ,EAAQ,MAE1CimM,EAAgBt5C,EAAuB3sJ,EAAQ,MAEnD,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAEzF,SAAS85I,IAA6B,GAAuB,oBAAZE,QAAwB,OAAO,KAAM,IAAIG,EAAQ,IAAIH,QAA6F,OAAlFF,EAA2B,WAAsC,OAAOK,GAAiBA,EAE1M,SAASuB,EAAwB17I,GAAO,GAAIA,GAAOA,EAAI20I,WAAc,OAAO30I,EAAO,GAAY,OAARA,GAAiC,WAAjB0yC,EAAQ1yC,IAAoC,oBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIm6I,EAAQL,IAA4B,GAAIK,GAASA,EAAMv5I,IAAIZ,GAAQ,OAAOm6I,EAAMpgJ,IAAIiG,GAAQ,IAAIo6I,EAAS,GAAQC,EAAwB9+I,OAAOsG,gBAAkBtG,OAAOoG,yBAA0B,IAAK,IAAIhI,KAAOqG,EAAO,GAAIzE,OAAOQ,UAAUJ,eAAe7M,KAAKkR,EAAKrG,GAAM,CAAE,IAAI+H,EAAO24I,EAAwB9+I,OAAOoG,yBAAyB3B,EAAKrG,GAAO,KAAU+H,IAASA,EAAK3H,KAAO2H,EAAK7H,KAAQ0B,OAAOsG,eAAeu4I,EAAQzgJ,EAAK+H,GAAgB04I,EAAOzgJ,GAAOqG,EAAIrG,GAA4E,OAAhEygJ,EAAM,QAAcp6I,EAASm6I,GAASA,EAAMtgJ,IAAImG,EAAKo6I,GAAkBA,EAEruB,SAASpnI,IAA2Q,OAA9PA,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,IAA2BiC,MAAMzD,KAAMwD,WAGhT9N,EAAQmvI,oBADkB,CAAC,qBAAsB,oBAAqB,gBAAiB,eAAgB,cAAe,MAAO,0BAA2B,SAAU,cAGlK,IAyGIwe,EAzGiB,SAAwB9oI,GAC3C9F,EAAMiC,WAAU,WACV6D,EAAMivB,YACRmyJ,EAAQ,QAAYntL,OAAO,CACzBkU,IAAyB,QAApBnI,EAAMivB,YAGboyJ,EAAa,QAAYptL,OAAO,CAC9BkU,IAAyB,QAApBnI,EAAMivB,eAGd,CAACjvB,EAAMivB,YAEV,IAAIw7F,EAAsB,SAA6B7uH,GACrD,OAAO,SAAU8uH,EAAWC,GAC1B,IAAIC,EAAY5qH,EAAM4qH,UACtB,GAAID,EAAoB,OAAOA,EAC/B,IAAIE,EAAkBD,GAAahvH,EAAQkvH,aAAa,IACxD,OAAOJ,EAAY,GAAG/+H,OAAOk/H,EAAiB,KAAKl/H,OAAO++H,GAAaG,IAgF3E,OAAoB3wH,EAAMmC,cAAc6kL,EAAe,QAAa,MAAM,SAAU32L,EAAG9B,EAAIuiI,GACzF,OAAoB9wH,EAAMmC,cAAc09J,EAAS9uC,eAAgB,MAAM,SAAUrvH,GAC/E,OA9EiB,SAAwBA,EAASovH,GACpD,IAAInvH,EAAWmE,EAAMnE,SACjBqvH,EAAqBlrH,EAAMkrH,mBAC3BC,EAAoBnrH,EAAMmrH,kBAC1BC,EAAcprH,EAAMorH,YACpBC,EAAMrrH,EAAMqrH,IACZC,EAA0BtrH,EAAMsrH,wBAChCC,EAAOvrH,EAAMurH,KACbt6G,EAAQjR,EAAMiR,MACduC,EAASxT,EAAMwT,OACfg4G,EAAaxrH,EAAMwrH,WACnBC,EAAgBzrH,EAAMyrH,cACtBx8F,EAAYjvB,EAAMivB,UAClBy8F,EAAQ1rH,EAAM0rH,MACdC,EAAU3rH,EAAM2rH,QAChBC,EAA2B5rH,EAAM4rH,yBAEjC33H,EAAS2L,EAASA,EAAS,GAAIhE,GAAU,CAC3CkvH,aAAcL,EAAoB7uH,GAClCyvH,IAAKA,EACLC,wBAAyBA,EACzB93G,OAAQA,GAAUw3G,EAClB/7F,UAAWA,EACXy8F,MAAOA,EACPC,QAASA,EACTC,yBAA0BA,IAGxBV,IACFj3H,EAAOi3H,mBAAqBA,GAG1BC,IACFl3H,EAAOk3H,kBAAoBA,GAGzBC,IACFn3H,EAAOm3H,YAAcA,GAGnBI,IACFv3H,EAAOu3H,WAAaA,GAGlBv6G,IACFhd,EAAOgd,MAAQA,GAGjB,IAAI46G,EAAYhwH,EAEZiwH,EAAmB,GAgBvB,OAdIt4G,GAAUA,EAAOu4G,MAAQv4G,EAAOu4G,KAAKC,0BACvCF,EAAmBt4G,EAAOu4G,KAAKC,yBAG7BT,GAAQA,EAAKO,mBACfA,EAAmBlsH,EAASA,EAAS,GAAIksH,GAAmBP,EAAKO,mBAG/D3jI,OAAO6E,KAAK8+H,GAAkBlqI,OAAS,IACzCiqI,EAAyB3xH,EAAMmC,cAAc2kL,EAAa1b,aAAc,CACtEx5C,iBAAkBA,GACjBjwH,IAGe3B,EAAMmC,cAAc8kL,EAAaj1D,oBAAqB,CACxEruD,KAAM4tD,GACQvxH,EAAMmC,cAAc09J,EAAS5tC,cAAczwH,SAAU,CACnEpgB,MAAO2Y,GACOiG,EAAMmC,cAAc4kL,EAAe,QAAa,CAC9DztK,OAAQA,GAAUw3G,EAClBhB,YAAai3D,EAAgBK,UAC5Bz1D,KAKMO,CAAexwH,EAASovH,UAMrC7vI,EAAO,QAAc2tJ,G,6BCjIf,SAAU/2H,EAAMv1B,EAAW0L,GAChC,OAAI1L,IAAM0L,EACF,EAEG1L,EAAI0L,GACN,EAGD,EAqBH,SAAUq5L,EAAOj6J,EAAgB+nH,GACtC,OAAO,IAAIvyJ,MAAMuyJ,EAAS,GAAGnjJ,KAAKo7B,GAS7B,SAAU0wG,EAAOwpD,GAGtB,IAFA,IAAIvvL,EAAM,GACNwvL,EAAS,iEACJ3/L,EAAI,EAAGA,EAAI0/L,EAAO1/L,IAC1BmQ,GAAOwvL,EAAO5nJ,OAAO78C,KAAKU,MAAMV,KAAKg7I,SAAWypD,EAAO7/L,SAExD,OAAOqQ,EA7DR,uG,6BCTA,uEAAI2N,EAAWzX,OAAOW,QAAU,SAAU7B,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAStd,UAAUnH,GAAI,IAAK,IAAIyE,KAAOggB,EAAcpe,OAAOQ,UAAUJ,eAAe7M,KAAK6qB,EAAQhgB,KAAQU,EAAOV,GAAOggB,EAAOhgB,IAAY,OAAOU,GAEnP23C,EAAe,WAAc,SAAS/rB,EAAiB5rB,EAAQ+Y,GAAS,IAAK,IAAIle,EAAI,EAAGA,EAAIke,EAAMpe,OAAQE,IAAK,CAAE,IAAI68C,EAAa3+B,EAAMle,GAAI68C,EAAWnwC,WAAamwC,EAAWnwC,aAAc,EAAOmwC,EAAWhwC,cAAe,EAAU,UAAWgwC,IAAYA,EAAWjwC,UAAW,GAAMvG,OAAOsG,eAAexH,EAAQ03C,EAAWp4C,IAAKo4C,IAAiB,OAAO,SAAUpsB,EAAassB,EAAYC,GAAiJ,OAA9HD,GAAYhsB,EAAiBN,EAAY5pB,UAAWk2C,GAAiBC,GAAajsB,EAAiBN,EAAausB,GAAqBvsB,GAA7gB,GAEnB,SAASH,EAAgBxlB,EAAKrG,EAAKjL,GAAiK,OAApJiL,KAAOqG,EAAOzE,OAAOsG,eAAe7B,EAAKrG,EAAK,CAAEjL,MAAOA,EAAOkT,YAAY,EAAMG,cAAc,EAAMD,UAAU,IAAkB9B,EAAIrG,GAAOjL,EAAgBsR,EA6U5L80L,IArTR,SAAsBztL,GAC3B,IAAI0tL,EAAoB1tL,EACpBmL,IAAelF,IAAMkF,WAOzB,SAASwiL,EAAoB5hL,GAC3B,SAAUA,EAAM6hL,aAAcF,GANV,kBAAX1tL,IACT0tL,EAAoB1tL,EAAO0tL,kBAC3BviL,EAAa,eAAgBnL,EAASA,EAAOmL,WAAaA,GAO5D,IAAI0iL,EAAY,SAAUn4D,GAGxB,SAASm4D,KAtCb,SAAyBxvK,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItnB,UAAU,qCAuC1GonB,CAAgB5sB,KAAMq8L,GAEtB,IAAIntL,EAvCV,SAAoC9I,EAAMnQ,GAAQ,IAAKmQ,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOpQ,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BmQ,EAAPnQ,EAuChN6jD,CAA2B95C,MAAOq8L,EAAUz5L,WAAaF,OAAOoE,eAAeu1L,IAAYpmM,KAAK+J,OAoK5G,OAlKAkP,EAAMotL,YAAc,WAClB,IAAIvzB,EAAc75J,EAAMrH,MACpBslJ,EAAS4b,EAAY5b,OACrBovC,EAAYxzB,EAAYwzB,UACxB93D,EAAcv1H,EAAMqL,MACpBiiL,EAAgB/3D,EAAY+3D,cAC5BC,EAAeh4D,EAAYg4D,aAC3BC,EAAej4D,EAAYi4D,aAC3BC,EAAiBl4D,EAAYk4D,eAC7BC,EAAgBn4D,EAAYm4D,cAC5BC,EAAgBp4D,EAAYo4D,cAC5BC,EAAer4D,EAAYq4D,aAC3BC,EAAct4D,EAAYs4D,YAC1BC,EAAcv4D,EAAYu4D,YAG9B,GAAKb,EAAoBjtL,EAAMqL,OAA/B,CAKA,IAAI0iL,EAAO/tL,EAAMwzC,aACbxzC,EAAMguL,YAAcD,IACtB/tL,EAAMuzC,oBAAoBvzC,EAAMguL,WAChChuL,EAAM9O,iBAAiB68L,GACvB/tL,EAAMguL,UAAYD,GAIhBV,GA1DQ,WA0DKpvC,GAA4B2vC,EAC3C5tL,EAAMiuL,aAAaX,EAAe,KAAM,MAAM,WAC5CttL,EAAMkuL,mBAAmBT,EA5DjB,aA8DDJ,GA7DA,UA6DapvC,GAA2B4vC,EACjD7tL,EAAMiuL,aAAaV,EAAc,KAAM,MAAM,WAC3CvtL,EAAMkuL,mBAAmBR,EA/DlB,YAiEAL,GAhEA,UAgEapvC,GAA2B6vC,GACjD9tL,EAAMiuL,aAAaT,EAAc,KAAM,MAAM,WAC3CxtL,EAAMkuL,mBAAmBP,EAlElB,cAuEb3tL,EAAMmuL,YAAc,SAAUl5I,GAC5B,IAAIm5I,EAAepuL,EAAMrH,MACrBslJ,EAASmwC,EAAanwC,OACtBowC,EAAeD,EAAaC,aAC5B30B,EAAe15J,EAAMqL,MACrBijL,EAAc50B,EAAa40B,YAC3BC,EAAa70B,EAAa60B,WAC1BC,EAAa90B,EAAa80B,WAhFlB,WAkFRvwC,GAA4BowC,EAC9BruL,EAAMiuL,aAAaK,EAAa,CAAErwC,OApF1B,QAoFiDhpG,GAlFhD,UAmFAgpG,GAA2BowC,EACpCruL,EAAMiuL,aAAaM,EAAY,CAAEtwC,OAtFzB,QAsFgDhpG,GAnF/C,UAoFAgpG,GAA2BowC,GACpCruL,EAAMiuL,aAAaO,EAAY,CAAEvwC,OAxFzB,QAwFgDhpG,IAI5Dj1C,EAAMyuL,WAAa,SAAUxtI,GAC3B,IAAIytI,EAAc1uL,EAAMqL,MAAMqjL,YAE9B1uL,EAAMihD,KAAOA,EAEc,oBAAhBytI,EACTA,EAAYztI,GACHytI,GAAe,YAAaA,IACrCA,EAAY1lL,QAAUi4C,IAI1BjhD,EAAMwzC,WAAa,WACjB,IACE,OAAOuhH,YAAY/0J,EAAMihD,MAAQjhD,GACjC,MAAO7K,GAKP,OAAO6K,EAAMguL,YAIjBhuL,EAAM9O,iBAAmB,SAAU68L,GAC5BA,IAELA,EAAK78L,iBAAiBy9L,IAAmB3uL,EAAMmuL,aAC/CJ,EAAK78L,iBAAiB09L,IAAkB5uL,EAAMmuL,eAGhDnuL,EAAMuzC,oBAAsB,SAAUw6I,GAC/BA,IAELA,EAAKx6I,oBAAoBo7I,IAAmB3uL,EAAMmuL,aAClDJ,EAAKx6I,oBAAoBq7I,IAAkB5uL,EAAMmuL,eAGnDnuL,EAAMiuL,aAAe,SAAUY,EAAWC,EAAiB75I,EAAOvvC,GAChE,IAAIqpL,EAAcF,EAAYA,EAAU7uL,EAAMwzC,aAAcyB,GAAS,KAErE,IAAoB,IAAhB85I,IAAyB/uL,EAAMgvL,WAAnC,CAEA,IAAIC,OAAW,EACXvpL,IACFupL,EAAW,WACTjvL,EAAM8wJ,UAAUprJ,KAIpB1F,EAAMu9C,SAAStyC,EAAS,CACtB8jL,YAAoC,kBAAhBA,EAA2BA,EAAc,KAC7D1B,WAAW,GACVyB,GAAkBG,KAGvBjvL,EAAMkuL,mBAAqB,SAAUW,EAAWK,GAG9ClvL,EAAM8wJ,WAAU,WAGd,GAFa9wJ,EAAMrH,MAAMslJ,SAEVixC,EAAf,CAEA,IAAIC,EAAiBnvL,EAAMqL,MAAM8jL,eAGjCnvL,EAAMiuL,aAAaY,EAAW,CAAER,cAAc,IAE1Cc,EAAiB,GACnB1/H,YAAW,WACTzvD,EAAMmuL,YAAY,CAChBiB,UAAU,MAEXD,QAKTnvL,EAAM8wJ,UAAY,SAAUrtI,GAC1BzjB,EAAMqvL,kBACNrvL,EAAMo1I,IAAMA,IAAI3xH,IAGlBzjB,EAAMqvL,gBAAkB,WAClBrvL,EAAMo1I,MACRA,IAAII,OAAOx1I,EAAMo1I,KACjBp1I,EAAMo1I,IAAM,OAIhBp1I,EAAMrH,MAAQ,CACZslJ,OAxLU,OAyLVowC,cAAc,EACdhB,WAAW,EACX0B,YAAa,MAEf/uL,EAAMguL,UAAY,KAClBhuL,EAAMihD,KAAO,KACbjhD,EAAMo1I,IAAM,KACLp1I,EAyGT,OAlTJ,SAAmBorC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/0C,UAAU,kEAAoE+0C,GAAeD,EAASp3C,UAAYR,OAAOS,OAAOo3C,GAAcA,EAAWr3C,UAAW,CAAED,YAAa,CAAEpN,MAAOykD,EAAUvxC,YAAY,EAAOE,UAAU,EAAMC,cAAc,KAAeqxC,IAAY73C,OAAOC,eAAiBD,OAAOC,eAAe23C,EAAUC,GAAcD,EAAS13C,UAAY23C,GAgC7dF,CAAUgiJ,EAAWn4D,GA4KrB/qF,EAAakjJ,EAAW,CAAC,CACvBv7L,IAAK,oBACLjL,MAAO,WACLmK,KAAKs8L,gBAEN,CACDx7L,IAAK,qBACLjL,MAAO,WACLmK,KAAKs8L,gBAEN,CACDx7L,IAAK,uBACLjL,MAAO,WACLmK,KAAKk+L,YAAa,EAClBl+L,KAAKyiD,oBAAoBziD,KAAKk9L,WAC9Bl9L,KAAKu+L,oBAEN,CACDz9L,IAAK,SACLjL,MAAO,WACL,IAAI0xK,EAEAi3B,EAASx+L,KAAK6H,MACdslJ,EAASqxC,EAAOrxC,OAChBowC,EAAeiB,EAAOjB,aACtBU,EAAcO,EAAOP,YACrBlU,EAAS/pL,KAAKua,MACdnE,EAAW2zK,EAAO3zK,SAClBgmL,EAAarS,EAAOqS,WACpBvwI,EAAUk+H,EAAOl+H,QACjB4yI,EAAgB1U,EAAO0U,cACvBC,EAAkB3U,EAAO2U,gBACzBC,EAAa5U,EAAO4U,WAGxB,OAAKvoL,EAtOK,SAwON+2I,GAA2BgvC,EAAoBn8L,KAAKua,OAUjDnE,EAAS+D,EAAS,GAAIwkL,EAAY,CACvC5jJ,UAAW9qC,KAAYs3J,EAAc,GAAI56I,EAAgB46I,EAAaq3B,YAAkBxC,EAAYjvC,GAnP5F,SAmPqGA,GAAyBxgI,EAAgB46I,EAAaq3B,YAAkBxC,EAAYjvC,EAAS,WAnPlM,SAmP8MA,GAA0BowC,GAAe5wK,EAAgB46I,EAAa60B,EAAkC,kBAAfA,GAA0B70B,IACzUtsH,MAAOgjJ,IACLj+L,KAAK29L,YAZH9xI,EACKz1C,EAAS+D,EAAS,GAAIwkL,GAAa3+L,KAAK29L,YACrCc,EAIL,KAHEroL,EAAS+D,EAAS,GAAIwkL,EAAY,CAAE5jJ,UAAW2jJ,IAAoB1+L,KAAK29L,YAN7D,QAiBtB,CAAC,CACH78L,IAAK,2BACLjL,MAAO,SAAkC0kB,EAAOrE,GAC9C,IAAIsuH,EAAYtuH,EAAKsuH,UACjBq6D,EAAa3oL,EAAKi3I,OAEtB,IAAKgvC,EAAoB5hL,GAAQ,MAAO,GAExC,IAAIsxC,EAAUtxC,EAAMsxC,QAChBixI,EAAeviL,EAAMuiL,aACrBC,EAAcxiL,EAAMwiL,YACpBC,EAAcziL,EAAMyiL,YACpB8B,EAAyBvkL,EAAMukL,uBAE/B11B,EAAW,CACb5kC,UAAWjqH,GA+Bb,OApSY,WAyQRskL,IAAiC/B,GAxQ1B,UAwQ0C+B,IAAgC9B,GAvQ1E,UAuQyF8B,IAAgC7B,KAClI5zB,EAASjc,OA3QD,OA4QRic,EAASm0B,cAAe,EACxBn0B,EAASmzB,WAAY,IAIlB/3D,GAAa34E,GAAWixI,IAC3B1zB,EAASjc,OAjRC,SAkRVic,EAASm0B,cAAe,EACxBn0B,EAASmzB,WAAY,GAInB/3D,IAAcA,EAAU34E,SAAWA,GAAWkxI,IAChD3zB,EAASjc,OAvRA,QAwRTic,EAASm0B,cAAe,EACxBn0B,EAASmzB,WAAY,IAInB/3D,GAAaA,EAAU34E,UAAYA,GAAWmxI,IAAgBx4D,GAAas6D,IAA2BjzI,GAAWmxI,KACnH5zB,EAASjc,OA7RA,QA8RTic,EAASm0B,cAAe,EACxBn0B,EAASmzB,WAAY,GAGhBnzB,MAIJizB,EAnRO,CAoRd5nL,IAAMgmE,WAWR,OATA4hH,EAAUz3D,aAAe,CACvB/4E,SAAS,EACTkxI,aAAa,EACbD,cAAc,EACdE,aAAa,EACbyB,eAAe,GAIZ9kL,EAIElF,IAAMkF,YAAW,SAAUY,EAAOiB,GACvC,OAAO/G,IAAMmC,cAAcylL,EAAWliL,EAAS,CAAEyjL,YAAapiL,GAAOjB,OAJ9D8hL,EAQIJ,CAAa8C,M,gBCjV5BtpM,EAAOC,QAAUC,EAAQ,O,6BCAzB,8EA8EA,cAoBC,mBACC,cAAO,K,OACP,EAAKolD,UAAY,YACjB,EAAKryB,QAAU,EAAKnoB,MAAM+I,IAAI,QAC9B,EAAKqzJ,WAAa,GAClB,EAAKC,WAAa,EAClB,EAAK7+J,QAAU,GACf,EAAKs1D,cAAe,EAEpB,EAAK3X,KAAO,cAEZ,EAAKiO,a,EAsEP,OArG+B,iBAuCvB,YAAAY,KAAP,WAEC,IAAI/sD,EAAa,CAAElD,EAAG0F,KAAK83F,GAAIv9F,EAAGyF,KAAKy3F,IACnCh6F,EAAa,CAAEnD,EAAG0F,KAAK+3F,GAAIx9F,EAAGyF,KAAK03F,IAEvC13F,KAAK8L,KAAO,IAAatO,GAAM,YAAUA,EAAIC,EAAIuC,KAAK28J,WAAY38J,KAAK48J,WAAY58J,KAAKjC,SAAS,IASlG,sBAAW,yBAAU,C,IAQrB,WACC,OAAOiC,KAAKujD,iBAAiB,e,IAT9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GACpCmK,KAAK0pD,c,gCAgBN,sBAAW,yBAAU,C,IAQrB,WACC,OAAO1pD,KAAKujD,iBAAiB,e,IAT9B,SAAsB1tD,GACrBmK,KAAKopD,iBAAiB,aAAcvzD,GACpCmK,KAAK0pD,c,gCAgBN,sBAAW,sBAAO,C,IAQlB,WACC,OAAO1pD,KAAKujD,iBAAiB,Y,IAT9B,SAAmB1tD,GAClBmK,KAAKopD,iBAAiB,UAAWvzD,GACjCmK,KAAK0pD,c,gCAUP,EArGA,CAA+B,M,gBC9E/B,IAAIs1I,EAAarpM,EAAQ,KAGrBspM,EAA0B,iBAAR74L,MAAoBA,MAAQA,KAAK1D,SAAWA,QAAU0D,KAGxEo+C,EAAOw6I,GAAcC,GAAYxtK,SAAS,cAATA,GAErCh8B,EAAOC,QAAU8uD,G,6BCgBX,SAAUjhC,EAAQxsB,GACvB,OAAQA,GACP,KAAK,EACJ,OAAO,EACR,KAAM,EACL,OAAO,EACR,KAAK,EACJ,OAAQ,GAaL,SAAUmoM,EAAGnoM,EAAa0L,GAC/B,OAAU,IAAN1L,EACI0L,EAGA1L,EAjDT,qE,6BCAA,oHAuEA,cAuCC,mBAGC,cAAO,KAtBE,EAAAooM,UAA6B,IAAI,IAapC,EAAA30J,WAAuC,GAU7C,EAAKuQ,UAAY,UAGjB,EAAKz+C,MAAQ,GACb,EAAKC,OAAS,GACd,EAAKjC,EAAI,EACT,EAAKC,EAAI,EACT,EAAK6kM,aAAe,iBAEpB,IAAItrH,EAAkB,IAAI,I,OAE1B,EAAKurH,eAAiBvrH,EAAgBlK,OAAO,cAC7C,EAAKgtC,kBAAoB,EAEzB,EAAKhmD,YAAc,EACnB,EAAKlV,KAAOo4B,EAAgBlK,OAAO,yBACnC,EAAKvb,OAASylB,EAAgBlK,OAAO,yBACrC,EAAK/Y,cAAgB,EACrB,EAAKhE,YAAc,EACnB,EAAKiE,eAAiB,aACtB,EAAK/pC,SAAW,EAGhB,EAAK2B,QAAU,EAAKnoB,MAAM4oD,SAAS,WACnC,EAAKoF,GAAK,WAAa,IAASruD,cAChC,EAAKwoB,QAAQiiC,KAAK,CAAE,GAAM,EAAK4D,KAC/B,EAAKrF,WAAW1qD,KAAK,EAAKkqB,SAG1B,EAAKwgC,WAAW1qD,KAAK,IAAI,IAAa,EAAK2gM,YAG3C,EAAKC,aAAe,EAAKA,aACzB,EAAK9iM,MAAQ,EAAKA,MAClB,EAAKC,OAAS,EAAKA,OAGnB,EAAKotD,a,EA4ZP,OA5e6B,iBAsFlB,YAAAY,KAAV,sBAEK+0I,EAAwBt/L,KAAK0oB,QACjC,GAAI42K,EAAgB,CAEnBA,EAAettI,mBAEf,IAAI+S,EAAa/kE,KAAKO,MAAM+I,IAAI,QAChCy7D,EAAWpa,KAAK,CAAE,MAAS3qD,KAAK1D,MAAO,OAAU0D,KAAKzD,OAAQ,kBAAmB,aAAc,KAAQyD,KAAKq/L,eAAehiJ,IAAK,eAAgBr9C,KAAK42G,kBAAmB,OAAU52G,KAAKq/L,eAAehiJ,IAAK,iBAAkB,IAC7NiiJ,EAAeh2L,IAAIy7D,GAEnBu6H,EAAe30I,KAAK,CAAE,EAAK3qD,KAAK1F,EAAG,EAAK0F,KAAKzF,EAAG,MAASyF,KAAK1D,MAAO,OAAU0D,KAAKzD,OAAQ,OAAUyD,KAAKquD,OAAOhR,IAAK,KAAQr9C,KAAK07C,KAAK2B,IAAK,eAAgBr9C,KAAK4wD,YAAa,iBAAkB5wD,KAAK6wD,cAAe,eAAgB7wD,KAAK6sD,YAAa,kBAAmB7sD,KAAK8wD,eAAgB,aAAgB9wD,KAAKo/L,aAAc,mBAAmBp/L,KAAK+wD,kBAE3V,IAAW/wD,KAAKm/L,UAAU95L,YAAY,SAACqjB,GACtCA,EAAQ3B,SAAW,EAAKA,SACxB2B,EAAQ62K,UAAY,EAAK/0J,WAAL,UACpB9hB,EAAQ82K,UAAY,EAAKh1J,WAAL,UACpB,EAAK9hB,QAAQpf,IAAIof,QAcb,YAAAotC,QAAP,SAAeC,EAA2DhvB,EAAkBivB,GAC3F,OAAO,IAAI,IAAUh2D,KAAM+1D,EAAkBhvB,EAAUivB,GAAQv8D,SAQzD,YAAA+8E,WAAP,SAAkB9tD,GACjB1oB,KAAKm/L,UAAU3gM,KAAKkqB,GACpB1oB,KAAKkpD,WAAW1qD,KAAKkqB,IAQf,YAAA6pC,cAAP,SAAqB7pC,GACpB1oB,KAAKm/L,UAAUl/I,YAAYv3B,GAC3B1oB,KAAKoyD,cAAc1pC,IAQpB,sBAAW,uBAAQ,C,IAAnB,WACC,OAAO1oB,KAAKm/L,W,gCAQb,sBAAW,0BAAW,C,IAQtB,WACC,OAAOn/L,KAAKwqC,WAAL,a,IATR,SAAuB30C,GACtBmK,KAAKwqC,WAAL,YAAiC30C,EACjCmK,KAAKuqD,Q,gCAeN,sBAAW,mBAAI,C,IAQf,WACC,OAAOvqD,KAAKwqC,WAAL,M,IATR,SAAgB30C,GACfmK,KAAKwqC,WAAL,KAA0B30C,EAC1BmK,KAAKuqD,Q,gCAeN,sBAAW,6BAAc,C,IAQzB,WACC,OAAOvqD,KAAKwqC,WAAL,gB,IATR,SAA0B30C,GACzBmK,KAAKwqC,WAAL,eAAoC30C,EACpCmK,KAAKuqD,Q,gCAeN,sBAAW,gCAAiB,C,IAQ5B,WACC,OAAOvqD,KAAKwqC,WAAL,mB,IATR,SAA6B30C,GAC5BmK,KAAKwqC,WAAL,kBAAuC30C,EACvCmK,KAAKuqD,Q,gCAeN,sBAAW,qBAAM,C,IAQjB,WACC,OAAOvqD,KAAKwqC,WAAL,Q,IATR,SAAkB30C,GACjBmK,KAAKwqC,WAAL,OAA4B30C,EAC5BmK,KAAKuqD,Q,gCAeN,sBAAW,4BAAa,C,IAQxB,WACC,OAAOvqD,KAAKwqC,WAAL,e,IATR,SAAyB30C,GACxBmK,KAAKwqC,WAAL,cAAmC30C,EACnCmK,KAAKuqD,Q,gCAeN,sBAAW,0BAAW,C,IAQtB,WACC,OAAOvqD,KAAKwqC,WAAL,a,IATR,SAAuB30C,GACtBmK,KAAKwqC,WAAL,YAAiC30C,EACjCmK,KAAKuqD,Q,gCAcN,sBAAW,6BAAc,C,IAKzB,WACC,OAAOvqD,KAAKwqC,WAAL,gB,IANR,SAA0B30C,GACzBmK,KAAKwqC,WAAL,eAAoC30C,EACpCmK,KAAKuqD,Q,gCAYN,sBAAW,uBAAQ,C,IAQnB,WACC,OAAOvqD,KAAKwqC,WAAL,U,IATR,SAAoB30C,GACnBmK,KAAKwqC,WAAL,SAA8B30C,EAC9BmK,KAAKuqD,Q,gCAiBN,sBAAW,2BAAY,C,IAQvB,WACC,OAAOvqD,KAAKwqC,WAAL,c,IATR,SAAwB30C,GACvBmK,KAAKwqC,WAAL,aAAkC30C,EAClCmK,KAAKuqD,Q,gCAeN,sBAAW,oBAAK,C,IAQhB,WACC,OAAOvqD,KAAKwqC,WAAL,O,IATR,SAAiB30C,GAChBmK,KAAKwqC,WAAL,MAA2B30C,EAC3BmK,KAAKuqD,Q,gCAeN,sBAAW,qBAAM,C,IAQjB,WACC,OAAOvqD,KAAKwqC,WAAL,Q,IATR,SAAkB30C,GACjBmK,KAAKwqC,WAAL,OAA4B30C,EAC5BmK,KAAKuqD,Q,gCAeN,sBAAW,gBAAC,C,IAQZ,WACC,OAAOvqD,KAAKwqC,WAAL,G,IATR,SAAa30C,GACZmK,KAAKwqC,WAAL,EAAuB30C,EACvBmK,KAAKuqD,Q,gCAeN,sBAAW,gBAAC,C,IAQZ,WACC,OAAOvqD,KAAKwqC,WAAL,G,IATR,SAAa30C,GACZmK,KAAKwqC,WAAL,EAAuB30C,EACvBmK,KAAKuqD,Q,gCAgBN,sBAAW,oBAAK,C,IAYhB,WACC,OAAIvqD,KAAKowD,OACDpwD,KAAKowD,OAEN,e,IAhBR,SAAiB7vD,GACZP,KAAKowD,QAAU7vD,IAClBP,KAAKowD,OAAS7vD,EACdP,KAAKuqD,OACLhqD,EAAMqvD,UAAU5vD,KAAK0oB,W,gCAoBhB,YAAAm4B,SAAP,SAAgB//B,GAAhB,WACC,YAAM+/B,SAAQ,UAAC//B,GACf,IAAaA,EAAO0pB,YAAY,SAAC1pC,EAAKjL,GAC/B,EAAMiL,GAAOjL,MAUrB,sBAAW,yBAAU,C,IAArB,WAKC,OAJKmK,KAAK41D,cACT51D,KAAK41D,YAAc,GACnB51D,KAAKkpD,WAAW1qD,KAAK,IAAI,IAAkBwB,KAAK41D,eAE1C51D,KAAK41D,a,gCAWb,sBAAW,8BAAe,C,IAQ1B,WACC,OAAO51D,KAAKwqC,WAAL,iB,IATR,SAA2B30C,GAC1BmK,KAAKwqC,WAAL,gBAAqC30C,EACrCmK,KAAKuqD,Q,gCAiBC,YAAA4b,cAAP,SAAqB33D,GAEpB,GAAIA,GAGC,IAAeA,EAAOixL,WAAa,IAAcjxL,EAAOixL,UAC3D,IAAK,IAAIpjM,EAAI,EAAGgV,EAAM7C,EAAOixL,SAAStjM,OAAQE,EAAIgV,EAAKhV,IAAK,CAC3D,IAAIqsB,EAAUla,EAAOixL,SAASpjM,GAC9B,GAAI,IAAeqsB,EAAO,MAAW,CACpC,IAAIroB,EAASL,KAAK27I,oBAAoBjzH,GAClCroB,aAAkB,MACrBA,EAAOmO,OAASka,GAEjB1oB,KAAKw2E,WACJ,IAAe9tD,EAAO,cACpBroB,EAAOqoB,EAAO,cACdroB,EAAOqoB,UAQd,YAAMy9C,cAAa,UAAC33D,IAItB,EA5eA,CAA6B,KAof7B,IAASpP,kBAAT,QAAwCq3E,G,6BCrjBtC,IAEgCtvE,EAPhCzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAMlB,IAAI+yI,GAF4Bl8I,EAFgBxR,EAAQ,OAEHwR,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAGzFzR,EAAQ4a,QAAU+yI,EAClB5tJ,EAAOC,QAAU2tJ,G,6BCNjB,IAEgCl8I,EAPhCzE,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4a,aAAU,EAMlB,IAAI+yI,GAF4Bl8I,EAFsBxR,EAAQ,OAETwR,EAAI20I,WAAa30I,EAAM,CAAE,QAAWA,GAGzFzR,EAAQ4a,QAAU+yI,EAClB5tJ,EAAOC,QAAU2tJ,G,6BCZnB,uDACe,SAASq8C,EAAqBl+L,EAAQJ,EAAWu+L,EAAIzoI,GAElE,IAAItiD,EAAW+uK,IAASic,wBAA0B,SAAav7L,GAC7Ds/K,IAASic,wBAAwBD,EAAIt7L,IACnCs7L,EAMJ,OAJIn+L,EAAOpB,kBACToB,EAAOpB,iBAAiBgB,EAAWwT,EAAUsiD,GAGxC,CACLzrC,OAAQ,WACFjqB,EAAOihD,qBACTjhD,EAAOihD,oBAAoBrhD,EAAWwT,O,wRCd1C7R,EAAyC,WACzC,IAAIP,EAAgB,SAAUrK,EAAGsK,GAI7B,OAHAD,EAAgBE,OAAOC,gBAClB,CAAEC,UAAW,cAAgBvL,OAAS,SAAUc,EAAGsK,GAAKtK,EAAEyK,UAAYH,IACvE,SAAUtK,EAAGsK,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAI1K,EAAE0K,GAAKJ,EAAEI,MACpD1K,EAAGsK,IAE5B,OAAO,SAAUtK,EAAGsK,GAEhB,SAASO,IAAOhD,KAAKiD,YAAc9K,EADnCqK,EAAcrK,EAAGsK,GAEjBtK,EAAE+K,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,IAV1C,GAclC68L,EAAmBprL,gBAAoB,MAC9CwB,EAA0B,SAAUkuH,GAEpC,SAASluH,IACL,OAAkB,OAAXkuH,GAAmBA,EAAO1gI,MAAMzD,KAAMwD,YAAcxD,KAK/D,OAPA+C,EAAUkT,EAAUkuH,GAIpBluH,EAAS/S,UAAUm8I,OAAS,WACxB,OAAQ5qI,gBAAoBorL,EAAiB5pL,SAAU,CAAEpgB,MAAOmK,KAAKua,MAAMhF,OAASvV,KAAKua,MAAMnE,WAE5FH,EARmB,CAS5BxB,a,oCCxBE1R,EAAyC,WACzC,IAAIP,EAAgB,SAAUrK,EAAGsK,GAI7B,OAHAD,EAAgBE,OAAOC,gBAClB,CAAEC,UAAW,cAAgBvL,OAAS,SAAUc,EAAGsK,GAAKtK,EAAEyK,UAAYH,IACvE,SAAUtK,EAAGsK,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAI1K,EAAE0K,GAAKJ,EAAEI,MACpD1K,EAAGsK,IAE5B,OAAO,SAAUtK,EAAGsK,GAEhB,SAASO,IAAOhD,KAAKiD,YAAc9K,EADnCqK,EAAcrK,EAAGsK,GAEjBtK,EAAE+K,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,IAV1C,GAazCI,EAAsC,WAStC,OARAA,EAAWV,OAAOW,QAAU,SAASC,GACjC,IAAK,IAAIrI,EAAGoB,EAAI,EAAGkH,EAAIC,UAAUrH,OAAQE,EAAIkH,EAAGlH,IAE5C,IAAK,IAAIwG,KADT5H,EAAIuI,UAAUnH,GACOqG,OAAOQ,UAAUJ,eAAe7M,KAAKgF,EAAG4H,KACzDS,EAAET,GAAK5H,EAAE4H,IAEjB,OAAOS,IAEKG,MAAMzD,KAAMwD,YAShC,IAAIs8L,EAAyB,WAAc,MAAQ,IAC5C,SAASx4F,EAAQvqF,EAAiBX,QACrB,IAAZA,IAAsBA,EAAU,IACpC,IAAI2jL,IAAoBhjL,EACpBijL,EAAuBjjL,GAAmB+iL,EAC9C,OAAO,SAAyB/lL,GAC5B,IAAI0B,EAAyB,SAAU0oH,GAEnC,SAAS1oH,EAAQlB,EAAOpE,GACpB,IAAIjH,EAAQi1H,EAAOluI,KAAK+J,KAAMua,EAAOpE,IAAYnW,KAejD,OAdAkP,EAAMuG,YAAc,KACpBvG,EAAMq5J,aAAe,WACjB,GAAKr5J,EAAMuG,YAAX,CAGA,IAAIuI,EAAYgiL,EAAqB9wL,EAAMqG,MAAMkB,WAAYvH,EAAMqL,OACnErL,EAAMu9C,SAAS,CAAEwzI,WAAYjiL,MAEjC9O,EAAMqG,MAAQrG,EAAMiH,QACpBjH,EAAMrH,MAAQ,CACVo4L,WAAYD,EAAqB9wL,EAAMqG,MAAMkB,WAAY8D,GACzDhF,MAAOrG,EAAMqG,MACbgF,MAAOA,GAEJrL,EAwCX,OAzDAnM,EAAU0Y,EAAS0oH,GAmBnB1oH,EAAQykL,yBAA2B,SAAU3lL,EAAO4lL,GAEhD,OAAIpjL,GAA8C,IAA3BA,EAAgB5gB,QAAgBoe,IAAU4lL,EAAU5lL,MAChE,CACH0lL,WAAYD,EAAqBG,EAAU5qL,MAAMkB,WAAY8D,GAC7DA,MAAOA,GAGR,CAAEA,MAAOA,IAEpBkB,EAAQvY,UAAUk9L,kBAAoB,WAClCpgM,KAAK6V,gBAET4F,EAAQvY,UAAUm9L,qBAAuB,WACrCrgM,KAAKgW,kBAETyF,EAAQvY,UAAUo9L,sBAAwB,SAAUn3B,EAAWnrJ,GAC3D,OAASnC,IAAa7b,KAAKua,MAAO4uJ,KAC7BttJ,IAAa7b,KAAK6H,MAAMo4L,WAAYjiL,EAAUiiL,aAEvDxkL,EAAQvY,UAAU2S,aAAe,WACzBkqL,IACA//L,KAAKyV,YAAczV,KAAKuV,MAAMH,UAAUpV,KAAKuoK,cAC7CvoK,KAAKuoK,iBAGb9sJ,EAAQvY,UAAU8S,eAAiB,WAC3BhW,KAAKyV,cACLzV,KAAKyV,cACLzV,KAAKyV,YAAc,OAG3BgG,EAAQvY,UAAUm8I,OAAS,WACvB,IAAI9kI,EAAQnX,EAASA,EAASA,EAAS,GAAIpD,KAAKua,OAAQva,KAAK6H,MAAMo4L,YAAa,CAAE1qL,MAAOvV,KAAKuV,QAC9F,OAAOd,gBAAoBsF,EAAkB3W,EAAS,GAAImX,EAAO,CAAEiB,IAAKxb,KAAKua,MAAMgmL,0BAEvF9kL,EAAQxB,YAAc,WAjElC,SAAwBF,GACpB,OAAOA,EAAiBE,aAAeF,EAAiBxX,MAAQ,YAgErB0W,CAAec,GAAoB,IACtE0B,EAAQo2I,YAAcguC,EACfpkL,EA1DkB,CA2D3BhH,aACF,GAAI2H,EAAQzC,WAAY,CACpB,IAAIgC,EAAYlH,cAAiB,SAAU8F,EAAOiB,GAC9C,OAAO/G,gBAAoBgH,EAASrY,EAAS,GAAImX,EAAO,CAAEgmL,sBAAuB/kL,QAErF,OAAOI,IAAaD,EAAW5B,GAEnC,OAAO6B,IAAaH,EAAS1B,ICvGrC,IAAI3W,EAAsC,WAStC,OARAA,EAAWV,OAAOW,QAAU,SAASC,GACjC,IAAK,IAAIrI,EAAGoB,EAAI,EAAGkH,EAAIC,UAAUrH,OAAQE,EAAIkH,EAAGlH,IAE5C,IAAK,IAAIwG,KADT5H,EAAIuI,UAAUnH,GACOqG,OAAOQ,UAAUJ,eAAe7M,KAAKgF,EAAG4H,KACzDS,EAAET,GAAK5H,EAAE4H,IAEjB,OAAOS,IAEKG,MAAMzD,KAAMwD,Y,6DCNhC,SAASgE,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAG7gB,IAAIg/L,EAAa,UACbC,EAAY,QACZC,EAAc,QACdC,EAAe,2BAEfC,EAAgB,WAChBC,EAAc,6BACdC,EAAe,qCACfC,EAAe,iBACfC,EAAgB,wBAEhBC,EAAkB,cAClBC,EAAoB,QACpBC,EAAa,cACbC,EAAc,gCACdC,EAAe,yBAEnB,SAAS1iL,EAAMqX,EAAO0rD,GACpB,OAAO1rD,EAAM/K,KAAKy2D,GAGpB,SAAS4/G,EAAS5/G,GAChB,IAAIkoG,EAAKloG,IAAmC,qBAAdD,UAA4BA,UAAUC,UAAY,IAG5Eh4C,EAAMkgJ,EAAG3nK,MAAM,SAEnB,GAAsB,qBAAXynB,EAAI,GAAoB,CACjC,IAAI63J,EAAO73J,EAIXkgJ,EAFYr5K,YAAegxL,EAAM,GAEtB,GAQb,GAAsB,qBAFtB73J,EAAMkgJ,EAAG3nK,MAAM,YAEA,GAAoB,CACjC,IAAIu/K,EAAQ93J,EAIZkgJ,EAFYr5K,YAAeixL,EAAO,GAEvB,GAGb,IAAIj9L,EAAS,CACXk9L,MAAO,CACLC,MAAO/iL,EAAM6hL,EAAY5W,KAAQjrK,EAAMoiL,EAAcnX,GACrD+X,KAAMhjL,EAAM8hL,EAAW7W,GACvBgY,QAASjjL,EAAM6hL,EAAY5W,IAAOjrK,EAAM+hL,EAAa9W,KAAQjrK,EAAMoiL,EAAcnX,GACjFiY,QAASljL,EAAM6hL,EAAY5W,IAAOjrK,EAAM8hL,EAAW7W,IAAOjrK,EAAM+hL,EAAa9W,MAASjrK,EAAMoiL,EAAcnX,IAE5GkY,OAAQ,CACNJ,MAAO/iL,EAAMkiL,EAAajX,GAC1BgY,QAASjjL,EAAMkiL,EAAajX,IAAOjrK,EAAMmiL,EAAclX,GACvDiY,OAAQljL,EAAMkiL,EAAajX,IAAOjrK,EAAMmiL,EAAclX,IAExDmY,QAAS,CACPL,OAAQ/iL,EAAMoiL,EAAcnX,IAAOjrK,EAAMkiL,EAAajX,KAAQjrK,EAAMoiL,EAAcnX,IAAOjrK,EAAMgiL,EAAc/W,GAC7GgY,QAASjjL,EAAMoiL,EAAcnX,KAAQjrK,EAAMkiL,EAAajX,KAAQjrK,EAAMgiL,EAAc/W,KAAQjrK,EAAMmiL,EAAclX,IAAOjrK,EAAMiiL,EAAehX,IAC5IiY,QAASljL,EAAMoiL,EAAcnX,KAAQjrK,EAAMkiL,EAAajX,IAAOjrK,EAAMmiL,EAAclX,IAAOjrK,EAAMgiL,EAAc/W,IAAOjrK,EAAMiiL,EAAehX,KAAQjrK,EAAM,cAAeirK,IAEzKoY,QAAS,CACPN,MAAO/iL,EAAMoiL,EAAcnX,GAC3BgY,OAAQjjL,EAAMqiL,EAAepX,GAC7BiY,OAAQljL,EAAMoiL,EAAcnX,IAAOjrK,EAAMqiL,EAAepX,IAE1DljJ,MAAO,CACLu7J,WAAYtjL,EAAMsiL,EAAiBrX,GACnCsY,aAAcvjL,EAAMuiL,EAAmBtX,GACvCuY,MAAOxjL,EAAMwiL,EAAYvX,GACzBwY,QAASzjL,EAAM0iL,EAAczX,GAC7ByY,OAAQ1jL,EAAMyiL,EAAaxX,GAC3BiY,OAAQljL,EAAMsiL,EAAiBrX,IAAOjrK,EAAMuiL,EAAmBtX,IAAOjrK,EAAMwiL,EAAYvX,IAAOjrK,EAAM0iL,EAAczX,IAAOjrK,EAAMyiL,EAAaxX,IAG/I5+J,IAAK,KACL02K,MAAO,KACPE,OAAQ,MAMV,OAJAr9L,EAAOymB,IAAMzmB,EAAOk9L,MAAMI,QAAUt9L,EAAOw9L,QAAQF,QAAUt9L,EAAOy9L,QAAQH,QAAUt9L,EAAOmiC,MAAMm7J,OAEnGt9L,EAAOm9L,MAAQn9L,EAAOk9L,MAAMC,OAASn9L,EAAOw9L,QAAQL,OAASn9L,EAAOy9L,QAAQN,MAC5En9L,EAAOq9L,OAASr9L,EAAOk9L,MAAMG,QAAUr9L,EAAOw9L,QAAQH,QAAUr9L,EAAOy9L,QAAQJ,OACxEr9L,EAGT,IAIe+9L,EAJK9nJ,EAAcA,EAAc,GAAI8mJ,KAAa,GAAI,CACnEA,SAAUA,IChGL,SAASnd,KACT,SAASoe,EAAwB5zI,EAAO6zI,EAAc76L,GAC3D,IAAIkoC,EAAS2yJ,GAAgB,GAC7B,OAAO7zI,EAAM7tD,KAAO,GAAGoF,OAAO2pC,EAAQ,SAAS3pC,OAAOyB,GAEjD,SAAS86L,EAA6Br7C,GAC3C,MAAO,GAAGlhJ,OAAOkhJ,EAAU,UAEtB,SAASs7C,EAAatsL,EAAUupL,GACrC,IAAIh4L,GAAS,EACb8M,IAAMi2I,SAASjjJ,QAAQ2O,GAAU,SAAUxE,GACzCjK,GAAS,EAELiK,GAAKA,EAAErQ,MAAQqQ,EAAErQ,KAAKohM,gBACxBluL,IAAMi2I,SAASjjJ,QAAQmK,EAAE2I,MAAMnE,UAAU,SAAUywK,GAEjD8Y,EAAG9Y,EADHl/K,GAAS,MAIXg4L,EAAG/tL,EAAGjK,MA0BL,IAAIi7L,GAAe,CAAC,sBAAuB,eAAgB,kBAAmB,WAAY,OAAQ,oBAAqB,WAAY,aAAc,YAAa,qBAAsB,gBAAiB,mBAAoB,oBAAqB,qBAAsB,uBAAwB,QAAS,aAAc,WAAY,eAAgB,UAAW,YAAa,qBAAsB,YAAa,eAAgB,aAAc,QAAS,gBAAiB,WAAY,SAAU,cAAe,oBAAqB,oBAAqB,eAAgB,aAAc,cAAe,SAAU,iBAAkB,YAAa,aAAc,WAAY,QAAS,aAAc,QAAS,YAAa,oBAAqB,sBAAuB,SACjuB,YAAa,QAAS,iBAAkB,kBAAmB,OAAQ,QAAS,WAAY,cAM7E1sG,GAAW,SAAkB2sG,GACtC,IAAIvmM,EAAQumM,GAA8C,oBAA/BA,EAAKz6K,uBAAwCy6K,EAAKz6K,wBAAwB9rB,MAMrG,OAJIA,IACFA,GAASA,EAAM45C,QAAQ,IAGlB55C,GAAS,GAEP8mD,GAAW,SAAkBy/I,EAAMC,EAAejtM,GACvDgtM,GAAgC,WAAxBhpJ,YAAQgpJ,EAAK5nJ,SACvB4nJ,EAAK5nJ,MAAM6nJ,GAAiBjtM,I,oEClE5B47L,GAAqB,CACvBC,QAAS,EACTC,QAAS,GAEAE,GAAa,CACtBC,QAAS,CACP51L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,GAAI,IAEfoqJ,WAAY,CACVl2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,EAAG,IAEd+pJ,QAAS,CACP71L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,EAAE,EAAG,IAEfiqJ,SAAU,CACR/1L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,EAAG,KAGL+6J,GAAgB,CACzBjR,QAAS,CACP51L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,GAAI,IAEfoqJ,WAAY,CACVl2L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,EAAG,IAEdiqJ,SAAU,CACR/1L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,EAAE,EAAG,IAEf+pJ,QAAS,CACP71L,OAAQ,CAAC,KAAM,MACfqyB,SAAUkjK,GACVzpJ,OAAQ,CAAC,EAAG,KCrChB,SAASgS,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAIxY,SAASiD,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAY7gB,IAAIwhM,GAAO,EACPC,GAAoB,CACtBC,WAAY,aACZlrE,SAAU,WACV,gBAAiB,WACjB,iBAAkB,WAGhBmrE,GAA2B,SAAkC5tL,EAAO6xI,EAAUg8C,GAChF,IAAIC,EAASZ,EAA6Br7C,GACtCv/I,EAAQ0N,EAAMkB,WAClBlB,EAAMk3C,SAAS,CACb22I,mBAAoB5oJ,GAAcA,GAAc,GAAI3yC,EAAMu7L,oBAAqB,GAAIz2K,YAAgB,GAAI02K,EAAQD,OAI/GE,GAEJ,WACE,IAAIA,EAAuB,SAAUp/D,GACnC7pF,YAAUipJ,EAASp/D,GAEnB,IAAIC,EAASnqF,GAAaspJ,GAE1B,SAASA,EAAQ/oL,GACf,IAAIrL,EAEJ0d,YAAgB5sB,KAAMsjM,IAEtBp0L,EAAQi1H,EAAOluI,KAAK+J,KAAMua,IAEpBgpL,UAAY,SAAUziM,GAC1BoO,EAAMqL,MAAMgpL,UAAUziM,IASxBoO,EAAMs5J,UAAY,SAAUnkK,GAC1B,IAAI+8E,EAAU/8E,EAAE+8E,QACZoiH,EAAOt0L,EAAMu0L,aACbh/D,EAAcv1H,EAAMqL,MACpBmpL,EAASj/D,EAAYi/D,OACrBnuL,EAAQkvH,EAAYlvH,MAExB,GAAI6rE,IAAYtG,IAAQK,MAItB,OAHAjsE,EAAMy0L,aAAat/L,GAEnB8+L,GAAyB5tL,EAAOrG,EAAMqL,MAAM6sI,UAAU,IAC/C,EAGT,GAAIhmE,IAAYtG,IAAQmB,MAUtB,OATIynH,EACFF,EAAKh7B,UAAUnkK,IAEf6K,EAAM00L,mBAAkB,GAGxBT,GAAyB5tL,EAAOrG,EAAMqL,MAAM6sI,UAAU,KAGjD,EAGT,GAAIhmE,IAAYtG,IAAQiB,KAAM,CAC5B,IAAI8nH,EAEJ,IAAIH,EAGF,OASF,OAXEG,EAAUL,EAAKh7B,UAAUnkK,MAMzB6K,EAAM00L,mBAAkB,GAExBC,GAAU,GAGLA,EAGT,OAAIH,GAAWtiH,IAAYtG,IAAQkB,IAAMoF,IAAYtG,IAAQoB,UAA7D,EACSsnH,EAAKh7B,UAAUnkK,IAM1B6K,EAAM40L,aAAe,SAAUz/L,GAC7B6K,EAAMqL,MAAMupL,aAAaz/L,IAG3B6K,EAAMulL,qBAAuB,SAAU5oI,GACrC38C,EAAM00L,kBAAkB/3I,EAASA,EAAU,aAAe,eAG5D38C,EAAM60L,aAAe,SAAU1/L,GAC7B,IAAIukK,EAAe15J,EAAMqL,MACrBzZ,EAAM8nK,EAAaxhB,SACnB28C,EAAen7B,EAAam7B,aAC5BxuL,EAAQqzJ,EAAarzJ,MACzB4tL,GAAyB5tL,EAAOrG,EAAMqL,MAAM6sI,UAAU,GACtD28C,EAAa,CACXjjM,IAAKA,EACLkjM,SAAU3/L,KAId6K,EAAM+0L,aAAe,SAAU5/L,GAC7B,IAAIs0K,EAAezpK,EAAMqL,MACrB2pL,EAAavrB,EAAaurB,WAC1B98C,EAAWuxB,EAAavxB,SACxB68C,EAAetrB,EAAasrB,aAChCC,EAAWC,gBAAkBh+L,YAAuB+I,GACpD+0L,EAAa,CACXnjM,IAAKsmJ,EACL48C,SAAU3/L,KAId6K,EAAMk1L,kBAAoB,SAAUJ,GAClC,IAAIK,EAAen1L,EAAMqL,MACrBzZ,EAAMujM,EAAaj9C,SACnBk9C,EAAcD,EAAaC,YAC3BF,EAAoBC,EAAaD,kBACrCE,EAAY,CACVxjM,IAAKA,EACL4iJ,OAAO,IAET0gD,EAAkB,CAChBtjM,IAAKA,EACLkjM,SAAUA,KAId90L,EAAMq1L,kBAAoB,SAAUlgM,GAClC,IAAImgM,EAAet1L,EAAMqL,MACrB2pL,EAAaM,EAAaN,WAC1B98C,EAAWo9C,EAAap9C,SACxBk9C,EAAcE,EAAaF,YAC3BC,EAAoBC,EAAaD,kBACrCL,EAAWC,gBAAkBh+L,YAAuB+I,GACpDo1L,EAAY,CACVxjM,IAAKsmJ,EACL1D,OAAO,IAET6gD,EAAkB,CAChBzjM,IAAKsmJ,EACL48C,SAAU3/L,KAId6K,EAAMy0L,aAAe,SAAUt/L,GAC7B,IACIkW,EADwBpU,YAAuB+I,GACjBqL,MAElCA,EAAMopL,aAAa,CACjB7iM,IAAKyZ,EAAM6sI,SACX48C,SAAU3/L,IAGuB,UAA/BkW,EAAMkqL,uBAIVv1L,EAAM00L,mBAAmBrpL,EAAMmpL,OAAQ,SAEvCP,GAAyB5oL,EAAMhF,MAAOrG,EAAMqL,MAAM6sI,UAAU,KAG9Dl4I,EAAMw1L,eAAiB,SAAUpwL,GAGI,oBAAxBpF,EAAMqL,MAAMygC,SACrB9rC,EAAMqL,MAAMygC,QAAQ9rC,EAAMy1L,WAAWrwL,KAIzCpF,EAAM01L,SAAW,SAAUtwL,GACzBpF,EAAMqL,MAAMqqL,SAAStwL,IAGvBpF,EAAM21L,WAAa,SAAUvwL,GAC3BpF,EAAMqL,MAAMsqL,WAAWvwL,IAGzBpF,EAAMm2H,aAAe,WACnB,MAAO,GAAGn/H,OAAOgJ,EAAMqL,MAAMuqL,cAAe,aAG9C51L,EAAM61L,mBAAqB,WACzB,MAAO,GAAG7+L,OAAOgJ,EAAMm2H,eAAgB,YAGzCn2H,EAAM81L,qBAAuB,WAC3B,MAAO,GAAG9+L,OAAOgJ,EAAMm2H,eAAgB,cAGzCn2H,EAAM+1L,qBAAuB,WAC3B,MAAO,GAAG/+L,OAAOgJ,EAAMm2H,eAAgB,cAGzCn2H,EAAMg2L,iBAAmB,WACvB,MAAO,GAAGh/L,OAAOgJ,EAAMqL,MAAMuqL,cAAe,kBAG9C51L,EAAMi2L,iBAAmB,SAAUvzL,GAEjC1C,EAAMu0L,aAAe7xL,GAGvB1C,EAAMy1L,WAAa,SAAUrwL,GAC3B,OAAOkmC,GAAcA,GAAc,GAAIlmC,GAAO,GAAI,CAChD8wL,SAAU9wL,EAAK8wL,SAAW,IAAIl/L,OAAOgJ,EAAMqL,MAAM6sI,aAIrDl4I,EAAM00L,kBAAoB,SAAUpkI,EAAMj+D,GACxC,IAAIT,EAAMoO,EAAMqL,MAAM6sI,SAElBi+C,EAAa,WACfn2L,EAAM40L,aAAa,CACjBhjM,IAAKA,EACLqpC,KAAMhkC,YAAuB+I,GAC7B0pK,QAASr3K,EACTi+D,KAAMA,KAIG,eAATj+D,EAEF2N,EAAMo2L,kBAAoB3mI,YAAW,WACnC0mI,MACC,GAEHA,KAIJn2L,EAAMq2L,mBAAqB,WACzB,IAAIx8J,EAAM,CACRuP,MAAM,GAGR,OFzPD,SAASktJ,EAAwBpvL,EAAU7O,EAAMwhC,GAEjD3yB,IAAY2yB,EAAIuP,MAIrB7jC,IAAMi2I,SAASjjJ,QAAQ2O,GAAU,SAAUxE,GACzC,GAAIA,EAAG,CACL,IAAI+nC,EAAY/nC,EAAErQ,KAElB,IAAKo4C,KAAeA,EAAU8rJ,WAAa9rJ,EAAU+rJ,YAAc/rJ,EAAUgpJ,iBAC3E,QAG2B,IAAzBp7L,EAAKzQ,QAAQ8a,EAAE9Q,KACjBioC,EAAIuP,MAAO,EACF1mC,EAAE2I,MAAMnE,UACjBovL,EAAwB5zL,EAAE2I,MAAMnE,SAAU7O,EAAMwhC,OEuOhDy8J,CAAwBt2L,EAAMqL,MAAMnE,SAAUlH,EAAMqL,MAAMssI,aAAc99G,GACjEA,EAAIuP,MAGbppC,EAAMw0L,OAAS,WACb,OAA+D,IAAxDx0L,EAAMqL,MAAMorL,SAAS7uM,QAAQoY,EAAMqL,MAAM6sI,WAGlDl4I,EAAM02L,YAAc,WAElB,GAAK12L,EAAM22L,cAAiB32L,EAAMu0L,aAAlC,CAIA,IAAIqC,EAAYniB,KAAS1f,YAAY/0J,EAAMu0L,cAEvCqC,EAAUpiC,aAAex0J,EAAM22L,aAAaniC,cAMhDoiC,EAAU7qJ,MAAM6nB,SAAW,GAAG58D,OAAOgJ,EAAM22L,aAAaniC,YAAa,SAGvEx0J,EAAM62L,iBAAmB,SAAUF,GACjC32L,EAAM22L,aAAeA,GAGvB32L,EAAM82L,aAAe,WACnB,IACIzrL,EADyBpU,YAAuB+I,GACjBqL,MAEnC,MAAO,CACL0rL,KAAqB,eAAf1rL,EAAM0rL,KAAwB,WAAa1rL,EAAM0rL,KACvDp6I,QAAS38C,EAAMqL,MAAMmpL,OACrB14E,MAAOzwG,EAAMywG,MAAQ,EACrBk7E,aAAc3rL,EAAM2rL,aACpB/0I,WAAW,EACXnW,QAAS9rC,EAAMw1L,eACfE,SAAU11L,EAAM01L,SAChBC,WAAY31L,EAAM21L,WAClBtB,UAAWr0L,EAAMq0L,UACjB18C,aAActsI,EAAMssI,aACpBO,SAAU,GAAGlhJ,OAAOqU,EAAM6sI,SAAU,UACpCu+C,SAAUprL,EAAMorL,SAChBQ,OAAQ5rL,EAAM4rL,OACdrC,aAAc50L,EAAM40L,aACpBsC,iBAAkB7rL,EAAM6rL,iBACxBlC,WAAY/9L,YAAuB+I,GACnCm3L,kBAAmB9rL,EAAM8rL,kBACzBC,mBAAoB/rL,EAAM+rL,mBAC1B7B,qBAAsBlqL,EAAMkqL,qBAC5BnQ,kBAAmB/5K,EAAM+5K,kBACzB8O,mBAAoB7oL,EAAMhF,MAAMkB,WAAW2sL,mBAAmBX,EAA6BloL,EAAM6sI,WACjGuB,SAAUpuI,EAAMouI,SAChBxjB,UAAW5qH,EAAMuqL,cACjBv2I,GAAIr/C,EAAMq3L,eACVC,UAAWt3L,EAAMi2L,iBACjBsB,SAAUlsL,EAAMksL,SAChBC,WAAYnsL,EAAMmsL,WAClBl9J,UAAWjvB,EAAMivB,YAIrBt6B,EAAMy3L,UAAY,SAAUV,EAAMp6I,GAChC,IACI+6I,EADyBzgM,YAAuB+I,GACV03L,aAEtCC,EAAe33L,EAAMqL,MACrB4rL,EAASU,EAAaV,OACtBrB,EAAgB+B,EAAa/B,cAUjC,OANmBtqJ,GAAcA,GAAc,GAAI2rJ,GAAS,GAAI,CAC9DzH,gBAAiB,GAAGx4L,OAAO4+L,EAAe,WAC1CrG,eAAe,EACf3B,aAAc8J,IAAiB/6I,GAAoB,WAATo6I,KAM9C,IAAI1wL,EAAQgF,EAAMhF,MACd6xI,EAAW7sI,EAAM6sI,SAGjBg8C,EADkB7tL,EAAMkB,WACa2sL,mBAEzCl0L,EAAM43L,YAAa,EACnB,IAAIjxM,GAAQ,EAOZ,OALIutM,IACFvtM,EAAQutM,EAAmBh8C,IAG7B+7C,GAAyB5tL,EAAO6xI,EAAUvxJ,GACnCqZ,EAmNT,OAhNAiqC,YAAamqJ,EAAS,CAAC,CACrBxiM,IAAK,oBACLjL,MAAO,WACLmK,KAAK+mM,uBAEN,CACDjmM,IAAK,qBACLjL,MAAO,WACL,IAAI2Z,EAASxP,KAETgnM,EAAehnM,KAAKua,MACpB0rL,EAAOe,EAAaf,KACpB/B,EAAa8C,EAAa9C,WAC1BsC,EAAYQ,EAAaR,UAEzBA,GACFA,EAAUxmM,MAGC,eAATimM,GAA0B/B,EAAW4C,YAAe9mM,KAAKua,MAAMmpL,SAInE1jM,KAAKinM,gBAAkBtoI,YAAW,WAChC,OAAOnvD,EAAOo2L,gBACb,MAEJ,CACD9kM,IAAK,uBACLjL,MAAO,WACL,IAAIqxM,EAAelnM,KAAKua,MACpBgpL,EAAY2D,EAAa3D,UACzBn8C,EAAW8/C,EAAa9/C,SAExBm8C,GACFA,EAAUn8C,GAKRpnJ,KAAKinM,iBACPrtH,aAAa55E,KAAKinM,iBAKhBjnM,KAAKslM,mBACP1rH,aAAa55E,KAAKslM,qBAGrB,CACDxkM,IAAK,iBACLjL,MAAO,SAAwBugB,GAC7B,IAAIuuK,EAAS3kL,KAETmnM,EAAYnnM,KAAKgmM,eAEjBoB,EAAepnM,KAAK2mM,UAAUQ,EAAUlB,KAAMkB,EAAUt7I,SAI5D,GAHA7rD,KAAK4mM,cAAe,EACpB5mM,KAAKqnM,WAAarnM,KAAKqnM,YAAcF,EAAUt7I,SAAWs7I,EAAUb,oBAE/DtmM,KAAKqnM,WACR,OAAO5yL,IAAMmC,cAAc,MAAO,MAGpC,IAAI4yB,EAAY29J,EAAU39J,UAC1B,OAAO/0B,IAAMmC,cAAcylL,KAAW35L,OAAOW,OAAO,CAClDwoD,QAASs7I,EAAUt7I,SAClBu7I,IAAe,SAAUlxL,GAC1B,IAAI6kC,EAAY7kC,EAAK6kC,UACjBE,EAAQ/kC,EAAK+kC,MACbqsJ,EAAkBr3L,IAAW,GAAG/J,OAAOihM,EAAUhiE,UAAW,QAASpqF,EAAWpuB,YAAgB,GAAI,GAAGzmB,OAAOihM,EAAUhiE,UAAW,QAAuB,QAAd37F,IAChJ,OAAO/0B,IAAMmC,cAAc2wL,GAAc7kM,OAAOW,OAAO,GAAI8jM,EAAW,CACpE54I,GAAIo2H,EAAO4hB,eACXxrJ,UAAWusJ,EACXrsJ,MAAOA,IACL7kC,QAGP,CACDtV,IAAK,SACLjL,MAAO,WACL,IAAImgM,EAEAz7K,EAAQigC,GAAc,GAAIx6C,KAAKua,OAE/BmpL,EAASnpL,EAAMmpL,OACfv+D,EAAYnlI,KAAKqlI,eACjBmiE,EAA8B,WAAfjtL,EAAM0rL,KACrBlrJ,EAAY9qC,IAAWk1H,EAAW,GAAGj/H,OAAOi/H,EAAW,KAAKj/H,OAAOqU,EAAM0rL,OAAQjQ,EAAe,GAAIrpK,YAAgBqpK,EAAcz7K,EAAMwgC,YAAaxgC,EAAMwgC,WAAYpuB,YAAgBqpK,EAAch2L,KAAKklM,mBAAoBxB,GAAS/2K,YAAgBqpK,EAAch2L,KAAK+kM,qBAAsBxqL,EAAMutI,QAAU47C,IAAW8D,GAAe76K,YAAgBqpK,EAAch2L,KAAKglM,uBAAwBzqL,EAAM4vC,UAAWx9B,YAAgBqpK,EAAch2L,KAAKilM,uBAAwBjlM,KAAKulM,sBAAuBvP,IAE5eh2L,KAAKumM,iBACJhsL,EAAM6sI,SACRpnJ,KAAKumM,eAAiB,GAAGrgM,OAAOqU,EAAM6sI,SAAU,UAEhD47C,IAAQ,EACRhjM,KAAKumM,eAAiB,OAAOrgM,OAAO88L,GAAM,WAI9C,IAAIyE,EAAc,GACdC,EAAmB,GACnBC,EAAmB,GAElBptL,EAAM4vC,WACTs9I,EAAc,CACZxD,aAAcjkM,KAAKikM,aACnBF,aAAc/jM,KAAK+jM,cAGrB2D,EAAmB,CACjB1sJ,QAASh7C,KAAK2jM,cAEhBgE,EAAmB,CACjB5D,aAAc/jM,KAAKokM,kBACnBH,aAAcjkM,KAAKukM,oBAIvB,IAAItpJ,EAAQ,GACRzR,EAAYjvB,EAAMivB,UAElBg+J,IACgB,QAAdh+J,EACFyR,EAAMjyB,aAAezO,EAAM2rL,aAAe3rL,EAAMywG,MAEhD/vE,EAAMlyB,YAAcxO,EAAM2rL,aAAe3rL,EAAMywG,OAInD,IAAI48E,EAAW,GAIX5nM,KAAKua,MAAMmpL,SACbkE,EAAW,CACT,YAAa5nM,KAAKumM,iBAKtB,IAAIzrJ,EAAO,KAEQ,eAAfvgC,EAAM0rL,OACRnrJ,EAAO96C,KAAKua,MAAMmsL,WAEmB,oBAA1B1mM,KAAKua,MAAMmsL,aACpB5rJ,EAAOrmC,IAAMmC,cAAc5W,KAAKua,MAAMmsL,WAAYlsJ,GAAc,GAAIx6C,KAAKua,UAI7E,IAAIsgD,EAAQpmD,IAAMmC,cAAc,MAAOlU,OAAOW,OAAO,CACnDmY,IAAKxb,KAAK+lM,iBACV9qJ,MAAOA,EACPF,UAAW,GAAG70C,OAAOi/H,EAAW,UAChCtoF,KAAM,UACL8qJ,EAAkBD,EAAkB,CACrC,gBAAiBhE,GAChBkE,EAAU,CACX,gBAAiB,OACjB/sI,MAA8B,kBAAhBtgD,EAAMsgD,MAAqBtgD,EAAMsgD,WAAQnuD,IACrD6N,EAAMsgD,MAAO/f,GAAQrmC,IAAMmC,cAAc,IAAK,CAChDmkC,UAAW,GAAG70C,OAAOi/H,EAAW,aAE9B/uH,EAAWpW,KAAK6nM,eAAettL,EAAMnE,UACrCsvH,EAAoBnrH,EAAM2pL,WAAW4C,WAAavsL,EAAM2pL,WAAW3pL,MAAMmrH,kBAAoB,SAAUoiE,GACzG,OAAOA,EAAYjkJ,YAEjB0wI,EAAiB0O,GAAkB1oL,EAAM0rL,MACzCzR,EAAaj6K,EAAMwtL,YAAc,CACnC//J,OAAQztB,EAAMwtL,aACZ,GACA7T,EAAgC,WAAf35K,EAAM0rL,KAAoB,GAAK1rL,EAAM25K,eAC1DA,GAAgC,QAAd1qJ,EAAsB,IAAItjC,OAAOi/H,EAAW,QAAU,GACxE,IAAIh7E,EAAW5vC,EAAM4vC,SACjBs6I,EAAuBlqL,EAAMkqL,qBAC7B2B,EAAmB7rL,EAAM6rL,iBACzBE,EAAqB/rL,EAAM+rL,mBAC3BD,EAAoB9rL,EAAM8rL,kBAC1B/R,EAAoB/5K,EAAM+5K,kBAC9BsO,GAAan7L,SAAQ,SAAU3G,GAC7B,cAAcyZ,EAAMzZ,aAGfyZ,EAAMygC,QACb,IAAIo4I,EAA0B,QAAd5pJ,EAAsB9mC,OAAOW,OAAO,GAAI0/L,GAAezO,GAAqB5xL,OAAOW,OAAO,GAAIwuL,GAAYyC,GAE1H,cADO/5K,EAAMivB,UACN/0B,IAAMmC,cAAc,KAAMlU,OAAOW,OAAO,GAAIkX,EAAOktL,EAAa,CACrE1sJ,UAAWA,EACX8B,KAAM,aACJ2qJ,GAAgB3sI,EAAO2sI,GAAgBpxL,GAAWoxL,GAAgB/yL,IAAMmC,cAAcq9K,KAAS,CACjG9uD,UAAWA,EACX+uD,eAAgBjkL,IAAW,GAAG/J,OAAOi/H,EAAW,UAAW+uD,GAC3DxuD,kBAAmBA,EACnB4uD,kBAAmBlB,EACnBmB,eAAgBA,EAChBV,aAAc6P,EACdlP,WAAYA,EACZL,MAAO/9K,EACPgB,OAAQ+yC,EAAW,GAAK,CAACs6I,GACzB7R,gBAAiBwT,EACjBtT,gBAAiBuT,EACjB5R,qBAAsBz0L,KAAKy0L,qBAC3BuT,YAAa1B,GACZzrI,QAIAyoI,EA1hBkB,CA2hBzB7uL,IAAMgmE,WAYR,OAVA6oH,EAAQ1+D,aAAe,CACrBm/D,aAAc5f,EACd8f,aAAc9f,EACdigB,kBAAmBjgB,EACnBogB,kBAAmBpgB,EACnBwf,aAAcxf,EACdqiB,UAAWriB,EACX8hB,KAAM,WACNprI,MAAO,IAEFyoI,EAxiBT,GA4iBI2E,GAAY3gG,GAAQ,SAAUvuF,EAAO8G,GACvC,IAAI8lL,EAAW5sL,EAAM4sL,SACjBuC,EAAYnvL,EAAMmvL,UAClBrhD,EAAe9tI,EAAM8tI,aACrBO,EAAWvnI,EAAMunI,SACjB+gD,EAAatoL,EAAMsoL,WACvB,MAAO,CACLzE,OAAQiC,EAAS7uM,QAAQswJ,IAAa,EACtCU,OAAQogD,EAAUC,KAAgB/gD,EAClCP,aAAcA,KATFv/C,CAWbg8F,IACH2E,GAAUxC,WAAY,EACPwC,UC3lBf,SAASzgM,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASw4C,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IASxY,IA6Ue6jM,GAxUf,WACE,IAAIA,EAAuB,SAAUlkE,GACnC7pF,YAAU+tJ,EAASlkE,GAEnB,IAAIC,EAASnqF,GAAaouJ,GAE1B,SAASA,IACP,IAAIl5L,EAiLJ,OA/KA0d,YAAgB5sB,KAAMooM,IAEtBl5L,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YACrB8/J,eAAiB,KACvBp0J,EAAMm5L,iBAAmB,KAEzBn5L,EAAMo5L,mBAAqB,EAE3Bp5L,EAAMq5L,gBAAkB,GAExBr5L,EAAMs5L,cAAgB,GACtBt5L,EAAMu5L,cAAgB,KACtBv5L,EAAMrH,MAAQ,CACZ6gM,sBAAkBh8L,GAGpBwC,EAAMy5L,iBAAmB,WACvB,IAAIxjE,EAAYj2H,EAAMqL,MAAM4qH,UACxByjE,EAAKjlB,KAAS1f,YAAY99J,YAAuB+I,IAErD,OAAK05L,EAKE,GAAGjgM,MAAM1S,KAAK2yM,EAAGxyL,UAAU4W,QAAO,SAAUmjC,GACjD,OAAOA,EAAKpV,UAAU94B,MAAM,KAAKnrB,QAAQ,GAAGoP,OAAOi/H,EAAW,wBAA0B,KALjF,IASXj2H,EAAM25L,yBAA2B,SAAUC,EAAWP,EAAiBQ,GACrE,IAAItkE,EAAcv1H,EAAMqL,MACpByuL,EAAsBvkE,EAAYukE,oBAClCh+E,EAAQyZ,EAAYzZ,MACpBi7E,EAAOxhE,EAAYwhE,KACnB9gE,EAAYV,EAAYU,UACxB8U,EAAQxV,EAAYwV,MAExB,GAAc,IAAVjvB,GAAwB,eAATi7E,EACjB,OAAO,KAKT,IAEIgD,EAFO/5L,EAAMqL,MAAMnE,SAAS,GAETmE,MAGnB2uL,GAFYD,EAAY7yL,SAChB6yL,EAAYpuI,MACRouI,EAAYhuJ,OACxB8kG,EAAO5kG,aAAyB8tJ,EAAa,CAAC,WAAY,QAAS,UAEnEhuJ,EAAQT,GAAc,GAAI0uJ,GAE1BpoM,EAAM,GAAGoF,OAAO4iM,EAAW,yBAC3B1hD,EAAW,GAAGlhJ,OAAO4iM,EAAW,yBAEL,IAA3BP,EAAgBpsM,SAAsC,IAAtB4sM,EAClC9tJ,EAAQT,GAAcA,GAAc,GAAIS,GAAQ,GAAI,CAClDoyG,QAAS,SAEF07C,IACT9tJ,EAAQT,GAAcA,GAAc,GAAIS,GAAQ,GAAI,CAClDq+B,WAAY,SAEZ59E,SAAU,aAEZoF,EAAM,GAAGoF,OAAOpF,EAAK,gBACrBsmJ,EAAW,GAAGlhJ,OAAOkhJ,EAAU,iBAGjC,IAAI8sC,EAAiBj6C,EAAQ,GAAG/zI,OAAOi/H,EAAW,KAAKj/H,OAAO+zI,GAAS,GACnE1/H,EAAQ,GAMZ,OALAqoL,GAAan7L,SAAQ,SAAUimB,QACbhhB,IAAZqzI,EAAKryH,KACPnT,EAAMmT,GAAKqyH,EAAKryH,OAGbjZ,IAAMmC,cAAc0sL,GAAS5gM,OAAOW,OAAO,CAChDw3D,MAAOmuI,EACPjuJ,UAAW,GAAG70C,OAAOi/H,EAAW,uBAChC+uD,eAAgBA,GACf35K,EAAO,CACRzZ,IAAKA,EACLsmJ,SAAUA,EACVj9F,UAAU,EACVlP,MAAOA,IACLstJ,IAINr5L,EAAMi6L,0BAA4B,WAChC,GAAyB,eAArBj6L,EAAMqL,MAAM0rL,KAAhB,CAIA,IAAI2C,EAAKjlB,KAAS1f,YAAY99J,YAAuB+I,IAErD,GAAK05L,EAAL,CAIA,IAAIQ,EAAkBR,EAAGxyL,SAEzB,GAAKgzL,GAA8C,IAA3BA,EAAgBjtM,OAAxC,CAIA,IAAIktM,EAAqCT,EAAGxyL,SAASgzL,EAAgBjtM,OAAS,GAE9EinD,GAASimJ,EAAoC,UAAW,gBAExD,IAAIC,EAAgBp6L,EAAMy5L,mBAItBJ,EAAkBe,EAAct8K,QAAO,SAAUpb,GACnD,OAAOA,EAAEmpC,UAAU94B,MAAM,KAAKnrB,QAnIJ,wBAmI8C,KAE1EyxM,EAAgB9gM,SAAQ,SAAUmK,GAChCwxC,GAASxxC,EAAG,UAAW,mBAEzB1C,EAAMs5L,cAAgBc,EAAcp+K,KAAI,SAAUtZ,GAChD,OAAOskF,GAAStkF,MAElB22L,EAAgB9gM,SAAQ,SAAUmK,GAChCwxC,GAASxxC,EAAG,UAAW,WAEzB1C,EAAMq6L,yBAA2BrzG,GAAS0yG,EAAGxyL,SAASwyL,EAAGxyL,SAASja,OAAS,IAC3E+S,EAAMo5L,mBAAqBp5L,EAAMs5L,cAAcvvM,QAAO,SAAUmsK,EAAKokC,GACnE,OAAOpkC,EAAMokC,IACZ,GAEHt6L,EAAMwwD,eAGNtc,GAASimJ,EAAoC,UAAW,YAG1Dn6L,EAAMwwD,aAAe,WACnB,GAAyB,eAArBxwD,EAAMqL,MAAM0rL,KAAhB,CAIA,IAAI2C,EAAKjlB,KAAS1f,YAAY99J,YAAuB+I,IAErD,GAAK05L,EAAL,CAIA,IAAItsM,EAAQ45F,GAAS0yG,GACrB15L,EAAMq5L,gBAAkB,GACxB,IAEIG,EAFAe,EAAkB,EAMlBv6L,EAAMo5L,mBAAqBhsM,EA3KV,KA4KnBosM,GAAoB,EAEpBx5L,EAAMs5L,cAAc/gM,SAAQ,SAAUiiM,IACpCD,GAAmBC,GAEGx6L,EAAMq6L,0BAA4BjtM,IACtDosM,GAAoB,OAK1Bx5L,EAAMu9C,SAAS,CACbi8I,iBAAkBA,OAIfx5L,EAsIT,OAnIAiqC,YAAaivJ,EAAS,CAAC,CACrBtnM,IAAK,oBACLjL,MAAO,WACL,IAAI2Z,EAASxP,KAIb,GAFAA,KAAKmpM,4BAEoB,IAArBnpM,KAAKua,MAAMywG,OAAmC,eAApBhrH,KAAKua,MAAM0rL,KAAuB,CAC9D,IAAI0D,EAAShmB,KAAS1f,YAAYjkK,MAElC,IAAK2pM,EACH,OAGF3pM,KAAKsjK,eAAiB,IAAIY,MAAe,SAAUhmH,GACjDA,EAAQz2C,SAAQ,WACd,IAAIghM,EAAgBj5L,EAAOi5L,cAC3B5jD,qBAAqB4jD,GACrBj5L,EAAOi5L,cAAgB7jD,sBAAsBp1I,EAAO25L,iCAGxD,GAAGxgM,MAAM1S,KAAK0zM,EAAOvzL,UAAUlQ,OAAOyjM,GAAQliM,SAAQ,SAAUk7C,GAC9DnzC,EAAO8zJ,eAAe1oG,QAAQjY,MAGA,qBAArBinJ,mBACT5pM,KAAKqoM,iBAAmB,IAAIuB,kBAAiB,WAC3Cp6L,EAAO8zJ,eAAea,aAEtB,GAAGx7J,MAAM1S,KAAK0zM,EAAOvzL,UAAUlQ,OAAOyjM,GAAQliM,SAAQ,SAAUk7C,GAC9DnzC,EAAO8zJ,eAAe1oG,QAAQjY,MAGhCnzC,EAAO25L,+BAETnpM,KAAKqoM,iBAAiBztI,QAAQ+uI,EAAQ,CACpCE,YAAY,EACZtxB,WAAW,EACXuxB,SAAS,QAKhB,CACDhpM,IAAK,uBACLjL,MAAO,WACDmK,KAAKsjK,gBACPtjK,KAAKsjK,eAAea,aAGlBnkK,KAAKqoM,kBACProM,KAAKqoM,iBAAiBlkC,aAGxBtf,qBAAqB7kJ,KAAKyoM,iBAE3B,CACD3nM,IAAK,iBACLjL,MAAO,SAAwBugB,GAC7B,IAAIuuK,EAAS3kL,KAGT0oM,EAAmB1oM,KAAK6H,MAAM6gM,iBAClC,OAAQtyL,GAAY,IAAInd,QAAO,SAAUmsK,EAAKh/B,EAAWz+H,GACvD,IAAIwiC,EAAOi8F,EAEX,GAA0B,eAAtBu+C,EAAOpqK,MAAM0rL,KAAuB,CACtC,IAAI8D,EAAaplB,EAAOkkB,yBAAyBziE,EAAU7rH,MAAM6sI,SAAU,SAElD16I,IAArBg8L,IAAkH,IAAhF/jB,EAAOpqK,MAAMwgC,UAAUjkD,QAAQ,GAAGoP,OAAOy+K,EAAOpqK,MAAM4qH,UAAW,YACjGx9H,EAAQ+gM,IACVv+J,EAAO11B,IAAMmiI,aAAaxQ,EAC1B,CACEnrF,MAAO,CACLoyG,QAAS,QAEXjG,SAAU,GAAGlhJ,OAAOkgI,EAAU7rH,MAAM6sI,SAAU,WAM9CrsG,UAAW,GAAG70C,OAlRI,0BAsRlByB,IAAU+gM,EAAmB,IAC/B/jB,EAAO4jB,gBAAkBnyL,EAASzN,MAAM+/L,EAAmB,GAAGx9K,KAAI,SAAUtZ,GAC1E,OAAO6C,IAAMmiI,aAAahlI,EAE1B,CACE9Q,IAAK8Q,EAAE2I,MAAM6sI,SACb6+C,KAAM,qBAGV8D,EAAaplB,EAAOkkB,yBAAyBziE,EAAU7rH,MAAM6sI,SAAUu9B,EAAO4jB,mBAIlF,IAAIx/J,EAAM,GAAG7iC,OAAOq7C,aAAmB6jH,GAAM,CAAC2kC,EAAY5/J,IAO1D,OALIxiC,IAAUyO,EAASja,OAAS,GAE9B4sC,EAAIvqC,KAAKmmL,EAAOkkB,yBAAyBziE,EAAU7rH,MAAM6sI,SAAU,IAAI,IAGlEr+G,EAGT,MAAO,GAAG7iC,OAAOq7C,aAAmB6jH,GAAM,CAACj7H,MAC1C,MAEJ,CACDrpC,IAAK,SACLjL,MAAO,WACL,IAAI+yK,EAAe5oK,KAAKua,MAMpB0+C,GALU2vG,EAAa/8G,QACX+8G,EAAazjC,UACHyjC,EAAaogC,oBAC5BpgC,EAAaq9B,KACZr9B,EAAa59C,MACf49C,EAAa3vG,KACnB7iD,EAAWwyJ,EAAaxyJ,SAExB2pI,GADQ6oB,EAAa3uB,MACd9+F,aAAyBytH,EAAc,CAAC,UAAW,YAAa,sBAAuB,OAAQ,QAAS,MAAO,WAAY,WAElIohC,EAAM/wI,EACV,OAAOxkD,IAAMmC,cAAcozL,EAAKtnM,OAAOW,OAAO,GAAI08I,GAAO//I,KAAK6nM,eAAezxL,QAI1EgyL,EA7TkB,CA8TzB3zL,IAAMgmE,WAMR,OAJA2tH,EAAQxjE,aAAe,CACrB3rE,IAAK,MACLle,UAAW,IAENqtJ,EArUT,GCnBA,SAASpuJ,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAIxY,SAASiD,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAqB7gB,SAASyoM,GAAgB10L,EAAO8tL,EAAQ6E,GACtC,IAAIrgM,EAAQ0N,EAAMkB,WAClBlB,EAAMk3C,SAAS,CACby7I,UAAW1tJ,GAAcA,GAAc,GAAI3yC,EAAMqgM,WAAY,GAAIv7K,YAAgB,GAAI02K,EAAQ6E,MAIjG,SAASp9D,GAAYvwH,GAEnB,OAAOA,EAAM6sI,UAAY,UAGpB,SAAS8iD,GAAa3vL,EAAO4vL,GAClC,IAKMz+K,EALFw8K,EAAYiC,EACZ/zL,EAAWmE,EAAMnE,SACjBgxI,EAAW7sI,EAAM6sI,SAErB,GAAI8gD,IAEFxF,EAAatsL,GAAU,SAAUxE,EAAGvV,GAC9BuV,GAAKA,EAAE2I,QAAU3I,EAAE2I,MAAM4vC,UAAY+9I,IAAc3F,EAAwB3wL,EAAGw1I,EAAU/qJ,KAC1FqvB,GAAQ,MAIRA,GACF,OAAOw8K,EAMX,OAFAA,EAAY,KAER3tL,EAAM6oL,oBACRV,EAAatsL,GAAU,SAAUxE,EAAGvV,GAC7B6rM,IAAat2L,GAAMA,EAAE2I,MAAM4vC,WAC9B+9I,EAAY3F,EAAwB3wL,EAAGw1I,EAAU/qJ,OAG9C6rM,GAGFA,EAEF,SAASkC,GAAQx4L,GACtB,GAAIA,EAAG,CACL,IAAIjK,EAAQ3H,KAAKqqM,cAAcvzM,QAAQ8a,IAExB,IAAXjK,EAEF3H,KAAKqqM,cAAc1iM,GAASiK,EAG5B5R,KAAKqqM,cAAc7rM,KAAKoT,IAK9B,IAAI21L,GAEJ,WACE,IAAIA,EAA4B,SAAUrjE,GACxC7pF,YAAUktJ,EAAcrjE,GAExB,IAAIC,EAASnqF,GAAautJ,GAE1B,SAASA,EAAahtL,GACpB,IAAIrL,EAyMJ,OAvMA0d,YAAgB5sB,KAAMunM,IAEtBr4L,EAAQi1H,EAAOluI,KAAK+J,KAAMua,IASpBiuJ,UAAY,SAAUnkK,EAAGuQ,GAC7B,IACIivL,EADAziH,EAAU/8E,EAAE+8E,QAShB,GANAlyE,EAAMo7L,uBAAuB7iM,SAAQ,SAAUN,GACzCA,GAAOA,EAAIoT,MAAMutI,QAAU3gJ,EAAIqhK,YACjCq7B,EAAU18L,EAAIqhK,UAAUnkK,OAIxBw/L,EACF,OAAO,EAGT,IAAI0G,EAAa,KAMjB,OAJInpH,IAAYtG,IAAQkB,IAAMoF,IAAYtG,IAAQoB,OAChDquH,EAAar7L,EAAM/K,KAAKi9E,IAAYtG,IAAQkB,IAAM,EAAI,IAGpDuuH,GACFlmM,EAAE46H,iBACFgrE,GAAgB/6L,EAAMqL,MAAMhF,MAAOu1H,GAAY57H,EAAMqL,OAAQgwL,EAAWhwL,MAAM6sI,UAEtD,oBAAbxyI,GACTA,EAAS21L,GAGJ,QART,GAcFr7L,EAAMo1L,YAAc,SAAUjgM,GAC5B,IAAIvD,EAAMuD,EAAEvD,IACR4iJ,EAAQr/I,EAAEq/I,MACdumD,GAAgB/6L,EAAMqL,MAAMhF,MAAOu1H,GAAY57H,EAAMqL,OAAQmpI,EAAQ5iJ,EAAM,OAG7EoO,EAAM21L,WAAa,SAAU2F,GAC3Bt7L,EAAMqL,MAAMsqL,WAAW2F,IAGzBt7L,EAAM01L,SAAW,SAAU4F,GACzBt7L,EAAMqL,MAAMqqL,SAAS4F,IAGvBt7L,EAAM8rC,QAAU,SAAU32C,GACxB6K,EAAMqL,MAAMygC,QAAQ32C,IAGtB6K,EAAM40L,aAAe,SAAUz/L,GAC7B6K,EAAMqL,MAAMupL,aAAaz/L,IAG3B6K,EAAMq0L,UAAY,SAAUziM,GAE1BoO,EAAMqL,MAAMgpL,UAAUziM,IAGxBoO,EAAMo7L,qBAAuB,WAC3B,OAAOp7L,EAAMm7L,eAGfn7L,EAAM/K,KAAO,SAAUqlC,GACrB,IAAIpzB,EAAWlH,EAAMo7L,uBAEjBpC,EAAYh5L,EAAMqL,MAAMhF,MAAMkB,WAAWyxL,UAAUp9D,GAAY57H,EAAMqL,QAErElJ,EAAM+E,EAASja,OAEnB,IAAKkV,EACH,OAAO,KAGLm4B,EAAY,IACdpzB,EAAWA,EAASlQ,SAASqd,WAI/B,IAAIknL,GAAe,EAUnB,GATAr0L,EAASy7J,OAAM,SAAUjgK,EAAG84L,GAC1B,OAAI94L,GAAKA,EAAE2I,MAAM6sI,WAAa8gD,IAC5BuC,EAAcC,GACP,MAMNx7L,EAAMqL,MAAM6oL,qBAAuC,IAAjBqH,IApL1Bj6L,EAoL4D4F,EAASzN,MAAM8hM,EAAap5L,EAAM,IAnLxGlV,SAIFqU,EAAIqhK,OAAM,SAAUjgK,GACzB,QAASA,EAAE2I,MAAM4vC,YA8Kb,CApLR,IAAqB35C,EAwLT/W,GAASgxM,EAAc,GAAKp5L,EAC5BhV,EAAI5C,EAER,EAAG,CACD,IAAIk1D,EAAQv4C,EAAS/Z,GAErB,GAAKsyD,IAASA,EAAMp0C,MAAM4vC,SAGxB,OAAOwE,EAFPtyD,GAAKA,EAAI,GAAKgV,QAIThV,IAAM5C,GAEf,OAAO,OAGTyV,EAAMy7L,qBAAuB,SAAUh8I,EAAOtyD,EAAGu3L,GAC/C,IAAI/rL,EAAQqH,EAAMqL,MAAMhF,MAAMkB,WAG1B8D,EADwBpU,YAAuB+I,GACjBqL,MAE9BzZ,EAAMyhM,EAAwB5zI,EAAOp0C,EAAM6sI,SAAU/qJ,GACrDq8K,EAAa/pH,EAAMp0C,MAEvB,IAAKm+J,GAAoC,kBAAf/pH,EAAMptD,KAC9B,OAAOotD,EAGT,IAAIyH,EAAWt1D,IAAQ+G,EAAMqgM,UAEzBxvL,EAAgB8hC,GAAcA,GAAc,CAC9CyrJ,KAAMvtB,EAAWutB,MAAQ1rL,EAAM0rL,KAC/Bj7E,MAAOzwG,EAAMywG,MACbk7E,aAAc3rL,EAAM2rL,aACpB0E,eAAgB17L,EAAM07L,eACtB9F,cAAevqL,EAAM4qH,UACrBx9H,MAAOtL,EACP6nM,WAAY3pL,EAAM2pL,WAElBsC,UAAW9tB,EAAWvuH,cAAWz9C,EAAYm+L,YAAsBl8I,EAAMnzC,IAAK4uL,GAAQt7L,KAAK3I,YAAuB+I,KAClHk4I,SAAUtmJ,EACVgnJ,QAAS4wB,EAAWvuH,UAAYiM,EAChCuyF,SAAUpuI,EAAMouI,SAChB3tG,QAAS,SAAiB32C,IACvBq0K,EAAW19H,SAAWmpI,GAAM9/K,GAE7B6K,EAAM8rC,QAAQ32C,IAEhBigM,YAAap1L,EAAMo1L,YACnB6B,OAAQ5rL,EAAM4rL,OACdC,iBAAkB7rL,EAAM6rL,iBACxBC,kBAAmB9rL,EAAM8rL,kBACzBC,mBAAoB/rL,EAAM+rL,mBAC1BxC,aAAc50L,EAAM40L,aACpBe,WAAY31L,EAAM21L,WAClBD,SAAU11L,EAAM01L,SAChBtQ,kBAAmB/5K,EAAM+5K,kBACzBmS,SAAU/tB,EAAW+tB,UAAYv3L,EAAMqL,MAAMksL,SAC7CC,WAAYhuB,EAAWguB,YAAcx3L,EAAMqL,MAAMmsL,YAChD9S,GAAa,GAAI,CAClBpqJ,UAAWjvB,EAAMivB,YAQnB,OAJmB,WAAfjvB,EAAM0rL,MJ7MT3E,EAASt2K,OI8MRtS,EAAc+rL,qBAAuB,SAGhChwL,IAAMmiI,aAAajoF,EAAOj2C,IAGnCxJ,EAAM07L,eAAiB,SAAUh5L,EAAGvV,EAAG8rM,GAErC,IAAKv2L,EACH,OAAO,KAGT,IAAI/J,EAAQqH,EAAMqL,MAAMhF,MAAMkB,WAE1Bm9K,EAAa,CACf+R,SAAU99L,EAAM89L,SAChB9+C,aAAch/I,EAAMg/I,aACpB49C,qBAAsBv1L,EAAMqL,MAAMkqL,qBAClC0D,WAAYA,GAEd,OAAOj5L,EAAMy7L,qBAAqB/4L,EAAGvV,EAAGu3L,IAG1Cr5K,EAAMhF,MAAMk3C,SAAS,CACnBy7I,UAAW1tJ,GAAcA,GAAc,GAAIjgC,EAAMhF,MAAMkB,WAAWyxL,WAAY,GAAIv7K,YAAgB,GAAIpS,EAAM6sI,SAAU8iD,GAAa3vL,EAAOA,EAAM2tL,eAElJh5L,EAAMm7L,cAAgB,GACfn7L,EAqFT,OAlFAiqC,YAAaouJ,EAAc,CAAC,CAC1BzmM,IAAK,oBACLjL,MAAO,WAEDmK,KAAKua,MAAMisL,WACbxmM,KAAKua,MAAMisL,UAAUxmM,QAGxB,CACDc,IAAK,wBACLjL,MAAO,SAA+BszK,GACpC,OAAOnpK,KAAKua,MAAMsxC,SAAWs9G,EAAUt9G,SAAW7rD,KAAKua,MAAMwgC,YAAcouH,EAAUpuH,YAAcl/B,IAAa7b,KAAKua,MAAM0gC,MAAOkuH,EAAUluH,SAE7I,CACDn6C,IAAK,qBACLjL,MAAO,SAA4B2uI,GACjC,IAAIjqH,EAAQva,KAAKua,MACb4vL,EAAoB,cAAe5vL,EAAQA,EAAM2tL,UAAY3tL,EAAMhF,MAAMkB,WAAWyxL,UAAUp9D,GAAYvwH,IAC1G2tL,EAAYgC,GAAa3vL,EAAO4vL,GAEpC,GAAIjC,IAAciC,EAChBF,GAAgB1vL,EAAMhF,MAAOu1H,GAAYvwH,GAAQ2tL,QAC5C,GAAI,cAAe1jE,EAAW,CAK/B0jE,IAFgBgC,GAAa1lE,EAAWA,EAAU0jE,YAGpD+B,GAAgB1vL,EAAMhF,MAAOu1H,GAAYvwH,GAAQ2tL,MAItD,CACDpnM,IAAK,SACLjL,MAAO,WACL,IAAI2Z,EAASxP,KAETua,EAAQJ,YAAS,GAAIna,KAAKua,OAE9Bva,KAAKqqM,cAAgB,GACrB,IACIS,EAAW,CACb/vJ,UAFc9qC,IAAWsK,EAAM4qH,UAAW5qH,EAAMwgC,UAAW,GAAG70C,OAAOqU,EAAM4qH,UAAW,KAAKj/H,OAAOqU,EAAM0rL,OAIxGppJ,KAAMtiC,EAAMsiC,MAAQ,QAGlBtiC,EAAMg0C,KACRu8I,EAASv8I,GAAKh0C,EAAMg0C,IAGlBh0C,EAAM42C,YACR25I,EAASxuJ,SAAW,EACpBwuJ,EAAStiC,UAAYxoK,KAAKwoK,WAG5B,IAAIrjC,EAAY5qH,EAAM4qH,UAClBiiB,EAAW7sI,EAAM6sI,SACjBv7F,EAAUtxC,EAAMsxC,QAChBm/D,EAAQzwG,EAAMywG,MACdi7E,EAAO1rL,EAAM0rL,KACb+C,EAAsBzuL,EAAMyuL,oBAC5B/uD,EAAQ1/H,EAAM0/H,MAMlB,OALA2oD,GAAan7L,SAAQ,SAAU3G,GAC7B,cAAcyZ,EAAMzZ,aAGfyZ,EAAMygC,QACNvmC,IAAMmC,cAAcwxL,GAAS1lM,OAAOW,OAAO,GAAIkX,EAAO,CAC3D4qH,UAAWA,EACX8gE,KAAMA,EACNhtI,IAAK,KACL+xD,MAAOA,EACPivB,MAAOA,EACPpuF,QAASA,EACTm9I,oBAAqBA,GACpB8B,GAAWr2L,IAAMi2I,SAASx/H,IAAI3Q,EAAMnE,UAAU,SAAUxE,EAAGvV,GAC5D,OAAOmT,EAAOo7L,eAAeh5L,EAAGvV,EAAG+qJ,GAAY,mBAK9CmgD,EApSuB,CAqS9B9yL,IAAMgmE,WAaR,OAXA8sH,EAAa3iE,aAAe,CAC1BO,UAAW,UACXpqF,UAAW,GACXkrJ,KAAM,WACNj7E,MAAO,EACPk7E,aAAc,GACdr6I,SAAS,EACTsF,WAAW,EACXlW,MAAO,GACPurJ,UAAWriB,GAENojB,EAnTT,GAwTeU,GADC3gG,IAAUigG,I,SCpZnB,SAASZ,GAAUzwL,GACxB,IAAIivH,EAAYjvH,EAAKivH,UACjBghE,EAASjwL,EAAKiwL,OACd4E,EAAgB70L,EAAK60L,cACrBC,EAAqB90L,EAAK80L,mBAE9B,GAAI7E,EACF,OAAOA,EAGT,GAA+B,WAA3BtsJ,YAAQkxJ,IAA+BA,EACzCxvJ,cAAQ,EAAO,gFACV,GAA6B,kBAAlBwvJ,EAChB,MAAO,CACL3O,WAAY,GAAGl2L,OAAOi/H,EAAW,UAAUj/H,OAAO6kM,IAItD,OAAIC,EACK,CACL5O,WAAY4O,GAIT,KClBT,SAASxjM,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASw4C,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAUxY,IAuPe0mM,GArPf,WACE,IAAIA,EAAoB,SAAU/mE,GAChC7pF,YAAU4wJ,EAAM/mE,GAEhB,IAAIC,EAASnqF,GAAaixJ,GAE1B,SAASA,EAAK1wL,GACZ,IAAIrL,EAEJ0d,YAAgB5sB,KAAMirM,IAEtB/7L,EAAQi1H,EAAOluI,KAAK+J,KAAMua,IAEpBqqL,SAAW,SAAU4F,GACzB,IACIjwL,EADwBpU,YAAuB+I,GACjBqL,MAElC,GAAIA,EAAMq1I,WAAY,CAEpB,IACIs7C,EADuBh8L,EAAMqG,MAAMkB,WACEowI,aAErCskD,EAAcX,EAAW1pM,IAG3BoqM,EADE3wL,EAAMouI,SACQuiD,EAAchlM,OAAO,CAACilM,IAEtB,CAACA,GAGb,iBAAkB5wL,GACtBrL,EAAMqG,MAAMk3C,SAAS,CACnBo6F,aAAcqkD,IAIlB3wL,EAAMqqL,SAASpqJ,GAAcA,GAAc,GAAIgwJ,GAAa,GAAI,CAC9D3jD,aAAcqkD,OAKpBh8L,EAAM8rC,QAAU,SAAU32C,GACxB6K,EAAMqL,MAAMygC,QAAQ32C,IAMtB6K,EAAMs5J,UAAY,SAAUnkK,EAAGuQ,GAC7B1F,EAAMk8L,UAAUC,qBAAqB7iC,UAAUnkK,EAAGuQ,IAGpD1F,EAAM40L,aAAe,SAAU3/I,GAC7B,IACI5pC,EADyBpU,YAAuB+I,GACjBqL,MAE/BorL,EAAWz2L,EAAMqG,MAAMkB,WAAWkvL,SAASz/L,SAE3CqnE,GAAU,EAEV+9H,EAAgB,SAAuBjnM,GACzC,IAAIknM,GAAa,EAEjB,GAAIlnM,EAAEm7D,MACJ+rI,GAA0C,IAA7B5F,EAAS7uM,QAAQuN,EAAEvD,OAG9B6kM,EAASnnM,KAAK6F,EAAEvD,SAEb,CACL,IAAI6G,EAAQg+L,EAAS7uM,QAAQuN,EAAEvD,MAC/ByqM,GAAwB,IAAX5jM,IAGXg+L,EAASh6K,OAAOhkB,EAAO,GAI3B4lE,EAAUA,GAAWg+H,GAGnBl0M,MAAMD,QAAQ+sD,GAEhBA,EAAM18C,QAAQ6jM,GAEdA,EAAcnnJ,GAGZopB,IACI,aAAcr+D,EAAMqL,OACxBrL,EAAMqG,MAAMk3C,SAAS,CACnBk5I,SAAUA,IAIdprL,EAAMupL,aAAa6B,KAIvBz2L,EAAM21L,WAAa,SAAU2F,GAC3B,IACIjwL,EADyBpU,YAAuB+I,GACjBqL,MAEnC,GAAIA,EAAMq1I,WAAY,CACpB,IAAI47C,EAAiBt8L,EAAMqG,MAAMkB,WAAWowI,aAAa3gJ,SAErDilM,EAAcX,EAAW1pM,IAEzB6G,EAAQ6jM,EAAe10M,QAAQq0M,IAEpB,IAAXxjM,GACF6jM,EAAe7/K,OAAOhkB,EAAO,GAGzB,iBAAkB4S,GACtBrL,EAAMqG,MAAMk3C,SAAS,CACnBo6F,aAAc2kD,IAIlBjxL,EAAMsqL,WAAWrqJ,GAAcA,GAAc,GAAIgwJ,GAAa,GAAI,CAChE3jD,aAAc2kD,OAKpBt8L,EAAMu8L,sBAAwB,WAC5B,IACIlxL,EADyBpU,YAAuB+I,GACjBqL,MAE/BooK,EAAiBpoK,EAAMywL,mBACvBU,EAAgBnxL,EAAMwwL,cAM1B,OAJKpoB,GAA2C,kBAAlB+oB,IAC5B/oB,EAAiB,GAAGz8K,OAAOqU,EAAM4qH,UAAW,UAAUj/H,OAAOwlM,IAGxD/oB,GAGTzzK,EAAMy8L,aAAe,SAAUx7I,GAC7BjhD,EAAMk8L,UAAYj7I,GAGpBjhD,EAAM43L,YAAa,EACnB,IAAIjgD,EAAetsI,EAAMqxL,oBACrBjG,EAAWprL,EAAMsxL,gBAiBrB,MAfI,iBAAkBtxL,IACpBssI,EAAetsI,EAAMssI,cAAgB,IAGnC,aAActsI,IAChBorL,EAAWprL,EAAMorL,UAAY,IAG/Bz2L,EAAMqG,MR1KL,SAAgBu2L,GACnB,IAAIjkM,EAAQikM,EACR32L,EAAY,GAiBhB,MAAO,CACHs3C,SAjBJ,SAAkBs/I,GACdlkM,EAAQzE,EAASA,EAAS,GAAIyE,GAAQkkM,GACtC,IAAK,IAAI1vM,EAAI,EAAGA,EAAI8Y,EAAUhZ,OAAQE,IAClC8Y,EAAU9Y,MAedoa,SAZJ,WACI,OAAO5O,GAYPuN,UAVJ,SAAmBF,GAEf,OADAC,EAAU3W,KAAK0W,GACR,WACH,IAAIvN,EAAQwN,EAAUre,QAAQoe,GAC9BC,EAAUwW,OAAOhkB,EAAO,MQ0JhBxE,CAAO,CACnB0jJ,aAAcA,EACd8+C,SAAUA,EACVuC,UAAW,CACT,UAAWgC,GAAa3vL,EAAOA,EAAM2tL,cAGlCh5L,EAyDT,OAtDAiqC,YAAa8xJ,EAAM,CAAC,CAClBnqM,IAAK,oBACLjL,MAAO,WACLmK,KAAKgsM,oBAEN,CACDlrM,IAAK,qBACLjL,MAAO,WACLmK,KAAKgsM,oBAEN,CACDlrM,IAAK,kBACLjL,MAAO,WACD,iBAAkBmK,KAAKua,OACzBva,KAAKuV,MAAMk3C,SAAS,CAClBo6F,aAAc7mJ,KAAKua,MAAMssI,cAAgB,KAIzC,aAAc7mJ,KAAKua,OACrBva,KAAKuV,MAAMk3C,SAAS,CAClBk5I,SAAU3lM,KAAKua,MAAMorL,UAAY,OAItC,CACD7kM,IAAK,SACLjL,MAAO,WACL,IAAI0kB,EAAQigC,GAAc,GAAIx6C,KAAKua,OAkBnC,OAhBAA,EAAMwgC,WAAa,IAAI70C,OAAOqU,EAAM4qH,UAAW,SAEvB,QAApB5qH,EAAMivB,YACRjvB,EAAMwgC,WAAa,IAAI70C,OAAOqU,EAAM4qH,UAAW,gBAGjD5qH,EAAQigC,GAAcA,GAAc,GAAIjgC,GAAQ,GAAI,CAClDygC,QAASh7C,KAAKg7C,QACd8oJ,aAAc9jM,KAAK8jM,aACnBe,WAAY7kM,KAAK6kM,WACjBD,SAAU5kM,KAAK4kM,SACfV,WAAYlkM,KACZmmM,OAAQQ,GAAU3mM,KAAKua,UAEZwwL,qBACNxwL,EAAMywL,mBACNv2L,IAAMmC,cAAcX,EAAU,CACnCV,MAAOvV,KAAKuV,OACXd,IAAMmC,cAAc2wL,GAAc7kM,OAAOW,OAAO,GAAIkX,EAAO,CAC5DiB,IAAKxb,KAAK2rM,eACR3rM,KAAKua,MAAMnE,eAIZ60L,EA5Ne,CA6NtBx2L,IAAMgmE,WAoBR,OAlBAwwH,EAAKrmE,aAAe,CAClBgrB,YAAY,EACZ50G,QAASmpI,EACTygB,SAAUzgB,EACV2f,aAAc3f,EACd0gB,WAAY1gB,EACZynB,oBAAqB,GACrBC,gBAAiB,GACjBzF,iBAAkB,GAClBC,kBAAmB,GACnB5B,qBAAsB,QACtBt/D,UAAW,UACXpqF,UAAW,GACXkrJ,KAAM,WACNhrJ,MAAO,GACPq5I,kBAAmB,GACnB0U,oBAAqBv0L,IAAMmC,cAAc,OAAQ,KAAM,iBAElDq0L,EAlPT,GChBA,SAASzjM,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASw4C,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAUxY,IAAI0nM,GAEJ,WACE,IAAIA,EAAwB,SAAU/nE,GACpC7pF,YAAU4xJ,EAAU/nE,GAEpB,IAAIC,EAASnqF,GAAaiyJ,GAE1B,SAASA,IACP,IAAI/8L,EA+EJ,OA7EA0d,YAAgB5sB,KAAMisM,IAEtB/8L,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YAErBglK,UAAY,SAAUnkK,GAG1B,GAFcA,EAAE+8E,UAEAtG,IAAQK,MAGtB,OAFAjsE,EAAM8rC,QAAQ32C,IAEP,GAMX6K,EAAM+0L,aAAe,SAAU5/L,GAC7B,IAAIogI,EAAcv1H,EAAMqL,MACpB6sI,EAAW3iB,EAAY2iB,SACvBk9C,EAAc7/D,EAAY6/D,YAC1BL,EAAex/D,EAAYw/D,aAC/BK,EAAY,CACVxjM,IAAKsmJ,EACL1D,OAAO,IAETugD,EAAa,CACXnjM,IAAKsmJ,EACL48C,SAAU3/L,KAId6K,EAAM60L,aAAe,SAAU1/L,GAC7B,IAAIukK,EAAe15J,EAAMqL,MACrB6sI,EAAWwhB,EAAaxhB,SACxBk9C,EAAc17B,EAAa07B,YAC3BP,EAAen7B,EAAam7B,aAChCO,EAAY,CACVxjM,IAAKsmJ,EACL1D,OAAO,IAETqgD,EAAa,CACXjjM,IAAKsmJ,EACL48C,SAAU3/L,KAId6K,EAAM8rC,QAAU,SAAU32C,GACxB,IAAIs0K,EAAezpK,EAAMqL,MACrB6sI,EAAWuxB,EAAavxB,SACxBuB,EAAWgwB,EAAahwB,SACxB3tG,EAAU29H,EAAa39H,QACvB4pJ,EAAWjsB,EAAaisB,SACxBC,EAAalsB,EAAaksB,WAC1BqH,EAAavzB,EAAauzB,WAC1B53L,EAAO,CACTxT,IAAKsmJ,EACLg+C,QAAS,CAACh+C,GACVj9G,KAAMhkC,YAAuB+I,GAC7B80L,SAAU3/L,GAEZ22C,EAAQ1mC,GAEJq0I,EACEujD,EACFrH,EAAWvwL,GAEXswL,EAAStwL,GAED43L,GACVtH,EAAStwL,IAIbpF,EAAMi9L,SAAW,SAAUh8I,GACzBjhD,EAAMihD,KAAOA,GAGRjhD,EAqHT,OAlHAiqC,YAAa8yJ,EAAU,CAAC,CACtBnrM,IAAK,oBACLjL,MAAO,WAELmK,KAAKosM,YAEN,CACDtrM,IAAK,qBACLjL,MAAO,WACLmK,KAAKosM,YAEN,CACDtrM,IAAK,uBACLjL,MAAO,WACL,IAAI0kB,EAAQva,KAAKua,MAEbA,EAAMgpL,WACRhpL,EAAMgpL,UAAUhpL,EAAM6sI,YAGzB,CACDtmJ,IAAK,eACLjL,MAAO,WACL,MAAO,GAAGqQ,OAAOlG,KAAKua,MAAMuqL,cAAe,WAE5C,CACDhkM,IAAK,qBACLjL,MAAO,WACL,MAAO,GAAGqQ,OAAOlG,KAAKqlI,eAAgB,aAEvC,CACDvkI,IAAK,uBACLjL,MAAO,WACL,MAAO,GAAGqQ,OAAOlG,KAAKqlI,eAAgB,eAEvC,CACDvkI,IAAK,uBACLjL,MAAO,WACL,MAAO,GAAGqQ,OAAOlG,KAAKqlI,eAAgB,eAEvC,CACDvkI,IAAK,UACLjL,MAAO,WACDmK,KAAKua,MAAMisL,WACbxmM,KAAKua,MAAMisL,UAAUxmM,QAGxB,CACDc,IAAK,SACLjL,MAAO,WACL,IAAI0xK,EAEAhtJ,EAAQigC,GAAc,GAAIx6C,KAAKua,OAE/BwgC,EAAY9qC,IAAWjQ,KAAKqlI,eAAgB9qH,EAAMwgC,WAAYwsH,EAAc,GAAI56I,YAAgB46I,EAAavnK,KAAK+kM,sBAAuBxqL,EAAM4vC,UAAY5vC,EAAMutI,QAASn7H,YAAgB46I,EAAavnK,KAAKilM,uBAAwB1qL,EAAM2xL,YAAav/K,YAAgB46I,EAAavnK,KAAKglM,uBAAwBzqL,EAAM4vC,UAAWo9G,IAElUpC,EAAQ3qH,GAAcA,GAAc,GAAIjgC,EAAM+2C,WAAY,GAAI,CAChEuJ,MAA8B,kBAAhBtgD,EAAMsgD,MAAqBtgD,EAAMsgD,WAAQnuD,EACvDquC,UAAWA,EAEX8B,KAAMtiC,EAAMsiC,MAAQ,WACpB,gBAAiBtiC,EAAM4vC,WAGN,WAAf5vC,EAAMsiC,KAERsoH,EAAQ3qH,GAAcA,GAAc,GAAI2qH,GAAQ,GAAI,CAClDtoH,KAAM,SACN,gBAAiBtiC,EAAM2xL,aAED,OAAf3xL,EAAMsiC,MAAgC,SAAftiC,EAAMsiC,OAMtCsoH,EAAMtoH,KAAO,QAIf,IAAIwvJ,EAAa,CACfrxJ,QAASzgC,EAAM4vC,SAAW,KAAOnqD,KAAKg7C,QACtCipJ,aAAc1pL,EAAM4vC,SAAW,KAAOnqD,KAAKikM,aAC3CF,aAAcxpL,EAAM4vC,SAAW,KAAOnqD,KAAK+jM,cAGzC9oJ,EAAQT,GAAc,GAAIjgC,EAAM0gC,OAEjB,WAAf1gC,EAAM0rL,OACgB,QAApB1rL,EAAMivB,UACRyR,EAAMjyB,aAAezO,EAAM2rL,aAAe3rL,EAAMywG,MAEhD/vE,EAAMlyB,YAAcxO,EAAM2rL,aAAe3rL,EAAMywG,OAInD43E,GAAan7L,SAAQ,SAAU3G,GAC7B,cAAcyZ,EAAMzZ,aAEfyZ,EAAMivB,UACb,IAAIsR,EAAO96C,KAAKua,MAAMksL,SAOtB,MALmC,oBAAxBzmM,KAAKua,MAAMksL,WAEpB3rJ,EAAOrmC,IAAMmC,cAAc5W,KAAKua,MAAMksL,SAAUzmM,KAAKua,QAGhD9F,IAAMmC,cAAc,KAAMlU,OAAOW,OAAO,GAAIkX,EAAO4qJ,EAAOknC,EAAY,CAC3EpxJ,MAAOA,EACPz/B,IAAKxb,KAAKmsM,WACR5xL,EAAMnE,SAAU0kC,OAIjBmxJ,EA1MmB,CA2M1Bx3L,IAAMgmE,WASR,OAPAwxH,EAASvG,YAAa,EACtBuG,EAASrnE,aAAe,CACtBggE,SAAUzgB,EACV4f,aAAc5f,EACd8f,aAAc9f,EACdqiB,UAAWriB,GAEN8nB,EArNT,GAmOehE,GAVC3gG,GAAQ,SAAUpxF,EAAM6C,GACtC,IAAImvL,EAAYhyL,EAAKgyL,UACjBrhD,EAAe3wI,EAAK2wI,aACpBO,EAAWruI,EAAMquI,SAErB,MAAO,CACLU,OAAQogD,EAFOnvL,EAAMovL,cAEa/gD,EAClC8kD,YAAgD,IAApCrlD,EAAa/vJ,QAAQswJ,MAPrB9/C,CASb2kG,ICnPH,SAASjyJ,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAOxY,IAgEe+nM,GA9Df,WACE,IAAIA,EAA6B,SAAUpoE,GACzC7pF,YAAUiyJ,EAAepoE,GAEzB,IAAIC,EAASnqF,GAAasyJ,GAE1B,SAASA,IACP,IAAIp9L,EAaJ,OAXA0d,YAAgB5sB,KAAMssM,IAEtBp9L,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YAErB+oM,oBAAsB,SAAUpiK,GACpC,IAAIs6F,EAAcv1H,EAAMqL,MAGxB,OAAOqwL,EAFcnmE,EAAYmmE,gBAEXzgK,EADVs6F,EAAY98H,MACWuH,EAAMqL,MAAM4tL,aAG1Cj5L,EAgCT,OA7BAiqC,YAAamzJ,EAAe,CAAC,CAC3BxrM,IAAK,SACLjL,MAAO,WACL,IAAI0kB,EAAQJ,YAAS,GAAIna,KAAKua,OAE1BiyL,EAAmBjyL,EAAMwgC,UACzBA,OAAiC,IAArByxJ,EAA8B,GAAKA,EAC/C1H,EAAgBvqL,EAAMuqL,cACtB2H,EAAiB,GAAGvmM,OAAO4+L,EAAe,qBAC1C4H,EAAgB,GAAGxmM,OAAO4+L,EAAe,oBACzCjqI,EAAQtgD,EAAMsgD,MACdzkD,EAAWmE,EAAMnE,SAOrB,OANAwsL,GAAan7L,SAAQ,SAAU3G,GAC7B,cAAcyZ,EAAMzZ,aAGfyZ,EAAMygC,eACNzgC,EAAMivB,UACN/0B,IAAMmC,cAAc,KAAMlU,OAAOW,OAAO,GAAIkX,EAAO,CACxDwgC,UAAW,GAAG70C,OAAO60C,EAAW,KAAK70C,OAAO4+L,EAAe,iBACzDrwL,IAAMmC,cAAc,MAAO,CAC7BmkC,UAAW0xJ,EACX5xI,MAAwB,kBAAVA,EAAqBA,OAAQnuD,GAC1CmuD,GAAQpmD,IAAMmC,cAAc,KAAM,CACnCmkC,UAAW2xJ,GACVj4L,IAAMi2I,SAASx/H,IAAI9U,EAAUpW,KAAKusM,2BAIlCD,EAnDwB,CAoD/B73L,IAAMgmE,WAMR,OAJA6xH,EAAc3J,iBAAkB,EAChC2J,EAAc1nE,aAAe,CAC3Bz6E,UAAU,GAELmiJ,EA3DT,GCdIK,GAAU,SAAiBz2L,GAC7B,IAAI6kC,EAAY7kC,EAAK6kC,UACjB+pJ,EAAgB5uL,EAAK4uL,cACrB7pJ,EAAQ/kC,EAAK+kC,MACjB,OAAOxmC,IAAMmC,cAAc,KAAM,CAC/BmkC,UAAW,GAAG70C,OAAO60C,EAAW,KAAK70C,OAAO4+L,EAAe,iBAC3D7pJ,MAAOA,KAIX0xJ,GAAQ/nE,aAAe,CAErBz6E,UAAU,EACVpP,UAAW,GACXE,MAAO,IAEM0xJ,UCZA1B,Q,6BCNf,IAAI2B,EAAuB,CACzBC,gBAAiB,CACfj2I,WAAY,kBACZk2I,iBAAkB,wBAClBC,cAAe,qBACfC,YAAa,mBACbC,aAAc,qBAGhBC,eAAgB,CACd12I,UAAW,iBACX22I,gBAAiB,uBACjBC,aAAc,oBACdC,WAAY,kBACZC,YAAa,qBAIbC,EAAqB,CACvBC,cAAe,CACb52I,WAAY,gBACZk2I,iBAAkB,sBAClBC,cAAe,mBACfC,YAAa,iBACbC,aAAc,mBAGhBQ,aAAc,CACZj3I,UAAW,eACX22I,gBAAiB,qBACjBC,aAAc,kBACdC,WAAY,gBACZC,YAAa,mBAIbI,EAAc,GACdC,EAAY,GAsChB,SAASvtM,EAAiB+vD,EAAMy9I,EAAWC,GACzC19I,EAAK/vD,iBAAiBwtM,EAAWC,GAAe,GAGlD,SAASprJ,EAAoB0N,EAAMy9I,EAAWC,GAC5C19I,EAAK1N,oBAAoBmrJ,EAAWC,GAAe,GAT/B,qBAAX/2L,QAA8C,qBAAbC,UAhC5C,WACE,IACIkkC,EADSlkC,SAASH,cAAc,OACjBqkC,MAYnB,SAAS82F,EAAQ+7D,EAAgB9uM,GAC/B,IAAK,IAAI+uM,KAAiBD,EACxB,GAAIA,EAAehrM,eAAeirM,GAAgB,CAChD,IAAIC,EAAaF,EAAeC,GAChC,IAAK,IAAIE,KAAaD,EACpB,GAAIC,KAAahzJ,EAAO,CACtBj8C,EAAOR,KAAKwvM,EAAWC,IACvB,QAjBJ,mBAAoBn3L,gBACjB81L,EAAqBM,eAAe12I,iBACpC+2I,EAAmBE,aAAaj3I,WAGnC,oBAAqB1/C,gBAClB81L,EAAqBC,gBAAgBj2I,kBACrC22I,EAAmBC,cAAc52I,YAiB1Cm7E,EAAQ66D,EAAsBc,GAC9B37D,EAAQw7D,EAAoBI,GAI5BO,GAWF,IAAIC,EAAmB,CAErBT,YAAaA,EAEbU,sBAAuB,SAA+Bj+I,EAAM09I,GAC/B,IAAvBH,EAAYvxM,OAIhBuxM,EAAYjmM,SAAQ,SAAU4mM,GAC5BjuM,EAAiB+vD,EAAMk+I,EAAYR,MAJnC/2L,OAAO6nD,WAAWkvI,EAAe,IAOrCS,yBAA0B,SAAkCn+I,EAAM09I,GACrC,IAAvBH,EAAYvxM,QAGhBuxM,EAAYjmM,SAAQ,SAAU4mM,GAC5B5rJ,EAAoB0N,EAAMk+I,EAAYR,OAM1CF,UAAWA,EAEXY,oBAAqB,SAA6Bp+I,EAAM09I,GAC7B,IAArBF,EAAUxxM,OAIdwxM,EAAUlmM,SAAQ,SAAU+mM,GAC1BpuM,EAAiB+vD,EAAMq+I,EAAUX,MAJjC/2L,OAAO6nD,WAAWkvI,EAAe,IAOrCY,uBAAwB,SAAgCt+I,EAAM09I,GACnC,IAArBF,EAAUxxM,QAGdwxM,EAAUlmM,SAAQ,SAAU+mM,GAC1B/rJ,EAAoB0N,EAAMq+I,EAAUX,QAK3BM,O,6BChIf,aACeO,MAAf,G,gBCDA,IAAItqD,EAASzuJ,EAAQ,KACjBmwK,EAAOnwK,EAAQ,KACfg5M,EAAMh5M,EAAQ,KACds2D,EAAOt2D,EAAQ,KACfoS,EAAMpS,EAAQ,KAGdi5M,EAAU,SAAVA,EAAoBrtM,EAAMgB,EAAMue,GAClC,IASIhgB,EAAK+tM,EAAKj8J,EATVk8J,EAAYvtM,EAAOqtM,EAAQvxH,EAC3B0xH,EAAYxtM,EAAOqtM,EAAQtxH,EAC3B0xH,EAAYztM,EAAOqtM,EAAQ7wH,EAC3BkxH,EAAW1tM,EAAOqtM,EAAQ/qM,EAC1BqrM,EAAU3tM,EAAOqtM,EAAQ1xH,EACzBiyH,EAAU5tM,EAAOqtM,EAAQzqK,EACzBzuC,EAAUq5M,EAAYjpC,EAAOA,EAAKvjK,KAAUujK,EAAKvjK,GAAQ,IACzD6sM,EAAW15M,EAAO,UAClB8L,EAASutM,EAAY3qD,EAAS4qD,EAAY5qD,EAAO7hJ,IAAS6hJ,EAAO7hJ,IAAS,IAAjB,UAG7D,IAAKzB,KADDiuM,IAAWjuL,EAASve,GACZue,GAEV+tL,GAAOC,GAAattM,QAA0BkL,IAAhBlL,EAAOV,KAC1BiH,EAAIrS,EAASoL,KAExB8xC,EAAMi8J,EAAMrtM,EAAOV,GAAOggB,EAAOhgB,GAEjCpL,EAAQoL,GAAOiuM,GAAmC,mBAAfvtM,EAAOV,GAAqBggB,EAAOhgB,GAEpEouM,GAAWL,EAAMF,EAAI/7J,EAAKwxG,GAE1B+qD,GAAW3tM,EAAOV,IAAQ8xC,EAAO,SAAUuqC,GAC3C,IAAIE,EAAI,SAAUtmF,EAAG0L,EAAGmP,GACtB,GAAI5R,gBAAgBm9E,EAAG,CACrB,OAAQ35E,UAAUrH,QAChB,KAAK,EAAG,OAAO,IAAIghF,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAEpmF,GACrB,KAAK,EAAG,OAAO,IAAIomF,EAAEpmF,EAAG0L,GACxB,OAAO,IAAI06E,EAAEpmF,EAAG0L,EAAGmP,GACrB,OAAOurE,EAAE15E,MAAMzD,KAAMwD,YAGzB,OADA65E,EAAC,UAAcF,EAAC,UACTE,EAX0B,CAahCzqC,GAAOq8J,GAA0B,mBAAPr8J,EAAoB+7J,EAAIl9K,SAASx7B,KAAM28C,GAAOA,EAEvEq8J,KACDv5M,EAAQwwI,UAAYxwI,EAAQwwI,QAAU,KAAKplI,GAAO8xC,EAE/CrxC,EAAOqtM,EAAQ9wH,GAAKsxH,IAAaA,EAAStuM,IAAMmrD,EAAKmjJ,EAAUtuM,EAAK8xC,MAK9Eg8J,EAAQvxH,EAAI,EACZuxH,EAAQtxH,EAAI,EACZsxH,EAAQ7wH,EAAI,EACZ6wH,EAAQ/qM,EAAI,EACZ+qM,EAAQ1xH,EAAI,GACZ0xH,EAAQzqK,EAAI,GACZyqK,EAAQ3wH,EAAI,GACZ2wH,EAAQ9wH,EAAI,IACZroF,EAAOC,QAAUk5M,G,gBC7DjB,IAAIh4M,EAAWjB,EAAQ,KACvBF,EAAOC,QAAU,SAAU2pK,GACzB,IAAKzoK,EAASyoK,GAAK,MAAM75J,UAAU65J,EAAK,sBACxC,OAAOA,I,gBCFT5pK,EAAOC,SAAWC,EAAQ,IAARA,EAAoB,WACpC,OAA+E,GAAxE+M,OAAOsG,eAAe,GAAI,IAAK,CAAE9H,IAAK,WAAc,OAAO,KAAQnK,M,cC0B5EtB,EAAOC,QAJP,SAAsBG,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,6BCvBjC6M,OAAOsG,eAAetT,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ6jK,IAAM7jK,EAAQ25M,oBAAsB35M,EAAQ45M,WAAa55M,EAAQ65M,QAAU75M,EAAQ85M,8BAA2B9iM,EAEtH,IAEI+iM,EAASntD,EAFD3sJ,EAAQ,MAMhB+5M,EAAcptD,EAFD3sJ,EAAQ,MAIzB,SAAS2sJ,EAAuBn7I,GAAO,OAAOA,GAAOA,EAAI20I,WAAa30I,EAAM,CAAEmJ,QAASnJ,GAExDzR,EAAQ85M,yBAA2B,SAAkCnuM,GAClG,IACI65D,EAAU,EACVy0I,EAAS,EAeb,OAdA,EAAIF,EAAOn/L,SAHO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGrB,SAAUs/L,GACzC,GAAIvuM,EAAKuuM,KACP10I,GAAW,EACNtlE,MAAMyL,EAAKuuM,MACdD,GAAU,GAEG,MAAXC,GAA6B,MAAXA,GAAgB,CAClB,SACF3kL,KAAK5pB,EAAKuuM,MACxBD,GAAU,OAKXz0I,IAAYy0I,GAAStuM,GAlB9B,IAqBIkuM,EAAU75M,EAAQ65M,QAAU,SAAiBluM,EAAMwuM,GACrD,IAAI9yJ,EAAQ17C,EAAKg8C,KAAM,EAAIqyJ,EAAYp/L,SAASjP,EAAKg8C,MAAO,EAAIqyJ,EAAYp/L,SAASjP,GACjFu6J,EAAM7+G,EAAM+yJ,QACZC,EAAMhzJ,EAAMizJ,QACZzyJ,EAAMR,EAAMkzJ,QACZ5yJ,EAAMN,EAAMmzJ,QAOhB,OANc,IAAVt0C,EAAI3gK,IACN2gK,EAAI1iI,EAAI22K,GAAU,EAClBE,EAAI72K,EAAI22K,GAAU,GAIb,CACLj0C,IAAKA,EACLv+G,IAJwB,WAARA,GAA8B,IAAVE,EAAIxmD,EAIrB,cAAgB,IAAMsmD,EACzCE,IAAKA,EACLwyJ,IAAKA,EACLF,OAAQxuM,EAAK63B,GAAK22K,GAAUj0C,EAAI1iI,EAChCpY,OAAQzf,EAAKyf,SAIAprB,EAAQ45M,WAAa,SAAoBjyJ,GAExD,IAAI6lE,EAA+B,MAA1Bn5E,OAAOsT,GAAKjJ,OAAO,GAAa,EAAI,EAC7C,OAAOiJ,EAAIlhD,SAAW,EAAI+mH,GAAM7lE,EAAIlhD,OAAS,EAAI+mH,IAAM,EAAIwsF,EAAYp/L,SAAS+sC,GAAKjuB,WAG7D15B,EAAQ25M,oBAAsB,SAA6BhuM,GACnF,IAAKA,EACH,MAAO,OAET,IAAI8uM,EAAMZ,EAAQluM,GAClB,MAAgB,gBAAZ8uM,EAAI9yJ,IACC,mBAEc,IAAZ8yJ,EAAI5yJ,IAAIz3C,EAAsB,IAAZqqM,EAAI5yJ,IAAI14C,EAAsB,IAAZsrM,EAAI5yJ,IAAI96C,GAAW,KACpD,IAAM,OAAS,QAGrB/M,EAAQ6jK,IAAM,CACtBqC,IAAK,CAAE7kK,EAAG,EAAGmiC,EAAG,EAAGpnB,EAAG,GAAK7W,EAAG,GAC9BoiD,IAAK,UACLE,IAAK,CAAEz3C,EAAG,IAAKjB,EAAG,EAAGpC,EAAG,EAAG1L,EAAG,GAC9Bg5M,IAAK,CAAE72K,EAAG,EAAGj+B,EAAG,EAAGqK,EAAG,EAAGvO,EAAG,IAG9BrB,EAAQ4a,QAAU5a,G,6BCrFlB,qGA0DA,cAwFC,mBACC,cAAO,K,OApFE,EAAA06M,YAAmD,aAUnD,EAAAC,iBAA2B,aAK3B,EAAAC,MAAgB,EAehB,EAAAC,gBAA0B,EAK7B,EAAAx5K,OAA4B,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAK3I,EAAAD,YAAsC,CAAC,MAAO,MAAO,MAAO,MAAO,aAAc,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAK3H,EAAA6D,SAA4B,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAK/F,EAAAD,cAAsC,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAW9E,EAAA81K,cAAwB,MAiB3B,EAAAzuL,YAAsB,EAO5B,EAAKg5B,UAAY,gBACjB,EAAK4O,a,EA2tCP,OAtzCmC,iBAmGlC,sBAAW,uBAAQ,C,IAQnB,WACC,OAAO3pD,KAAKmnD,W,IATb,SAAoBtxD,GACnBmK,KAAKmnD,UAAYtxD,EACjBmK,KAAK0hC,WAAa1hC,KAAKmnD,UAAU0tB,UAAU,U,gCAkBrC,YAAAlxD,OAAP,SAAc7C,EAAa6C,GAkB1B,IAAI4+I,EAIAx9I,EAUJ,GA7BK/kB,KAAKu4D,WACLv4D,KAAKK,OACRL,KAAKu4D,SAAWv4D,KAAKK,OAAOk4D,SAG5Bv4D,KAAKu4D,SAAW,IAAI,KAKA,qBAAX50C,GAAqC,KAAXA,IACpCA,EAAS3jB,KAAKowM,aAWdrrL,EAFG,IAAejE,GAEX9gB,KAAK0+C,MAAM59B,GAGX,IAAiBA,GAIrB6C,aAAkBjhB,OAErB,IACC,OAAI1C,KAAKywM,YACD,IAAIC,KAAKC,eAAe3wM,KAAKywM,YAAyC9sL,GAAQA,OAAOoB,GAGrF,IAAI2rL,KAAKC,oBAAejkM,EAAuCiX,GAAQA,OAAOoB,GAGvF,MAAO1gB,GACN,MAAO,cAIJ,CAGJsf,EAAS,IAAmBA,GAG5B,IAAIrP,EAAOtU,KAAK4wM,YAAYjtL,GAQ5B,GALI,IAAe3jB,KAAKgmG,iBACvBjhF,EAAK8rL,WAAW9rL,EAAK+rL,aAAe/rL,EAAKI,oBAAsBnlB,KAAKgmG,iBAIhE,IAAejhF,EAAKF,WACxB,OAAO7kB,KAAKu4D,SAASsc,UAAU,gBAIhC0tF,EAAYviK,KAAK+wM,YAAYhsL,EAAMzQ,EAAMtU,KAAKu4D,UAG1Cv4D,KAAK+hB,aACRwgJ,EAAYA,EAAU7rK,QACrB,QAAS6rK,EAAU97I,OAAO,EAAG,GAAGvE,gBAOnC,OAAOqgJ,GAQE,YAAAquC,YAAV,SAAsBjtL,GAGrB,IAAIm6B,EAAS99C,KAAKiB,SAAS0iB,GAC3B,GAAI,IAAem6B,GAClB,OAAOA,EAWR,IAPA,IAAIxpC,EAAuB,CAC1B,SAAY,GACZ,MAAc,IAIXo5I,EAAuB,cAAmBC,MAAMhqI,GAAQ,GACnDtnB,EAAY,EAAGA,EAAIqxJ,EAAOvxJ,OAAQE,IAAK,CAC/C,IAAIsxJ,EAAoBD,EAAOrxJ,GAE/B,GAAmB,UAAfsxJ,EAAMpsJ,KAAkB,CAGvBosJ,EAAMprI,KAAK5D,MAAM,YAAc,IAAe3e,KAAKowM,eACtDziD,EAAMprI,KAAOviB,KAAKowM,aAInB,IAAI5jL,EAAUmhI,EAAMprI,KAAK5D,MAAM,+MAG/B,GAAI6N,EAGH,IAAK,IAAIlyB,EAAI,EAAGA,EAAIkyB,EAAQrwB,OAAQ7B,IACnCga,EAAKyO,MAAMvkB,KAAKguB,EAAQlyB,IACxBqzJ,EAAMprI,KAAOorI,EAAMprI,KAAK7rB,QAAQ81B,EAAQlyB,GAAI,KAQ/Cga,EAAK2sC,UAAY0sG,EAAMprI,KASxB,OAFAviB,KAAKa,SAAS8iB,EAAQrP,GAEfA,GAWE,YAAAy8L,YAAV,SAAsBhsL,EAAYzQ,EAAsBikD,GAGvD,IAGIy4I,EACHp8K,EACA9O,EACAT,EACAY,EACAuW,EACAG,EACA2K,EAVG96B,EAAM8H,EAAK2sC,SAWdjZ,EAAiBjjB,EAAKI,oBACtBggF,EAAoBpgF,EAAKF,UACtB7kB,KAAKglB,KACRgsL,EAAWjsL,EAAKyU,iBAChB5E,EAAQ7P,EAAK4e,cACb7d,EAAUf,EAAK8U,YACfxU,EAAMN,EAAK6e,aACX3d,EAAQlB,EAAK68G,cACbplG,EAAUzX,EAAKme,gBACfvG,EAAU5X,EAAK88G,gBACfv6F,EAAeviB,EAAKm9G,uBAGpB8uE,EAAWjsL,EAAKE,cAChB2P,EAAQ7P,EAAKW,WACbI,EAAUf,EAAKQ,SACfF,EAAMN,EAAK8e,UACX5d,EAAQlB,EAAKksL,WACbz0K,EAAUzX,EAAK+rL,aACfn0K,EAAU5X,EAAKmsL,aACf5pK,EAAeviB,EAAKosL,mBAIrB,IAAK,IAAI90M,EAAI,EAAGgV,EAAMiD,EAAKyO,MAAM5mB,OAAQE,EAAIgV,EAAKhV,IAAK,CACtD,IAAIxG,EAAgB,GACpB,OAAQye,EAAKyO,MAAM1mB,IAElB,IAAK,IACJxG,EAAQ0iE,EAASsc,UAChBm8H,EAAW,EACR,UACA,WAEJ,MAED,IAAK,OACJn7M,EAAQ0B,KAAK6B,IAAI43M,GAAUh7M,WACvBg7M,EAAW,IACdn7M,GAAS0iE,EAASsc,UAAU,YAE7B,MAED,IAAK,MACL,IAAK,KACL,IAAK,IACJh/E,EAAQ0B,KAAK6B,IAAI43M,GAAUh7M,WAAWywB,QAAQnS,EAAKyO,MAAM1mB,GAAGF,QACxD60M,EAAW,IACdn7M,GAAS0iE,EAASsc,UAAU,YAE7B,MAED,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACJ,IACIhvD,EAAOmrL,EACC,GAFD,IAAejsL,IAERe,EAAU,GAC3BD,IAGAhwB,EADoB,QAAjBye,EAAKyO,MAAM1mB,GACN9E,KAAK6B,IAAIysB,GAAM7vB,WAGfuB,KAAK6B,IAAIysB,GAAM7vB,WAAWywB,QAAQnS,EAAKyO,MAAM1mB,GAAGF,QAErD0pB,EAAO,IACVhwB,GAAS0iE,EAASsc,UAAU,YAE7B,MAED,IAAK,IAEJ,MAED,IAAK,QACJh/E,EAAQ0iE,EAASsc,UAAU70E,KAAK+2B,OAAOnC,IAAQnO,OAAO,EAAG,GACzD,MAED,IAAK,OACJ5wB,EAAQ0iE,EAASsc,UAAU70E,KAAK+2B,OAAOnC,IACvC,MAED,IAAK,MACJ/+B,EAAQ0iE,EAASsc,UAAU70E,KAAK82B,YAAYlC,IAC5C,MAED,IAAK,KACJ/+B,EAAQ,IAAiB++B,EAAQ,EAAG,EAAG,KACvC,MAED,IAAK,IACJ/+B,GAAS++B,EAAQ,GAAG5+B,WACpB,MAED,IAAK,KACJH,EAAQ,IAAiB,IAAekvB,EAAM/kB,KAAKglB,KAAM,EAAG,KAC5D,MAED,IAAK,IACJnvB,EAAQ,IAAekvB,EAAM/kB,KAAKglB,KAAKhvB,WACvC,MAED,IAAK,IACJH,EAAQ,IAAoBkvB,EAAM/kB,KAAKglB,KAAKhvB,WAC5C,MAED,IAAK,KACJH,EAAQ,IAAiBwvB,EAAK,EAAG,KACjC,MAED,IAAK,IACJxvB,EAAQwvB,EAAIrvB,WACZ,MAED,IAAK,KACL,IAAK,MACJH,EAAQ,IAAiB,IAAkBkvB,EAAM/kB,KAAKglB,KAAKhvB,WAAYse,EAAKyO,MAAM1mB,GAAGF,OAAQ,KAC7F,MAED,IAAK,IACJtG,EAAQ,IAAkBkvB,EAAM/kB,KAAKglB,KAAKhvB,WAC1C,MAED,IAAK,IAIL,IAAK,IAEJ,MAED,IAAK,IACJH,EAAQ0iE,EAAS0pG,cAAc,YAAYhsK,KAAK+J,KAAMqlB,GACtD,MAED,IAAK,IACJxvB,GAASiwB,GAAW,GAAG9vB,WACvB,MAED,IAAK,KACJH,EAAQ,KAAkBiwB,GAAW,GAAG9vB,WAAY,EAAG,KACvD,MAED,IAAK,MACL,IAAK,MACJH,EAAQ0iE,EAASsc,UAAU70E,KAAK06B,cAAc5U,IAC9C,MAED,IAAK,OACL,IAAK,OACJjwB,EAAQ0iE,EAASsc,UAAU70E,KAAK26B,SAAS7U,IACzC,MAED,IAAK,QACL,IAAK,QACJjwB,EAAQ0iE,EAASsc,UAAU70E,KAAK26B,SAAS7U,IAAUW,OAAO,EAAG,GAC7D,MAED,IAAK,IACL,IAAK,KACJ5wB,GAASiwB,EAAU9lB,KAAK8zC,eAAiB,GAAG99C,WACvB,MAAjBse,EAAKyO,MAAM1mB,KACdxG,EAAQ,IAAiBA,EAAO,EAAG,MAEpC,MAED,IAAK,IAEHA,EADGowB,GAAS,GACJsyC,EAASsc,UAAU,MAGnBtc,EAASsc,UAAU,MAE5B,MAED,IAAK,KAEHh/E,EADGowB,GAAS,GACJsyC,EAASsc,UAAU,QAGnBtc,EAASsc,UAAU,QAE5B,MAED,IAAK,MAEHh/E,EADGowB,GAAS,GACJsyC,EAASsc,UAAU,KAGnBtc,EAASsc,UAAU,KAE5B,MAED,IAAK,IACJh/E,EAAQ,IAAkBowB,GAAOjwB,WACjC,MAED,IAAK,KACJH,EAAQ,IAAiB,IAAkBowB,GAAQ,EAAG,KACtD,MAED,IAAK,IACJpwB,EAAQowB,EAAMjwB,WACd,MAED,IAAK,KACJH,EAAQ,IAAiBowB,EAAO,EAAG,KACnC,MAED,IAAK,IACJpwB,EAAQ,IAAkBowB,EAAO,GAAGjwB,WACpC,MAED,IAAK,KACJH,EAAQ,IAAiB,IAAkBowB,EAAO,GAAI,EAAG,KACzD,MAED,IAAK,IACJpwB,GAASowB,EAAQ,GAAGjwB,WACpB,MAED,IAAK,KACJH,EAAQ,IAAiBowB,EAAQ,EAAG,EAAG,KACvC,MAED,IAAK,IACJpwB,EAAQ2mC,EAAQxmC,WAChB,MAED,IAAK,KACJH,EAAQ,IAAiB2mC,EAAS,EAAG,KACrC,MAED,IAAK,IACJ3mC,EAAQ8mC,EAAQ3mC,WAChB,MAED,IAAK,KACJH,EAAQ,IAAiB8mC,EAAS,EAAG,KACrC,MAED,IAAK,IACL,IAAK,KACL,IAAK,MACJ9mC,EAAQ0B,KAAKQ,MAAOuvC,EAAe,IAAQ/vC,KAAKa,IAAI,GAAIkc,EAAKyO,MAAM1mB,GAAGF,SAASnG,WAC/E,MAED,IAAK,IACJH,EAAQsvG,EAAUnvG,WAClB,MAED,IAAK,IACL,IAAK,KACL,IAAK,MACJH,EAAQ,IAAiByxC,EAAchzB,EAAKyO,MAAM1mB,GAAGF,OAAQ,KAC7D,MAED,IAAK,IACJtG,EAAQ,IAAmBkvB,GAAM,GAAO,EAAO/kB,KAAKglB,KACpD,MAED,IAAK,KACJnvB,EAAQ,IAAmBkvB,GAAM,GAAM,EAAO/kB,KAAKglB,KACnD,MAED,IAAK,MACJnvB,EAAQ,IAAmBkvB,GAAM,GAAO,EAAM/kB,KAAKglB,KACnD,MAED,IAAK,OACJnvB,EAAQ,IAAmBkvB,GAAM,GAAM,EAAM/kB,KAAKglB,KAClD,MAED,IAAK,IACL,IAAK,KACJ,IAAIosL,EAAK75M,KAAK6B,IAAI4uC,GAAU,GACxBqpK,EAAM95M,KAAKU,MAAMm5M,GACjBE,EAAW,GAALF,EAAgB,GAANC,EAEhBrxM,KAAKglB,MACRqsL,EAAM,EACNC,EAAM,GAGc,KAAjBh9L,EAAKyO,MAAM1mB,IACdxG,EAAQ,MACRA,GAASmyC,EAAS,EAAI,IAAM,IAC5BnyC,GAAS,IAAiBw7M,EAAK,GAAK,IAAM,IAAiBC,EAAK,KAGhEz7M,EAAQmyC,EAAS,EAAI,IAAM,IAC3BnyC,GAAS,IAAiBw7M,EAAK,GAAK,IAAiBC,EAAK,IAE3D,MAED,IAAK,IACJz7M,EAAQkvB,EAAK2qB,cACb,MAED,IAAK,IACJ75C,EAAQkvB,EAAKwsL,cAIf/kM,EAAMA,EAAI9V,QAAQ,IAAsBb,GAGzC,OAAO2W,GAWD,YAAAkyC,MAAP,SAAa59B,EAAa6C,GAQzB,GALK,IAAeA,KACnBA,EAAS3jB,KAAKwxM,iBAIX1wL,aAAkB4D,KACrB,OAAO5D,EAIR,GAAsB,kBAAXA,EACV,OAAO,IAAI4D,KAAK5D,GAmBjB,IAAItU,EAfkB,kBAAXsU,IACVA,EAASA,EAAO9qB,YAIZgK,KAAKu4D,WACLv4D,KAAKK,OACRL,KAAKu4D,SAAWv4D,KAAKK,OAAOk4D,SAG5Bv4D,KAAKu4D,SAAW,IAAI,KAQtB,IAAIc,EAAc,GAMlB11C,GAHAA,EAAS,IAAmBA,IAGZ8C,OAAO,EAAG3F,EAAO3kB,QAoDjC,IAjDA,IAAImY,EAAOtU,KAAK4wM,YAAYjtL,GAGxB8tL,EAAgB,CACnB,MAAS,EACT,OAAU,EACV,OAAU,EACV,OAAU,EACV,OAAU,EACV,YAAe,EACf,WAAc,EACd,cAAiB,EACjB,aAAgB,EAChB,KAAQ,EACR,SAAY,EACZ,MAAS,EACT,WAAc,EACd,aAAgB,EAChB,WAAc,EACd,aAAgB,EAChB,QAAW,EACX,QAAW,EACX,aAAgB,EAChB,mBAAsB,EACtB,IAAO,EACP,MAAS,EACT,WAAc,EACd,KAAQ,GAILC,EAAY,CACf,KAAQ,KACR,MAAS,EACT,IAAO,EACP,KAAQ,EACR,OAAU,EACV,OAAU,EACV,YAAe,EACf,UAAkB,KAClB,OAAU,EACV,IAAO1xM,KAAKglB,KAIT2sL,EAAsB,EACzBhqM,EAAgB,EAGRtL,EAAY,EAAGA,EAAIiY,EAAKyO,MAAM5mB,OAAQE,IAAK,CAKnD,OAFAsL,EAAQtL,EAAIs1M,EAAc,EAElBr9L,EAAKyO,MAAM1mB,IAElB,IAAK,OACL,IAAK,OACJg9D,GAAO,aACPo4I,EAAc5rL,KAAOle,EACrB,MAED,IAAK,MACL,IAAK,MACJ0xD,GAAO,aACPo4I,EAAcG,MAAQjqM,EACtB,MAED,IAAK,KACL,IAAK,KACJ0xD,GAAO,aACPo4I,EAAcI,MAAQlqM,EACtB,MAED,IAAK,IACL,IAAK,IACJ0xD,GAAO,aACPo4I,EAAcK,MAAQnqM,EACtB,MAED,IAAK,OACJ0xD,GAAO,IAAMr5D,KAAK+xM,cAAc/xM,KAAK+2B,QAAQtwB,KAAK,KAAO,IACzDgrM,EAAcO,UAAYrqM,EAC1B,MAED,IAAK,MACJ0xD,GAAO,IAAMr5D,KAAK+xM,cAAc/xM,KAAK82B,aAAarwB,KAAK,KAAO,IAC9DgrM,EAAcQ,WAAatqM,EAC3B,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAc78K,MAAQjtB,EACtB,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAcnsL,KAAO3d,EACrB,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAcpsL,IAAM1d,EACpB,MAED,IAAK,MACL,IAAK,KACL,IAAK,IACJ0xD,GAAO,+BACPo4I,EAAcS,QAAUvqM,EACxB,MAGD,IAAK,OACJ0xD,GAAO,IAAMr5D,KAAK+xM,cAAc/xM,KAAK26B,UAAUl0B,KAAK,KAAO,IAC3DgrM,EAAcU,YAAcxqM,EAC5B,MAED,IAAK,MACJ0xD,GAAO,IAAMr5D,KAAK+xM,cAAc/xM,KAAK06B,eAAej0B,KAAK,KAAO,IAChEgrM,EAAcW,aAAezqM,EAC7B,MAED,IAAK,MACL,IAAK,KACL,IAAK,IAEJ0xD,GAAO,IAAMr5D,KAAK+xM,cAAc,CAAC,KAAM,KAAM,OAAU,OAAU,IAAK,MAAMtrM,KAAK,KAAO,IACxFgrM,EAAcY,GAAK1qM,EACnB,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAca,YAAc3qM,EAC5B,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAcc,UAAY5qM,EAC1B,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAce,YAAc7qM,EAC5B,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAcgB,UAAY9qM,EAC1B,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAAcvrK,OAASv+B,EACvB,MAED,IAAK,KACL,IAAK,IACJ0xD,GAAO,sBACPo4I,EAActrK,OAASx+B,EACvB,MAED,IAAK,MACL,IAAK,KACL,IAAK,IACJ0xD,GAAO,+BACPo4I,EAAcrrK,YAAcz+B,EAC5B8pM,EAAciB,kBAAoBp+L,EAAKyO,MAAM1mB,GAAGF,OAChD,MAED,IAAK,MACL,IAAK,KACL,IAAK,IACJk9D,GAAO,+BACPo4I,EAAcrrK,YAAcz+B,EAC5B,MAED,IAAK,IACJ0xD,GAAO,cACPo4I,EAActsG,UAAYx9F,EAC1B,MAED,IAAK,IACJ0xD,GAAO,8BACPo4I,EAAc1hK,KAAOpoC,EACrB,MAED,IAAK,KACJ0xD,GAAO,4BACPo4I,EAAc1hK,KAAOpoC,EACrB,MAED,IAAK,IACJ0xD,GAAO,4FACPo4I,EAAc3iL,IAAMnnB,EACpBgqM,GAAe,EACf,MAED,IAAK,IACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACL,IAAK,QACL,IAAK,IACL,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACL,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACL,IAAK,IAEJA,IAIFt4I,GAAO,UAIR,IAAIrjC,EAAQ,IAAI/S,OAAOo2C,GACnB7sC,EAA4B1L,EAAOnC,MAAMqX,GAE7C,GAAIxJ,EAAS,CASZ,GALIilL,EAAc5rL,MAAQ,IACzB6rL,EAAU7rL,KAAOkT,SAASvM,EAAQilL,EAAc5rL,QAI7C4rL,EAAcG,OAAS,EAAG,CAC7B,IAAIxhL,EAAM2I,SAASvM,EAAQilL,EAAcG,QACzCxhL,GAAO,IACPshL,EAAU7rL,KAAOuK,EAIlB,GAAIqhL,EAAcI,OAAS,EAAG,CACzBzhL,EAAM2I,SAASvM,EAAQilL,EAAcI,QAExCzhL,GADGA,EAAM,GACF,IAGA,IAERshL,EAAU7rL,KAAOuK,EAIlB,GAAIqhL,EAAcK,OAAS,EAAG,CACzB1hL,EAAM2I,SAASvM,EAAQilL,EAAcK,QACzC1hL,EAAoD,GAA9C74B,KAAKU,OAAO,IAAIysB,MAAOO,cAAiB,IAAWmL,EACzDshL,EAAU7rL,KAAOuK,EAyDlB,GArDIqhL,EAAcO,WAAa,IAC9BN,EAAU98K,MAAQ50B,KAAK2yM,aAAkBnmL,EAAQilL,EAAcO,aAI5DP,EAAcQ,YAAc,IAC/BP,EAAU98K,MAAQ50B,KAAK4yM,kBAAuBpmL,EAAQilL,EAAcQ,cAIjER,EAAc78K,OAAS,IAC1B88K,EAAU98K,MAAQmE,SAASvM,EAAQilL,EAAc78K,QAAU,GAOvD68K,EAAcnsL,MAAQ,IAA8B,IAAvBmsL,EAAcpsL,MAI/CqsL,EAAU98K,MAAQ,EAClB88K,EAAUrsL,IAAM,IACf0T,SAASvM,EAAQilL,EAAcnsL,OAC/BosL,EAAU7rL,KACV,EACA7lB,KAAKglB,MAKHysL,EAAcpsL,KAAO,IACxBqsL,EAAUrsL,IAAM0T,SAASvM,EAAQilL,EAAcpsL,OAI5CosL,EAAcS,SAAW,IAC5BR,EAAU98K,MAAQ,EAClB88K,EAAUrsL,IAAM0T,SAASvM,EAAQilL,EAAcS,WAI5CT,EAAcc,WAAa,IAC9Bb,EAAU1sK,KAAOjM,SAASvM,EAAQilL,EAAcc,aAI7Cd,EAAcgB,WAAa,IAC9Bf,EAAU1sK,KAAOjM,SAASvM,EAAQilL,EAAcgB,YAAc,GAI3DhB,EAAce,aAAe,EAErB,KADPpiL,EAAM2I,SAASvM,EAAQilL,EAAce,iBAExCpiL,EAAM,GAEFqhL,EAAcY,IAAM,IAAOryM,KAAK6yM,KAAKrmL,EAAQilL,EAAcY,OAC/DjiL,GAAO,IAERshL,EAAU1sK,KAAO5U,EAIlB,GAAIqhL,EAAca,aAAe,EAErB,KADPliL,EAAM2I,SAASvM,EAAQilL,EAAca,iBAExCliL,EAAM,GAEFqhL,EAAcY,IAAM,IAAOryM,KAAK6yM,KAAKrmL,EAAQilL,EAAcY,OAC/DjiL,GAAO,IAERshL,EAAU1sK,KAAO5U,EAclB,GAVIqhL,EAAcvrK,QAAU,IAC3BwrK,EAAUxrK,OAASnN,SAASvM,EAAQilL,EAAcvrK,UAI/CurK,EAActrK,QAAU,IAC3BurK,EAAUvrK,OAASpN,SAASvM,EAAQilL,EAActrK,UAI/CsrK,EAAcrrK,aAAe,EAAG,CAC/BhW,EAAM2I,SAASvM,EAAQilL,EAAcrrK,cACF,GAAnCqrK,EAAciB,kBACjBtiL,GAAO,GAEoC,GAAnCqhL,EAAciB,oBACtBtiL,GAAO,KAERshL,EAAUtrK,YAAchW,EASzB,GALIqhL,EAActsG,WAAa,IAC9BusG,EAAUvsG,UAAYpsE,SAASvM,EAAQilL,EAActsG,aAIlDssG,EAAc1hK,MAAQ,EAAG,CAC5B,IAAIA,EAAOvjB,EAAQilL,EAAc1hK,MAAMr5C,QAAQ,IAAK,IAChDioB,EAAQ,IAAeoxB,EAAKpxB,MAAM,iCAClCgyB,EAAMhyB,EAAM,GACZqmB,EAAOrmB,EAAM,GACbunB,EAASvnB,EAAM,GACfqpB,EAA0B,GAAjBjP,SAASiM,GAAajM,SAASmN,GAKjC,KAAPyK,IACH3I,IAAW,GAIZ,IACI9iB,EAAO8iB,GADU,IAAItjB,MAAOS,oBAEhCusL,EAAU1pK,OAAS9iB,EAIhBusL,EAAc3iL,KAAO,IACc,KAAlCtC,EAAQilL,EAAc3iL,IAAM,IAA+C,KAAlCtC,EAAQilL,EAAc3iL,IAAM,KACxE4iL,EAAU1sL,KAAM,GAGjB0sL,EAAU7rL,KAAO,IAAe2G,EAAQilL,EAAc3iL,IAAM,IAC5D4iL,EAAU98K,MAAQ,IAAepI,EAAQilL,EAAc3iL,IAAM,IAAM,EACnE4iL,EAAUrsL,IAAM,IAAemH,EAAQilL,EAAc3iL,IAAM,IAC3D4iL,EAAU1sK,KAAO,IAAexY,EAAQilL,EAAc3iL,IAAM,IAC5D4iL,EAAUxrK,OAAS,IAAe1Z,EAAQilL,EAAc3iL,IAAM,IAC9D4iL,EAAUvrK,OAAS,IAAe3Z,EAAQilL,EAAc3iL,IAAM,IAC9D4iL,EAAUtrK,YAAc,IAAe5Z,EAAQilL,EAAc3iL,IAAM,KAKnEtiB,EADGklM,EAAU1sL,IACP,IAAIN,KAAKA,KAAK6U,IACnBm4K,EAAU7rL,KACV6rL,EAAU98K,MACV88K,EAAUrsL,IACVqsL,EAAU1sK,KACV0sK,EAAUxrK,OACVwrK,EAAUvrK,OACVurK,EAAUtrK,cAIL,IAAI1hB,KACTgtL,EAAU7rL,KACV6rL,EAAU98K,MACV88K,EAAUrsL,IACVqsL,EAAU1sK,KACV0sK,EAAUxrK,OAASwrK,EAAU1pK,OAC7B0pK,EAAUvrK,OACVurK,EAAUtrK,kBAQZ55B,EAAM,IAAIkY,KAAK5D,GAGhB,OAAOtU,GASE,YAAAmmM,aAAV,SAAuB98M,GAGtB,IAAI++B,EAAgB50B,KAAK+2B,OAAOjgC,QAAQjB,GACxC,OAAI++B,GAAS,GAKT50B,KAAKu4D,WAAav4D,KAAKu4D,SAAS4pG,cACnCvtI,EAAQ50B,KAAKu4D,SAAS2pG,aAAaliK,KAAK+2B,QAAQjgC,QAAQjB,KAC3C,EANN++B,EAWD,GASE,YAAAg+K,kBAAV,SAA4B/8M,GAG3B,IAAI++B,EAAgB50B,KAAK82B,YAAYhgC,QAAQjB,GAC7C,OAAI++B,GAAS,IAKbA,EAAQ50B,KAAK+2B,OAAOjgC,QAAajB,KACpB,GAKTmK,KAAKu4D,WAAav4D,KAAKu4D,SAAS4pG,cACnCvtI,EAAQ50B,KAAKu4D,SAAS2pG,aAAaliK,KAAK82B,aAAahgC,QAAQjB,KAChD,EAZN++B,EAiBD,GAUE,YAAAi+K,KAAV,SAAeh9M,GAEd,OADWmK,KAAK+xM,cAAc,CAAC,KAAM,OAAQ,MACjCj7M,QAAQjB,EAAMqsB,gBAAkB,GAMnC,YAAA4wL,iBAAV,WACK9yM,KAAKK,QACRL,KAAKK,OAAOqpD,cAUJ,YAAAqoJ,cAAV,SAAwBv5J,GAEvB,IADA,IAAIhsC,EAAgB,GACXnQ,EAAY,EAAGA,EAAIm8C,EAAKr8C,OAAQE,IAEpC2D,KAAKu4D,SACR/rD,EAAIhO,KAAK,IAAqBwB,KAAKu4D,SAASsc,UAAUr8B,EAAKn8C,MAG3DmQ,EAAIhO,KAAK,IAAqBg6C,EAAKn8C,KAGrC,OAAOmQ,GAYR,sBAAW,yBAAU,C,IAQrB,WACC,OAAOxM,KAAKowM,a,IATb,SAAsBv6M,GACrBmK,KAAKowM,YAAcv6M,EACnBmK,KAAK8yM,oB,gCAgBN,sBAAW,8BAAe,C,IAQ1B,WACC,OAAO9yM,KAAKqwM,kB,IATb,SAA2Bx6M,GAC1BmK,KAAKqwM,iBAAmBx6M,EACxBmK,KAAK8yM,oB,gCAeN,sBAAW,0BAAW,C,IAQtB,WACC,OAAO9yM,KAAK+yM,c,IATb,SAAuBl9M,GACtBmK,KAAK+yM,aAAel9M,EACpBmK,KAAK8yM,oB,gCAkBN,sBAAW,kBAAG,C,IAQd,WACC,OAAO9yM,KAAKswM,M,IATb,SAAez6M,GACdmK,KAAKswM,KAAOz6M,EACZmK,KAAK8yM,oB,gCAmBN,sBAAW,6BAAc,C,IAUzB,WACC,OAAO9yM,KAAKgzM,iB,IAXb,SAA0Bn9M,GACrBmK,KAAKgzM,iBAAmBn9M,IAC3BmK,KAAKgzM,gBAAkBn9M,EACvBmK,KAAK8yM,qB,gCAsBP,sBAAW,6BAAc,C,IAQzB,WACC,OAAO9yM,KAAKuwM,iB,IATb,SAA0B16M,GACzBmK,KAAKuwM,gBAAkB16M,EACvBmK,KAAK8yM,oB,gCAgBN,sBAAW,2BAAY,C,IASvB,WACC,OAAO9yM,KAAKwwM,e,IAVb,SAAwB36M,GACvBmK,KAAKwwM,cAAgB36M,EAAMguB,cAC3B7jB,KAAK8yM,oB,gCAWP,EAtzCA,CAAmC,KA8zCnC,IAAS1zM,kBAAT,cAA8C6zM,G,6BCx3C9C,2FAwDA,cAiIC,mBACC,cAAO,K,OA7HE,EAAAr7H,MAAiB,GAKjB,EAAAC,aAAuB,EAMvB,EAAAC,YAAsB,EAOtB,EAAAC,aAAuB,EAO1B,EAAAC,UAAmB,IAAI,IAAM,CACnClyE,EAAG,IACHjB,EAAG,IACHpC,EAAG,MAMG,EAAAywM,YAA6C,GAQ7C,EAAAC,YAA6C,CACnD31J,UAAW,IAmBL,EAAAr5C,KAAe,EASf,EAAAivM,UAAoB,GAMpB,EAAAC,aAAuB,GAKvB,EAAAC,aAAuB,GAKvB,EAAAC,SAAmB,EAiBnB,EAAAjnD,MAAgB,EAMhB,EAAAknD,OAAiB,EASjB,EAAA91J,WAAqB,EAO3B,EAAK3C,UAAY,WACjB,EAAK4O,a,EAmTP,OAvb8B,iBA4I7B,sBAAW,mBAAI,C,IAaf,WAIC,OAHK3pD,KAAK43E,OACT53E,KAAKy7C,SAASz7C,KAAKozM,WAEbpzM,KAAK43E,O,IAjBb,SAAgB/hF,GACfmK,KAAK43E,MAAQ/hF,EACbmK,KAAK24C,S,gCAwBI,YAAA86J,iBAAV,SAA2B9rM,GAC1B,GAAyB,GAArB3H,KAAK43E,MAAMz7E,OAEd,OADA6D,KAAKy7C,SAAS,GACPz7C,KAAKw4C,KAAK,GAGjB,IAAIk7J,EAAU/rM,EAASpQ,KAAKU,MAAM0P,EAAQ3H,KAAK43E,MAAMz7E,QAAU6D,KAAKw4C,KAAKr8C,OACzE,OAAO6D,KAAKw4C,KAAKk7J,IAYZ,YAAAtvM,KAAP,WACC,IAAI24C,EAcJ,OAbI/8C,KAAKw4C,KAAKr8C,QAAU6D,KAAK63E,aACxB73E,KAAKwzM,MACRz2J,EAAQ/8C,KAAKyzM,iBAAiBzzM,KAAK63E,eAGnC73E,KAAKy7C,SAASz7C,KAAKozM,WACnBr2J,EAAQ/8C,KAAKw4C,KAAKx4C,KAAK63E,eAIxB96B,EAAQ/8C,KAAKw4C,KAAKx4C,KAAK63E,cAExB73E,KAAK63E,cAAgB73E,KAAKmE,KACnB44C,EAAMU,SAASz9C,KAAK09C,aASrB,YAAAyC,SAAP,SAAgB9jD,GACf,IAAI0gD,EAaJ,OAZI/8C,KAAKw4C,KAAKr8C,QAAUE,EACnB2D,KAAKwzM,MACRz2J,EAAQ/8C,KAAKyzM,iBAAiBp3M,IAG9B2D,KAAKy7C,SAASz7C,KAAKozM,WACnBr2J,EAAQ/8C,KAAKmgD,SAAS9jD,IAIvB0gD,EAAQ/8C,KAAKw4C,KAAKn8C,GAEZ0gD,EAAMU,SAASz9C,KAAK09C,aASrB,YAAA/E,MAAP,WACC34C,KAAK63E,aAAe73E,KAAK83E,aAY1B,sBAAW,0BAAW,C,IAOtB,WACC,OAAO93E,KAAK63E,c,IARb,SAAuBhiF,GACtBmK,KAAK63E,aAAehiF,G,gCAkBrB,sBAAW,yBAAU,C,IAQrB,WACC,OAAOmK,KAAK83E,a,IATb,SAAsBjiF,GACrBmK,KAAK83E,YAAcjiF,EACnBmK,KAAK24C,S,gCAeC,YAAA8C,SAAP,SAAgBt9C,GAGf,IAAIw1M,EAAW3zM,KAAK4zM,aAChBh4C,EAAM,IAAiB,IAAe+3C,EAASp2J,MAC/Cs2J,EAAU,IAAe7zM,KAAKkzM,YAAYY,KAAO9zM,KAAKkzM,YAAYY,IAAM,EAAI31M,EAC5E41M,EAA6B,CAChCv2J,SAAU,EACVF,QAAS,EACTw2J,IAAKl4C,EAAI1iI,EACT86K,UAAWp4C,EAAI9pJ,EACf4rC,WAAYk+G,EAAI3gK,GAIbg5M,EAAiB,GACf7rH,EAAiC,GAApBpoF,KAAKw4C,KAAKr8C,OAAc,EAAI,EAC/C,GAAI6D,KAAKwzM,MACR,IAAK,IAAIn3M,EAAI+rF,EAAY/rF,GAAK8B,EAAO9B,IACpC43M,EAAKz1M,KAAK,IAAiB,IAAewB,KAAK43E,MAAMv7E,GAAGkhD,MAAMrkB,QAI/D,IAAS78B,EAAI+rF,EAAY/rF,GAAK8B,EAAO9B,IAAK,CACzC,IAAI68B,EAAI0iI,EAAI1iI,EAAI26K,EAAUx3M,EACtB2D,KAAKssJ,MAASpzH,EAAI,IACrBA,GAAK,GAEN+6K,EAAKz1M,KAAK06B,GAKRl5B,KAAKuzM,SACRU,EAAKz7K,MAAK,SAACzhC,EAAW0L,GACrB,OAAOlL,KAAKg7I,SAAW,MAMzB,IAASl2I,EAAI,EAAGA,EAAI8B,EAAO9B,IAAK,CAG3B2D,KAAKwzM,MACR53C,EAAM,IAAiB,IAAe57J,KAAK43E,MAAMv7E,GAAGkhD,MAGpDq+G,EAAI1iI,EAAY+6K,EAAKlhK,QAItB/yC,KAAKk0M,iBAAiBt4C,EAAKm4C,EAAM13M,EAAG2D,KAAK+3E,cAGzC,IAAInmE,EAAI,YAAM,IAAiBgqJ,IAG3Bp+G,GAAYx9C,KAAKkzM,YAAY11J,UAAY,GAAKnhD,GAAK2D,KAAKmzM,YAAY31J,UAAY,GAAKx9C,KAAK+3E,aAC9E,GAAZv6B,IAEFA,EADGx9C,KAAKssJ,KACG,IAAyB9uG,EAAUx9C,KAAKqzM,aAAcrzM,KAAKszM,cAG3D,IAAiB91J,EAAUx9C,KAAKqzM,aAAcrzM,KAAKszM,cAE/D1hM,EAAIA,EAAE4rC,SAASA,IAGhB,IAAIF,GAAWt9C,KAAKkzM,YAAY51J,SAAW,GAAKjhD,GAAK2D,KAAKmzM,YAAY71J,SAAW,GAAKt9C,KAAK+3E,aAC5E,GAAXz6B,IAEFA,EADGt9C,KAAKssJ,KACE,IAAyBhvG,EAASt9C,KAAKqzM,aAAcrzM,KAAKszM,cAG1D,IAAiBh2J,EAASt9C,KAAKqzM,aAAcrzM,KAAKszM,cAE7D1hM,EAAIA,EAAE0rC,QAAQA,IAGft9C,KAAK43E,MAAMp5E,KAAKoT,GAGjB5R,KAAK+3E,gBAUN,sBAAc,2BAAY,C,IAA1B,WACC,OAAyB,GAArB/3E,KAAK43E,MAAMz7E,OACP6D,KAAKg4E,UAAUv6B,SAASz9C,KAAK09C,YAG7B19C,KAAK43E,MAAM53E,KAAK43E,MAAMz7E,OAAS,GAAGshD,SAASz9C,KAAK09C,a,gCAY/C,YAAAw2J,iBAAV,SAA2Bt4C,EAAWnzJ,EAA4BtE,EAAcgwM,GAG/Ev4C,EAAI9pJ,EAAIrJ,EAAKurM,WAAah0M,KAAKkzM,YAAYc,WAAa,GAAK7vM,GAAQnE,KAAKmzM,YAAYa,WAAa,GAAKG,EAEpGn0M,KAAKssJ,MACJsP,EAAI9pJ,EAAI,EACX8pJ,EAAI9pJ,EAAI8pJ,EAAI9pJ,EAAIva,KAAKU,MAAM2jK,EAAI9pJ,GAEvB8pJ,EAAI9pJ,EAAI,IAChB8pJ,EAAI9pJ,IAAM8pJ,EAAI9pJ,EAAIva,KAAKU,MAAM2jK,EAAI9pJ,KAElC8pJ,EAAI9pJ,EAAI,IAAyB8pJ,EAAI9pJ,EAAG9R,KAAKqzM,aAAcrzM,KAAKszM,gBAG5D13C,EAAI9pJ,EAAI,EACX8pJ,EAAI9pJ,EAAI,EAEA8pJ,EAAI9pJ,EAAI,IAChB8pJ,EAAI9pJ,EAAI,GAET8pJ,EAAI9pJ,EAAI,IAAiB8pJ,EAAI9pJ,EAAG9R,KAAKqzM,aAAcrzM,KAAKszM,gBAWnD,YAAAntI,cAAP,SAAqB33D,GAEpB,GAAIA,GAGC,IAAeA,EAAOgqC,OAAS,IAAchqC,EAAOgqC,MACvD,IAAK,IAAIn8C,EAAI,EAAGgV,EAAM7C,EAAOgqC,KAAKr8C,OAAQE,EAAIgV,EAAKhV,IAC5CmS,EAAOgqC,KAAKn8C,aAAc,MAC/BmS,EAAOgqC,KAAKn8C,GAAK,YAAMmS,EAAOgqC,KAAKn8C,KAKvC,YAAM8pE,cAAa,UAAC33D,IAGtB,EAvbA,CAA8B,KA+b9B,IAASpP,kBAAT,SAAyCwsF,G,6BCvfzC,qDAiKW01D,EAAoB,IAnG/B,wBAKS,KAAA8yD,SAAW,IAAI,IAKhB,KAAArzM,IAAc,IA2EtB,OA/DQ,YAAAC,IAAP,SAAWsN,EAAexN,EAAajL,EAAUkL,GAGhD,IAAIszM,EAAer0M,KAAKo0M,SAASziE,iBAAiBrjI,GAAO,WAAM,kBAG3D67B,EAAqB,CACxB,SAAW,IAAIzlB,MAAOG,UACtB,IAAO,IAAe9jB,GAAOA,EAAMf,KAAKe,IACxC,MAASlL,GAIVw+M,EAAankJ,OAAOpvD,EAAKqpC,IAWnB,YAAAjpC,IAAP,SAAWoN,EAAexN,EAAajL,GAEtC,QAFsC,IAAAA,WAAA,GAElCmK,KAAKo0M,SAASj2J,OAAO7vC,GAAQ,CAChC,IAAI+lM,EAAiDr0M,KAAKo0M,SAASl1J,OAAO5wC,GAE1E,GAAI+lM,EAAal2J,OAAOr9C,GAAM,CAC7B,IAAIwzM,EAAwCD,EAAan1J,OAAOp+C,GAIhE,OAHIwzM,EAAUvzM,KAASuzM,EAAUj+B,QAAUi+B,EAAUvzM,KAAO,IAAI2jB,MAAOG,YACtEyvL,EAAUC,SAAU,GAEjBD,EAAUC,SACbF,EAAa7lJ,UAAU1tD,GAChBjL,GAEDy+M,EAAUz+M,MAGjB,OAAOA,EAIR,OAAOA,GASF,YAAA0T,MAAP,SAAa+E,GACRA,EACHtO,KAAKo0M,SAAS5lJ,UAAUlgD,GAGxBtO,KAAKo0M,SAAS7qM,SAIjB,EArFA,K,6BC9DA,uDAKe,SAAS06J,EAAY9zG,GAClC,OAAIA,aAAgBrN,YACXqN,EAGFwzH,IAAS1f,YAAY9zG,K,uLCR9B,SAAS3oD,EAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,EAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,EAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,EAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASgzM,EAAWC,EAAIC,EAAIC,GAC1B,OAAIA,EACKF,EAAG,KAAOC,EAAG,GAGfD,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,G,ICXzC,E,umBAEA,IAAME,EAAW,CACfC,OADe,WAEfC,IAFe,QAIf17K,GAJe,OAKfwkD,EAAG,OAGL,SAASm3H,I,QACP,IAAIC,E,OACF,EAEFA,K,IACM/5J,EAAQlkC,4BAAd,M,IAEK,IAAL,OACMjW,EAFN,cAEE,IACEk0M,K,OAGJ,EAGF,SAASpW,I,OACAmW,IAAe,UACfA,IADe,sBAAtB,qBAKK,SAASE,I,OACPF,IAAoB,GAAL,OAAQA,IAAR,aAAtB,YAGK,SAASG,EAAsB/kJ,EAAMt6D,G,IACpC0M,EAAOq8L,IACb,IACEzuI,aACA,uBAAI5tD,IACF4tD,+BAKN,SAASglJ,EAAahlJ,EAAMt6D,G,IACpB0M,EAAO0yM,IACb,IACE9kJ,aACA,cAAI5tD,IACF4tD,sBA2BN,ICnEA,EDmEMilJ,EAAN,iBACMC,EAAN,mBCjEA,SAASC,EAAczS,G,IACf0S,EAAgB1S,QAAtB,QACAA,uBACAA,EAH2B,aAI3BA,kBAGF,SAAS2S,EAAI7yJ,EAAIpgD,EAAM+C,G,IACjBzP,EAAJ,E,GACA,WAAI,K,MAQJ,qBAAWA,GACT,kBAAWA,IACTA,EAAQ,GAAH,SAALA,YAEF8sD,eAGK8yJ,EAAkB9yJ,EAAzB,G,IAdO,IAAL,OACMpgD,iBAAJlG,IACEm5M,EAAI7yJ,EAAItmD,EAAGkG,EAAXizM,IA6DR,SAASE,EAAUh3K,EAAGrW,G,IAChB0gB,EAAMrK,EAAE,OAAD,OAAQrW,EAAM,IAAd,IAAX,WACMoxC,EAAS,SAAH,OAAYpxC,EAAM,MAA9B,Q,GACA,kBAAW0gB,EAAkB,C,IACrB5wC,EAAIumC,EADiB,SAI3B,kBADAqK,EAAM5wC,kBAAN4wC,MAGEA,EAAM5wC,OAAN4wC,I,OAGJA,EAGF,SAAS4sK,EAAcj3K,G,OACdg3K,EAAP,GAGF,SAASE,EAAal3K,G,OACbg3K,EAAUh3K,GAAjB,GAGF,SAASm3K,EAAUlzJ,G,IACX3lB,EAtER,SAA2B6lK,G,IACzB,EACA,EACA,EACMtyD,EAAMsyD,EAAZ,cACMl+L,EAAO4rI,EAAb,KACMulE,EAAUvlE,GAAOA,EANQ,gB,OAc/Bj2I,GANAy7M,EAAMlT,EARyB,yBAc/BvoM,KACAC,EAAIw7M,EAf2B,IAwCxB,CACLn9M,KAJF0B,GAAKw7M,cAAsBnxM,EAAtBmxM,YAALx7M,EAKE+tB,IAJF9tB,GAAKu7M,aAAqBnxM,EAArBmxM,WAALv7M,GAgCYy7M,CAAZ,GACMzlE,EAAM5tF,EAAZ,cACMjkB,EAAI6xG,eAAmBA,EAA7B,a,OACAvzG,QAAY24K,EAAZ34K,GACAA,OAAW44K,EAAX54K,GACA,EAOF,SAASi5K,EAAS9uM,G,OAGTA,mBAAgBA,GAAqBA,GAAOA,EAAnD,OAGF,SAAS+uM,EAAY/lJ,G,OACf8lJ,EAAJ,GACS9lJ,EAAP,SAEF,IAAIA,WACF,EAEKA,EAAP,cAiBF,IAAMgmJ,EAAgB,IAAIlzL,OAAO,KAAX,OAhJP,wCAAf,OAgJsB,mBAAtB,KACMmzL,EAAN,4BAGMr6H,EAAN,OA6CA,SAASs6H,EAAmB1lK,EAAKumB,G,MAC/B,SAAIvmB,EACKumB,sBAAP,EAEKA,wBAAP,EAGF,SAASo/I,GAAwB3lK,G,MAC/B,SAAIA,EACF,QACK,UAAIA,EACT,OACK,QAAIA,EACT,SACK,WAAIA,EACT,WADK,EAMT,SAAS4lK,GAAW1T,EAAM76J,EAAQkvB,GAEhC,WAAIs+I,EAAI3S,EAAJ2S,cACF3S,6B,IAEE2T,GAAJ,IACIC,GAAJ,IACMC,EAAqBL,EAAmB,OAA9C,GACMM,EAAmBN,EAAmB,MAA5C,GACMO,EAA6BN,GAAnC,GAGMO,EAA2BP,GAAjC,GAEA,SAAII,IACFF,OAGF,QAAIG,IACFF,O,IDzLkCtmJ,EC2LhC2mJ,EAAJ,GACMC,EAAiBlB,EAAvB,IACI,SAAU7tK,GAAU,QAAxB,KACE8uK,GD9LkC3mJ,EC8Lb6mJ,GD7LhB7mJ,0BAAiCA,QAAWyuI,MC6LjDkY,GACA5B,EAAsBrS,EAAtBqS,SAEE,SAAJ,IACErS,cACAA,8BAEE,QAAJ,IACEA,cACAA,8BAGFyS,K,IACM9oE,EAAMqpE,EAAZ,GACMN,EAAN,G,IACK,IAAL,O,GACMvtK,iBAAJ,GAAgC,C,IACxB2I,EAAM0lK,EAAmBv1M,EAA/B,GACMm2M,EAASn2M,aAAf,EACM6yG,EAAMojG,KAAsBvqE,EAAlC,GAEE+oE,KADE5kK,IAAJ,EACuBsmK,EAArB1B,EAEqB0B,EAArB1B,EAINC,EAAI3S,EAnDoC,GAqDxCyS,MACI,SAAUttK,GAAU,QAAxB,IACEktK,EAAsBrS,EAAtBqS,G,IAEInsK,EAAN,G,IACK,IAAL,O,GACMf,iBAAJ,GAAgC,C,IACxB2I,EAAM0lK,EAAmB,EAA/B,GACM1iG,EAAM3rE,KAAc+uK,EAA1B,GAEEhuK,KADEjoC,IAAJ,EACay0M,KAAXxsK,EAEWwsK,KAAXxsK,EAINysK,EAAI3S,EAAJ2S,GAGF,SAAS,GAAT,K,IACQuB,EAAiBlB,EAAvB,GACMqB,ED5OD,SAAwB/mJ,G,IACvBlV,EAAQnkC,0BAAd,MACM8lC,EACJ3B,iCACAA,mBAAuBg6J,K,GACrBr4J,GAAJ,SAAiBA,EAAsB,C,IAC/B2W,EAAS3W,kCAAf,K,MACO,CACLtiD,EAAGwuB,WAAWyqC,OAAcA,EAAf,GADR,GAELh5D,EAAGuuB,WAAWyqC,OAAcA,EAAf,O,MAGV,CACLj5D,EADK,EAELC,EAAG,GC8Nc48M,CAAnB,GACMC,EAAW,CAAE98M,EAAG48M,EAAL,EAAmB38M,EAAG28M,EAAW38M,GAC9C,SAAJ,IACE68M,IAAaF,IAAelvK,EAAfkvK,KAA6BH,EAA1CK,MAEE,QAAJ,IACEA,IAAaF,IAAelvK,EAAfkvK,IAA4BH,EAAzCK,KD7NG,SAAwBjnJ,EAAMknJ,G,IAC7Bp8J,EAAQnkC,0BAAd,MACM8lC,EACJ3B,iCACAA,mBAAuBg6J,K,GACrBr4J,GAAJ,SAAiBA,EAAsB,C,IACrC,EACI06J,EAAU16J,QAAd,G,GACA,GAEEpsC,GADA8mM,EAAUA,EAAVA,IACM,gBAAuB,SAAAntK,G,OACpBrhB,WAAWqhB,EAAlB,QAEF35B,GAAS6mM,EAAT7mM,EACAA,KAAS6mM,EAAT7mM,EACA2kM,EAAahlJ,EAAM,UAAP,OAAiB3/C,OAAjB,KAAZ2kM,WAGA3kM,EADgBosC,WAAhB,GACM,gBAAuB,SAAAzS,G,OACpBrhB,WAAWqhB,EAAlB,QAEF35B,IAAU6mM,EAAV7mM,EACAA,MAAU6mM,EAAV7mM,EACA2kM,EAAahlJ,EAAM,YAAP,OAAmB3/C,OAAnB,KAAZ2kM,WAGFA,EAAa,EAAD,qBAEIkC,EAFJ,4BAE0BA,EAF1B,EAAZlC,sBCqMFoC,CAAe1U,EAAf0U,GA6BF,SAASrwM,GAAKsJ,EAAKjC,G,IACZ,IAAIlS,EAAT,EAAgBA,EAAImU,EAApB,OAAgCnU,IAC9BkS,EAAGiC,EAAHjC,IAIJ,SAASipM,GAAc3U,G,MACrB,eAAO4S,EAAkB5S,EAAlB4S,aAhJT,qBAAW3+L,SACT2+L,EAAoB3+L,wBA1DtB,SAA2B+rL,EAAMtgM,EAAMomB,G,IACjC8uL,EAAJ,EACIrnL,EAAJ,GACMj4B,EAAI+9M,EAAV,G,OACAuB,EAAgBA,GAAiBt/M,iCAJQ,SAQvCi4B,EAAMqnL,uBAAwCA,EAA9CrnL,IAGF,GAUF,SAA6ByyK,EAAMtgM,G,IAG7BwmC,EAAM85J,EAAI,cAAmBA,EAAI,aAHE,G,GAenCsT,YAA4BC,OAAhC,GAAmD,C,IAE3Cn7J,EAAQ4nJ,EAAd,MACMjqM,EAAOqiD,EAAb,GACMy8J,EAAS7U,EAAI,aAJ8B,GAOjDA,EAAI,aAAJA,GAA4BA,EAAI,aAPiB,GAUjD5nJ,KAAc14C,qBAA8BwmC,GAA5CkS,EACAlS,EAAMkS,YA5BV,KA+BIA,OAEA4nJ,EAAI,aAAJA,K,MAEK95J,cAAPA,IAsJF,IAAM4uK,GAAa,CAAC,SAAU,SAA9B,WAMA,SAASl3J,GAAKoiJ,EAAMzmL,EAASxH,G,IAAU,EAC/B43H,EAAN,GACMvxF,EAAQ4nJ,EAAd,M,IAIA,OACMzmL,iBAAJ,KACEowH,KAAYvxF,EAAZuxF,GACAvxF,KAAc7+B,EAAd6+B,I,IAOJ,KAHArmC,OAbqC,GAgBrC,EACMwH,iBAAJ,KACE6+B,KAAcuxF,EAAdvxF,IAKN,SAAS28J,GAAY/U,EAAMtoL,EAAOouH,G,IAEhC,EACA,EACA,EAHI9yI,EAAJ,E,IAIKoqC,EAAL,EAAYA,EAAI1lB,EAAhB,OAA8B0lB,I,GAC5Bj4B,EAAOuS,EAAPvS,G,IAEO3L,EAAL,EAAYA,EAAIssI,EAAhB,OAA8BtsI,IAAK,C,IAC7Bw7M,OAAO,EAETA,EADF,WAAI7vM,EACQ,GAAH,iBAAa2gI,EAAb,GAAPkvE,SAEU7vM,EAAO2gI,EAAjBkvE,GAEFhiN,GAASizB,WAAW2sL,EAAkB5S,EAA7B/5K,KAATjzB,E,OAIN,EAGF,IAAMiiN,GAAW,CACfC,UADe,Y,IAET5qM,EAAJ,E,GAGIA,EADEA,iBAA0BA,EAA9B,KACWA,EAATA,KAESA,EAATA,iBAEKA,OAAUA,YANnB,IAM4CA,Y,OAC5C,IA0CJ,SAAS6qM,GAAMnV,EAAMtgM,EAAM2kB,G,IACrB41E,EAAJ,E,GACIm5G,EAAJ,G,MACS1zM,YACHu1M,iBADGv1M,GAEHu1M,kBAFJ,GAGK,OAAIjV,W,MACFtgM,YACHu1M,YADGv1M,GAEHu1M,aAFJ,G,IAIInvE,EAAQpmI,YAAmB,CAAC,OAApBA,SAAuC,CAAC,MAAtD,UACI01M,EACF11M,YACIsgM,0BADJtgM,MAEIsgM,0BAHN,OAKMqV,GADgBzC,EAAtB,GACoB+B,GAApB,IACIW,EAAJ,GAEEF,mBACAA,GACAA,GAHF,KAKEA,OADA,GAKEE,QAFFA,EAAc1C,EAAkB5S,EAAhCsV,UAEEA,IACAA,GACAriN,UAHF,KAKEqiN,EAActV,YAAdsV,GAGFA,EAAcrvL,eAAdqvL,QAEF,IAAIr7G,IACFA,EAAQo7G,EA1IZ,GAFsB,G,IA8IdE,OACJH,OADF,EAEM7nL,EAAM6nL,GAAZ,E,OAhJoB,IAiJhBn7G,EACF,EAEI1sE,EAAMwnL,GAAY/U,EAAM,CAAC,SAAR,WADnB,GAIF,EACSuV,EAtJb,IAuJQt7G,EACF,EAGA1sE,GA5JN,IA6JO0sE,GACI86G,GAAY/U,EAAM,CAAP,UADf/lG,GAEG86G,GAAY/U,EAAM,CAAP,UAJjB,IAQAsV,EACAP,GAAY/U,EAAM8U,SAAP,GAFb,GAnGFzwM,GAAK,CAAC,QAAF,WAAsB,SAAA3E,GACxBu1M,GAAS,MAAD,OAARA,IAAyB,SAAAO,G,IACjBlgN,EAAIkgN,EAAV,S,OACO9gN,SAGLY,kCAHKZ,IAKLY,uBALKZ,IAMLugN,GAAS,WAAD,OAARA,IANF,KAUFA,GAAS,WAAD,OAARA,IAA8B,SAAAQ,G,IAEtBtwM,EAAO,SAAH,OAAV,GACMuoI,EAAM+nE,EAAZ,SACM3zM,EAAO4rI,EAAb,KAEMgoE,EADkBhoE,EAAxB,gBALmC,G,MAUhCA,6BAAD,GACC5rI,GAAQA,EADT,IADF,MAmFJ,IAAM6zM,GAAU,CACd98M,SADc,WAEd49E,WAFc,SAGd+zE,QAAS,SAIX,SAASorD,K,2BAAsBlyM,EAAM,yBAANA,EAAM,gB,IACnC,EACMs8L,EAAOt8L,EAFsB,G,OAKnC,IAAIs8L,cACFzyK,EAAM4nL,gBAAN5nL,GAEAqwB,GAAKoiJ,EAAM2V,IAAS,WAClBpoL,EAAM4nL,gBAAN5nL,MAGJ,EA8BF,SAASsoL,GAAIxoL,EAAIC,G,IACV,IAAL,OACMA,iBAAJ9zB,KACE6zB,KAAQC,EAARD,I,OAGJ,EAjCFhpB,GAAK,CAAC,QAAF,WAAsB,SAAA3E,G,IAClByS,EAAQzS,0BAA+BA,QAA7C,GACAu1M,GAAS,QAAD,OAARA,IAA4B,c,OAExBn1J,GACA81J,GAAmB91J,EAAIpgD,EAAMo2M,EAjMnC,EADA,I,IAqMQhwE,EAAQpmI,YAAmB,CAAC,OAApBA,SAAuC,CAAC,MAAtD,UAEAu1M,MAAiB,c,IACX1nL,EAAJ,E,QACA,IAAIA,E,OAWGyyK,GAAQ4V,GAAmB5V,EAAMtgM,GAtNtB,G,GA4MhB,EAAU,CACckzM,EAAtB,G,OACoB+B,GAApB,KAEEpnL,GAAOwnL,GAAY/U,EAAM,CAAC,UAAR,UAAlBzyK,IAEKolL,EAAI3S,EAAMtgM,EAAjB,QAiBR,IAAMq2M,GAAQ,CACZC,UADY,Y,GAEN1oJ,GAAQA,EAARA,UAAyBA,EAA7B,W,OACE,E,IAEIogF,EAAMpgF,iBAAZ,E,OACOogF,eAAmBA,EAA1B,cAEF2lE,YARY,EASZluK,OATY,gB,GAUV,qBAAWnyC,E,OAGFggN,EAAP,IArRN,SAAmBhT,EAAM76J,EAAQkvB,G,GAC3BA,EAAJ,YAAwB,C,IAChB4hJ,EAAYjD,EAAlB,GAEMkD,EAAQD,eAAd,GACME,EAAOF,cAAb,GACMG,EAAQjxK,eAAd,GACMkxK,EAAOlxK,cAAb,G,GAEI+wK,OAAmBC,IAAvB,E,OAKE9hJ,eAAsBA,EAA1B,aACEq/I,GAAW1T,EAAM76J,EAAjBuuK,GAEAr/I,mBACA+9I,MAAsBl+L,cAFjB,MAILo+L,GAAatS,EAAbsS,GAEAoB,GAAW1T,EAAM76J,EAAjBuuK,GA6PE4C,CAAUx2J,EAAI9sD,EAAOqhE,GAArBiiJ,KAKJlD,SAhBY,EAiBZ/uM,KAjBY,GAkBZsuM,IAlBY,EAmBZ5sM,MAnBY,Y,IAoBV,EACMmgC,EAAN,G,IACA,OACM5hC,iBAAJ9K,KACE0sC,KAAS5hC,EAAT4hC,I,GAGa5hC,EAAjB,S,IAEE,OACMA,iBAAJ9K,KACE0sC,cAAkB5hC,WAAlB4hC,I,OAINA,GAEF2vK,IArCY,GAsCZU,oBAtCY,Y,OAuCHzD,EAAP,IAEF0D,mBAzCY,Y,OA0CHzD,EAAP,IAEFr3J,MA5CY,W,QA6CJxV,EAAN,GACS1sC,EAAT,EAAgBA,EAAI,UAApB,OAAiCA,IAC/Bu8M,SAAoBv8M,EAApBu8M,4C,OAEF7vK,GAEFuwK,cAnDY,EAoDZC,eAAgB,GAGlBb,GAAIE,GAAJF,I,IC5mBQX,GAAca,GAAdb,UAER,SAASyB,GAAgB9wL,G,GACnBkwL,gBAAJ,IAA+BlwL,W,OAC7B,K,IAmBF,EADM/jB,EADMi0M,eAAZ,GACA,KAEIa,EAAgBb,SAApB,Y,KACmBa,aAAnB,aAAgDA,G,MAGvC/wL,uCAEHqvL,GAFJ,G,IAMA5qM,EAAS4qM,GADX,GAEE5qM,GAAUA,IAAVA,GAFF,IAE+BA,WAC7BA,EAAS4qM,GAHX,G,GAME,YADA0B,EAAgBb,SAAhBa,a,OAEE,E,OAGJ,K,IC9CM1B,GAAca,GAAdb,UCKR,SAAS2B,GAAyBhxL,EAASixL,G,QACnCC,EAAc,CAClBhhN,KADkB,EAElBC,MAFkB,IAGlBwvB,IAHkB,EAIlBjsB,OAAQ8nB,KAENy+B,EAAK62J,GAAT,GACMjpE,EAAMqoE,eAAZ,GACMN,EAAM/nE,eAAmBA,EAA/B,aACM5rI,EAAO4rI,EAAb,KACMpqF,EAAkBoqF,EAXmC,gBAe3D,GAAW,C,IAGN9uD,yCAAD,IAA+C9+B,eAI9CA,OACCA,IADDA,GALH,YAOIi2J,sBAiBG,GAAIj2J,OAAeA,IAAnB,E,UAhBL,C,IACM3lB,EAAM47K,UADZ,GAGA57K,QAAY2lB,EAAZ3lB,WACAA,OAAW2lB,EAAX3lB,UACA48K,MAAkBriN,SAASqiN,EAATriN,IAA0BylC,EAA5C48K,KACAA,QAAoBriN,SAClBqiN,EADkBriN,MAGlBylC,OAAW2lB,EAHbi3J,aAKAA,SAAqBriN,SACnBqiN,EADmBriN,OAEnBylC,MAAU2lB,EAFZi3J,cAIAA,OAAmBriN,SAASqiN,EAATriN,KAA2BylC,EAA9C48K,MAIFj3J,EAAK62J,GAAL72J,G,IAMEsb,EAAJ,KACK26I,YAAD,IAAJ,IAAgClwL,aAC9Bu1C,EAAmBv1C,QAAnBu1C,SAEA,aADiB26I,SAAjB,cAEElwL,2B,IAIEmxL,EAAUjB,uBAAhB,GACMkB,EAAUlB,sBAAhB,GACMU,EAAgBV,iBAAtB,GACMW,EAAiBX,kBAAvB,GACImB,EAAgB5zJ,EAApB,YACI6zJ,EAAiB7zJ,EAhEsC,aAoErD8zJ,EAAYnjM,wBAAlB,G,GACA,WAAImjM,cACFF,EAAgBzB,EAAhByB,YAEF,WAAIE,cACFD,EAAiB1B,EAAjB0B,aAIEtxL,EAAJ,QACEA,oBAGEixL,GDpFS,SAAyBjxL,G,GAClCkwL,gBAAJ,IAA+BlwL,W,OAC7B,E,IAII/jB,EADMi0M,eAAZ,GACA,KACIzrM,EAAJ,K,IAEEA,EAAS4qM,GADX,GAEE5qM,GAAUA,IAFZ,EAGEA,EAAS4qM,GAHX,GAIE,C,GAEA,UADsBa,SAAtB,Y,OAEE,E,OAGJ,ECkEwBsB,CAAxB,GAEEN,OAAmBriN,SAASqiN,EAATriN,KAAnBqiN,GACAA,MAAkBriN,SAASqiN,EAATriN,IAAlBqiN,GACAA,QAAoBriN,SAASqiN,EAATriN,MAA4BsiN,EAAhDD,GACAA,SAAqBriN,SAASqiN,EAATriN,OAA6BuiN,EAAlDF,OACK,C,IAECO,EAAkB5iN,WAAwBsiN,EAAhD,GACAD,QAAoBriN,SAASqiN,EAATriN,MAApBqiN,G,IAEMQ,EAAmB7iN,WAAyBuiN,EAAlD,GACAF,SAAqBriN,SAASqiN,EAATriN,OAArBqiN,G,OAGKA,UACLA,QADKA,GAELA,SAAqBA,EAFhBA,KAGLA,QAAoBA,EAHfA,OAAP,KCrGF,SAASS,GAAUlqJ,G,IACjB,EACA,EACA,E,GACKyoJ,YAAD,IAAJ,IAA6BzoJ,WAItB,C,IACCmoJ,EAAMM,aAAZ,GACA5wK,EAAS,CACPpvC,KAAMggN,uBADC,GAEPvwL,IAAKuwL,0BAEPl6K,EAAIk6K,iBAAJl6K,GACAxF,EAAI0/K,kBAAJ1/K,QAVA8O,EAAS4wK,UAAT5wK,GACAtJ,EAAIk6K,cAAJl6K,GACAxF,EAAI0/K,eAAJ1/K,G,OAUF8O,UACAA,WACA,ECjBF,SAASsyK,GAAeC,EAAQ94I,G,IACxByc,EAAIzc,SAAV,GACM8b,EAAI9b,SAAV,GACM/iC,EAAI67K,EAAV,MACMrhL,EAAIqhL,EAAV,OAEIjgN,EAAIigN,EAAR,KACIhgN,EAAIggN,EAAR,I,MAEA,MAAIr8H,EACF3jF,GAAK2+B,EAAL3+B,EACK,MAAI2jF,IACT3jF,MAGF,MAAIgjF,EACFjjF,GAAKokC,EAALpkC,EACK,MAAIijF,IACTjjF,MAGK,CACL1B,KADK,EAELyvB,IAAK9tB,GCzBT,SAASigN,GAAeC,EAAUC,EAAex+M,EAAQ8rC,EAAQ4pJ,G,IACzDp0L,EAAK88M,GAAeI,EAAex+M,EAAzC,IACMuB,EAAK68M,GAAeG,EAAUv+M,EAApC,IACMgpB,EAAO,CAACznB,OAAUD,EAAX,KAAoBC,MAASD,EAA1C,K,MAEO,CACL5E,KAAMrB,WAAWkjN,OAAgBv1L,EAAhBu1L,GAA0BzyK,EAA1ByyK,GAAsC7oB,EADlD,IAELvpK,IAAK9wB,WAAWkjN,MAAev1L,EAAfu1L,GAAyBzyK,EAAzByyK,GAAqC7oB,EAAhDr6L,KCIT,SAASojN,GAAQC,EAAaH,EAAUb,G,OAEpCgB,OAAmBhB,EAAnBgB,MACAA,OAAmBH,EAAnBG,MAAoChB,EAFtC,MAMF,SAASiB,GAAQD,EAAaH,EAAUb,G,OAEpCgB,MAAkBhB,EAAlBgB,KACAA,MAAkBH,EAAlBG,OAAoChB,EAFtC,OAoBF,SAASkB,GAAK5+M,EAAQm9D,EAAKnuC,G,IACnB6d,EAAN,G,OACA6vK,WAAmB,SAAA/1M,GACjBkmC,OACElmC,EAAA,WAAe,SAAA+C,G,OACNslB,EAAP,UAIN6d,EAGF,SAASgyK,GAAW/yK,EAAQrgC,G,OAC1BqgC,MAAiBA,EAAjBA,GACA,EAGF,SAASgzK,GAAch5L,EAAKi5L,G,OAEtB,KAAKhwL,KAAT,GACO8N,SAAS/W,cAAiBA,SAAlB,GAAR+W,IAAD,IAAJx1B,EAEIw1B,SAAS/W,EAAbze,MAEF,EAGF,SAAS23M,GAAgBlzK,EAAQ2a,GAC/B3a,KAAYgzK,GAAchzK,EAAD,GAAY2a,EAArC3a,OACAA,KAAYgzK,GAAchzK,EAAD,GAAY2a,EAArC3a,QAQF,SAASmzK,GAAQx4J,EAAIy4J,EAAW35I,EAAO45I,G,IACjCn/M,EAASulE,EAAb,OACIz5B,EAASy5B,UAAgB,CAAC,EAA9B,GACImwH,EAAenwH,gBAAsB,CAAC,EAA1C,GACIlzC,EAAWkzC,EAAf,SACM3gD,EAAS2gD,UAAf,EACAz5B,EAAS,GAAG9hC,OAAZ8hC,GACA4pJ,EAAe,GAAG1rL,OAAlB0rL,G,IAEM0pB,EAAN,GACIC,EAAJ,EAGM3B,EAAcF,GAAyB54L,MAL7CyN,EAAWA,GAAXA,MAGwCA,EAXiB,mBAenDksL,EAAWJ,GAfwC,GAiBzDa,GAAgBlzK,EAAhBkzK,GACAA,GAAgBtpB,EAlByC,G,IAoBrDgpB,EAAcJ,GAAe,EAAD,MApByB,GA4BrDgB,EAAc5C,WA5BuC,G,GAgCvDgB,IACCrrL,WAAoBA,EADrBqrL,UADF,EAIE,C,GACIrrL,EAAJ,SAEMosL,GAAQC,EAAaH,EAAzB,GAAiD,C,IAEzCxoI,EAAY6oI,GAAK5+M,EAAQ,SAAU,CACvC4V,EADuC,IAEvChM,EAAG,MAGC21M,EAAYV,GAAW/yK,EAA7B,GACM0zK,EAAkBX,GAAWnpB,EAAnC,IAjGR,SAAyBgpB,EAAaH,EAAUb,G,OAE5CgB,OAAmBhB,EAAnBgB,OACAA,OAAmBH,EAAnBG,MAAoChB,EAFtC,MAyGW+B,CARkBnB,GAAe,EAAD,MAArC,GAQqCC,EAArC,KACEc,IACAr/M,IACA8rC,IACA4pJ,K,GAKFrjK,EAAJ,SAEMssL,GAAQD,EAAaH,EAAzB,GAAiD,C,IAEzCxoI,EAAY6oI,GAAK5+M,EAAQ,SAAU,CACvCoH,EADuC,IAEvCb,EAAG,MAGCg5M,EAAYV,GAAW/yK,EAA7B,GACM0zK,EAAkBX,GAAWnpB,EAAnC,IAtHR,SAAyBgpB,EAAaH,EAAUb,G,OAE5CgB,MAAkBhB,EAAlBgB,QACAA,MAAkBH,EAAlBG,OAAoChB,EAFtC,KA8HWgC,CARkBpB,GAAe,EAAD,MAArC,GAQoB,EAApB,KACEe,IACAr/M,IACA8rC,IACA4pJ,KAMN,IACEgpB,EAAcJ,GAAe,EAAD,MAA5BI,GAOAhC,a,IAEIiD,EAAelB,GAAQC,EAAaH,EAA1C,GACMqB,EAAejB,GAAQD,EAAaH,EArE1C,G,GAwEIoB,GAAJ,EAAkC,C,IAC5B5pI,EAD4B,EAIhC,IACEA,EAAY6oI,GAAK5+M,EAAQ,SAAU,CACjC4V,EADiC,IAEjChM,EAAG,OAGP,IACEmsE,EAAY6oI,GAAK5+M,EAAQ,SAAU,CACjCoH,EADiC,IAEjCb,EAAG,OAIPvG,IAEA8rC,EAASy5B,UAAgB,CAAC,EAA1Bz5B,GACA4pJ,EAAenwH,gBAAsB,CAAC,EAAtCmwH,GAGF0pB,UAAyB/sL,WAAzB+sL,EACAA,UAAyB/sL,WAhGzB,GAmGI+sL,WAA0BA,EAA9B,WACEE,ECnNN,SAA2BZ,EAAaH,EAAUb,EAAarrL,G,IACvDyO,EAAM47K,SAAZ,GACMxgI,EAAO,CACX97E,MAAOm+M,EADI,MAEXl+M,OAAQk+M,EAASl+M,Q,OAGfgyB,WAAoByO,OAAW48K,EAAnC,OACE58K,OAAW48K,EAAX58K,MAKAzO,eACAyO,QAAY48K,EADZrrL,MAEAyO,OAAWo7C,EAAXp7C,MAAwB48K,EAH1B,QAKExhI,SAAcp7C,OAAWo7C,EAAXp7C,MAAwB48K,EAAtCxhI,OAIE7pD,WAAoByO,OAAWo7C,EAAXp7C,MAAwB48K,EAAhD,QAEE58K,OAAWzlC,SAASqiN,QAAoBxhI,EAA7B7gF,MAAyCqiN,EAApD58K,OAIEzO,WAAoByO,MAAU48K,EAAlC,MACE58K,MAAU48K,EAAV58K,KAKAzO,gBACAyO,OAAW48K,EADXrrL,KAEAyO,MAAUo7C,EAAVp7C,OAAwB48K,EAH1B,SAKExhI,UAAep7C,MAAUo7C,EAAVp7C,OAAwB48K,EAAvCxhI,QAIE7pD,WAAoByO,MAAUo7C,EAAVp7C,OAAwB48K,EAAhD,SAEE58K,MAAUzlC,SAASqiN,SAAqBxhI,EAA9B7gF,OAA2CqiN,EAArD58K,MAGK47K,SAAP,GDqKkBmD,CAAkB,EAAD,IAA/BP,I,OAUAA,UAAsBf,EAA1B,OACE7B,iBAGEA,YAAsB4C,EAAtB5C,MAA0C6B,EAH5C7B,OAOE4C,WAAuBf,EAA3B,QACE7B,kBAGEA,aAAuB4C,EAAvB5C,OAA4C6B,EAH9C7B,QAUFA,YAEE,CACEhgN,KAAM4iN,EADR,KAEEnzL,IAAKmzL,EAAYnzL,KAEnB,CACE2zL,YAAav6I,EADf,YAEEw6I,aAAcx6I,EAFhB,aAGEy6I,gBAAiBz6I,EAHnB,gBAIEq1H,YAAar1H,EAAMq1H,cAIhB,CACL56L,OADK,EAEL8rC,OAFK,EAGL4pJ,aAHK,EAILrjK,SAAU+sL,GElPd,SAASa,GAAax5J,EAAIy5J,EAAS36I,G,IAC3BjgE,EAASigE,UAAf,E,OAQO05I,GAAQx4J,EAPO03J,GAAtB,GAOkC54I,GAtBpC,SAA4BjgE,EAAQm4M,G,IAC5BC,EAAcF,GAAyBl4M,EAA7C,GACM66M,EAAehC,GAArB,G,OAGGT,GACDyC,OAAoBA,EAApBA,OAA0CzC,EAD1C,MAEAyC,MAAmBA,EAAnBA,QAA0CzC,EAF1C,KAGAyC,QAAqBzC,EAHrB,OAIAyC,OAAoBzC,EALtB,OAaiC0C,CAAmB,EAElD76I,YAAkBA,WAFpB,mBCdF,SAAS,GAAT,O,IACE,EACA,EAEM8uE,EAAMqoE,eAAZ,GACMN,EAAM/nE,eAAmBA,EAA/B,aAEMspE,EAAUjB,uBAAhB,GACMkB,EAAUlB,sBAAhB,GACMU,EAAgBV,iBAAtB,GACMW,EAAiBX,kBAAvB,GAGE2D,EADE,UAAJ,EACUC,EAARD,MAEQ1C,EAAU2C,EAAlBD,QAIAE,EADE,UAAJ,EACUD,EAARC,MAEQ3C,EAAU0C,EAAlBC,Q,IAUIC,EACJH,MACAA,GAAS1C,EADT0C,GAECE,MAAcA,GAAS3C,EAlCa,E,OAuChCqB,GAAQx4J,EAfG,CAChB/pD,KADgB,EAEhByvB,IAFgB,EAGhB/rB,MAHgB,EAIhBC,OAAQ,G,+UAWoB,CAAhB,MAA4BL,OAF3B,CAACulE,SAAD,GAAf,QAEA,GDjBF06I,wBAEAA,iC,cETO,SAASQ,GAAcj0L,EAAS9T,GACrC,IAAIitD,EAAY,KACZC,EAAa,KAwBjB,IAAIwhG,EAAiB,IAAIY,MAtBzB,SAAkBhuJ,GAChB,IAGIutJ,EAHQlzJ,YAAe2F,EAAM,GACd,GAAG1U,OAEa4mB,wBAC/B9rB,EAAQmnK,EAAsBnnK,MAC9BC,EAASknK,EAAsBlnK,OAE/BqnK,EAAarsK,KAAKU,MAAMqE,GACxBunK,EAActsK,KAAKU,MAAMsE,GAEzBslE,IAAc+hG,GAAc9hG,IAAe+hG,GAC7CjvJ,EAAS,CACPtY,MAAOsnK,EACPrnK,OAAQsnK,IAIZhiG,EAAY+hG,EACZ9hG,EAAa+hG,KASf,OAJIn7I,GACF46I,EAAe1oG,QAAQlyC,GAGlB,WACL46I,EAAea,cC1CnB,SAASzhH,GAAW/vB,GAClB,MAAoB,oBAATA,EAA4B,KAChCA,IAGT,SAASw9E,GAASj1G,GAChB,MAAuB,WAAnB2+C,YAAQ3+C,IAAwBA,EAC7BA,EAD2C,KAIpD,IAsII0hN,GAAWnoM,IAAMkF,YAtIT,SAAezD,EAAMsF,GAC/B,IAAIpF,EAAWF,EAAKE,SAChB+zC,EAAWj0C,EAAKi0C,SAChB3oD,EAAS0U,EAAK1U,OACdigE,EAAQvrD,EAAKurD,MACbo7I,EAAU3mM,EAAK2mM,QACfC,EAAsB5mM,EAAK4mM,oBAC3BC,EAAwB7mM,EAAK8mM,kBAC7BA,OAA8C,IAA1BD,EAAmC,EAAIA,EAC3DE,EAAWxoM,IAAM6G,OAAO,IACxB4hM,EAAUzoM,IAAM6G,SAChB8qH,EAAY3xH,IAAMi2I,SAASyyD,KAAK/mM,GAGhCgnM,EAAqB3oM,IAAM6G,OAAO,IACtC8hM,EAAmBllM,QAAQiyC,SAAWA,EACtCizJ,EAAmBllM,QAAQ1W,OAASA,EACpC47M,EAAmBllM,QAAQ2kM,QAAUA,EAErC,IAAIQ,EC1CU,SAAUzoM,EAAU65K,GAClC,IAAI6uB,EAAY7oM,IAAM6G,QAAO,GACzBiiM,EAAa9oM,IAAM6G,OAAO,MAE9B,SAASkiM,IACP1mM,OAAO8iE,aAAa2jI,EAAWrlM,SAwBjC,MAAO,CArBP,SAAS0gK,EAAQ36C,GACf,GAAKq/E,EAAUplM,UAAqB,IAAV+lH,EAYxBu/E,IACAD,EAAWrlM,QAAUpB,OAAO6nD,YAAW,WACrC2+I,EAAUplM,SAAU,EACpB0gK,MACC6V,OAhBqC,CACxC,IAAmB,IAAf75K,IAEF,OAGF0oM,EAAUplM,SAAU,EACpBslM,IACAD,EAAWrlM,QAAUpB,OAAO6nD,YAAW,WACrC2+I,EAAUplM,SAAU,IACnBu2K,KAUU,WACf6uB,EAAUplM,SAAU,EACpBslM,MDWeC,EAAU,WACzB,IAAIC,EAAwBN,EAAmBllM,QAC3CylM,EAAiBD,EAAsBvzJ,SACvCyzJ,EAAeF,EAAsBl8M,OAEzC,IAAKm8M,GAAkBC,EAAc,CACnC,IACIr5M,EADAuc,EAASo8L,EAAQhlM,QAEjBwQ,EAAUg6B,GAAWk7J,GACrB1iN,EAAQi1G,GAASytG,GACrBX,EAAS/kM,QAAQwQ,QAAUA,EAC3Bu0L,EAAS/kM,QAAQhd,MAAQA,EAGzB,IACIouK,EADYvyJ,SACcuyJ,cAc9B,OAZI5gJ,EACFnkB,EAAS43M,GAAar7L,EAAQ4H,EAAS+4C,GAC9BvmE,IACTqJ,EAASs5M,GAAW/8L,EAAQ5lB,EAAOumE,ID9CpC,SAAsB6nG,EAAe5vF,GAEtC4vF,IAAkBvyJ,SAASuyJ,eAAiB/wH,YAASmhC,EAAW4vF,IAAiD,oBAAxBA,EAAc5lH,OACzG4lH,EAAc5lH,QC8CZo6J,CAAax0C,EAAexoJ,GAExB+7L,GACFA,EAAQ/7L,EAAQvc,IAGX,EAGT,OAAO,IACNy4M,GACCe,EAAcxtM,YAAe8sM,EAAY,GACzCW,EAAcD,EAAY,GAC1BE,EAAmBF,EAAY,GAI/BG,EAAgBzpM,IAAM6G,OAAO,CAC/BopI,OAAQ,eAGNy5D,EAAsB1pM,IAAM6G,OAAO,CACrCopI,OAAQ,eAEVjwI,IAAMiC,WAAU,WACd,IDxFwBxd,EAAMkL,ECwF1BskB,EAAUg6B,GAAWlhD,GACrBtG,EAAQi1G,GAAS3uG,GAEjB07M,EAAQhlM,UAAYimM,EAAoBjmM,QAAQwQ,UAClDy1L,EAAoBjmM,QAAQwsI,SAC5By5D,EAAoBjmM,QAAQwQ,QAAUw0L,EAAQhlM,QAC9CimM,EAAoBjmM,QAAQwsI,OAASi4D,GAAcO,EAAQhlM,QAAS8lM,IAGlEf,EAAS/kM,QAAQwQ,UAAYA,KDjGTxvB,ECiGiC+jN,EAAS/kM,QAAQhd,UDjG5CkJ,ECiGmDlJ,ID/F9EhC,GAASkL,IAEV,UAAWA,GAAQ,UAAWA,EACzBlL,EAAKqjN,QAAUn4M,EAAKm4M,OAASrjN,EAAKujN,QAAUr4M,EAAKq4M,MAGtD,YAAar4M,GAAQ,YAAaA,GAC7BlL,EAAKu2I,UAAYrrI,EAAKqrI,SAAWv2I,EAAKw2I,UAAYtrI,EAAKsrI,YCyF5DsuE,IAGIE,EAAchmM,QAAQwQ,UAAYA,IACpCw1L,EAAchmM,QAAQwsI,SACtBw5D,EAAchmM,QAAQwQ,QAAUA,EAChCw1L,EAAchmM,QAAQwsI,OAASi4D,GAAcj0L,EAASs1L,QAK5DvpM,IAAMiC,WAAU,WACTyzC,EAGH8zJ,IAFAD,MAID,CAAC7zJ,IAEJ,IAAIi0J,EAAe3pM,IAAM6G,OAAO,MAmChC,OAlCA7G,IAAMiC,WAAU,WACVomM,EACGsB,EAAalmM,UAChBkmM,EAAalmM,QAAU9X,YAAiB0W,OAAQ,SAAUknM,IAEnDI,EAAalmM,UACtBkmM,EAAalmM,QAAQuT,SACrB2yL,EAAalmM,QAAU,QAExB,CAAC4kM,IAEJroM,IAAMiC,WAAU,WACd,OAAO,WACLwnM,EAAchmM,QAAQwsI,SACtBy5D,EAAoBjmM,QAAQwsI,SACxB05D,EAAalmM,SAASkmM,EAAalmM,QAAQuT,SAC/CwyL,OAED,IAEHxpM,IAAMk/K,oBAAoBn4K,GAAK,WAC7B,MAAO,CACL6iM,WAAY,WACV,OAAOL,GAAY,QAKrBvpM,IAAMgiI,eAAerQ,KACvBA,EAAY3xH,IAAMmiI,aAAaxQ,EAAW,CACxC5qH,IAAK6oJ,YAAWj+B,EAAU5qH,IAAK0hM,MAI5B92E,KAITw2E,GAAS3iM,YAAc,QACR2iM,IE9JA0B,GF8JA1B,G,UGhIX2B,GAAgB9pM,IAAMkF,YA7BT,SAAoBY,EAAOiB,GAC1C,IAAI2pH,EAAY5qH,EAAM4qH,UAClBpqF,EAAYxgC,EAAMwgC,UAClB8Q,EAAUtxC,EAAMsxC,QAChB5Q,EAAQ1gC,EAAM0gC,MACd7kC,EAAWmE,EAAMnE,SACjB2tL,EAAexpL,EAAMwpL,aACrBE,EAAe1pL,EAAM0pL,aACrBua,EAAcjkM,EAAMikM,YACpBC,EAAelkM,EAAMkkM,aACrBr4E,EAAYhwH,EAQhB,OANI3B,IAAMi2I,SAASvsJ,MAAMiY,GAAY,IACnCgwH,EAAY3xH,IAAMmC,cAAc,MAAO,CACrCmkC,UAAW,GAAG70C,OAAOi/H,EAAW,aAC/B/uH,IAGE3B,IAAMmC,cAAc,MAAO,CAChC4E,IAAKA,EACLu/B,UAAW9qC,IAAW8qC,GAAY8Q,GAAW,GAAG3lD,OAAOqU,EAAMmkM,kBAC7D3a,aAAcA,EACdE,aAAcA,EACdua,YAAaA,EACbC,aAAcA,EACdxjK,MAAOA,GACNmrF,MAILm4E,GAActkM,YAAc,aACbskM,UClCR,SAAS5X,GAAUzwL,GACxB,IAAIivH,EAAYjvH,EAAKivH,UACjBghE,EAASjwL,EAAKiwL,OACd3vI,EAAYtgD,EAAKsgD,UACjBmsH,EAAiBzsK,EAAKysK,eAE1B,OAAIwjB,IAIA3vI,EACK,CACL4lI,WAAY,GAAGl2L,OAAOi/H,EAAW,KAAKj/H,OAAOswD,IAI7CmsH,EACK,CACLyZ,WAAYzZ,GAIT,MCdT,SAASn7K,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAE9U,SAASizC,GAAch5C,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAE7gB,SAASw4C,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAaxY,IAAI83L,GAAYsiB,KAEhB,SAASC,GAAczY,GACrB,OAAOA,GAAUA,EAAO/J,WAG1B,IA4WeyiB,GA5WU,SAAUC,GACjCzkK,YAAUwkK,EAAOC,GAEjB,IAAI36E,EAASnqF,GAAa6kK,GAE1B,SAASA,IACP,IAAI3vM,EAuOJ,OArOA0d,YAAgB5sB,KAAM6+M,IAEtB3vM,EAAQi1H,EAAO1gI,MAAMzD,KAAMwD,YACrBqE,MAAQ,CACZk3M,iBAAaryM,EACbsyM,kBAActyM,EACdygJ,OAAQ,KACR8xD,YAAa,KACbC,eAAgB,MAElBhwM,EAAMiwM,SAAW1qM,IAAM2qM,YACvBlwM,EAAMmwM,SAAW5qM,IAAM2qM,YACvBlwM,EAAMowM,eAAiB,KACvBpwM,EAAMqwM,YAAc,KAEpBrwM,EAAM2tM,QAAU,SAAU2C,EAAc/9I,GACtC,IAAI0rF,EAASj+I,EAAMrH,MAAMslJ,OACrB1oB,EAAcv1H,EAAMqL,MACpBklM,EAAwBh7E,EAAYg7E,sBACpC5C,EAAUp4E,EAAYo4E,QACtBqC,EAAiBO,EAAsBh+I,GAE5B,UAAX0rF,EACFj+I,EAAMu9C,SAAS,CACbyyJ,eAAgBA,EAChB/xD,OAAQ,YACP,WACDj+I,EAAMmwM,SAASnnM,QAAQmmM,gBAEL,YAAXlxD,GACTj+I,EAAMu9C,SAAS,CACbyyJ,eAAgBA,EAChB/xD,OAAQ,eAGV0vD,EAAQ2C,EAAc/9I,IAEtBvyD,EAAMu9C,SAAS,CACbyyJ,eAAgBA,KAKtBhwM,EAAMmuL,YAAc,WAClB,IAAIxxI,EAAU38C,EAAMqL,MAAMsxC,QAE1B38C,EAAMu9C,SAAS,CACb0gG,OAAQthG,EAAU,cAAgB,YAItC38C,EAAMwwM,oBAAsB,SAAU73M,GACpCqH,EAAMywM,mBAENzwM,EAAMowM,eAAiB9kK,GAAcA,GAAc,GAAItrC,EAAMowM,gBAAiBz3M,GAC9EqH,EAAMqwM,YAAcj7D,KAAI,WACtB,IAAIs7D,EAAcplK,GAAc,GAAItrC,EAAMowM,gBAE1CpwM,EAAMowM,eAAiB,KAEvBpwM,EAAMu9C,SAASmzJ,OAInB1wM,EAAMy3L,UAAY,WAChB,OAAOnsJ,GAAc,GAAImsJ,GAAUz3L,EAAMqL,SAK3CrL,EAAM2wM,eAAiB,WACrB,IAAIj3C,EAAe15J,EAAMqL,MACrBrf,EAAQ0tK,EAAa1tK,MACrB4kN,EAAiBl3C,EAAak3C,eAElC,OAAI5kN,GAIG4kN,GAGT5wM,EAAMywM,iBAAmB,WACvBr7D,IAAII,OAAOx1I,EAAMqwM,cAGnBrwM,EAAM6wM,mBAAqB,WACzB,IAAIh3C,EAAc75J,EAAMrH,MACpBslJ,EAAS4b,EAAY5b,OACrB6xD,EAAej2C,EAAYi2C,aAC3BD,EAAch2C,EAAYg2C,YAC1BG,EAAiBn2C,EAAYm2C,eAC7BvmC,EAAezpK,EAAMqL,MACrB4qH,EAAYwzC,EAAaxzC,UACzBpqF,EAAY49H,EAAa59H,UACzBE,EAAQ09H,EAAa19H,MACrB+kK,EAAUrnC,EAAaqnC,QACvBn0J,EAAU8sH,EAAa9sH,QACvB4V,EAAQk3G,EAAal3G,MACrBqzH,EAAqBnc,EAAamc,mBAClCiP,EAAeprB,EAAaorB,aAC5BE,EAAetrB,EAAasrB,aAC5Bua,EAAc7lC,EAAa6lC,YAC3BC,EAAe9lC,EAAa8lC,aAC5BroM,EAAWuiK,EAAaviK,SACxBkxL,EAAkBr3L,IAAWk1H,EAAWpqF,EAAWmkK,GACnDR,EAAkB,GAAGx4M,OAAOi/H,EAAW,WAEvC86E,EAAY,GAEZD,KAEiC,IAA/BA,EAAQlpN,QAAQ,UAClBmpN,EAAU1jN,OAASyiN,GACwB,IAAlCgB,EAAQlpN,QAAQ,eACzBmpN,EAAUl9I,UAAYi8I,IAGU,IAA9BgB,EAAQlpN,QAAQ,SAClBmpN,EAAU3jN,MAAQyiN,GACwB,IAAjCiB,EAAQlpN,QAAQ,cACzBmpN,EAAUn9I,SAAWi8I,IAIzB,IAAImB,EAAc1lK,GAAcA,GAAcA,GAAcA,GAAc,GAAIylK,GAAY/wM,EAAMixM,kBAAmBllK,GAAQ,GAAI,CAC7H0V,QAAoB,WAAXw8F,GAAwBthG,EAAsB,OAAZn/C,IAIzC06L,EAAel4L,EAAMy3L,YAErByZ,EAAsBv0J,EAEtBA,GAAsB,iBAAXshG,GAAwC,WAAXA,GAAkC,WAAXA,IACjEi6C,EAAatK,cAAe,EAC5BsK,EAAarK,aAAc,EAC3BqK,EAAapK,aAAc,GAGd,eAAX7vC,GAAsC,iBAAXA,IAC7BizD,GAAsB,GAIxB,IAAIC,GAAuBx0J,GAAsB,UAAXshG,GAAiC,YAAXA,GAAmC,WAAXA,EAEhFmzD,GAAqB,EAOzB,MALe,WAAXnzD,IACFmzD,EAAqBz0J,GAInBipI,IAAuBwrB,EAClB,KAGF7rM,IAAMmC,cAAcylL,GAAW35L,OAAOW,OAAO,CAClDwoD,QAASu0J,GACRhZ,EAAc,CACf3I,eAAe,EACfhB,WAAYvuL,EAAMmuL,YAClBK,WAAYxuL,EAAMmuL,eAChB,SAAUnnL,EAAMqqM,GAClB,IAAIC,EAActqM,EAAK+kC,MACnBwlK,EAAkBvqM,EAAK6kC,UAC3B,OAAOtmC,IAAMmC,cAAc0nM,GAAO,CAChC98M,OAAQ0N,EAAM2wM,iBACd/+M,IAAK,QACL0a,IAAKtM,EAAMmwM,SACXvC,qBAAqB,EACrB3yJ,SAAUk2J,EACV5+I,MAAOA,EACPo7I,QAAS3tM,EAAM2tM,SACdpoM,IAAMmC,cAAc8pM,GAAY,CACjCv7E,UAAWA,EACXt5E,QAASy0J,EACT5B,gBAAiBA,EACjB3jK,UAAW9qC,IAAWq3L,EAAiBmZ,GACvCjlM,IAAK6oJ,YAAWk8C,EAAWrxM,EAAMiwM,UACjCpb,aAAcA,EACdE,aAAcA,EACdua,YAAaA,EACbC,aAAcA,EACdxjK,MAAOT,GAAcA,GAAc,GAAI0lK,GAAcM,IACpDpqM,QAIPlH,EAAMyxM,kBAAoB,WACxB,IAAItc,EAAen1L,EAAMqL,MACrBq3C,EAAOyyI,EAAazyI,KACpBgvJ,EAAavc,EAAauc,WAC1BC,EAAqBxc,EAAawc,mBAClCC,EAAgBzc,EAAayc,cAC7B37E,EAAYk/D,EAAal/D,UACzBt5E,EAAUw4I,EAAax4I,QAE3B,IAAK+F,EACH,OAAO,KAGT,IAAIu0I,EAAS,GAab,OAXIya,GAAcA,EAAWxkB,aAC3B+J,EAAS3rJ,GAAc,CACrBsiJ,cAAc,GACb6J,GAAU,CACXR,OAAQya,EACRz7E,UAAWA,EACXw9C,eAAgBk+B,EAChBrqJ,UAAWsqJ,MAIRrsM,IAAMmC,cAAcylL,GAAW35L,OAAOW,OAAO,GAAI8iM,EAAQ,CAC9Dt6I,QAASA,EACT4yI,eAAe,KACb,SAAU1lL,GACZ,IAAIgiC,EAAYhiC,EAAMgiC,UACtB,OAAOtmC,IAAMmC,cAAc,MAAO,CAChCqkC,MAAO/rC,EAAMixM,iBACbr/M,IAAK,OACLi6C,UAAW9qC,IAAW,GAAG/J,OAAOi/H,EAAW,SAAUpqF,SAKpD7rC,EA4HT,OAzHAiqC,YAAa0lK,EAAO,CAAC,CACnB/9M,IAAK,oBACLjL,MAAO,WACLmK,KAAK+mM,uBAEN,CACDjmM,IAAK,qBACLjL,MAAO,WACL,IAAIs3J,EAASntJ,KAAK6H,MAAMslJ,OACpBq3C,EAAexkM,KAAKua,MACpBulM,EAAiBtb,EAAasb,eAC9Bj0J,EAAU24I,EAAa34I,QACvBm0J,EAAUxb,EAAawb,QAI3B,GAFAhgN,KAAK2/M,mBAED9zJ,GAAsB,WAAXshG,EACb,OAAQA,GACN,KAAK,KAEDntJ,KAAK0/M,oBAAoB,CACvBvyD,OAAQ6yD,EAAU,UAAY,UAEhC,MAGJ,IAAK,aAEDhgN,KAAK0/M,oBAAoB,CACvBvyD,OAAQyxD,GAAc5+M,KAAK2mM,aAAe,eAAiB,WAE7D,MAGJ,IAAK,cAED3mM,KAAK0/M,oBAAoB,CACvBvyD,OAAQ,WAEV,MAGJ,QAGI,IAAIptJ,EAAQ,CAAC,UAAW,QAAS,KAAM,eAAgB,UACnD4H,EAAQ5H,EAAMjJ,QAAQq2J,GACtB4zD,EAAahhN,EAAM4H,EAAQ,IAEhB,IAAXA,GAAgBo5M,GAClB/gN,KAAK0/M,oBAAoB,CACvBvyD,OAAQ4zD,IAQpB,GAAe,YAAX5zD,EAAsB,CACxB,IAAI8vC,EAAO6iB,IAEP7iB,GACFj9L,KAAK0/M,oBAAoB,CACvBV,aAAc/hB,EAAKt5B,aACnBo7C,YAAa9hB,EAAKv5B,iBAKzB,CACD5iK,IAAK,uBACLjL,MAAO,WACLmK,KAAK2/M,qBAEN,CACD7+M,IAAK,iBACLjL,MAAO,WAEL,MAAO,CACLqzE,OAFWlpE,KAAKua,MAAM2uD,UAKzB,CACDpoE,IAAK,SACLjL,MAAO,WACL,OAAO4e,IAAMmC,cAAc,MAAO,KAAM5W,KAAK2gN,oBAAqB3gN,KAAK+/M,yBAEvE,CAAC,CACHj/M,IAAK,2BACLjL,MAAO,SAAkCgqB,EAAOm6J,GAC9C,IAAInuH,EAAUhsC,EAAMgsC,QAChBtxC,EAAQ4gC,YAAyBt7B,EAAO,CAAC,YAEzCo/L,EAAcjlC,EAAMilC,YACpB9xD,EAAS6sB,EAAM7sB,OACfic,EAAW,CACb61C,YAAapzJ,EACbshG,OAAQA,GAENi6C,EAAeT,GAAUpsL,GAiB7B,OAfoB,OAAhB0kM,IAAoC,IAAZpzJ,EAE1Bu9G,EAASjc,OAAS,SACTthG,IAAYozJ,IACjBpzJ,GAAW+yJ,GAAcxX,IAAiB,CAAC,SAAU,cAAe,UAAUvvB,SAAS1qB,GACzFic,EAASjc,OAAS,KAElBic,EAASjc,OAAS,SAGhBthG,IACFu9G,EAAS81C,eAAiB,OAIvB91C,MAIJy1C,EAzWgB,CA0WvBpkI,aCvYaumI,GADMvsM,IAAMC,cAAc,MCOzC,SAASlN,GAAQlF,EAAQ+E,GAAkB,IAAIE,EAAO7E,OAAO6E,KAAKjF,GAAS,GAAII,OAAOuL,sBAAuB,CAAE,IAAI8e,EAAUrqB,OAAOuL,sBAAsB3L,GAAa+E,IAAgB0lB,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOvqB,OAAOoG,yBAAyBxG,EAAQ2qB,GAAKlkB,eAAgBxB,EAAK/I,KAAKiF,MAAM8D,EAAMwlB,GAAY,OAAOxlB,EAI9U,SAASyyC,GAAaC,GAAW,IAAI+pF,EAErC,WAAuC,GAAuB,qBAAZl3H,UAA4BA,QAAQ6sC,UAAW,OAAO,EAAO,GAAI7sC,QAAQ6sC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVlsC,MAAsB,OAAO,EAAM,IAAiF,OAA3EgX,KAAKxhB,UAAUlN,SAASC,KAAK6W,QAAQ6sC,UAAUj1B,KAAM,IAAI,iBAAyB,EAAQ,MAAOrgB,GAAK,OAAO,GAFzPq1C,GAA6B,OAAO,WAAc,IAAsCn1C,EAAlC21C,EAAQT,YAAgBQ,GAAkB,GAAI+pF,EAA2B,CAAE,IAAI7pF,EAAYV,YAAgBz5C,MAAMiD,YAAasB,EAASuI,QAAQ6sC,UAAUO,EAAO12C,UAAW22C,QAAqB51C,EAAS21C,EAAMz2C,MAAMzD,KAAMwD,WAAc,OAAOs2C,YAA2B95C,KAAMuE,IAgBxY,SAAS4/K,MAET,SAAS88B,KACP,MAAO,GAGT,SAASC,KACP,OAAOpqM,OAAOC,SAGhB,IAAIoqM,GAAe,CAAC,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,SAAU,iBAosBpGC,IA/rBR,SAAyBC,GAC9B,IAAIptB,EAAuB,SAAU/vD,GACnC7pF,YAAU45I,EAAS/vD,GAEnB,IAAIC,EAASnqF,GAAai6I,GAE1B,SAASA,EAAQ15K,GACf,IAAIrL,EAqSA2kL,EAiBJ,OApTAjnK,YAAgB5sB,KAAMi0L,IAEtB/kL,EAAQi1H,EAAOluI,KAAK+J,KAAMua,IACpB4kM,SAAW1qM,IAAM2qM,YACvBlwM,EAAMoyM,WAAa7sM,IAAM2qM,YAEzBlwM,EAAM60L,aAAe,SAAU1/L,GAC7B,IAAIuuL,EAAkB1jL,EAAMqL,MAAMq4K,gBAElC1jL,EAAMqyM,WAAW,eAAgBl9M,GAEjC6K,EAAMsyM,sBAAqB,EAAM5uB,EAAiBA,EAAkB,KAAOvuL,IAG7E6K,EAAMuyM,YAAc,SAAUp9M,GAC5B6K,EAAMqyM,WAAW,cAAel9M,GAEhC6K,EAAMwyM,SAASr9M,IAGjB6K,EAAM+0L,aAAe,SAAU5/L,GAC7B6K,EAAMqyM,WAAW,eAAgBl9M,GAEjC6K,EAAMsyM,sBAAqB,EAAOtyM,EAAMqL,MAAMu4K,kBAGhD5jL,EAAMyyM,kBAAoB,WACxBzyM,EAAM0yM,mBAGR1yM,EAAM2yM,kBAAoB,SAAUx9M,GAG9BA,EAAEokI,gBAAkBpkI,EAAEokI,cAAc9pE,YAAczvD,EAAMiwM,SAASjnM,SAAWhJ,EAAMiwM,SAASjnM,QAAQinM,SAASjnM,SAAWqgC,YAASrpC,EAAMiwM,SAASjnM,QAAQinM,SAASjnM,QAAS7T,EAAEokI,gBAI/Kv5H,EAAMsyM,sBAAqB,EAAOtyM,EAAMqL,MAAMu4K,kBAGhD5jL,EAAM04J,QAAU,SAAUvjK,GACxB6K,EAAMqyM,WAAW,UAAWl9M,GAG5B6K,EAAM0yM,kBAEF1yM,EAAM4yM,kBACR5yM,EAAM6yM,UAAYr9L,KAAK+e,MAEvBv0B,EAAMsyM,sBAAqB,EAAMtyM,EAAMqL,MAAMynM,cAIjD9yM,EAAMsvM,YAAc,SAAUn6M,GAC5B6K,EAAMqyM,WAAW,cAAel9M,GAEhC6K,EAAM+yM,aAAev9L,KAAK+e,OAG5Bv0B,EAAMuvM,aAAe,SAAUp6M,GAC7B6K,EAAMqyM,WAAW,eAAgBl9M,GAEjC6K,EAAMgzM,aAAex9L,KAAK+e,OAG5Bv0B,EAAM64J,OAAS,SAAU1jK,GACvB6K,EAAMqyM,WAAW,SAAUl9M,GAE3B6K,EAAM0yM,kBAEF1yM,EAAMizM,gBACRjzM,EAAMsyM,sBAAqB,EAAOtyM,EAAMqL,MAAM6nM,YAIlDlzM,EAAMmzM,cAAgB,SAAUh+M,GAC9BA,EAAE46H,iBAEF/vH,EAAMqyM,WAAW,gBAAiBl9M,GAElC6K,EAAMozM,iBAAgB,EAAMj+M,IAG9B6K,EAAMqzM,mBAAqB,WACrBrzM,EAAMszM,uBACRtzM,EAAM+0F,SAIV/0F,EAAM8rC,QAAU,SAAUmJ,GAIxB,GAHAj1C,EAAMqyM,WAAW,UAAWp9J,GAGxBj1C,EAAM6yM,UAAW,CACnB,IAAIU,EAUJ,GARIvzM,EAAM+yM,cAAgB/yM,EAAMgzM,aAC9BO,EAAUlrN,KAAKK,IAAIsX,EAAM+yM,aAAc/yM,EAAMgzM,cACpChzM,EAAM+yM,aACfQ,EAAUvzM,EAAM+yM,aACP/yM,EAAMgzM,eACfO,EAAUvzM,EAAMgzM,cAGd3qN,KAAK6B,IAAIqpN,EAAUvzM,EAAM6yM,WAAa,GACxC,OAGF7yM,EAAM6yM,UAAY,EAGpB7yM,EAAM+yM,aAAe,EACrB/yM,EAAMgzM,aAAe,EAIjBhzM,EAAMwzM,kBAAoBxzM,EAAMyzM,iBAAmBzzM,EAAMizM,iBAAmBh+J,GAASA,EAAM86E,gBAC7F96E,EAAM86E,iBAGR,IAAI2jF,GAAe1zM,EAAMrH,MAAMgsL,cAE3B3kL,EAAMyzM,kBAAoBC,GAAeA,GAAe1zM,EAAMwzM,kBAChExzM,EAAMozM,iBAAiBpzM,EAAMrH,MAAMgsL,aAAc1vI,IAIrDj1C,EAAM2zM,iBAAmB,WAQrB,IAAI5pC,GAPN/pK,EAAM4zM,mBAAoB,EAC1BlpI,aAAa1qE,EAAM6zM,kBACnB7zM,EAAM6zM,iBAAmBjsM,OAAO6nD,YAAW,WACzCzvD,EAAM4zM,mBAAoB,IACzB,GAEC5zM,EAAMiH,WAGP8iK,EAAgB/pK,EAAMiH,SAAS0sM,iBAAiBp/M,MAAMw1K,EAAez1K,YAI1E0L,EAAM8zM,gBAAkB,SAAU7+J,GAChC,IAAIj1C,EAAMqL,MAAMq3C,MAAS1iD,EAAMqL,MAAM0oM,aAArC,CAIA,IAAIzhN,EAAS2iD,EAAM3iD,OAEfgjD,EAAOt1C,EAAM4wM,iBAEboD,EAAYh0M,EAAMi0M,kBAEjB5qK,YAASiM,EAAMhjD,IAAY+2C,YAAS2qK,EAAW1hN,IAAY0N,EAAM4zM,mBACpE5zM,EAAM+0F,UAIV/0F,EAAM4wM,eAAiB,WACrB,IAAIsD,EAAoBl0M,EAAMqL,MAAM6oM,kBAEpC,GAAIA,EACF,OAAOA,EAAkBl0M,EAAMoyM,WAAWppM,SAG5C,IACE,IAAIw/K,EAAUzzB,YAAY/0J,EAAMoyM,WAAWppM,SAE3C,GAAIw/K,EACF,OAAOA,EAET,MAAO3mL,IAGT,OAAO4yK,IAAS1f,YAAY99J,YAAuB+I,KAGrDA,EAAMm0M,2BAA6B,SAAU5hJ,GAC3C,IAAI1mB,EAAY,GACZ0pF,EAAcv1H,EAAMqL,MACpBg6K,EAAiB9vD,EAAY8vD,eAC7BD,EAAoB7vD,EAAY6vD,kBAChCnvD,EAAYV,EAAYU,UACxB04E,EAAap5E,EAAYo5E,WACzBwF,EAA6B5+E,EAAY4+E,2BAU7C,OARI9uB,GAAkBD,GACpBv5I,EAAUv8C,KrB5Nb,SAAgC81L,EAAmBnvD,EAAW1jE,EAAOkzI,GAI1E,IAHA,IAAIz4M,EAASulE,EAAMvlE,OACf21L,EAAanvL,OAAO6E,KAAK+sL,GAEpBj4L,EAAI,EAAGA,EAAIw1L,EAAW11L,OAAQE,GAAK,EAAG,CAC7C,IAAI+2L,EAAYvB,EAAWx1L,GAE3B,GAAIm4M,EAAWlgB,EAAkBlB,GAAWl3L,OAAQA,EAAQy4M,GAC1D,MAAO,GAAGzuM,OAAOi/H,EAAW,eAAej/H,OAAOktL,GAItD,MAAO,GqBgNgBkwB,CAAuBhvB,EAAmBnvD,EAAW1jE,EAAOo8I,IAGzEwF,GACFtoK,EAAUv8C,KAAK6kN,EAA2B5hJ,IAGrC1mB,EAAUt0C,KAAK,MAGxByI,EAAMq0M,aAAe,WACnB,IAAI36C,EAAe15J,EAAMqL,MACrB4qH,EAAYyjC,EAAazjC,UACzB2vD,EAAqBlsB,EAAaksB,mBAClCZ,EAAiBtrB,EAAasrB,eAC9BuD,EAAe7uB,EAAa6uB,aAC5B+rB,EAAc56C,EAAa46C,YAC3B5uB,EAAiBhsB,EAAagsB,eAC9BD,EAAsB/rB,EAAa+rB,oBACnCI,EAAansB,EAAamsB,WAC1BnjI,EAAOg3G,EAAah3G,KACpBkvJ,EAAgBl4C,EAAak4C,cAC7BD,EAAqBj4C,EAAai4C,mBAClCD,EAAah4C,EAAag4C,WAC1B13I,EAAS0/F,EAAa1/F,OACtBirH,EAAQvrB,EAAaurB,MACrB6rB,EAAUp3C,EAAao3C,QACvBnC,EAAaj1C,EAAai1C,WAC1B90C,EAAc75J,EAAMrH,MACpBgsL,EAAe9qB,EAAY8qB,aAC3B34L,EAAQ6tK,EAAY7tK,MAEpBumE,EAAQvyD,EAAMu0M,gBAEdC,EAAa,GAYjB,OAVIx0M,EAAMy0M,uBACRD,EAAW3f,aAAe70L,EAAMyyM,mBAG9BzyM,EAAM00M,uBACRF,EAAWzf,aAAe/0L,EAAM2yM,mBAGlC6B,EAAWlF,YAActvM,EAAM2zM,iBAC/Ba,EAAWjF,aAAevvM,EAAM2zM,iBACzBpuM,IAAMmC,cAAcioM,GAAOn8M,OAAOW,OAAO,CAC9C8hI,UAAWA,EACX2vD,mBAAoBA,EACpBjpI,QAASgoI,EACT34L,MAAO2iN,GAAc3iN,EACrB6/C,UAAWm5I,EACXzyH,MAAOA,EACPo7I,QAASplB,EACTjhI,UAAWo+H,EACX6qB,sBAAuBvwM,EAAMm0M,4BAC5BK,EAAY,CACb1D,QAASA,EACTF,eAAgB5wM,EAAM4wM,eACtB7kK,MAAO85I,EACPnjI,KAAMA,EACNsX,OAAQA,EACRy5G,eAAgBgS,EAChBmsB,cAAeA,EACfD,mBAAoBA,EACpBD,WAAYA,EACZplM,IAAKtM,EAAMiwM,SACXhZ,OAAQqd,IACW,oBAAVrvB,EAAuBA,IAAUA,IAG9CjlL,EAAM20M,aAAe,WACnB,IACItpM,EADwBpU,YAAuB+I,GACjBqL,MAE9BupM,EAAiB/sM,SAASH,cAAc,OAS5C,OANAktM,EAAe7oK,MAAMv/C,SAAW,WAChCooN,EAAe7oK,MAAM5yB,IAAM,IAC3By7L,EAAe7oK,MAAMriD,KAAO,IAC5BkrN,EAAe7oK,MAAM3+C,MAAQ,QACbie,EAAMmrH,kBAAoBnrH,EAAMmrH,kBAAkBx2H,EAAM4wM,kBAAoBvlM,EAAM27L,cAAcvxM,MACtG8+C,YAAYqgK,GACfA,GAGT50M,EAAMwyM,SAAW,SAAUxmN,GACRgU,EAAMqL,MAAMsjM,YACT3iN,GAEpBgU,EAAMu9C,SAAS,CACbvxD,MAAO,CACLqhN,MAAOrhN,EAAMqhN,MACbE,MAAOvhN,EAAMuhN,UAKnBvtM,EAAM60M,mBAAqB,WACrB70M,EAAMrH,MAAMm8M,mBAAqB90M,EAAMrH,MAAMgsL,cAC/C3kL,EAAMqL,MAAMm6K,wBAAwBxlL,EAAMrH,MAAMgsL,eAOlDA,EADE,iBAAkBt5K,IACHA,EAAMs5K,eAENt5K,EAAMs6K,oBAGzB3lL,EAAMrH,MAAQ,CACZm8M,iBAAkBnwB,EAClBA,aAAcA,GAEhBstB,GAAa15M,SAAQ,SAAUyxB,GAC7BhqB,EAAM,OAAOhJ,OAAOgzB,IAAM,SAAU70B,GAClC6K,EAAMqyM,WAAWroL,EAAG70B,OAGjB6K,EAqWT,OAlWAiqC,YAAa86I,EAAS,CAAC,CACrBnzL,IAAK,oBACLjL,MAAO,WACLmK,KAAK+mM,uBAEN,CACDjmM,IAAK,qBACLjL,MAAO,WACL,IAOMouN,EAPF1pM,EAAQva,KAAKua,MAMjB,GALYva,KAAK6H,MAKPgsL,aAyBR,OAtBK7zL,KAAKkkN,sBAAwBlkN,KAAK2iN,kBAAmB3iN,KAAKwiN,wBAC7DyB,EAAkB1pM,EAAM27L,cACxBl2M,KAAKkkN,oBAAsB9jN,YAAiB6jN,EAAiB,YAAajkN,KAAKgjN,kBAI5EhjN,KAAKmkN,sBACRF,EAAkBA,GAAmB1pM,EAAM27L,cAC3Cl2M,KAAKmkN,oBAAsB/jN,YAAiB6jN,EAAiB,aAAcjkN,KAAKgjN,mBAI7EhjN,KAAKokN,4BAA8BpkN,KAAKwiN,wBAC3CyB,EAAkBA,GAAmB1pM,EAAM27L,cAC3Cl2M,KAAKokN,2BAA6BhkN,YAAiB6jN,EAAiB,SAAUjkN,KAAKuiN,2BAIhFviN,KAAKqkN,4BAA8BrkN,KAAKwiN,wBAC3CxiN,KAAKqkN,2BAA6BjkN,YAAiB0W,OAAQ,OAAQ9W,KAAKuiN,sBAM5EviN,KAAKskN,wBAEN,CACDxjN,IAAK,uBACLjL,MAAO,WACLmK,KAAK4hN,kBACL5hN,KAAKskN,sBACL1qI,aAAa55E,KAAK+iN,oBAEnB,CACDjiN,IAAK,kBACLjL,MAAO,WAEL,OAAImK,KAAKm/M,SAASjnM,SAAWlY,KAAKm/M,SAASjnM,QAAQinM,SAASjnM,QACnDlY,KAAKm/M,SAASjnM,QAAQinM,SAASjnM,QAGjC,OAER,CACDpX,IAAK,gBACLjL,MAAO,WACL,IAAI0kB,EAAQva,KAAKua,MACbg6K,EAAiBh6K,EAAMg6K,eACvBC,EAAaj6K,EAAMi6K,WACnBF,EAAoB/5K,EAAM+5K,kBAE9B,OAAIC,GAAkBD,ErBlavB,SAA+BA,EAAmBiwB,EAAc9iJ,GAErE,OAAOjnB,EAAcA,EAAc,GADnB85I,EAAkBiwB,IAAiB,IACA9iJ,GqBiapC+iJ,CAAsBlwB,EAAmBC,EAAgBC,GAG3DA,IAOR,CACD1zL,IAAK,kBACLjL,MAAO,SAAyBg+L,EAAc1vI,GAC5C,IAAI05J,EAAa79M,KAAKua,MAAMsjM,WACxBmG,EAAmBhkN,KAAK6H,MAAMgsL,aAClC7zL,KAAK4hN,kBAEDoC,IAAqBnwB,IACjB,iBAAkB7zL,KAAKua,OAC3Bva,KAAKysD,SAAS,CACZonI,aAAcA,EACdmwB,iBAAkBA,IAItBhkN,KAAKua,MAAMk6K,qBAAqBZ,IAI9BgqB,GAAc15J,GAChBnkD,KAAK0hN,SAASv9J,KAGjB,CACDrjD,IAAK,uBACLjL,MAAO,SAA8Bg2D,EAAS44J,EAAQtgK,GACpD,IAAI30C,EAASxP,KAETs0E,EAAiB,IAATmwI,EAGZ,GAFAzkN,KAAK4hN,kBAEDttI,EAAO,CACT,IAAIp5E,EAAQipD,EAAQ,CAClBo4J,MAAOp4J,EAAMo4J,MACbE,MAAOt4J,EAAMs4J,OACX,KACJz8M,KAAK0kN,WAAa5tM,OAAO6nD,YAAW,WAClCnvD,EAAO8yM,gBAAgBz2J,EAAS3wD,GAEhCsU,EAAOoyM,oBACNttI,QAEHt0E,KAAKsiN,gBAAgBz2J,EAAS1H,KAGjC,CACDrjD,IAAK,kBACLjL,MAAO,WACDmK,KAAK0kN,aACP9qI,aAAa55E,KAAK0kN,YAClB1kN,KAAK0kN,WAAa,QAGrB,CACD5jN,IAAK,sBACLjL,MAAO,WACDmK,KAAKkkN,sBACPlkN,KAAKkkN,oBAAoBz4L,SACzBzrB,KAAKkkN,oBAAsB,MAGzBlkN,KAAKokN,6BACPpkN,KAAKokN,2BAA2B34L,SAChCzrB,KAAKokN,2BAA6B,MAGhCpkN,KAAKqkN,6BACPrkN,KAAKqkN,2BAA2B54L,SAChCzrB,KAAKqkN,2BAA6B,MAGhCrkN,KAAKmkN,sBACPnkN,KAAKmkN,oBAAoB14L,SACzBzrB,KAAKmkN,oBAAsB,QAG9B,CACDrjN,IAAK,kBACLjL,MAAO,SAAyBsuD,GAC9B,IAAIwgK,EAAY3kN,KAAKua,MAAMnE,SAASmE,MAChCA,EAAQva,KAAKua,MAEjB,OAAIoqM,EAAUxgK,IAAU5pC,EAAM4pC,GACrBnkD,KAAK,OAAOkG,OAAOi+C,IAGrBwgK,EAAUxgK,IAAU5pC,EAAM4pC,KAElC,CACDrjD,IAAK,gBACLjL,MAAO,WACL,IAAI8iL,EAAe34K,KAAKua,MACpBnD,EAASuhK,EAAavhK,OACtBwtM,EAAajsC,EAAaisC,WAC9B,OAAoC,IAA7BxtM,EAAOtgB,QAAQ,WAAoD,IAAjC8tN,EAAW9tN,QAAQ,WAE7D,CACDgK,IAAK,sBACLjL,MAAO,WACL,IAAIwuM,EAAerkM,KAAKua,MACpBnD,EAASitL,EAAajtL,OACtBwtM,EAAavgB,EAAaugB,WAC9B,OAA0C,IAAnCxtM,EAAOtgB,QAAQ,iBAAgE,IAAvC8tN,EAAW9tN,QAAQ,iBAEnE,CACDgK,IAAK,gBACLjL,MAAO,WACL,IAAI2uM,EAAexkM,KAAKua,MACpBnD,EAASotL,EAAaptL,OACtBytM,EAAargB,EAAaqgB,WAC9B,OAAoC,IAA7BztM,EAAOtgB,QAAQ,WAAoD,IAAjC+tN,EAAW/tN,QAAQ,WAE7D,CACDgK,IAAK,qBACLjL,MAAO,WACL,IAAIgxM,EAAe7mM,KAAKua,MACpBnD,EAASyvL,EAAazvL,OACtBwtM,EAAa/d,EAAa+d,WAC9B,OAAoC,IAA7BxtM,EAAOtgB,QAAQ,WAAyD,IAAtC8tN,EAAW9tN,QAAQ,gBAE7D,CACDgK,IAAK,qBACLjL,MAAO,WACL,IAAImxM,EAAehnM,KAAKua,MACpBnD,EAAS4vL,EAAa5vL,OACtBytM,EAAa7d,EAAa6d,WAC9B,OAAoC,IAA7BztM,EAAOtgB,QAAQ,WAAyD,IAAtC+tN,EAAW/tN,QAAQ,gBAE7D,CACDgK,IAAK,gBACLjL,MAAO,WACL,IAAIqxM,EAAelnM,KAAKua,MACpBnD,EAAS8vL,EAAa9vL,OACtBwtM,EAAa1d,EAAa0d,WAC9B,OAAoC,IAA7BxtM,EAAOtgB,QAAQ,WAAoD,IAAjC8tN,EAAW9tN,QAAQ,WAE7D,CACDgK,IAAK,eACLjL,MAAO,WACL,IAAIivN,EAAe9kN,KAAKua,MACpBnD,EAAS0tM,EAAa1tM,OACtBytM,EAAaC,EAAaD,WAC9B,OAAoC,IAA7BztM,EAAOtgB,QAAQ,WAAmD,IAAhC+tN,EAAW/tN,QAAQ,UAE7D,CACDgK,IAAK,kBACLjL,MAAO,WACDmK,KAAK6H,MAAMgsL,cAAgB7zL,KAAKm/M,SAASjnM,SAAWlY,KAAKm/M,SAASjnM,QAAQmnM,SAASnnM,SACrFlY,KAAKm/M,SAASjnM,QAAQmnM,SAASnnM,QAAQmmM,eAG1C,CACDv9M,IAAK,aACLjL,MAAO,SAAoB0L,EAAM8C,GAC/B,IAAI0gN,EAAgB/kN,KAAKua,MAAMnE,SAASmE,MAAMhZ,GAE1CwjN,GACFA,EAAc1gN,GAGhB,IAAIuQ,EAAW5U,KAAKua,MAAMhZ,GAEtBqT,GACFA,EAASvQ,KAGZ,CACDvD,IAAK,QACLjL,MAAO,WACLmK,KAAKsiN,iBAAgB,KAEtB,CACDxhN,IAAK,SACLjL,MAAO,WACL,IAAIg+L,EAAe7zL,KAAK6H,MAAMgsL,aAC1BmxB,EAAgBhlN,KAAKua,MACrBnE,EAAW4uM,EAAc5uM,SACzB4xL,EAAcgd,EAAchd,YAC5B6V,EAAamH,EAAcnH,WAC3B9iK,EAAYiqK,EAAcjqK,UAC1Bg5I,EAAcixB,EAAcjxB,YAC5BplI,EAAQl6C,IAAMi2I,SAASyyD,KAAK/mM,GAC5BsC,EAAgB,CAClB5X,IAAK,WAGHd,KAAKwiN,sBACP9pM,EAAc2pM,cAAgBriN,KAAKqiN,cAEnC3pM,EAAc2pM,cAAgBriN,KAAKilN,gBAAgB,iBAGjDjlN,KAAK2iN,iBAAmB3iN,KAAK0iN,iBAC/BhqM,EAAcsiC,QAAUh7C,KAAKg7C,QAC7BtiC,EAAc8lM,YAAcx+M,KAAKw+M,YACjC9lM,EAAc+lM,aAAez+M,KAAKy+M,eAElC/lM,EAAcsiC,QAAUh7C,KAAKilN,gBAAgB,WAC7CvsM,EAAc8lM,YAAcx+M,KAAKilN,gBAAgB,eACjDvsM,EAAc+lM,aAAez+M,KAAKilN,gBAAgB,iBAGhDjlN,KAAK2jN,sBACPjrM,EAAcqrL,aAAe/jM,KAAK+jM,aAE9B8Z,IACFnlM,EAAc+oM,YAAczhN,KAAKyhN,cAGnC/oM,EAAcqrL,aAAe/jM,KAAKilN,gBAAgB,gBAGhDjlN,KAAK4jN,qBACPlrM,EAAcurL,aAAejkM,KAAKikM,aAElCvrL,EAAcurL,aAAejkM,KAAKilN,gBAAgB,gBAGhDjlN,KAAK8hN,iBAAmB9hN,KAAKmiN,gBAC/BzpM,EAAckvJ,QAAU5nK,KAAK4nK,QAC7BlvJ,EAAcqvJ,OAAS/nK,KAAK+nK,SAE5BrvJ,EAAckvJ,QAAU5nK,KAAKilN,gBAAgB,WAC7CvsM,EAAcqvJ,OAAS/nK,KAAKilN,gBAAgB,WAG9C,IAAIC,EAAoBj1M,IAAW0+C,GAASA,EAAMp0C,OAASo0C,EAAMp0C,MAAMwgC,UAAWA,GAE9EmqK,IACFxsM,EAAcqiC,UAAYmqK,GAG5B,IAAIC,EAzpBZ,SAAuB3jN,GAAU,IAAK,IAAInF,EAAI,EAAGA,EAAImH,UAAUrH,OAAQE,IAAK,CAAE,IAAIykB,EAAyB,MAAhBtd,UAAUnH,GAAamH,UAAUnH,GAAK,GAAQA,EAAI,EAAKmL,GAAQ9E,OAAOoe,IAAS,GAAMrZ,SAAQ,SAAU3G,GAAO6rB,YAAgBnrB,EAAQV,EAAKggB,EAAOhgB,OAAsB4B,OAAOyqB,0BAA6BzqB,OAAO0qB,iBAAiB5rB,EAAQkB,OAAOyqB,0BAA0BrM,IAAmBtZ,GAAQ9E,OAAOoe,IAASrZ,SAAQ,SAAU3G,GAAO4B,OAAOsG,eAAexH,EAAQV,EAAK4B,OAAOoG,yBAAyBgY,EAAQhgB,OAAe,OAAOU,EAypBpfg5C,CAAc,GAAI9hC,GAE/B0rJ,YAAWz1G,KACbw2J,EAAW3pM,IAAM6oJ,YAAWrkK,KAAKshN,WAAY3yJ,EAAMnzC,MAGrD,IACI4pM,EADAxsC,EAAUnkK,IAAMmiI,aAAajoF,EAAOw2J,GAexC,OAZItxB,GAAgB7zL,KAAKm/M,SAASjnM,SAAW8vL,KAC3Cod,EAAS3wM,IAAMmC,cAAcyqM,EAAiB,CAC5CvgN,IAAK,SACL+iN,aAAc7jN,KAAK6jN,aACnBwB,UAAWrlN,KAAK+jN,oBACf/jN,KAAKujN,kBAGL1vB,GAAgBE,IACnBqxB,EAAS,MAGJ3wM,IAAMmC,cAAcoqM,GAAe/qM,SAAU,CAClDpgB,MAAO,CACLgtN,iBAAkB7iN,KAAK6iN,mBAExBjqC,EAASwsC,MAEZ,CAAC,CACHtkN,IAAK,2BACLjL,MAAO,SAAkCqgB,EAAMiqL,GAC7C,IAAItM,EAAe39K,EAAK29K,aACpBzqB,EAAW,GAOf,YALqB18J,IAAjBmnL,GAA8BsM,EAAUtM,eAAiBA,IAC3DzqB,EAASyqB,aAAeA,EACxBzqB,EAAS46C,iBAAmB7jB,EAAUtM,cAGjCzqB,MAIJ6qB,EAjqBkB,CAkqBzBx/K,IAAMgmE,WA0BR,OAxBAw5G,EAAQpiC,YAAcmvD,GACtB/sB,EAAQrvD,aAAe,CACrBO,UAAW,mBACXk+E,2BAA4BpC,GAC5B/K,YAAagL,GACbzsB,qBAAsBtQ,GACtBuQ,wBAAyBvQ,GACzBsT,aAActT,GACd+P,eAAgB,GAChBtB,gBAAiB,EACjBE,gBAAiB,GACjBkvB,WAAY,EACZI,UAAW,IACXrtB,WAAY,GACZD,oBAAoB,EACpBN,WAAY,GACZK,qBAAqB,EACrBjjI,MAAM,EACNqxJ,cAAc,EACd7rM,OAAQ,GACRwtM,WAAY,GACZC,WAAY,GACZ9wB,aAAa,GAERE,EAEMmtB,CAAgBkE,M,iBC1uB/B,iBAKA,SAAuBC,GACvBA,EAAK3uK,QAAU,SACf,IAAI4uK,EAAmB,KAAMC,EAAe,KAGrB,qBAAZC,UACY,qBAAXthE,EAAwBA,EAAOshE,QAAU/vN,EAAQ,KACjC,qBAAXmhB,SAAwBA,OAAO4uM,QAAU/vN,EAAQ,OAKlE,IADA,IAAIgwN,EAAa,CAAE,IAAK,IAAK,IAAK,IAAK,KAC/BtpN,EAAI,EAAGA,GAAK,IAAKA,EAAGspN,EAAWnnN,KAAK,KAAOnC,GAEnD,IAAIupN,EAAS,CACbC,EAAM,KACNC,EAAK,MACLC,EAAK,MACLC,GAAK,IACLC,IAAO,IACPC,IAAO,IACPC,IAAM,KACNC,IAAO,IACPC,IAAO,IACPC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAO,IACPC,IAAM,KACNC,IAAM,KACNC,GAAM,MAGFC,EAAW,SAAS95F,IAAoC,GAA3Bw4F,EAAW7uN,QAAQq2H,KAAmBs4F,EAAeG,EAAM,GAAKz4F,IAG7F+5F,EAAS,SAAS/5F,GAAMq4F,EAAmBr4F,EAAI85F,EAAS95F,IAC5D,SAASg6F,IAAaD,EAAO,MAHLD,EAAS,MAKjC,SAASG,EAAW/lN,GAAoB,IAAZ,IAAIsE,EAAI,GAAYtJ,EAAI,EAAGgV,EAAMhQ,EAAKlF,OAAQE,EAAIgV,IAAOhV,EAAGsJ,EAAEtJ,GAAKgF,EAAK4/J,WAAW5kK,GAAI,OAAOsJ,EAa1H,IAAI0hN,EAAQ,SAAShmN,GACpB,IAAIulL,EAAKvlL,EAAK4/J,WAAW,GAAI4lB,EAAKxlL,EAAK4/J,WAAW,GAClD,OAAS,KAAN2lB,GAAoB,KAANC,EAblB,SAAqBxlL,GAEpB,IADA,IAAIsE,EAAI,GACAtJ,EAAI,EAAGA,EAAKgF,EAAKlF,QAAQ,IAAME,EAAGsJ,EAAEtJ,GAAK0tC,OAAOu9K,aAAajmN,EAAK4/J,WAAW,EAAE5kK,IAAMgF,EAAK4/J,WAAW,EAAE5kK,EAAE,IAAI,IACrH,OAAOsJ,EAAEc,KAAK,IAUsB8gN,CAAYlmN,EAAKsH,MAAM,IAClD,KAANi+K,GAAoB,KAANC,EATlB,SAAqBxlL,GAEpB,IADA,IAAIsE,EAAI,GACAtJ,EAAI,EAAGA,EAAKgF,EAAKlF,QAAQ,IAAME,EAAGsJ,EAAEtJ,GAAK0tC,OAAOu9K,aAAajmN,EAAK4/J,WAAW,EAAE5kK,EAAE,IAAMgF,EAAK4/J,WAAW,EAAE5kK,IAAI,IACrH,OAAOsJ,EAAEc,KAAK,IAMsB+gN,CAAYnmN,EAAKsH,MAAM,IAClD,OAANi+K,EAAqBvlL,EAAKsH,MAAM,GAC5BtH,GAGJomN,EAAW,SAAcntN,GAAK,OAAOyvC,OAAOu9K,aAAahtN,IACzDotN,EAAW,SAAcptN,GAAK,OAAOyvC,OAAOu9K,aAAahtN,IACvC,qBAAZorN,UACTwB,EAAS,SAAS/5F,GAAMq4F,EAAmBr4F,EAAI85F,EAAS95F,IACxDk6F,EAAQ,SAAShmN,GAChB,OAA0B,MAAvBA,EAAK4/J,WAAW,IAAsC,MAAvB5/J,EAAK4/J,WAAW,GAAsBykD,QAAQ9M,MAAM+O,OAAO,KAAMP,EAAW/lN,EAAKsH,MAAM,KAClHtH,GAERomN,EAAW,SAAcntN,GACxB,OAAwB,OAArBkrN,EAAkCz7K,OAAOu9K,aAAahtN,GAClDorN,QAAQ9M,MAAM+O,OAAOnC,EAAkB,CAAG,IAAFlrN,EAAMA,GAAG,IAAI,IAE7DotN,EAAW,SAAcptN,GACxB,OAAOorN,QAAQ9M,MAAM+O,OAAOlC,EAAc,CAACnrN,IAAI,KAGjD,IAEIstN,EAAU,WACb,IAAI18L,EAAM,oEACV,MAAO,CACN28L,OAAQ,SAASr8L,GAGhB,IAFA,IAAI7lB,EAAI,GACJihL,EAAG,EAAGC,EAAG,EAAGihC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EACnC7rN,EAAI,EAAGA,EAAImvB,EAAMrvB,QAExB4rN,GADAnhC,EAAKp7J,EAAMy1I,WAAW5kK,OACV,EAGZ2rN,GAAY,EAALphC,IAAW,GADlBC,EAAKr7J,EAAMy1I,WAAW5kK,OACQ,EAG9B4rN,GAAY,GAALphC,IAAY,GADnBihC,EAAKt8L,EAAMy1I,WAAW5kK,OACS,EAC/B6rN,EAAW,GAALJ,EACFlyN,MAAMixL,GAAOohC,EAAKC,EAAK,GAClBtyN,MAAMkyN,KAAOI,EAAK,IAC3BviN,GAAKulB,EAAIkpB,OAAO2zK,GAAM78L,EAAIkpB,OAAO4zK,GAAM98L,EAAIkpB,OAAO6zK,GAAM/8L,EAAIkpB,OAAO8zK,GAEpE,OAAOviN,GAERgiN,OAAQ,SAAoBn8L,GAC3B,IAAI7lB,EAAI,GACJihL,EAAG,EAAGC,EAAG,EAAGihC,EAAG,EAASE,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAC3C18L,EAAQA,EAAM90B,QAAQ,eAAgB,IACtC,IAAI,IAAI2F,EAAI,EAAGA,EAAImvB,EAAMrvB,QAGxByqL,EAFK17J,EAAIp0B,QAAQ00B,EAAM4oB,OAAO/3C,OAElB,GADZ2rN,EAAK98L,EAAIp0B,QAAQ00B,EAAM4oB,OAAO/3C,QACN,EACxBsJ,GAAKokC,OAAOu9K,aAAa1gC,GAGzBC,GAAY,GAALmhC,IAAY,GADnBC,EAAK/8L,EAAIp0B,QAAQ00B,EAAM4oB,OAAO/3C,QACC,EACpB,KAAP4rN,IAAatiN,GAAKokC,OAAOu9K,aAAazgC,IAG1CihC,GAAY,EAALG,IAAW,GADlBC,EAAKh9L,EAAIp0B,QAAQ00B,EAAM4oB,OAAO/3C,OAEnB,KAAP6rN,IAAaviN,GAAKokC,OAAOu9K,aAAaQ,IAE3C,OAAOniN,IAxCI,GA4CVwiN,EAA6B,qBAAXC,GAA6C,qBAAZr2E,GAAuD,qBAArBA,EAAQgI,YAA8BhI,EAAQgI,SAAS5pF,KAE5Ik4J,EAAc,aAElB,GAAqB,qBAAXD,EAAwB,CACjC,IAAIE,GAAQF,EAAOj4L,KACnB,IAAIm4L,EAAM,IAAMF,EAAOj4L,KAAK,MAAO,QAAW,MAAM9rB,IAAKikN,GAAO,EAChED,EAAcC,EAAO,SAASC,EAAKC,GAAO,OAAQA,EAAO,IAAIJ,EAAOG,EAAKC,GAAO,IAAIJ,EAAOG,IAAUH,EAAOj4L,KAAKrhB,KAAKs5M,GAElHA,EAAOK,QAAOL,EAAOK,MAAQ,SAASllN,GAAK,OAAO,IAAI6kN,EAAO7kN,KAE7D6kN,EAAOM,cAAaN,EAAOM,YAAc,SAASnlN,GAAK,OAAO,IAAI6kN,EAAO7kN,KAG9E,SAASolN,EAAYt3M,GAEpB,OAAO82M,EAAUC,EAAOK,MAAMp3M,GAAO,IAAIha,MAAMga,GAIhD,SAASu3M,EAAev3M,GAEvB,OAAO82M,EAAUC,EAAOM,YAAYr3M,GAAO,IAAIha,MAAMga,GAItD,IAAIw3M,EAAM,SAAa5tN,GACtB,OAAGktN,EAAgBE,EAAYptN,EAAG,UAC3BA,EAAEgnB,MAAM,IAAIiJ,KAAI,SAAS5wB,GAAI,OAAyB,IAAlBA,EAAE2mK,WAAW,OAGzD,SAAS6nD,EAAK7tN,GACb,GAA0B,qBAAhBu8I,YAA6B,OAAOqxE,EAAI5tN,GAElD,IADA,IAAIstN,EAAM,IAAI/wE,YAAYv8I,EAAEkB,QAASk7I,EAAO,IAAIC,WAAWixE,GAClDlsN,EAAE,EAAGA,GAAGpB,EAAEkB,SAAUE,EAAGg7I,EAAKh7I,GAAuB,IAAlBpB,EAAEgmK,WAAW5kK,GACvD,OAAOksN,EAGR,SAASQ,EAAI1nN,GACZ,GAAGhK,MAAMD,QAAQiK,GAAO,OAAOA,EAAK6pB,KAAI,SAAStZ,GAAK,OAAOm4B,OAAOu9K,aAAa11M,MAAOnL,KAAK,IACjF,IAAZ,IAAId,EAAI,GAAYtJ,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAGsJ,EAAEtJ,GAAK0tC,OAAOu9K,aAAajmN,EAAKhF,IAAK,OAAOsJ,EAAEc,KAAK,IAQrG,SAASuiN,EAAK3nN,GACb,GAAyB,oBAAfm2I,YAA4B,MAAM,IAAIrhJ,MAAM,eACtD,GAAGkL,aAAgBm2I,YAAa,OAAOwxE,EAAK,IAAI1xE,WAAWj2I,IAE3D,IADD,IAAIsE,EAAI,IAAItO,MAAMgK,EAAKlF,QACdE,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAGsJ,EAAEtJ,GAAKgF,EAAKhF,GACjD,OAAOsJ,EAGR,IAAIsjN,EAAU,SAASC,GAAQ,MAAO,GAAGhjN,OAAOzC,MAAM,GAAIylN,IAEtDC,EAAO,UAAWC,EAAO,mBAGzBC,EAAO,GACPC,EAAW,SAAkBD,GAEjC,SAASE,EAAQjvN,GAAiC,IAA5B,IAAIqL,EAAI,GAAItJ,EAAI/B,EAAE6B,OAAO,EAASE,GAAG,GAAGsJ,GAAKrL,EAAE85C,OAAO/3C,KAAM,OAAOsJ,EACzF,SAAS+1C,EAAK9pC,EAAEE,GAAiB,IAAZ,IAAInM,EAAI,GAAUA,EAAExJ,OAAS2V,GAAGnM,GAAGiM,EAAG,OAAOjM,EAClE,SAAS6jN,EAAKlkN,EAAEnN,GAAG,IAAImL,EAAE,GAAGgC,EAAG,OAAOhC,EAAEnH,QAAQhE,EAAEmL,EAAEo4C,EAAK,IAAIvjD,EAAEmL,EAAEnH,QAAQmH,EACzE,SAASmmN,EAAKnkN,EAAEnN,GAAG,IAAImL,EAAE,GAAGgC,EAAE,OAAOhC,EAAEnH,QAAQhE,EAAEmL,EAAEo4C,EAAK,IAAIvjD,EAAEmL,EAAEnH,QAAQmH,EACxE,SAASomN,EAAMpkN,EAAEnN,GAAG,IAAImL,EAAE,GAAGgC,EAAG,OAAOhC,EAAEnH,QAAQhE,EAAEmL,EAAEA,EAAEo4C,EAAK,IAAIvjD,EAAEmL,EAAEnH,QALpEktN,EAAIzyK,QAAU,SAQd,IAAI+yK,EAAQpyN,KAAKa,IAAI,EAAE,IACvB,SAASwxN,EAAMtkN,EAAEnN,GAAG,OAAGmN,EAAEqkN,GAAOrkN,GAAGqkN,EAHnC,SAAgBrkN,EAAEnN,GAAG,IAAImL,EAAE,GAAG/L,KAAKQ,MAAMuN,GAAI,OAAOhC,EAAEnH,QAAQhE,EAAEmL,EAAEo4C,EAAK,IAAIvjD,EAAEmL,EAAEnH,QAAQmH,EAGtCumN,CAAOvkN,EAAEnN,GAF1D,SAAgBmN,EAAEnN,GAAG,IAAImL,EAAE,GAAGgC,EAAG,OAAOhC,EAAEnH,QAAQhE,EAAEmL,EAAEo4C,EAAK,IAAIvjD,EAAEmL,EAAEnH,QAAQmH,EAEiBwmN,CAAtBvyN,KAAKQ,MAAMuN,GAAoBnN,GACrG,SAAS4xN,EAAU9uN,EAAGoB,GAAiB,OAAZA,EAAIA,GAAK,EAAUpB,EAAEkB,QAAU,EAAIE,GAA8B,OAAR,GAAhBpB,EAAEgmK,WAAW5kK,KAA6C,OAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,KAA6C,OAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,KAA6C,OAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,KAA6C,OAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,KAA6C,MAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,KAA4C,OAAR,GAAlBpB,EAAEgmK,WAAW5kK,EAAE,IAC5R,IAAIgrC,EAAO,CACV,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,aAELtQ,EAAS,CACZ,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,OACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,UACb,CAAC,IAAK,MAAO,aACb,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,aAEd,SAASizL,EAAW1mN,GACnBA,EAAE,GAAK,UACPA,EAAE,GAAK,IACPA,EAAE,GAAK,OACPA,EAAE,GAAK,QACPA,EAAE,GAAK,WACPA,EAAE,GAAK,KACPA,EAAE,IAAK,QACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,UACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,SACPA,EAAE,IAAK,aACPA,EAAE,IAAK,gBACPA,EAAE,IAAK,OACPA,EAAE,IAAK,UACPA,EAAE,IAAK,cACPA,EAAE,IAAK,iBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,2BACPA,EAAE,IAAK,QACPA,EAAE,IAAK,YACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,IACPA,EAAE,IAAK,8DACPA,EAAE,OAAQ,UAGX,IAAI2mN,EAAY,GAEhB,SAASC,EAAK5vN,EAAG8iF,EAAG+sI,GAMnB,IALA,IAAIC,EAAM9vN,EAAI,GAAK,EAAI,EACnB4iF,EAAI5iF,EAAI8vN,EACRC,EAAM,EAAGC,EAAM,EAAGzmN,EAAI,EACtB0mN,EAAM,EAAGC,EAAM,EAAG3sI,EAAI,EACtBZ,EAAI1lF,KAAKU,MAAMilF,GACbstI,EAAMptI,IAEXv5E,GADAo5E,EAAI1lF,KAAKU,MAAMilF,IACPotI,EAAMD,EACdxsI,EAAIZ,EAAIutI,EAAMD,IACVrtI,EAAID,EAAK,QACbC,EAAI,GAAKA,EAAID,GACbotI,EAAMC,EAAKA,EAAMzmN,EACjB0mN,EAAMC,EAAKA,EAAM3sI,EAGlB,GADGA,EAAIT,IAAQotI,EAAMptI,GAAKS,EAAI0sI,EAAK1mN,EAAIwmN,IAAcxsI,EAAI2sI,EAAK3mN,EAAIymN,KAC9DH,EAAO,MAAO,CAAC,EAAGC,EAAMvmN,EAAGg6E,GAC/B,IAAIm+E,EAAIzkK,KAAKU,MAAMmyN,EAAMvmN,EAAEg6E,GAC3B,MAAO,CAACm+E,EAAGouD,EAAIvmN,EAAIm4J,EAAEn+E,EAAGA,GAEzB,SAAS4sI,EAAgBnlN,EAAEolN,EAAKC,GAC/B,GAAGrlN,EAAI,SAAWA,EAAI,EAAG,OAAO,KAChC,IAAIyf,EAAU,EAAFzf,EAAMkoC,EAAOj2C,KAAKU,MAAM,OAASqN,EAAIyf,IAAQ2U,EAAI,EACzDkxL,EAAK,GACLh4K,EAAI,CAACwqC,EAAEr4D,EAAMi5D,EAAExwC,EAAM8B,EAAE,OAAOhqC,EAAEyf,GAAMyoB,EAAKjzC,EAAE,EAAEqL,EAAE,EAAEzN,EAAE,EAAEolF,EAAE,EAAEpkD,EAAE,EAAE4kD,EAAE,EAAEi+E,EAAE,GAOzE,GANGzkK,KAAK6B,IAAIw5C,EAAItD,GAAK,OAAMsD,EAAItD,EAAI,GAChCo7K,GAAQA,EAAKG,WAAU9lM,GAAQ,MAC/B6tB,EAAItD,EAAI,QACVsD,EAAItD,EAAI,EACK,SAAR9B,IAAiBoF,EAAIorC,EAAIxwC,EAAO,IAAKzoB,IAAQ6tB,EAAIwqC,IAE3C,KAATr4D,EAAc6lM,EAAOD,EAAK,CAAC,KAAK,GAAG,IAAM,CAAC,KAAK,EAAE,IAAKjxL,EAAI,OACxD,GAAY,IAAT3U,EAAa6lM,EAAOD,EAAK,CAAC,KAAK,EAAE,IAAM,CAAC,KAAK,EAAE,GAAIjxL,EAAI,MAC1D,CACD3U,EAAO,MAAMA,EAEhB,IAAI5sB,EAAI,IAAIusB,KAAK,KAAM,EAAG,GAC1BvsB,EAAE4mG,QAAQ5mG,EAAE0rC,UAAY9e,EAAO,GAC/B6lM,EAAO,CAACzyN,EAAE8sB,cAAe9sB,EAAEutB,WAAW,EAAEvtB,EAAE0rC,WAC1CnK,EAAMvhC,EAAEotB,SACLR,EAAO,KAAI2U,GAAOA,EAAM,GAAK,GAC7BixL,IAAIjxL,EA+DqB,GAxD7B,OALAkZ,EAAIr4C,EAAIqwN,EAAK,GAAIh4K,EAAIhtC,EAAIglN,EAAK,GAAIh4K,EAAIz6C,EAAIyyN,EAAK,GAC/Ch4K,EAAImrC,EAAIvwC,EAAO,GAAIA,EAAOj2C,KAAKU,MAAMu1C,EAAO,IAC5CoF,EAAIzZ,EAAIqU,EAAO,GAAIA,EAAOj2C,KAAKU,MAAMu1C,EAAO,IAC5CoF,EAAI2qC,EAAI/vC,EACRoF,EAAIopH,EAAItiI,EACDkZ,EAjDRo3K,EAAWC,GAmDXZ,EAAIoB,gBAAkBA,EACtB,IAAIK,EAAW,IAAIpmM,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACxCqmM,EAAWD,EAASjmM,UACpBmmM,EAAW,IAAItmM,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAC1C,SAASumM,EAAc3lN,EAAGulN,GACzB,IAAIK,EAAQ5lN,EAAEuf,UAGd,OAFGgmM,EAAUK,GAAS,UACd5lN,GAAK0lN,IAAUE,GAAS,QACxBA,GAASH,EAAoE,KAAxDzlN,EAAE6f,oBAAsB2lM,EAAS3lM,uBAAvD,MAGRkkM,EAAI8B,aADJ,SAAyB7lN,GAAK,OAAOA,EAAEtP,SAAS,KAEhD,IAAIo1N,EAAmB,WACvB,IAAIC,EAAO,kBAAmBC,EAAO,QAASC,EAAO,iBAAkBC,EAAO,WAAYC,EAAO,eAgBjG,SAASC,EAAK/lN,GACb,OAAOA,EAAE7O,QAAQ,MAAQ,EAAI6O,EAAEjP,QAAQ40N,EAAK,IAAI50N,QAAQ20N,EAAK,OAAS1lN,EAEvE,OAAO,SAAyBL,GAC/B,IAAuDK,EAAnDu4E,EAAI3mF,KAAKU,MAAMV,KAAK2uE,IAAI3uE,KAAK6B,IAAIkM,IAAI/N,KAAKg0F,QAK9C,OAJuB5lF,EAApBu4E,IAAM,GAAKA,IAAM,EAAO54E,EAAEqmN,YAAY,GAAGztI,GACpC3mF,KAAK6B,IAAI8kF,IAAM,EArBxB,SAAc54E,GACb,IAAIo5B,EAAKp5B,EAAE,EAAE,GAAG,GACZK,EAAI+lN,EAAKpmN,EAAE4wC,QAAQ,KAAM,OAAGvwC,EAAExJ,QAAUuiC,IAC5C/4B,EAAIL,EAAEqmN,YAAY,KAAUxvN,QAAUuiC,EADgB/4B,EAE/CL,EAAEsmN,cAAc,GAiBOC,CAAKvmN,GACrB,KAAN44E,EAAc54E,EAAE4wC,QAAQ,IAAIzvB,OAAO,EAAE,IAhB9C,SAAcnhB,GACb,IAAIK,EAAIL,EAAE4wC,QAAQ,IAAIx/C,QAAQ20N,EAAK,OAEnC,OADG1lN,EAAExJ,QAAUmJ,EAAE,EAAE,GAAG,MAAKK,EAAIL,EAAEqmN,YAAY,IACtChmN,EAcEmmN,CAAKxmN,GACPomN,EAbR,SAAc/lN,GACb,IAAI,IAAItJ,EAAI,EAAGA,GAAKsJ,EAAExJ,SAAUE,EAAG,GAAgC,OAAV,GAAlBsJ,EAAEs7J,WAAW5kK,IAAoB,OAAOsJ,EAAEjP,QAAQ60N,EAAK,OAAO70N,QAAQ80N,EAAK,KAAK90N,QAAQ,IAAI,KAAKA,QAAQ+0N,EAAK,SACrJ,OAAO9lN,EAWKomN,CAAKpmN,KA1BK,GA6BvB,SAASqmN,EAAY1mN,EAAGolN,GACvB,cAAcplN,GACb,IAAK,SAAU,OAAOA,EACtB,IAAK,UAAW,OAAOA,EAAI,OAAS,QACpC,IAAK,SAAU,OAAU,EAAFA,KAASA,EAAIA,EAAEtP,SAAS,IAAMo1N,EAAgB9lN,GACrE,IAAK,YAAa,MAAO,GACzB,IAAK,SACJ,GAAQ,MAALA,EAAW,MAAO,GACrB,GAAGA,aAAaof,KAAM,OAAOf,EAAO,GAAIsnM,EAAc3lN,EAAGolN,GAAQA,EAAKG,UAAWH,GAEnF,MAAM,IAAIv0N,MAAM,wCAA0CmP,GAK3D,SAAS2mN,EAAW1qN,EAAM2qN,EAAK97L,EAAK+7L,GACnC,IAAiCv5K,EAA7BjtC,EAAE,GAAI24B,EAAG,EAAGu7F,EAAG,EAAGt/H,EAAI61B,EAAI71B,EAAQ6xN,EAAO,EAC7C,OAAO7qN,GACN,KAAK,GACJhH,EAAI61B,EAAI71B,EAAI,IAEb,KAAK,IACL,OAAO2xN,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAMr4C,EAAI,IAAK6xN,EAAO,EAAG,MACzC,QAASx5K,EAAMr4C,EAAI,IAAO6xN,EAAO,EAChC,MACF,KAAK,IACL,OAAOF,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAMxiB,EAAIxqB,EAAGwmN,EAAOF,EAAI/vN,OAAQ,MAChD,KAAK,EAAG,OAAO46B,EAAO3G,EAAIxqB,EAAE,GAAG,GAC/B,KAAK,EAAG,OAAOmxB,EAAO3G,EAAIxqB,EAAE,GAAG,GAC/B,QAAS,OAAOmxB,EAAO3G,EAAIxqB,EAAE,GAAG,GAC/B,MACF,KAAK,IACL,OAAOsmN,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAMxiB,EAAIj4B,EAAGi0N,EAAOF,EAAI/vN,OAAQ,MAChD,KAAK,EAAG,OAAOkrC,EAAKjX,EAAI4rI,GAAG,GAC3B,QAAS,OAAO30H,EAAKjX,EAAI4rI,GAAG,GAC3B,MACF,KAAK,IACL,OAAOkwD,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAM,GAAGxiB,EAAImtD,EAAE,IAAI,GAAI6uI,EAAOF,EAAI/vN,OAAQ,MAC1D,QAAS,KAAM,oBAAsB+vN,EACpC,MACF,KAAK,GACL,OAAOA,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAMxiB,EAAImtD,EAAG6uI,EAAOF,EAAI/vN,OAAQ,MAChD,QAAS,KAAM,oBAAsB+vN,EACpC,MACF,KAAK,GACL,OAAOA,EAAI/vN,QACV,KAAK,EAAG,KAAK,EAAGy2C,EAAMxiB,EAAI+I,EAAGizL,EAAOF,EAAI/vN,OAAQ,MAChD,QAAS,KAAM,sBAAwB+vN,EACtC,MACF,KAAK,IACJ,GAAU,KAAPA,GAAqB,MAAPA,GAAsB,MAAPA,GAAsB,OAAPA,GAAuB,QAAPA,EAAe,KAAM,sBAAwBA,EAC5G,OAAa,IAAV97L,EAAIkf,GAAmB,KAAP48K,GAAqB,MAAPA,GACvBryF,EAAVsyF,GAAO,EAAgB,IAARA,EAAY,IAAO,IAChB,IAARA,EAAY,GAAK,GAC3B7tL,EAAK/mC,KAAKQ,MAAO8hI,GAAKzpG,EAAI2tD,EAAI3tD,EAAIkf,MACzB,GAAGuqF,IAAIv7F,EAAK,GACV,MAAR4tL,EAA2B,IAAP5tL,EAAW,IAAM,GAAGA,EAAGu7F,GAC9Cl0H,EAAI6jN,EAAKlrL,EAAG,EAAI6tL,GACL,OAARD,EAAqBvmN,EAAE8gB,OAAO,EAAE,GAC5B,IAAM9gB,EAAE8gB,OAAO,EAAEylM,EAAI/vN,OAAO,KARmBqtN,EAAKp5L,EAAI2tD,EAAGmuI,EAAI/vN,QASvE,KAAK,GACL,OAAO+vN,GACN,IAAK,MAAO,IAAK,OAAQt5K,EAAY,GAANxiB,EAAIgtD,EAAKhtD,EAAImtD,EAAG,MAC/C,IAAK,MAAO,IAAK,OAAQ3qC,EAAuB,IAAV,GAANxiB,EAAIgtD,EAAKhtD,EAAImtD,GAAMntD,EAAI+I,EAAG,MAC1D,IAAK,MAAO,IAAK,OAAQyZ,EAAkC,IAAV,IAAV,GAANxiB,EAAIgtD,EAAKhtD,EAAImtD,GAAMntD,EAAI+I,GAAM5hC,KAAKQ,MAAMq4B,EAAI2tD,EAAE3tD,EAAIkf,GAAI,MACvF,QAAS,KAAM,uBAAyB48K,EACvCE,EAAsB,IAAfF,EAAI/vN,OAAe,EAAI,EAAG,MACnC,KAAK,IACJy2C,EAAMr4C,EAAG6xN,EAAO,EAElB,OAAGA,EAAO,EAAU5C,EAAK52K,EAAKw5K,GAAmB,GAGlD,SAASC,EAASpxN,GAEjB,GAAGA,EAAEkB,QADG,EACU,OAAOlB,EAEzB,IADA,IAAIglC,EAAKhlC,EAAEkB,OAFH,EAEgBwJ,EAAI1K,EAAEwrB,OAAO,EAAEwZ,GACjCA,GAAGhlC,EAAEkB,OAAQ8jC,GAHX,EAGiBt6B,IAAIA,EAAExJ,OAAS,EAAI,IAAM,IAAMlB,EAAEwrB,OAAOwZ,EAHzD,GAIR,OAAOt6B,EApFR0jN,EAAIiD,aAAelB,EAanB/B,EAAIkD,SAAWP,EAyEf,IAAIQ,EAAa,WACjB,IAAIC,EAAO,KAoCX,IAAIC,EAAQ,yBASZ,IAAIC,EAAO,iBACPC,EAAa,WACblrB,EAAQ,sBACZ,SAASmrB,EAAM7qM,GAEd,IADA,IAAY8qM,EAARnnN,EAAI,GACAtJ,EAAI,EAAGA,GAAK2lB,EAAI7lB,SAAUE,EAAG,OAAQywN,EAAG9qM,EAAIi/I,WAAW5kK,IAC9D,KAAK,GAAI,MACT,KAAK,GAAIsJ,GAAI,IAAK,MAClB,KAAK,GAAIA,GAAI,IAAK,MAClB,QAASA,GAAIokC,OAAOu9K,aAAawF,GAElC,OAAOnnN,EAER,SAASonN,EAAI38L,EAAKj4B,GAAK,IAAIsmC,EAAKlnC,KAAKa,IAAI,GAAGD,GAAI,MAAO,GAAIZ,KAAKQ,MAAMq4B,EAAMqO,GAAIA,EAChF,SAASuuL,EAAI58L,EAAKj4B,GACjB,OAAIA,GAAK,GAAKZ,KAAKQ,OAAOq4B,EAAI74B,KAAKU,MAAMm4B,IAAM74B,KAAKa,IAAI,GAAGD,KAAKgE,OACxD,EAED5E,KAAKQ,OAAOq4B,EAAI74B,KAAKU,MAAMm4B,IAAM74B,KAAKa,IAAI,GAAGD,IASrD,SAAS80N,EAAc1rN,EAAM2qN,EAAK97L,GACjC,GAA0B,KAAvB7uB,EAAK0/J,WAAW,KAAcirD,EAAIvtM,MAAMiuM,GAAa,CACvD,IAAIM,EAAOhB,EAAIx1N,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG05B,GAAO,EAAU68L,EAAc,IAAKC,EAAM98L,GACtC,IAAM68L,EAAc,IAAKC,GAAO98L,GAAO,IAE/C,GAAsC,KAAnC87L,EAAIjrD,WAAWirD,EAAI/vN,OAAS,GAAW,OAzE3C,SAAsBoF,EAAM2qN,EAAK97L,GAEhC,IADA,IAAI44C,EAAMkjJ,EAAI/vN,OAAS,EACS,KAA1B+vN,EAAIjrD,WAAWj4F,EAAI,MAAaA,EACtC,OAAOwjJ,EAAUjrN,EAAM2qN,EAAIzlM,OAAO,EAAEuiD,GAAM54C,EAAM74B,KAAKa,IAAI,GAAG,GAAG8zN,EAAI/vN,OAAO6sE,KAsEzBmkJ,CAAa5rN,EAAM2qN,EAAK97L,GACzE,IAAyB,IAAtB87L,EAAIp1N,QAAQ,KAAa,OA9E7B,SAAuByK,EAAM2qN,EAAK97L,GACjC,IAAIg9L,EAAOlB,EAAIx1N,QAAQ+1N,EAAK,IAAKY,EAAMnB,EAAI/vN,OAASixN,EAAKjxN,OACzD,OAAOqwN,EAAUjrN,EAAM6rN,EAAMh9L,EAAM74B,KAAKa,IAAI,GAAG,EAAEi1N,IAAQ3xK,EAAK,IAAI2xK,GA4E/BC,CAAc/rN,EAAM2qN,EAAK97L,GAC5D,IAAyB,IAAtB87L,EAAIp1N,QAAQ,KAAa,OAtE7B,SAASy2N,EAAcrB,EAAK97L,GAC3B,IAAIzqB,EACAqjE,EAAMkjJ,EAAIp1N,QAAQ,KAAOo1N,EAAIp1N,QAAQ,KAAO,EAChD,GAAGo1N,EAAIvtM,MAAM,eAAgB,CAC5B,GAAU,GAAPyR,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMm9L,EAAcrB,GAAM97L,GAClD,IAAIqZ,EAASyiL,EAAIp1N,QAAQ,MAAqB,IAAZ2yC,IAAeA,EAAOyiL,EAAIp1N,QAAQ,MACpE,IAAI02N,EAAKj2N,KAAKU,MAAMV,KAAK2uE,IAAI91C,GAAK74B,KAAKg0F,QAAQ9hD,EAG/C,GAFG+jL,EAAK,IAAGA,GAAM/jL,IAEM,KADvB9jC,GAAKyqB,EAAI74B,KAAKa,IAAI,GAAGo1N,IAAK7B,YAAY3iJ,EAAI,GAAGv/B,EAAO+jL,GAAI/jL,IACnD3yC,QAAQ,KAAa,CACzB,IAAI22N,EAAQl2N,KAAKU,MAAMV,KAAK2uE,IAAI91C,GAAK74B,KAAKg0F,QAG1C,KAFuB,IAApB5lF,EAAE7O,QAAQ,KAAa6O,EAAIA,EAAEyuC,OAAO,GAAK,IAAMzuC,EAAE8gB,OAAO,GAAK,MAAQgnM,EAAQ9nN,EAAExJ,OAAOqxN,GACpF7nN,GAAK,MAAQ8nN,EAAQD,GACF,OAAlB7nN,EAAE8gB,OAAO,EAAE,IAEhB9gB,GADAA,EAAIA,EAAEyuC,OAAO,GAAKzuC,EAAE8gB,OAAO,EAAEgjB,GAAU,IAAM9jC,EAAE8gB,OAAO,EAAEgjB,IAClD/yC,QAAQ,aAAa,MAAMA,QAAQ,QAAQ,MAElDiP,EAAIA,EAAEjP,QAAQ,MAAM,KAErBiP,EAAIA,EAAEjP,QAAQ,4BAA2B,SAASg3N,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAGpnM,OAAO,GAAGgjB,EAAO+jL,GAAI/jL,GAAU,IAAMokL,EAAGpnM,OAAO+mM,GAAM,YACpI7nN,EAAIyqB,EAAIw7L,cAAc5iJ,GAG7B,OAFGkjJ,EAAIvtM,MAAM,WAAahZ,EAAEgZ,MAAM,cAAahZ,EAAIA,EAAE8gB,OAAO,EAAE9gB,EAAExJ,OAAO,GAAK,IAAMwJ,EAAEyuC,OAAOzuC,EAAExJ,OAAO,IACjG+vN,EAAIvtM,MAAM,QAAUhZ,EAAEgZ,MAAM,SAAQhZ,EAAIA,EAAEjP,QAAQ,MAAM,MACpDiP,EAAEjP,QAAQ,IAAI,KA8Cc62N,CAAcrB,EAAK97L,GACtD,GAAyB,KAAtB87L,EAAIjrD,WAAW,GAAW,MAAO,IAAIgsD,EAAc1rN,EAAK2qN,EAAIzlM,OAAsB,KAAfylM,EAAI93K,OAAO,GAAQ,EAAE,GAAGhkB,GAC9F,IAAIzqB,EACAG,EAAGgoN,EAAIC,EAAIC,EAAOz2N,KAAK6B,IAAIg3B,GAAM8X,EAAO9X,EAAM,EAAI,IAAM,GAC5D,GAAG87L,EAAIvtM,MAAM,SAAU,OAAOupB,EAAO0hL,EAAMoE,EAAK9B,EAAI/vN,QACpD,GAAG+vN,EAAIvtM,MAAM,WAEZ,MAD2B,OAA3BhZ,EAAIikN,EAAMx5L,EAAI,MAAkBzqB,EAAI,IAC7BA,EAAExJ,OAAS+vN,EAAI/vN,OAASwJ,EAAIknN,EAAMX,EAAIzlM,OAAO,EAAEylM,EAAI/vN,OAAOwJ,EAAExJ,SAAWwJ,EAE/E,GAAIG,EAAIomN,EAAIvtM,MAAM+tM,GAAS,OApD5B,SAAsB5mN,EAAGkoN,EAAM9lL,GAC9B,IAAI+lL,EAAMl1L,SAASjzB,EAAE,GAAG,IAAKooN,EAAK32N,KAAKQ,MAAMi2N,EAAOC,GAAMxlN,EAAOlR,KAAKU,MAAMi2N,EAAGD,GAC3EE,EAAOD,EAAKzlN,EAAKwlN,EAAMG,EAAMH,EACjC,OAAO/lL,GAAiB,IAATz/B,EAAa,GAAK,GAAGA,GAAQ,KAAe,IAAR0lN,EAAYzyK,EAAK,IAAK51C,EAAE,GAAG3J,OAAS,EAAI2J,EAAE,GAAG3J,QAAUstN,EAAK0E,EAAIroN,EAAE,GAAG3J,QAAU2J,EAAE,GAAK,IAAMA,EAAE,GAAK0jN,EAAK4E,EAAItoN,EAAE,GAAG3J,SAiDlIkyN,CAAavoN,EAAGkoN,EAAM9lL,GACxD,GAAGgkL,EAAIvtM,MAAM,UAAW,OAAOupB,EAAO0hL,EAAMoE,EAAK9B,EAAI/vN,OAAS+vN,EAAIp1N,QAAQ,MAC1E,GAAIgP,EAAIomN,EAAIvtM,MAAMguM,GAEjB,OADAhnN,EAAIonN,EAAI38L,EAAKtqB,EAAE,GAAG3J,QAAQzF,QAAQ,aAAa,MAAMm2N,EAAM/mN,EAAE,KAAKpP,QAAQ,MAAM,IAAIm2N,EAAM/mN,EAAE,KAAKpP,QAAQ,YAAW,SAASg3N,EAAIC,GAAM,MAAO,IAAMA,EAAKjyK,EAAK,IAAKmxK,EAAM/mN,EAAE,IAAI3J,OAAOwxN,EAAGxxN,YAC3J,IAAvB+vN,EAAIp1N,QAAQ,MAAe6O,EAAIA,EAAEjP,QAAQ,OAAO,KAGxD,GADAw1N,EAAMA,EAAIx1N,QAAQ,YAAa,MAC3BoP,EAAIomN,EAAIvtM,MAAM,gBACjB,OAAOupB,EAAO6kL,EAAIiB,EAAMloN,EAAE,GAAG3J,QAAQzF,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOoP,EAAE,GAAG3J,OAAO,KAAK,KAElI,GAAI2J,EAAIomN,EAAIvtM,MAAM,qBAAuB,OAAOupB,EAAOmkL,EAASzC,EAAMoE,EAAK,IAC3E,GAAIloN,EAAIomN,EAAIvtM,MAAM,qBACjB,OAAOyR,EAAM,EAAI,IAAM68L,EAAc1rN,EAAM2qN,GAAM97L,GAAOi8L,EAAS,IAAI90N,KAAKU,MAAMm4B,GApClF,SAAeA,EAAKj4B,GACnB,OAAIA,GAAK,GAAKZ,KAAKQ,OAAOq4B,EAAI74B,KAAKU,MAAMm4B,IAAM74B,KAAKa,IAAI,GAAGD,KAAKgE,OACxD,EAED,EAgCiFmyN,CAAMl+L,EAAKtqB,EAAE,GAAG3J,UAAY,IAAMqtN,EAAKwD,EAAI58L,EAAKtqB,EAAE,GAAG3J,QAAQ2J,EAAE,GAAG3J,QAE1J,GAAI2J,EAAIomN,EAAIvtM,MAAM,YAAc,OAAOsuM,EAAc1rN,EAAK2qN,EAAIx1N,QAAQ,SAAS,IAAI05B,GACnF,GAAItqB,EAAIomN,EAAIvtM,MAAM,2BAGjB,OAFAhZ,EAAI4jN,EAAQ0D,EAAc1rN,EAAM2qN,EAAIx1N,QAAQ,SAAS,IAAK05B,IAC1D09L,EAAK,EACEvE,EAAQA,EAAQ2C,EAAIx1N,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAAS4D,GAAG,OAAOwzN,EAAGnoN,EAAExJ,OAAOwJ,EAAEyuC,OAAO05K,KAAU,MAAJxzN,EAAQ,IAAI,OAEzH,GAAG4xN,EAAIvtM,MAAM+iL,GAEZ,MAAO,KADP/7L,EAAIsnN,EAAc1rN,EAAM,aAAc6uB,IACvB3J,OAAO,EAAE,GAAK,KAAO9gB,EAAE8gB,OAAO,EAAG,GAAK,IAAM9gB,EAAE8gB,OAAO,GAErE,IAAI8nM,EAAK,GACT,GAAIzoN,EAAIomN,EAAIvtM,MAAM,+BAUjB,OATAmvM,EAAKv2N,KAAKK,IAAIkO,EAAE,GAAG3J,OAAO,GAC1B4xN,EAAK7D,EAAK8D,EAAMz2N,KAAKa,IAAI,GAAG01N,GAAI,GAAG,GACnCnoN,EAAI,GAAKuiC,EAEoB,MAD7BqmL,EAAK/B,EAAU,IAAK1mN,EAAE,GAAIioN,EAAG,KACvB35K,OAAOm6K,EAAGpyN,OAAO,KAAWoyN,EAAKA,EAAG9nM,OAAO,EAAE8nM,EAAGpyN,OAAO,GAAK,KAClEwJ,GAAK4oN,EAAKzoN,EAAE,GAAK,IAAMA,EAAE,IACzByoN,EAAK7E,EAAMqE,EAAG,GAAGD,IACX3xN,OAAS2J,EAAE,GAAG3J,SAAQoyN,EAAK1B,EAAM/mN,EAAE,GAAG2gB,OAAO3gB,EAAE,GAAG3J,OAAOoyN,EAAGpyN,SAAWoyN,GAC7E5oN,GAAK4oN,EAGN,GAAIzoN,EAAIomN,EAAIvtM,MAAM,iCAGjB,OAFAmvM,EAAKv2N,KAAKK,IAAIL,KAAKM,IAAIiO,EAAE,GAAG3J,OAAQ2J,EAAE,GAAG3J,QAAQ,GAE1C+rC,IADP6lL,EAAK7D,EAAK8D,EAAMz2N,KAAKa,IAAI,GAAG01N,GAAI,GAAG,IACjB,KAAKC,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKtE,EAAKsE,EAAG,GAAGD,GAAMhoN,EAAE,GAAK,IAAMA,EAAE,GAAK4jN,EAAMqE,EAAG,GAAGD,GAAKpyK,EAAK,IAAK,EAAEoyK,EAAG,EAAIhoN,EAAE,GAAG3J,OAAS2J,EAAE,GAAG3J,SAExJ,GAAI2J,EAAIomN,EAAIvtM,MAAM,YAEjB,OADAhZ,EAAIikN,EAAMx5L,EAAK,GACZ87L,EAAI/vN,QAAUwJ,EAAExJ,OAAewJ,EAC3BknN,EAAMX,EAAIzlM,OAAO,EAAEylM,EAAI/vN,OAAOwJ,EAAExJ,SAAWwJ,EAEnD,GAAIG,EAAIomN,EAAIvtM,MAAM,uBAAyB,CAC1ChZ,EAAI,GAAKyqB,EAAI8lB,QAAQ3+C,KAAKK,IAAIkO,EAAE,GAAG3J,OAAO,KAAKzF,QAAQ,YAAY,MACnEo3N,EAAKnoN,EAAE7O,QAAQ,KACf,IAAI03N,EAAOtC,EAAIp1N,QAAQ,KAAOg3N,EAAIW,EAAOvC,EAAI/vN,OAASwJ,EAAExJ,OAASqyN,EACjE,OAAO3B,EAAMX,EAAIzlM,OAAO,EAAE+nM,GAAQ7oN,EAAIumN,EAAIzlM,OAAOylM,EAAI/vN,OAAOsyN,IAE7D,GAAI3oN,EAAIomN,EAAIvtM,MAAM,sBAEjB,OADAmvM,EAAKd,EAAI58L,EAAKtqB,EAAE,GAAG3J,QACZi0B,EAAM,EAAI,IAAM68L,EAAc1rN,EAAM2qN,GAAM97L,GAAOi8L,EAzE1D,SAAaj8L,GAAO,OAAGA,EAAM,YAAcA,GAAO,WAAmB,IAAIA,GAAO,EAAS,EAAJA,EAAUA,EAAI,EAAE,GAAY,GAAG74B,KAAKU,MAAMm4B,GAyE5Ds+L,CAAIt+L,IAAM15B,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAASg3N,GAAM,MAAO,OAASA,EAAGvxN,OAAS,EAAIqtN,EAAK,EAAE,EAAEkE,EAAGvxN,QAAU,IAAMuxN,KAAS,IAAMlE,EAAKsE,EAAGhoN,EAAE,GAAG3J,QAE/N,OAAO+vN,GACN,IAAK,aAAc,OAAOe,EAAc1rN,EAAM,WAAY6uB,GAC1D,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI91B,EAAI+xN,EAASzC,EAAMoE,EAAK,IAAK,MAAa,MAAN1zN,EAAY4tC,EAAO5tC,EAAI,GAC7E,IAAK,aAAc,OAAO2yN,EAAc1rN,EAAM,aAAa6uB,GAAK15B,QAAQ,OAAO,KAC/E,IAAK,WAAY,OAAOu2N,EAAc1rN,EAAM,WAAW6uB,GAAK15B,QAAQ,OAAO,KAG5E,MAAM,IAAIP,MAAM,uBAAyB+1N,EAAM,KAiChD,SAASyC,EAAcptN,EAAM2qN,EAAK97L,GACjC,GAA0B,KAAvB7uB,EAAK0/J,WAAW,KAAcirD,EAAIvtM,MAAMiuM,GAAa,CACvD,IAAIM,EAAOhB,EAAIx1N,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG05B,GAAO,EAAUu+L,EAAc,IAAKzB,EAAM98L,GACtC,IAAMu+L,EAAc,IAAKzB,GAAO98L,GAAO,IAE/C,GAAsC,KAAnC87L,EAAIjrD,WAAWirD,EAAI/vN,OAAS,GAAW,OArC3C,SAAuBoF,EAAM2qN,EAAK97L,GAEjC,IADA,IAAI44C,EAAMkjJ,EAAI/vN,OAAS,EACS,KAA1B+vN,EAAIjrD,WAAWj4F,EAAI,MAAaA,EACtC,OAAOwjJ,EAAUjrN,EAAM2qN,EAAIzlM,OAAO,EAAEuiD,GAAM54C,EAAM74B,KAAKa,IAAI,GAAG,GAAG8zN,EAAI/vN,OAAO6sE,KAkCzB4lJ,CAAcrtN,EAAM2qN,EAAK97L,GAC1E,IAAyB,IAAtB87L,EAAIp1N,QAAQ,KAAa,OAjC7B,SAAwByK,EAAM2qN,EAAK97L,GAClC,IAAIg9L,EAAOlB,EAAIx1N,QAAQ+1N,EAAK,IAAKY,EAAMnB,EAAI/vN,OAASixN,EAAKjxN,OACzD,OAAOqwN,EAAUjrN,EAAM6rN,EAAMh9L,EAAM74B,KAAKa,IAAI,GAAG,EAAEi1N,IAAQ3xK,EAAK,IAAI2xK,GA+B/BwB,CAAettN,EAAM2qN,EAAK97L,GAC7D,IAAyB,IAAtB87L,EAAIp1N,QAAQ,KAAa,OA9B7B,SAASg4N,EAAe5C,EAAK97L,GAC5B,IAAIzqB,EACAqjE,EAAMkjJ,EAAIp1N,QAAQ,KAAOo1N,EAAIp1N,QAAQ,KAAO,EAChD,GAAGo1N,EAAIvtM,MAAM,eAAgB,CAC5B,GAAU,GAAPyR,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAM0+L,EAAe5C,GAAM97L,GACnD,IAAIqZ,EAASyiL,EAAIp1N,QAAQ,MAAqB,IAAZ2yC,IAAeA,EAAOyiL,EAAIp1N,QAAQ,MACpE,IAAI02N,EAAKj2N,KAAKU,MAAMV,KAAK2uE,IAAI91C,GAAK74B,KAAKg0F,QAAQ9hD,EAG/C,GAFG+jL,EAAK,IAAGA,GAAM/jL,KACjB9jC,GAAKyqB,EAAI74B,KAAKa,IAAI,GAAGo1N,IAAK7B,YAAY3iJ,EAAI,GAAGv/B,EAAO+jL,GAAI/jL,IAClD9qB,MAAM,QAAS,CACpB,IAAI8uM,EAAQl2N,KAAKU,MAAMV,KAAK2uE,IAAI91C,GAAK74B,KAAKg0F,SACnB,IAApB5lF,EAAE7O,QAAQ,KAAa6O,EAAIA,EAAEyuC,OAAO,GAAK,IAAMzuC,EAAE8gB,OAAO,GAAK,MAAQgnM,EAAQ9nN,EAAExJ,OAAOqxN,GACpF7nN,GAAK,MAAQ8nN,EAAQD,GAC1B7nN,EAAIA,EAAEjP,QAAQ,MAAM,KAErBiP,EAAIA,EAAEjP,QAAQ,4BAA2B,SAASg3N,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAGpnM,OAAO,GAAGgjB,EAAO+jL,GAAI/jL,GAAU,IAAMokL,EAAGpnM,OAAO+mM,GAAM,YACpI7nN,EAAIyqB,EAAIw7L,cAAc5iJ,GAG7B,OAFGkjJ,EAAIvtM,MAAM,WAAahZ,EAAEgZ,MAAM,cAAahZ,EAAIA,EAAE8gB,OAAO,EAAE9gB,EAAExJ,OAAO,GAAK,IAAMwJ,EAAEyuC,OAAOzuC,EAAExJ,OAAO,IACjG+vN,EAAIvtM,MAAM,QAAUhZ,EAAEgZ,MAAM,SAAQhZ,EAAIA,EAAEjP,QAAQ,MAAM,MACpDiP,EAAEjP,QAAQ,IAAI,KAUco4N,CAAe5C,EAAK97L,GACvD,GAAyB,KAAtB87L,EAAIjrD,WAAW,GAAW,MAAO,IAAI0tD,EAAcptN,EAAK2qN,EAAIzlM,OAAsB,KAAfylM,EAAI93K,OAAO,GAAQ,EAAE,GAAGhkB,GAC9F,IAAIzqB,EACAG,EAAGgoN,EAAIC,EAAIC,EAAOz2N,KAAK6B,IAAIg3B,GAAM8X,EAAO9X,EAAM,EAAI,IAAM,GAC5D,GAAG87L,EAAIvtM,MAAM,SAAU,OAAOupB,EAAOshL,EAAKwE,EAAK9B,EAAI/vN,QACnD,GAAG+vN,EAAIvtM,MAAM,WAEZ,OADAhZ,EAAK,GAAGyqB,EAAiB,IAARA,IAAWzqB,EAAI,IACzBA,EAAExJ,OAAS+vN,EAAI/vN,OAASwJ,EAAIknN,EAAMX,EAAIzlM,OAAO,EAAEylM,EAAI/vN,OAAOwJ,EAAExJ,SAAWwJ,EAE/E,GAAIG,EAAIomN,EAAIvtM,MAAM+tM,GAAS,OAnK5B,SAAsB5mN,EAAGkoN,EAAM9lL,GAC9B,OAAOA,GAAiB,IAAT8lL,EAAa,GAAK,GAAGA,GAAQtyK,EAAK,IAAK51C,EAAE,GAAG3J,OAAS,EAAI2J,EAAE,GAAG3J,QAkK3C4yN,CAAajpN,EAAGkoN,EAAM9lL,GACxD,GAAGgkL,EAAIvtM,MAAM,UAAW,OAAOupB,EAAOshL,EAAKwE,EAAK9B,EAAI/vN,OAAS+vN,EAAIp1N,QAAQ,MACzE,GAAIgP,EAAIomN,EAAIvtM,MAAMguM,GAIjB,OAFAhnN,GADFA,GAAK,GAAGyqB,GAAK15B,QAAQ,aAAa,MAAMm2N,EAAM/mN,EAAE,KAAKpP,QAAQ,MAAM,IAAIm2N,EAAM/mN,EAAE,MACvEpP,QAAQ,YAAW,SAASg3N,EAAIC,GACxC,MAAO,IAAMA,EAAKjyK,EAAK,IAAKmxK,EAAM/mN,EAAE,IAAI3J,OAAOwxN,EAAGxxN,YAClB,IAAvB+vN,EAAIp1N,QAAQ,MAAe6O,EAAIA,EAAEjP,QAAQ,OAAO,KAGxD,GADAw1N,EAAMA,EAAIx1N,QAAQ,YAAa,MAC3BoP,EAAIomN,EAAIvtM,MAAM,gBACjB,OAAOupB,GAAQ,GAAG8lL,GAAMt3N,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOoP,EAAE,GAAG3J,OAAO,KAAK,KAErH,GAAI2J,EAAIomN,EAAIvtM,MAAM,qBAAuB,OAAOupB,EAAOmkL,EAAU,GAAG2B,GACpE,GAAIloN,EAAIomN,EAAIvtM,MAAM,qBACjB,OAAOyR,EAAM,EAAI,IAAMu+L,EAAcptN,EAAM2qN,GAAM97L,GAAOi8L,EAAU,GAAGj8L,GAAQ,IAAMsrB,EAAK,IAAI51C,EAAE,GAAG3J,QAElG,GAAI2J,EAAIomN,EAAIvtM,MAAM,YAAc,OAAOgwM,EAAcptN,EAAK2qN,EAAIx1N,QAAQ,SAAS,IAAI05B,GACnF,GAAItqB,EAAIomN,EAAIvtM,MAAM,2BAGjB,OAFAhZ,EAAI4jN,EAAQoF,EAAcptN,EAAM2qN,EAAIx1N,QAAQ,SAAS,IAAK05B,IAC1D09L,EAAK,EACEvE,EAAQA,EAAQ2C,EAAIx1N,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAAS4D,GAAG,OAAOwzN,EAAGnoN,EAAExJ,OAAOwJ,EAAEyuC,OAAO05K,KAAU,MAAJxzN,EAAQ,IAAI,OAEzH,GAAG4xN,EAAIvtM,MAAM+iL,GAEZ,MAAO,KADP/7L,EAAIgpN,EAAcptN,EAAM,aAAc6uB,IACvB3J,OAAO,EAAE,GAAK,KAAO9gB,EAAE8gB,OAAO,EAAG,GAAK,IAAM9gB,EAAE8gB,OAAO,GAErE,IAAI8nM,EAAK,GACT,GAAIzoN,EAAIomN,EAAIvtM,MAAM,+BAUjB,OATAmvM,EAAKv2N,KAAKK,IAAIkO,EAAE,GAAG3J,OAAO,GAC1B4xN,EAAK7D,EAAK8D,EAAMz2N,KAAKa,IAAI,GAAG01N,GAAI,GAAG,GACnCnoN,EAAI,GAAKuiC,EAEoB,MAD7BqmL,EAAK/B,EAAU,IAAK1mN,EAAE,GAAIioN,EAAG,KACvB35K,OAAOm6K,EAAGpyN,OAAO,KAAWoyN,EAAKA,EAAG9nM,OAAO,EAAE8nM,EAAGpyN,OAAO,GAAK,KAClEwJ,GAAK4oN,EAAKzoN,EAAE,GAAK,IAAMA,EAAE,IACzByoN,EAAK7E,EAAMqE,EAAG,GAAGD,IACX3xN,OAAS2J,EAAE,GAAG3J,SAAQoyN,EAAK1B,EAAM/mN,EAAE,GAAG2gB,OAAO3gB,EAAE,GAAG3J,OAAOoyN,EAAGpyN,SAAWoyN,GAC7E5oN,GAAK4oN,EAGN,GAAIzoN,EAAIomN,EAAIvtM,MAAM,iCAGjB,OAFAmvM,EAAKv2N,KAAKK,IAAIL,KAAKM,IAAIiO,EAAE,GAAG3J,OAAQ2J,EAAE,GAAG3J,QAAQ,GAE1C+rC,IADP6lL,EAAK7D,EAAK8D,EAAMz2N,KAAKa,IAAI,GAAG01N,GAAI,GAAG,IACjB,KAAKC,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKtE,EAAKsE,EAAG,GAAGD,GAAMhoN,EAAE,GAAK,IAAMA,EAAE,GAAK4jN,EAAMqE,EAAG,GAAGD,GAAKpyK,EAAK,IAAK,EAAEoyK,EAAG,EAAIhoN,EAAE,GAAG3J,OAAS2J,EAAE,GAAG3J,SAExJ,GAAI2J,EAAIomN,EAAIvtM,MAAM,YAEjB,OADAhZ,EAAI,GAAKyqB,EACN87L,EAAI/vN,QAAUwJ,EAAExJ,OAAewJ,EAC3BknN,EAAMX,EAAIzlM,OAAO,EAAEylM,EAAI/vN,OAAOwJ,EAAExJ,SAAWwJ,EAEnD,GAAIG,EAAIomN,EAAIvtM,MAAM,sBAAwB,CACzChZ,EAAI,GAAKyqB,EAAI8lB,QAAQ3+C,KAAKK,IAAIkO,EAAE,GAAG3J,OAAO,KAAKzF,QAAQ,YAAY,MACnEo3N,EAAKnoN,EAAE7O,QAAQ,KACf,IAAI03N,EAAOtC,EAAIp1N,QAAQ,KAAOg3N,EAAIW,EAAOvC,EAAI/vN,OAASwJ,EAAExJ,OAASqyN,EACjE,OAAO3B,EAAMX,EAAIzlM,OAAO,EAAE+nM,GAAQ7oN,EAAIumN,EAAIzlM,OAAOylM,EAAI/vN,OAAOsyN,IAE7D,GAAI3oN,EAAIomN,EAAIvtM,MAAM,sBACjB,OAAOyR,EAAM,EAAI,IAAMu+L,EAAcptN,EAAM2qN,GAAM97L,GAAOi8L,EAAS,GAAGj8L,GAAK15B,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAASg3N,GAAM,MAAO,OAASA,EAAGvxN,OAAS,EAAIqtN,EAAK,EAAE,EAAEkE,EAAGvxN,QAAU,IAAMuxN,KAAS,IAAMlE,EAAK,EAAE1jN,EAAE,GAAG3J,QAE5N,OAAO+vN,GACN,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI5xN,EAAI+xN,EAAS,GAAG2B,GAAO,MAAa,MAAN1zN,EAAY4tC,EAAO5tC,EAAI,GACvE,QACC,GAAG4xN,EAAIvtM,MAAM,aAAc,OAAOgwM,EAAcptN,EAAM2qN,EAAIvjN,MAAM,EAAEujN,EAAI9+B,YAAY,MAAOh9J,GAAOy8L,EAAMX,EAAIvjN,MAAMujN,EAAI9+B,YAAY,OAElI,MAAM,IAAIj3L,MAAM,uBAAyB+1N,EAAM,KAEhD,OAAO,SAAmB3qN,EAAM2qN,EAAK97L,GACpC,OAAY,EAAJA,KAAWA,EAAMu+L,EAAcptN,EAAM2qN,EAAK97L,GAAO68L,EAAc1rN,EAAM2qN,EAAK97L,IAlRlE,GAoRjB,SAAS4+L,EAAU9C,GAGlB,IAFA,IAAIt5K,EAAM,GACNq8K,GAAS,EACL5yN,EAAI,EAAG4jC,EAAI,EAAG5jC,EAAI6vN,EAAI/vN,SAAUE,EAAG,OAAe6vN,EAAIjrD,WAAW5kK,IACxE,KAAK,GACJ4yN,GAAUA,EAAQ,MACnB,KAAK,GAAI,KAAK,GAAI,KAAK,KACpB5yN,EAAG,MACN,KAAK,GACJu2C,EAAIA,EAAIz2C,QAAU+vN,EAAIzlM,OAAOwZ,EAAE5jC,EAAE4jC,GACjCA,EAAI5jC,EAAE,EAGR,GADAu2C,EAAIA,EAAIz2C,QAAU+vN,EAAIzlM,OAAOwZ,IACf,IAAXgvL,EAAiB,MAAM,IAAI94N,MAAM,WAAa+1N,EAAM,0BACvD,OAAOt5K,EAERy2K,EAAI6F,OAASF,EACb,IAAIG,EAAU,gBACd,SAASC,EAAYlD,GAEpB,IADA,IAAI7vN,EAAI,EAAeuV,EAAI,GAAIjM,EAAI,GAC7BtJ,EAAI6vN,EAAI/vN,QACb,OAAQyV,EAAIs6M,EAAI93K,OAAO/3C,IACtB,IAAK,IAAQ0tN,EAAUmC,EAAK7vN,KAAIA,GAAI,GAAGA,IAAK,MAC5C,IAAK,IAAK,KAAsC,KAAzB6vN,EAAIjrD,aAAa5kK,IAAcA,EAAI6vN,EAAI/vN,WAAsBE,EAAG,MACvF,IAAK,KACL,IAAK,IAAKA,GAAG,EAAG,MAChB,IAAK,MAAOA,EAAG,MACf,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB6vN,EAAI93K,OAAO/3C,EAAE,IAAkC,MAApB6vN,EAAI93K,OAAO/3C,EAAE,GAAY,OAAO,EAE/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAEvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAO,EAC7E,IAAK,IAAK,IAAK,IACd,GAAsC,QAAnC6vN,EAAIzlM,OAAOpqB,EAAG,GAAG6lB,cAAyB,OAAO,EACpD,GAAsC,UAAnCgqM,EAAIzlM,OAAOpqB,EAAG,GAAG6lB,cAA2B,OAAO,IACpD7lB,EAAG,MACN,IAAK,IAEJ,IADAsJ,EAAIiM,EACsB,MAApBs6M,EAAI93K,OAAO/3C,MAAgBA,EAAI6vN,EAAI/vN,QAAQwJ,GAAKumN,EAAI93K,OAAO/3C,GACjE,GAAGsJ,EAAEgZ,MAAMwwM,GAAU,OAAO,EAC5B,MACD,IAAK,IAEL,IAAK,IAAK,IAAK,IACd,KAAM9yN,EAAI6vN,EAAI/vN,SAAW,YAAYrF,QAAQ8a,EAAEs6M,EAAI93K,SAAS/3C,KAAO,GAAS,MAAHuV,GAA8B,KAAnBs6M,EAAI93K,OAAO/3C,EAAE,IAAa,KAAKvF,QAAQo1N,EAAI93K,OAAO/3C,EAAE,KAAK,KAC7I,MACD,IAAK,IAAK,KAAM6vN,EAAI93K,SAAS/3C,KAAOuV,IAAgB,MACpD,IAAK,MAAOvV,EAAuB,KAAjB6vN,EAAI93K,OAAO/3C,IAA8B,KAAjB6vN,EAAI93K,OAAO/3C,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,MAAOA,EAAG,MACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACpF,KAAMA,EAAI6vN,EAAI/vN,QAAU,aAAarF,QAAQo1N,EAAI93K,SAAS/3C,KAAO,IAAgB,MAClF,IAAK,IACL,UAAWA,EAGb,OAAO,EAGR,SAASgzN,EAASnD,EAAK5mN,EAAGolN,EAAM4E,GAI/B,IAHA,IAA8CC,EAAItvL,EAAG6sL,EAAjDl6K,EAAM,GAAIjtC,EAAI,GAAItJ,EAAI,EAAGuV,EAAI,GAAI49M,EAAI,IACrCzuG,EAAG,IAED1kH,EAAI6vN,EAAI/vN,QACb,OAAQyV,EAAIs6M,EAAI93K,OAAO/3C,IACtB,IAAK,IACJ,IAAI0tN,EAAUmC,EAAK7vN,GAAI,MAAM,IAAIlG,MAAM,0BAA4Byb,EAAI,OAAQs6M,GAC/Et5K,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAE,WAAYjJ,GAAG,EAAG,MAC/C,IAAK,IACJ,IAAIsJ,EAAE,GAAgC,MAA5BmnN,EAAGZ,EAAIjrD,aAAa5kK,KAAcA,EAAI6vN,EAAI/vN,QAASwJ,GAAKokC,OAAOu9K,aAAawF,GACtFl6K,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEK,KAAMtJ,EAAG,MACtC,IAAK,KAAM,IAAIqiC,EAAIwtL,EAAI93K,SAAS/3C,GAAIiH,EAAW,MAANo7B,GAAmB,MAANA,EAAaA,EAAI,IACtEkU,EAAIA,EAAIz2C,QAAU,CAACmH,EAAEA,EAAGgC,EAAEo5B,KAAMriC,EAAG,MACpC,IAAK,IAAKu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAE,KAAMjJ,GAAG,EAAG,MAClD,IAAK,IACJu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEA,KAAMjJ,EAAG,MACtC,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB6vN,EAAI93K,OAAO/3C,EAAE,IAAkC,MAApB6vN,EAAI93K,OAAO/3C,EAAE,GAAY,CACtD,GAAO,MAAJkzN,GAAyE,OAA7DA,EAAG9E,EAAgBnlN,EAAGolN,EAA0B,MAApBwB,EAAI93K,OAAO/3C,EAAE,KAA0B,MAAO,GACzFu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAE4mN,EAAIzlM,OAAOpqB,EAAE,IAAKmzN,EAAM59M,EAAGvV,GAAG,EAAG,MAG/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtDuV,EAAIA,EAAEiS,cAEP,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChE,GAAGve,EAAI,EAAG,MAAO,GACjB,GAAO,MAAJiqN,GAAgD,OAApCA,EAAG9E,EAAgBnlN,EAAGolN,IAAoB,MAAO,GACzD,IAAP/kN,EAAIiM,IAAWvV,EAAI6vN,EAAI/vN,QAAU+vN,EAAI93K,OAAO/3C,GAAGwnB,gBAAkBjS,GAAGjM,GAAGiM,EAC9D,MAANA,GAAmC,MAAtB49M,EAAI3rM,gBAAuBjS,EAAI,KACtC,MAANA,IAAWA,EAAImvG,GAClBnuE,EAAIA,EAAIz2C,QAAU,CAACmH,EAAEsO,EAAGtM,EAAEK,GAAI6pN,EAAM59M,EAAG,MACxC,IAAK,IAAK,IAAK,IACd,IAAIoqJ,EAAE,CAAC14J,EAAEsO,EAAGtM,EAAEsM,GAKd,GAJO,MAAJ29M,IAAUA,EAAG9E,EAAgBnlN,EAAGolN,IACG,QAAnCwB,EAAIzlM,OAAOpqB,EAAG,GAAG6lB,eAAkC,MAAJqtM,IAAUvzD,EAAE12J,EAAIiqN,EAAGhyI,GAAK,GAAK,IAAM,KAAKy+E,EAAE14J,EAAI,IAAKy9G,EAAG,IAAI1kH,GAAG,GACrE,UAAlC6vN,EAAIzlM,OAAOpqB,EAAE,GAAG6lB,eAAoC,MAAJqtM,IAAUvzD,EAAE12J,EAAIiqN,EAAGhyI,GAAK,GAAK,KAAO,MAAMy+E,EAAE14J,EAAI,IAAKjH,GAAG,EAAG0kH,EAAG,MAC/Gi7C,EAAE14J,EAAI,MAAOjH,GACb,MAAJkzN,GAAoB,MAARvzD,EAAE14J,EAAW,MAAO,GACnCsvC,EAAIA,EAAIz2C,QAAU6/J,EAAGwzD,EAAM59M,EAAG,MAC/B,IAAK,IAEJ,IADAjM,EAAIiM,EACsB,MAApBs6M,EAAI93K,OAAO/3C,MAAgBA,EAAI6vN,EAAI/vN,QAAQwJ,GAAKumN,EAAI93K,OAAO/3C,GACjE,GAAmB,MAAhBsJ,EAAEgD,OAAO,GAAY,KAAM,4BAA8BhD,EAAI,IAChE,GAAGA,EAAEgZ,MAAMwwM,GAAU,CACpB,GAAO,MAAJI,GAAgD,OAApCA,EAAG9E,EAAgBnlN,EAAGolN,IAAoB,MAAO,GAChE93K,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEK,EAAEke,eAC9B2rM,EAAM7pN,EAAEyuC,OAAO,QACNzuC,EAAE7O,QAAQ,MAAQ,IAC3B6O,GAAKA,EAAEgZ,MAAM,kBAAkB,IAAI,IAAI,IACnCywM,EAAYlD,KAAMt5K,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAIgC,EAAEK,KAElD,MAED,IAAK,IACJ,GAAS,MAAN4pN,EAAY,CACP,IAAP5pN,EAAIiM,IAAWvV,EAAI6vN,EAAI/vN,QAAgC,OAArByV,EAAEs6M,EAAI93K,OAAO/3C,KAAasJ,GAAKiM,EACjEghC,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEK,GAAI,MAGlC,IAAK,IAAK,IAAK,IACP,IAAPA,EAAIiM,IAAYvV,EAAI6vN,EAAI/vN,QAAU,YAAYrF,QAAQ8a,EAAEs6M,EAAI93K,OAAO/3C,KAAO,GAAU,MAAHuV,GAA8B,KAAnBs6M,EAAI93K,OAAO/3C,EAAE,IAAaA,EAAI6vN,EAAI/vN,OAAS,GAAK,KAAKrF,QAAQo1N,EAAI93K,OAAO/3C,EAAE,KAAK,GAAIsJ,GAAKiM,EACpLghC,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEK,GAAI,MACjC,IAAK,IACG,IAAPA,EAAIiM,EAASs6M,EAAI93K,SAAS/3C,KAAOuV,GAAGjM,GAAGiM,EACvCghC,EAAIA,EAAIz2C,QAAU,CAACmH,EAAEsO,EAAGtM,EAAEK,GAAI6pN,EAAM59M,EAAG,MACxC,IAAK,MAAOvV,EAAuB,KAAjB6vN,EAAI93K,OAAO/3C,IAA8B,KAAjB6vN,EAAI93K,OAAO/3C,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,IAAKu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAU,IAAPgsN,EAAS,IAAI19M,EAAItM,EAAEsM,KAAMvV,EAAG,MACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7E,IAAPsJ,EAAIiM,EAASvV,EAAI6vN,EAAI/vN,QAAU,aAAarF,QAAQo1N,EAAI93K,SAAS/3C,KAAO,GAAGsJ,GAAGumN,EAAI93K,OAAO/3C,GACzFu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEK,GAAI,MACjC,IAAK,IAAKitC,EAAIA,EAAIz2C,QAAU,CAACmH,EAAEsO,EAAGtM,EAAEsM,KAAMvV,EAAG,MAC7C,IAAK,IAAKu2C,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAE,OAAQjJ,EAAG,MACjD,QACC,IAA2D,IAAxD,6CAAwCvF,QAAQ8a,GAAW,MAAM,IAAIzb,MAAM,0BAA4Byb,EAAI,OAASs6M,GACvHt5K,EAAIA,EAAIz2C,QAAU,CAACmH,EAAE,IAAKgC,EAAEsM,KAAMvV,EAGrC,IAAqBozN,EAAjB11F,EAAK,EAAGoyF,EAAM,EAClB,IAAI9vN,EAAEu2C,EAAIz2C,OAAO,EAAGqzN,EAAI,IAAKnzN,GAAK,IAAKA,EACtC,OAAOu2C,EAAIv2C,GAAGiH,GACb,IAAK,IAAK,IAAK,IAAKsvC,EAAIv2C,GAAGiH,EAAIy9G,EAAIyuG,EAAI,IAAQz1F,EAAK,IAAGA,EAAK,GAAG,MAC/D,IAAK,KACA01F,EAAI78K,EAAIv2C,GAAGiJ,EAAEqZ,MAAM,YAAWwtM,EAAI50N,KAAKM,IAAIs0N,EAAIsD,EAAI,GAAGtzN,OAAO,IAC9D49H,EAAK,IAAGA,EAAK,GAEjB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAKy1F,EAAI58K,EAAIv2C,GAAGiH,EAAG,MACtD,IAAK,IAAgB,MAARksN,IAAe58K,EAAIv2C,GAAGiH,EAAI,IAAQy2H,EAAK,IAAGA,EAAK,IAAK,MACjE,IAAK,IACJ,MACD,IAAK,IACDA,EAAK,GAAKnnF,EAAIv2C,GAAGiJ,EAAEqZ,MAAM,UAASo7G,EAAK,GACvCA,EAAK,GAAKnnF,EAAIv2C,GAAGiJ,EAAEqZ,MAAM,UAASo7G,EAAK,GACvCA,EAAK,GAAKnnF,EAAIv2C,GAAGiJ,EAAEqZ,MAAM,UAASo7G,EAAK,GAG7C,OAAOA,GACN,KAAK,EAAG,MACR,KAAK,EACJw1F,EAAGjgL,GAAK,KAAOigL,EAAGjgL,EAAI,IAAKigL,EAAGxxI,GAC3BwxI,EAAGxxI,GAAM,KAAMwxI,EAAGxxI,EAAI,IAAKwxI,EAAGp2L,GAC9Bo2L,EAAGp2L,GAAM,KAAMo2L,EAAGp2L,EAAI,IAAKo2L,EAAGhyI,GACjC,MACD,KAAK,EACJgyI,EAAGjgL,GAAK,KAAOigL,EAAGjgL,EAAI,IAAKigL,EAAGxxI,GAC3BwxI,EAAGxxI,GAAM,KAAMwxI,EAAGxxI,EAAI,IAAKwxI,EAAGp2L,GAInC,IAAeu2L,EAAXC,EAAO,GACX,IAAItzN,EAAE,EAAGA,EAAIu2C,EAAIz2C,SAAUE,EAC1B,OAAOu2C,EAAIv2C,GAAGiH,GACb,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACxC,IAAK,IAAKsvC,EAAIv2C,GAAGiJ,EAAI,GAAIstC,EAAIv2C,GAAGiH,EAAI,IAAK,MACzC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClGsvC,EAAIv2C,GAAGiJ,EAAI2mN,EAAWr5K,EAAIv2C,GAAGiH,EAAE29J,WAAW,GAAIruH,EAAIv2C,GAAGiJ,EAAGiqN,EAAIpD,GACxDv5K,EAAIv2C,GAAGiH,EAAI,IAAK,MACjB,IAAK,IAAK,IAAK,IAAK,IAAK,IAExB,IADAosN,EAAKrzN,EAAE,EACU,MAAXu2C,EAAI88K,KACS,OAAjB99M,EAAEghC,EAAI88K,GAAIpsN,IAAoB,MAANsO,IACjB,MAANA,GAAmB,MAANA,IAA2B,MAAbghC,EAAI88K,EAAG,KAA+B,MAAhB98K,EAAI88K,EAAG,GAAGpsN,GAA6B,MAAhBsvC,EAAI88K,EAAG,GAAGpsN,GAA6B,MAAhBsvC,EAAI88K,EAAG,GAAGpqN,IAC7F,MAAbstC,EAAIv2C,GAAGiH,IAAoB,MAANsO,GAAmB,MAANA,GAAmB,MAANA,IACzC,MAANA,IAA4B,MAAdghC,EAAI88K,GAAIpqN,GAA2B,MAAdstC,EAAI88K,GAAIpqN,GAA0B,MAAbstC,EAAI88K,EAAG,IAA6B,KAAf98K,EAAI88K,EAAG,GAAGpsN,KAExFsvC,EAAIv2C,GAAGiJ,GAAKstC,EAAI88K,GAAIpqN,EACpBstC,EAAI88K,GAAM,CAACpqN,EAAE,GAAIhC,EAAE,OAAQosN,EAE5BC,GAAQ/8K,EAAIv2C,GAAGiJ,EACfjJ,EAAIqzN,EAAG,EAAG,MACX,IAAK,IAAK98K,EAAIv2C,GAAGiH,EAAI,IAAKsvC,EAAIv2C,GAAGiJ,EAAI0mN,EAAY1mN,EAAEolN,GAGrD,IAAakF,EAAKC,EAAdC,EAAK,GACT,GAAGH,EAAKxzN,OAAS,EAAG,CACM,IAAtBwzN,EAAK1uD,WAAW,IAClB2uD,EAAOtqN,EAAE,GAA0B,KAAvBqqN,EAAK1uD,WAAW,IAAa37J,EAAIA,EAC7CuqN,EAAOrD,EAAU,IAAKmD,EAAMC,KAG5BC,EAAOrD,EAAU,IAAKmD,EADtBC,EAAOtqN,EAAE,GAAKgqN,EAAO,GAAKhqN,EAAIA,GAE3BsqN,EAAM,GAAKh9K,EAAI,IAAkB,KAAZA,EAAI,GAAGtvC,IAC9BusN,EAAOA,EAAKppM,OAAO,GACnBmsB,EAAI,GAAGttC,EAAI,IAAMstC,EAAI,GAAGttC,IAG1BoqN,EAAGG,EAAK1zN,OAAO,EACf,IAAI4zN,EAAQn9K,EAAIz2C,OAChB,IAAIE,EAAE,EAAGA,EAAIu2C,EAAIz2C,SAAUE,EAAG,GAAa,MAAVu2C,EAAIv2C,IAA0B,KAAZu2C,EAAIv2C,GAAGiH,GAAYsvC,EAAIv2C,GAAGiJ,EAAExO,QAAQ,MAAQ,EAAG,CAAEi5N,EAAQ1zN,EAAG,MAC/G,IAAI2zN,EAAMp9K,EAAIz2C,OACd,GAAG4zN,IAAUn9K,EAAIz2C,SAAiC,IAAvB0zN,EAAK/4N,QAAQ,KAAa,CACpD,IAAIuF,EAAEu2C,EAAIz2C,OAAO,EAAGE,GAAI,IAAIA,EACd,MAAVu2C,EAAIv2C,KAA2C,IAA7B,MAAMvF,QAAQ87C,EAAIv2C,GAAGiH,KACvCosN,GAAI98K,EAAIv2C,GAAGiJ,EAAEnJ,OAAO,GAAKuzN,GAAM98K,EAAIv2C,GAAGiJ,EAAEnJ,OAAQy2C,EAAIv2C,GAAGiJ,EAAIuqN,EAAKppM,OAAOipM,EAAG,EAAG98K,EAAIv2C,GAAGiJ,EAAEnJ,SACjFuzN,EAAK,EAAG98K,EAAIv2C,GAAGiJ,EAAI,IACpBstC,EAAIv2C,GAAGiJ,EAAIuqN,EAAKppM,OAAO,EAAGipM,EAAG,GAAIA,GAAM,GAC9C98K,EAAIv2C,GAAGiH,EAAI,IACX0sN,EAAQ3zN,GAENqzN,GAAI,GAAKM,EAAMp9K,EAAIz2C,SAAQy2C,EAAIo9K,GAAO1qN,EAAIuqN,EAAKppM,OAAO,EAAEipM,EAAG,GAAK98K,EAAIo9K,GAAO1qN,QAE1E,GAAGyqN,IAAUn9K,EAAIz2C,SAAiC,IAAvB0zN,EAAK/4N,QAAQ,KAAa,CAEzD,IADA44N,EAAKG,EAAK/4N,QAAQ,KAAK,EACnBuF,EAAE0zN,EAAO1zN,GAAI,IAAKA,EACrB,GAAa,MAAVu2C,EAAIv2C,KAA2C,IAA7B,MAAMvF,QAAQ87C,EAAIv2C,GAAGiH,GAA1C,CAGA,IAFA28B,EAAE2S,EAAIv2C,GAAGiJ,EAAExO,QAAQ,MAAM,GAAGuF,IAAI0zN,EAAMn9K,EAAIv2C,GAAGiJ,EAAExO,QAAQ,KAAK,EAAE87C,EAAIv2C,GAAGiJ,EAAEnJ,OAAO,EAC9E2zN,EAAKl9K,EAAIv2C,GAAGiJ,EAAEmhB,OAAOwZ,EAAE,GACjBA,GAAG,IAAKA,EACVyvL,GAAI,IAA6B,MAAvB98K,EAAIv2C,GAAGiJ,EAAE8uC,OAAOnU,IAAqC,MAAvB2S,EAAIv2C,GAAGiJ,EAAE8uC,OAAOnU,MAAa6vL,EAAKD,EAAKz7K,OAAOs7K,KAAQI,GAElGl9K,EAAIv2C,GAAGiJ,EAAIwqN,EACXl9K,EAAIv2C,GAAGiH,EAAI,IACX0sN,EAAQ3zN,EAIT,IAFGqzN,GAAI,GAAKM,EAAMp9K,EAAIz2C,SAAQy2C,EAAIo9K,GAAO1qN,EAAIuqN,EAAKppM,OAAO,EAAEipM,EAAG,GAAK98K,EAAIo9K,GAAO1qN,GAC9EoqN,EAAKG,EAAK/4N,QAAQ,KAAK,EACnBuF,EAAE0zN,EAAO1zN,EAAEu2C,EAAIz2C,SAAUE,EAC5B,GAAa,MAAVu2C,EAAIv2C,MAA4C,IAA7B,MAAMvF,QAAQ87C,EAAIv2C,GAAGiH,IAAajH,IAAM0zN,GAA9D,CAGA,IAFA9vL,EAAE2S,EAAIv2C,GAAGiJ,EAAExO,QAAQ,MAAM,GAAGuF,IAAI0zN,EAAMn9K,EAAIv2C,GAAGiJ,EAAExO,QAAQ,KAAK,EAAE,EAC9Dg5N,EAAKl9K,EAAIv2C,GAAGiJ,EAAEmhB,OAAO,EAAEwZ,GACjBA,EAAE2S,EAAIv2C,GAAGiJ,EAAEnJ,SAAU8jC,EACvByvL,EAAGG,EAAK1zN,SAAQ2zN,GAAMD,EAAKz7K,OAAOs7K,MAEtC98K,EAAIv2C,GAAGiJ,EAAIwqN,EACXl9K,EAAIv2C,GAAGiH,EAAI,IACX0sN,EAAQ3zN,IAIX,IAAIA,EAAE,EAAGA,EAAEu2C,EAAIz2C,SAAUE,EAAgB,MAAVu2C,EAAIv2C,IAAc,MAAMvF,QAAQ87C,EAAIv2C,GAAGiH,IAAI,IACzEssN,EAAON,EAAM,GAAKhqN,EAAI,GAAKjJ,EAAE,GAAoB,MAAfu2C,EAAIv2C,EAAE,GAAGiJ,GAAaA,EAAEA,EAC1DstC,EAAIv2C,GAAGiJ,EAAIknN,EAAU55K,EAAIv2C,GAAGiH,EAAGsvC,EAAIv2C,GAAGiJ,EAAGsqN,GACzCh9K,EAAIv2C,GAAGiH,EAAI,KAEZ,IAAI2sN,EAAS,GACb,IAAI5zN,EAAE,EAAGA,IAAMu2C,EAAIz2C,SAAUE,EAAgB,MAAVu2C,EAAIv2C,KAAY4zN,GAAUr9K,EAAIv2C,GAAGiJ,GACpE,OAAO2qN,EAtMR5G,EAAI6G,QAAUd,EAwMd/F,EAAI8G,MAAQd,EACZ,IAAIe,EAAU,UACVC,EAAW,wCACf,SAASC,EAAQhrN,EAAG4oN,GACnB,GAAS,MAANA,EAAY,OAAO,EACtB,IAAIqC,EAASznM,WAAWolM,EAAG,IAC3B,OAAOA,EAAG,IACT,IAAK,IAAM,GAAG5oN,GAAKirN,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGjrN,EAAKirN,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGjrN,EAAKirN,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGjrN,GAAKirN,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGjrN,GAAKirN,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGjrN,GAAKirN,EAAQ,OAAO,EAEnC,OAAO,EAuBR,SAAS5sM,EAAOuoM,EAAI5mN,EAAEK,GACb,MAALA,IAAWA,EAAI,IAClB,IAAIynN,EAAO,GACX,cAAclB,GACb,IAAK,SAC4BkB,EAAtB,UAAPlB,GAAmBvmN,EAAE6qN,OAAe7qN,EAAE6qN,OAC7BtE,EACZ,MACD,IAAK,SACsBkB,EAAhB,IAAPlB,GAAavmN,EAAE6qN,OAAe7qN,EAAE6qN,QACX,MAAX7qN,EAAE8qN,MAAiB9qN,EAAE8qN,MAASxG,GAAWiC,GAGxD,GAAGnC,EAAUqD,EAAK,GAAI,OAAOpB,EAAY1mN,EAAGK,GACzCL,aAAaof,OAAMpf,EAAI2lN,EAAc3lN,EAAGK,EAAEklN,WAC7C,IAAIjmN,EApCL,SAAoBA,EAAGU,GACtB,IAAI4mN,EAAM8C,EAAUpqN,GAChBkN,EAAIo6M,EAAI/vN,OAAQu0N,EAAMxE,EAAIp6M,EAAE,GAAGhb,QAAQ,KAE3C,GADGgb,EAAE,GAAK4+M,GAAK,KAAK5+M,EACjBo6M,EAAI/vN,OAAS,EAAG,MAAM,IAAIhG,MAAM,iCAAmC+1N,EAAIzlN,KAAK,KAAO,KACtF,GAAgB,kBAANnB,EAAgB,MAAO,CAAC,EAAkB,IAAf4mN,EAAI/vN,QAAgBu0N,GAAK,EAAExE,EAAIA,EAAI/vN,OAAO,GAAG,KAClF,OAAO+vN,EAAI/vN,QACV,KAAK,EAAG+vN,EAAMwE,GAAK,EAAI,CAAC,UAAW,UAAW,UAAWxE,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MAClG,KAAK,EAAGA,EAAMwE,GAAK,EAAI,CAACxE,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MACzF,KAAK,EAAGA,EAAMwE,GAAK,EAAI,CAACxE,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAGpF,IAAI6B,EAAKzoN,EAAI,EAAI4mN,EAAI,GAAK5mN,EAAI,EAAI4mN,EAAI,GAAKA,EAAI,GAC/C,IAA4B,IAAzBA,EAAI,GAAGp1N,QAAQ,OAAwC,IAAzBo1N,EAAI,GAAGp1N,QAAQ,KAAa,MAAO,CAACgb,EAAGi8M,GACxE,GAA4B,MAAzB7B,EAAI,GAAGvtM,MAAMyxM,IAA6C,MAAzBlE,EAAI,GAAGvtM,MAAMyxM,GAAkB,CAClE,IAAIO,EAAKzE,EAAI,GAAGvtM,MAAM0xM,GAClBO,EAAK1E,EAAI,GAAGvtM,MAAM0xM,GACtB,OAAOC,EAAQhrN,EAAGqrN,GAAM,CAAC7+M,EAAGo6M,EAAI,IAAMoE,EAAQhrN,EAAGsrN,GAAM,CAAC9+M,EAAGo6M,EAAI,IAAM,CAACp6M,EAAGo6M,EAAU,MAANyE,GAAoB,MAANC,EAAa,EAAI,IAE7G,MAAO,CAAC9+M,EAAGi8M,GAiBH8C,CAAWzD,EAAM9nN,GACzB,GAAGykN,EAAUnlN,EAAE,IAAK,OAAOonN,EAAY1mN,EAAGK,GAC1C,IAAS,IAANL,EAAYA,EAAI,YAAa,IAAS,IAANA,EAAaA,EAAI,aAC/C,GAAS,KAANA,GAAiB,MAALA,EAAW,MAAO,GACtC,OAAO+pN,EAASzqN,EAAE,GAAIU,EAAGK,EAAGf,EAAE,IAE/B,SAASksN,EAAW5E,EAAKljJ,GACxB,GAAiB,iBAAPA,EAAiB,CAC1BA,GAAOA,IAAQ,EACjB,IAAI,IAAI3sE,EAAI,EAAGA,EAAI,MAAUA,EAC7B,QAAmBqQ,GAAhBu9M,EAAU5tN,IACV,GAAG4tN,EAAU5tN,IAAM6vN,EAAK,CAAEljJ,EAAM3sE,EAAG,YADH2sE,EAAM,IAAGA,EAAM3sE,GAG/C2sE,EAAM,IAAGA,EAAM,KAGjB,OADDihJ,EAAUjhJ,GAAOkjJ,EACTljJ,EAERqgJ,EAAI55C,KAAOqhD,EACXzH,EAAI0H,OAAS9G,EACbZ,EAAI2H,UAAY,WAAuB,OAAO/G,GAC9CZ,EAAI4H,WAAa,SAAoBC,GACpC,IAAI,IAAI70N,EAAE,EAAM,KAAHA,IAAaA,OACXqQ,IAAXwkN,EAAI70N,IAAkBy0N,EAAWI,EAAI70N,GAAIA,IAE9CgtN,EAAIW,WAAaA,EACjBX,EAAI1lM,OAASA,GAEb2lM,EAASD,GAET,IAgGI8H,EAhGAC,EAAsC,CACzC,iBAAkB,UAClB,eAAgB/H,EAAI0H,OAAO,IAC3B,YAAa,sBACb,cAAe1H,EAAI0H,OAAO,IAC1B,aAAc1H,EAAI0H,OAAO,IACzB,YAAa1H,EAAI0H,OAAO,IACxB,cAAe1H,EAAI0H,OAAO,IAC1B,aAAc1H,EAAI0H,OAAO,IACzB,SAAY,uCACZ,MAAS1H,EAAI0H,OAAO,GACpB,SAAY1H,EAAI0H,OAAO,GACvB,QAAW1H,EAAI0H,OAAO,IACtB,WAAc1H,EAAI0H,OAAO,IACzB,SAAU,qBACV,aAAc,0BACd,SAAU,sBAGPM,EAAoC,CACvC,EAAK,4BACL,EAAK,iCACL,EAAK,kCACL,EAAK,uCACL,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SACN,GAAM,0CACN,GAAM,mDACN,GAAM,kDACN,GAAM,2DACN,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtD,GAAM,IACN,GAAM,OACN,GAAM,QACN,GAAM,WACN,GAAM,4BACN,GAAM,iCACN,GAAM,kCACN,GAAM,uCACN,GAAM,KACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,UAIHC,EAAc,oCA2ChB,SAASH,GACXA,EAAMv6K,QAAU,QAsBhB,IAAIonC,EAnBJ,WAGC,IAFA,IAAIpsE,EAAI,EAAG6+M,EAAQ,IAAIp5N,MAAM,KAErBkM,EAAG,EAAQ,KAALA,IAAYA,EASzBqO,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAIrO,IACW,UAAaqO,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,EAC/C6+M,EAAMltN,GAAKqO,EAGZ,MAA6B,qBAAf2/M,WAA6B,IAAIA,WAAWd,GAASA,EAG5De,GA+DRL,EAAMV,MAAQzyI,EACdmzI,EAAMM,KA/DN,SAAoBA,EAAMC,GAEzB,IADA,IAAIv0I,GAAY,EAARu0I,EAAWz9M,EAAIw9M,EAAKt1N,OAAS,EAC7BE,EAAI,EAAGA,EAAI4X,GAElBkpE,GADAA,EAAKA,IAAI,EAAKa,EAA2B,KAAxBb,EAAEs0I,EAAKxwD,WAAW5kK,UAC1B,EAAK2hF,EAA2B,KAAxBb,EAAEs0I,EAAKxwD,WAAW5kK,OAGpC,OADGA,IAAM4X,IAAGkpE,EAAKA,IAAI,EAAKa,EAA2B,KAAxBb,EAAIs0I,EAAKxwD,WAAW5kK,OACrC,EAAL8gF,GAyDRg0I,EAAM5I,IAtDN,SAAmBA,EAAKmJ,GACvB,GAAGnJ,EAAIpsN,OAAS,IAAO,OAYxB,SAAqBosN,EAAKmJ,GAEzB,IADA,IAAIv0I,GAAY,EAARu0I,EAAWz9M,EAAIs0M,EAAIpsN,OAAS,EAC5BE,EAAI,EAAGA,EAAI4X,GAQlBkpE,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAKA,IAAI,EAAKa,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,OAExB,KAAMA,EAAI4X,EAAE,GAAGkpE,EAAKA,IAAI,EAAKa,EAAe,KAAZb,EAAEorI,EAAIlsN,OACtC,OAAY,EAAL8gF,EAzBuBw0I,CAAYpJ,EAAKmJ,GAE/C,IADA,IAAIv0I,GAAY,EAARu0I,EAAWz9M,EAAIs0M,EAAIpsN,OAAS,EAC5BE,EAAI,EAAGA,EAAI4X,GAIlBkpE,GADAA,GADAA,GADAA,EAAKA,IAAI,EAAKa,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,UACd,EAAK2hF,EAAe,KAAZb,EAAEorI,EAAIlsN,OAExB,KAAMA,EAAI4X,EAAE,GAAGkpE,EAAKA,IAAI,EAAKa,EAAe,KAAZb,EAAEorI,EAAIlsN,OACtC,OAAY,EAAL8gF,GA6CRg0I,EAAMnvM,IA1BN,SAAmBA,EAAK0vM,GAEvB,IADA,IAC6B9/M,EAAGzZ,EAD5BglF,GAAY,EAARu0I,EACAr1N,EAAI,EAAG4X,EAAE+N,EAAI7lB,OAAcE,EAAI4X,IACtCrC,EAAIoQ,EAAIi/I,WAAW5kK,MACZ,IACN8gF,EAAKA,IAAI,EAAKa,EAAU,KAAPb,EAAIvrE,IACZA,EAAI,KAEburE,GADAA,EAAKA,IAAI,EAAKa,EAA0B,KAAvBb,GAAK,IAAMvrE,GAAG,EAAG,SACzB,EAAKosE,EAAqB,KAAlBb,GAAK,IAAO,GAAFvrE,KAClBA,GAAK,OAAUA,EAAI,OAC5BA,EAAa,IAAN,KAAFA,GAAYzZ,EAAwB,KAApB6pB,EAAIi/I,WAAW5kK,KAIpC8gF,GADAA,GADAA,GADAA,EAAKA,IAAI,EAAKa,EAAyB,KAAtBb,GAAK,IAAMvrE,GAAG,EAAG,QACzB,EAAKosE,EAA0B,KAAvBb,GAAK,IAAMvrE,GAAG,EAAG,SACzB,EAAKosE,EAAqC,KAAlCb,GAAK,IAAMhlF,GAAG,EAAG,IAAQ,EAAFyZ,IAAM,QACrC,EAAKosE,EAAqB,KAAlBb,GAAK,IAAO,GAAFhlF,MAI3BglF,GADAA,GADAA,EAAKA,IAAI,EAAKa,EAA2B,KAAxBb,GAAK,IAAMvrE,GAAG,GAAI,SAC1B,EAAKosE,EAA0B,KAAvBb,GAAK,IAAMvrE,GAAG,EAAG,SACzB,EAAKosE,EAAqB,KAAlBb,GAAK,IAAO,GAAFvrE,KAG7B,OAAY,EAALurE,GAvFPplC,CAAQo5K,EAAQ,IA+FjB,IAszCIS,EAtzCAC,EAAO,WACX,IAuFIC,EAvFAp8N,EAAU,GAWd,SAASq8N,EAAQlvN,GAChB,GAA6B,KAA1BA,EAAEuxC,OAAOvxC,EAAE1G,OAAS,GAAW,OAAwC,IAAhC0G,EAAE8F,MAAM,GAAG,GAAG7R,QAAQ,KAAe+L,EAAIkvN,EAAQlvN,EAAE8F,MAAM,GAAI,IACvG,IAAIiJ,EAAI/O,EAAEuqL,YAAY,KACtB,OAAe,IAAPx7K,EAAY/O,EAAIA,EAAE8F,MAAM,EAAGiJ,EAAE,GAGtC,SAASogN,EAASnvN,GACjB,GAA6B,KAA1BA,EAAEuxC,OAAOvxC,EAAE1G,OAAS,GAAW,OAAO61N,EAASnvN,EAAE8F,MAAM,GAAI,IAC9D,IAAIiJ,EAAI/O,EAAEuqL,YAAY,KACtB,OAAe,IAAPx7K,EAAY/O,EAAIA,EAAE8F,MAAMiJ,EAAE,GAUnC,SAASqgN,EAAe1J,EAAKxjM,GACT,kBAATA,IAAmBA,EAAO,IAAIL,KAAKK,IAC7C,IAAImtM,EAAMntM,EAAKksL,WAEfihB,GADAA,EAAMA,GAAO,EAAIntM,EAAK+rL,eACT,EAAK/rL,EAAKmsL,eAAe,EACtCqX,EAAI4J,YAAY,EAAGD,GACnB,IAAIE,EAAOrtM,EAAKE,cAAgB,KAEhCmtM,GADAA,EAAMA,GAAO,EAAKrtM,EAAKW,WAAW,IACrB,EAAIX,EAAK8e,UACtB0kL,EAAI4J,YAAY,EAAGC,GAqBpB,SAASC,EAAkBC,GAC1BC,GAAUD,EAAM,GAGhB,IAFA,IAAI3sN,EAAI,GACJ2pB,EAAQ,EACNgjM,EAAKxgN,GAAKwgN,EAAKn2N,OAAS,GAAG,CAChC,IAAIoF,EAAO+wN,EAAKE,WAAW,GACvBC,EAAKH,EAAKE,WAAW,GAAIE,EAAMJ,EAAKxgN,EAAI2gN,EACxC5vN,EAAI,GACR,OAAOtB,GAEN,KAAK,MAEO,GADX+tB,EAAQgjM,EAAKE,WAAW,MACV3vN,EAAE8vN,MAAQL,EAAKE,WAAW,IAErCC,EAAK,IACI,EAARnjM,IAAWzsB,EAAE+vN,MAAQN,EAAKE,WAAW,IAC7B,EAARljM,IAAWzsB,EAAEgwN,MAAQP,EAAKE,WAAW,KAEtC3vN,EAAE8vN,QAAO9vN,EAAEiwN,GAAK,IAAIpuM,KAAa,IAAR7hB,EAAE8vN,QAIhCL,EAAKxgN,EAAI4gN,EACT/sN,EAAEpE,GAAQsB,EAEX,OAAO8C,EAGR,SAASotN,IAAW,OAAOjB,IAAOA,EAAKn8N,EAAQ,MAC/C,SAAS+oD,EAAMyyI,EAAM/0K,GACrB,GAAc,IAAX+0K,EAAK,IAAyB,IAAXA,EAAK,GAAY,OAAO6hC,GAAU7hC,EAAM/0K,GAC9D,GAAG+0K,EAAKh1L,OAAS,IAAK,MAAM,IAAIhG,MAAM,iBAAmBg7L,EAAKh1L,OAAS,UACvE,IAAI82N,EAEAC,EACAC,EACAC,EACAC,EACAC,EALAC,EAAM,IAONC,EAAY,GAGZlB,EAAOnhC,EAAKxoL,MAAM,EAAE,KACxB4pN,GAAUD,EAAM,GAGhB,IAAImB,EAmFJ,SAAwBnB,GACvB,GAAmB,IAAhBA,EAAKA,EAAKxgN,IAAkC,IAApBwgN,EAAKA,EAAKxgN,EAAI,GAAY,MAAO,CAAC,EAAG,GAEhEwgN,EAAKoB,IAAIC,EAAkB,sBAI3BrB,EAAKxgN,GAAK,GAGV,IAAImhN,EAAOX,EAAKE,WAAW,EAAG,KAE9B,MAAO,CAACF,EAAKE,WAAW,EAAE,KAAMS,GA/FxBW,CAAetB,GAExB,OADAW,EAAOQ,EAAG,IAET,KAAK,EAAGF,EAAM,IAAK,MAAO,KAAK,EAAGA,EAAM,KAAM,MAC9C,KAAK,EAAG,GAAY,GAATE,EAAG,GAAS,OAAOT,GAAU7hC,EAAM/0K,GAE9C,QAAS,MAAM,IAAIjmB,MAAM,sCAAwC88N,GAIvD,MAARM,GAAyChB,GAA1BD,EAAOnhC,EAAKxoL,MAAM,EAAE4qN,GAAsB,IAE5D,IAAIM,EAAS1iC,EAAKxoL,MAAM,EAAE4qN,IAqF1B,SAAsBjB,EAAMW,GAC3B,IAAIlgL,EAOJ,OAHAu/K,EAAKxgN,GAAK,EAGFihC,EAAQu/K,EAAKE,WAAW,IAC/B,KAAK,EAAM,GAAW,GAARS,EAAW,MAAM,IAAI98N,MAAM,gCAAkC48C,GAAQ,MACnF,KAAK,GAAM,GAAW,GAARkgL,EAAW,MAAM,IAAI98N,MAAM,iCAAmC48C,GAAQ,MACpF,QAAS,MAAM,IAAI58C,MAAM,sCAAwC48C,GAIlEu/K,EAAKoB,IAAI,OAAQ,uBAGjBpB,EAAKoB,IAAI,eAAgB,cArG1BI,CAAaxB,EAAMW,GAGnB,IAAIc,EAAUzB,EAAKE,WAAW,EAAG,KACjC,GAAY,IAATS,GAA0B,IAAZc,EAAe,MAAM,IAAI59N,MAAM,uCAAyC49N,GAGzFzB,EAAKxgN,GAAK,EAGVshN,EAAYd,EAAKE,WAAW,EAAG,KAG/BF,EAAKxgN,GAAK,EAGVwgN,EAAKoB,IAAI,WAAY,6BAGrBL,EAAgBf,EAAKE,WAAW,EAAG,KAGnCU,EAAOZ,EAAKE,WAAW,EAAG,KAG1Bc,EAAchB,EAAKE,WAAW,EAAG,KAGjCW,EAAgBb,EAAKE,WAAW,EAAG,KAGnC,IAAI,IAAIx2D,GAAK,EAAG/7H,EAAI,EAAGA,EAAI,QAC1B+7H,EAAIs2D,EAAKE,WAAW,EAAG,MAClB,KAF4BvyL,EAGjCuzL,EAAUvzL,GAAK+7H,EAIhB,IAAIg4D,EAmEJ,SAAmB7iC,EAAMoiC,GAGxB,IAFA,IAAIU,EAAW18N,KAAKc,KAAK84L,EAAKh1L,OAAOo3N,GAAK,EACtCS,EAAU,GACN33N,EAAE,EAAGA,EAAI43N,IAAY53N,EAAG23N,EAAQ33N,EAAE,GAAK80L,EAAKxoL,MAAMtM,EAAEk3N,GAAKl3N,EAAE,GAAGk3N,GAEtE,OADAS,EAAQC,EAAS,GAAK9iC,EAAKxoL,MAAMsrN,EAASV,GACnCS,EAxEME,CAAU/iC,EAAMoiC,IAkI9B,SAASY,EAAWnrJ,EAAKorJ,EAAKJ,EAAST,EAAKC,GAC3C,IAAIx3D,EAAIq4D,EACR,GAAGrrJ,IAAQqrJ,GACV,GAAW,IAARD,EAAW,MAAM,IAAIj+N,MAAM,0CACxB,IAAY,IAAT6yE,EAAyB,CAClC,IAAIsrJ,EAASN,EAAQhrJ,GAAMpjE,GAAK2tN,IAAM,GAAG,EACzC,IAAIe,EAAQ,OACZ,IAAI,IAAIj4N,EAAI,EAAGA,EAAIuJ,IACdo2J,EAAIu4D,GAAcD,EAAS,EAAFj4N,MAAUg4N,IADhBh4N,EAEvBm3N,EAAUh1N,KAAKw9J,GAEhBm4D,EAAWI,GAAcD,EAAOf,EAAI,GAAGa,EAAM,EAAGJ,EAAST,EAAKC,IA3IhEW,CAAWb,EAAaH,EAAea,EAAST,EAAKC,GAGrD,IAAIgB,EA+JJ,SAA0BR,EAASZ,EAAWI,EAAWD,GACxD,IAAIkB,EAAKT,EAAQ73N,OAAQq4N,EAAe,GACpCE,EAAO,GAAInM,EAAM,GAAIoM,EAAY,GACjCC,EAAUrB,EAAM,EAAGl3N,EAAE,EAAG4jC,EAAE,EAAGvS,EAAE,EAAGgiM,EAAG,EACzC,IAAIrzN,EAAE,EAAGA,EAAIo4N,IAAMp4N,EAGlB,GAFAksN,EAAO,IACP76L,EAAKrxB,EAAI+2N,IAAoBqB,IAAI/mM,GAAG+mM,IACjCC,EAAKhnM,GAAR,CACAinM,EAAY,GACZ,IAAIE,EAAO,GACX,IAAI50L,EAAEvS,EAAGuS,GAAG,GAAI,CACf40L,EAAK50L,IAAK,EACVy0L,EAAKz0L,IAAK,EACVsoL,EAAIA,EAAIpsN,QAAU8jC,EAClB00L,EAAUn2N,KAAKw1N,EAAQ/zL,IACvB,IAAI60L,EAAOtB,EAAUj8N,KAAKU,MAAQ,EAAFgoC,EAAIszL,IAEpC,GAAGA,EAAM,GADT7D,EAAS,EAAFzvL,EAAO20L,GACG,MAAM,IAAIz+N,MAAM,yBAA2B8pC,EAAI,MAAMszL,GACtE,IAAIS,EAAQc,GAAO,MAEnB,GADA70L,EAAIs0L,GAAcP,EAAQc,GAAOpF,GAC9BmF,EAAK50L,GAAI,MAEbu0L,EAAY9mM,GAAM,CAAC+5F,MAAO8gG,EAAKlnN,KAAK0zN,GAAW,CAACJ,KAEjD,OAAOH,EAvLUQ,CAAiBhB,EAASZ,EAAWI,EAAWD,GAElEiB,EAAYpB,GAAW7wN,KAAO,aAC3B2wN,EAAO,GAAKG,IAAkBgB,IAAYG,EAAYnB,GAAe9wN,KAAO,YAC/EiyN,EAAYhB,EAAU,IAAIjxN,KAAO,OACjCiyN,EAAYhB,UAAYA,EACxBgB,EAAYjB,IAAMA,EAGlB,IAAgB0B,EAAQ,GAAIC,EAAY,GAAIC,EAAY,IAkLxD,SAAwB/B,EAAWoB,EAAaR,EAASiB,EAAO/B,EAAMkC,EAAOF,EAAWG,GAIvF,IAHA,IAEwB9yN,EAFpB+yN,EAAgB,EAAGt8F,EAAMi8F,EAAM94N,OAAO,EAAE,EACxCm4N,EAASE,EAAYpB,GAAW/xN,KAChChF,EAAI,EAAGk5N,EAAU,EACfl5N,EAAIi4N,EAAOn4N,OAAQE,GAAI,IAAK,CACjC,IAAIi2N,EAAOgC,EAAO3rN,MAAMtM,EAAGA,EAAE,KAC7Bk2N,GAAUD,EAAM,IAChBiD,EAAUjD,EAAKE,WAAW,GAC1BjwN,EAAOizN,GAAUlD,EAAK,EAAEiD,EAAQv8F,GAChCi8F,EAAMz2N,KAAK+D,GACX,IAAIoD,EAAK,CACRpD,KAAOA,EACPhB,KAAO+wN,EAAKE,WAAW,GACvBz1K,MAAOu1K,EAAKE,WAAW,GACvBv+M,EAAOq+M,EAAKE,WAAW,EAAG,KAC1B10I,EAAOw0I,EAAKE,WAAW,EAAG,KAC1Br1I,EAAOm1I,EAAKE,WAAW,EAAG,KAC1BiD,MAAOnD,EAAKE,WAAW,IACvB3qN,MAAOyqN,EAAKE,WAAW,EAAG,KAC1B/4N,MAAO,EACP2+E,KAAM,GAGM,IADDk6I,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,KAC3E7sN,EAAE+vN,GAAKC,EAAUrD,EAAMA,EAAKxgN,EAAE,IAEjC,IADDwgN,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,KAC3E7sN,EAAEmtN,GAAK6C,EAAUrD,EAAMA,EAAKxgN,EAAE,IAC9CnM,EAAElM,MAAQ64N,EAAKE,WAAW,EAAG,KAC7B7sN,EAAEyyE,KAAOk6I,EAAKE,WAAW,EAAG,KACzB7sN,EAAEyyE,KAAO,GAAKzyE,EAAElM,MAAQ,IAAKkM,EAAEyyE,KAAOzyE,EAAEpE,KAAO,EAAGoE,EAAElM,MAAQ46N,EAAY1uN,EAAEpD,KAAO,IACtE,IAAXoD,EAAEpE,MACJ+zN,EAAgB3vN,EAAElM,MACfy5N,EAAO,GAAKoC,IAAkBjB,IAAYG,EAAYc,GAAe/yN,KAAO,gBAEtEoD,EAAEyyE,MAAQ,MACnBzyE,EAAEiwN,QAAU,WACgBlpN,IAAzB8nN,EAAY7uN,EAAElM,SAAsB+6N,EAAY7uN,EAAElM,OAASo8N,EAAgB7B,EAASruN,EAAElM,MAAO+6N,EAAYhB,UAAWgB,EAAYjB,MACnIiB,EAAY7uN,EAAElM,OAAO8I,KAAOoD,EAAEpD,KAC9BoD,EAAEmgE,QAAW0uJ,EAAY7uN,EAAElM,OAAO4H,KAAKsH,MAAM,EAAEhD,EAAEyyE,QAEjDzyE,EAAEiwN,QAAU,UACTjwN,EAAEyyE,KAAO,EAAGzyE,EAAEyyE,KAAO,EAChBk9I,IAAkBjB,GAAc1uN,EAAElM,QAAU46N,GAAcG,EAAYc,KAC7E3vN,EAAEmgE,QAAUgwJ,EAAenwN,EAAG6uN,EAAYc,GAAej0N,MAAOmzN,EAAYa,IAAO,IAAIh0N,QAGtFsE,EAAEmgE,SAASysJ,GAAU5sN,EAAEmgE,QAAS,GACnCsvJ,EAAM7yN,GAAQoD,EACduvN,EAAU12N,KAAKmH,IAhOjBowN,CAAe3C,EAAWoB,EAAaR,EAASiB,EAAO/B,EAD3C,GACwDgC,EAAW7B,GA6D/E,SAA0B2C,EAAIC,EAAIhB,GAIjC,IAHA,IAAI54N,EAAI,EAAG4X,EAAI,EAAG6pE,EAAI,EAAGX,EAAI,EAAGl9C,EAAI,EAAG+4F,EAAKi8F,EAAM94N,OAC9C+5N,EAAM,GAAIl6D,EAAI,GAEZ3/J,EAAI28H,IAAM38H,EAAK65N,EAAI75N,GAAG2/J,EAAE3/J,GAAGA,EAAG45N,EAAG55N,GAAG44N,EAAM54N,GAEhD,KAAM4jC,EAAI+7H,EAAE7/J,SAAU8jC,EACrB5jC,EAAI2/J,EAAE/7H,GACNhsB,EAAI+hN,EAAG35N,GAAG4X,EAAG6pE,EAAIk4I,EAAG35N,GAAGyhF,EAAGX,EAAI64I,EAAG35N,GAAG8gF,EACjC+4I,EAAI75N,KAAOA,KACH,IAAP4X,GAAyBiiN,EAAIjiN,KAAOA,IAAGiiN,EAAI75N,GAAK65N,EAAIjiN,KAC7C,IAAP6pE,GAAYo4I,EAAIp4I,KAAOA,IAAGo4I,EAAI75N,GAAK65N,EAAIp4I,MAEjC,IAAPX,IAAuB+4I,EAAI/4I,GAAK9gF,IACzB,IAAP4X,GAAY5X,GAAK65N,EAAI75N,KAAM65N,EAAIjiN,GAAKiiN,EAAI75N,GAAO2/J,EAAEoxB,YAAYn5K,GAAKgsB,GAAG+7H,EAAEx9J,KAAKyV,KACrE,IAAP6pE,GAAYzhF,GAAK65N,EAAI75N,KAAM65N,EAAIp4I,GAAKo4I,EAAI75N,GAAO2/J,EAAEoxB,YAAYtvG,GAAK79C,GAAG+7H,EAAEx9J,KAAKs/E,IAEhF,IAAIzhF,EAAE,EAAGA,EAAI28H,IAAM38H,EAAM65N,EAAI75N,KAAOA,KACzB,IAAPyhF,GAAyBo4I,EAAIp4I,KAAOA,EAAGo4I,EAAI75N,GAAK65N,EAAIp4I,IACxC,IAAP7pE,GAAYiiN,EAAIjiN,KAAOA,IAAGiiN,EAAI75N,GAAK65N,EAAIjiN,KAGhD,IAAI5X,EAAE,EAAGA,EAAI28H,IAAM38H,EAClB,GAAkB,IAAf25N,EAAG35N,GAAGkF,KAAT,CAEA,IADA0+B,EAAI5jC,IACI65N,EAAIj2L,GAAI,GACfA,EAAIi2L,EAAIj2L,GACRg2L,EAAG55N,GAAK45N,EAAGh2L,GAAK,IAAMg2L,EAAG55N,SACX,IAAN4jC,IAAY,IAAMi2L,EAAIj2L,IAAMA,GAAKi2L,EAAIj2L,IAC9Ci2L,EAAI75N,IAAM,EAIX,IADA45N,EAAG,IAAM,IACL55N,EAAE,EAAGA,EAAI28H,IAAM38H,EACA,IAAf25N,EAAG35N,GAAGkF,OAAyB00N,EAAG55N,IAAM,KA7F7C85N,CAAiBjB,EAAWC,EAAWF,GACvCA,EAAMliL,QAEN,IAAIptC,EAAI,CACPuvN,UAAWA,EACXC,UAAWA,GAKZ,OADG/4M,GAAWA,EAAQg6M,MAAKzwN,EAAEywN,IAAM,CAACvC,OAAQA,EAAQG,QAASA,IACtDruN,EAuFP,SAASmwN,EAAepuN,EAAO4P,EAAS+9M,GAKvC,IAJA,IAAI57N,EAAQiO,EAAMjO,MAAO2+E,EAAO1wE,EAAM0wE,KAElCzyE,EAAI,GACJqjE,EAAMvvE,EACJ47N,GAAQj9I,EAAO,GAAKpP,GAAO,GAChCrjE,EAAEnH,KAAK8Y,EAAQ3O,MAAMqgE,EAAMqtJ,EAAMrtJ,EAAMqtJ,EAAOA,IAC9Cj+I,GAAQi+I,EACRrtJ,EAAMurJ,GAAcc,EAAY,EAANrsJ,GAE3B,OAAgB,IAAbrjE,EAAExJ,OAAsBm6N,GAAQ,GAC3BrN,EAAQtjN,GAAGgD,MAAM,EAAGjB,EAAM0wE,MAqBnC,SAASy9I,EAAgB7B,EAASv6N,EAAO+5N,EAAWD,EAAKmB,GACxD,IAAInM,EAAM,GAAIoM,EAAY,GACtBD,IAAMA,EAAO,IACjB,IAAIE,EAAUrB,EAAM,EAAGtzL,EAAI,EAAGyvL,EAAK,EACnC,IAAIzvL,EAAExmC,EAAOwmC,GAAG,GAAI,CACnBy0L,EAAKz0L,IAAK,EACVsoL,EAAIA,EAAIpsN,QAAU8jC,EAClB00L,EAAUn2N,KAAKw1N,EAAQ/zL,IACvB,IAAI60L,EAAOtB,EAAUj8N,KAAKU,MAAQ,EAAFgoC,EAAIszL,IAEpC,GAAGA,EAAM,GADT7D,EAAS,EAAFzvL,EAAO20L,GACG,MAAM,IAAIz+N,MAAM,yBAA2B8pC,EAAI,MAAMszL,GACtE,IAAIS,EAAQc,GAAO,MACnB70L,EAAIs0L,GAAcP,EAAQc,GAAOpF,GAElC,MAAO,CAACjoG,MAAO8gG,EAAKlnN,KAAK0zN,GAAW,CAACJ,KAmFtC,SAASgB,EAAUrD,EAAMtqL,GACxB,OAAO,IAAItjB,KAA6G,KAAnG6xM,GAAejE,EAAKtqL,EAAO,GAAG,IAAKzwC,KAAKa,IAAI,EAAE,IAAIm+N,GAAejE,EAAKtqL,GAAQ,IAAQ,cAiB5G,SAASwuL,EAASC,EAAK/L,GACtB,IAAI/kN,EAAI+kN,GAAQ,GAAIlmK,EAAO7+C,EAAE6+C,MAAQ,aAGrC,GAFIiyK,EAAItB,YAAWsB,EAAItB,UAAY,IAC/BsB,EAAIvB,YAAWuB,EAAIvB,UAAY,IAChCuB,EAAItB,UAAUh5N,SAAWs6N,EAAIvB,UAAU/4N,OAAQ,MAAM,IAAIhG,MAAM,8BACtC,IAAzBsgO,EAAItB,UAAUh5N,SAChBs6N,EAAItB,UAAU,GAAK3wK,EAAO,IAC1BiyK,EAAIvB,UAAU,GAAM,CAAE3yN,KAAMiiD,EAAMjjD,KAAM,IAEtCoE,EAAE+wN,QAAOD,EAAIvB,UAAU,GAAGO,MAAQ9vN,EAAE+wN,OAGxC,SAAkBD,GACjB,IAAIE,EAAK,cACT,GAAG9E,EAAIv5K,KAAKm+K,EAAK,IAAME,GAAK,OAC5B,IAAI9zN,EAAIyzN,GAAQ,GAAIzzN,EAAE,GAAK,GAAIA,EAAE,GAAKA,EAAE,GAAK,GAAIA,EAAE,GAAK,GACxD4zN,EAAIvB,UAAU12N,KAAM,CAAE+D,KAAMo0N,EAAIp1N,KAAM,EAAGukE,QAAQjjE,EAAGu1E,KAAK,EAAGnkE,EAAE,GAAI6pE,EAAE,GAAIX,EAAE,KAC1Es5I,EAAItB,UAAU32N,KAAKi4N,EAAItB,UAAU,GAAKwB,GACtCC,EAAYH,GARZI,CAASJ,GAUV,SAASG,EAAYH,EAAK7xN,GACzB4xN,EAASC,GAET,IADA,IAAIK,GAAK,EAAO77N,GAAI,EACZoB,EAAIo6N,EAAItB,UAAUh5N,OAAS,EAAGE,GAAK,IAAKA,EAAG,CAClD,IAAI06N,EAAQN,EAAIvB,UAAU74N,GAC1B,OAAO06N,EAAMx1N,MACZ,KAAK,EACDtG,EAAG67N,GAAK,GACJL,EAAIvB,UAAUzvN,MAAOgxN,EAAItB,UAAU1vN,OAC1C,MACD,KAAK,EAAG,KAAK,EAAG,KAAK,EACpBxK,GAAI,EACDrF,MAAMmhO,EAAMj5I,EAAIi5I,EAAM9iN,EAAI8iN,EAAM55I,KAAI25I,GAAK,GACzCC,EAAMj5I,GAAK,GAAKi5I,EAAM9iN,GAAK,GAAK8iN,EAAMj5I,GAAKi5I,EAAM9iN,IAAG6iN,GAAK,GAC5D,MACD,QAASA,GAAK,GAGhB,GAAIA,GAAOlyN,EAAX,CAEA,IAAI6+B,EAAM,IAAI/e,KAAK,KAAM,EAAG,IAAKub,EAAI,EACjC5+B,EAAO,GACX,IAAIhF,EAAI,EAAGA,EAAIo6N,EAAItB,UAAUh5N,SAAUE,EACT,IAA1Bo6N,EAAIvB,UAAU74N,GAAGkF,MACpBF,EAAK7C,KAAK,CAACi4N,EAAItB,UAAU94N,GAAIo6N,EAAIvB,UAAU74N,KAE5C,IAAIA,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAG,CAChC,IAAI65N,EAAMnE,EAAQ1wN,EAAKhF,GAAG,IAE1B,IADApB,GAAI,EACAglC,EAAI,EAAGA,EAAI5+B,EAAKlF,SAAU8jC,EAAM5+B,EAAK4+B,GAAG,KAAOi2L,IAAKj7N,GAAI,GACxDA,GAAGoG,EAAK7C,KAAK,CAAC03N,EAAM,CACvB3zN,KAAMyvN,EAASkE,GAAKx/N,QAAQ,IAAI,IAChC6K,KAAM,EACNk0N,MAAOuB,EACPtB,GAAIjyL,EAAKqvL,GAAIrvL,EACbqiC,QAAS,QAMX,IAFAzkE,EAAKm3B,MAAK,SAASl+B,EAAEC,GAAK,OA5d3B,SAAiBuX,EAAGhM,GAEnB,IADA,IAAImO,EAAInC,EAAEmQ,MAAM,KAAM67D,EAAIh4E,EAAEmc,MAAM,KAC1B5lB,EAAI,EAAGuV,EAAI,EAAGysE,EAAI9mF,KAAKK,IAAIqc,EAAE9X,OAAQ2hF,EAAE3hF,QAASE,EAAIgiF,IAAKhiF,EAAG,CACnE,GAAIuV,EAAIqC,EAAE5X,GAAGF,OAAS2hF,EAAEzhF,GAAGF,OAAS,OAAOyV,EAC3C,GAAGqC,EAAE5X,IAAMyhF,EAAEzhF,GAAI,OAAO4X,EAAE5X,GAAKyhF,EAAEzhF,IAAM,EAAI,EAE5C,OAAO4X,EAAE9X,OAAS2hF,EAAE3hF,OAsda86N,CAAQ38N,EAAE,GAAIC,EAAE,OACjDk8N,EAAItB,UAAY,GAAIsB,EAAIvB,UAAY,GAChC74N,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAKo6N,EAAItB,UAAU94N,GAAKgF,EAAKhF,GAAG,GAAIo6N,EAAIvB,UAAU74N,GAAKgF,EAAKhF,GAAG,GAC7F,IAAIA,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAG,CAChC,IAAI66N,EAAMT,EAAIvB,UAAU74N,GACpBs6N,EAAKF,EAAItB,UAAU94N,GAOvB,GALA66N,EAAI30N,KAAQyvN,EAAS2E,GAAIjgO,QAAQ,IAAI,IACrCwgO,EAAIjjN,EAAIijN,EAAIp5I,EAAIo5I,EAAI/5I,IAAM+5I,EAAIn6K,MAAQ,GACtCm6K,EAAI9+I,KAAO8+I,EAAIpxJ,QAAUoxJ,EAAIpxJ,QAAQ3pE,OAAS,EAC9C+6N,EAAIz9N,MAAQ,EACZy9N,EAAIzB,MAASyB,EAAIzB,OAASuB,EACjB,IAAN36N,EACF66N,EAAI/5I,EAAI97E,EAAKlF,OAAS,EAAI,GAAK,EAC/B+6N,EAAI9+I,KAAO,EACX8+I,EAAI31N,KAAO,OACL,GAAmB,KAAhBo1N,EAAGhuN,OAAO,GAAW,CAC9B,IAAIs3B,EAAE5jC,EAAE,EAAE4jC,EAAI5+B,EAAKlF,QAAgB41N,EAAQ0E,EAAItB,UAAUl1L,KAAK02L,IAAjC12L,GAE7B,IADAi3L,EAAI/5I,EAAIl9C,GAAK5+B,EAAKlF,QAAU,EAAI8jC,EAC5BA,EAAE5jC,EAAE,EAAE4jC,EAAI5+B,EAAKlF,QAAgB41N,EAAQ0E,EAAItB,UAAUl1L,KAAK8xL,EAAQ4E,KAAzC12L,GAC7Bi3L,EAAIp5I,EAAI79C,GAAK5+B,EAAKlF,QAAU,EAAI8jC,EAChCi3L,EAAI31N,KAAO,OAERwwN,EAAQ0E,EAAItB,UAAU94N,EAAE,IAAI,KAAO01N,EAAQ4E,KAAKO,EAAIp5I,EAAIzhF,EAAI,GAC/D66N,EAAI31N,KAAO,IAMd,SAAS41N,EAAOV,EAAKr6M,GACpB,IAAIg7M,EAAQh7M,GAAW,GAEvB,GADAw6M,EAAYH,GACS,OAAlBW,EAAMC,SAAmB,OA8nB7B,SAAmBZ,EAAKr6M,GACvB,IAAIg7M,EAAQh7M,GAAW,GACnBw2B,EAAM,GAAI0kL,EAAQ,GAClB3xN,EAAI2wN,GAAQ,GACZ78J,EAAU29J,EAAMG,YAAc,EAAI,EAAIjoM,EAAQ,EACvC,EAEX,IAAIjzB,EAAI,EAAG4jC,EAAI,EAEXu3L,EAAW,EAAGC,EAAO,EACrBjzK,EAAOiyK,EAAItB,UAAU,GAAIuC,EAAKlzK,EAAMmzK,EAAKlB,EAAIvB,UAAU,GACvD0C,EAAO,GACPC,EAAQ,EAEZ,IAAIx7N,EAAI,EAAGA,EAAIo6N,EAAItB,UAAUh5N,SAAUE,EAEtC,GADAq7N,EAAKjB,EAAItB,UAAU94N,GAAGsM,MAAM67C,EAAKroD,SAASw7N,EAAKlB,EAAIvB,UAAU74N,IACtD+7E,MAASu/I,EAAG7xJ,SAAiB,eAAN4xJ,EAA9B,CACA,IAAIj+N,EAAQ+9N,EAGRM,EAAUxB,GAAQoB,EAAGv7N,QACzB,IAAI8jC,EAAI,EAAGA,EAAIy3L,EAAGv7N,SAAU8jC,EAAG63L,EAAQ3F,YAAY,EAAsB,IAAnBuF,EAAGz2D,WAAWhhI,IACpE63L,EAAUA,EAAQnvN,MAAM,EAAGmvN,EAAQhmN,GACnC8lN,EAAKH,GAAQtG,EAAM5I,IAAIoP,EAAG7xJ,QAAS,GAEnC,IAAIiyJ,EAASJ,EAAG7xJ,QACH,GAAVrM,IAlcoBniD,EAkckBygN,EAAzBA,EAjcVC,EAAQA,EAAMC,eAAe3gN,GAAW4gN,EAAS5gN,KAocvD3R,EAAI2wN,GAAQ,KACVnE,YAAY,EAAG,UACjBxsN,EAAEwsN,YAAY,EAAG,IACjBxsN,EAAEwsN,YAAY,EAAG7iM,GACjB3pB,EAAEwsN,YAAY,EAAG14J,GAEdk+J,EAAG7E,GAAIb,EAAetsN,EAAGgyN,EAAG7E,IAC1BntN,EAAEwsN,YAAY,EAAG,GACtBxsN,EAAEwsN,aAAa,EAAY,EAAR7iM,EAAa,EAAIsoM,EAAKH,IACzC9xN,EAAEwsN,YAAY,EAAa,EAAR7iM,EAAa,EAAIyoM,EAAO57N,QAC3CwJ,EAAEwsN,YAAY,EAAa,EAAR7iM,EAAa,EAAIqoM,EAAG7xJ,QAAQ3pE,QAC/CwJ,EAAEwsN,YAAY,EAAG2F,EAAQ37N,QACzBwJ,EAAEwsN,YAAY,EAAG,GAEjBqF,GAAY7xN,EAAExJ,OACdy2C,EAAIp0C,KAAKmH,GACT6xN,GAAYM,EAAQ37N,OACpBy2C,EAAIp0C,KAAKs5N,GAGTN,GAAYO,EAAO57N,OACnBy2C,EAAIp0C,KAAKu5N,GAGE,EAARzoM,KACF3pB,EAAI2wN,GAAQ,KACVnE,aAAa,EAAGyF,EAAKH,IACvB9xN,EAAEwsN,YAAY,EAAG4F,EAAO57N,QACxBwJ,EAAEwsN,YAAY,EAAGwF,EAAG7xJ,QAAQ3pE,QAC5Bq7N,GAAY7xN,EAAEmM,EACd8gC,EAAIp0C,KAAKmH,KAIVA,EAAI2wN,GAAQ,KACVnE,YAAY,EAAG,UACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,IACjBxsN,EAAEwsN,YAAY,EAAG7iM,GACjB3pB,EAAEwsN,YAAY,EAAG14J,GACjB9zD,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,aAAa,EAAGyF,EAAKH,IAEvB9xN,EAAEwsN,YAAY,EAAG4F,EAAO57N,QACxBwJ,EAAEwsN,YAAY,EAAGwF,EAAG7xJ,QAAQ3pE,QAC5BwJ,EAAEwsN,YAAY,EAAG2F,EAAQ37N,QACzBwJ,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG14N,GAEjBo+N,GAASlyN,EAAEmM,EACXwlN,EAAM94N,KAAKmH,GACXkyN,GAASC,EAAQ37N,OACjBm7N,EAAM94N,KAAKs5N,KACTL,EA9fJ,IAAyBngN,EA4gBxB,OAVA3R,EAAI2wN,GAAQ,KACVnE,YAAY,EAAG,WACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAGsF,GACjB9xN,EAAEwsN,YAAY,EAAGsF,GACjB9xN,EAAEwsN,YAAY,EAAG0F,GACjBlyN,EAAEwsN,YAAY,EAAGqF,GACjB7xN,EAAEwsN,YAAY,EAAG,GAEVlJ,EAAS,CAACA,EAASr2K,GAAOq2K,EAAQqO,GAAQ3xN,IAluBdwyN,CAAU1B,EAAKW,GAClD,IAAInjN,EAAK,SAASwiN,GAEjB,IADA,IAAI2B,EAAY,EAAGC,EAAW,EACtBh8N,EAAI,EAAGA,EAAIo6N,EAAIvB,UAAU/4N,SAAUE,EAAG,CAC7C,IAAI80L,EAAOslC,EAAIvB,UAAU74N,GACzB,GAAI80L,EAAKrrH,QAAT,CACH,IAAIwpJ,EAAOn+B,EAAKrrH,QAAQ3pE,OAClBmzN,EAAO,IACNA,EAAO,KAAQ8I,GAAc9I,EAAO,IAAS,EAC3C+I,GAAa/I,EAAO,KAAW,IAStC,IANA,IAAIyE,EAAW0C,EAAItB,UAAUh5N,OAAQ,GAAM,EAEvCm8N,EAAYF,EAAY,KAAS,EACjCG,GAFYH,EAAY,GAAM,GAERC,EAAWtE,EAAUuE,EAC3CE,EAAWD,EAAW,KAAS,EAC/BE,EAAYD,GAAW,IAAM,EAAIjhO,KAAKc,MAAMmgO,EAAQ,KAAK,KACrDD,EAAWC,EAAUC,EAAY,KAAS,EAAKD,GAASC,IAAcD,GAAW,IAAM,EAAIjhO,KAAKc,MAAMmgO,EAAQ,KAAK,KAC3H,IAAIvkN,EAAK,CAAC,EAAGwkN,EAAWD,EAASF,EAAUvE,EAASsE,EAAUD,EAAW,GAGzE,OAFA3B,EAAIvB,UAAU,GAAG98I,KAAOggJ,GAAa,EACrCnkN,EAAE,IAAMwiN,EAAIvB,UAAU,GAAGz7N,MAAMwa,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAMA,EAAE,GAAG,GAAM,GACpEA,EArBC,CAsBNwiN,GACC9wN,EAAI2wN,GAAQriN,EAAE,IAAM,GACpB5X,EAAI,EAAG2hF,EAAI,EAEd,IAAI3hF,EAAI,EAAGA,EAAI,IAAKA,EAAGsJ,EAAEwsN,YAAY,EAAGuG,EAAWr8N,IACnD,IAAIA,EAAI,EAAGA,EAAI,IAAKA,EAAGsJ,EAAEwsN,YAAY,EAAG,GAMxC,IALAxsN,EAAEwsN,YAAY,EAAG,IACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,OACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACb91N,EAAI,EAAGA,EAAI,IAAKA,EAAGsJ,EAAEwsN,YAAY,EAAG,GAUxC,IATAxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAGl+M,EAAE,IACnBtO,EAAEwsN,YAAY,EAAGl+M,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,GAC7CtO,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,MACjBxsN,EAAEwsN,YAAY,EAAGl+M,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,EAAGogN,GAChD1uN,EAAEwsN,YAAY,EAAGl+M,EAAE,IACnBtO,EAAEwsN,aAAa,EAAGl+M,EAAE,GAAKA,EAAE,GAAK,EAAGogN,GACnC1uN,EAAEwsN,YAAY,EAAGl+M,EAAE,IACf5X,EAAI,EAAGA,EAAI,MAAOA,EAAGsJ,EAAEwsN,aAAa,EAAG91N,EAAI4X,EAAE,GAAKA,EAAE,GAAK5X,GAAK,GAEnE,GAAG4X,EAAE,GACJ,IAAI+pE,EAAI,EAAGA,EAAI/pE,EAAE,KAAM+pE,EAAG,CACzB,KAAM3hF,EAAI,IAAU,IAAJ2hF,IAAW3hF,EAAGsJ,EAAEwsN,aAAa,EAAG91N,EAAI4X,EAAE,GAAKA,EAAE,GAAK5X,GAAK,GACvEsJ,EAAEwsN,aAAa,EAAGn0I,IAAM/pE,EAAE,GAAK,EAAIogN,EAAar2I,EAAI,GAGtD,IAAI26I,EAAU,SAASj6L,GACtB,IAAIs/C,GAAKt/C,EAAGriC,EAAE2hF,EAAE,IAAK3hF,EAAGsJ,EAAEwsN,aAAa,EAAG91N,EAAE,GACzCqiC,MAAOriC,EAAGsJ,EAAEwsN,aAAa,EAAGkC,KAGhC,IADAr2I,EAAI3hF,EAAI,EACJ2hF,GAAG/pE,EAAE,GAAI5X,EAAE2hF,IAAK3hF,EAAGsJ,EAAEwsN,aAAa,EAAGyG,EAAOC,SAChD,IAAI76I,GAAG/pE,EAAE,GAAI5X,EAAE2hF,IAAK3hF,EAAGsJ,EAAEwsN,aAAa,EAAGyG,EAAOE,SAChDH,EAAQ1kN,EAAE,IACV0kN,EAAQ1kN,EAAE,IAGV,IAFA,IAAIgsB,EAAI,EAAGqvL,EAAO,EACdn+B,EAAOslC,EAAIvB,UAAU,GACnBj1L,EAAIw2L,EAAIvB,UAAU/4N,SAAU8jC,GACjCkxJ,EAAOslC,EAAIvB,UAAUj1L,IACZ6lC,WACXwpJ,EAAOn+B,EAAKrrH,QAAQ3pE,QACR,OACVg1L,EAAK13L,MAAQukF,EACb26I,EAASrJ,EAAO,KAAW,KAG5B,IADAqJ,EAAS1kN,EAAE,GAAK,GAAM,GACV,IAANtO,EAAEmM,GAAWnM,EAAEwsN,aAAa,EAAGyG,EAAOvE,YAE5C,IADAr2I,EAAI3hF,EAAI,EACJ4jC,EAAI,EAAGA,EAAIw2L,EAAIvB,UAAU/4N,SAAU8jC,GACtCkxJ,EAAOslC,EAAIvB,UAAUj1L,IACZ6lC,YACXwpJ,EAAOn+B,EAAKrrH,QAAQ3pE,SACNmzN,GAAQ,OACpBn+B,EAAK13L,MAAQukF,EACb26I,EAASrJ,EAAO,IAAS,KAE1B,KAAY,IAAN3pN,EAAEmM,GAAWnM,EAAEwsN,aAAa,EAAGyG,EAAOvE,YAC5C,IAAIh4N,EAAI,EAAGA,EAAI4X,EAAE,IAAI,IAAK5X,EAAG,CAC5B,IAAIs6N,EAAKF,EAAItB,UAAU94N,GACvB,GAAIs6N,GAAoB,IAAdA,EAAGx6N,OAAb,CAMAg1L,EAAOslC,EAAIvB,UAAU74N,GACZ,IAANA,IAAS80L,EAAK13L,MAAQ03L,EAAK/4G,KAAO+4G,EAAK13L,MAAQ,EAAI46N,GACtD,IAAI0E,EAAa,IAAN18N,GAAW+6N,EAAM5yK,MAAS2sI,EAAK5uL,KAS1C,GARA+sN,EAAO,GAAGyJ,EAAI58N,OAAO,GACrBwJ,EAAEwsN,YAAY,GAAI4G,EAAK,WACvBpzN,EAAEwsN,YAAY,EAAG7C,GACjB3pN,EAAEwsN,YAAY,EAAGhhC,EAAK5vL,MACtBoE,EAAEwsN,YAAY,EAAGhhC,EAAKp0I,OACtBp3C,EAAEwsN,aAAa,EAAGhhC,EAAKl9K,GACvBtO,EAAEwsN,aAAa,EAAGhhC,EAAKrzG,GACvBn4E,EAAEwsN,aAAa,EAAGhhC,EAAKh0G,GACnBg0G,EAAKskC,MACJ9vN,EAAEwsN,YAAY,GAAIhhC,EAAKskC,MAAO,YADnB,IAAIx1L,EAAI,EAAGA,EAAI,IAAKA,EAAGt6B,EAAEwsN,YAAY,EAAG,GAExDxsN,EAAEwsN,YAAY,EAAGhhC,EAAKtpL,OAAS,GAC/BlC,EAAEwsN,YAAY,EAAG,GAAIxsN,EAAEwsN,YAAY,EAAG,GACtCxsN,EAAEwsN,YAAY,EAAG,GAAIxsN,EAAEwsN,YAAY,EAAG,GACtCxsN,EAAEwsN,YAAY,EAAGhhC,EAAK13L,OACtBkM,EAAEwsN,YAAY,EAAGhhC,EAAK/4G,MAAOzyE,EAAEwsN,YAAY,EAAG,OAvB9C,CACC,IAAIlyL,EAAI,EAAGA,EAAI,KAAMA,EAAGt6B,EAAEwsN,YAAY,EAAG,GACzC,IAAIlyL,EAAI,EAAGA,EAAI,IAAKA,EAAGt6B,EAAEwsN,YAAY,GAAI,GACzC,IAAIlyL,EAAI,EAAGA,EAAI,KAAMA,EAAGt6B,EAAEwsN,YAAY,EAAG,IAsB3C,IAAI91N,EAAI,EAAGA,EAAIo6N,EAAIvB,UAAU/4N,SAAUE,EAExC,IADE80L,EAAOslC,EAAIvB,UAAU74N,IACf+7E,MAAQ,KAAQ,CAErB,IADAzyE,EAAEmM,EAAKq/K,EAAK13L,MAAM,GAAM,EACpBwmC,EAAI,EAAGA,EAAIkxJ,EAAK/4G,OAAQn4C,EAAGt6B,EAAEwsN,YAAY,EAAGhhC,EAAKrrH,QAAQ7lC,IAC7D,KAAU,IAAJA,IAAaA,EAAGt6B,EAAEwsN,YAAY,EAAG,GAGzC,IAAI91N,EAAI,EAAGA,EAAIo6N,EAAIvB,UAAU/4N,SAAUE,EAExC,IADE80L,EAAOslC,EAAIvB,UAAU74N,IACf+7E,KAAO,GAAK+4G,EAAK/4G,KAAO,KAAQ,CACrC,IAAIn4C,EAAI,EAAGA,EAAIkxJ,EAAK/4G,OAAQn4C,EAAGt6B,EAAEwsN,YAAY,EAAGhhC,EAAKrrH,QAAQ7lC,IAC7D,KAAU,GAAJA,IAAYA,EAAGt6B,EAAEwsN,YAAY,EAAG,GAGxC,KAAMxsN,EAAEmM,EAAInM,EAAExJ,QAAQwJ,EAAEwsN,YAAY,EAAG,GACvC,OAAOxsN,EA7nBRjQ,EAAQkhD,QAAU,QAopBlB,IA+CIohL,EA/CA3B,EAAO,GAGPhC,GAAc,EAEdV,EAAmB,mBACnB+E,EAAa,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,KACxD1B,EAAe,mCACf4B,EAAS,CAEZI,YAAa,EACbH,SAAU,EACVC,SAAU,EACVzE,WAAYA,EACZ4E,UAAW,EAEXtF,iBAAkBA,EAClBuF,qBAAsB,OACtBC,WAAY,EACZC,UAAW,EACXpC,aAAcA,EAEdqC,WAAY,CAAC,UAAU,UAAU,SAAS,YAAY,WAAW,SASlE,SAAStQ,EAAIpjN,GAEZ,IADA,IAAIitC,EAAM,IAAIv7C,MAAMsO,EAAExJ,QACdE,EAAI,EAAGA,EAAIsJ,EAAExJ,SAAUE,EAAGu2C,EAAIv2C,GAAK0tC,OAAOu9K,aAAa3hN,EAAEtJ,IACjE,OAAOu2C,EAAInsC,KAAK,IAkCjB,IAAI6yN,EAAa,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAG7EC,EAAS,CAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAGvJC,EAAS,CAAG,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,OAE7J,SAASC,EAAWl2N,GAAK,IAAID,EAA0B,QAAjBC,GAAG,EAAIA,GAAG,IAAsC,QAAjBA,GAAG,EAAIA,GAAG,IAAmB,OAA6B,KAApBD,GAAG,GAAOA,GAAG,EAAIA,GAK5H,IAHA,IAAIo2N,EAAyC,qBAAfpiF,WAE1BqiF,EAAWD,EAAmB,IAAIpiF,WAAW,KAAQ,GACjD0kB,EAAI,EAAGA,EAAK,MAASA,EAAG29D,EAAS39D,GAAKy9D,EAAWz9D,GAEzD,SAAS49D,EAAWr2N,EAAGd,GACtB,IAAIo3N,EAAMF,EAAa,IAAJp2N,GACnB,OAAGd,GAAK,EAAUo3N,IAAS,EAAEp3N,GAC7Bo3N,EAAOA,GAAO,EAAKF,EAAUp2N,GAAG,EAAG,KAChCd,GAAK,GAAWo3N,IAAS,GAAGp3N,GAC/Bo3N,EAAOA,GAAO,EAAKF,EAAUp2N,GAAG,GAAI,QACpB,GAAGd,GAIpB,SAASq3N,EAAYvR,EAAKhvF,GAAM,IAAI76F,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI,OAASgvF,EAAIrvL,IAAIwF,GAAK,EAAI,EAAI6pL,EAAIrvL,EAAE,IAAI,MAAMwF,EAAI,EAChH,SAASq7L,EAAYxR,EAAKhvF,GAAM,IAAI76F,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI,OAASgvF,EAAIrvL,IAAIwF,GAAK,EAAI,EAAI6pL,EAAIrvL,EAAE,IAAI,MAAMwF,EAAI,EAEhH,SAASs7L,EAAYzR,EAAKhvF,GAAM,IAAI76F,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI,OAASgvF,EAAIrvL,IAAIwF,GAAK,EAAI,EAAI6pL,EAAIrvL,EAAE,IAAI,MAAMwF,EAAI,GAChH,SAASu7L,EAAY1R,EAAKhvF,GAAM,IAAI76F,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI,OAASgvF,EAAIrvL,IAAIwF,GAAK,EAAI,EAAI6pL,EAAIrvL,EAAE,IAAI,MAAMwF,EAAI,IAGhH,SAASw7L,EAAY3R,EAAKhvF,EAAIh2H,GAC7B,IAAIm7B,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI30H,GAAM,GAAGrB,GAAG,EACtC+B,EAAIijN,EAAIrvL,KAAOwF,EACnB,OAAGn7B,EAAI,EAAIm7B,EAAUp5B,EAAIV,GACzBU,GAAKijN,EAAIrvL,EAAE,IAAK,EAAEwF,EACfn7B,EAAI,GAAKm7B,EAAUp5B,EAAIV,GAC1BU,GAAKijN,EAAIrvL,EAAE,IAAK,GAAGwF,EAChBn7B,EAAI,GAAKm7B,EAAUp5B,EAAIV,GAC1BU,GAAKijN,EAAIrvL,EAAE,IAAK,GAAGwF,GACR95B,IAIZ,SAASu1N,EAAQ13N,EAAGgwN,GACnB,IAAIx+M,EAAIxR,EAAEtG,OAAQg9B,EAAI,EAAEllB,EAAIw+M,EAAK,EAAEx+M,EAAIw+M,EAAK,EAAGp2N,EAAI,EACnD,GAAG4X,GAAKw+M,EAAI,OAAOhwN,EACnB,GAAG0lN,EAAS,CACX,IAAIxiN,EAAIijN,EAAezvL,GAEvB,GAAG12B,EAAEuK,KAAMvK,EAAEuK,KAAKrH,QACb,KAAMtJ,EAAIoG,EAAEtG,SAAUE,EAAGsJ,EAAEtJ,GAAKoG,EAAEpG,GACvC,OAAOsJ,EACD,GAAG+zN,EAAkB,CAC3B,IAAI3iO,EAAI,IAAIugJ,WAAWn+G,GACvB,GAAGpiC,EAAEiK,IAAKjK,EAAEiK,IAAIyB,QACX,KAAMpG,EAAIoG,EAAEtG,SAAUE,EAAGtF,EAAEsF,GAAKoG,EAAEpG,GACvC,OAAOtF,EAGR,OADA0L,EAAEtG,OAASg9B,EACJ12B,EAIR,SAAS23N,EAAgB72N,GAExB,IADA,IAAIoC,EAAI,IAAItO,MAAMkM,GACVlH,EAAI,EAAGA,EAAIkH,IAAKlH,EAAGsJ,EAAEtJ,GAAK,EAClC,OAAOsJ,EACP,IAAIuyN,EAAY,WACjB,IAAImC,EACI,SAAoBh5N,EAAMuxC,GAEhC,IADA,IAAI0nL,EAAO,EACLA,EAAOj5N,EAAKlF,QAAQ,CACzB,IAAI8X,EAAI1c,KAAKK,IAAI,MAAQyJ,EAAKlF,OAASm+N,GACnCphM,EAAIohM,EAAOrmN,GAAK5S,EAAKlF,OAKzB,IAHAy2C,EAAIu/K,YAAY,GAAIj5L,GACpB0Z,EAAIu/K,YAAY,EAAGl+M,GACnB2+B,EAAIu/K,YAAY,EAAU,OAALl+M,GACfA,KAAM,GAAG2+B,EAAIA,EAAI9gC,KAAOzQ,EAAKi5N,KAEpC,OAAO1nL,EAAI9gC,GAIb,OAAO,SAASzQ,GACf,IAAIknN,EAAM+N,GAAQ,GAAG/+N,KAAKU,MAAkB,IAAZoJ,EAAKlF,SACjCw3G,EAAM0mH,EAAYh5N,EAAMknN,GAC5B,OAAOA,EAAI5/M,MAAM,EAAGgrG,IApBJ,GA0BjB,SAAS4mH,EAAWC,EAAOC,EAAMC,GAChC,IAAIC,EAAS,EAAGj8L,EAAI,EAAGriC,EAAI,EAAG4jC,EAAI,EAAG26L,EAAQ,EAAG3mN,EAAIumN,EAAMr+N,OAEtD0+N,EAAYnB,EAAmB,IAAIoB,YAAY,IAAMV,EAAgB,IACzE,IAAI/9N,EAAI,EAAGA,EAAI,KAAMA,EAAGw+N,EAASx+N,GAAK,EAEtC,IAAIA,EAAI4X,EAAG5X,EAAIq+N,IAAOr+N,EAAGm+N,EAAMn+N,GAAK,EACpC4X,EAAIumN,EAAMr+N,OAEV,IAAI4+N,EAAQrB,EAAmB,IAAIoB,YAAY7mN,GAAKmmN,EAAgBnmN,GAGpE,IAAI5X,EAAI,EAAGA,EAAI4X,IAAK5X,EACnBw+N,EAAUn8L,EAAI87L,EAAMn+N,MACjBs+N,EAASj8L,IAAGi8L,EAASj8L,GACxBq8L,EAAM1+N,GAAK,EAGZ,IADAw+N,EAAS,GAAK,EACVx+N,EAAI,EAAGA,GAAKs+N,IAAUt+N,EAAGw+N,EAASx+N,EAAE,IAAOu+N,EAASA,EAAQC,EAASx+N,EAAE,IAAK,EAChF,IAAIA,EAAI,EAAGA,EAAI4X,IAAK5X,EAEP,IADZu+N,EAAQJ,EAAMn+N,MACC0+N,EAAM1+N,GAAKw+N,EAASD,EAAM,OAI1C,IAAII,EAAQ,EACZ,IAAI3+N,EAAI,EAAGA,EAAI4X,IAAK5X,EAEnB,GAAY,IADZ2+N,EAAQR,EAAMn+N,IAGb,IADAu+N,EAAQhB,EAAWmB,EAAM1+N,GAAIs+N,IAAUA,EAAOK,EAC1C/6L,GAAK,GAAI06L,EAAS,EAAIK,GAAU,EAAG/6L,GAAG,IAAKA,EAC9Cw6L,EAAKG,EAAO36L,GAAG+6L,GAAiB,GAANA,EAAa3+N,GAAG,EAG7C,OAAOs+N,EAGR,IAAIM,EAAWvB,EAAmB,IAAIoB,YAAY,KAAOV,EAAgB,KACrEc,EAAWxB,EAAmB,IAAIoB,YAAY,IAAOV,EAAgB,IACzE,IAAIV,EAAkB,CACrB,IAAI,IAAIr9N,EAAI,EAAGA,EAAI,MAAOA,EAAG4+N,EAAS5+N,GAAK,EAC3C,IAAIA,EAAI,EAAGA,EAAI,KAAMA,EAAG6+N,EAAS7+N,GAAK,GAEvC,WAGC,IAFA,IAAI8+N,EAAQ,GACR9+N,EAAI,EACHA,EAAE,GAAIA,IAAK8+N,EAAM38N,KAAK,GAC3B+7N,EAAWY,EAAOD,EAAU,IAE5B,IAAIV,EAAQ,GAEZ,IADAn+N,EAAI,EACEA,GAAG,IAAKA,IAAKm+N,EAAMh8N,KAAK,GAC9B,KAAMnC,GAAG,IAAKA,IAAKm+N,EAAMh8N,KAAK,GAC9B,KAAMnC,GAAG,IAAKA,IAAKm+N,EAAMh8N,KAAK,GAC9B,KAAMnC,GAAG,IAAKA,IAAKm+N,EAAMh8N,KAAK,GAC9B+7N,EAAWC,EAAOS,EAAU,KAZ7B,GAeA,IAAIG,EAAW1B,EAAmB,IAAIoB,YAAY,OAASV,EAAgB,OACvEiB,GAAW3B,EAAmB,IAAIoB,YAAY,OAASV,EAAgB,OACvEkB,GAAW5B,EAAmB,IAAIoB,YAAY,KAASV,EAAgB,KACvEmB,GAAY,EAAGC,GAAY,EAG/B,SAASC,GAAIp6N,EAAMi5N,GAElB,IAAIoB,EAAQ1B,EAAY34N,EAAMi5N,GAAQ,IAClCqB,EAAS3B,EAAY34N,EADkBi5N,GAAQ,GACZ,EACnCsB,EAxIL,SAAqBrT,EAAKhvF,GAAM,IAAI76F,EAAQ,EAAH66F,EAAOrgG,EAAKqgG,IAAK,EAAI,OAASgvF,EAAIrvL,IAAIwF,GAAK,EAAI,EAAI6pL,EAAIrvL,EAAE,IAAI,MAAMwF,EAAI,GAwIlGm9L,CAAYx6N,EADiBi5N,GAAQ,GACX,EAAGA,GAAQ,EAUlD,IATA,IAAI57L,EAAI,EAGJ87L,EAAQd,EAAmB,IAAIpiF,WAAW,IAAM8iF,EAAgB,IAChEW,EAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChEJ,EAAS,EACTE,EAAYnB,EAAmB,IAAIpiF,WAAW,GAAK8iF,EAAgB,GACnE0B,EAAYpC,EAAmB,IAAIpiF,WAAW,GAAK8iF,EAAgB,GACnEnmN,EAAIumN,EAAMr+N,OACNE,EAAI,EAAGA,EAAIu/N,IAAUv/N,EAC5Bm+N,EAAMlB,EAAWj9N,IAAMqiC,EAAIq7L,EAAY14N,EAAMi5N,GAC1CK,EAASj8L,IAAGi8L,EAASj8L,GACxBm8L,EAASn8L,KACT47L,GAAQ,EAIT,IAAIM,EAAQ,EAEZ,IADAC,EAAS,GAAK,EACVx+N,EAAI,EAAGA,GAAKs+N,IAAUt+N,EAAGy/N,EAAUz/N,GAAKu+N,EAASA,EAAQC,EAASx+N,EAAE,IAAK,EAC7E,IAAIA,EAAI,EAAGA,EAAI4X,IAAK5X,EAA4B,IAArBu+N,EAAQJ,EAAMn+N,MAAU0+N,EAAM1+N,GAAKy/N,EAAUlB,MAExE,IAAII,EAAQ,EACZ,IAAI3+N,EAAI,EAAGA,EAAI4X,IAAK5X,EAEnB,GAAY,IADZ2+N,EAAQR,EAAMn+N,IACC,CACdu+N,EAAQjB,EAASoB,EAAM1+N,KAAM,EAAE2+N,EAC/B,IAAI,IAAI/6L,GAAK,GAAI,EAAE+6L,GAAQ,EAAG/6L,GAAG,IAAKA,EAAGq7L,GAASV,EAAO36L,GAAG+6L,GAAiB,EAANA,EAAY3+N,GAAG,EAKxF,IAAI0/N,EAAS,GAEb,IADApB,EAAS,EACHoB,EAAO5/N,OAASu/N,EAAQC,GAG7B,OADArB,GAAgB,GADhBM,EAAQU,GAASrB,EAAY54N,EAAMi5N,KAE3BM,KAAW,GAClB,KAAK,GAGJ,IAFAl8L,EAAI,EAAIo7L,EAAYz4N,EAAMi5N,GAAOA,GAAQ,EACzCM,EAAQmB,EAAOA,EAAO5/N,OAAS,GACzBuiC,KAAM,GAAGq9L,EAAOv9N,KAAKo8N,GAC3B,MACD,KAAK,GAEJ,IADAl8L,EAAI,EAAIq7L,EAAY14N,EAAMi5N,GAAOA,GAAQ,EACnC57L,KAAM,GAAGq9L,EAAOv9N,KAAK,GAC3B,MACD,KAAK,GAEJ,IADAkgC,EAAI,GAAKu7L,EAAY54N,EAAMi5N,GAAOA,GAAQ,EACpC57L,KAAO,GAAGq9L,EAAOv9N,KAAK,GAC5B,MACD,QACCu9N,EAAOv9N,KAAKo8N,GACTD,EAASC,IAAOD,EAASC,GAM/B,IAAIoB,EAAKD,EAAOpzN,MAAM,EAAG+yN,GAAQO,EAAKF,EAAOpzN,MAAM+yN,GACnD,IAAIr/N,EAAIq/N,EAAOr/N,EAAI,MAAOA,EAAG2/N,EAAG3/N,GAAK,EACrC,IAAIA,EAAIs/N,EAAQt/N,EAAI,KAAMA,EAAG4/N,EAAG5/N,GAAK,EAGrC,OAFAk/N,GAAYhB,EAAWyB,EAAIZ,EAAU,KACrCI,GAAYjB,EAAW0B,EAAIZ,GAAU,IAC9Bf,EAmFR,SAAS4B,GAAS5kN,EAAS6kN,GAC1B,IACIvpL,EAjFL,SAAiBvxC,EAAM86N,GAEtB,GAAc,GAAX96N,EAAK,MAAuB,EAAVA,EAAK,IAAa,MAAO,CAACsnN,EAAYwT,GAAM,GAajE,IAVA,IAAI7B,EAAO,EAGPzG,EAAS,EAETkE,EAASnP,EAAeuT,GAAa,GAAG,IACxCC,EAAO,EACPC,EAAKtE,EAAO57N,SAAS,EACrBmgO,EAAY,EAAGC,EAAY,EAEX,IAAN,EAAP1I,IAEN,GADAA,EAASkG,EAAY14N,EAAMi5N,GAAOA,GAAQ,EACtCzG,IAAW,GAAM,EAuBrB,IATWA,IAAW,GAAM,GAE3ByI,EAAY,EAAGC,EAAY,IAG3BjC,EAAOmB,GAAIp6N,EAAMi5N,GACjBgC,EAAYf,GAAWgB,EAAYf,KAEhCW,GAAQE,EAAKD,EAAO,QAAkDC,GAAxCtE,EAASoC,EAAQpC,EAAQqE,EAAO,QAAoBjgO,UAC9E,CAEP,IAAIqgO,EAAOtC,EAAY74N,EAAMi5N,EAAMgC,GAC/BG,EAAQ5I,IAAS,GAAM,EAAIoH,EAASuB,GAAQpB,EAASoB,GAGzD,GAFAlC,GAAe,GAAPmC,EAEiB,MAFNA,KAAU,KAEjB,EAAG,KAAa1E,EAAOqE,KAAUK,MACxC,IAAW,KAARA,EAAa,MAGpB,IAAIC,GADJD,GAAQ,KACa,EAAK,EAAMA,EAAK,GAAI,EAAOC,EAAS,IAAGA,EAAS,GACrE,IAAIhK,EAAM0J,EAAO7C,EAAOkD,GAErBC,EAAS,IACXhK,GAAOwH,EAAY74N,EAAMi5N,EAAMoC,GAC/BpC,GAAQoC,GAITF,EAAOtC,EAAY74N,EAAMi5N,EAAMiC,GAE/BjC,GAAe,IADfmC,EAAQ5I,IAAS,GAAM,EAAIqH,EAASsB,GAAQnB,GAASmB,IAErD,IAAIG,GADeF,KAAU,GACR,EAAI,EAAKA,EAAK,GAAI,EACnCG,EAAMpD,EAAOiD,GASjB,IAPGE,EAAS,IACXC,GAAO1C,EAAY74N,EAAMi5N,EAAMqC,GAC/BrC,GAAQqC,IAILR,GAAOE,EAAK3J,IAAsC2J,GAA/BtE,EAASoC,EAAQpC,EAAQrF,IAAkBv2N,QAC5DigO,EAAO1J,GAAOqF,EAAOqE,GAAQrE,EAAOqE,EAAOQ,KAAQR,OAvD3D,CAEW,EAAP9B,IAAUA,GAAQ,GAAU,EAALA,IAE1B,IAAI7H,EAAKpxN,EAAKi5N,IAAO,GAAKj5N,EAAgB,GAAVi5N,IAAO,KAAO,EAI9C,GAHAA,GAAQ,IAEJ6B,GAAOE,EAAKD,EAAO3J,IAA2C4J,GAArCtE,EAASoC,EAAQpC,EAAQqE,EAAO3J,IAAiBt2N,QACtD,oBAAdkF,EAAK2L,KAEd3L,EAAK2L,KAAK+qN,EAAQqE,EAAM9B,IAAO,GAAIA,IAAO,GAAG7H,GAC7C2J,GAAQ3J,EAAI6H,GAAQ,EAAE7H,OAChB,KAAMA,KAAO,GAAKsF,EAAOqE,KAAU/6N,EAAKi5N,IAAO,GAAIA,GAAQ,EA+CpE,MAAO,CAAC6B,EAAMpE,EAASA,EAAOpvN,MAAM,EAAGyzN,GAAQ9B,EAAK,IAAK,GAK/CuC,CADCvlN,EAAQ3O,MAAM2O,EAAQxF,GAAG,GACZqqN,GAExB,OADA7kN,EAAQxF,GAAK8gC,EAAI,GACVA,EAAI,GAGZ,SAASkqL,GAAcC,EAAKv2N,GAC3B,IAAGu2N,EACE,MAAM,IAAI5mO,MAAMqQ,GADW,qBAAZyqB,SAAyBA,QAAQjrB,MAAMQ,GAI5D,SAASwsN,GAAU7hC,EAAM/0K,GACxB,IAAIk2M,EAAOnhC,EACXohC,GAAUD,EAAM,GAEhB,IACI3sN,EAAI,CACPuvN,UAFe,GAGfC,UAH+B,IAKhCqB,EAAS7wN,EAAG,CAAE6+C,KAAMpoC,EAAQooC,OAI5B,IADA,IAAInoD,EAAIi2N,EAAKn2N,OAAS,GACJ,IAAXm2N,EAAKj2N,IAA2B,IAAbi2N,EAAKj2N,EAAE,IAA2B,GAAbi2N,EAAKj2N,EAAE,IAA2B,GAAbi2N,EAAKj2N,EAAE,KAAeA,GAAK,KAAKA,EACpGi2N,EAAKxgN,EAAIzV,EAAI,EAGbi2N,EAAKxgN,GAAK,EACV,IAAI2lN,EAAOnF,EAAKE,WAAW,GAC3BF,EAAKxgN,GAAK,EACV,IAAI0lN,EAAWlF,EAAKE,WAAW,GAK/B,IAFAF,EAAKxgN,EAAI0lN,EAELn7N,EAAI,EAAGA,EAAIo7N,IAAQp7N,EAAG,CAEzBi2N,EAAKxgN,GAAK,GACV,IAAIkrN,EAAM1K,EAAKE,WAAW,GACtB2J,EAAM7J,EAAKE,WAAW,GACtB+C,EAAUjD,EAAKE,WAAW,GAC1ByK,EAAO3K,EAAKE,WAAW,GACvB0K,EAAO5K,EAAKE,WAAW,GAC3BF,EAAKxgN,GAAK,EACV,IAAIk2B,EAASsqL,EAAKE,WAAW,GACzB2K,EAAK9K,EAAkBC,EAAK3pN,MAAM2pN,EAAKxgN,EAAEyjN,EAASjD,EAAKxgN,EAAEyjN,EAAQ0H,IACrE3K,EAAKxgN,GAAKyjN,EAAU0H,EAAOC,EAE3B,IAAIjpN,EAAIq+M,EAAKxgN,EACbwgN,EAAKxgN,EAAIk2B,EAAS,EAClBo1L,GAAiB9K,EAAM0K,EAAKb,EAAKx2N,EAAGw3N,GACpC7K,EAAKxgN,EAAImC,EAGV,OAAOtO,EAKR,SAASy3N,GAAiB9K,EAAM0K,EAAKb,EAAKx2N,EAAGw3N,GAE5C7K,EAAKxgN,GAAK,EACV,IAAIwd,EAAQgjM,EAAKE,WAAW,GACxB6K,EAAO/K,EAAKE,WAAW,GACvBztM,EAviCL,SAAwBwjM,GACvB,IAAI2J,EAA0B,MAApB3J,EAAIiK,WAAW,GACrBJ,EAA0B,MAApB7J,EAAIiK,WAAW,GACrBpiM,EAAM,IAAI1L,KACVvsB,EAAU,GAANi6N,EACJxsN,EAAU,IADMwsN,KAAS,GACTA,KAAS,EAC7BhiM,EAAIktM,gBAAgB,GACpBltM,EAAIiJ,YAAY+4L,EAAM,MACtBhiM,EAAI4H,SAASpyB,EAAE,GACfwqB,EAAI2uE,QAAQ5mG,GACZ,IAAI4lF,EAAU,GAANm0I,EACJ/4L,EAAU,IADM+4L,KAAS,GAK7B,OAJoBA,KAAS,EAC7B9hM,EAAImtM,SAASrL,GACb9hM,EAAIygL,WAAW13K,GACf/I,EAAIotM,WAAWz/I,GAAG,GACX3tD,EAwhCIqtM,CAAenL,GAE1B,GAAW,KAARhjM,EAAgB,MAAM,IAAIn5B,MAAM,8BASpB,IARf,IAAIunO,EAAQpL,EAAKE,WAAW,GACxBmL,EAAOrL,EAAKE,WAAW,GACvBoL,EAAOtL,EAAKE,WAAW,GAEvB+C,EAAUjD,EAAKE,WAAW,GAC1ByK,EAAO3K,EAAKE,WAAW,GAGvBjwN,EAAO,GAAYlG,EAAI,EAAGA,EAAIk5N,IAAWl5N,EAAGkG,GAAQwnC,OAAOu9K,aAAagL,EAAKA,EAAKxgN,MACtF,GAAGmrN,EAAM,CACR,IAAIY,EAAKxL,EAAkBC,EAAK3pN,MAAM2pN,EAAKxgN,EAAGwgN,EAAKxgN,EAAImrN,KACnDY,EAAG,QAAS,IAAI/K,KAAI/tM,EAAO84M,EAAG,OAAQ/K,MACrCqK,GAAI,IAAI,QAAS,IAAIrK,KAAI/tM,EAAOo4M,EAAG,OAAQrK,IAEjDR,EAAKxgN,GAAKmrN,EAKV,IAAI57N,EAAOixN,EAAK3pN,MAAM2pN,EAAKxgN,EAAGwgN,EAAKxgN,EAAI6rN,GACvC,OAAON,GACN,KAAK,EAAGh8N,EA7ZV,SAAyBiW,EAAS6kN,GACjC,IAAInE,EAAO,OAAOkE,GAAS5kN,EAAS6kN,GACpC,IACI2B,EAAU,IAAIC,EADD/F,EAAM+F,YAEnBnrL,EAAMkrL,EAAQE,cAAc1mN,EAAQ3O,MAAM2O,EAAQxF,GAAIgsN,EAAQG,kBAElE,OADA3mN,EAAQxF,GAAKgsN,EAAQI,UACdtrL,EAuZSurL,CAAgB7L,EAAMsL,GAAO,MAC5C,KAAK,EAAG,MACR,QAAS,MAAM,IAAIznO,MAAM,sCAAwCknO,GAIlE,IAAIN,GAAM,EACC,EAARztM,IAEU,YADZouM,EAAQpL,EAAKE,WAAW,MACEkL,EAAQpL,EAAKE,WAAW,GAAIuK,GAAM,GAC5DY,EAAOrL,EAAKE,WAAW,GACvBoL,EAAOtL,EAAKE,WAAW,IAGrBmL,GAAQX,GAAKF,GAAcC,EAAK,wBAA0BC,EAAM,OAASW,GACzEC,GAAQzB,GAAKW,GAAcC,EAAK,0BAA4BZ,EAAM,OAASyB,GAC9E,IAAIQ,EAASjN,EAAM5I,IAAIlnN,EAAM,GACzBq8N,GAAO,GAAOU,GAAQ,GAAItB,GAAcC,EAAK,uBAAyBW,EAAQ,OAASU,GAC3FC,GAAQ14N,EAAGpD,EAAMlB,EAAM,CAACi9N,QAAQ,EAAMxL,GAAI/tM,IA8G3C,SAASs5M,GAAQ5H,EAAKl0N,EAAMujE,EAAS4kJ,GACpC,IAAI4T,EAAS5T,GAAQA,EAAK4T,OACtBA,GAAQ9H,EAASC,GACrB,IAAItlC,GAAQmtC,GAAUzM,EAAIv5K,KAAKm+K,EAAKl0N,GACpC,IAAI4uL,EAAM,CACT,IAAIotC,EAAQ9H,EAAItB,UAAU,GACvB5yN,EAAKoG,MAAM,EAAG41N,EAAMpiO,SAAWoiO,EAAOA,EAAQh8N,GAE1B,KAAnBg8N,EAAM51N,OAAO,KAAW41N,GAAS,KACpCA,GAASA,EAAQh8N,GAAM7L,QAAQ,KAAK,MAErCy6L,EAAQ,CAAC5uL,KAAMyvN,EAASzvN,GAAOhB,KAAM,GACrCk1N,EAAIvB,UAAU12N,KAAK2yL,GACnBslC,EAAItB,UAAU32N,KAAK+/N,GACfD,GAAQzM,EAAIjZ,MAAM4lB,OAAO/H,GAS9B,OAPDtlC,EAAKrrH,QAAWA,EACfqrH,EAAK/4G,KAAOtS,EAAUA,EAAQ3pE,OAAS,EACpCuuN,IACCA,EAAKgM,QAAOvlC,EAAKskC,MAAQ/K,EAAKgM,OAC9BhM,EAAKoI,KAAI3hC,EAAK2hC,GAAKpI,EAAKoI,IACxBpI,EAAKgL,KAAIvkC,EAAKukC,GAAKhL,EAAKgL,KAErBvkC,EAgDR,OArBAz7L,EAAQ4iD,KA3pBR,SAAcm+K,EAAK3qN,GAClB,IAAI2yN,EAAchI,EAAItB,UAAUjqM,KAAI,SAAS5wB,GAAK,OAAOA,EAAE4nB,iBACvDw8M,EAAUD,EAAYvzM,KAAI,SAAS5wB,GAAK,IAAIC,EAAID,EAAE2nB,MAAM,KAAM,OAAO1nB,EAAEA,EAAE4B,QAAyB,KAAf7B,EAAEqO,OAAO,GAAY,EAAI,OAC5G+kB,GAAI,EACkB,KAAvB5hB,EAAKm1J,WAAW,IAAuBvzI,GAAI,EAAM5hB,EAAO2yN,EAAY,GAAG91N,MAAM,GAAI,GAAKmD,GACpF4hB,GAA2B,IAAvB5hB,EAAKhV,QAAQ,KACtB,IAAI6nO,EAAS7yN,EAAKoW,cACdwc,GAAU,IAANhR,EAAa+wM,EAAY3nO,QAAQ6nO,GAAUD,EAAQ5nO,QAAQ6nO,GACnE,IAAU,IAAPjgM,EAAU,OAAO+3L,EAAIvB,UAAUx2L,GAElC,IAAI94B,GAAK+4N,EAAOhgN,MAAMyqM,GAGtB,IAFAuV,EAASA,EAAOjoO,QAAQyyN,EAAK,IAC1BvjN,IAAG+4N,EAASA,EAAOjoO,QAAQ0yN,EAAK,MAC/B1qL,EAAI,EAAGA,EAAI+/L,EAAYtiO,SAAUuiC,EAAG,CACvC,IAAI94B,EAAI64N,EAAY//L,GAAGhoC,QAAQ0yN,EAAK,KAAOqV,EAAY//L,IAAIhoC,QAAQyyN,EAAK,KAAOwV,EAAQ,OAAOlI,EAAIvB,UAAUx2L,GAC5G,IAAI94B,EAAI84N,EAAQhgM,GAAGhoC,QAAQ0yN,EAAK,KAAOsV,EAAQhgM,IAAIhoC,QAAQyyN,EAAK,KAAOwV,EAAQ,OAAOlI,EAAIvB,UAAUx2L,GAErG,OAAO,MA2oBRhpC,EAAQkpO,KAl4BR,SAActM,EAAMl2M,GACnB,OAAOA,GAAWA,EAAQ7a,MAAQ,UACjC,IAAK,OAAQ,OAPf,SAAmBywN,EAAU51M,GAE5B,OADA22M,IACOr0K,EAAMozK,EAAG+M,aAAa7M,GAAW51M,GAKnB0iN,CAAUxM,EAAMl2M,GACpC,IAAK,SAAU,OAAOsiC,EAAMmqK,EAAIjB,EAAOD,OAAO2K,IAAQl2M,GACtD,IAAK,SAAU,OAAOsiC,EAAMmqK,EAAIyJ,GAAOl2M,GAExC,OAAOsiC,EAAM4zK,EAAMl2M,IA63BpB1mB,EAAQgpD,MAAQA,EAChBhpD,EAAQqpO,MArmBR,SAAetI,EAAKr6M,GACnB,IAAIzW,EAAIwxN,EAAOV,EAAKr6M,GACpB,OAAOA,GAAWA,EAAQ7a,MACzB,IAAK,OAA2D,OAAnDwxN,IAAUjB,EAAGkN,cAAc5iN,EAAQ41M,SAAWrsN,GAAYA,EACvE,IAAK,SAAU,OAAOojN,EAAIpjN,GAC1B,IAAK,SAAU,OAAOiiN,EAAOC,OAAOkB,EAAIpjN,IAEzC,OAAOA,GA+lBRjQ,EAAQupO,UAlnBR,SAAoBxI,EAAKzE,EAAU51M,GAClC22M,IACA,IAAIptN,EAAIwxN,EAAOV,EAAKr6M,GACrB01M,EAAGkN,cAAchN,EAAUrsN,IAgnB3BjQ,EAAQkjN,MAAQ,CACfsmB,QA9DD,SAAiBxU,GAChB,IAAI/kN,EAAK,GAET,OADA6wN,EAAS7wN,EAAG+kN,GACL/kN,GA4DP04N,QAASA,GACTc,QAhCD,SAAiB1I,EAAKl0N,GACrBi0N,EAASC,GACT,IAAItlC,EAAO0gC,EAAIv5K,KAAKm+K,EAAKl0N,GACzB,GAAG4uL,EAAM,IAAI,IAAIlxJ,EAAI,EAAGA,EAAIw2L,EAAIvB,UAAU/4N,SAAU8jC,EAAG,GAAGw2L,EAAIvB,UAAUj1L,IAAMkxJ,EAG7E,OAFAslC,EAAIvB,UAAUvpM,OAAOsU,EAAG,GACxBw2L,EAAItB,UAAUxpM,OAAOsU,EAAG,IACjB,EAER,OAAO,GAyBPm/L,QAtBD,SAAiB3I,EAAK4I,EAAUC,GAC/B9I,EAASC,GACT,IAAItlC,EAAO0gC,EAAIv5K,KAAKm+K,EAAK4I,GACzB,GAAGluC,EAAM,IAAI,IAAIlxJ,EAAI,EAAGA,EAAIw2L,EAAIvB,UAAU/4N,SAAU8jC,EAAG,GAAGw2L,EAAIvB,UAAUj1L,IAAMkxJ,EAG7E,OAFAslC,EAAIvB,UAAUj1L,GAAG19B,KAAOyvN,EAASsN,GACjC7I,EAAItB,UAAUl1L,GAAKq/L,GACZ,EAER,OAAO,GAePd,OAZD,SAAgB/H,GAAOG,EAAYH,GAAK,IAavC8I,UAAWA,GACXC,WAAYA,GACZjN,UAAWA,GACXtJ,QAASA,EACTwW,SAtmBD,SAAkBC,GAAQ,IACzB,IACI5B,EAAU,IAAIC,EADD2B,EAAK3B,YAGtB,GADAD,EAAQE,cAAc,IAAI1mF,WAAW,CAAC,EAAG,IAAKwmF,EAAQG,mBACnDH,EAAQI,UACN,MAAM,IAAI/nO,MAAM,kCADC6hO,EAAQ0H,EAE7B,MAAMr7N,IAAI4sB,QAAQjrB,MAAM,4BAA8B3B,GAAE0hE,SAAW1hE,OAimBpEg2N,YAAanC,EACbyH,YAAazD,GACbtD,OAAQA,GAGFljO,EAlzCI,GAuzCwB,IAAMk8N,EAAMj8N,EAAQ,KAAS,MAAM0O,KAGtE,SAASu7N,EAAQv+N,GAChB,MAAmB,kBAATA,EAA0BynN,EAAKznN,GACtChK,MAAMD,QAAQiK,GAh3ElB,SAAaA,GACZ,GAAyB,qBAAfi2I,WAA4B,MAAM,IAAInhJ,MAAM,eACtD,OAAO,IAAImhJ,WAAWj2I,GA82ESw+N,CAAIx+N,GAC5BA,EAGR,SAASy+N,EAASC,EAAOzoN,EAASkxM,GAEjC,GAAkB,qBAARoJ,GAAuBA,EAAIoN,cAAe,OAAOxW,EAAMoJ,EAAIoN,cAAce,EAAOzoN,EAASkxM,GAAOoJ,EAAIoN,cAAce,EAAOzoN,GACnI,IAAIjW,EAAe,QAAPmnN,EAAiBwX,GAAU1oN,GAAWA,EACnD,GAA0B,qBAAhB2oN,YAA6B,OAAOA,YAAY5+N,EAAM0+N,GAC/D,GAAmB,qBAATG,KAAsB,CAC/B,IAAI5N,EAAO,IAAI4N,KAAK,CAACN,EAAQv+N,IAAQ,CAACE,KAAK,6BAC7C,GAAwB,qBAAdkgF,WAA6BA,UAAU0+I,WAAY,OAAO1+I,UAAU0+I,WAAW7N,EAAMyN,GAC/F,GAAqB,qBAAXK,OAAwB,OAAOA,OAAO9N,EAAMyN,GACpD,GAAkB,qBAARM,KAA2C,qBAAbtpN,UAA4BA,SAASH,eAAiBypN,IAAIC,gBAAiB,CAClH,IAAIt/M,EAAMq/M,IAAIC,gBAAgBhO,GACjC,GAAqB,kBAAXjwB,QAAiE,mBAAlCA,OAAOk+B,WAAW,IAAIC,SAE3D,OADGH,IAAII,iBAAyC,qBAAf9hK,YAA4BA,YAAW,WAAa0hK,IAAII,gBAAgBz/M,KAAS,KAC3GqhL,OAAOk+B,UAAUC,SAAS,CAAEx/M,IAAKA,EAAKgxM,SAAU+N,EAAOK,QAAQ,IAEvE,IAAIrpO,EAAIggB,SAASH,cAAc,KAC/B,GAAiB,MAAd7f,EAAEypO,SAIJ,OAHJzpO,EAAEypO,SAAWT,EAAOhpO,EAAEuqB,KAAON,EAAKjK,SAASpS,KAAK8+C,YAAY1sD,GAAIA,EAAE2pO,QAClE3pN,SAASpS,KAAKg/C,YAAY5sD,GACnBspO,IAAII,iBAAyC,qBAAf9hK,YAA4BA,YAAW,WAAa0hK,IAAII,gBAAgBz/M,KAAS,KAC3GA,GAKV,GAAgB,qBAAN2/M,GAAqC,qBAATC,MAA0C,qBAAXC,OAAwB,IAE5F,IAAIjuL,EAAMguL,KAAKb,GAEkB,OAFVntL,EAAI4sB,KAAK,KAAM5sB,EAAIkuL,SAAW,SAClDzpO,MAAMD,QAAQkgB,KAAUA,EAAUyxM,EAAIzxM,IACzCs7B,EAAImsL,MAAMznN,GAAUs7B,EAAIqxD,QAAgB3sF,EACvC,MAAMjT,IAAK,IAAIA,GAAE0hE,UAAY1hE,GAAE0hE,QAAQpnD,MAAM,YAAa,MAAMta,GAClE,MAAM,IAAIlO,MAAM,oBAAsB4pO,GAevC,SAASx4N,EAAK5B,GAEb,IADA,IAAIo7N,EAAKr+N,OAAO6E,KAAK5B,GAAIq7N,EAAK,GACtB3kO,EAAI,EAAGA,EAAI0kO,EAAG5kO,SAAUE,EAAMqG,OAAOQ,UAAUJ,eAAe7M,KAAK0P,EAAGo7N,EAAG1kO,KAAK2kO,EAAGxiO,KAAKuiO,EAAG1kO,IACjG,OAAO2kO,EAGR,SAASC,EAAU95N,EAAKrG,GAEvB,IADA,IAAI6E,EAAK,GAAK+3E,EAAIn2E,EAAKJ,GACf9K,EAAI,EAAGA,IAAMqhF,EAAEvhF,SAAUE,EAA2B,MAArBsJ,EAAEwB,EAAIu2E,EAAErhF,IAAIyE,MAAe6E,EAAEwB,EAAIu2E,EAAErhF,IAAIyE,IAAQ48E,EAAErhF,IACxF,OAAOsJ,EAGR,SAASu7N,EAAM/5N,GAEd,IADA,IAAIxB,EAAK,GAAK+3E,EAAIn2E,EAAKJ,GACf9K,EAAI,EAAGA,IAAMqhF,EAAEvhF,SAAUE,EAAGsJ,EAAEwB,EAAIu2E,EAAErhF,KAAOqhF,EAAErhF,GACrD,OAAOsJ,EAGR,SAASw7N,EAAUh6N,GAElB,IADA,IAAIxB,EAAK,GAAK+3E,EAAIn2E,EAAKJ,GACf9K,EAAI,EAAGA,IAAMqhF,EAAEvhF,SAAUE,EAAGsJ,EAAEwB,EAAIu2E,EAAErhF,KAAO08B,SAAS2kD,EAAErhF,GAAG,IACjE,OAAOsJ,EAYR,IAAImlN,EAAW,IAAIpmM,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACxCqmM,EAAWD,EAASjmM,UAA8E,MAAjE,IAAIH,MAAOS,oBAAsB2lM,EAAS3lM,qBAC/E,SAASi8M,EAAQ97N,EAAGulN,GACnB,IAAIK,EAAQ5lN,EAAEuf,UAEd,OADGgmM,IAAUK,GAAS,YACdA,EAAQH,GAAT,MAER,SAASsW,EAAQ/7N,GAChB,IAAIstC,EAAM,IAAIluB,KAEd,OADAkuB,EAAIpK,QAAY,GAAJljC,EAAS,GAAK,GAAK,IAAOylN,GAC/Bn4K,EAIR,SAAS0uL,EAAarmO,GACrB,IAAIsmO,EAAM,EAAGzO,EAAK,EAAGtlL,GAAO,EACxB5nC,EAAI3K,EAAE0jB,MAAM,8EAChB,IAAI/Y,EAAG,MAAM,IAAIzP,MAAM,IAAM8E,EAAI,gCACjC,IAAI,IAAIoB,EAAI,EAAGA,GAAKuJ,EAAEzJ,SAAUE,EAC/B,GAAIuJ,EAAEvJ,GAAN,CAGA,OAFAy2N,EAAK,EACFz2N,EAAI,IAAGmxC,GAAO,GACV5nC,EAAEvJ,GAAGsM,MAAM/C,EAAEvJ,GAAGF,OAAO,IAC7B,IAAK,IACJ,MAAM,IAAIhG,MAAM,mCAAqCyP,EAAEvJ,GAAGsM,MAAM/C,EAAEvJ,GAAGF,OAAO,IAC7E,IAAK,IAAK22N,GAAM,GAEhB,IAAK,IAAKA,GAAM,GAEhB,IAAK,IACJ,IAAItlL,EAAM,MAAM,IAAIr3C,MAAM,qCACrB28N,GAAM,GAIbyO,GAAOzO,EAAK/5L,SAASnzB,EAAEvJ,GAAI,IAE5B,OAAOklO,EAGR,IAAIC,EAAe,IAAI98M,KAAK,4BACzB9uB,MAAM4rO,EAAav8M,iBAAgBu8M,EAAe,IAAI98M,KAAK,YAC9D,IAAI+8M,EAAwC,MAA9BD,EAAav8M,cAE3B,SAASy8M,EAAU1/M,EAAK2/M,GACvB,IAAIxpO,EAAI,IAAIusB,KAAK1C,GACjB,GAAGy/M,EAGF,OAFCE,EAAU,EAAGxpO,EAAEqwC,QAAQrwC,EAAE0sB,UAAoC,GAAxB1sB,EAAEgtB,oBAA2B,KAC3Dw8M,EAAU,GAAGxpO,EAAEqwC,QAAQrwC,EAAE0sB,UAAoC,GAAxB1sB,EAAEgtB,oBAA2B,KACnEhtB,EAER,GAAG6pB,aAAe0C,KAAM,OAAO1C,EAC/B,GAAiC,MAA9Bw/M,EAAav8M,gBAA0BrvB,MAAMuC,EAAE8sB,eAAgB,CACjE,IAAIhqB,EAAI9C,EAAE8sB,cACV,OAAGjD,EAAIlrB,QAAQ,GAAKmE,IAAM,GAC1B9C,EAAEkhC,YAAYlhC,EAAE8sB,cAAgB,KADI9sB,EAGrC,IAAIoL,EAAIye,EAAIrD,MAAM,SAAS,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,KAChDi0B,EAAM,IAAIluB,MAAMnhB,EAAE,IAAKA,EAAE,GAAK,GAAIA,EAAE,IAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAE5E,OADGye,EAAIlrB,QAAQ,MAAQ,IAAG87C,EAAM,IAAIluB,KAAKkuB,EAAI/tB,UAAsC,GAA1B+tB,EAAIztB,oBAA2B,MACjFytB,EAGR,SAASgvL,GAAOpxN,GAEf,IADA,IAAI7K,EAAI,GACAtJ,EAAI,EAAGA,GAAKmU,EAAIrU,SAAUE,EAAGsJ,GAAKokC,OAAOu9K,aAAa92M,EAAInU,IAClE,OAAOsJ,EAGR,SAASk8N,GAAIl8N,GACZ,GAAkB,oBAARyc,OAAwB/qB,MAAMD,QAAQuO,GAAI,OAAOyc,KAAKs8B,MAAMt8B,KAAKD,UAAUxc,IACrF,GAAe,iBAALA,GAAsB,MAALA,EAAW,OAAOA,EAC7C,GAAGA,aAAa+e,KAAM,OAAO,IAAIA,KAAK/e,EAAEkf,WACxC,IAAI+tB,EAAM,GACV,IAAI,IAAIllB,KAAK/nB,EAAMjD,OAAOQ,UAAUJ,eAAe7M,KAAK0P,EAAG+nB,KAAIklB,EAAIllB,GAAKm0M,GAAIl8N,EAAE+nB,KAC9E,OAAOklB,EAGR,SAAS8I,GAAK9pC,EAAEE,GAAiB,IAAZ,IAAInM,EAAI,GAAUA,EAAExJ,OAAS2V,GAAGnM,GAAGiM,EAAG,OAAOjM,EAGlE,SAASm8N,GAAS7mO,GACjB,IAAIqK,EAAIxP,OAAOmF,GACf,IAAIrF,MAAM0P,GAAI,OAAOA,EACrB,IAAIy8N,EAAK,EACLzjM,EAAKrjC,EAAEvE,QAAQ,iBAAiB,QAAQA,QAAQ,OAAO,IAAIA,QAAQ,QAAQ,WAAwB,OAAXqrO,GAAM,IAAY,MAC9G,OAAInsO,MAAM0P,EAAIxP,OAAOwoC,KACrBA,EAAKA,EAAG5nC,QAAQ,cAAa,SAASg3N,EAAIC,GAAgB,OAAVoU,GAAMA,EAAWpU,KAC7D/3N,MAAM0P,EAAIxP,OAAOwoC,IACdh5B,EAD2BA,EAAIy8N,GAFJz8N,EAAIy8N,EAKvC,SAASC,GAAU/mO,GAClB,IAAI0K,EAAI,IAAI+e,KAAKzpB,GAAIsI,EAAI,IAAImhB,KAAKmL,KAC9Bt1B,EAAIoL,EAAEs8N,UAAWr8N,EAAID,EAAE+f,WAAYvtB,EAAIwN,EAAEk+B,UAC7C,OAAGjuC,MAAMuC,IACNoC,EAAI,GAAKA,EAAI,KADIgJ,GAEhBqC,EAAI,GAAKzN,EAAI,IAAW,KAALoC,GACpBU,EAAE4oB,cAAclF,MAAM,mDADehZ,EAErC1K,EAAE0jB,MAAM,iBAAyBpb,EAC7BoC,EAGR,IAyEIu8N,GAzEAC,GAAuD,GAApC,UAAUlgN,MAAM,UAAU9lB,OAOjD,SAASimO,GAAW/gO,GACnB,OAAIA,EACDA,EAAKA,KAAagmN,EAAMhmN,EAAKA,MAC7BA,EAAKghO,cAAgBla,EAAgBd,EAAMhmN,EAAKghO,eAAersO,SAAS,WACxEqL,EAAKihO,SAAiBjb,EAAMhmN,EAAKihO,YACjCjhO,EAAKumC,OAASvmC,EAAKumC,MAAM26L,WAAmBlb,EAAMua,GAAOvqO,MAAM6L,UAAUyF,MAAM1S,KAAKoL,EAAKumC,MAAM26L,aAAa,KAC5GlhO,EAAKykE,SAAWzkE,EAAKE,KAAa8lN,EAAMua,GAAOvgO,EAAKykE,UAChD,KANU,KAsBlB,SAAS08J,GAAQnhO,GAAQ,OAAQA,GAAgC,SAAxBA,EAAKkB,KAAKoG,OAAO,GAb1D,SAAoBtH,GACnB,IAAIA,EAAM,OAAO,KACjB,GAAGA,EAAKA,KAAM,OAAO+lN,EAAW/lN,EAAKA,MACrC,GAAGA,EAAKghO,cAAgBla,EAAS,OAAO9mN,EAAKghO,eAC7C,GAAGhhO,EAAKumC,OAASvmC,EAAKumC,MAAM26L,WAAY,CACvC,IAAI58N,EAAItE,EAAKumC,MAAM26L,aACnB,MAAe,iBAAL58N,EAAsByhN,EAAWzhN,GACpCtO,MAAM6L,UAAUyF,MAAM1S,KAAK0P,GAEnC,OAAGtE,EAAKykE,SAAWzkE,EAAKE,KAAaF,EAAKykE,QACnC,KAGmE28J,CAAWphO,GAAQ+gO,GAAW/gO,GAIzG,SAASqhO,GAAeC,EAAKxxC,GAG5B,IAFA,IAAIzjK,EAAIi1M,EAAIxN,WAAa5tN,EAAKo7N,EAAIvN,OAC9BxwN,EAAIusL,EAAKttK,cAAehf,EAAID,EAAElO,QAAQ,MAAM,MACxC2F,EAAE,EAAGA,EAAEqxB,EAAEvxB,SAAUE,EAAG,CAC7B,IAAIkH,EAAImqB,EAAErxB,GAAGwnB,cACb,GAAGjf,GAAKrB,GAAKsB,GAAKtB,EAAG,OAAOo/N,EAAIvN,MAAM1nM,EAAErxB,IAEzC,OAAO,KAGR,SAASumO,GAAWD,EAAKxxC,GACxB,IAAIxrL,EAAI+8N,GAAeC,EAAKxxC,GAC5B,GAAQ,MAALxrL,EAAW,MAAM,IAAIxP,MAAM,oBAAsBg7L,EAAO,WAC3D,OAAOxrL,EAGR,SAASk9N,GAAWF,EAAKxxC,EAAM2xC,GAC9B,IAAIA,EAAM,OAAON,GAAQI,GAAWD,EAAKxxC,IACzC,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAO0xC,GAAWF,EAAKxxC,GAAS,MAAM9sL,IAAK,OAAO,MAGzD,SAAS0+N,GAAUJ,EAAKxxC,EAAM2xC,GAC7B,IAAIA,EAAM,OAAOV,GAAWQ,GAAWD,EAAKxxC,IAC5C,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAO4xC,GAAUJ,EAAKxxC,GAAS,MAAM9sL,IAAK,OAAO,MASxD,SAAS2+N,GAAaL,EAAK72N,EAAMg6D,GAC7B68J,EAAIxN,UAAWtD,EAAIjZ,MAAMylB,QAAQsE,EAAK72N,EAAMg6D,GAC1C68J,EAAIxxC,KAAKrlL,EAAMg6D,GAYrB,SAASm9J,KACR,OAAIf,GACG,IAAIA,GADOrQ,EAAIjZ,MAAMsmB,UAqB7B,SAASgE,GAAap3N,EAAMrD,GAC3B,GAAqB,KAAlBqD,EAAKsoC,OAAO,GAAW,OAAOtoC,EAAKnD,MAAM,GAC5C,IAAIpE,EAASkE,EAAKwZ,MAAM,KACH,KAAlBxZ,EAAKE,OAAO,IAAWpE,EAAOkB,MAEjC,IADA,IAAIjE,EAASsK,EAAKmW,MAAM,KACC,IAAlBzgB,EAAOrF,QAAc,CAC3B,IAAIgI,EAAO3C,EAAOuxC,QACL,OAAT5uC,EAAeI,EAAOkB,MACR,MAATtB,GAAcI,EAAO/F,KAAK2F,GAEpC,OAAOI,EAAOkC,KAAK,KAvCI,qBAAd08N,YAA2BjB,GAAQiB,WAER1tO,EAAOC,SACtB,qBAAVwsO,KAAuBA,GAAQvsO,EAAQ,MAsCnD,IAAIytO,GAAa,8DACbC,GAAU,yEACVC,GAAS,8FAERF,GAAWzkN,MAAM2kN,MAAYA,GAAW,YAC7C,IAAIC,GAAQ,QAASC,GAAW,aAChC,SAASC,GAAYxqK,EAAKyqK,EAAWC,GAGpC,IAFA,IAAIC,EAAK,GACLC,EAAK,EAAGjyN,EAAI,EACViyN,IAAO5qK,EAAI98D,SAA8C,MAA5ByV,EAAIqnD,EAAIgoG,WAAW4iE,KAAqB,KAANjyN,GAAkB,KAANA,KAAtDiyN,GAE3B,GADIH,IAAWE,EAAE,GAAK3qK,EAAItwD,MAAM,EAAGk7N,IAChCA,IAAO5qK,EAAI98D,OAAQ,OAAOynO,EAC7B,IAAIh+N,EAAIqzD,EAAIt6C,MAAM0kN,IAAYpjM,EAAE,EAAG36B,EAAE,GAAIjJ,EAAE,EAAG2/J,EAAE,GAAI8wD,EAAG,GAAIgX,EAAO,EAClE,GAAGl+N,EAAG,IAAIvJ,EAAI,EAAGA,GAAKuJ,EAAEzJ,SAAUE,EAAG,CAEpC,IADAywN,EAAKlnN,EAAEvJ,GACHuV,EAAE,EAAGA,GAAKk7M,EAAG3wN,QAAqC,KAArB2wN,EAAG7rD,WAAWrvJ,KAApBA,GAE3B,IADAoqJ,EAAI8wD,EAAGnkN,MAAM,EAAEiJ,GAAGwR,OACU,IAAtB0pM,EAAG7rD,WAAWrvJ,EAAE,MAAYA,EAGlC,IAFAkyN,EAAmC,KAA1BD,EAAG/W,EAAG7rD,WAAWrvJ,EAAE,KAAmB,IAANiyN,EAAY,EAAI,EACzDv+N,EAAIwnN,EAAGnkN,MAAMiJ,EAAE,EAAEkyN,EAAMhX,EAAG3wN,OAAO2nO,GAC7B7jM,EAAE,EAAEA,GAAG+7H,EAAE7/J,QAAmC,KAApB6/J,EAAEiF,WAAWhhI,KAAnBA,GACtB,GAAGA,IAAI+7H,EAAE7/J,OACL6/J,EAAEllK,QAAQ,KAAO,IAAGklK,EAAIA,EAAErzJ,MAAM,EAAGqzJ,EAAEllK,QAAQ,OAChD8sO,EAAE5nE,GAAK12J,EACHq+N,IAASC,EAAE5nE,EAAEn4I,eAAiBve,OAE9B,CACJ,IAAIooB,GAAS,IAAJuS,GAAwB,UAAf+7H,EAAErzJ,MAAM,EAAE,GAAa,QAAQ,IAAIqzJ,EAAErzJ,MAAMs3B,EAAE,GAC/D,GAAG2jM,EAAEl2M,IAAwB,OAAlBsuI,EAAErzJ,MAAMs3B,EAAE,EAAEA,GAAa,SACpC2jM,EAAEl2M,GAAKpoB,EACHq+N,IAASC,EAAEl2M,EAAE7J,eAAiBve,IAGpC,OAAOs+N,EAER,SAASG,GAASzpO,GAAK,OAAOA,EAAE5D,QAAQ8sO,GAAU,OAElD,IAAIQ,GAAY,CACf,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,QAAS,KAENC,GAAY/C,EAAM8C,IAIlBE,GAAe,WAElB,IAAIC,EAAW,+CAAgDC,EAAY,uBAC3E,OAAO,SAASF,EAAY3hN,GAC3B,IAAItnB,EAAIsnB,EAAO,GAAIlmB,EAAIpB,EAAEnE,QAAQ,aACjC,IAAS,GAANuF,EAAS,OAAOpB,EAAEvE,QAAQytO,GAAU,SAASzW,EAAIC,GAAM,OAAOqW,GAAUtW,IAAK3jL,OAAOu9K,aAAavuL,SAAS40L,EAAGD,EAAG52N,QAAQ,MAAM,EAAE,GAAG,MAAM42N,KAAOh3N,QAAQ0tO,GAAU,SAASx+N,EAAEgM,GAAI,OAAOm4B,OAAOu9K,aAAavuL,SAASnnB,EAAE,QAC1N,IAAIquB,EAAIhlC,EAAEnE,QAAQ,OAClB,OAAOotO,EAAYjpO,EAAE0N,MAAM,EAAGtM,IAAMpB,EAAE0N,MAAMtM,EAAE,EAAE4jC,GAAKikM,EAAYjpO,EAAE0N,MAAMs3B,EAAE,KAP1D,GAWfokM,GAAS,WAAYC,GAAW,gCACpC,SAASC,GAAUhiN,GAElB,OADQA,EAAO,IACN7rB,QAAQ2tO,IAAU,SAAS9pO,GAAK,OAAO0pO,GAAU1pO,MAAO7D,QAAQ4tO,IAAS,SAASrpO,GAAK,MAAO,MAAQ,MAAMA,EAAEgmK,WAAW,GAAGjrK,SAAS,KAAK2S,OAAO,GAAK,OAEhK,SAAS67N,GAAajiN,GAAO,OAAOgiN,GAAUhiN,GAAM7rB,QAAQ,KAAK,WAEjE,IAAI+tO,GAAe,mBACnB,SAASC,GAAWniN,GAEnB,OADQA,EAAO,IACN7rB,QAAQ2tO,IAAU,SAAS9pO,GAAK,OAAO0pO,GAAU1pO,MAAO7D,QAAQ,MAAO,SAASA,QAAQ+tO,IAAa,SAASxpO,GAAK,MAAO,OAAS,MAAMA,EAAEgmK,WAAW,GAAGjrK,SAAS,KAAK2S,OAAO,GAAK,OAS7L,IAAIg8N,GAAe,WAClB,IAAIC,EAAW,YACf,SAASC,EAAQnX,EAAGC,GAAM,OAAO5jL,OAAOu9K,aAAavuL,SAAS40L,EAAG,KACjE,OAAO,SAAqB3rM,GAAO,OAAOA,EAAItrB,QAAQkuO,EAASC,IAH7C,GAKfC,GACI,SAAuB9iN,GAAO,OAAOA,EAAItrB,QAAQ,iBAAiB,UAG1E,SAASquO,GAAalvO,GACrB,OAAOA,GACN,KAAK,EAAG,KAAK,EAAM,IAAK,IAAK,IAAK,OAAQ,IAAK,OAAQ,OAAO,EAE9D,QAAS,OAAO,GAIlB,IAAImvO,GAAW,SAAmBC,GAEjC,IADA,IAAIryL,EAAM,GAAIv2C,EAAI,EAAGuV,EAAI,EAAGzZ,EAAI,EAAGkM,EAAI,EAAGO,EAAI,EAAG85B,EAAI,EAC9CriC,EAAI4oO,EAAK9oO,SACfyV,EAAIqzN,EAAKhkE,WAAW5kK,MACZ,IAAOu2C,GAAO7I,OAAOu9K,aAAa11M,IAC1CzZ,EAAI8sO,EAAKhkE,WAAW5kK,KAChBuV,EAAE,KAAOA,EAAE,KAAOhN,GAAU,GAAJgN,IAAW,EAAIhN,GAAU,GAAJzM,EAASy6C,GAAO7I,OAAOu9K,aAAa1iN,KACrFP,EAAI4gO,EAAKhkE,WAAW5kK,KAChBuV,EAAI,IAAOghC,GAAO7I,OAAOu9K,cAAmB,GAAJ11M,IAAW,IAAY,GAAJzZ,IAAW,EAAU,GAAJkM,IAEhFq6B,IAAW,EAAJ9sB,IAAU,IAAY,GAAJzZ,IAAW,IAAY,GAAJkM,IAAW,EAAU,IADjEO,EAAIqgO,EAAKhkE,WAAW5kK,OACkD,MACtEu2C,GAAO7I,OAAOu9K,aAAa,OAAW5oL,IAAI,GAAI,OAC9CkU,GAAO7I,OAAOu9K,aAAa,OAAY,KAAF5oL,OAEtC,OAAOkU,GAGJotL,GAAY,SAASiF,GAExB,IADA,IAAIryL,EAAM,GAAIv2C,EAAI,EAAGuV,EAAI,EAAGzZ,EAAI,EAC1BkE,EAAI4oO,EAAK9oO,QAEd,OADAyV,EAAIqzN,EAAKhkE,WAAW5kK,MACb,GACN,KAAKuV,EAAI,IAAKghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa11M,IAAK,MAChD,KAAKA,EAAI,KACRghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAO11M,GAAK,KACzCghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAW,GAAJ11M,KACpC,MACD,KAAKA,GAAK,OAASA,EAAI,MACtBA,GAAK,MAAOzZ,EAAI8sO,EAAKhkE,WAAW5kK,KAAO,OAASuV,GAAG,IACnDghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAQnvN,GAAI,GAAM,KAC/Cy6C,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAQnvN,GAAI,GAAM,MAC/Cy6C,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAQnvN,GAAK,EAAK,MAC/Cy6C,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAW,GAAJnvN,KACpC,MACD,QACCy6C,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAO11M,GAAK,MACzCghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAQ11M,GAAK,EAAK,MAC/CghC,EAAIp0C,KAAKurC,OAAOu9K,aAAa,KAAW,GAAJ11M,KAGvC,OAAOghC,EAAInsC,KAAK,KAGjB,GAAG0hN,EAAS,CACX,IAAI+c,GAAY,SAAmB7jO,GAClC,IAAuCq9B,EAAGriC,EAAuBuV,EAA7DghC,EAAMw1K,EAAOK,MAAM,EAAEpnN,EAAKlF,QAAe8jC,EAAI,EAAGvS,EAAI,EAAGiR,EAAG,EAC9D,IAAItiC,EAAI,EAAGA,EAAIgF,EAAKlF,OAAQE,GAAG4jC,EAC9BA,EAAI,GACAruB,EAAEvQ,EAAK4/J,WAAW5kK,IAAM,IAAKqiC,EAAI9sB,EAC7BA,EAAI,KAAO8sB,EAAW,IAAJ,GAAF9sB,IAA+B,GAArBvQ,EAAK4/J,WAAW5kK,EAAE,IAAQ4jC,EAAE,GACtDruB,EAAI,KAAO8sB,EAAS,MAAJ,GAAF9sB,GAAqC,IAAJ,GAArBvQ,EAAK4/J,WAAW5kK,EAAE,KAAgC,GAArBgF,EAAK4/J,WAAW5kK,EAAE,IAAQ4jC,EAAE,IACpFA,EAAI,EACVvB,EAAY,QAAH,EAAJ9sB,GAAwC,MAAJ,GAArBvQ,EAAK4/J,WAAW5kK,EAAE,IAAsC,IAAJ,GAArBgF,EAAK4/J,WAAW5kK,EAAE,KAAgC,GAArBgF,EAAK4/J,WAAW5kK,EAAE,IACtFsiC,EAAK,QAAjBD,GAAK,SAA2B,GAAI,MAAOA,EAAI,OAAY,KAAFA,IAEhD,IAAPC,IAAYiU,EAAIllB,KAAU,IAAHiR,EAAQiU,EAAIllB,KAAOiR,IAAK,EAAGA,EAAK,GAC1DiU,EAAIllB,KAAOgR,EAAE,IAAKkU,EAAIllB,KAAOgR,IAAI,EAElC,OAAOkU,EAAIjqC,MAAM,EAAE+kB,GAAG13B,SAAS,SAE5BmvO,GAAS,0CACVH,GAASG,KAAWD,GAAUC,MAASH,GAAWE,IACrD,IAAIE,GAAY,SAAmB/jO,GAAQ,OAAOgnN,EAAYhnN,EAAM,UAAUrL,SAAS,SACpFgvO,GAASG,KAAWC,GAAUD,MAASH,GAAWI,IAErDpF,GAAY,SAAS3+N,GAAQ,OAAOgnN,EAAYhnN,EAAM,QAAQrL,SAAS,WAIxE,IAAIqvO,GAAY,WACf,IAAIC,EAAW,GACf,OAAO,SAAkB1gO,EAAEC,GAC1B,IAAIvB,EAAIsB,EAAE,KAAKC,GAAG,IAClB,OAAGygO,EAAQhiO,GAAWgiO,EAAQhiO,GACtBgiO,EAAQhiO,GAAK,IAAI2f,OAAO,cAAcre,EAAE,+DAA+DA,EAAE,IAAMC,GAAG,KAL5G,GASZ0gO,GAAc,WACjB,IAAIhoD,EAAW,CACd,CAAC,OAAQ,KAAM,CAAC,SAAU,QAC1B,CAAC,OAAQ,KAAM,CAAC,OAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,MAAQ,MACpEryJ,KAAI,SAAS5wB,GAAK,MAAO,CAAC,IAAI2oB,OAAO,IAAM3oB,EAAE,GAAK,IAAK,MAAOA,EAAE,OAClE,OAAO,SAAoB0nB,GAc1B,IAbA,IAAIrc,EAAIqc,EAELtrB,QAAQ,cAAe,IAEvBA,QAAQ,cAAc,IAEtBA,QAAQ,QAAQ,KAAKA,QAAQ,QAAQ,KAErCA,QAAQ,cAAe,KAEvBA,QAAQ,uBAAuB,MAE/BA,QAAQ,WAAW,IACd2F,EAAI,EAAGA,EAAIkhL,EAASphL,SAAUE,EAAGsJ,EAAIA,EAAEjP,QAAQ6mL,EAASlhL,GAAG,GAAIkhL,EAASlhL,GAAG,IACnF,OAAOsJ,GApBS,GAwBd6/N,GAAW,WAAY,IAAIC,EAAW,GACzC,OAAO,SAAkB1rG,GACxB,YAAoBrtH,IAAjB+4N,EAAS1rG,GAA0B0rG,EAAS1rG,GACvC0rG,EAAS1rG,GAAM,IAAI92G,OAAO,YAAc82G,EAAK,0BAA4BA,EAAK,IAAK,MAH9E,GAKX2rG,GAAW,wBAAyBC,GAAW,6BACnD,SAASC,GAAYvkO,EAAMqpN,GAC1B,IAAIxxL,EAAIuqM,GAAYpiO,GAEhBmrB,EAAUnrB,EAAKsd,MAAM6mN,GAAQtsM,EAAE2sM,YAAY,GAC3Cr5N,EAAM,GACV,GAAGggB,EAAQrwB,QAAU+8B,EAAEk/C,KAAM,CAC5B,GAAGsyI,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,4BAA8Bq2B,EAAQrwB,OAAS,OAAS+8B,EAAEk/C,MACvF,OAAO5rE,EAMR,OAJAggB,EAAQ/kB,SAAQ,SAASnN,GACxB,IAAIgL,EAAIhL,EAAE5D,QAAQgvO,GAAS,IAAI/mN,MAAMgnN,IAClCrgO,GAAGkH,EAAIhO,KAAK,CAAC8G,EAAE0/N,GAAS1/N,EAAE,IAAKhC,EAAEgC,EAAE,QAEhCkH,EAGR,IAAIu5N,GAAU,eACd,SAASC,GAASphO,EAAEC,GAAK,MAAO,IAAMD,GAAKC,EAAE8Z,MAAMonN,IAAS,wBAA0B,IAAM,IAAMlhO,EAAI,KAAOD,EAAI,IAEjH,SAASqhO,GAAW/sM,GAAK,OAAO3xB,EAAK2xB,GAAGhO,KAAI,SAASwC,GAAK,MAAO,IAAMA,EAAI,KAAOwL,EAAExL,GAAK,OAAOjnB,KAAK,IACrG,SAASy/N,GAAUthO,EAAEC,EAAEq0B,GAAK,MAAO,IAAMt0B,GAAW,MAALs0B,EAAa+sM,GAAW/sM,GAAK,KAAa,MAALr0B,GAAcA,EAAE8Z,MAAMonN,IAAS,wBAA0B,IAAM,IAAMlhO,EAAI,KAAOD,EAAI,KAAO,IAE/K,SAASuhO,GAAahuO,EAAGmL,GAAK,IAAM,OAAOnL,EAAEu3C,cAAch5C,QAAQ,QAAQ,IAAO,MAAM2N,IAAK,GAAGf,EAAG,MAAMe,GAAK,MAAO,GAYrH,IAqEI+hO,GAAQC,GArER/jL,GAAS,CACZ,GAAM,mCACN,QAAW,4BACX,SAAY,+BACZ,GAAM,0DACN,EAAK,sEACL,IAAO,yEACP,GAAM,uEACN,IAAO,4CACP,IAAO,mCAGRA,KAAa,CACZ,4DACA,gDACA,sDACA,qDAGGgkL,GACK,0CADLA,GAEK,yCAFLA,GAGK,+CAHLA,GAIK,4CAJLA,GAKK,yBALLA,GAMK,gCANLA,GAOK,kCA6BLvR,GAAa,SAAS7L,GAA0B,IAAlB,IAAI5uN,EAAE,GAAoB+B,EAAE,EAAEA,EAAE6sN,EAAK,GAAG/sN,SAASE,EAAG,GAAG6sN,EAAK,GAAG7sN,GAAI,IAAI,IAAI4jC,EAAE,EAAEhsB,EAAEi1M,EAAK,GAAG7sN,GAAGF,OAAO8jC,EAAEhsB,EAAEgsB,GAA5F,MAAkG3lC,EAAEkE,KAAKiF,MAAMnJ,EAAG4uN,EAAK,GAAG7sN,GAAGsM,MAAMs3B,EAAEA,EAArI,QAA4I,OAAO3lC,GAC5LisO,GAAcxR,GACdS,GAAY,SAAS/yN,EAAExH,EAAEoJ,GAAgB,IAAX,IAAIi6B,EAAG,GAAYjiC,EAAEpB,EAAGoB,EAAEgI,EAAGhI,GAAG,EAAGiiC,EAAG9/B,KAAKurC,OAAOu9K,aAAakf,GAAe/jO,EAAEpG,KAAM,OAAOiiC,EAAG73B,KAAK,IAAI/P,QAAQyyN,EAAK,KACpJsd,GAAajR,GACbkR,GAAY,SAASjkO,EAAExH,EAAE6W,GAAgB,IAAX,IAAIwsB,EAAG,GAAYjiC,EAAEpB,EAAGoB,EAAEpB,EAAE6W,IAAKzV,EAAGiiC,EAAG9/B,MAAM,IAAMiE,EAAEpG,GAAGrG,SAAS,KAAK2S,OAAO,IAAK,OAAO21B,EAAG73B,KAAK,KAC/HkgO,GAAaD,GACbE,GAAS,SAASnkO,EAAExH,EAAEoJ,GAAgB,IAAX,IAAIi6B,EAAG,GAAYjiC,EAAEpB,EAAGoB,EAAEgI,EAAGhI,IAAKiiC,EAAG9/B,KAAKurC,OAAOu9K,aAAauf,GAAYpkO,EAAEpG,KAAM,OAAOiiC,EAAG73B,KAAK,KAC5HqgO,GAAUF,GACVG,GAAU,SAAStkO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIu1N,GAAOnkO,EAAGpG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,GAAK,IACrG21N,GAAWD,GACXE,GAAU,SAASxkO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIu1N,GAAOnkO,EAAGpG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,GAAK,IACrG61N,GAAWD,GACXE,GAAW,SAAS1kO,EAAEpG,GAAK,IAAIgV,EAAM,EAAEklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIu1N,GAAOnkO,EAAGpG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,GAAK,IACxG+1N,GAAYD,GAEhBf,GAASC,GAAU,SAAe5jO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAImkN,GAAU/yN,EAAGpG,EAAE,EAAEA,EAAE,EAAEgV,GAAO,IACrH,IAEIg2N,GAAUC,GAFVC,GAAU,SAAS9kO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIu1N,GAAOnkO,EAAGpG,EAAE,EAAEA,EAAE,EAAEgV,GAAO,IACnGm2N,GAAWD,GAEfF,GAAWC,GAAY,SAAS7kO,EAAGumE,GAAO,OA9C1C,SAAwBvmE,EAAGumE,GAI1B,IAHA,IAAI/tE,EAAI,EAAI,GAAKwH,EAAEumE,EAAM,KAAO,GAC5B3kE,IAAmB,IAAb5B,EAAEumE,EAAM,KAAc,IAAOvmE,EAAEumE,EAAM,KAAO,EAAK,IACvDpjE,EAAc,GAATnD,EAAEumE,EAAI,GACP3sE,EAAI,EAAGA,GAAK,IAAKA,EAAGuJ,EAAQ,IAAJA,EAAUnD,EAAEumE,EAAM3sE,GAClD,OAAQ,MAALgI,EAAwB,GAALuB,EAAU3K,GAAIipB,KAAY2L,KACxC,GAALxrB,EAAQA,GAAK,MACTA,GAAK,KAAMuB,GAAKrO,KAAKa,IAAI,EAAE,KAC3B6C,EAAI1D,KAAKa,IAAI,EAAGiM,EAAI,IAAMuB,GAsCe6hO,CAAehlO,EAAGumE,IACnE,IAAI0+J,GAAS,SAAkB3wO,GAAK,OAAOM,MAAMD,QAAQL,IAEtDoxN,IACFqN,GAAY,SAAS/yN,EAAExH,EAAEoJ,GAAK,OAAI+jN,EAAOh6B,SAAS3rL,GAAqCA,EAAEzM,SAAS,UAAUiF,EAAEoJ,GAAG3N,QAAQyyN,EAAK,IAAjEsd,GAAWhkO,EAAExH,EAAEoJ,IAC5EqiO,GAAY,SAASjkO,EAAExH,EAAE6W,GAAK,OAAOs2M,EAAOh6B,SAAS3rL,GAAKA,EAAEzM,SAAS,MAAMiF,EAAEA,EAAE6W,GAAK60N,GAAWlkO,EAAExH,EAAE6W,IACnGi1N,GAAU,SAAiBtkO,EAAGpG,GAAK,IAAI+rN,EAAOh6B,SAAS3rL,GAAI,OAAOukO,GAASvkO,EAAGpG,GAAI,IAAIgV,EAAM5O,EAAEklO,aAAatrO,GAAI,OAAOgV,EAAM,EAAI5O,EAAEzM,SAAS,OAAOqG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,GAAK,IACnK41N,GAAU,SAAiBxkO,EAAGpG,GAAK,IAAI+rN,EAAOh6B,SAAS3rL,GAAI,OAAOykO,GAASzkO,EAAGpG,GAAI,IAAIgV,EAAM5O,EAAEklO,aAAatrO,GAAI,OAAOgV,EAAM,EAAI5O,EAAEzM,SAAS,OAAOqG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,GAAK,IACnK81N,GAAW,SAAkB1kO,EAAGpG,GAAK,IAAI+rN,EAAOh6B,SAAS3rL,GAAI,OAAO2kO,GAAU3kO,EAAGpG,GAAI,IAAIgV,EAAM,EAAE5O,EAAEklO,aAAatrO,GAAI,OAAOoG,EAAEzM,SAAS,UAAUqG,EAAE,EAAEA,EAAE,EAAEgV,EAAI,IAC5J+0N,GAAS,SAAgB3jO,EAAGpG,GAAK,IAAI+rN,EAAOh6B,SAAS3rL,GAAI,OAAO4jO,GAAQ5jO,EAAGpG,GAAI,IAAIgV,EAAM5O,EAAEklO,aAAatrO,GAAI,OAAOoG,EAAEzM,SAAS,UAAUqG,EAAE,EAAEA,EAAE,EAAEgV,IAChJk2N,GAAU,SAAiB9kO,EAAGpG,GAAK,IAAI+rN,EAAOh6B,SAAS3rL,GAAI,OAAO+kO,GAAS/kO,EAAGpG,GAAI,IAAIgV,EAAM5O,EAAEklO,aAAatrO,GAAI,OAAOoG,EAAEzM,SAAS,OAAOqG,EAAE,EAAEA,EAAE,EAAEgV,IAChJu1N,GAAS,SAAgBnkO,EAAGxH,EAAGoJ,GAAK,OAAQ+jN,EAAOh6B,SAAS3rL,GAAMA,EAAEzM,SAAS,OAAOiF,EAAEoJ,GAAKyiO,GAAQrkO,EAAExH,EAAEoJ,IACvG0wN,GAAa,SAAS7L,GAAQ,OAAQA,EAAK,GAAG/sN,OAAS,GAAKisN,EAAOh6B,SAAS86B,EAAK,GAAG,IAAOd,EAAOliN,OAAOgjN,EAAK,IAAMqd,GAAYrd,IAChID,EAAU,SAASC,GAAQ,OAAOd,EAAOh6B,SAAS86B,EAAK,IAAMd,EAAOliN,OAAOgjN,GAAQ,GAAGhjN,OAAOzC,MAAM,GAAIylN,IACvGme,GAAW,SAAiB5kO,EAAGpG,GAAK,OAAG+rN,EAAOh6B,SAAS3rL,GAAWA,EAAEmlO,aAAavrO,GAAWirO,GAAU7kO,EAAEpG,IACxGqrO,GAAS,SAAkB3wO,GAAK,OAAOqxN,EAAOh6B,SAASr3L,IAAMM,MAAMD,QAAQL,KAItD,qBAAZ2uN,UACT8P,GAAY,SAAS/yN,EAAExH,EAAEoJ,GAAK,OAAOqhN,QAAQ9M,MAAM+O,OAAO,KAAMllN,EAAEkG,MAAM1N,EAAEoJ,IAAI3N,QAAQyyN,EAAM,KAC5Fyd,GAAS,SAASnkO,EAAExH,EAAEoJ,GAAK,OAAOqhN,QAAQ9M,MAAM+O,OAAO,MAAOllN,EAAEkG,MAAM1N,EAAEoJ,KACxE0iO,GAAU,SAAStkO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIq0M,QAAQ9M,MAAM+O,OAAOlC,EAAchjN,EAAEkG,MAAMtM,EAAE,EAAGA,EAAE,EAAEgV,EAAI,IAAM,IACxI41N,GAAU,SAASxkO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIq0M,QAAQ9M,MAAM+O,OAAOnC,EAAkB/iN,EAAEkG,MAAMtM,EAAE,EAAGA,EAAE,EAAEgV,EAAI,IAAM,IAC5I81N,GAAW,SAAS1kO,EAAEpG,GAAK,IAAIgV,EAAM,EAAEklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIq0M,QAAQ9M,MAAM+O,OAAO,KAAMllN,EAAEkG,MAAMtM,EAAE,EAAEA,EAAE,EAAEgV,EAAI,IAAM,IAClI+0N,GAAS,SAAS3jO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIq0M,QAAQ9M,MAAM+O,OAAO,KAAMllN,EAAEkG,MAAMtM,EAAE,EAAEA,EAAE,EAAEgV,IAAQ,IAC5Hk2N,GAAU,SAAS9kO,EAAEpG,GAAK,IAAIgV,EAAMklN,GAAe9zN,EAAEpG,GAAI,OAAOgV,EAAM,EAAIq0M,QAAQ9M,MAAM+O,OAAO,MAAOllN,EAAEkG,MAAMtM,EAAE,EAAEA,EAAE,EAAEgV,IAAQ,KAG/H,IAAIw1N,GAAc,SAASpkO,EAAGumE,GAAO,OAAOvmE,EAAEumE,IAC1Cw9J,GAAiB,SAAS/jO,EAAGumE,GAAO,OAAQ,IAAAvmE,EAAEumE,EAAI,GAAWvmE,EAAEumE,IAC/D6+J,GAAgB,SAASplO,EAAGumE,GAAO,IAAI15B,EAAK,IAAA7sC,EAAEumE,EAAI,GAAWvmE,EAAEumE,GAAM,OAAQ15B,EAAI,MAAUA,GAAyB,GAAnB,MAASA,EAAI,IAC9GinL,GAAiB,SAAS9zN,EAAGumE,GAAO,OAAOvmE,EAAEumE,EAAI,IAAI,GAAG,KAAKvmE,EAAEumE,EAAI,IAAI,KAAKvmE,EAAEumE,EAAI,IAAI,GAAGvmE,EAAEumE,IAC3FurJ,GAAgB,SAAS9xN,EAAGumE,GAAO,OAAQvmE,EAAEumE,EAAI,IAAI,GAAKvmE,EAAEumE,EAAI,IAAI,GAAKvmE,EAAEumE,EAAI,IAAI,EAAGvmE,EAAEumE,IACxF8+J,GAAgB,SAASrlO,EAAGumE,GAAO,OAAQvmE,EAAEumE,IAAM,GAAKvmE,EAAEumE,EAAI,IAAI,GAAKvmE,EAAEumE,EAAI,IAAI,EAAGvmE,EAAEumE,EAAI,IAE9F,SAASu2J,GAAUnnJ,EAAM90E,GACxB,IAAUykO,EAAIC,EAAWtpM,EAAGoxL,EAAIzzN,EAAG+kB,EAA/Bzb,EAAE,GAAYsiO,EAAG,GACrB,OAAO3kO,GACN,IAAK,OAEJ,GADA8d,EAAMphB,KAAK8R,EACRq2M,GAAWC,EAAOh6B,SAASpuL,MAAO2F,EAAI3F,KAAK2I,MAAM3I,KAAK8R,EAAG9R,KAAK8R,EAAE,EAAEsmE,GAAMpiF,SAAS,gBAC/E,IAAIqG,EAAI,EAAGA,EAAI+7E,IAAQ/7E,EAAKsJ,GAAGokC,OAAOu9K,aAAakf,GAAexmO,KAAMohB,IAAOA,GAAK,EACzFg3D,GAAQ,EACR,MAED,IAAK,OAAQzyE,EAAIihO,GAAO5mO,KAAMA,KAAK8R,EAAG9R,KAAK8R,EAAIsmE,GAAO,MACtD,IAAK,UAAWA,GAAQ,EAAGzyE,EAAI6vN,GAAUx1N,KAAMA,KAAK8R,EAAG9R,KAAK8R,EAAIsmE,GAAO,MAEvE,IAAK,OACJ,GAAsB,qBAAZstI,QACL,OAAO6Z,GAAUtpO,KAAK+J,KAAMo4E,EAAM,QADJzyE,EAAI+/M,QAAQ9M,MAAM+O,OAAOnC,EAAkBxlN,KAAK2I,MAAM3I,KAAK8R,EAAG9R,KAAK8R,EAAE,EAAEsmE,IAE1GA,GAAO,EAAU,MAGlB,IAAK,aAAczyE,EAAIohO,GAAQ/mO,KAAMA,KAAK8R,GAAIsmE,EAAO,EAAIm+I,GAAev2N,KAAMA,KAAK8R,GAAI,MACvF,IAAK,WAAYnM,EAAIshO,GAAQjnO,KAAMA,KAAK8R,GAAIsmE,EAAO,EAAIm+I,GAAev2N,KAAMA,KAAK8R,GAAI,MAErF,IAAK,SAAUnM,EAAIwhO,GAASnnO,KAAMA,KAAK8R,GAAIsmE,EAAO,EAAI,EAAIm+I,GAAev2N,KAAMA,KAAK8R,GAAI,MAExF,IAAK,OAAQsmE,EAAO,EAAKm+I,GAAev2N,KAAMA,KAAK8R,GAAInM,EAAIygO,GAAOpmO,KAAMA,KAAK8R,GAAc,EAAPsmE,IAAaA,GAAQ,GAAG,MAE5G,IAAK,QAASA,EAAO,EAAKm+I,GAAev2N,KAAMA,KAAK8R,GAAInM,EAAI4hO,GAAQvnO,KAAMA,KAAK8R,GAAc,EAAPsmE,IAAaA,GAAQ,GAAY,EAAPA,IAAc,MAE9H,IAAK,OACJ,IADYA,EAAO,EAAGzyE,EAAI,GACqB,KAAxC+4B,EAAEmoM,GAAY7mO,KAAMA,KAAK8R,EAAIsmE,OAAc6vJ,EAAGzpO,KAAKipN,EAAS/oL,IACnE/4B,EAAIsiO,EAAGxhO,KAAK,IAAK,MAClB,IAAK,QACJ,IADa2xE,EAAO,EAAGzyE,EAAI,GACmB,KAAvC+4B,EAAE8nM,GAAexmO,KAAKA,KAAK8R,EAAGsmE,KAAY6vJ,EAAGzpO,KAAKipN,EAAS/oL,IAAI05C,GAAM,EAC5EA,GAAM,EAAGzyE,EAAIsiO,EAAGxhO,KAAK,IAAK,MAG3B,IAAK,YACJ,IADiBd,EAAI,GAAIyb,EAAMphB,KAAK8R,EAChCzV,EAAI,EAAGA,EAAI+7E,IAAQ/7E,EAAG,CACzB,GAAG2D,KAAKkoO,OAAoC,IAA5BloO,KAAKkoO,KAAKpxO,QAAQsqB,GAIjC,OAHAsd,EAAImoM,GAAY7mO,KAAMohB,GACtBphB,KAAK8R,EAAIsP,EAAM,EACf0uM,EAAKyP,GAAUtpO,KAAK+J,KAAMo4E,EAAK/7E,EAAGqiC,EAAI,YAAc,aAC7CupM,EAAGxhO,KAAK,IAAMqpN,EAEtBmY,EAAGzpO,KAAKipN,EAAS+e,GAAexmO,KAAMohB,KACtCA,GAAK,EACJzb,EAAIsiO,EAAGxhO,KAAK,IAAK2xE,GAAQ,EAAG,MAE/B,IAAK,QACJ,GAAsB,qBAAZstI,QAAyB,CAClC//M,EAAI+/M,QAAQ9M,MAAM+O,OAAOnC,EAAkBxlN,KAAK2I,MAAM3I,KAAK8R,EAAG9R,KAAK8R,EAAIsmE,IACvE,MAGF,IAAK,YACJ,IADiBzyE,EAAI,GAAIyb,EAAMphB,KAAK8R,EAChCzV,EAAI,EAAGA,GAAK+7E,IAAQ/7E,EAAG,CAC1B,GAAG2D,KAAKkoO,OAAoC,IAA5BloO,KAAKkoO,KAAKpxO,QAAQsqB,GAIjC,OAHAsd,EAAImoM,GAAY7mO,KAAMohB,GACtBphB,KAAK8R,EAAIsP,EAAM,EACf0uM,EAAKyP,GAAUtpO,KAAK+J,KAAMo4E,EAAK/7E,EAAGqiC,EAAI,YAAc,aAC7CupM,EAAGxhO,KAAK,IAAMqpN,EAEtBmY,EAAGzpO,KAAKipN,EAASof,GAAY7mO,KAAMohB,KACnCA,GAAK,EACJzb,EAAIsiO,EAAGxhO,KAAK,IAAK,MAEpB,QACD,OAAO2xE,GACN,KAAK,EAA6C,OAA1C2vJ,EAAKlB,GAAY7mO,KAAMA,KAAK8R,GAAI9R,KAAK8R,IAAYi2N,EACzD,KAAK,EAAiF,OAA9EA,GAAY,MAANzkO,EAAYukO,GAAgBrB,IAAgBxmO,KAAMA,KAAK8R,GAAI9R,KAAK8R,GAAK,EAAUi2N,EAC7F,KAAK,EAAG,KAAM,EACb,MAAS,MAANzkO,GAAwC,KAAR,IAAjBtD,KAAKA,KAAK8R,EAAE,KAAmBi2N,GAAO3vJ,EAAO,EAAKm8I,GAAgBuT,IAAe9nO,KAAMA,KAAK8R,GAAI9R,KAAK8R,GAAK,EAAUi2N,IAC/HC,EAAKzR,GAAev2N,KAAMA,KAAK8R,GAAI9R,KAAK8R,GAAK,EAAYk2N,GACjE,KAAK,EAAG,KAAM,EACb,GAAS,MAAN1kO,EAGW,OAFC0kO,EAAH,GAAR5vJ,EAAgBivJ,GAASrnO,KAAMA,KAAK8R,GAC7Bu1N,GAAS,CAACrnO,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,GAAG9R,KAAKA,KAAK8R,EAAE,IAAK,GAC9I9R,KAAK8R,GAAK,EAAUk2N,EACd5vJ,EAAO,EAEf,KAAK,GAAIzyE,EAAI+gO,GAAU1mO,KAAMA,KAAK8R,EAAGsmE,IAExB,OAAdp4E,KAAK8R,GAAGsmE,EAAazyE,EAGtB,IAEIwiO,GAAkB,SAAS1lO,EAAG2tB,EAAK44C,GAAOvmE,EAAEumE,GAAc,IAAN54C,EAAa3tB,EAAEumE,EAAI,GAAO54C,IAAQ,EAAK,KAE/F,SAASg4M,GAAW9kO,EAAG8sB,EAAKxrB,GAC3B,IAAIwzE,EAAO,EAAG/7E,EAAI,EAClB,GAAS,SAANuI,EAAc,CAClB,IAAIvI,EAAI,EAAGA,GAAK+zB,EAAIj0B,SAAUE,EAAG8rO,GAAgBnoO,KAAMowB,EAAI6wI,WAAW5kK,GAAI2D,KAAK8R,EAAI,EAAIzV,GACrF+7E,EAAO,EAAIhoD,EAAIj0B,YACT,GAAS,SAANyI,EAAc,CACvB,GAAsB,qBAAZ8gN,SAA2C,KAAhBD,EAEvC,IAAIppN,EAAI,EAAGA,GAAK+zB,EAAIj0B,SAAUE,EAAG,CAC7B,IAAIgsO,EAAY3iB,QAAQ9M,MAAMiP,OAAOpC,EAAcr1L,EAAIgkB,OAAO/3C,IAC9D2D,KAAKA,KAAK8R,EAAIzV,GAAKgsO,EAAU,QAIjC,IADAj4M,EAAMA,EAAI15B,QAAQ,gBAAiB,KAC/B2F,EAAI,EAAGA,GAAK+zB,EAAIj0B,SAAUE,EAAG2D,KAAKA,KAAK8R,EAAIzV,GAA0B,IAApB+zB,EAAI6wI,WAAW5kK,GAElE+7E,EAAOhoD,EAAIj0B,WACL,IAAS,QAANyI,EAAa,CACtB,KAAMvI,EAAIiH,IAAKjH,EACjB2D,KAAKA,KAAK8R,KAAQinB,SAAS3I,EAAIznB,MAAM,EAAEtM,EAAG,EAAEA,EAAE,GAAI,KAAK,EACnD,OAAO2D,KACH,GAAS,YAAN4E,EAAiB,CAC5B,IAAIhL,EAAMrC,KAAKK,IAAIoI,KAAK8R,EAAIxO,EAAGtD,KAAK7D,QACjC,IAAIE,EAAI,EAAGA,EAAI9E,KAAKK,IAAIw4B,EAAIj0B,OAAQmH,KAAMjH,EAAG,CAC5C,IAAIywN,EAAK18L,EAAI6wI,WAAW5kK,GACxB2D,KAAKA,KAAK8R,KAAa,IAALg7M,EAClB9sN,KAAKA,KAAK8R,KAAQg7M,GAAM,EAEzB,KAAM9sN,KAAK8R,EAAIlY,GAAKoG,KAAKA,KAAK8R,KAAO,EACrC,OAAO9R,KACD,OAAOsD,GACd,KAAM,EAAG80E,EAAO,EAAGp4E,KAAKA,KAAK8R,GAAS,IAAJse,EAAU,MAC5C,KAAM,EAAGgoD,EAAO,EAAGp4E,KAAKA,KAAK8R,GAAS,IAAJse,EAAUA,KAAS,EAAGpwB,KAAKA,KAAK8R,EAAE,GAAS,IAAJse,EAAU,MACnF,KAAM,EAAGgoD,EAAO,EAAGp4E,KAAKA,KAAK8R,GAAS,IAAJse,EAAUA,KAAS,EAAGpwB,KAAKA,KAAK8R,EAAE,GAAS,IAAJse,EAAUA,KAAS,EAAGpwB,KAAKA,KAAK8R,EAAE,GAAS,IAAJse,EAAU,MAC1H,KAAM,EAAGgoD,EAAO,EAtCI,SAAS31E,EAAG2tB,EAAK44C,GAAOvmE,EAAEumE,GAAc,IAAN54C,EAAa3tB,EAAEumE,EAAI,GAAO54C,IAAQ,EAAK,IAAO3tB,EAAEumE,EAAI,GAAO54C,IAAQ,GAAM,IAAO3tB,EAAEumE,EAAI,GAAO54C,IAAQ,GAAM,IAsC9Ik4M,CAAgBtoO,KAAMowB,EAAKpwB,KAAK8R,GAAI,MACvD,KAAM,EAAa,GAAVsmE,EAAO,EAAY,MAANxzE,EAAW,EAnMnC,SAAyBnC,EAAG6C,EAAG0jE,GAC9B,IAAIu/J,GAASjjO,EAAI,GAAO,EAAEA,IAAM4e,IAAa,EAAI,IAAM,EAAI7f,EAAI,EAAGuB,EAAI,EAClE4iO,EAAKD,GAAOjjO,EAAKA,EACjBkvB,SAASg0M,GACC,GAANA,EAASnkO,EAAIuB,EAAI,GAExBvB,EAAI9M,KAAKU,MAAMV,KAAK2uE,IAAIsiK,GAAMjxO,KAAKkxO,KACnC7iO,EAAI4iO,EAAKjxO,KAAKa,IAAI,EAAG,GAAKiM,GACtBA,IAAM,QAAWmwB,SAAS5uB,IAAOA,EAAIrO,KAAKa,IAAI,EAAE,KAASiM,GAAK,MAC3DuB,GAAKrO,KAAKa,IAAI,EAAE,IAAKiM,GAAG,QANZA,EAAI,KAAOuB,EAAIhQ,MAAM0P,GAAK,MAAS,GAQvD,IAAI,IAAIjJ,EAAI,EAAGA,GAAK,IAAKA,EAAGuJ,GAAG,IAAKnD,EAAEumE,EAAM3sE,GAAS,IAAJuJ,EACjDnD,EAAEumE,EAAM,IAAW,GAAJ3kE,IAAa,EAAU,GAAJuB,EAClCnD,EAAEumE,EAAM,GAAM3kE,GAAK,EAAKkkO,EAsLYG,CAAgB1oO,KAAMowB,EAAKpwB,KAAK8R,GAAI,MAEvE,KAAK,GAAI,MACT,KAAM,EAAGsmE,EAAO,EAzCI,SAAS31E,EAAG2tB,EAAK44C,GAAOvmE,EAAEumE,GAAc,IAAN54C,EAAa3tB,EAAEumE,EAAI,GAAO54C,GAAO,EAAK,IAAO3tB,EAAEumE,EAAI,GAAO54C,GAAO,GAAM,IAAO3tB,EAAEumE,EAAI,GAAO54C,GAAO,GAAM,IAyC3Iu4M,CAAe3oO,KAAMowB,EAAKpwB,KAAK8R,IAEnC,OAAhB9R,KAAK8R,GAAKsmE,EAAap4E,KAGxB,SAASw/N,GAAWoJ,EAAQC,GAC3B,IAAIjjO,EAAI8gO,GAAU1mO,KAAKA,KAAK8R,EAAE82N,EAAOzsO,QAAQ,GAC7C,GAAGyJ,IAAMgjO,EAAQ,MAAM,IAAIzyO,MAAM0yO,EAAM,YAAcD,EAAS,QAAUhjO,GACxE5F,KAAK8R,GAAK82N,EAAOzsO,QAAQ,EAG1B,SAASo2N,GAAUD,EAAMt1L,GACxBs1L,EAAKxgN,EAAIkrB,EACTs1L,EAAKE,WAAa+M,GAClBjN,EAAKoB,IAAM8L,GACXlN,EAAKH,YAAciW,GAGpB,SAASU,GAAUxW,EAAMn2N,GAAUm2N,EAAKxgN,GAAK3V,EAE7C,SAASm6N,GAAQ7D,GAChB,IAAI9sN,EAAIgjN,EAAY8J,GAEpB,OADAF,GAAU5sN,EAAG,GACNA,EAIR,SAASojO,GAAa1nO,EAAMs+L,EAAI+qB,GAC/B,GAAIrpN,EAAJ,CACA,IAAI2nO,EAASC,EAAS9sO,EACtBo2N,GAAUlxN,EAAMA,EAAKyQ,GAAK,GAE1B,IADA,IAAImC,EAAI5S,EAAKlF,OAAQ+sO,EAAK,EAAGxW,EAAM,EAC7BrxN,EAAKyQ,EAAImC,GAAG,CAET,KADRi1N,EAAK7nO,EAAKmxN,WAAW,MACP0W,GAAW,IAALA,KAAoC,IAArB7nO,EAAKmxN,WAAW,KAAY,IAC/D,IAAI10I,EAAIqrJ,GAAeD,IAAOC,GAAe,OAG7C,IADAhtO,EAAmB,KADnB6sO,EAAU3nO,EAAKmxN,WAAW,IAEtByW,EAAU,EAAGA,EAAS,GAAgB,IAAVD,IAAmBC,EAAS9sO,IAA4C,KAAhC6sO,EAAU3nO,EAAKmxN,WAAW,MAAc,EAAEyW,EAClHvW,EAAMrxN,EAAKyQ,EAAI3V,EACf,IAAIhE,GAAK2lF,EAAEl5E,GAAGkkO,IAAWznO,EAAMlF,EAAQuuN,GAEvC,GADArpN,EAAKyQ,EAAI4gN,EACN/yB,EAAGxnM,EAAG2lF,EAAEv6E,EAAG2lO,GAAK,SAKrB,SAASE,KACR,IAAIlgB,EAAO,GAAImgB,EAAQlhB,EAAU,IAAM,KACnCmhB,EAAS,SAAmB7W,GAC/B,IAAI9sN,EAAK2wN,GAAQ7D,GAEjB,OADAF,GAAU5sN,EAAG,GACNA,GAGJ4jO,EAASD,EAAOD,GAEhBG,EAAS,WACRD,IACDA,EAAOptO,OAASotO,EAAOz3N,KAAKy3N,EAASA,EAAO5gO,MAAM,EAAG4gO,EAAOz3N,IAAWA,EAAIy3N,EAAOptO,QAClFotO,EAAOptO,OAAS,GAAG+sN,EAAK1qN,KAAK+qO,GAChCA,EAAS,OAGNnlO,EAAO,SAAiBquN,GAC3B,OAAG8W,GAAW9W,EAAM8W,EAAOptO,OAASotO,EAAOz3N,EAAYy3N,GACvDC,IACQD,EAASD,EAAO/xO,KAAKM,IAAI46N,EAAG,EAAG4W,MAUxC,MAAQ,CAAEjlO,KAAKA,EAAM5F,KAFV,SAAiB+pN,GAAOihB,IAAuC,OAA7BD,EAAShhB,GAAez2M,IAAWy3N,EAAOz3N,EAAIy3N,EAAOptO,QAAQiI,EAAKilO,IAE/EzvO,IAPtB,WAET,OADA4vO,IACOzU,GAAW,CAAC7L,KAKqBugB,MAAMvgB,GAGhD,SAASwgB,GAAaC,EAAIpoO,EAAM+V,EAASnb,GACxC,IAAuB2V,EAAnBxO,GAAKsmO,GAAOroO,GAChB,IAAG3L,MAAM0N,GAAT,CACInH,IAAQA,EAASgtO,GAAe7lO,GAAGT,IAAMyU,GAAS,IAAInb,QAAU,GACpE2V,EAAI,GAAKxO,GAAK,IAAO,EAAI,GAAK,EAC3BnH,GAAU,OAAQ2V,EAAM3V,GAAU,SAAU2V,EAAM3V,GAAU,WAAY2V,EAC3E,IAAInM,EAAIgkO,EAAGvlO,KAAK0N,GACbxO,GAAK,IAAMqC,EAAEwsN,YAAY,EAAG7uN,IAE9BqC,EAAEwsN,YAAY,EAAgB,KAAR,IAAJ7uN,IAClBqC,EAAEwsN,YAAY,EAAI7uN,GAAK,IAExB,IAAI,IAAIjH,EAAI,EAAQ,GAALA,IAAUA,EAAG,CAC3B,KAAGF,GAAU,KACR,CAAEwJ,EAAEwsN,YAAY,EAAGh2N,GAAS,MADZwJ,EAAEwsN,YAAY,EAAmB,KAAN,IAATh2N,IAAsBA,IAAW,EAGtEA,EAAS,GAAKurO,GAAOpwN,IAAUqyN,EAAGnrO,KAAK8Y,IAG3C,SAASuyN,GAAeC,EAAMpX,EAAKhI,GAClC,IAAI93K,EAAMivL,GAAIiI,GAQd,GAPGpX,EAAIz3N,GACH23C,EAAIm3L,OAAMn3L,EAAIhhC,GAAK8gN,EAAIz3N,EAAE2W,GACzBghC,EAAIo3L,OAAMp3L,EAAI9sC,GAAK4sN,EAAIz3N,EAAE6K,KAEzB8sC,EAAIm3L,OAAMn3L,EAAIhhC,GAAK8gN,EAAI9gN,GACvBghC,EAAIo3L,OAAMp3L,EAAI9sC,GAAK4sN,EAAI5sN,KAEvB4kN,GAAQA,EAAKuf,KAAO,GAAI,CAC3B,KAAMr3L,EAAIhhC,GAAK,KAAOghC,EAAIhhC,GAAK,IAC/B,KAAMghC,EAAI9sC,GAAK,OAAS8sC,EAAI9sC,GAAK,MAElC,OAAO8sC,EAGR,SAASs3L,GAAgBJ,EAAM/vO,EAAO2wN,GACrC,IAAI93K,EAAMivL,GAAIiI,GAGd,OAFAl3L,EAAI33C,EAAI4uO,GAAej3L,EAAI33C,EAAGlB,EAAMkB,EAAGyvN,GACvC93K,EAAIvuC,EAAIwlO,GAAej3L,EAAIvuC,EAAGtK,EAAMkB,EAAGyvN,GAChC93K,EAGR,SAASu3L,GAAgBv4N,EAAGq4N,GAC3B,GAAGr4N,EAAEm4N,MAAQn4N,EAAEA,EAAI,EAAiB,IAAZA,EAAIiwN,GAAIjwN,GAAUA,EAAEA,EAAI,GAAGA,EAAEA,GAAMq4N,EAAO,EAAK,MAAS,IAChF,GAAGr4N,EAAEo4N,MAAQp4N,EAAE9L,EAAI,EAAiB,IAAZ8L,EAAIiwN,GAAIjwN,GAAUA,EAAE9L,EAAI,GAAG8L,EAAE9L,GAAMmkO,EAAO,EAAK,QAAaA,EAAO,EAAK,MAAU,MAC1G,IAAIhvO,EAAImvO,GAAYx4N,GAGpB,OAFIA,EAAEm4N,MAAkB,MAAVn4N,EAAEm4N,OAAc9uO,EAAYA,EA8DNvE,QAAQ,WAAW,SA7DnDkb,EAAEo4N,MAAkB,MAAVp4N,EAAEo4N,OAAc/uO,EAwD/B,SAAiBovO,GAAQ,OAAOA,EAAK3zO,QAAQ,kBAAkB,UAxD5B4zO,CAAQrvO,IACnCA,EAGR,SAASsvO,GAAiBzkO,EAAG4kN,GAC5B,OAAY,GAAT5kN,EAAE7K,EAAE6K,GAAWA,EAAE7K,EAAE+uO,MAClBlkO,EAAEzB,EAAEyB,IAAM4kN,EAAKuf,MAAQ,GAAK,QAAWvf,EAAKuf,MAAQ,EAAI,MAAU,QAAankO,EAAEzB,EAAE2lO,KAI3E,GAATlkO,EAAE7K,EAAE2W,GAAW9L,EAAE7K,EAAE8uO,MAClBjkO,EAAEzB,EAAEuN,IAAM84M,EAAKuf,MAAQ,GAAK,MAAS,MAAUnkO,EAAEzB,EAAE0lO,KAIhDI,GAAgBrkO,EAAE7K,EAAGyvN,EAAKuf,MAAQ,IAAME,GAAgBrkO,EAAEzB,EAAGqmN,EAAKuf,OAH/DnkO,EAAE7K,EAAE+uO,KAAO,GAAK,KAAOQ,GAAW1kO,EAAE7K,EAAE6K,GAAK,KAAOA,EAAEzB,EAAE2lO,KAAO,GAAK,KAAOQ,GAAW1kO,EAAEzB,EAAEyB,IALxFA,EAAE7K,EAAE8uO,KAAO,GAAK,KAAOU,GAAW3kO,EAAE7K,EAAE2W,GAAK,KAAO9L,EAAEzB,EAAE0lO,KAAO,GAAK,KAAOU,GAAW3kO,EAAEzB,EAAEuN,GA+CnG,SAAS84N,GAAWC,GAAU,OAAO5xM,SAAmB4xM,EAGjBj0O,QAAQ,WAAW,MAHM,IAAM,EACtE,SAAS8zO,GAAW3/J,GAAO,MAAO,IAAMA,EAAM,GAI9C,SAAS+/J,GAAWC,GAAmD,IAAzC,IAAIj5N,EAAci5N,EAGTn0O,QAAQ,aAAa,MAHHyB,EAAI,EAAGkE,EAAI,EAASA,IAAMuV,EAAEzV,SAAUE,EAAGlE,EAAI,GAAGA,EAAIyZ,EAAEqvJ,WAAW5kK,GAAK,GAAI,OAAOlE,EAAI,EAC9I,SAASsyO,GAAWt6B,GAAO,GAAGA,EAAM,EAAG,MAAM,IAAIh6M,MAAM,kBAAoBg6M,GAAM,IAAIl1M,EAAE,GAAI,MAAMk1M,EAAKA,EAAKA,EAAI54M,KAAKU,OAAOk4M,EAAI,GAAG,IAAKl1M,EAAI8uC,OAAOu9K,cAAenX,EAAI,GAAG,GAAM,IAAMl1M,EAAG,OAAOA,EAI9L,SAAS6vO,GAAWT,GAAQ,OAAOA,EAAK3zO,QAAQ,sBAAsB,SAASurB,MAAM,KACrF,SAAS8oN,GAAYV,GAAQ,IAAIW,EAAOF,GAAWT,GAAO,MAAO,CAAEz4N,EAAEg5N,GAAWI,EAAK,IAAKllO,EAAE4kO,GAAWM,EAAK,KAC5G,SAASZ,GAAYN,GAAQ,OAAOW,GAAWX,EAAKl4N,GAAK44N,GAAWV,EAAKhkO,GACzE,SAASmlO,GAAalxO,GAAS,IAAIO,EAAGP,EAAMkoB,MAAM,KAAKiJ,IAAI6/M,IAAc,MAAO,CAAC9vO,EAAEX,EAAE,GAAG+J,EAAE/J,EAAEA,EAAE6B,OAAO,IACrG,SAAS+uO,GAAaviN,EAAGwiN,GACxB,MAAiB,qBAAPA,GAAoC,kBAAPA,EACjCD,GAAaviN,EAAG1tB,EAAG0tB,EAAGtkB,IAEZ,kBAAPskB,IAAiBA,EAAKyhN,GAAazhN,IAC3B,kBAAPwiN,IAAiBA,EAAKf,GAAae,IACvCxiN,GAAMwiN,EAAKxiN,EAAKA,EAAK,IAAMwiN,GAGlC,SAASC,GAAkBrxO,GAC1B,IAAI4L,EAAI,CAAC1K,EAAE,CAAC2W,EAAE,EAAE9L,EAAE,GAAGzB,EAAE,CAACuN,EAAE,EAAE9L,EAAE,IAC1BkjE,EAAM,EAAG3sE,EAAI,EAAGywN,EAAK,EACrBz7M,EAAMtX,EAAMoC,OAChB,IAAI6sE,EAAM,EAAG3sE,EAAIgV,MACZy7M,EAAG/yN,EAAMknK,WAAW5kK,GAAG,IAAM,GAAKywN,EAAK,MADpBzwN,EAEvB2sE,EAAM,GAAGA,EAAM8jJ,EAIhB,IAFAnnN,EAAE1K,EAAE2W,IAAMo3D,EAENA,EAAM,EAAG3sE,EAAIgV,MACZy7M,EAAG/yN,EAAMknK,WAAW5kK,GAAG,IAAM,GAAKywN,EAAK,KADpBzwN,EAEvB2sE,EAAM,GAAGA,EAAM8jJ,EAIhB,GAFAnnN,EAAE1K,EAAE6K,IAAMkjE,EAEP3sE,IAAMgV,GAAiC,KAA1BtX,EAAMknK,aAAa5kK,GAAuC,OAA1BsJ,EAAEtB,EAAEuN,EAAEjM,EAAE1K,EAAE2W,EAAGjM,EAAEtB,EAAEyB,EAAEH,EAAE1K,EAAE6K,EAAUH,EAEjF,IAAIqjE,EAAM,EAAG3sE,GAAKgV,MACby7M,EAAG/yN,EAAMknK,WAAW5kK,GAAG,IAAM,GAAKywN,EAAK,MADnBzwN,EAExB2sE,EAAM,GAAGA,EAAM8jJ,EAIhB,IAFAnnN,EAAEtB,EAAEuN,IAAMo3D,EAENA,EAAM,EAAG3sE,GAAKgV,MACby7M,EAAG/yN,EAAMknK,WAAW5kK,GAAG,IAAM,GAAKywN,EAAK,KADnBzwN,EAExB2sE,EAAM,GAAGA,EAAM8jJ,EAGhB,OADAnnN,EAAEtB,EAAEyB,IAAMkjE,EACHrjE,EAGR,SAAS0lO,GAAiBvB,EAAMxkO,GAC/B,IAAI02J,EAAe,KAAV8tE,EAAKxmO,GAAYgC,aAAaof,KACvC,GAAa,MAAVolN,EAAKlG,EAAW,IAAM,OAAQkG,EAAKprM,EAAI2qL,EAAI1lM,OAAOmmN,EAAKlG,EAAG5nE,EAAIolE,EAAQ97N,GAAKA,GAAO,MAAMjB,KAC3F,IAAM,OAAQylO,EAAKprM,EAAI2qL,EAAI1lM,QAAQmmN,EAAKwB,IAAI,IAAIC,WAAWvvE,EAAI,GAAK,GAAKA,EAAIolE,EAAQ97N,GAAKA,GAAO,MAAMjB,IAAK,MAAO,GAAGiB,GAGvH,SAASkmO,GAAY1B,EAAMxkO,EAAGK,GAC7B,OAAW,MAARmkO,GAA0B,MAAVA,EAAKxmO,GAAuB,KAAVwmO,EAAKxmO,EAAiB,QAC7CoJ,IAAXo9N,EAAKprM,EAAwBorM,EAAKprM,GACxB,KAAVorM,EAAKxmO,IAAawmO,EAAKlG,GAAKj+N,GAAKA,EAAE6qN,SAAQsZ,EAAKlG,EAAIj+N,EAAE6qN,QAC/B6a,GAAiBvB,OAAnCp9N,GAALpH,EAA8CwkO,EAAKxkO,EACxBA,IAG/B,SAASmmO,GAAkB9mL,EAAO+lK,GACjC,IAAInnN,EAAImnN,GAAQA,EAAK/lK,MAAQ+lK,EAAK/lK,MAAQ,SACtC+mL,EAAS,GACb,OADiBA,EAAOnoO,GAAKohD,EACtB,CAAEgnL,WAAY,CAACpoO,GAAIqoO,OAAQF,GAGnC,SAASG,GAAcC,EAAKzqO,EAAMqpN,GACjC,IAAI/kN,EAAI+kN,GAAQ,GACZqhB,EAAQD,EAAMz0O,MAAMD,QAAQ00O,GAAOnmO,EAAEomO,MAEzC,IAAIvxM,EAAKsxM,IAAQC,EAAS,GAAO,IAC7BC,EAAK,EAAGC,EAAK,EACjB,GAAGzxM,GAAkB,MAAZ70B,EAAEumO,OACV,GAAsB,iBAAZvmO,EAAEumO,OAAoBF,EAAKrmO,EAAEumO,WAClC,CACJ,IAAIC,EAA6B,iBAAZxmO,EAAEumO,OAAqBnB,GAAYplO,EAAEumO,QAAUvmO,EAAEumO,OACtEF,EAAKG,EAAQrmO,EAAGmmO,EAAKE,EAAQv6N,EAG/B,IAAI7X,EAAS,CAACkB,EAAG,CAAC2W,EAAE,IAAU9L,EAAE,KAAWzB,EAAG,CAACuN,EAAE,EAAG9L,EAAE,IACtD,GAAG00B,EAAG,QAAS,CACd,IAAI4xM,EAAShB,GAAkB5wM,EAAG,SAClCzgC,EAAMkB,EAAE2W,EAAIw6N,EAAOnxO,EAAE2W,EACrB7X,EAAMkB,EAAE6K,EAAIsmO,EAAOnxO,EAAE6K,EACrB/L,EAAMsK,EAAEuN,EAAIra,KAAKM,IAAIkC,EAAMsK,EAAEuN,EAAGw6N,EAAO/nO,EAAEuN,GACzC7X,EAAMsK,EAAEyB,EAAIvO,KAAKM,IAAIkC,EAAMsK,EAAEyB,EAAGsmO,EAAO/nO,EAAEyB,IAC/B,GAAPkmO,IAAUjyO,EAAMsK,EAAEyB,EAAIkmO,EAAKI,EAAO/nO,EAAEyB,EAAI,GAE5C,IAAI,IAAIg4E,EAAI,EAAGA,GAAKz8E,EAAKlF,SAAU2hF,EAClC,GAAIz8E,EAAKy8E,GAAT,CACA,IAAIzmF,MAAMD,QAAQiK,EAAKy8E,IAAK,MAAM,IAAI3nF,MAAM,2CAC5C,IAAI,IAAIgnF,EAAI,EAAGA,GAAK97E,EAAKy8E,GAAG3hF,SAAUghF,EACrC,GAAyB,qBAAf97E,EAAKy8E,GAAGX,GAAlB,CACA,IAAI2sJ,EAAQ,CAACxkO,EAAGjE,EAAKy8E,GAAGX,IACpBkvJ,EAAML,EAAKluJ,EAAGwuJ,EAAML,EAAK9uJ,EAK7B,GAJGpjF,EAAMkB,EAAE6K,EAAIumO,IAAKtyO,EAAMkB,EAAE6K,EAAIumO,GAC7BtyO,EAAMkB,EAAE2W,EAAI06N,IAAKvyO,EAAMkB,EAAE2W,EAAI06N,GAC7BvyO,EAAMsK,EAAEyB,EAAIumO,IAAKtyO,EAAMsK,EAAEyB,EAAIumO,GAC7BtyO,EAAMsK,EAAEuN,EAAI06N,IAAKvyO,EAAMsK,EAAEuN,EAAI06N,IAC7BjrO,EAAKy8E,GAAGX,IAA4B,kBAAf97E,EAAKy8E,GAAGX,IAAoB9lF,MAAMD,QAAQiK,EAAKy8E,GAAGX,KAAS97E,EAAKy8E,GAAGX,aAAcz4D,KAGxG,GADGrtB,MAAMD,QAAQ0yO,EAAKxkO,KAAMwkO,EAAKllO,EAAIvD,EAAKy8E,GAAGX,GAAG,GAAI2sJ,EAAKxkO,EAAIwkO,EAAKxkO,EAAE,IACtD,OAAXwkO,EAAKxkO,EAAc,GAAGwkO,EAAKllO,EAAGklO,EAAKxmO,EAAI,QAAU,KAAIqC,EAAE4mO,WAAY,SAAezC,EAAKxmO,EAAI,QACpE,kBAAXwmO,EAAKxkO,EAAgBwkO,EAAKxmO,EAAI,IACnB,mBAAXwmO,EAAKxkO,EAAiBwkO,EAAKxmO,EAAI,IACtCwmO,EAAKxkO,aAAaof,MACzBolN,EAAKlG,EAAIj+N,EAAE6qN,QAAUnH,EAAI0H,OAAO,IAC7BprN,EAAE6mO,WAAa1C,EAAKxmO,EAAI,IAAKwmO,EAAKprM,EAAI2qL,EAAI1lM,OAAOmmN,EAAKlG,EAAGxC,EAAQ0I,EAAKxkO,MAClEwkO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAI87N,EAAQ0I,EAAKxkO,GAAIwkO,EAAKprM,EAAI2qL,EAAI1lM,OAAOmmN,EAAKlG,EAAGkG,EAAKxkO,KAE5EwkO,EAAKxmO,EAAI,SAXiGwmO,EAAOzoO,EAAKy8E,GAAGX,GAa/H,GAAG4uJ,EACEvxM,EAAG6xM,KAAM7xM,EAAG6xM,GAAO,IACpB7xM,EAAG6xM,GAAKC,IAAQ9xM,EAAG6xM,GAAKC,GAAK1I,IAAGkG,EAAKlG,EAAIppM,EAAG6xM,GAAKC,GAAK1I,GACzDppM,EAAG6xM,GAAKC,GAAOxC,MACT,CACN,IAAI2C,EAAWrC,GAAa,CAACx4N,EAAE06N,EAAIxmO,EAAEumO,IAClC7xM,EAAGiyM,IAAajyM,EAAGiyM,GAAU7I,IAAGkG,EAAKlG,EAAIppM,EAAGiyM,GAAU7I,GACzDppM,EAAGiyM,GAAY3C,IAKlB,OADG/vO,EAAMkB,EAAE2W,EAAI,MAAU4oB,EAAG,QAAU0wM,GAAanxO,IAC5CygC,EAER,SAASkyM,GAAarrO,EAAMqpN,GAAQ,OAAOmhB,GAAc,KAAMxqO,EAAMqpN,GAErE,SAASiiB,GAAeryO,EAAGqL,GAG1B,OAFIA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,EAAG73N,GACVqL,EAIR,SAASinO,GAAmBvrO,GAC3B,IAAIwrO,EAAgBxrO,EAAKmxN,WAAW,GACpC,OAAyB,IAAlBqa,EAAsB,GAAKxrO,EAAKmxN,WAAWqa,EAAe,QAElE,SAASC,GAAmBzrO,EAAMsE,GACjC,IAAIonO,GAAQ,EAGZ,OAH2B,MAALpnO,IAAaonO,GAAQ,EAAMpnO,EAAI2wN,GAAQ,EAAE,EAAEj1N,EAAKlF,SACtEwJ,EAAEwsN,YAAY,EAAG9wN,EAAKlF,QACnBkF,EAAKlF,OAAS,GAAGwJ,EAAEwsN,YAAY,EAAG9wN,EAAM,QACpC0rO,EAAQpnO,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAUlC,SAASqnO,GAAa3rO,GACrB,MAAO,CAAE4rO,IAAK5rO,EAAKmxN,WAAW,GAAI0a,KAAM7rO,EAAKmxN,WAAW,IAUzD,SAAS2a,GAAc9rO,EAAMlF,GAC5B,IAAI1C,EAAQ4H,EAAKyQ,EACbwd,EAAQjuB,EAAKmxN,WAAW,GACxBxwM,EAAM4qN,GAAmBvrO,GACzB+rO,EAAY,GACZxJ,EAAK,CAAEtgO,EAAG0e,EAAKkX,EAAGlX,GACtB,GAAmB,KAAP,EAARsN,GAAkB,CAGrB,IADA,IAAI+9M,EAAehsO,EAAKmxN,WAAW,GAC3Bn2N,EAAI,EAAGA,GAAKgxO,IAAgBhxO,EAAG+wO,EAAU5uO,KAAKwuO,GAAa3rO,IACnEuiO,EAAE99N,EAAIsnO,OAEFxJ,EAAE99N,EAAI,CAAC,CAACmnO,IAAI,EAAGC,KAAK,IAKzB,OADA7rO,EAAKyQ,EAAIrY,EAAQ0C,EACVynO,GAjOa,SAAShmJ,EAAG0vJ,GAChC,IAAIC,EACJ,GAAsB,qBAAZD,EAAyBC,EAASD,MACvC,CACJ,IAAMC,EAAS53O,EAAQ,KACvB,MAAM0O,IAAKkpO,EAAS,MAGrB3vJ,EAAE4vJ,IAAM,SAAS1sO,EAAKO,GACrB,IAAI08E,EAAI,IAAI1mF,MAAM,KACdua,EAAI,EAAGvV,EAAI,EAAG4jC,EAAI,EAAG38B,EAAI,EAC7B,IAAIjH,EAAI,EAAQ,KAALA,IAAYA,EAAG0hF,EAAE1hF,GAAKA,EACjC,IAAIA,EAAI,EAAQ,KAALA,IAAYA,EACtB4jC,EAAKA,EAAI89C,EAAE1hF,GAAMyE,EAAIzE,EAAEyE,EAAI3E,QAAS8kK,WAAW,GAAI,IACnD39J,EAAIy6E,EAAE1hF,GAAI0hF,EAAE1hF,GAAK0hF,EAAE99C,GAAI89C,EAAE99C,GAAK38B,EAG/BjH,EAAI4jC,EAAI,EAAG,IAAI2S,EAAMw1K,EAAO/mN,EAAKlF,QACjC,IAAIyV,EAAI,EAAGA,GAAKvQ,EAAKlF,SAAUyV,EAE9BquB,GAAKA,EAAI89C,EADT1hF,EAAKA,EAAI,EAAG,MACG,IACfiH,EAAIy6E,EAAE1hF,GAAI0hF,EAAE1hF,GAAK0hF,EAAE99C,GAAI89C,EAAE99C,GAAK38B,EAC9BsvC,EAAIhhC,GAAMvQ,EAAKuQ,GAAKmsE,EAAGA,EAAE1hF,GAAG0hF,EAAE99C,GAAI,KAEnC,OAAO2S,GAGRgrC,EAAE6vJ,IAAM,SAASpwL,GAChB,IAAIkwL,EAAQ,MAAM,IAAIp3O,MAAM,sBAC5B,OAAOo3O,EAAOG,WAAW,OAAO54I,OAAOz3C,GAAKswL,OAAO,QAIrDC,CAnCgB,GAmC4B,qBAAXL,OAAyBA,YAAS7gO,GA0MnE,IAAImhO,GAAuBV,GAC3B,SAASW,GAAqB9rN,EAAKrc,GAElC,IAAIonO,GAAQ,EAKZ,OAL2B,MAALpnO,IAAaonO,GAAQ,EAAMpnO,EAAI2wN,GAAQ,GAAG,EAAEt0M,EAAI1e,EAAEnH,SACxEwJ,EAAEwsN,YAAY,EAAE,GAChB2a,GAAmB9qN,EAAI1e,EAAGqC,GAC1BA,EAAEwsN,YAAY,EAAE,GAzCjB,SAAsB4b,EAAKpoO,GACtBA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,EAAG4b,EAAId,KAAO,GAC5BtnO,EAAEwsN,YAAY,EAAG4b,EAAIb,MAAQ,GAuC7Bc,CAAa,CAACf,IAAI,EAAEC,KAAK,GAAIvnO,GACtBonO,EAAQpnO,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAIlC,SAASsoO,GAAe5sO,GACvB,IAAI8uM,EAAM9uM,EAAKmxN,WAAW,GACtB0b,EAAY7sO,EAAKmxN,WAAW,GAGhC,OAFA0b,GAAa7sO,EAAKmxN,WAAW,IAAK,GAClCnxN,EAAKyQ,IACE,CAAEF,EAAEu+L,EAAK+9B,UAAWA,GAE5B,SAASC,GAAerE,EAAMnkO,GAK7B,OAJQ,MAALA,IAAWA,EAAI2wN,GAAQ,IAC1B3wN,EAAEwsN,aAAa,EAAG2X,EAAKl4N,GACvBjM,EAAEwsN,YAAY,EAAG2X,EAAKoE,WAAapE,EAAK7uO,GACxC0K,EAAEwsN,YAAY,EAAG,GACVxsN,EAKR,IAAIyoO,GAAqBxB,GACrByB,GAAqBvB,GAGzB,SAASwB,GAA2BjtO,GACnC,IAAIwrO,EAAgBxrO,EAAKmxN,WAAW,GACpC,OAAyB,IAAlBqa,GAAyC,aAAlBA,EAA+B,GAAKxrO,EAAKmxN,WAAWqa,EAAe,QAElG,SAAS0B,GAA2BltO,EAAMsE,GACzC,IAAIonO,GAAQ,EAGZ,OAH2B,MAALpnO,IAAaonO,GAAQ,EAAMpnO,EAAI2wN,GAAQ,MAC7D3wN,EAAEwsN,YAAY,EAAG9wN,EAAKlF,OAAS,EAAIkF,EAAKlF,OAAS,YAC9CkF,EAAKlF,OAAS,GAAGwJ,EAAEwsN,YAAY,EAAG9wN,EAAM,QACpC0rO,EAAQpnO,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAIlC,IAAI6oO,GAAyB5B,GAIzB6B,GAAcH,GACdI,GAAcH,GAIlB,SAASI,GAAettO,GACvB,IAAIoB,EAAIpB,EAAKsH,MAAMtH,EAAKyQ,EAAGzQ,EAAKyQ,EAAE,GAC9B88N,EAAgB,EAAPnsO,EAAE,GAASosO,EAAe,EAAPpsO,EAAE,GAClCpB,EAAKyQ,GAAG,EACRrP,EAAE,IAAM,IACR,IAAIqsO,EAAc,IAATD,EAAaxH,GAAS,CAAC,EAAE,EAAE,EAAE,EAAE5kO,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,GAAK8xN,GAAc9xN,EAAE,IAAI,EACtF,OAAOmsO,EAASE,EAAG,IAAOA,EAa3B,SAASC,GAAU1tO,GAClB,IAAIyoO,EAAQ,CAAC7uO,EAAG,GAAIoJ,EAAG,IAKvB,OAJAylO,EAAK7uO,EAAE6K,EAAIzE,EAAKmxN,WAAW,GAC3BsX,EAAKzlO,EAAEyB,EAAIzE,EAAKmxN,WAAW,GAC3BsX,EAAK7uO,EAAE2W,EAAIvQ,EAAKmxN,WAAW,GAC3BsX,EAAKzlO,EAAEuN,EAAIvQ,EAAKmxN,WAAW,GACpBsX,EAYR,IAAIkF,GAAqBD,GACrBE,GAXJ,SAAmBnpO,EAAGH,GAMrB,OALIA,IAAGA,EAAI2wN,GAAQ,KACnB3wN,EAAEwsN,YAAY,EAAGrsN,EAAE7K,EAAE6K,GACrBH,EAAEwsN,YAAY,EAAGrsN,EAAEzB,EAAEyB,GACrBH,EAAEwsN,YAAY,EAAGrsN,EAAE7K,EAAE2W,GACrBjM,EAAEwsN,YAAY,EAAGrsN,EAAEzB,EAAEuN,GACdjM,GA6BR,SAASupO,GAAW7tO,GAAQ,OAAOA,EAAKmxN,WAAW,EAAG,KACtD,SAAS2c,GAAW9tO,EAAMsE,GAAK,OAAQA,GAAK2wN,GAAQ,IAAInE,YAAY,EAAG9wN,EAAM,KAG7E,IAAI+tO,GAAO,CACXvpB,EAAM,SACN,EAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,OACN,GAAM,gBACN,IAAM,SAEFwpB,GAAQlO,EAAUiO,IAmCtB,SAASE,GAAevyL,EAAOp3C,GAE9B,GADIA,IAAGA,EAAI2wN,GAAQ,KACfv5K,GAAOA,EAAMwyL,KAAkD,OAA1C5pO,EAAEwsN,YAAY,EAAG,GAAIxsN,EAAEwsN,YAAY,EAAG,GAAWxsN,EACxD,MAAfo3C,EAAMp1C,OACRhC,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAGp1K,EAAMp1C,QACC,MAAfo1C,EAAMk9F,OACft0I,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAGp1K,EAAMk9F,SAEvBt0I,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,IAElB,IAAIqd,EAAMzyL,EAAM0yL,MAAQ,EAIxB,GAHGD,EAAM,EAAGA,GAAO,MACXA,EAAM,IAAGA,GAAO,OACxB7pO,EAAEwsN,YAAY,EAAGqd,GACbzyL,EAAMQ,KAAsB,MAAfR,EAAMk9F,MAIhB,CACN,IAAI18F,EAAOR,EAAMQ,KAAO,SACP,iBAAPA,IAAiBA,GAAO,SAAWA,EAAIvnD,SAAS,KAAK2S,OAAO,IACtEhD,EAAEwsN,YAAY,EAAGp5L,SAASwkB,EAAI50C,MAAM,EAAE,GAAG,KACzChD,EAAEwsN,YAAY,EAAGp5L,SAASwkB,EAAI50C,MAAM,EAAE,GAAG,KACzChD,EAAEwsN,YAAY,EAAGp5L,SAASwkB,EAAI50C,MAAM,EAAE,GAAG,KACzChD,EAAEwsN,YAAY,EAAG,UATjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GASlB,OAAOxsN,EAkCR,SAAS+pO,GAA8B/pO,EAAG+4B,GAEzC,IACI94B,EAAID,EAAE6sN,WAAW,GACrB,OAAO5sN,GACN,KAAK,EAAY,MAAO,GACxB,KAAK,WAAY,KAAK,WAAY,MAJrB,CAACmgN,EAAE,SAAS4pB,EAAE,eAAeC,EAAE,MAAMC,GAAG,eAIJlqO,EAAE6sN,WAAW,KAAK,GAEpE,GAAG5sN,EAAI,IAAO,MAAM,IAAIzP,MAAM,0BAA4ByP,EAAE5P,SAAS,KAErE,OADA2P,EAAEmM,GAAK,EACAnM,EAAE6sN,WAAW,EAAQ,GAAL9zL,EAAS,QAAU,UAQ3C,IAoCIoxM,GAAc,CAFA,GACA,IAIdC,GAAmB,CACvB,EAAM,CAAExsO,EAAG,WAAYD,EAxCL,GAyClB,EAAM,CAAEC,EAAG,WAAYD,EAPL,IAQlB,EAAM,CAAEC,EAAG,qBAAsBD,EARf,IASlB,EAAM,CAAEC,EAAG,YAAaD,EA1CN,GA2ClB,EAAM,CAAEC,EAAG,YAAaD,EA3CN,GA4ClB,EAAM,CAAEC,EAAG,iBAAkBD,EA5CX,GA6ClB,EAAM,CAAEC,EAAG,aAAcD,EA7CP,GA8ClB,EAAM,CAAEC,EAAG,YAAaD,EA9CN,GA+ClB,EAAM,CAAEC,EAAG,cAAeD,EA/CR,GAgDlB,GAAM,CAAEC,EAAG,sBAAuBD,EAhDhB,GAiDlB,GAAM,CAAEC,EAAG,YAAaD,EA1CN,IA2ClB,GAAM,CAAEC,EAAG,eAAgBD,EAAG0sO,MAC9B,GAAM,CAAEzsO,EAAG,gBAAiBD,EAAG0sO,MAC/B,GAAM,CAAEzsO,EAAG,UAAWD,EAnBJ,IAoBlB,GAAM,CAAEC,EAAG,UAAWD,EApBJ,IAqBlB,GAAM,CAAEC,EAAG,gBAAiBD,EA/CV,IAgDlB,GAAM,CAAEC,EAAG,iBAAkBD,EAvDX,GAwDlB,GAAM,CAAEC,EAAG,YAAaD,EAjDN,IAkDlB,GAAM,CAAEC,EAAG,oBAAqBD,EAlDd,IAmDlB,GAAM,CAAEC,EAAG,aAAcD,EA1DP,EA0DiBT,EAAG,WACtC,GAAM,CAAEU,EAAG,SAAUD,EAtCH,IAuClB,GAAM,CAAEC,EAAG,cAAeD,EA3BR,IA4BlB,GAAM,CAAEC,EAAG,gBAAiBD,EA5BV,IA6BlB,GAAM,CAAEC,EAAG,WAAYD,EA7BL,IA8BlB,GAAM,CAAEC,EAAG,UAAWD,EA9BJ,IA+BlB,IAAM,IAIF2sO,GAAe,CACnB,EAAM,CAAE1sO,EAAG,WAAYD,EAtEL,GAuElB,EAAM,CAAEC,EAAG,QAASD,EArCF,IAsClB,EAAM,CAAEC,EAAG,UAAWD,EAtCJ,IAuClB,EAAM,CAAEC,EAAG,SAAUD,EAvCH,IAwClB,EAAM,CAAEC,EAAG,WAAYD,EAxCL,IAyClB,EAAM,CAAEC,EAAG,WAAYD,EAzCL,IA0ClB,EAAM,CAAEC,EAAG,WAAYD,EA1CL,IA2ClB,EAAM,CAAEC,EAAG,aAAcD,EA3CP,IA4ClB,EAAM,CAAEC,EAAG,YAAaD,EA5CN,IA6ClB,GAAM,CAAEC,EAAG,WAAYD,EA1DL,IA2DlB,GAAM,CAAEC,EAAG,cAAeD,EA3DR,IA4DlB,GAAM,CAAEC,EAAG,cAAeD,EA5DR,IA6DlB,GAAM,CAAEC,EAAG,eAAgBD,EA7DT,IA8DlB,GAAM,CAAEC,EAAG,YAAaD,EAlFN,GAmFlB,GAAM,CAAEC,EAAG,YAAaD,EAnFN,GAoFlB,GAAM,CAAEC,EAAG,YAAaD,EApFN,GAqFlB,GAAM,CAAEC,EAAG,YAAaD,EA1DN,IA2DlB,GAAM,CAAEC,EAAG,cAAeD,EArDR,IAsDlB,GAAM,CAAEC,EAAG,cAAeD,EAvFR,GAwFlB,IAAM,IAIF4sO,GAAoB,CACxB,WAAY,CAAE3sO,EAAG,SAAUD,EAhFT,IAiFlB,WAAY,CAAEC,EAAG,WAAYD,EAjFX,IAkFlB,WAAY,KAGZ,WACC,IAAI,IAAI/I,KAAK21O,GAAsBxtO,OAAOQ,UAAUJ,eAAe7M,KAAKi6O,GAAmB31O,KAC3Fw1O,GAAiBx1O,GAAK01O,GAAa11O,GAAK21O,GAAkB31O,IAF3D,GAKA,IAAI41O,GAAelP,EAAU8O,GAAkB,KAC3CK,GAAYnP,EAAUgP,GAAc,KAGpCI,GAAc,CAClB,EAAQ,KACR,EAAQ,KACR,EAAQ,GACR,EAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,GAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,MAAQ,MAIJC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAmGGC,GAAS1O,GA5FQ,CAEpB,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GA9FiC32M,KAAI,SAAS5wB,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,OAqG/Ek2O,GAAgC,CAEnC,6EAA8E,YAG9E,sCAAuC,OAGvC,0CAA2C,OAC3C,sCAAuC,OAGvC,6DAA8D,YAC9D,sEAAuE,YACvE,wEAAyE,WAGzE,wEAAyE,OACzE,6EAA8E,OAG9E,sCAAuC,OACvC,6EAA8E,OAG9E,oEAAqE,OAGrE,gDAAiD,OAGjD,2CAA4C,OAG5C,wCAAyC,OAGzC,qCAAsC,aACtC,4EAA6E,aAG7E,8EAA+E,OAG/E,oCAAqC,OACrC,wCAAyC,OAGzC,4CAA6C,OAG7C,uCAAwC,OACxC,8EAA+E,OAG/E,wCAAyC,QACzC,+EAAgF,QAGhF,yCAA0C,OAC1C,gFAAiF,OAGjF,gDAAiD,OACjD,6CAA8C,OAC9C,uFAAwF,OACxF,oFAAqF,OAGrF,sCAAuC,OACvC,6EAA8E,OAG9E,qCAAsC,OACtC,2CAA4C,OAC5C,uCAAwC,OACxC,kFAAmF,OACnF,8EAA+E,OAC/E,4EAA6E,OAG7E,4CAA6C,OAC7C,mFAAoF,OAGpF,kCAAmC,OACnC,uCAAwC,OACxC,sCAAuC,OACvC,2CAA4C,OAG5C,qCAAsC,OAGtC,iCAAkC,OAClC,wEAAyE,OAGzE,0DAA2D,SAG3D,kEAAmE,OAGnE,wCAAyC,OACzC,6CAA8C,OAG9C,uCAAwC,MACxC,gDAAiD,MAGjD,iDAAkD,OAClD,uFAAwF,OAGxF,iDAAkD,OAGlD,2DAA4D,OAG5D,sCAAuC,OAGvC,4DAA6D,WAC7D,0EAA2E,OAC3E,4EAA6E,OAC7E,0EAA2E,OAC3E,4EAA6E,OAC7E,2EAA4E,OAG5E,2DAA4D,OAE5D,2DAA4D,OAC5D,0DAA2D,OAG3D,YAAa,OAEb,MAAS,MAGNC,GAAW,WACd,IAAI9qO,EAAI,CACP+qO,UAAW,CACVC,KAAM,6EACNC,KAAM,uDACNC,KAAM,0DACNC,KAAM,uDACNC,KAAM,iFAEPC,KAAM,CACLL,KAAM,gFACNE,KAAM,0CAEPI,SAAU,CACTN,KAAM,2EACNE,KAAM,qCAEPnF,OAAQ,CACPiF,KAAM,4EACNE,KAAM,sCAEPK,OAAQ,CACPP,KAAM,6EACNE,KAAM,uCAEPM,QAAS,CACRR,KAAM,8EACNE,KAAM,wCAEPO,OAAQ,CACPT,KAAM,0CACNE,KAAM,uCAEPtsL,OAAQ,CACPosL,KAAM,yEACNE,KAAM,oCAKR,OAFAtpO,EAAK5B,GAAG8B,SAAQ,SAASimB,GAAK,CAAC,OAAQ,QAAQjmB,SAAQ,SAASnC,GAASK,EAAE+nB,GAAGpoB,KAAIK,EAAE+nB,GAAGpoB,GAAKK,EAAE+nB,GAAGijN,YACjGppO,EAAK5B,GAAG8B,SAAQ,SAASimB,GAAInmB,EAAK5B,EAAE+nB,IAAIjmB,SAAQ,SAASnC,GAAKkrO,GAAQ7qO,EAAE+nB,GAAGpoB,IAAMooB,QAC1E/nB,EAxCO,GA2CX0rO,GAzwDJ,SAAmBlqO,GAElB,IADA,IAAIxB,EAAK,GAAK+3E,EAAIn2E,EAAKJ,GACf9K,EAAI,EAAGA,IAAMqhF,EAAEvhF,SAAUE,EACb,MAAhBsJ,EAAEwB,EAAIu2E,EAAErhF,OAAcsJ,EAAEwB,EAAIu2E,EAAErhF,KAAO,IACxCsJ,EAAEwB,EAAIu2E,EAAErhF,KAAKmC,KAAKk/E,EAAErhF,IAErB,OAAOsJ,EAmwDkC2rO,CAAUd,IAEpDluL,GAAMivL,GAAK,+DAmCX,IAAIC,GAAiBtL,GAAU,QAAS,KAAM,CAC7C,MAAS5jL,GAAMivL,GACf,YAAajvL,GAAMmvL,IACnB,YAAanvL,GAAMovL,MAGhBC,GAAiB,CACpB,CAAC,MAAO,mBACR,CAAC,MAAO,2DACR,CAAC,MAAO,4DACR,CAAC,OAAQ,4DAET,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,eACR,CAAC,MAAO,eACR,CAAC,MAAO,cAAe,CAAC,OAAQ,cAChC,CAAC,MAAO,cAAe,CAAC,OAAQ,cAChC,CAAC,MAAO,mBACR,CAAC,OAAQN,GAAQO,KAAK,KACrB1mN,KAAI,SAAS5wB,GACd,OAAO4rO,GAAU,UAAW,KAAM,CAAC,UAAY5rO,EAAE,GAAI,YAAeA,EAAE,QAqDnEu3O,GAAQ,CACXC,GAAI,qFACJC,MAAO,qFACPC,MAAO,gFACPC,IAAK,iFACLC,MAAO,uFACPC,MAAO,0FACP5vL,MAAO,mFACP6vL,IAAK,qEAIN,SAASC,GAAclhD,GACtB,IAAI5tL,EAAI4tL,EAAK/D,YAAY,KACzB,OAAO+D,EAAKxoL,MAAM,EAAEpF,EAAE,GAAK,SAAW4tL,EAAKxoL,MAAMpF,EAAE,GAAK,QAGzD,SAAS+uO,GAAWjxO,EAAMkxO,GACzB,IAAIX,EAAO,CAAC,MAAM,IAClB,IAAKvwO,EAAM,OAAOuwO,EACgB,MAA9BW,EAAgBn+L,OAAO,KAC1Bm+L,EAAkB,IAAIA,GAEvB,IAAInoN,EAAO,GAaX,OAXC/oB,EAAKsd,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GAEpB,GAAa,kBAATC,EAAE,GAAwB,CAC7B,IAAIi4O,EAAM,GAAIA,EAAIC,KAAOl4O,EAAEk4O,KAAMD,EAAIE,OAASn4O,EAAEm4O,OAAQF,EAAIG,GAAKp4O,EAAEo4O,GAAIH,EAAII,WAAar4O,EAAEq4O,WAC1F,IAAIC,EAAiC,aAAjBt4O,EAAEq4O,WAA4Br4O,EAAEm4O,OAASxP,GAAa3oO,EAAEm4O,OAAQH,GACpFX,EAAKiB,GAAiBL,EACtBpoN,EAAK7vB,EAAEo4O,IAAMH,MAGfZ,EAAK,OAASxnN,EACPwnN,EAGRtvL,GAAMuvL,KAAO,+DAEb,IAAIiB,GAAY5M,GAAU,gBAAiB,KAAM,CAEhD,MAAS5jL,GAAMuvL,OAIhB,SAASkB,GAAWnB,GACnB,IAAIjsO,EAAI,CAACy9N,GAAY0P,IAKrB,OAJAvrO,EAAKqqO,EAAK,QAAQnqO,SAAQ,SAASurO,GAClCrtO,EAAEA,EAAExJ,QAAW+pO,GAAU,eAAgB,KAAM0L,EAAK,OAAOoB,OAEzDrtO,EAAExJ,OAAO,IAAIwJ,EAAEA,EAAExJ,QAAW,mBAAqBwJ,EAAE,GAAGA,EAAE,GAAGjP,QAAQ,KAAK,MACpEiP,EAAEc,KAAK,IAGf,IAAIwsO,GAAc,CAACpB,GAAKG,MAAOH,GAAKK,MAAOL,GAAKM,OAChD,SAASe,GAAStB,EAAMuB,EAAKvuO,EAAGrD,EAAM6xO,EAAQC,GAG7C,GAFID,IAAQA,EAAS,IACjBxB,EAAK,SAAQA,EAAK,OAAS,IAC5BuB,EAAM,EAAG,IAAIA,EAAM,EAAGvB,EAAK,OAAO,MAAQuB,KAAQA,GAMrD,GALAC,EAAOT,GAAK,MAAQQ,EACpBC,EAAOX,KAAOlxO,EACd6xO,EAAOV,OAAS9tO,EACbyuO,EAAYD,EAAOR,WAAaS,EAC3BJ,GAAYn8O,QAAQs8O,EAAOX,OAAS,IAAGW,EAAOR,WAAa,YAChEhB,EAAK,OAAOwB,EAAOT,IAAK,MAAM,IAAIx8O,MAAM,sBAAwBg9O,GAGnE,OAFAvB,EAAK,OAAOwB,EAAOT,IAAMS,EACzBxB,GAAM,IAAMwB,EAAOV,QAAQh8O,QAAQ,KAAK,MAAQ08O,EACzCD,EAkCR,SAASG,GAAeniD,EAAM3kL,EAAKysD,GAClC,MAAO,CACN,iCAAmCk4H,EAAO,OAC1C,8EAAgFl4H,GAAO,OAAS,IAAMzsD,EAAM,QAC5G,0BACC/F,KAAK,IAqBR,IAAI8sO,GAAkB,WACrB,IAAIj8N,EAAU,6VAAoWiuM,EAAK3uK,QAAU,yDACjY,OAAO,WACN,OAAOt/B,GAHa,GASlBk8N,GAAa,CAChB,CAAC,cAAe,YAChB,CAAC,mBAAoB,iBACrB,CAAC,cAAe,YAChB,CAAC,oBAAqB,cACtB,CAAC,iBAAkB,eACnB,CAAC,cAAe,aAChB,CAAC,aAAc,WACf,CAAC,aAAc,UACf,CAAC,iBAAkB,YACnB,CAAC,gBAAiB,cAClB,CAAC,cAAe,YAChB,CAAC,aAAc,WACf,CAAC,WAAY,SACb,CAAC,kBAAmB,cAAe,QACnC,CAAC,mBAAoB,eAAgB,SAGtClxL,GAAMkxL,WAAa,0EACnB3B,GAAK2B,WAAc,wFAEnB,IAAIC,GAAoB,WAEvB,IADA,IAAI3tO,EAAI,IAAIzO,MAAMm8O,GAAWr3O,QACrBE,EAAI,EAAGA,EAAIm3O,GAAWr3O,SAAUE,EAAG,CAC1C,IAAIuI,EAAI4uO,GAAWn3O,GACfwI,EAAI,MAAOD,EAAE,GAAG+D,MAAM,EAAE/D,EAAE,GAAG9N,QAAQ,MAAO,KAAM8N,EAAE,GAAG+D,MAAM/D,EAAE,GAAG9N,QAAQ,KAAK,GACnFgP,EAAEzJ,GAAK,IAAI4mB,OAAO,IAAMpe,EAAI,uBAA0BA,EAAI,KAE3D,OAAOiB,EAPgB,GAUxB,SAAS4tO,GAAiBryO,GACzB,IAAIwB,EAAI,GACRxB,EAAO2jO,GAAS3jO,GAEhB,IAAI,IAAIhF,EAAI,EAAGA,EAAIm3O,GAAWr3O,SAAUE,EAAG,CAC1C,IAAIuI,EAAI4uO,GAAWn3O,GAAImtM,EAAMnoM,EAAKsd,MAAM80N,GAAiBp3O,IAC/C,MAAPmtM,GAAeA,EAAIrtM,OAAS,IAAG0G,EAAE+B,EAAE,IAAMs/N,GAAY16B,EAAI,KAChD,SAAT5kM,EAAE,IAAiB/B,EAAE+B,EAAE,MAAK/B,EAAE+B,EAAE,IAAM88N,EAAU7+N,EAAE+B,EAAE,MAGxD,OAAO/B,EAGR,IAAI8wO,GAAsBzN,GAAU,oBAAqB,KAAM,CAE9D,WAAY5jL,GAAMkxL,WAClB,WAAYlxL,GAAMsxL,GAClB,gBAAiBtxL,GAAMuxL,QACvB,iBAAkBvxL,GAAMwxL,SACxB,YAAaxxL,GAAMovL,MAGpB,SAASqC,GAAQnvO,EAAGC,EAAGq0B,EAAGvzB,EAAG9C,GACjB,MAARA,EAAE+B,IAAmB,MAALC,GAAmB,KAANA,IAChChC,EAAE+B,GAAKC,EACPA,EAAI0/N,GAAU1/N,GACdc,EAAEA,EAAExJ,QAAW+8B,EAAIgtM,GAAUthO,EAAEC,EAAEq0B,GAAK8sM,GAASphO,EAAEC,IA0BlD,IAAImvO,GAAY,CACf,CAAC,cAAe,cAAe,UAC/B,CAAC,aAAc,aAAc,UAC7B,CAAC,UAAW,UAAW,UACvB,CAAC,cAAe,cAAe,UAC/B,CAAC,UAAW,UAAW,UACvB,CAAC,oBAAqB,oBAAqB,QAC3C,CAAC,YAAa,YAAa,QAC3B,CAAC,gBAAiB,gBAAiB,QACnC,CAAC,YAAa,YAAa,QAC3B,CAAC,eAAgB,eAAgB,OACjC,CAAC,gBAAiB,gBAAiB,QAWpC,SAASC,GAAiBC,EAAIC,EAAK55N,EAAOmwM,GACzC,IAAIplN,EAAI,GACR,GAAgB,iBAAN4uO,EAAgB5uO,EAAIsgO,GAAYsO,EAAIxpB,QACzC,IAAI,IAAIzqL,EAAI,EAAGA,EAAIi0M,EAAG/3O,SAAU8jC,EAAG36B,EAAIA,EAAEY,OAAOguO,EAAGj0M,GAAG/U,KAAI,SAASkpN,GAAM,MAAO,CAAC9uO,EAAE8uO,OACxF,IAAIrxN,EAAuB,iBAAPoxN,EAAmBvO,GAAYuO,EAAKzpB,GAAMx/L,KAAI,SAAU5wB,GAAK,OAAOA,EAAEgL,KAAQ6uO,EAC9FnrK,EAAM,EAAG33D,EAAM,EACnB,GAAG0R,EAAM5mB,OAAS,EAAG,IAAI,IAAIE,EAAI,EAAGA,IAAMiJ,EAAEnJ,OAAQE,GAAK,EAAG,CAE3D,OADAgV,GAAQ/L,EAAEjJ,EAAE,GAAGiJ,EACRA,EAAEjJ,GAAGiJ,GACX,IAAK,aACL,IAAK,qBACL,IAAK,iCACL,IAAK,gEACL,IAAK,uCACL,IAAK,4EACL,IAAK,oBACL,IAAK,sCACL,IAAK,qBACL,IAAK,kBACL,IAAK,uBACL,IAAK,YACL,IAAK,WACL,IAAK,sBACL,IAAK,aACJiV,EAAM85N,WAAahjO,EACnBkJ,EAAMoxN,WAAa5oN,EAAMpa,MAAMqgE,EAAKA,EAAM33D,GAC1C,MAED,IAAK,eACL,IAAK,oBACL,IAAK,uCACL,IAAK,oBACL,IAAK,uBACJkJ,EAAM+5N,YAAcjjO,EACpBkJ,EAAMg6N,aAAexxN,EAAMpa,MAAMqgE,EAAKA,EAAM33D,GAC5C,MAED,IAAK,SACL,IAAK,YACJkJ,EAAMi6N,YAAcnjO,EACpBkJ,EAAMk6N,WAAa1xN,EAAMpa,MAAMqgE,EAAKA,EAAM33D,GAG5C23D,GAAO33D,GAnDTixC,GAAM0xL,UAAY,4EAClBnC,GAAKmC,UAAa,0FA2ElB,IAAIU,GAAqBxO,GAAU,aAAc,KAAM,CACtD,MAAS5jL,GAAM0xL,UACf,WAAY1xL,GAAMqyL,KA2BnBryL,GAAMsyL,WAAa,0EACnB/C,GAAK+C,WAAc,wFAEnB,IAAIC,GAAY,gBA6CZC,GAAsB5O,GAAU,aAAc,KAAM,CACvD,MAAS5jL,GAAMsyL,WACf,WAAYtyL,GAAMqyL,KAGnB,SAASI,GAAiB5nH,GACzB,IAAIxnH,EAAI,CAACy9N,GAAY0R,IACrB,IAAI3nH,EAAI,OAAOxnH,EAAEc,KAAK,IACtB,IAAIw+J,EAAM,EASV,OARA19J,EAAK4lH,GAAI1lH,SAAQ,SAAkBimB,KAAOu3I,EACzCt/J,EAAEA,EAAExJ,QAAW+pO,GAAU,WAj0D3B,SAAkBjrO,GACjB,cAAcA,GACb,IAAK,SAAU,OAAOirO,GAAU,YAAa3B,GAAUtpO,IACvD,IAAK,SAAU,OAAOirO,IAAa,EAAFjrO,IAAMA,EAAE,QAAQ,QAASspO,GAAUx6L,OAAO9uC,KAC3E,IAAK,UAAW,OAAOirO,GAAU,UAAUjrO,EAAE,OAAO,SAErD,GAAGA,aAAaypB,KAAM,OAAOwhN,GAAU,cAAeC,GAAalrO,IACnE,MAAM,IAAI9E,MAAM,uBAAyB8E,GA0zDH+5O,CAAS7nH,EAAGz/F,IAAK,CACrD,MAAS,yCACT,IAAOu3I,EACP,KAAQs/D,GAAU72M,QAGjB/nB,EAAExJ,OAAO,IAAIwJ,EAAEA,EAAExJ,QAAU,gBAAiBwJ,EAAE,GAAGA,EAAE,GAAGjP,QAAQ,KAAK,MAC/DiP,EAAEc,KAAK,IAGf,IAAIwuO,GAAkB,CACrBC,MAAO,QACPC,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,SAAU,cACVC,WAAY,aACZC,UAAW,WACXC,YAAa,UAEbC,YAAa,cACbC,YAAa,UACbC,aAAc,YAIdC,SAAU,WAEVC,QAAS,UACTC,QAAS,UAOTC,WAAY,UAEZC,cAAe,gBACfC,WAAY,aACZC,SAAU,YAEPC,GAAgBlV,EAAM+T,IAE1B,SAASoB,GAAcC,EAAOr9K,EAAK7oC,GAElCkmN,EADAr9K,EAAMm9K,GAAcn9K,IAAQA,GACf7oC,EAuDd,SAASmmN,GAAejkB,GACvB,IAAIkkB,EAAgBlkB,EAAKE,WAAW,GAAIikB,EAAiBnkB,EAAKE,WAAW,GACzE,OAAO,IAAI9tM,KAA6E,KAAtE+xN,EAAe,IAAIl/O,KAAKa,IAAI,EAAE,IAAMo+O,EAAc,IAAO,cAAmB9mM,cAAch5C,QAAQ,QAAQ,IAa7H,SAASggP,GAAYpkB,EAAM/wN,EAAMo1O,GAChC,IAAIl9O,EAAQ64N,EAAKxgN,EACbkQ,EAAMswM,EAAKE,WAAW,EAAG,YAC7B,GAAGmkB,EAAK,KAAOrkB,EAAKxgN,EAAIrY,EAAS,KAAK64N,EAAKxgN,EAC3C,OAAOkQ,EAIR,SAAS40N,GAAatkB,EAAM/wN,EAAMo1O,GACjC,IAAI30N,EAAMswM,EAAKE,WAAW,EAAG,UAE7B,OADGmkB,IAAKrkB,EAAKxgN,GAAM,GAAMkQ,EAAI7lB,OAAO,EAAK,GAAM,GACxC6lB,EAMR,SAAS60N,GAAmBvkB,EAAMwkB,EAAYH,GAC7C,OAAkB,KAAfG,EAA0CF,GAAatkB,GACnDokB,GAAYpkB,EAAMwkB,EAAYH,GAGtC,SAASI,GAAezkB,EAAMhvN,EAAGqzO,GAAO,OAAOE,GAAmBvkB,EAAMhvN,GAAW,IAARqzO,EAAgB,EAAG,GAY9F,SAASK,GAA0B1kB,GAClC,OATD,SAAwCA,GAGvC,IAFA,IAAIn2N,EAASm2N,EAAKE,WAAW,GACzBzpL,EAAM,GACF1sC,EAAI,EAAGA,GAAKF,IAAUE,EAAG0sC,EAAI1sC,GAAKi2N,EAAKE,WAAW,EAAG,YAAY97N,QAAQyyN,EAAK,IACtF,OAAOpgL,EAKAkuM,CAA+B3kB,GAIvC,SAAS4kB,GAAoB5kB,GAG5B,MAAO,CAFa6kB,GAAyB7kB,EA/kC5B,IAglCC6kB,GAAyB7kB,EAlnC1B,IA+nClB,SAAS8kB,GAAuB9kB,GAE/B,OAVD,SAAqCA,GAGpC,IAFA,IAAI+kB,EAAY/kB,EAAKE,WAAW,GAC5B5/K,EAAM,GACFv2C,EAAI,EAAGA,GAAKg7O,EAAY,IAAKh7O,EAAGu2C,EAAIp0C,KAAK04O,GAAoB5kB,IACrE,OAAO1/K,EAMA0kM,CAA4BhlB,GAIpC,SAASilB,GAAiBjlB,EAAKklB,GAG9B,IAFA,IAAIpjB,EAAM9B,EAAKE,WAAW,GACtBhhF,EAAQ,GACJvxG,EAAI,EAAGA,GAAKm0L,IAAOn0L,EAAG,CAC7B,IAAIglI,EAAMqtD,EAAKE,WAAW,GACtBnhN,EAAMihN,EAAKE,WAAW,GAC1BhhF,EAAKyzB,GAAOqtD,EAAKE,WAAWnhN,EAAmB,OAAbmmO,EAAoB,UAAU,QAAS9gP,QAAQyyN,EAAK,IAAIzyN,QAAQ0yN,EAAK,KACvF,OAAbouB,GAAuBnmO,EAAM,IAAIihN,EAAKxgN,GAAK,GAG/C,OADY,EAATwgN,EAAKxgN,IAAOwgN,EAAKxgN,EAAKwgN,EAAKxgN,GAAG,GAAM,GAChC0/H,EAIR,SAASimG,GAAWnlB,GACnB,IAAIl6I,EAAOk6I,EAAKE,WAAW,GACvBklB,EAAQplB,EAAK3pN,MAAM2pN,EAAKxgN,EAAEwgN,EAAKxgN,EAAEsmE,GAGrC,OAFAk6I,EAAKxgN,GAAKsmE,GACC,EAAPA,GAAY,IAAGk6I,EAAKxgN,GAAM,GAAY,EAAPsmE,GAAa,GACzCs/J,EAcR,SAASP,GAAyB7kB,EAAM/wN,EAAM61N,GAC7C,IAA4BruL,EAAxBzlC,EAAIgvN,EAAKE,WAAW,GAAS9H,EAAO0M,GAAO,GAE/C,GADA9E,EAAKxgN,GAAK,EAhqCO,KAiqCdvQ,GACA+B,IAAM/B,IAAmC,IAA3BuuO,GAAUh5O,QAAQyK,GAAY,MAAM,IAAIpL,MAAM,iBAAmBoL,EAAO,QAAU+B,GACnG,OAnqCiB,KAmqCV/B,EAAsB+B,EAAI/B,GAChC,KAAK,EAA0E,OAA1DwnC,EAAMupL,EAAKE,WAAW,EAAG,KAAU9H,EAAK0L,MAAK9D,EAAKxgN,GAAK,GAAUi3B,EACtF,KAAK,EAA+C,OAA/BA,EAAMupL,EAAKE,WAAW,EAAG,KAC9C,KAAK,GAAkB,OAA8B,IAAvBF,EAAKE,WAAW,GAC9C,KAAK,GAA2C,OAA1BzpL,EAAMupL,EAAKE,WAAW,GAC5C,KAAK,GAAmB,OAAOkkB,GAAYpkB,EAAMhvN,EAAG,GAAG5M,QAAQyyN,EAAK,IACpE,KAAK,GAAoB,OAAOytB,GAAatkB,GAC7C,KAAK,GAAsB,OAAOikB,GAAejkB,GACjD,KAAK,GAAkB,OAAOmlB,GAAWnlB,GACzC,KAAK,GAAgB,OAxBvB,SAA6BA,GAE5B,IAAI3sN,EAAI,GAIR,OAHAA,EAAEgyO,KAAOrlB,EAAKE,WAAW,GAEzBF,EAAKxgN,GAAKnM,EAAEgyO,KAAO,GAAKhyO,EAAEgyO,KAAO,GAAK,EAC/BhyO,EAkBsBiyO,CAAoBtlB,GAChD,KAAK,GAAoB,OAAOykB,GAAezkB,EAAMhvN,GAAIonN,EAAK0L,KAAK1/N,QAAQyyN,EAAK,IAChF,KAAK,GAAkB,OAtFzB,SAAiCmJ,EAAMhvN,GAAK,IAAIA,EAAG,MAAM,IAAInN,MAAM,+CAAgD,OAAO0gP,GAAmBvkB,EAAMhvN,EAAG,GAsFtHu0O,CAAwBvlB,EAAMhvN,GAAU5M,QAAQyyN,EAAK,IACnF,KAAK,KAAiC,OAAOiuB,GAAuB9kB,GACpE,KAAK,KAAqB,OAAO0kB,GAA0B1kB,GAC3D,QAAS,MAAM,IAAIn8N,MAAM,wCAA0CoL,EAAO,IAAM+B,IAGlF,SAASw0O,GAAyBv2O,EAAM1L,GACvC,IAAI8P,EAAI2wN,GAAQ,GAAIzzN,EAAIyzN,GAAQ,GAEhC,OADA3wN,EAAEwsN,YAAY,EAAW,IAAR5wN,EAAe,GAAOA,GAChCA,GACN,KAAK,EAAgBsB,EAAEsvN,aAAa,EAAGt8N,GAAQ,MAC/C,KAAK,GAAgBgN,EAAIyzN,GAAQ,IAAMnE,YAAY,EAAGt8N,EAAO,KAAM,MACnE,KAAK,GAAkBgN,EAAEsvN,YAAY,EAAGt8N,EAAQ,EAAO,GAAO,MAC9D,KAAK,GAAuBgN,EArI9B,SAAwB2qC,GACvB,IACIlqC,GADuB,iBAARkqC,EAAoB,IAAI9oB,KAAKA,KAAKg6B,MAAMlR,IAASA,GACvD3oB,UAAY,IAAO,YAC5B/S,EAAIxO,EAAI/L,KAAKa,IAAI,EAAE,IAAK8gC,GAAK51B,EAAIwO,GAAKva,KAAKa,IAAI,EAAE,IAC3C8gC,GAAK,IACf,IAAIwF,GADJ5sB,GAAK,KACQva,KAAKa,IAAI,EAAE,IAAO,EAC5BsmC,EAAI,IAAK5sB,GAAQva,KAAKa,IAAI,EAAE,IAAK8gC,GAAKwF,GACzC,IAAI/4B,EAAI2wN,GAAQ,GAA8C,OAA1C3wN,EAAEwsN,YAAY,EAAGrgN,GAAInM,EAAEwsN,YAAY,EAAGj5L,GAAWvzB,EA8HpCoyO,CAAeliP,GAAQ,MACvD,KAAK,GACL,KAAK,GAIJ,KAHHgN,EAAIyzN,GAAQ,EAAI,GAAKzgO,EAAMsG,OAAS,IAAMtG,EAAMsG,OAAS,EAAI,EAAI,KAC5Dg2N,YAAY,EAAGt8N,EAAMsG,OAAS,GAChC0G,EAAEsvN,YAAY,EAAGt8N,EAAO,QAClBgN,EAAEiP,GAAKjP,EAAE1G,QAAQ0G,EAAEsvN,YAAY,EAAG,GACxC,MACD,QAAS,MAAM,IAAIh8N,MAAM,wCAA0CoL,EAAO,IAAM1L,GAEjF,OAAOozN,EAAQ,CAACtjN,EAAG9C,IAIpB,SAASm1O,GAAkB1lB,EAAM2lB,GAChC,IAAIC,EAAa5lB,EAAKxgN,EAClBsmE,EAAOk6I,EAAKE,WAAW,GACvB2lB,EAAW7lB,EAAKE,WAAW,GAC3B8jB,EAAQ,GAAIj6O,EAAI,EAChBm7O,EAAW,EACXpxJ,GAAc,EAAGgyJ,EAAW,GAChC,IAAI/7O,EAAI,EAAGA,GAAK87O,IAAY97O,EAAG,CAC9B,IAAIg8O,EAAS/lB,EAAKE,WAAW,GACzB8lB,EAAShmB,EAAKE,WAAW,GAC7B8jB,EAAMj6O,GAAK,CAACg8O,EAAQC,EAASJ,GAE9B5B,EAAM99M,MAAK,SAASl+B,EAAEC,GAAK,OAAOD,EAAE,GAAKC,EAAE,MAC3C,IAAIg+O,EAAQ,GACZ,IAAIl8O,EAAI,EAAGA,GAAK87O,IAAY97O,EAAG,CAC9B,GAAGi2N,EAAKxgN,IAAMwkO,EAAMj6O,GAAG,GAAI,CAC1B,IAAIk/M,GAAO,EACX,GAAGl/M,EAAE,GAAK47O,EAAO,OAAOA,EAAM3B,EAAMj6O,EAAE,GAAG,IAAIiH,GAC5C,KAAK,EAAmBgvN,EAAKxgN,EAAE,IAAMwkO,EAAMj6O,GAAG,KAAMi2N,EAAKxgN,GAAG,EAAGypM,GAAO,GAAS,MAC/E,KAAK,GACL,KAAK,KAAoC+W,EAAKxgN,GAAKwkO,EAAMj6O,GAAG,KAAMi2N,EAAKxgN,EAAEwkO,EAAMj6O,GAAG,GAAIk/M,GAAO,GAG9F,KADK08B,GAAU,GAAH57O,IAASi2N,EAAKxgN,GAAKwkO,EAAMj6O,GAAG,KAAMk/M,GAAK,EAAO+W,EAAKxgN,EAAIwkO,EAAMj6O,GAAG,IACzEk/M,EAAM,MAAM,IAAIplN,MAAM,gCAAkCmgP,EAAMj6O,GAAG,GAAK,OAASi2N,EAAKxgN,EAAI,KAAOzV,GAEnG,GAAG47O,EAAO,CACT,IAAIO,EAASP,EAAM3B,EAAMj6O,GAAG,IAG5B,GAFAk8O,EAAMC,EAAOj1O,GAAK4zO,GAAyB7kB,EAAMkmB,EAAOl1O,EAAG,CAAC8yN,KAAI,IAChD,YAAboiB,EAAO31O,IAAiB01O,EAAMC,EAAOj1O,GAAKwmC,OAAOwuM,EAAMC,EAAOj1O,IAAM,IAAM,KAAO,OAASwmC,OAAyB,MAAlBwuM,EAAMC,EAAOj1O,KAAcoF,OAAO,IACvH,YAAZ6vO,EAAOj1O,EAAiB,OAAOg1O,EAAMC,EAAOj1O,IAC9C,KAAK,EAAGg1O,EAAMC,EAAOj1O,GAAK,KAE1B,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAAO,KAAM,IAClB,KAAK,MAAO,KAAM,IACjB2jN,EAAOswB,EAAYe,EAAMC,EAAOj1O,KAAK,EAAK,OAAS,MACpD,QAAS,MAAM,IAAIpN,MAAM,yBAA2BoiP,EAAMC,EAAOj1O,UAGlE,GAAmB,IAAhB+yO,EAAMj6O,GAAG,IAGX,GAFAm7O,EAAWe,EAAMf,SAAYL,GAAyB7kB,EA1wCxC,GA2wCdpL,EAAOswB,IACY,IAAhBpxJ,EAAmB,CACrB,IAAIqyJ,EAASnmB,EAAKxgN,EAClBwgN,EAAKxgN,EAAIwkO,EAAMlwJ,GAAY,GAC3BgyJ,EAAUb,GAAiBjlB,EAAKklB,GAChCllB,EAAKxgN,EAAI2mO,QAEJ,GAAmB,IAAhBnC,EAAMj6O,GAAG,GAAU,CAC5B,GAAgB,IAAbm7O,EAAgB,CAAEpxJ,EAAa/pF,EAAGi2N,EAAKxgN,EAAIwkO,EAAMj6O,EAAE,GAAG,GAAI,SAC7D+7O,EAAUb,GAAiBjlB,EAAKklB,OAC1B,CACN,IACIpnN,EADA7tB,EAAO61O,EAAQ9B,EAAMj6O,GAAG,IAG5B,OAAOi2N,EAAKA,EAAKxgN,IAChB,KAAK,GAAkBwgN,EAAKxgN,GAAK,EAAGse,EAAMqnN,GAAWnlB,GAAO,MAC5D,KAAK,GACL,KAAK,GAAoBA,EAAKxgN,GAAK,EAAGse,EAAM2mN,GAAezkB,EAAMA,EAAKA,EAAKxgN,EAAE,IAAIpb,QAAQ,WAAW,IAAK,MACzG,KAAK,EAAgB47N,EAAKxgN,GAAK,EAAGse,EAAMkiM,EAAKE,WAAW,EAAG,KAAM,MACjE,KAAK,GAAiBF,EAAKxgN,GAAK,EAAGse,EAAMkiM,EAAKE,WAAW,GAAI,MAC7D,KAAK,EAAgBF,EAAKxgN,GAAK,EAAGse,EAAMkiM,EAAKE,WAAW,EAAG,KAAM,MACjE,KAAK,GAAkBF,EAAKxgN,GAAK,EAAGse,EAAMsoN,GAAUpmB,EAAM,GAAI,MAC9D,KAAK,GAAsBA,EAAKxgN,GAAK,EAAGse,EAAMsxM,EAAU6U,GAAejkB,IAAQ,MAC/E,QAAS,MAAM,IAAIn8N,MAAM,mBAAqBm8N,EAAKA,EAAKxgN,IAEzDymO,EAAMh2O,GAAQ6tB,GAKjB,OADAkiM,EAAKxgN,EAAIomO,EAAa9/J,EACfmgK,EAER,IAAII,GAAY,CAAE,WAAY,YAAa,gBAAiB,cAAe,mBAAoB,SAAUzyO,OArflF,CACtB,aAAe,aACf,cAAe,eACf,cAAe,eAmfhB,SAAS0yO,GAAoBxoN,GAC5B,cAAcA,GACb,IAAK,UAAW,OAAO,GACvB,IAAK,SAAU,OAAa,EAAJA,IAAQA,EAAO,EAAO,EAC9C,IAAK,SAAU,OAAO,GACtB,IAAK,SAAU,GAAGA,aAAe1L,KAAM,OAAO,GAE/C,OAAQ,EAET,SAASm0N,GAAkB36L,EAAS46L,EAAIb,GACvC,IAAIc,EAAMziB,GAAQ,GAAI0iB,EAAO,GAAIhxO,EAAO,GACpCyqN,EAAK,EAAGp2N,EAAI,EAEZ08H,EAAKu9F,GAAQ,GAAI2iB,EAAM3iB,GAAQ,GAOnC,GANAv9F,EAAGo5F,YAAY,EAAG,GAClBp5F,EAAGo5F,YAAY,EAAG,MAClB8mB,EAAI9mB,YAAY,EAAG,GACnBnqN,EAAKxJ,KAAKu6H,GAAKigH,EAAKx6O,KAAKy6O,GACzBxmB,GAAM,EAAI15F,EAAG58H,QAET28O,EAAI,EACPG,EAAM3iB,GAAQ,IACVnE,YAAY,EAAG,GACnB6mB,EAAKhtN,QAAQitN,GAEb,IAAI/vB,EAAO,CAACoN,GAAQ,IAEpB,IADApN,EAAK,GAAGiJ,YAAY,EAAGj0K,EAAQ/hD,QAC3BE,EAAI,EAAGA,EAAI6hD,EAAQ/hD,SAAUE,EAAG,CACnC,IAAIxG,EAAQqoD,EAAQ7hD,GAAG,GAKvB,KAJA08H,EAAKu9F,GAAQ,EAAQ,GAAKzgO,EAAMsG,OAAS,IAAMtG,EAAMsG,OAAS,EAAI,EAAI,KACnEg2N,YAAY,EAAG91N,EAAE,GACpB08H,EAAGo5F,YAAY,EAAGt8N,EAAMsG,OAAS,GACjC48H,EAAGo5F,YAAY,EAAGt8N,EAAO,QACnBkjI,EAAGjnH,GAAKinH,EAAG58H,QAAQ48H,EAAGo5F,YAAY,EAAG,GAC3CjJ,EAAK1qN,KAAKu6H,GAEXA,EAAKkwF,EAAQC,GACblhN,EAAKgkB,QAAQ+sG,GACb05F,GAAM,EAAI15F,EAAG58H,OAGd,IAAIE,EAAI,EAAGA,EAAI6hD,EAAQ/hD,SAAUE,EAChC,KAAGy8O,GAAOA,EAAG56L,EAAQ7hD,GAAG,QACrBs8O,GAAU7hP,QAAQonD,EAAQ7hD,GAAG,KAAO,IACnB,MAAjB6hD,EAAQ7hD,GAAG,GAAd,CAEA,IAAI+zB,EAAM8tB,EAAQ7hD,GAAG,GAAI2sE,EAAM,EAC/B,GAAG8vK,EAAI,CAEN,IAAII,EAASjB,EADbjvK,GAAO8vK,EAAG56L,EAAQ7hD,GAAG,KAErB,GAAc,WAAX68O,EAAMr2O,GAAgC,iBAAPutB,EAAiB,CACtD,IAAI5f,EAAM4f,EAAInO,MAAM,KAChBmO,IAAS5f,EAAI,IAAK,MAASA,EAAI,IAAK,GAErCuoH,EAAK++G,GAAyBoB,EAAM51O,EAAG8sB,OACjC,CACN,IAAI4tD,EAAI46J,GAAoBxoN,IACnB,GAAN4tD,IAAWA,EAAI,GAAM5tD,EAAM2Z,OAAO3Z,IACrC2oG,EAAK++G,GAAyB95J,EAAG5tD,GAElCpoB,EAAKxJ,KAAKu6H,IAEVkgH,EAAM3iB,GAAQ,IACVnE,YAAY,EAAI2mB,EAAW9vK,EAAN,EAAE3sE,GAC3B28O,EAAKx6O,KAAKy6O,GAEVxmB,GAAM,EAAI15F,EAAG58H,OAGd,IAAIuiC,EAAI,GAAK12B,EAAK7L,OAAS,GAC3B,IAAIE,EAAI,EAAGA,EAAI2L,EAAK7L,SAAUE,EAAK28O,EAAK38O,GAAG81N,YAAY,EAAGzzL,GAAIA,GAAK12B,EAAK3L,GAAGF,OAG3E,OAFA48O,EAAI5mB,YAAY,EAAGM,GACnBsmB,EAAI5mB,YAAY,EAAGnqN,EAAK7L,QACjB8sN,EAAQ,CAAC8vB,GAAK7yO,OAAO8yO,GAAM9yO,OAAO8B,IAI1C,SAASmxO,GAAwBhoD,EAAM8mD,EAAOxiB,GAC7C,IAAInD,EAAOnhC,EAAKrrH,QAChB,IAAIwsJ,EAAM,MAAQ,GAClBC,GAAUD,EAAM,GAEhB,IAAI8mB,EAASC,EAAQC,EAAQC,EAASC,EAAU,EAChDlnB,EAAKoB,IAAI,OAAQ,gBAEFpB,EAAKE,WAAW,GAC/B,IAAIinB,EAAmBnnB,EAAKE,WAAW,GACnCkE,EAAQpE,EAAKE,WAAW,IAC5B,GAAGkE,IAAU7E,EAAIjZ,MAAMggB,OAAO5B,cAAgBN,IAAUjB,EAAO,MAAM,IAAIt/N,MAAM,yBAA2BugO,GAE1G,GAAe,KADf0iB,EAAU9mB,EAAKE,WAAW,KACM,IAAZ4mB,EAAe,MAAM,IAAIjjP,MAAM,uBAAyBijP,GAG5E,GAFAC,EAAS/mB,EAAKE,WAAW,IAAK+mB,EAAUjnB,EAAKE,WAAW,GAEzC,IAAZ4mB,GAAiBG,IAAYjnB,EAAKxgN,EAAG,MAAM,IAAI3b,MAAM,oBAAsBojP,EAAU,QAAUjnB,EAAKxgN,GACnF,IAAZsnO,IAAiBE,EAAShnB,EAAKE,WAAW,IAAKgnB,EAAUlnB,EAAKE,WAAW,IACjF,IAUIknB,EAVAC,EAAQ3B,GAAkB1lB,EAAM2lB,GAEhC2B,EAAQ,CAAEH,iBAAkBA,GAChC,IAAI,IAAIl/O,KAAKo/O,EAAOC,EAAKr/O,GAAKo/O,EAAMp/O,GAIpC,GAFAq/O,EAAKC,MAAQR,EAEE,IAAZD,EAAe,OAAOQ,EAEzB,GADGJ,EAAUlnB,EAAKxgN,GAAK,IAAGwgN,EAAKxgN,GAAK,GACjCwgN,EAAKxgN,IAAM0nO,EAAS,MAAM,IAAIrjP,MAAM,sBAAwBm8N,EAAKxgN,EAAI,QAAU0nO,GAElF,IAAME,EAAQ1B,GAAkB1lB,EAAM,MAAS,MAAMjuN,KACrD,IAAI9J,KAAKm/O,EAAOE,EAAKr/O,GAAKm/O,EAAMn/O,GAEhC,OADAq/O,EAAKC,MAAQ,CAACR,EAAQC,GACfM,EAER,SAASE,GAAwB57L,EAASu3K,EAAOqjB,EAAIb,EAAO8B,EAAUC,GACrE,IAAIjB,EAAMziB,GAAQyjB,EAAW,GAAK,IAC9B7wB,EAAO,CAAC6vB,GACZA,EAAI5mB,YAAY,EAAG,OACnB4mB,EAAI5mB,YAAY,EAAG,GACnB4mB,EAAI5mB,YAAY,EAAG,WACnB4mB,EAAI5mB,YAAY,GAAIN,EAAIjZ,MAAMggB,OAAO5B,aAAc,OACnD+hB,EAAI5mB,YAAY,EAAI4nB,EAAW,EAAI,GACnChB,EAAI5mB,YAAY,GAAIsD,EAAO,OAC3BsjB,EAAI5mB,YAAY,EAAI4nB,EAAW,GAAK,IACpC,IAAIE,EAAMpB,GAAkB36L,EAAS46L,EAAIb,GAGzC,GAFA/uB,EAAK1qN,KAAKy7O,GAEPF,EAAU,CACZ,IAAIG,EAAMrB,GAAkBkB,EAAU,KAAM,MAC5ChB,EAAI5mB,YAAY,GAAI6nB,EAAQ,OAC5BjB,EAAI5mB,YAAY,EAAG,GAAK8nB,EAAI99O,QAC5B+sN,EAAK1qN,KAAK07O,GAEX,OAAOjxB,EAAQC,GAGhB,SAASixB,GAAW7nB,EAAMn2N,GAAmC,OAAzBm2N,EAAKE,WAAWr2N,GAAgB,KAUpE,SAASu8O,GAAUpmB,EAAMn2N,GAAU,OAAmC,IAA5Bm2N,EAAKE,WAAWr2N,GAC1D,SAASi+O,GAAU90O,EAAGK,GAAkD,OAAzCA,IAAGA,EAAE2wN,GAAQ,IAAI3wN,EAAEwsN,YAAY,KAAM7sN,GAAWK,EAE/E,SAAS00O,GAAY/nB,GAAQ,OAAOA,EAAKE,WAAW,EAAG,KACvD,SAAS8nB,GAAYh1O,EAAGK,GAA+C,OAAtCA,IAAGA,EAAE2wN,GAAQ,IAAI3wN,EAAEwsN,YAAY,EAAG7sN,GAAWK,EAC9E,SAAS40O,GAAajoB,EAAMn2N,GAAU,OAZtC,SAAkBm2N,EAAMn2N,EAAQwjM,GAE/B,IADA,IAAInvL,EAAM,GAAIhP,EAAS8wN,EAAKxgN,EAAI3V,EAC1Bm2N,EAAKxgN,EAAItQ,GAAQgP,EAAIhS,KAAKmhM,EAAG2yB,EAAM9wN,EAAS8wN,EAAKxgN,IACvD,GAAGtQ,IAAW8wN,EAAKxgN,EAAG,MAAM,IAAI3b,MAAM,eACtC,OAAOqa,EAQqCgqO,CAASloB,EAAKn2N,EAAOk+O,IAiBlE,SAASI,GAA2BnoB,EAAMn2N,EAAQuuN,GACjD,IAAIgwB,EAAMpoB,EAAKE,WAAW9H,GAAQA,EAAKuf,MAAQ,GAAK,EAAI,GACpDnJ,EAAW,YACX3zG,EAAKq4F,GACNkF,GAAQA,EAAKuf,MAAQ,IAAGzkB,EAAmB,MAC1CkF,GAAqB,GAAbA,EAAKuf,MAGM,IAAbvf,EAAKuf,OACdnJ,EAAW,QAHKxO,EAAKE,WAAW,KAChBsO,EAAW,aAIzBpW,EAAKuf,MAAQ,GAAKvf,EAAKuf,MAAQ,IAAGnJ,EAAW,SAChD,IAAIn7N,EAAI+0O,EAAMpoB,EAAKE,WAAWkoB,EAAK5Z,GAAY,GAE/C,OADAtb,EAAmBr4F,EACZxnH,EAIR,SAASg1O,GAAkCroB,GAC1C,IAAInlG,EAAKq4F,EACTA,EAAmB,KACnB,IAGco1B,EAHVF,EAAMpoB,EAAKE,WAAW,GAAIljM,EAAQgjM,EAAKE,WAAW,GACrBqoB,EAAiB,EAARvrN,EAAawrN,EAAkB,EAARxrN,EAC7DhzB,EAAQ,GAAa,EAARgzB,GACbyrN,EAAO,EACPnX,EAAI,GACLkX,IAASC,EAAOzoB,EAAKE,WAAW,IAChCqoB,IAAQD,EAAWtoB,EAAKE,WAAW,IACtC,IAAIsO,EAAoB,GAATxkO,EAAa,YAAc,YACtCkK,EAAc,IAARk0O,EAAY,GAAKpoB,EAAKE,WAAWkoB,EAAK5Z,GAMhD,OALGga,IAASxoB,EAAKxgN,GAAK,EAAIipO,GACvBF,IAAQvoB,EAAKxgN,GAAK8oO,GACrBhX,EAAEtgO,EAAIkD,EACFs0O,IAAWlX,EAAExN,IAAM,MAAQwN,EAAEtgO,EAAI,OAAQsgO,EAAE99N,EAAI89N,EAAEtgO,GACrDkiN,EAAmBr4F,EACZy2G,EAIR,SAASoX,GAA2B1oB,EAAMooB,EAAKhwB,GAE9C,GAAGA,EAAM,CACR,GAAGA,EAAKuf,MAAQ,GAAKvf,EAAKuf,MAAQ,EAAG,OAAO3X,EAAKE,WAAWkoB,EAAK,SACjE,GAAGhwB,EAAKuf,MAAQ,GAAI,OAAO3X,EAAKE,WAAWkoB,EAAK,aAKjD,OAFe,IADCpoB,EAAKE,WAAW,GACHF,EAAKE,WAAWkoB,EAAK,aAClCpoB,EAAKE,WAAWkoB,EAAK,aAKtC,SAASO,GAAsB3oB,EAAMn2N,EAAQuuN,GAC5C,IAAIgwB,EAAMpoB,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,GACvD,OAAW,IAARyQ,GAAapoB,EAAKxgN,IAAY,IAC1BkpO,GAA2B1oB,EAAMooB,EAAKhwB,GAG9C,SAASwwB,GAAuB5oB,EAAMn2N,EAAQuuN,GAC7C,GAAGA,EAAKuf,KAAO,EAAG,OAAOgR,GAAsB3oB,EAAMn2N,EAAQuuN,GAC7D,IAAIgwB,EAAMpoB,EAAKE,WAAW,GAC1B,OAAW,IAARkoB,GAAapoB,EAAKxgN,IAAY,IAC1BwgN,EAAKE,WAAWkoB,EAAMhwB,EAAKuf,MAAQ,IAAM3X,EAAK4V,KAAS,QAAU,aAGzE,SAASiT,GAAsBn5N,EAAK0oM,EAAM/kN,GAKzC,OAJIA,IAAGA,EAAI2wN,GAAQ,EAAI,EAAIt0M,EAAI7lB,SAC/BwJ,EAAEwsN,YAAY,EAAGnwM,EAAI7lB,QACrBwJ,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,GAAInwM,EAAK,WAChBrc,EA0CR,SAASy1O,GAAuB9oB,EAAMn2N,GACrC,IAAIs5N,EAAQnD,EAAKE,WAAW,IAC5B,OAD2C,GACpCiD,GACN,IAAK,mCAAoC,OAhC3C,SAA0BnD,GACzB,IAAIjhN,EAAMihN,EAAKE,WAAW,GAAI/4N,EAAQ64N,EAAKxgN,EACvCgrF,GAAQ,EACTzrF,EAAM,KAERihN,EAAKxgN,GAAKT,EAAM,GACW,qCAAxBihN,EAAKE,WAAW,MAA4C11H,GAAQ,GACvEw1H,EAAKxgN,EAAIrY,GAEV,IAAIunB,EAAMsxM,EAAKE,YAAY11H,EAAMzrF,EAAI,GAAGA,IAAM,EAAG,WAAW3a,QAAQyyN,EAAK,IAEzE,OADGrsH,IAAOw1H,EAAKxgN,GAAK,IACbkP,EAqB0Cq6N,CAAiB/oB,GACjE,IAAK,mCAAoC,OAlB3C,SAA2BA,GAC1BA,EAAKxgN,GAAK,EACV,IAAIwpO,EAAWhpB,EAAKE,WAAW,EAAG,cAElC,GADAF,EAAKxgN,GAAK,EACe,OAAtBwgN,EAAKE,WAAW,GAAc,MAAM,IAAIr8N,MAAM,mBAEjD,GAAU,IADDm8N,EAAKE,WAAW,GACZ,OAAO8oB,EAAS5kP,QAAQ,MAAM,KAC3C,IAAIghP,EAAQplB,EAAKE,WAAW,GAC5B,GAAyB,GAAtBF,EAAKE,WAAW,GAAS,MAAM,IAAIr8N,MAAM,mBAE5C,OADkBm8N,EAAKE,WAAWklB,GAAO,EAAG,WAAWhhP,QAAQyyN,EAAK,IASnBoyB,CAAkBjpB,GAClE,QAAS,MAAM,IAAIn8N,MAAM,uBAAyBs/N,IAKpD,SAAS+lB,GAAsBlpB,GAC9B,IAAIjhN,EAAMihN,EAAKE,WAAW,GAE1B,OADQnhN,EAAM,EAAIihN,EAAKE,WAAWnhN,EAAK,WAAW3a,QAAQyyN,EAAM,IAAM,GA6BvE,SAASsyB,GAAgBC,GACxB,IAAI9oM,EAAM0jL,GAAQ,KAAMj6N,EAAI,EACxBq2O,EAASgJ,EAAGhJ,OACZr1J,EAAIq1J,EAAO57O,QAAQ,MAAQ,EAAI,GAAO,GAC1C,OAAO47O,EAAOt+L,OAAO,IAAM,IAAK,IAAKipC,EAAE,GAAM,MAAO,IAAK,IAAKA,IAAG,EACjEzqC,EAAIu/K,YAAY,EAAE,GAAIv/K,EAAIu/K,YAAY,EAAG90I,GACzC,IAAIh8E,EAAO,CAAC,EAAE,QAAQ,QAAQ,QAAQ,IAAK,IAAIhF,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAAG9wN,EAAKhF,IACpG,GAAQ,IAALghF,EAAW,CAGb,IAFAq1J,EAASA,EAAO/pO,MAAM,GACtBiqC,EAAIu/K,YAAY,EAAGugB,EAAOv2O,OAAS,GAC/BE,EAAI,EAAGA,EAAIq2O,EAAOv2O,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAAGugB,EAAOzxE,WAAW5kK,IACxEu2C,EAAIu/K,YAAY,EAAG,QACb,GAAO,EAAJ90I,EAAU,CAEnB,IADAh8E,EAAO,kDAAkD4gB,MAAM,KAC3D5lB,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAAGp5L,SAAS13B,EAAKhF,GAAI,KAEtE,IADAu2C,EAAIu/K,YAAY,EAAG,GAAGugB,EAAOv2O,OAAS,IAClCE,EAAI,EAAGA,EAAIq2O,EAAOv2O,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAAGugB,EAAOzxE,WAAW5kK,IACxEu2C,EAAIu/K,YAAY,EAAG,OACb,CAEN,IADA9wN,EAAO,kDAAkD4gB,MAAM,KAC3D5lB,EAAI,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAAGp5L,SAAS13B,EAAKhF,GAAI,KAEtE,IADA,IAAIwH,EAAI,EACuB,OAAzB6uO,EAAO/pO,MAAQ,EAAF9E,EAAM,EAAFA,EAAI,IAAoC,QAAzB6uO,EAAO/pO,MAAQ,EAAF9E,EAAM,EAAFA,EAAI,MAAcA,EAGzE,IAFA+uC,EAAIu/K,YAAY,EAAGtuN,GACnB+uC,EAAIu/K,YAAY,EAAGugB,EAAOv2O,OAAS,GAC/BE,EAAI,EAAGA,EAAIq2O,EAAOv2O,SAAUE,EAAGu2C,EAAIu/K,YAAY,EAA0B,IAAvBugB,EAAOzxE,WAAW5kK,IAIxE,IAHAu2C,EAAIu/K,YAAY,EAAG,GACnBv/K,EAAIu/K,YAAY,EAAG,OACnBv/K,EAAIu/K,YAAY,EAAG,OACf91N,EAAI,EAAGA,EAAI,IAAKA,EAAGu2C,EAAIu/K,YAAY,EAAG,GAE3C,OAAOv/K,EAAIjqC,MAAM,EAAGiqC,EAAI9gC,GAIzB,SAAS6pO,GAAerpB,GAA4G,MAAO,CAAnGA,EAAKE,WAAW,GAAQF,EAAKE,WAAW,GAAQF,EAAKE,WAAW,GAAQF,EAAKE,WAAW,IAGhI,SAASopB,GAActpB,EAAMn2N,GAAU,IAAI7B,EAAIqhP,GAAerpB,GAAyB,OAAVh4N,EAAE,GAAK,EAAUA,EAI9F,SAASuhP,GAAcvpB,GAItB,MAAQ,CAACxsN,EAHAwsN,EAAKE,WAAW,GAGV5gN,EAFL0gN,EAAKE,WAAW,GAEJspB,KADXxpB,EAAKE,WAAW,IAG5B,SAASupB,GAAcj+J,EAAGX,EAAG2+J,EAAMn2O,GAKlC,OAJIA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,EAAGr0I,GACjBn4E,EAAEwsN,YAAY,EAAGh1I,GACjBx3E,EAAEwsN,YAAY,EAAG2pB,GAAM,GAChBn2O,EAgBR,SAASq2O,GAAU1pB,EAAMn2N,EAAQuuN,GAChC,IAAIhsL,EAAIgsL,EAAKuf,KAAO,EAAI,EAAI,EAE5B,MAAO,CADQ3X,EAAKE,WAAW9zL,GAAgB4zL,EAAKE,WAAW9zL,EAAE,KAAiB4zL,EAAKE,WAAW9zL,EAAE,MAKrG,SAASu9M,GAAY3pB,GAGpB,MAAO,CAFIA,EAAKE,WAAW,GAClBmc,GAAerc,IAiBzB,SAAS4pB,GAAY5pB,GACpB,IAAI6pB,EAAU7pB,EAAKE,WAAW,GAC1B4pB,EAAS9pB,EAAKE,WAAW,GAG7B,MAAO,CAACv3N,EAAE,CAAC2W,EAFI0gN,EAAKE,WAAW,GAER1sN,EAAEq2O,GAAU93O,EAAE,CAACuN,EADxB0gN,EAAKE,WAAW,GACkB1sN,EAAEs2O,IAEnD,SAASC,GAAYv2O,EAAGH,GAMvB,OALIA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,EAAGrsN,EAAE7K,EAAE6K,GACrBH,EAAEwsN,YAAY,EAAGrsN,EAAEzB,EAAEyB,GACrBH,EAAEwsN,YAAY,EAAGrsN,EAAE7K,EAAE2W,GACrBjM,EAAEwsN,YAAY,EAAGrsN,EAAEzB,EAAEuN,GACdjM,EAIR,SAAS22O,GAAWhqB,GACnB,IAAI6pB,EAAU7pB,EAAKE,WAAW,GAC1B4pB,EAAS9pB,EAAKE,WAAW,GAG7B,MAAO,CAACv3N,EAAE,CAAC2W,EAFI0gN,EAAKE,WAAW,GAER1sN,EAAEq2O,GAAU93O,EAAE,CAACuN,EADxB0gN,EAAKE,WAAW,GACkB1sN,EAAEs2O,IAInD,IAAIG,GAAYD,GAGhB,SAASE,GAAYlqB,GACpBA,EAAKxgN,GAAK,EACV,IAAI2qO,EAAKnqB,EAAKE,WAAW,GACrBjkK,EAAK+jK,EAAKE,WAAW,GACrBljM,EAAQgjM,EAAKE,WAAW,GAE5B,OADAF,EAAKxgN,GAAG,GACD,CAACy8C,EAAIkuL,EAAIntN,GAsBjB,SAASotN,GAAapqB,GAAQA,EAAKxgN,GAAK,EAAGwgN,EAAKxgN,GAAKwgN,EAAKE,WAAW,GACrE,IAAImqB,GAAQ,CACZ92B,EAAM62B,GACN,EAAMA,GACN,EAAMA,GACN,EAAMA,GACN,EAdA,SAAoBpqB,GAInB,OAFAA,EAAKxgN,GAAK,EACVwgN,EAAKsqB,GAAKtqB,EAAKE,WAAW,GAFhB,IAcX,EAAMkqB,GACN,EAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GA9BA,SAAqBpqB,GACpB,IAAI1/K,EAAM,GAKV,OAJA0/K,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,GACV8gC,EAAIiqM,YAAcvqB,EAAKE,WAAW,GAClCF,EAAKxgN,GAAK,EACH8gC,GAyBR,GAAM8pM,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMF,IAmBN,SAASM,GAAUxqB,EAAMn2N,GACxB,IAAIwJ,EAAI,CAACo3O,QAAQ,EAAGxtB,GAAG,GAGvB,OAFA5pN,EAAEo3O,QAAUzqB,EAAKE,WAAW,IAAIr2N,GAAU,IAC7B,IAAKwJ,EAAE4pN,GAAK+C,EAAKE,WAAW,GAAIF,EAAKxgN,GAAK,GAChDnM,EAAEo3O,SACR,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,IACL,KAAK,IACL,KAAK,EAAQ,KAAK,EACjB,MACD,QAAS,GAAG5gP,EAAS,EAAG,MAAM,IAAIhG,MAAM,uBAAyBwP,EAAEo3O,SAIpE,OADAzqB,EAAKE,WAAWr2N,GACTwJ,EAER,SAASq3O,GAAUC,EAAI35O,EAAGqC,GACzB,IAAIuzB,EAAI,KAAQwF,EAAI,GACpB,OAAO/4B,EAAEu3O,UACR,IAAK,QAAS,MACd,IAAK,QAAShkN,EAAI,KAAQwF,EAAI,EAAG,MACjC,IAAK,QAASxF,EAAI,EAAQwF,EAAI,EAAG,MACjC,IAAK,QAASxF,EAAI,EAAQwF,EAAI,EAAG,MACjC,IAAK,QAASxF,EAAI,EAAQwF,EAAI,EAAG,MACjC,IAAK,MAAO,MACZ,QAAS,MAAM,IAAIvoC,MAAM,4BAE1B,IAAIy8C,EAAM0jL,GAAQ53L,GAWlB,OAVAkU,EAAIu/K,YAAY,EAAGj5L,GACnB0Z,EAAIu/K,YAAY,EAAG7uN,GAChBo7B,EAAI,GAAGkU,EAAIu/K,YAAY,EAAG,OAC1BzzL,EAAI,GAAGkU,EAAIu/K,YAAY,EAAG,MAC1BzzL,EAAI,IACNkU,EAAIu/K,YAAY,EAAG,OACnBv/K,EAAIu/K,YAAY,EAAG,GACnBv/K,EAAIu/K,YAAY,EAAG,MACnBv/K,EAAIu/K,YAAY,EAAG,IAEbv/K,EAqDR,SAASuqM,GAAkB97O,EAAMqpN,GAChC,IAAIhsL,GAAMgsL,GAAQA,EAAKuf,MAAQ,EAAI,EAAI,EACnCtkO,EAAI2wN,GAAQ,EAAI53L,EAAIr9B,EAAKkB,KAAKpG,QAClCwJ,EAAEwsN,YAAY,EAAG9wN,EAAK27B,KACtBr3B,EAAEwsN,YAAY,EAAG9wN,EAAKw7H,IAAM,GAC5Bl3H,EAAEwsN,YAAY,EAAG9wN,EAAKkuN,IACtB5pN,EAAEwsN,YAAY,EAAG9wN,EAAKkB,KAAKpG,QACxBuuN,EAAKuf,MAAQ,GAAGtkO,EAAEwsN,YAAY,EAAG,GACpCxsN,EAAEwsN,YAAYzzL,EAAIr9B,EAAKkB,KAAKpG,OAAQkF,EAAKkB,KAAMmoN,EAAKuf,KAAO,EAAI,OAAS,WACxE,IAAIr3L,EAAMjtC,EAAEgD,MAAM,EAAGhD,EAAEmM,GACV,OAAb8gC,EAAI9gC,EAAInM,EAAEmM,EAAU8gC,EA8DrB,SAASwqM,GAAuB9qB,EAAMn2N,EAAQuuN,GAC7C,IAAI9lN,EAAI,EACH8lN,GAAqB,GAAbA,EAAKuf,OACjBrlO,EAAI0tN,EAAKE,WAAW,IAErB,IAAI6qB,EAAQ/qB,EAAKE,WAAW,GAK5B,OAJI9H,GAAqB,GAAbA,EAAKuf,OAChBrlO,EAAI,GAAKy4O,GAAS,IAAKA,GAAS,OAG1B,CADE,CAACC,SAAW,EAAF14O,EAAI24O,QAAU,EAAF34O,IAAM,EAAE44O,OAAS,EAAF54O,IAAM,EAAE64O,OAAS,EAAF74O,IAAM,GACvDy4O,GA2Gb,SAASK,GAAarhP,EAAGuI,EAAG8lN,EAAM/kN,GACjC,IAAIg4O,EAAMjzB,GAAsB,GAAbA,EAAKuf,KACpBtkO,IAAGA,EAAI2wN,GAAQqnB,EAAM,EAAI/4O,EAAEzI,OAAW,EAAI,EAAIyI,EAAEzI,SACpDwJ,EAAEwsN,YAAY,EAAG91N,GACjBsJ,EAAEwsN,YAAawrB,EAAK,EAAI,EAAI/4O,EAAEzI,QAC1BwhP,GAAIh4O,EAAEwsN,YAAY,EAAG,GACzBxsN,EAAEwsN,aAAawrB,EAAK,EAAI,GAAK/4O,EAAEzI,OAAQyI,EAAI+4O,EAAK,OAAS,WACzD,IAAI/qM,EAAOjtC,EAAExJ,OAASwJ,EAAEmM,EAAKnM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAE/C,OADY,MAATitC,EAAI9gC,IAAW8gC,EAAI9gC,EAAI8gC,EAAIz2C,QACvBy2C,EAER,IAAIgrM,GAAoB1C,GAGxB,SAAS2C,GAAiBvrB,EAAMn2N,EAAQuuN,GACvC,IAAI9wN,EAAM04N,EAAKxgN,EAAI3V,EACfuiC,EAAiB,GAAbgsL,EAAKuf,MAAcvf,EAAKuf,KAAW,EAAJ,EACnCnkO,EAAIwsN,EAAKE,WAAW9zL,GAAIo/C,EAAIw0I,EAAKE,WAAW9zL,GAC5C9sB,EAAI0gN,EAAKE,WAAW,GAAIr1I,EAAIm1I,EAAKE,WAAW,GAEhD,OADAF,EAAKxgN,EAAIlY,EACF,CAACqB,EAAG,CAAC6K,EAAEA,EAAG8L,EAAEA,GAAIvN,EAAG,CAACyB,EAAEg4E,EAAGlsE,EAAEurE,IAgGnC,SAAS2gK,GAASz8O,EAAM08O,EAAOrzB,EAAM/kN,GACpC,IAAIg4O,EAAMjzB,GAAsB,GAAbA,EAAKuf,KAcxB,OAbItkO,IAAGA,EAAI2wN,GAAQqnB,EAAK,GAAK,KAC7Bh4O,EAAEwsN,YAAY,EAAG,GACd9wN,EAAK45C,OACPt1C,EAAEwsN,YAAY,EAAI9wN,EAAKkqO,UAAU,GACjC5lO,EAAEwsN,YAAY,EAAG,SAEjBxsN,EAAEwsN,YAAY,EAAI9wN,EAAKkqO,UAAU,GACjC5lO,EAAEwsN,YAAY,EAAI4rB,GAAO,IAE1Bp4O,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACbwrB,GAAIh4O,EAAEwsN,YAAY,EAAG,GACzBxsN,EAAEwsN,YAAY,EAAG,GACVxsN,EAqBR,SAASq4O,GAAc1rB,EAAMn2N,EAAQuuN,GACpC,IAAIof,EAAO+R,GAAcvpB,GACT,GAAb5H,EAAKuf,QAAa3X,EAAKxgN,EAC1B,IAAIse,EAzxBL,SAAmBkiM,GAClB,IAAIhtN,EAAIgtN,EAAKE,WAAW,GACxB,OAAa,IADmBF,EAAKE,WAAW,GAC5BltN,EAAU,IAANA,EAuxBd24O,CAAU3rB,GAGpB,OAFAwX,EAAK15M,IAAMA,EACX05M,EAAKxmO,GAAa,IAAR8sB,IAAwB,IAARA,EAAiB,IAAM,IAC1C05M,EAER,SAASoU,GAAcpgK,EAAGX,EAAG73E,EAAGo0I,EAAIgxE,EAAMpnN,GACzC,IAAIqC,EAAI2wN,GAAQ,GAGhB,OAFAylB,GAAcj+J,EAAGX,EAAGu8D,EAAI/zI,GA5xBzB,SAAmBL,EAAGhC,EAAGqC,GACpBA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,GAAI7sN,GAClBK,EAAEwsN,YAAY,EAAU,KAAL7uN,EAAY,EAAI,GA0xBnC66O,CAAU74O,EAAGhC,EAAGqC,GACTA,EAiBR,IAAIy4O,GA5kBJ,SAAkC9rB,EAAMn2N,EAAQuuN,GAAQ,OAAkB,IAAXvuN,EAAe,GAAK++O,GAAuB5oB,EAAMn2N,EAAQuuN,IA8lBxH,SAAS2zB,GAAiB/rB,EAAMn2N,EAAQuuN,GACvC,IACI/lN,EADA2qB,EAAQgjM,EAAKE,WAAW,GAExB7sN,EAAK,CACR24O,SAAkB,EAARhvN,EACVivN,YAAcjvN,IAAU,EAAK,EAC7BkvN,UAAYlvN,IAAU,EAAK,EAC3BmvN,KAAOnvN,IAAU,EAAK,EACtBovN,SAAWpvN,IAAU,EAAK,EAC1BstN,GAAKttN,IAAU,EAAK,KACpBqvN,MAAOrvN,IAAU,GAAK,GAMvB,OAJkB,QAAfo7L,EAAKk0B,QAAkBj6O,EAzlB3B,SAAwB2tN,EAAMn2N,EAAQuuN,GACrC4H,EAAKxgN,GAAK,EAAG3V,GAAU,EACvB,IAAI2V,EAAIwgN,EAAKxgN,EAAI3V,EACb0iP,EAAUpE,GAA2BnoB,EAAMn2N,EAAQuuN,GACnD/qB,EAAK2yB,EAAKE,WAAW,GAEzB,GAAG7yB,KADH7tL,GAAKwgN,EAAKxgN,GACG,MAAM,IAAI3b,MAAM,iCAAmC2b,EAAI,OAAS6tL,GAE7E,OADA2yB,EAAKxgN,GAAK6tL,EACHk/C,EAilB0BC,CAAexsB,EAAMn2N,EAAO,EAAGuuN,IAEhE/kN,EAAEhB,KAAOA,GAAQ2tN,EAAKE,WAAWr2N,EAAO,GACrB,kBAATwI,IAAmBgB,EAAEo5O,KAAOp6O,GAC/BgB,EAIR,IAAIq5O,GAAgB,CACnB,yBACA,kBACA,mBACA,gBACA,iBACA,iBACA,mBACA,qBACA,iBACA,kBACA,sBACA,wBACA,oBACA,yBAED,SAASC,GAAU3sB,EAAMn2N,EAAQuuN,GAChC,IAAIlpN,EAAS8wN,EAAKxgN,EAAI3V,EAClBmzB,EAAQgjM,EAAKE,WAAW,GACxB0sB,EAAQ5sB,EAAKE,WAAW,GACxBkoB,EAAMpoB,EAAKE,WAAW,GACtB2sB,EAAM7sB,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,GACnDmV,EAAO,IACP10B,GAAQA,EAAKuf,MAAQ,KACR,GAAbvf,EAAKuf,OAAW3X,EAAKxgN,GAAK,GAC7BstO,EAAO9sB,EAAKE,WAAW,GACP,GAAb9H,EAAKuf,OAAW3X,EAAKxgN,GAAK,GAC7BwgN,EAAKxgN,GAAK,GAEX,IAAIvP,EAAOy4O,GAA2B1oB,EAAMooB,EAAKhwB,GACtC,GAARp7L,IAAc/sB,EAAOy8O,GAAcz8O,EAAK0+J,WAAW,KACtD,IAAIo+E,EAAS79O,EAAS8wN,EAAKxgN,EAE3B,OAFiC44M,GAAqB,GAAbA,EAAKuf,QAAaoV,EAEpD,CACNH,MAAOA,EACPH,KAAMx8O,EACN68O,KAAMA,EACNE,KALU99O,GAAU8wN,EAAKxgN,GAAa,IAARqtO,EAAY,GAwgK5C,SAAiC7sB,EAAMn2N,EAAQuuN,EAAMy0B,GACpD,IAEII,EAFA/9O,EAAS8wN,EAAKxgN,EAAI3V,EAClBmjP,EAAOE,GAAWltB,EAAM6sB,EAAKz0B,GAE9BlpN,IAAW8wN,EAAKxgN,IAAGytO,EAAOE,GAAentB,EAAM9wN,EAAS8wN,EAAKxgN,EAAGwtO,EAAM50B,IACzE,MAAO,CAAC40B,EAAMC,GA7gKkCG,CAAwBptB,EAAM+sB,EAAQ30B,EAAMy0B,IAU7F,SAASQ,GAAkBrtB,EAAMn2N,EAAQuuN,GACxC,GAAGA,EAAKuf,KAAO,EAAG,OAOnB,SAAgC3X,EAAMn2N,EAAQuuN,GACtB,GAApB4H,EAAKA,EAAKxgN,EAAI,IAAYwgN,EAAKA,EAAKxgN,KACvC,IAAInM,EAAI80O,GAA2BnoB,EAAMn2N,EAAQuuN,GACjD,OAA0B,GAAnB/kN,EAAEs7J,WAAW,GAAat7J,EAAEgD,MAAM,GAAKhD,EAVrBi6O,CAAuBttB,EAAMn2N,EAAQuuN,GAE9D,IADA,IAAI/kN,EAAI,GAAInE,EAAS8wN,EAAKxgN,EAAI3V,EAAQkV,EAAMihN,EAAKE,WAAW9H,EAAKuf,KAAO,EAAI,EAAI,GAChE,IAAV54N,KAAa1L,EAAEnH,KAAKw9O,GAAU1pB,EAAM5H,EAAKuf,KAAmBvf,IAElE,GAAG4H,EAAKxgN,GAAKtQ,EAAQ,MAAM,IAAIrL,MAAM,oBAAsBm8N,EAAKxgN,EAAI,OAAStQ,GAC7E,OAAOmE,EA4BR,SAASk6O,GAAYvtB,EAAMn2N,EAAQuuN,GAClC,IAAIlvM,EAAM+gO,GAAUjqB,EAAM,GAE1B,OAAO5H,EAAKuf,MACX,KAAK,EAAG3X,EAAKxgN,IAAM3V,GAAU,EAAG,MAChC,KAAK,EAAG,KAAK,EAAGm2N,EAAKxgN,GAAK,EAAG3V,GAAU,EAAG,MAC1C,QAASm2N,EAAKxgN,GAAK,EAAG3V,GAAU,GAEjC,MAAO,CAACqf,EAAKskO,GAAyBxtB,EAAMn2N,EAAQuuN,IAiDrD,IAAIq1B,GAAgB,GAoFpB,SAASC,GAAYtE,GACpB,IAAI99J,EAAI04I,GAAQ,IACZ96M,EAAMuvN,GAAY2Q,EAAG,IACzB99J,EAAEu0I,YAAY,EAAG32M,EAAI1V,GAAI83E,EAAEu0I,YAAY,EAAG32M,EAAI1V,GAC9C83E,EAAEu0I,YAAY,EAAG32M,EAAI5J,GAAIgsE,EAAEu0I,YAAY,EAAG32M,EAAI5J,GAE9C,IADA,IAAI6jN,EAAQ,kDAAkDxzM,MAAM,KAC5D5lB,EAAI,EAAGA,EAAI,KAAMA,EAAGuhF,EAAEu0I,YAAY,EAAGp5L,SAAS08L,EAAMp5N,GAAI,KAChE,OAAO4sN,EAAQ,CAACrrI,EAAG69J,GAAgBC,EAAG,MAYvC,SAASuE,GAAmBvE,GAC3B,IAAIwE,EAAKxE,EAAG,GAAG7hK,QACX+D,EAAI04I,GAAQ,GAAK,GAAK4pB,EAAG/jP,OAAS,IACtCyhF,EAAEu0I,YAAY,EAAG,MACjB,IAAI32M,EAAMuvN,GAAY2Q,EAAG,IACzB99J,EAAEu0I,YAAY,EAAG32M,EAAI1V,GAAI83E,EAAEu0I,YAAY,EAAG32M,EAAI1V,GAC9C83E,EAAEu0I,YAAY,EAAG32M,EAAI5J,GAAIgsE,EAAEu0I,YAAY,EAAG32M,EAAI5J,GAC9C,IAAI,IAAIvV,EAAI,EAAGA,EAAI6jP,EAAG/jP,SAAUE,EAAGuhF,EAAEu0I,YAAY,EAAG+tB,EAAGj/E,WAAW5kK,IAElE,OADAuhF,EAAEu0I,YAAY,EAAG,GACVv0I,EA4CR,SAASuiK,GAAc7tB,EAAMn2N,EAAQuuN,GACpC,IAAIA,EAAK01B,WAAY,OAAOtX,GAAUxW,EAAMn2N,GAC5C,IAAIuiC,EAAIgsL,GAAQA,EAAKuf,MAAQ,GAAK,EAAI,EAClCoW,EAAW/tB,EAAKE,WAAW9zL,GAC3B4hN,EAAUhuB,EAAKE,WAAW9zL,GAC1B6hN,EAAQjuB,EAAKE,WAAW9zL,GACxBo9M,EAAOxpB,EAAKE,WAAW9zL,GACvBpP,EAAQgjM,EAAKE,WAAW,GACpB,GAAL9zL,IAAQ4zL,EAAKxgN,GAAK,GACrB,IAAInM,EAAK,CAAC1K,EAAEolP,EAAUh8O,EAAEi8O,EAAS5hN,EAAE6hN,EAAOzE,KAAKA,EAAMxsN,MAAMA,GAE3D,OADGo7L,EAAKuf,MAAQ,IAAMvf,EAAKuf,QAAMtkO,EAAEqlH,MAAS17F,GAAS,EAAK,GACnD3pB,EAtKRo6O,GAAc,GAAQ,SAASztB,EAAMn2N,GACpC,IAAIu2N,EAAMJ,EAAKxgN,EAAI3V,EACnBm2N,EAAKxgN,GAAK,GACV,IAAI8qO,EAAKtqB,EAAKE,WAAW,GACzBF,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,EACV,IAAI0uO,EAAUluB,EAAKE,WAAW,GAG9B,OAFAF,EAAKxgN,GAAK0uO,EACVluB,EAAKxgN,EAAI4gN,EACF,CAAExG,IAAI0wB,IAwLd,IAAI6D,GAAc5E,GACd6E,GAAYnG,GACZoG,GAAe1F,GAgFf2F,GAAO,WACX,IAAIC,EAAmB,CAEvB,EAAQ,IAAe,EAAQ,IAC/B,EAAO,KAAgB,EAAM,IAC7B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAO,KAC9B,IAAO,KAAgB,IAAM,MAC7B,IAAM,MAAiB,IAAM,MAC7B,IAAO,KAAgB,IAAO,KAC9B,IAAO,KAAgB,IAAO,KAG9Bh7B,EAAM,MAAiB,EAAQ,IAC/B,EAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAQ,IAAe,GAAQ,IAC/B,GAAO,KAAgB,GAAO,KAC9B,GAAO,KAEP,IAAM,OAEFi7B,EAAkB5f,EAAM,CAC5B,EAAQ,IAAe,EAAQ,IAC/B,EAAO,KAAgB,EAAM,IAC7B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAQ,IAC/B,IAAQ,IAAe,IAAO,KAC9B,IAAO,KAAgB,IAAM,MAC7B,IAAM,MAAiB,IAAM,MAC7B,IAAO,KAAgB,IAAO,KAC9B,IAAO,KAAgB,IAAO,KAC9Brb,EAAM,QAiJN,SAASk7B,EAAax4B,EAAKmC,GAC1B,IAAI/kN,EAAI+kN,GAAQ,GAEhB,OADI/kN,EAAE6qN,SAAQ7qN,EAAE6qN,OAAS,YAClBkc,GAjJR,SAAoBnkB,EAAKmC,GACxB,IAAI93K,EAAM,GAENz6C,EAAKwwN,EAAY,GACrB,OAAO+B,EAAKnpN,MACX,IAAK,SAAUpJ,EAAI0wN,EAAIjB,EAAOD,OAAOY,IAAO,MAC5C,IAAK,SAAUpwN,EAAI0wN,EAAIN,GAAM,MAC7B,IAAK,SACL,IAAK,QAASpwN,EAAIowN,EAEnBgK,GAAUp6N,EAAG,GAEb,IAAI6oP,EAAK7oP,EAAEq6N,WAAW,GAClB92M,GAAO,EACPulO,GAAM,EAAOC,GAAK,EACtB,OAAOF,GACN,KAAK,EAAM,KAAK,EAAM,MACtB,KAAK,GAAMC,GAAM,EAAMvlO,GAAO,EAAM,MACpC,KAAK,GAAMulO,GAAM,EAAM,MACvB,KAAK,IACL,KAAK,IAAMvlO,GAAO,EAAM,MACxB,KAAK,IAAMA,GAAO,EAAMwlO,GAAK,EAAM,MACnC,KAAK,IAAMxlO,GAAO,EAAM,MACxB,QAAS,MAAM,IAAIvlB,MAAM,4BAA8B6qP,EAAGhrP,SAAS,KAEpE,IAA+BmrP,EAAO,EAAGC,EAAO,EACvC,GAANJ,IAAYG,EAAOhpP,EAAEq6N,WAAW,IACmDr6N,EAAE2Z,GAAK,EACpF,GAANkvO,IAAYG,EAAOhpP,EAAEq6N,WAAW,IAC1B,GAANwuB,IAAYI,EAAOjpP,EAAEq6N,WAAW,IACnC,IAAI6uB,EAAOlpP,EAAEq6N,WAAW,GAEL8uB,EAAa,KACvB,GAANN,IACH7oP,EAAE2Z,GAAG,GACO3Z,EAAEq6N,WAAW,GAIX,IAAXr6N,EAAEA,EAAE2Z,KAAUwvO,EAAaT,EAAiB1oP,EAAEA,EAAE2Z,KACnD3Z,EAAE2Z,GAAG,EAEL3Z,EAAE2Z,GAAG,GAEFovO,IAAI/oP,EAAE2Z,GAAK,IAGd,IAFD,IAAIs5F,EAAS,GAAI34D,EAAS,GACrB8uM,EAAOH,EAAO,IAAMH,EAAM,IAAM,GAAItiN,EAAKuiN,EAAK,GAAK,GAC3C,GAANF,EAAa7oP,EAAE2Z,EAAI3Z,EAAEgE,QAAoB,IAAVhE,EAAEA,EAAE2Z,GAAY3Z,EAAE2Z,EAAIyvO,GAW1D,QAVA9uM,EAAS,IACHlwC,KAAOmjN,QAAQ9M,MAAM+O,OAAO25B,EAAYnpP,EAAEwQ,MAAMxQ,EAAE2Z,EAAG3Z,EAAE2Z,EAAE6sB,IAAKjoC,QAAQ,mBAAmB,IAC/FyB,EAAE2Z,GAAK6sB,EACP8T,EAAMlxC,KAAOwoC,OAAOu9K,aAAanvN,EAAEq6N,WAAW,IACrC,GAANwuB,GAAeE,IAAIzuM,EAAMzK,OAAS7vC,EAAEq6N,WAAW,IAClD//K,EAAMphC,IAAMlZ,EAAEq6N,WAAW,GAChB,GAANwuB,IAAYvuM,EAAMzK,OAAS7vC,EAAEq6N,WAAW,IAC3C//K,EAAMu6K,IAAM70N,EAAEq6N,WAAW,GACtB//K,EAAMlwC,KAAKpG,QAAQivG,EAAO5sG,KAAKi0C,GACzB,GAANuuM,IAAY7oP,EAAE2Z,GAAKovO,EAAK,GAAK,IACzBzuM,EAAMlxC,MACZ,IAAK,IACC0/O,GAAoB,GAAbxuM,EAAMphC,MAAaq5M,EAAKob,KAAK70M,QAAQi1C,IAAI,YAAczzB,EAAMlwC,KAAO,IAAMkwC,EAAMlxC,MAC5F,MACD,IAAK,IACL,IAAK,IACDmpN,EAAKob,KAAK70M,QAAQi1C,IAAI,YAAczzB,EAAMlwC,KAAO,IAAMkwC,EAAMlxC,MAChE,MACD,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACJ,MACD,QAAS,MAAM,IAAIpL,MAAM,uBAAyBs8C,EAAMlxC,MAK1D,GAFc,KAAXpJ,EAAEA,EAAE2Z,GAAa3Z,EAAE2Z,EAAIsvO,EAAK,EACjB,GAANJ,IAAY7oP,EAAE2Z,EAAI,KACjB,GAANkvO,EAAY,CACd,GAAuB,KAApB7oP,EAAEq6N,WAAW,GAAa,MAAM,IAAIr8N,MAAM,4BAA8BgC,EAAE2Z,EAAI,IAAM3Z,EAAEA,EAAE2Z,IAC3F3Z,EAAE2Z,EAAIsvO,EAGP,IAAItjK,EAAI,EAAGX,EAAI,EAEf,IADAvqC,EAAI,GAAK,GACLuqC,EAAI,EAAGA,GAAKiuB,EAAOjvG,SAAUghF,EAAGvqC,EAAI,GAAGuqC,GAAKiuB,EAAOjuB,GAAG56E,KAC1D,KAAM4+O,KAAS,GACd,GAAc,KAAXhpP,EAAEA,EAAE2Z,GAGP,MAFE3Z,EAAE2Z,EACJ8gC,IAAMkrC,GAAK,GAAIX,EAAI,EACfA,EAAI,EAAGA,GAAKiuB,EAAOjvG,SAAUghF,EAAG,CACnC,IAAI1+C,EAAKtmC,EAAEwQ,MAAMxQ,EAAE2Z,EAAG3Z,EAAE2Z,EAAEs5F,EAAOjuB,GAAG9rE,KAAMlZ,EAAE2Z,GAAGs5F,EAAOjuB,GAAG9rE,IACzDkhN,GAAU9zL,EAAI,GACd,IAAIxjC,EAAIyqN,QAAQ9M,MAAM+O,OAAO25B,EAAY7iN,GACzC,OAAO2sE,EAAOjuB,GAAG57E,MAChB,IAAK,IACJqxC,EAAIkrC,GAAGX,GAAKuoI,QAAQ9M,MAAM+O,OAAO25B,EAAY7iN,GAC7CmU,EAAIkrC,GAAGX,GAAKvqC,EAAIkrC,GAAGX,GAAG/5D,OACtB,MACD,IAAK,IACY,IAAbnoB,EAAEkB,OAAcy2C,EAAIkrC,GAAGX,GAAK,IAAIz4D,MAAMzpB,EAAE0N,MAAM,EAAE,IAAK1N,EAAE0N,MAAM,EAAE,GAAG,GAAI1N,EAAE0N,MAAM,EAAE,IAC9EiqC,EAAIkrC,GAAGX,GAAKliF,EACjB,MACD,IAAK,IAAK23C,EAAIkrC,GAAGX,GAAKr0D,WAAW7tB,EAAEmoB,QAAS,MAC5C,IAAK,IAAK,IAAK,IAAKwvB,EAAIkrC,GAAGX,GAAK+jK,EAA8B,WAAzBziN,EAAG+zL,YAAY,EAAG,KAAoB/zL,EAAG+zL,WAAW,EAAG,KAAM,MAClG,IAAK,IAAK,OAAOv3N,EAAEinB,eAClB,IAAK,IAAK,IAAK,IAAK0wB,EAAIkrC,GAAGX,IAAK,EAAM,MACtC,IAAK,IAAK,IAAK,IAAKvqC,EAAIkrC,GAAGX,IAAK,EAAO,MACvC,IAAK,IAAK,IAAK,IAAKvqC,EAAIkrC,GAAGX,IAAK,EAAO,MACvC,QAAS,MAAM,IAAIhnF,MAAM,uBAAyB8E,EAAI,KACpD,MACH,IAAK,IACJ,IAAIygB,EAAM,MAAM,IAAIvlB,MAAM,gCAAkC6qP,EAAGhrP,SAAS,KACxE48C,EAAIkrC,GAAGX,GAAK,YAAc+jK,EAAKnoN,SAAS99B,EAAEmoB,OAAQ,IAAKqb,EAAG+zL,WAAW,IACrE,MACD,IAAK,IAAK5/K,EAAIkrC,GAAGX,IAAMliF,EAAEvE,QAAQ,UAAU,IAAI0sB,OAAQ,MACvD,IAAK,IAAKwvB,EAAIkrC,GAAGX,GAAK,IAAIz4D,KAAK+Z,EAAG+zL,YAAY,EAAG,KAAO,aAAiB,MACzE,IAAK,IAAK5/K,EAAIkrC,GAAGX,GAAK,IAAIz4D,KAAqC,OAA/B+Z,EAAG+zL,WAAW,GAAK,SAAwB/zL,EAAG+zL,WAAW,IAAK,MAC9F,IAAK,IAAK5/K,EAAIkrC,GAAGX,GAAK1+C,EAAG+zL,WAAW,EAAE,KAAK,IAAK,MAChD,IAAK,IAAK5/K,EAAIkrC,GAAGX,IAAM1+C,EAAG+zL,YAAY,EAAG,KAAM,MAC/C,IAAK,IAAK,GAAGyuB,GAAwB,GAAjB71I,EAAOjuB,GAAG9rE,IAAU,CAAEuhC,EAAIkrC,GAAGX,GAAK1+C,EAAG+zL,WAAW,EAAE,KAAM,MAE5E,IAAK,IAAK,IAAK,IAAK/zL,EAAG3sB,GAAKs5F,EAAOjuB,GAAG9rE,IAAK,MAC3C,IAAK,IACJ,GAAsB,eAAnB+5F,EAAOjuB,GAAG56E,KAAuB,MAErC,QAAS,MAAM,IAAIpM,MAAM,6BAA+Bi1G,EAAOjuB,GAAG57E,YAvC9CpJ,EAAE2Z,GAAGuvO,EA2C5B,GAAS,GAANL,GAAe7oP,EAAE2Z,EAAI3Z,EAAEgE,QAAsB,IAAZhE,EAAEA,EAAE2Z,KAAc,MAAM,IAAI3b,MAAM,2BAA6BgC,EAAE2Z,EAAE,GAAK,OAAS3Z,EAAEgE,OAAS,IAAMhE,EAAEA,EAAE2Z,EAAE,GAAG9b,SAAS,KAExJ,OADG00N,GAAQA,EAAK82B,YAAW5uM,EAAMA,EAAIjqC,MAAM,EAAG+hN,EAAK82B,YAC5C5uM,EAMa6uM,CAAWl5B,EAAK5iN,GAAIA,GASzC,IAAI+7O,EAAQ,CAAE,EAAK,EAAG,EAAK,IAAK,EAAK,EAAG,EAAK,EAAG,IAAK,EAAG,GAAI,GAgG3D,MAAO,CACNC,YAvGF,SAAyBp5B,EAAKmC,GAC7B,IAAM,OAAO+gB,GAAkBsV,EAAax4B,EAAKmC,GAAOA,GACxD,MAAMrmN,IAAK,GAAGqmN,GAAQA,EAAKob,IAAK,MAAMzhO,GACtC,MAAQ,CAACsnO,WAAW,GAAGC,OAAO,KAqG7BgW,SAAUb,EACVc,WAlGF,SAAsBrnN,EAAIkwL,GACzB,IAAI/kN,EAAI+kN,GAAQ,GAEhB,IADI/kN,EAAEm8O,UAAY,GAAG56B,GAAQvhN,EAAEm8O,UAClB,UAAVn8O,EAAEpE,KAAkB,MAAM,IAAIpL,MAAM,iCACvC,IAAIwzO,EAAKP,KACL2Y,EAAMC,GAAcxnN,EAAI,CAACq5L,OAAO,EAAGuC,KAAI,EAAMoW,WAAU,IACvDx0F,EAAU+pG,EAAI,GAAI1gP,EAAO0gP,EAAIp5O,MAAM,GACnCtM,EAAI,EAAG4jC,EAAI,EAAGgiN,EAAO,EAAGZ,EAAO,EACnC,IAAIhlP,EAAI,EAAGA,EAAI27I,EAAQ77I,SAAUE,EAChC,GAAQ,MAALA,EAAH,CAGA,KAFE4lP,EACuB,kBAAfjqG,EAAQ37I,KAAiB27I,EAAQ37I,GAAK27I,EAAQ37I,GAAGrG,SAAS,KAC3C,kBAAfgiJ,EAAQ37I,GAAiB,MAAM,IAAIlG,MAAM,2BAA6B6hJ,EAAQ37I,GAAK,YAAe27I,EAAQ37I,GAAM,KAC1H,GAAG27I,EAAQlhJ,QAAQkhJ,EAAQ37I,MAAQA,EAAG,IAAI4jC,EAAE,EAAGA,EAAE,OAAOA,EACvD,IAA6C,GAA1C+3G,EAAQlhJ,QAAQkhJ,EAAQ37I,GAAK,IAAM4jC,GAAU,CAAE+3G,EAAQ37I,IAAM,IAAM4jC,EAAG,OAE3E,IAAIlmC,EAAQqxO,GAAkB5wM,EAAG,SAC7B0nN,EAAW,GACf,IAAI7lP,EAAI,EAAGA,GAAKtC,EAAMsK,EAAEuN,EAAI7X,EAAMkB,EAAE2W,IAAKvV,EAAG,CAC3C,IAAI8zM,EAAM,GACV,IAAIlwK,EAAE,EAAGA,EAAI5+B,EAAKlF,SAAU8jC,EACV,MAAd5+B,EAAK4+B,GAAG5jC,IAAY8zM,EAAI3xM,KAAK6C,EAAK4+B,GAAG5jC,IAEzC,GAAiB,GAAd8zM,EAAIh0M,QAA6B,MAAd67I,EAAQ37I,GAA9B,CACA,IAAI8lP,EAAQ,GAAIC,EAAS,GACzB,IAAIniN,EAAI,EAAGA,EAAIkwK,EAAIh0M,SAAU8jC,EAAG,CAC/B,cAAckwK,EAAIlwK,IAEjB,IAAK,SAAUmiN,EAAS,IAAK,MAC7B,IAAK,SAAUA,EAAS,IAAK,MAC7B,IAAK,UAAWA,EAAS,IAAK,MAC9B,IAAK,SAAUA,EAASjyC,EAAIlwK,aAAcvb,KAAO,IAAM,IAAK,MAC5D,QAAS09N,EAAS,IAGnB,GAAY,MADZD,EAAQA,GAASA,GAASC,EAAS,IAAMA,GACxB,MAElBf,GAAQK,EAAMS,IAAU,EACxBD,EAAS7lP,GAAK8lP,OAf8BD,EAAS7lP,GAAK,IAkB3D,IAAI68B,EAAIywM,EAAGvlO,KAAK,IAKhB,IAJA80B,EAAEi5L,YAAY,EAAG,WACjBj5L,EAAEi5L,YAAY,EAAG9wN,EAAKlF,QACtB+8B,EAAEi5L,YAAY,EAAG,IAAM,GAAK8vB,GAC5B/oN,EAAEi5L,YAAY,EAAGkvB,GACbhlP,EAAE,EAAGA,EAAI,IAAKA,EAAG68B,EAAEi5L,YAAY,EAAG,GAGtC,IAFAj5L,EAAEi5L,YAAY,EAAG,IAAgB2uB,EAAgBr7B,IAAiB,IAAO,GAErEppN,EAAI,EAAG4jC,EAAI,EAAG5jC,EAAI27I,EAAQ77I,SAAUE,EACvC,GAAiB,MAAd27I,EAAQ37I,GAAX,CACA,IAAIgmP,EAAK1Y,EAAGvlO,KAAK,IACbksB,GAAM0nH,EAAQ37I,GAAGsM,OAAO,IAAM,0BAAgDA,MAAM,EAAG,IAC3F05O,EAAGlwB,YAAY,EAAG7hM,EAAI,QACtB+xN,EAAGlwB,YAAY,EAAkB,KAAf+vB,EAAS7lP,GAAY,IAAM6lP,EAAS7lP,GAAI,QAC1DgmP,EAAGlwB,YAAY,EAAGlyL,GAClBoiN,EAAGlwB,YAAY,EAAGuvB,EAAMQ,EAAS7lP,KAAO,GACxCgmP,EAAGlwB,YAAY,EAAG,GAClBkwB,EAAGlwB,YAAY,EAAG,GAClBkwB,EAAGlwB,YAAY,EAAG,GAClBkwB,EAAGlwB,YAAY,EAAG,GAClBkwB,EAAGlwB,YAAY,EAAG,GAClBkwB,EAAGlwB,YAAY,EAAG,GAClBlyL,GAAKyhN,EAAMQ,EAAS7lP,KAAO,EAG5B,IAAIimP,EAAK3Y,EAAGvlO,KAAK,KAEjB,IADAk+O,EAAGnwB,YAAY,EAAG,IACd91N,EAAE,EAAGA,EAAI,KAAKA,EAAGimP,EAAGnwB,YAAY,EAAG,GACvC,IAAI91N,EAAE,EAAGA,EAAIgF,EAAKlF,SAAUE,EAAG,CAC9B,IAAIkmP,EAAO5Y,EAAGvlO,KAAKi9O,GAEnB,IADAkB,EAAKpwB,YAAY,EAAG,GAChBlyL,EAAE,EAAGA,EAAE+3G,EAAQ77I,SAAU8jC,EAC5B,GAAiB,MAAd+3G,EAAQ/3G,GACX,OAAOiiN,EAASjiN,IACf,IAAK,IAAKsiN,EAAKpwB,YAAY,EAAiB,MAAd9wN,EAAKhF,GAAG4jC,GAAa,GAAO5+B,EAAKhF,GAAG4jC,GAAK,GAAO,IAAO,MACrF,IAAK,IAAKsiN,EAAKpwB,YAAY,EAAG9wN,EAAKhF,GAAG4jC,IAAI,EAAG,KAAM,MACnD,IAAK,IACA5+B,EAAKhF,GAAG4jC,IAEXsiN,EAAKpwB,YAAY,GAAI,OAAO9wN,EAAKhF,GAAG4jC,GAAGhb,eAAetc,OAAO,GAAI,QACjE45O,EAAKpwB,YAAY,GAAI,MAAM9wN,EAAKhF,GAAG4jC,GAAGva,WAAW,IAAI/c,OAAO,GAAI,QAChE45O,EAAKpwB,YAAY,GAAI,KAAK9wN,EAAKhF,GAAG4jC,GAAG4D,WAAWl7B,OAAO,GAAI,SAJ5C45O,EAAKpwB,YAAY,EAAG,WAAY,QAK9C,MACH,IAAK,IACJ,IAAIthN,EAAKk5B,OAAO1oC,EAAKhF,GAAG4jC,IAAI,IAE5B,IADAsiN,EAAKpwB,YAAY,EAAGthN,EAAI,QACpBoxO,EAAK,EAAGA,EAAO,IAAIpxO,EAAG1U,SAAU8lP,EAAMM,EAAKpwB,YAAY,EAAG,KAMlE,OADAwX,EAAGvlO,KAAK,GAAG+tN,YAAY,EAAG,IACnBwX,EAAG/vO,QAjTA,GA0TP4oP,GAAQ,WAEX,IAAIC,EAAgB,CACnBC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKC,GAAG,OAAKC,GAAG,IAC3CC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKC,GAAG,OAAKC,GAAG,IAC3CC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKzpF,EAAE,OAAM4nE,EAAE,SAAM7sO,EAAE,OAAMkpC,EAAE,SAC1CylN,GAAG,IAAKC,GAAG,IAAKC,GAAG,IACnB7nK,EAAE,IAAMnsE,EAAE,IAAMksE,EAAE,IAAMZ,EAAE,IAC5B2oI,EAAE,IAAQC,EAAE,IAAMC,EAAE,IACpB4pB,EAAE,IAAQkW,EAAE,IAAMC,EAAE,IACpBC,EAAE,IAAQloK,EAAE,IAAMnwD,EAAE,IAAMjrB,EAAE,IAAMpG,EAAE,IAAMyV,EAAE,IAAM7W,EAAE,IAAMV,EAAE,IAC1D,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAC3D,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,KAEvDyrP,EAAkB,IAAI/iO,OAAO,SAAa1b,EAAKk7O,GAAch8O,KAAK,KAAK/P,QAAQ,SAAU,SAASA,QAAQ,YAAY,QAAU,QAAS,MACzIuvP,EAAe,SAASnhP,EAAG6oN,GAAK,IAAIhoN,EAAI88O,EAAa90B,GAAK,MAAmB,iBAALhoN,EAAgB+hN,EAAS/hN,GAAKA,GACtGugP,EAAmB,SAASx4B,EAAIC,EAAIC,GAAM,IAAIu4B,EAAUx4B,EAAG1sD,WAAW,GAAK,IAAO,EAAM2sD,EAAG3sD,WAAW,GAAK,GAAO,OAAgB,IAATklF,EAAcz4B,EAAKhG,EAASy+B,IAYzJ,SAASC,EAAgBpkO,EAAK0oM,GAC7B,IAIczqL,EAJVm9I,EAAUp7J,EAAIC,MAAM,WAAY67D,GAAK,EAAGX,GAAK,EAAG2wI,EAAK,EAAGu4B,EAAK,EAAG71O,EAAM,GACtEi9B,EAAU,GACV64M,EAAmB,KACnBC,EAAM,GAAIC,EAAU,GAAIC,EAAU,GAAIlvH,EAAK,GAC3CmvH,EAAO,EAEX,KADIh8B,EAAKo3B,UAAY,GAAG56B,GAAQwD,EAAKo3B,UAC9Bh0B,IAAO1wC,EAAQjhL,SAAU2xN,EAAI,CACnC44B,EAAO,EACP,IAEkBt2N,EAFdu2N,EAAKvpE,EAAQ0wC,GAAI1qM,OAAO1sB,QAAQ,kCAAmCwvP,GAAkBxvP,QAAQsvP,EAAiBC,GAC9GW,EAAOD,EAAKjwP,QAAQ,MAAO,MAAUurB,MAAM,KAAKiJ,KAAI,SAAS5wB,GAAK,OAAOA,EAAE5D,QAAQ,UAAW,QAC9FwyO,EAAG0d,EAAO,GACd,GAAGD,EAAKxqP,OAAS,EAAG,OAAO+sO,GAC3B,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IAAK,MACV,IAAK,IACsB,KAAvB0d,EAAO,GAAGxyM,OAAO,IACnB3G,EAAQjvC,KAAKmoP,EAAKh+O,MAAM,GAAGjS,QAAQ,MAAO,MAC3C,MACD,IAAK,IACL,IAAImwP,GAAW,EAAOC,GAAW,EACjC,IAAIT,EAAG,EAAGA,EAAGO,EAAOzqP,SAAUkqP,EAAI,OAAOO,EAAOP,GAAIjyM,OAAO,IAC1D,IAAK,IAAK+oC,EAAIpkD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,EAAGm+O,GAAW,EAAM,MAChE,IAAK,IAEJ,IADAhpK,EAAI/kD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,EAAOm+O,IAAU3pK,EAAI,GACnDl9C,EAAIzvB,EAAIrU,OAAQ8jC,GAAK69C,IAAK79C,EAAGzvB,EAAIyvB,GAAK,GAC1C,MACD,IAAK,IAEiB,OADrB7P,EAAMw2N,EAAOP,GAAI19O,MAAM,IAChByrC,OAAO,GAAYhkB,EAAMA,EAAIznB,MAAM,EAAEynB,EAAIj0B,OAAS,GACzC,SAARi0B,EAAgBA,GAAM,EACd,UAARA,EAAiBA,GAAM,EACtBx6B,MAAMksO,GAAS1xM,IAGbx6B,MAAMosO,GAAU5xM,GAAKyT,aAC/BzT,EAAMsxM,EAAUtxM,KAHhBA,EAAM0xM,GAAS1xM,GACS,OAArBk2N,GAA6Bj9B,EAAI6G,QAAQo2B,KAAmBl2N,EAAMixM,EAAQjxM,KAIxD,qBAAZs1L,SAAyC,iBAAPt1L,GAAuC,WAAlBs6L,GAAM,IAAInpN,OAAsBmpN,GAAM,IAAIo3B,WAAU1xN,EAAMs1L,QAAQ9M,MAAM+O,OAAO+C,EAAKo3B,SAAU1xN,IAC/Jy2N,GAAW,EACX,MACD,IAAK,IACJ,IAAIE,EAAUC,GAASJ,EAAOP,GAAI19O,MAAM,GAAI,CAAC7C,EAAEg4E,EAAElsE,EAAEurE,IACnD3sE,EAAIstE,GAAGX,GAAK,CAAC3sE,EAAIstE,GAAGX,GAAI4pK,GACxB,MACD,QAAS,GAAGr8B,GAAQA,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,mBAAqBwwP,GAEjEE,IAAYr2O,EAAIstE,GAAGX,GAAK/sD,EAAKk2N,EAAmB,MACnD,MACA,IAAK,IACL,IAAIW,EAAS,EACb,IAAIZ,EAAG,EAAGA,EAAGO,EAAOzqP,SAAUkqP,EAAI,OAAOO,EAAOP,GAAIjyM,OAAO,IAC1D,IAAK,IAAK+oC,EAAIpkD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,IAAKs+O,EAAQ,MACzD,IAAK,IAEJ,IADAnpK,EAAI/kD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,EAC9Bs3B,EAAIzvB,EAAIrU,OAAQ8jC,GAAK69C,IAAK79C,EAAGzvB,EAAIyvB,GAAK,GAC1C,MACD,IAAK,IAAKymN,EAAO3tN,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAM,GAAI,MACrD,IAAK,IACL,IAAK,IAAK,MACV,IAAK,IACJ29O,EAAmB74M,EAAQ1U,SAAS6tN,EAAOP,GAAI19O,MAAM,KACrD,MACD,IAAK,IACL,IAAK,IACL,IAAK,IAAK,MACV,IAAK,IAEJ,IADA4uH,EAAKqvH,EAAOP,GAAI19O,MAAM,GAAGsZ,MAAM,KAC3Bge,EAAIlH,SAASw+F,EAAG,GAAI,IAAKt3F,GAAKlH,SAASw+F,EAAG,GAAI,MAAOt3F,EACxDymN,EAAO3tN,SAASw+F,EAAG,GAAI,IACvBkvH,EAAQxmN,EAAE,GAAc,IAATymN,EAAa,CAAC16L,QAAO,GAAO,CAACk7L,IAAIR,GAAOS,GAAYV,EAAQxmN,EAAE,IAC5E,MACH,IAAK,IAEAwmN,EADJtpK,EAAIpkD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,KAClB89O,EAAQtpK,GAAK,IAC7B,MACD,IAAK,IAEAqpK,EADJ1oK,EAAI/kD,SAAS6tN,EAAOP,GAAI19O,MAAM,IAAI,KAClB69O,EAAQ1oK,GAAK,IAC1B4oK,EAAO,GAAKF,EAAQ1oK,GAAGspK,IAAMV,EAAMF,EAAQ1oK,GAAGupK,IAAMC,GAAMZ,IAC5C,IAATA,IAAYF,EAAQ1oK,GAAG9xB,QAAS,GACxC,MACD,QAAS,GAAG0+J,GAAQA,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,mBAAqBwwP,GAEjEM,EAAS,IAAGX,EAAmB,MAAM,MACxC,QAAS,GAAG57B,GAAQA,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,mBAAqBwwP,IAMpE,OAHGH,EAAQrqP,OAAS,IAAGoqP,EAAI,SAAWC,GACnCC,EAAQtqP,OAAS,IAAGoqP,EAAI,SAAWE,GACnC/7B,GAAQA,EAAK82B,YAAWhxO,EAAMA,EAAI7H,MAAM,EAAG+hN,EAAK82B,YAC5C,CAAChxO,EAAK+1O,GAGd,SAASgB,EAAcpvP,EAAGuyN,GACzB,IAAI88B,EA1GL,SAAqBrvP,EAAGuyN,GACvB,OAAOA,EAAKnpN,MACX,IAAK,SAAU,OAAO6kP,EAAgBx+B,EAAOD,OAAOxvN,GAAIuyN,GACxD,IAAK,SAAU,OAAO07B,EAAgBjuP,EAAGuyN,GACzC,IAAK,SAAU,OAAO07B,EAAgBjuP,EAAEnC,SAAS,UAAW00N,GAC5D,IAAK,QAAS,OAAO07B,EAAgBxkB,GAAOzpO,GAAIuyN,GAEjD,MAAM,IAAIv0N,MAAM,qBAAuBu0N,EAAKnpN,MAmG/BkmP,CAAYtvP,EAAGuyN,GACxBq3B,EAAMyF,EAAO,GAAIhtN,EAAKgtN,EAAO,GAC7B7hP,EAAI+mO,GAAaqV,EAAKr3B,GAE1B,OADAnjN,EAAKizB,GAAI/yB,SAAQ,SAASimB,GAAK/nB,EAAE+nB,GAAK8M,EAAG9M,MAClC/nB,EAKR,SAAS+hP,EAAmB5d,EAAMtvM,EAAIsjD,EAAGX,GACxC,IAAIx3E,EAAI,OAASm4E,EAAE,GAAK,MAAQX,EAAE,GAAK,KACvC,OAAO2sJ,EAAKxmO,GACX,IAAK,IACJqC,GAAMmkO,EAAKxkO,GAAG,EACXwkO,EAAKllO,IAAMklO,EAAKzsJ,IAAG13E,GAAK,KAAOgiP,GAAS7d,EAAKllO,EAAG,CAACkB,EAAEg4E,EAAGlsE,EAAEurE,KAAK,MACjE,IAAK,IAAKx3E,GAAKmkO,EAAKxkO,EAAI,OAAS,QAAS,MAC1C,IAAK,IAAKK,GAAKmkO,EAAKprM,GAAKorM,EAAKxkO,EAAG,MACjC,IAAK,IAAKK,GAAK,KAAOmkO,EAAKprM,GAAKorM,EAAKxkO,GAAK,IAAK,MAC/C,IAAK,IAAKK,GAAK,IAAMmkO,EAAKxkO,EAAE5O,QAAQ,KAAK,IAAM,IAEhD,OAAOiP,EAiDR,OAjLA88O,EAAa,KAAO,IAiLb,CACNd,YA/DD,SAA0BxpP,EAAGuyN,GAAQ,OAAO+gB,GAAkB8b,EAAcpvP,EAAGuyN,GAAOA,IAgErFk3B,SAAU2F,EACV1F,WA1BD,SAAuBrnN,EAAIkwL,GAC1B,IACuCof,EAzBZl3L,EAwBvBg1M,EAAW,CAAC,eAAgBjiP,EAAI,GAChCG,EAAIslO,GAAkB5wM,EAAG,SACzBuxM,EAAQ10O,MAAMD,QAAQojC,GACtBqtN,EAAK,OAETD,EAASppP,KAAK,cACdopP,EAASppP,KAAK,mBACXg8B,EAAG,WA/BqBoY,EA+BQg1M,EAAUptN,EAAG,SA9B3C/yB,SAAQ,SAAS0oM,EAAK9zM,GAC1B,IAAIyrP,EAAM,OAASzrP,EAAE,GAAK,KAAOA,EAAE,GAAK,IACrC8zM,EAAInkJ,OAAQ87L,GAAO,KAEE,iBAAb33C,EAAI7zM,QAAmB6zM,EAAI43C,IAAMC,GAAS73C,EAAI7zM,QACnC,iBAAX6zM,EAAI43C,MAAiB53C,EAAI+2C,IAAMe,GAAQ93C,EAAI43C,MAChC,iBAAX53C,EAAI+2C,MAAiBY,GAAOvwP,KAAKQ,MAAMo4M,EAAI+2C,OAErB,KAA9BY,EAAI1zM,OAAO0zM,EAAI3rP,OAAS,IAAWy2C,EAAIp0C,KAAKspP,OAuB7CttN,EAAG,UAnBP,SAA4BoY,EAAK29E,GAChCA,EAAK9oH,SAAQ,SAASojE,EAAKxuE,GAC1B,IAAIyrP,EAAM,KACPj9K,EAAI7e,OAAQ87L,GAAO,MACdj9K,EAAIu8K,IAAKU,GAAO,IAAM,GAAKj9K,EAAIu8K,IAAM,IACrCv8K,EAAIw8K,MAAKS,GAAO,IAAM,GAAKI,GAAMr9K,EAAIw8K,KAAO,KACjDS,EAAI3rP,OAAS,GAAGy2C,EAAIp0C,KAAKspP,EAAM,KAAOzrP,EAAE,OAa5B8rP,CAAmBP,EAAUptN,EAAG,UAEhDotN,EAASppP,KAAK,OAASsH,EAAEzB,EAAEyB,EAAIA,EAAE7K,EAAE6K,EAAI,GAAK,MAAQA,EAAEzB,EAAEuN,EAAI9L,EAAE7K,EAAE2W,EAAI,GAAK,KAAO,CAAC9L,EAAE7K,EAAE2W,EAAE9L,EAAE7K,EAAE6K,EAAEA,EAAEzB,EAAEuN,EAAE9L,EAAEzB,EAAEyB,GAAGW,KAAK,MAC/G,IAAI,IAAIq3E,EAAIh4E,EAAE7K,EAAE6K,EAAGg4E,GAAKh4E,EAAEzB,EAAEyB,IAAKg4E,EAChC,IAAI,IAAIX,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAAG,CACnC,IAAIirK,EAAQhe,GAAY,CAACtkO,EAAEg4E,EAAElsE,EAAEurE,KAC/B2sJ,EAAOiC,GAASvxM,EAAGsjD,IAAI,IAAIX,GAAI3iD,EAAG4tN,MACX,MAAVte,EAAKxkO,GAAewkO,EAAKllO,IAAKklO,EAAKzsJ,IAChD13E,EAAEnH,KAAKkpP,EAAmB5d,EAAMtvM,EAAIsjD,EAAGX,IAGzC,OAAOyqK,EAASnhP,KAAKohP,GAAMA,EAAKliP,EAAEc,KAAKohP,GAAMA,EAAK,IAAMA,IAvM9C,GAiNRQ,GAAO,WAUV,SAASC,EAAetmO,EAAK0oM,GAE5B,IADA,IAAIttC,EAAUp7J,EAAIC,MAAM,MAAO67D,GAAK,EAAGX,GAAK,EAAG2wI,EAAK,EAAGt9M,EAAM,GACtDs9M,IAAO1wC,EAAQjhL,SAAU2xN,EAC/B,GAA2B,QAAvB1wC,EAAQ0wC,GAAI1qM,QAChB,KAAI06D,EAAI,GAAR,CACA,IAAIyqK,EAAWnrE,EAAQ0wC,GAAI1qM,OAAOnB,MAAM,KACpC1gB,EAAOgnP,EAAS,GAAI1yP,EAAQ0yP,EAAS,GAErClnP,EAAO+7K,IADT0wC,GACqB1qM,OACvB,QAAS7hB,GACR,KAAM,EACL,GAAa,QAATF,EAAgB,CAAEmP,IAAMstE,GAAK,GAAIX,EAAI,EAAG,SACvC,GAAa,QAAT97E,EAAgB,MAAM,IAAIlL,MAAM,oCAAsCkL,GAC/E,MACD,KAAK,EACQ,SAATA,EAAiBmP,EAAIstE,GAAGX,IAAK,EACf,UAAT97E,EAAkBmP,EAAIstE,GAAGX,IAAK,EAC7BvnF,MAAMksO,GAASjsO,IACfD,MAAMosO,GAAUnsO,GAAOguC,WAC3BrzB,EAAIstE,GAAGX,GAAKtnF,EAD2B2a,EAAIstE,GAAGX,GAAKukJ,EAAU7rO,GADjC2a,EAAIstE,GAAGX,GAAK2kJ,GAASjsO,KAGpDsnF,EAAG,MACN,KAAK,EACJ97E,EAAOA,EAAKsH,MAAM,EAAEtH,EAAKlF,OAAO,GAChCqU,EAAIstE,GAAGX,KAAgB,KAAT97E,EAAcA,EAAO,KAGrC,GAAa,QAATA,EAAgB,YAvBgBmP,IAAMstE,GAAK,GAAIX,EAAI,EA0BxD,OADGutI,GAAQA,EAAK82B,YAAWhxO,EAAMA,EAAI7H,MAAM,EAAG+hN,EAAK82B,YAC5ChxO,EAGR,SAASg4O,EAAaxmO,EAAK0oM,GAAQ,OAAOgiB,GAzC1C,SAAoBv0O,EAAGuyN,GACtB,OAAOA,EAAKnpN,MACX,IAAK,SAAU,OAAO+mP,EAAe1gC,EAAOD,OAAOxvN,GAAIuyN,GACvD,IAAK,SAAU,OAAO49B,EAAenwP,EAAGuyN,GACxC,IAAK,SAAU,OAAO49B,EAAenwP,EAAEnC,SAAS,UAAW00N,GAC3D,IAAK,QAAS,OAAO49B,EAAe1mB,GAAOzpO,GAAIuyN,GAEhD,MAAM,IAAIv0N,MAAM,qBAAuBu0N,EAAKnpN,MAkCUknP,CAAWzmO,EAAK0oM,GAAOA,GA2D9E,MAAO,CACNi3B,YA3DD,SAAyB3/N,EAAK0oM,GAAQ,OAAO+gB,GAAkB+c,EAAaxmO,EAAK0oM,GAAOA,IA4DvFk3B,SAAU4G,EACV3G,WA3DmB,WACnB,IAAI6G,EAAa,SAAY/iP,EAAGgjP,EAAOrjP,EAAG/B,EAAGtI,GAC5C0K,EAAEnH,KAAKmqP,GACPhjP,EAAEnH,KAAK8G,EAAI,IAAM/B,GACjBoC,EAAEnH,KAAK,IAAMvD,EAAEvE,QAAQ,KAAK,MAAQ,MAEjCkyP,EAAa,SAAYjjP,EAAGpE,EAAM+D,EAAGrK,GACxC0K,EAAEnH,KAAK+C,EAAO,IAAM+D,GACpBK,EAAEnH,KAAa,GAAR+C,EAAY,IAAMtG,EAAEvE,QAAQ,KAAK,MAAQ,IAAMuE,IAEvD,OAAO,SAAsBu/B,GAC5B,IACuCsvM,EADnCnkO,EAAI,GACJG,EAAIslO,GAAkB5wM,EAAG,SACzBuxM,EAAQ10O,MAAMD,QAAQojC,GAC1BkuN,EAAW/iP,EAAG,QAAS,EAAG,EAAG,WAC7B+iP,EAAW/iP,EAAG,UAAW,EAAGG,EAAEzB,EAAEyB,EAAIA,EAAE7K,EAAE6K,EAAI,EAAE,IAC9C4iP,EAAW/iP,EAAG,SAAU,EAAGG,EAAEzB,EAAEuN,EAAI9L,EAAE7K,EAAE2W,EAAI,EAAE,IAC7C82O,EAAW/iP,EAAG,OAAQ,EAAG,EAAE,IAC3B,IAAI,IAAIm4E,EAAIh4E,EAAE7K,EAAE6K,EAAGg4E,GAAKh4E,EAAEzB,EAAEyB,IAAKg4E,EAAG,CACnC8qK,EAAWjjP,GAAI,EAAG,EAAG,OACrB,IAAI,IAAIw3E,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAAG,CACnC,IAAIirK,EAAQhe,GAAY,CAACtkO,EAAEg4E,EAAElsE,EAAEurE,IAE/B,GADA2sJ,EAAOiC,GAASvxM,EAAGsjD,IAAI,IAAIX,GAAK3iD,EAAG4tN,GAEnC,OAAOte,EAAKxmO,GACX,IAAK,IACJ,IAAI8sB,EAAe05M,EAAKprM,EACpBtO,GAAiB,MAAV05M,EAAKxkO,IAAW8qB,EAAM05M,EAAKxkO,GAC5B,MAAP8qB,EACW05M,EAAKllO,IAAMklO,EAAKzsJ,EAAGurK,EAAWjjP,EAAG,EAAG,EAAG,IAAMmkO,EAAKllO,GAC1DgkP,EAAWjjP,EAAG,EAAG,EAAG,IAErBijP,EAAWjjP,EAAG,EAAGyqB,EAAK,KAC3B,MACD,IAAK,IACJw4N,EAAWjjP,EAAG,EAAGmkO,EAAKxkO,EAAI,EAAI,EAAGwkO,EAAKxkO,EAAI,OAAS,SACnD,MACD,IAAK,IACJsjP,EAAWjjP,EAAG,EAAG,EAAe/P,MAAMk0O,EAAKxkO,GAAMwkO,EAAKxkO,EAAI,KAAOwkO,EAAKxkO,EAAI,KAC1E,MACD,IAAK,IACAwkO,EAAKprM,IAAGorM,EAAKprM,EAAI2qL,EAAI1lM,OAAOmmN,EAAKlG,GAAKva,EAAI0H,OAAO,IAAKqQ,EAAQM,EAAUoI,EAAKxkO,MACtEsjP,EAAWjjP,EAAG,EAAGmkO,EAAKprM,EAAG,KAEpC,MACD,QAASkqN,EAAWjjP,EAAG,EAAG,EAAG,SAtBlBijP,EAAWjjP,EAAG,EAAG,EAAG,KA0BlCijP,EAAWjjP,GAAI,EAAG,EAAG,OAIrB,OAFSA,EAAEc,KADF,SAlDS,IA7CV,GA4GPoiP,GAAO,WAEV,SAAShhC,EAAO5sN,GAAK,OAAOA,EAAEvE,QAAQ,MAAO,OAAOA,QAAQ,KAAM,OAAOA,QAAQ,MAAM,OA2BvF,SAASoyP,EAAa3wP,EAAGuyN,GAAQ,OAAOgiB,GAzBxC,SAAoB1qN,EAAK0oM,GAExB,IADA,IAAIttC,EAAUp7J,EAAIC,MAAM,MAAO67D,GAAK,EAAGX,GAAK,EAAG2wI,EAAK,EAAGt9M,EAAM,GACtDs9M,IAAO1wC,EAAQjhL,SAAU2xN,EAAI,CACnC,IAAI84B,EAASxpE,EAAQ0wC,GAAI1qM,OAAOnB,MAAM,KACtC,GAAiB,SAAd2kO,EAAO,GAAV,CACA,IAAI9xB,EAAOiW,GAAY6b,EAAO,IAC9B,GAAGp2O,EAAIrU,QAAU24N,EAAKhvN,EAAG,IAAIg4E,EAAIttE,EAAIrU,OAAQ2hF,GAAKg3I,EAAKhvN,IAAKg4E,EAAOttE,EAAIstE,KAAIttE,EAAIstE,GAAK,IAEpF,OADAA,EAAIg3I,EAAKhvN,EAAGq3E,EAAI23I,EAAKljN,EACdg1O,EAAO,IACb,IAAK,IAAKp2O,EAAIstE,GAAGX,GAAYypK,EAAO,GAZTlwP,QAAQ,OAAO,MAAMA,QAAQ,OAAO,KAAKA,QAAQ,OAAO,MAY1C,MACzC,IAAK,IAAK8Z,EAAIstE,GAAGX,IAAMypK,EAAO,GAAI,MAClC,IAAK,MAAO,IAAIt2N,EAAKs2N,EAAOA,EAAOzqP,OAAS,GAE5C,IAAK,MACJ,OAAOyqP,EAAO,IACb,IAAK,KAAMp2O,EAAIstE,GAAGX,MAAMypK,EAAO,GAAmB,MAClD,QAASp2O,EAAIstE,GAAGX,IAAMypK,EAAO,GAEd,OAAbA,EAAO,KAAap2O,EAAIstE,GAAGX,GAAK,CAAC3sE,EAAIstE,GAAGX,GAAI7sD,MAIlD,OADGo6L,GAAQA,EAAK82B,YAAWhxO,EAAMA,EAAI7H,MAAM,EAAG+hN,EAAK82B,YAC5ChxO,EAG6Cu4O,CAAW5wP,EAAGuyN,GAAOA,GAG1E,IAAImJ,EAAS,CACZ,yBACA,oBACA,4EACCptN,KAAK,MAEHuiP,EAAM,CACT,qCACA,2CACCviP,KAAK,MAAQ,KAGX4xK,EAAO,CACV,wCACA,cACC5xK,KAAK,MAEH7M,EAAM,uCAEV,SAASqvP,EAAkBzuN,GAC1B,IAAIA,IAAOA,EAAG,QAAS,MAAO,GAI9B,IAHA,IAAqBsvM,EAAjBnkO,EAAI,GAAIsiO,EAAK,GAAUmgB,EAAQ,GAC/BtiP,EAAImlO,GAAazwM,EAAG,SACpBuxM,EAAQ10O,MAAMD,QAAQojC,GAClBsjD,EAAIh4E,EAAE7K,EAAE6K,EAAGg4E,GAAKh4E,EAAEzB,EAAEyB,IAAKg4E,EAChC,IAAI,IAAIX,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAGhC,GAFAirK,EAAQhe,GAAY,CAACtkO,EAAEg4E,EAAElsE,EAAEurE,KAC3B2sJ,EAAOiC,GAASvxM,EAAGsjD,IAAI,IAAIX,GAAK3iD,EAAG4tN,KACb,MAAVte,EAAKxkO,GAAwB,MAAXwkO,EAAKxmO,EAAnC,CAEA,OADA2kO,EAAK,CAAC,OAAQmgB,EAAO,KACdte,EAAKxmO,GACX,IAAK,IAAK,IAAK,MAAO2kO,EAAGzpO,KAAKqpN,EAAOiiB,EAAKxkO,IAAK,MAC/C,IAAK,IACAwkO,EAAKllO,GACFqjO,EAAG,GAAG,MAAOA,EAAG,GAAG,IAAKA,EAAG,GAAG6B,EAAKxkO,EAAG2iO,EAAG,GAAGpgB,EAAOiiB,EAAKllO,KADjDqjO,EAAG,GAAG,IAAKA,EAAG,GAAG6B,EAAKxkO,GAEpC,MACD,IAAK,IACJ2iO,EAAG,GAAK,MAAM6B,EAAKllO,EAAE,IAAI,KAAMqjO,EAAG,GAAG,KAAMA,EAAG,GAAG6B,EAAKxkO,EAAE,IAAI,IAC5D2iO,EAAG,GAAKpgB,EAAOiiB,EAAKllO,IAAIklO,EAAKxkO,EAAE,OAAO,UACtC,MACD,IAAK,IACJ,IAAIhC,EAAI89N,EAAQM,EAAUoI,EAAKxkO,IAC/B2iO,EAAG,GAAK,MAAOA,EAAG,GAAK,KAAMA,EAAG,GAAK,GAAG3kO,EACxC2kO,EAAG,GAAK6B,EAAKprM,GAAK2qL,EAAI1lM,OAAOmmN,EAAKlG,GAAKva,EAAI0H,OAAO,IAAKztN,GACvD,MACD,IAAK,IAAK,SAEXqC,EAAEnH,KAAKypO,EAAGxhO,KAAK,MAMjB,OAHAd,EAAEnH,KAAK,YAAcsH,EAAEzB,EAAEuN,EAAE9L,EAAE7K,EAAE2W,EAAE,GAAK,OAAS9L,EAAEzB,EAAEyB,EAAEA,EAAE7K,EAAE6K,EAAE,GAAK,UAChEH,EAAEnH,KAAK,2BAEAmH,EAAEc,KAAK,MAQf,MAAO,CACNk7O,YAhED,SAAyBxpP,EAAGuyN,GAAQ,OAAO+gB,GAAkBqd,EAAa3wP,EAAGuyN,GAAOA,IAiEnFk3B,SAAUkH,EACVjH,WARD,SAAsBrnN,GACrB,MAAO,CAACq5L,EAAQm1B,EAAK3wE,EAAM2wE,EAAKC,EAAkBzuN,GAAK5gC,GAAK6M,KAAK,QAzFxD,GAoGPyiP,GAAO,WACV,SAASC,EAAa9nP,EAAMmP,EAAKstE,EAAGX,EAAGx3E,GACnCA,EAAEywN,IAAK5lN,EAAIstE,GAAGX,GAAK97E,EACL,SAATA,EAAiBmP,EAAIstE,GAAGX,IAAK,EACpB,UAAT97E,EAAkBmP,EAAIstE,GAAGX,IAAK,EACrB,KAAT97E,IACCzL,MAAMksO,GAASzgO,IACfzL,MAAMosO,GAAU3gO,GAAMwiC,WAC1BrzB,EAAIstE,GAAGX,GAAK97E,EAD0BmP,EAAIstE,GAAGX,GAAKukJ,EAAUrgO,GADjCmP,EAAIstE,GAAGX,GAAK2kJ,GAASzgO,IAgCtD,IAAI+nP,EAAa,CAClB,GAAM,IACN,EAAM,KACN,GAAM,KAIDC,EAAoB,CACzB,GAAM,EACN,EAAM,EACN,GAAM,GA2BL,SAASC,EAAiBtnO,EAAK0oM,GAC9B,IAAI/kN,EAAI+kN,GAAQ,GACZs+B,EAAM,GAEV,IAAIxuN,EAAK70B,EAAEomO,MAAS,GAAO,GACvBhyO,EAAS,CAACkB,EAAG,CAAC2W,EAAE,EAAG9L,EAAE,GAAIzB,EAAG,CAACuN,EAAE,EAAG9L,EAAE,IAEnB,QAAlBkc,EAAIrZ,MAAM,EAAE,IAAqC,IAArBqZ,EAAIi/I,WAAW,IAAY+nF,EAAMhnO,EAAIoyB,OAAO,GAAIpyB,EAAMA,EAAIrZ,MAAM,IAC1FqgP,EAhCN,SAAmBhnO,GAElB,IADA,IAAIoyM,EAAM,GAAIm1B,GAAQ,EAAO3vP,EAAM,EAAGkzN,EAAK,EACtClzN,EAAMooB,EAAI7lB,SAASvC,EACQ,KAA3BkzN,EAAG9qM,EAAIi/I,WAAWrnK,IAAe2vP,GAASA,GACrCA,GAASz8B,KAAMs8B,IAAYh1B,EAAItH,IAAOsH,EAAItH,IAAK,GAAG,GAI5D,IAAIlzN,KADJkzN,EAAK,GACMsH,EAAU1xN,OAAOQ,UAAUJ,eAAe7M,KAAKm+N,EAAKx6N,IAC9DkzN,EAAGtuN,KAAK,CAAE41N,EAAIx6N,GAAMA,IAGrB,IAAMkzN,EAAG3wN,OAER,IAAIvC,KADJw6N,EAAMi1B,EACe3mP,OAAOQ,UAAUJ,eAAe7M,KAAKm+N,EAAKx6N,IAC9DkzN,EAAGtuN,KAAK,CAAE41N,EAAIx6N,GAAMA,IAMtB,OAFAkzN,EAAGt0L,MAAK,SAASzhC,EAAG0L,GAAK,OAAO1L,EAAE,GAAK0L,EAAE,IAAM4mP,EAAkBtyP,EAAE,IAAMsyP,EAAkB5mP,EAAE,OAEtF2mP,EAAWt8B,EAAGrnN,MAAM,IAWhB+jP,CAAUxnO,EAAIrZ,MAAM,EAAE,OACjC,IAAIm1E,EAAI,EAAGX,EAAI,EAAG73E,EAAI,EAClB7L,EAAQ,EAAGG,EAAM,EAAG6vP,EAAQT,EAAI/nF,WAAW,GAAIsoF,GAAQ,EAAOz8B,EAAG,EACrE9qM,EAAMA,EAAItrB,QAAQ,SAAU,MAC5B,IAAIgzP,EAAkB,MAAZ/jP,EAAE6qN,OAzyMd,SAAsBA,GACrB,IAAItE,EAAuB,iBAAVsE,EAAqBnH,EAAI0H,OAAOP,GAAUA,EAE3D,OADAtE,EAAMA,EAAIx1N,QAAQ46N,EAAa,UACxB,IAAIruM,OAAO,IAAMipM,EAAM,KAsyMAy9B,CAAahkP,EAAE6qN,QAAU,KACtD,SAASo5B,IACR,IAAI3uP,EAAI+mB,EAAIrZ,MAAMlP,EAAOG,GACrBkwO,EAAQ,GAEZ,GADkB,KAAf7uO,EAAEm5C,OAAO,IAAuC,KAA1Bn5C,EAAEm5C,OAAOn5C,EAAEkB,OAAS,KAAWlB,EAAIA,EAAE0N,MAAM,GAAG,GAAGjS,QAAQ,MAAM,MACxE,IAAbuE,EAAEkB,OAAc2tO,EAAKxmO,EAAI,SACvB,GAAGqC,EAAEywN,IAAO0T,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAIrK,OACnC,GAAuB,IAApBA,EAAEmoB,OAAOjnB,OAAgB2tO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAIrK,OACnD,GAAsB,IAAnBA,EAAEgmK,WAAW,GACE,IAAnBhmK,EAAEgmK,WAAW,IAA4C,IAA9BhmK,EAAEgmK,WAAWhmK,EAAEkB,OAAS,IAAc2tO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAIrK,EAAE0N,MAAM,GAAG,GAAGjS,QAAQ,MAAM,MAmyF3G,GAlyFMuE,EAkyFhBkB,QAlyFsB2tO,EAAKxmO,EAAI,IAAKwmO,EAAKllO,EAAI3J,EAAE0N,MAAM,KAChDmhO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAIrK,QAC1B,GAAQ,QAALA,EAAe6uO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,GAAI,OACzC,GAAQ,SAALrK,EAAgB6uO,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,GAAI,OAC1C,GAAI1P,MAAM0P,EAAIw8N,GAAS7mO,IACvB,IAAIrF,MAAMosO,GAAU/mO,GAAG4oC,YAAc6lN,GAAOzuP,EAAE0jB,MAAM+qO,GAAM,CAC9D5f,EAAKlG,EAAIj+N,EAAE6qN,QAAUnH,EAAI0H,OAAO,IAChC,IAAIrjM,EAAI,EACLg8N,GAAOzuP,EAAE0jB,MAAM+qO,KAAOzuP,EAtzM7B,SAAoB+mB,EAAKwuM,EAAQ7xM,GAChC,IAAIy/D,GAAK,EAAGx4E,GAAK,EAAGzN,GAAK,EAAGolF,GAAK,EAAGpkD,GAAK,EAAG4kD,GAAK,GAChDyyI,EAAO7xM,MAAM2yM,IAAc,IAAI7pN,SAAQ,SAASlE,EAAGlH,GACnD,IAAIiJ,EAAIyzB,SAASpa,EAAMtiB,EAAE,GAAI,IAC7B,OAAOkH,EAAEsgB,cAAcuwB,OAAO,IAC7B,IAAK,IAAKgqC,EAAI94E,EAAG,MAAO,IAAK,IAAKnN,EAAImN,EAAG,MACzC,IAAK,IAAKi4E,EAAIj4E,EAAG,MAAO,IAAK,IAAKy4E,EAAIz4E,EAAG,MACzC,IAAK,IAAQi4E,GAAK,EAAGpkD,EAAI7zB,EAAQM,EAAIN,MAGpCy4E,GAAK,IAAW,GAAN5kD,GAAWvzB,GAAK,IAAKuzB,EAAIvzB,EAAGA,GAAK,GAC9C,IAAIikP,GAAY,IAAMzrK,GAAG,EAAEA,GAAG,IAAI15D,MAAOO,gBAAgBtc,OAAO,GAAK,KAAO,MAAQ/C,GAAG,EAAEA,EAAE,IAAI+C,OAAO,GAAK,KAAO,MAAQxQ,GAAG,EAAEA,EAAE,IAAIwQ,OAAO,GACvH,GAAlBkhP,EAAQ1tP,SAAa0tP,EAAU,IAAMA,GACnB,GAAlBA,EAAQ1tP,SAAa0tP,EAAU,KAAOA,GACzC,IAAIC,GAAY,MAAQvsK,GAAG,EAAEA,EAAE,IAAI50E,OAAO,GAAK,KAAO,MAAQwwB,GAAG,EAAEA,EAAE,IAAIxwB,OAAO,GAAK,KAAO,MAAQo1E,GAAG,EAAEA,EAAE,IAAIp1E,OAAO,GACtH,OAAS,GAAN40E,IAAiB,GAANpkD,IAAiB,GAAN4kD,EAAgB8rK,GAChC,GAANzrK,IAAiB,GAANx4E,IAAiB,GAANzN,EAAgB2xP,EAClCD,EAAU,IAAMC,EAqyMOC,CAAW9uP,EAAG0K,EAAE6qN,OAASv1N,EAAE0jB,MAAM+qO,IAAM,IAAMh8N,EAAE,GACvE/nB,EAAE6mO,WAAa1C,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAIo8N,EAAUzmO,EAAGyyB,KAC/Co8M,EAAKxmO,EAAI,IAAKwmO,EAAKxkO,EAAI87N,EAAQM,EAAUzmO,EAAGyyB,MACjC,IAAf/nB,EAAEqkP,WAAoBlgB,EAAKprM,EAAI2qL,EAAI1lM,OAAOmmN,EAAKlG,EAAGkG,EAAKxkO,aAAaof,KAAO08M,EAAQ0I,EAAKxkO,GAAGwkO,EAAKxkO,IAC/FK,EAAEskP,eAAengB,EAAKlG,OAE1BkG,EAAKxmO,EAAI,IACTwmO,EAAKxkO,EAAIrK,OAXyB6uO,EAAKxmO,EAAI,KAAuB,IAAfqC,EAAEqkP,WAAoBlgB,EAAKprM,EAAIzjC,GAAG6uO,EAAKxkO,EAAIA,EAmB/F,GANa,KAAVwkO,EAAKxmO,IACAqC,EAAEomO,OAAavxM,EAAGsjD,KAAItjD,EAAGsjD,GAAK,IAAItjD,EAAGsjD,GAAGX,GAAK2sJ,GAChDtvM,EAAG4vM,GAAY,CAACx4N,EAAEurE,EAAEr3E,EAAEg4E,KAAOgsJ,GAClCrwO,EAAQG,EAAI,EACTG,EAAMsK,EAAEuN,EAAIurE,IAAGpjF,EAAMsK,EAAEuN,EAAIurE,GAC3BpjF,EAAMsK,EAAEyB,EAAIg4E,IAAG/jF,EAAMsK,EAAEyB,EAAIg4E,GAC3BgvI,GAAM28B,IAAStsK,OAAsB,GAAZA,EAAI,IAAKW,EAAMn4E,EAAE67O,WAAa77O,EAAE67O,WAAa1jK,EAAG,OAAO,EAEpFosK,EAAO,KAAKtwP,EAAMooB,EAAI7lB,SAASvC,EAAK,OAAQkzN,EAAG9qM,EAAIi/I,WAAWrnK,IAC7D,KAAK,GAAM2vP,GAASA,EAAO,MAC3B,KAAKE,EAAO,KAAK,GAAM,KAAK,GAAM,IAAIF,GAASK,IAAe,MAAMM,EAMrE,OAHGtwP,EAAMH,EAAQ,GAAGmwP,IAEpBpvN,EAAG,QAAU0wM,GAAanxO,GACnBygC,EAGR,SAAS2vN,EAAiBnoO,EAAK0oM,GAC9B,MAAqB,QAAlB1oM,EAAIrZ,MAAM,EAAE,IACZqZ,EAAIlrB,QAAQ,OAAS,GAAKkrB,EAAIlrB,QAAQ,MAAQ,GAAKkrB,EAAIlrB,QAAQ,MAAQ,EADtCwyP,EAAiBtnO,EAAK0oM,GAEnDgiB,GA7HR,SAAwB9nO,EAAG8lN,GAC1B,IAAI/kN,EAAI+kN,GAAQ,GACZl6M,EAAO,GACX,IAAI5L,GAAkB,IAAbA,EAAEzI,OAAc,OAAOqU,EAGhC,IAFA,IAAI48I,EAAQxoJ,EAAEqd,MAAM,UAChBhO,EAAIm5I,EAAMjxJ,OAAS,EACjB8X,GAAK,GAAyB,IAApBm5I,EAAMn5I,GAAG9X,UAAgB8X,EAGzC,IAFA,IAAIxa,EAAQ,GAAIuvE,EAAM,EAClB8U,EAAI,EACFA,GAAK7pE,IAAK6pE,GAEJ,IADX9U,EAAMokF,EAAMtvE,GAAGhnF,QAAQ,MACTkyE,EAAMokF,EAAMtvE,GAAG3hF,OAAa6sE,IAC1CvvE,EAAQlC,KAAKM,IAAI4B,EAAOuvE,GAEzB,IAAI8U,EAAI,EAAGA,GAAK7pE,IAAK6pE,EAAG,CACvBttE,EAAIstE,GAAK,GAET,IAAIX,EAAI,EAER,IADAgsK,EAAa/7F,EAAMtvE,GAAGn1E,MAAM,EAAGlP,GAAO2pB,OAAQ5S,EAAKstE,EAAGX,EAAGx3E,GACrDw3E,EAAI,EAAGA,IAAMiwE,EAAMtvE,GAAG3hF,OAAS1C,GAAO,GAAK,IAAK0jF,EACnDgsK,EAAa/7F,EAAMtvE,GAAGn1E,MAAMlP,EAAY,IAAL0jF,EAAE,GAAM1jF,EAAQ,GAAF0jF,GAAM/5D,OAAO5S,EAAIstE,EAAEX,EAAEx3E,GAGxE,OADGA,EAAE67O,YAAWhxO,EAAMA,EAAI7H,MAAM,EAAGhD,EAAE67O,YAC9BhxO,EAsGa45O,CAAepoO,EAAK0oM,GAAOA,GAGhD,SAAS2/B,EAAalyP,EAAGuyN,GACxB,IAAI1oM,EAAM,GAAI01N,EAAqB,UAAbhtB,EAAKnpN,KAAmB,CAAC,EAAE,EAAE,EAAE,GAAK+oP,GAAUnyP,EAAGuyN,GACvE,OAAOA,EAAKnpN,MACX,IAAK,SAAUygB,EAAM4lM,EAAOD,OAAOxvN,GAAI,MACvC,IAAK,SAAU6pB,EAAM7pB,EAAG,MACxB,IAAK,SACuB6pB,EAAP,OAAjB0oM,EAAKo3B,SAAyB3pP,EAAEnC,SAAS,QACpC00N,EAAKo3B,UAA+B,qBAAZp8B,QAA+BA,QAAQ9M,MAAM+O,OAAO+C,EAAKo3B,SAAU3pP,GACxFA,EAAEnC,SAAS,UACtB,MACD,IAAK,QAASgsB,EAAM4/M,GAAOzpO,GAAI,MAC/B,IAAK,SAAU6pB,EAAM7pB,EAAG,MACxB,QAAS,MAAM,IAAIhC,MAAM,qBAAuBu0N,EAAKnpN,MAItD,OAFe,KAAZm2O,EAAM,IAA0B,KAAZA,EAAM,IAA0B,KAAZA,EAAM,GAAY11N,EAAMgjN,GAAShjN,EAAIrZ,MAAM,IAChE,UAAb+hN,EAAKnpN,MAAwC,qBAAZmkN,SAA2BgF,EAAKo3B,WAAW9/N,EAAM0jM,QAAQ9M,MAAM+O,OAAO+C,EAAKo3B,SAAUp8B,QAAQ9M,MAAMiP,OAAO,KAAK7lM,KACnI,uBAAnBA,EAAIrZ,MAAM,EAAE,IAAqCkgP,GAAIjH,SAAsB,UAAbl3B,EAAKnpN,KAAmBygB,EAAMgjN,GAAShjN,GAAM0oM,GACvGy/B,EAAiBnoO,EAAK0oM,GAwB9B,MAAO,CACNi3B,YAtBD,SAAyBxpP,EAAGuyN,GAAQ,OAAO+gB,GAAkB4e,EAAalyP,EAAGuyN,GAAOA,IAuBnFk3B,SAAUyI,EACVxI,WAtBD,SAAsBrnN,GAIrB,IAHA,IACuCsvM,EADnCnkO,EAAI,GACJG,EAAIslO,GAAkB5wM,EAAG,SACzBuxM,EAAQ10O,MAAMD,QAAQojC,GAClBsjD,EAAIh4E,EAAE7K,EAAE6K,EAAGg4E,GAAKh4E,EAAEzB,EAAEyB,IAAKg4E,EAAG,CAEnC,IADA,IAAImqJ,EAAK,GACD9qJ,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAAG,CACnC,IAAIirK,EAAQhe,GAAY,CAACtkO,EAAEg4E,EAAElsE,EAAEurE,IAE/B,IADA2sJ,EAAOiC,GAASvxM,EAAGsjD,IAAI,IAAIX,GAAK3iD,EAAG4tN,KACb,MAAVte,EAAKxkO,EAAjB,CAEA,IADA,IAAIo5B,GAAKorM,EAAKprM,IAAM8sM,GAAY1B,GAAOA,EAAKprM,IAAM,IAAI/1B,MAAM,EAAE,IACxD+1B,EAAEviC,OAAS,IAAIuiC,GAAK,IAC1BupM,EAAGzpO,KAAKkgC,GAAW,IAANy+C,EAAU,IAAM,UAHC8qJ,EAAGzpO,KAAK,cAKvCmH,EAAEnH,KAAKypO,EAAGxhO,KAAK,KAEhB,OAAOd,EAAEc,KAAK,QAjLL,GAyMP8jP,GAAO,WA0BV,SAASC,EAAsBryP,EAAGuyN,GACjC,IAAIvyN,EAAG,OAAOA,EACd,IAAIwN,EAAI+kN,GAAQ,GAEhB,IAAIzvN,EAAM0K,EAAEomO,MAAQ,GAAK,GAAMxoO,EAAI,SAAUknP,EAAO,EAChD/e,EAAS,GAAIgf,EAAS,CAACnnP,GAEvBonP,EAAW,CAAC1vP,EAAG,CAAC6K,EAAE,EAAG8L,EAAE,GAAIvN,EAAG,CAACyB,EAAE,EAAG8L,EAAE,IACtC4vO,EAAY77O,EAAE67O,WAAa,EAE/B,GAAW,GAARrpP,EAAE,GAAYwN,EAAEilP,KAAOC,OACrB,GAAW,IAAR1yP,EAAE,GAAYwN,EAAEilP,KAAOE,MAC1B,IAAW,IAAR3yP,EAAE,GACL,MAAM,IAAIhC,MAAM,0BAA4BgC,EAAE,IAD3BwN,EAAEilP,KAAOE,EAASnlP,EAAEolP,MAAO,EAAM5yP,EAAE2Z,EAAI,EA0D/D,OA/FD,SAAqBzQ,EAAMs+L,EAAI+qB,GAC9B,GAAIrpN,EAAJ,CACAkxN,GAAUlxN,EAAMA,EAAKyQ,GAAK,GAE1B,IADA,IAAI84O,EAAOlgC,EAAKkgC,MAAQC,EAClBxpP,EAAKyQ,EAAIzQ,EAAKlF,QAAQ,CAC3B,IAAI+sO,EAAK7nO,EAAKmxN,WAAW,GACrB10I,EAAI8sK,EAAK1hB,IAAO0hB,EAAK,KACrBzuP,EAASkF,EAAKmxN,WAAW,GACzBE,EAAMrxN,EAAKyQ,EAAI3V,EACfhE,GAAK2lF,EAAEl5E,GAAGkkO,IAAWznO,EAAMlF,EAAQuuN,GAEvC,GADArpN,EAAKyQ,EAAI4gN,EACN/yB,EAAGxnM,EAAG2lF,EAAEv6E,EAAG2lO,GAAK,SA4BpB8hB,CAAY7yP,GAAG,SAASi4B,EAAK66N,EAAI/hB,GAChC,GAAW,GAAR/wO,EAAE,GAAY,OAAO+wO,GACvB,KAAK,EACJvjO,EAAEulP,KAAO96N,EACNA,GAAO,OAAQzqB,EAAEolP,MAAO,GAC3B,MACD,KAAK,EAAMJ,EAAWv6N,EAAK,MAC3B,KAAK,GACAzqB,EAAEolP,OAAM36N,EAAI,GAAG9qB,EAAI8qB,EAAI,GAAG9qB,EAAEqD,MAAM,IAEvC,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GAEK,IAANugO,GAAiC,MAAT,IAAT94M,EAAI,MAAgC,GAATA,EAAI,IAAa,IAAe,GAATA,EAAI,IAAa,KACpFA,EAAI,GAAGwzM,EAAIj+N,EAAE6qN,QAAUnH,EAAI0H,OAAO,IAC/BprN,EAAE6mO,YAAap8M,EAAI,GAAG9sB,EAAI,IAAK8sB,EAAI,GAAG9qB,EAAI+7N,EAAQjxM,EAAI,GAAG9qB,KAE1DK,EAAEomO,OACA9wO,EAAEm1B,EAAI,GAAGtqB,KAAI7K,EAAEm1B,EAAI,GAAGtqB,GAAK,IAC/B7K,EAAEm1B,EAAI,GAAGtqB,GAAGsqB,EAAI,GAAGxe,GAAKwe,EAAI,IACtBn1B,EAAEmvO,GAAYh6M,EAAI,KAAOA,EAAI,QAE/B,OAAO84M,GACb,KAAK,GACJ94M,EAAI,GAAG9qB,EAAI8qB,EAAI,GAAG9qB,EAAEqD,MAAM,GAE3B,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GASJ,GARGynB,EAAI,GAAKq6N,IACXxvP,EAAE,QAAUiwO,GAAayf,GACzBjf,EAAOnoO,GAAKtI,EACZA,EAAK0K,EAAEomO,MAAQ,GAAK,GACpB4e,EAAW,CAAC1vP,EAAG,CAAC6K,EAAE,EAAG8L,EAAE,GAAIvN,EAAG,CAACyB,EAAE,EAAG8L,EAAE,IACtC64O,EAAOr6N,EAAI,GAAI7sB,EAAI,SAAWknP,EAAO,GACrCC,EAAOlsP,KAAK+E,IAEVi+O,EAAY,GAAKpxN,EAAI,GAAGtqB,GAAK07O,EAAW,MACxC77O,EAAEomO,OACA9wO,EAAEm1B,EAAI,GAAGtqB,KAAI7K,EAAEm1B,EAAI,GAAGtqB,GAAK,IAC/B7K,EAAEm1B,EAAI,GAAGtqB,GAAGsqB,EAAI,GAAGxe,GAAKwe,EAAI,IACtBn1B,EAAEmvO,GAAYh6M,EAAI,KAAOA,EAAI,GACjCu6N,EAAStmP,EAAEuN,EAAIwe,EAAI,GAAGxe,IAAG+4O,EAAStmP,EAAEuN,EAAIwe,EAAI,GAAGxe,GAC/C+4O,EAAStmP,EAAEyB,EAAIsqB,EAAI,GAAGtqB,IAAG6kP,EAAStmP,EAAEyB,EAAIsqB,EAAI,GAAGtqB,MAIlDH,GAEH1K,EAAE,QAAUiwO,GAAayf,GACzBjf,EAAOnoO,GAAKtI,EACL,CAAE0wO,WAAY+e,EAAQ9e,OAAOF,GAarC,SAASyf,EAAW74B,EAAMn2N,EAAQuuN,GACjC,IAAI/kN,EAAI,CAAC,CAACiM,EAAE,EAAE9L,EAAE,GAAI,CAACxC,EAAE,IAAIgC,EAAE,GAAI,GAUjC,OATGolN,EAAKqgC,MAAqB,OAAbrgC,EAAKwgC,MACpBvlP,EAAE,GAAGiM,EAAI0gN,EAAKE,WAAW,GACzBF,EAAKxgN,IACLnM,EAAE,GAAGG,EAAIwsN,EAAKE,WAAW,GACzBF,EAAKxgN,GAAG,IAERnM,EAAE,GAAK2sN,EAAKE,WAAW,GACvB7sN,EAAE,GAAGiM,EAAI0gN,EAAKE,WAAW,GAAI7sN,EAAE,GAAGG,EAAIwsN,EAAKE,WAAW,IAEhD7sN,EAGR,SAASylP,EAAY94B,EAAMn2N,EAAQuuN,GAClC,IAAIgI,EAAMJ,EAAKxgN,EAAI3V,EACfwJ,EAAIwlP,EAAW74B,EAAMn2N,EAAQuuN,GAEjC,GADA/kN,EAAE,GAAGrC,EAAI,IACO,OAAbonN,EAAKwgC,KAAgB,CACvB54B,EAAKxgN,IACL,IAAIT,EAAMihN,EAAKE,WAAW,GAE1B,OADA7sN,EAAE,GAAGL,EAAIgtN,EAAKE,WAAWnhN,EAAK,QACvB1L,EAIR,OAFG+kN,EAAKqgC,MAAMz4B,EAAKxgN,IACnBnM,EAAE,GAAGL,EAAIgtN,EAAKE,WAAWE,EAAMJ,EAAKxgN,EAAG,QAChCnM,EA4BR,SAAS0lP,EAAa/4B,GACrB,IAAI3sN,EAAI,CAAC,CAACiM,EAAE,EAAE9L,EAAE,GAAI,CAACxC,EAAE,IAAIgC,EAAE,GAAI,GAEjC,OADAK,EAAE,GAAGG,EAAIwsN,EAAKE,WAAW,GAAI7sN,EAAE,GAAK2sN,EAAKA,EAAKxgN,KAAMnM,EAAE,GAAGiM,EAAI0gN,EAAKA,EAAKxgN,KAChEnM,EA6BR,SAAS2lP,EAAgBh5B,EAAMn2N,GAC9B,IAAIwJ,EAAI0lP,EAAa/4B,GACjBi5B,EAAKj5B,EAAKE,WAAW,GACrBg5B,EAAKl5B,EAAKE,WAAW,GACrBnuN,EAAIiuN,EAAKE,WAAW,GACxB,GAAQ,OAALnuN,EAA2B,OAAZsB,EAAE,GAAGL,EAAI,EAAUK,EACrC,IAAI1K,EAAQ,MAAJoJ,EAER,OAFoBA,GAAO,MAAFA,GAAY,MACrCsB,EAAE,GAAGL,GAAO,EAAFrK,EAAM,KAAOoJ,EAAI,EAAKmnP,GAAMnnP,EAAMmnP,KAAQnnP,IAAOA,GAAK,GAAMknP,GAAOlnP,EAAI,GAAQknP,MAASlnP,EAAI,MAC/FsB,EAgBR,SAAS8lP,EAAgBn5B,EAAMn2N,GAC9B,IAAIwJ,EAAI0lP,EAAa/4B,GACjBi5B,EAAKj5B,EAAKE,WAAW,EAAE,KAE3B,OADA7sN,EAAE,GAAGL,EAAIimP,EACF5lP,EASR,IAAIklP,EAAU,CACfhlC,EAAQ,CAAEtiN,EAAE,MAAOqB,EAAEy1O,IACrB,EAAQ,CAAE92O,EAAE,OACZ,EAAQ,CAAEA,EAAE,YACZ,EAAQ,CAAEA,EAAE,aACZ,EAAQ,CAAEA,EAAE,SACZ,EAAQ,CAAEA,EAAE,QACZ,EAAQ,CAAEA,EAAE,QAASqB,EA5IpB,SAAqB0tN,GACpB,IAAI3sN,EAAI,CAAC1K,EAAE,CAAC2W,EAAE,EAAE9L,EAAE,GAAGzB,EAAE,CAACuN,EAAE,EAAE9L,EAAE,IAM9B,OALAH,EAAE1K,EAAE2W,EAAI0gN,EAAKE,WAAW,GACxB7sN,EAAE1K,EAAE6K,EAAIwsN,EAAKE,WAAW,GACxB7sN,EAAEtB,EAAEuN,EAAI0gN,EAAKE,WAAW,GACxB7sN,EAAEtB,EAAEyB,EAAIwsN,EAAKE,WAAW,GACZ,OAAT7sN,EAAE1K,EAAE2W,IAAajM,EAAE1K,EAAE2W,EAAIjM,EAAEtB,EAAEuN,EAAIjM,EAAE1K,EAAE6K,EAAIH,EAAEtB,EAAEyB,EAAI,GAC7CH,IAsIT,EAAQ,CAAEpC,EAAE,WACZ,EAAQ,CAAEA,EAAE,SACZ,EAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,QACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,UAAWqB,EA5GtB,SAAuB0tN,EAAMn2N,EAAQuuN,GACpC,IAAI/kN,EAAIwlP,EAAW74B,EAAMn2N,EAAQuuN,GAEjC,OADA/kN,EAAE,GAAGL,EAAIgtN,EAAKE,WAAW,EAAG,KACrB7sN,IA0GT,GAAQ,CAAEpC,EAAE,SAAUqB,EAvGrB,SAAsB0tN,EAAMn2N,EAAQuuN,GACnC,IAAI/kN,EAAIwlP,EAAW74B,EAAMn2N,EAAQuuN,GAEjC,OADA/kN,EAAE,GAAGL,EAAIgtN,EAAKE,WAAW,EAAG,KACrB7sN,IAqGT,GAAQ,CAAEpC,EAAE,QAASqB,EAAEwmP,GACvB,GAAQ,CAAE7nP,EAAE,UAAWqB,EAnGtB,SAAuB0tN,EAAMn2N,EAAQuuN,GACpC,IAAIgI,EAAMJ,EAAKxgN,EAAI3V,EACfwJ,EAAIwlP,EAAW74B,EAAMn2N,EAAQuuN,GAGjC,GADA/kN,EAAE,GAAGL,EAAIgtN,EAAKE,WAAW,EAAG,KACzB9H,EAAKqgC,KAAMz4B,EAAKxgN,EAAI4gN,MAClB,CACJ,IAAIpD,EAAOgD,EAAKE,WAAW,GAC3BF,EAAKxgN,GAAKw9M,EAEX,OAAO3pN,IA0FT,GAAQ,CAAEpC,EAAE,SACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,YACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,WACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,eACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SAAUqB,EAAEwmP,GACxB,GAAQ,CAAE7nP,EAAE,YACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,aACZ,GAAQ,CAAEA,EAAE,QACZ,GAAQ,CAAEA,EAAE,YACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,SACZ,GAAQ,CAAEA,EAAE,UACZ,GAAQ,CAAEA,EAAE,SACZ,IAAQ,CAAEA,EAAE,GAAIqB,EAAEkkO,KAGbgiB,EAAU,CACfjlC,EAAQ,CAAEtiN,EAAE,OACZ,EAAQ,CAAEA,EAAE,OACZ,EAAQ,CAAEA,EAAE,MACZ,EAAQ,CAAEA,EAAE,MACZ,EAAQ,CAAEA,EAAE,MACZ,EAAQ,CAAEA,EAAE,MACZ,EAAQ,CAAEA,EAAE,MACZ,EAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,UAAWqB,EA/ItB,SAAwB0tN,EAAMn2N,GAC7B,IAAIwJ,EAAI0lP,EAAa/4B,GAGrB,OAFA3sN,EAAE,GAAGrC,EAAI,IACTqC,EAAE,GAAGL,EAAIgtN,EAAKE,WAAWr2N,EAAS,EAAG,QAC9BwJ,IA4IT,GAAQ,CAAEpC,EAAE,WAAYqB,EAAE0mP,GAC1B,GAAQ,CAAE/nP,EAAE,WAAYqB,EA1IvB,SAAyB0tN,EAAMn2N,GAC9B,IAAIwJ,EAAI0lP,EAAa/4B,GACrB3sN,EAAE,GAAGL,EAAIgtN,EAAKE,WAAW,GACzB,IAAIltN,EAAIK,EAAE,GAAGL,GAAK,EAElB,GAAY,EAATK,EAAE,GAAGL,EACP,OAAW,EAAJA,GACN,KAAK,EAAGA,EAAe,KAAVA,GAAK,GAAU,MAC5B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAAI,MAC3B,KAAK,EAAGA,GAAKA,GAAK,GAAK,IAAM,MAC7B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAAI,MAC3B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAAI,MAC3B,QAAS,KAAM,+BAAqC,EAAJA,GAIlD,OADAK,EAAE,GAAGL,EAAIA,EACFK,IA2HT,GAAQ,CAAEpC,EAAE,YAAaqB,EA7GxB,SAA0B0tN,EAAMn2N,GAC/B,IAAIwJ,EAAI2lP,EAAgBh5B,GAExB,OADAA,EAAKxgN,GAAK3V,EAAS,GACZwJ,IA2GT,GAAQ,CAAEpC,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,MACZ,GAAQ,CAAEA,EAAE,WAAYqB,EA/GvB,SAAyB0tN,EAAMn2N,GAC9B,IAAIwJ,EAAI0lP,EAAa/4B,GACjBi5B,EAAKj5B,EAAKE,WAAW,GAEzB,OADA7sN,EAAE,GAAGL,EAAIimP,GAAM,EACR5lP,IA4GT,GAAQ,CAAEpC,EAAE,WAAYqB,EAAE6mP,GAC1B,GAAQ,CAAEloP,EAAE,YAAaqB,EAnGxB,SAA0B0tN,EAAMn2N,GAC/B,IAAIwJ,EAAI8lP,EAAgBn5B,GAExB,OADAA,EAAKxgN,GAAK3V,EAAS,GACZwJ,IAiGT,IAAQ,CAAEpC,EAAE,GAAIqB,EAAEkkO,KAEjB,MAAO,CACN6Y,YAzTD,SAA2BxpP,EAAGuyN,GAC7B,OAAOA,EAAKnpN,MACX,IAAK,SAAU,OAAOipP,EAAsB3hC,EAAIjB,EAAOD,OAAOxvN,IAAKuyN,GACnE,IAAK,SAAU,OAAO8/B,EAAsB3hC,EAAI1wN,GAAIuyN,GACpD,IAAK,SACL,IAAK,QAAS,OAAO8/B,EAAsBryP,EAAGuyN,GAE/C,KAAM,oBAAsBA,EAAKnpN,OAvBxB,GAobPmqP,GAAY,WACf,IAAIC,EAAStmB,GAAS,KAAMumB,EAAUvmB,GAAS,OAE/C,SAASwmB,EAAQ/lP,GAEhB,IAAIxC,EAAIwC,EAAE6Y,MAAMgtO,GAChB,IAAIroP,EAAG,MAAO,CAACA,EAAE,IAAKgC,EAAE,IAExB,IAAIK,EAAK,CAACrC,EAAE,IAAKgC,EAAE4+N,GAAY5gO,EAAE,KAC7BwoP,EAAMhmP,EAAE6Y,MAAMitO,GAElB,OADGE,IAAKnmP,EAAE1K,EAjHZ,SAAmB6wP,GAClB,IAAInmM,EAAO,GAAI//C,EAAIkmP,EAAIntO,MAAM2kN,IAAWjnO,EAAI,EACxC83M,GAAO,EACX,GAAGvuM,EAAG,KAAKvJ,GAAGuJ,EAAEzJ,SAAUE,EAAG,CAC5B,IAAI9B,EAAIkpO,GAAY79N,EAAEvJ,IACtB,OAAO9B,EAAE,GAAG7D,QAAQ,QAAQ,KAG3B,IAAK,YAGL,IAAK,UAAW,MAGhB,IAAK,UACJ,IAAI6D,EAAE61B,IAAK,MAEZ,IAAK,WACL,IAAK,YAAau1B,EAAKomM,OAAS,EAAG,MACnC,IAAK,YAAa,MAGlB,IAAK,WACJ,GAAY,KAATxxP,EAAE61B,IAAY,MACjBu1B,EAAKwnE,GAAKy4F,EAAM7sL,SAASx+B,EAAE61B,IAAK,KAChC,MAGD,IAAK,WACJ,IAAI71B,EAAE61B,IAAK,MAEZ,IAAK,YACL,IAAK,aAAcu1B,EAAK6yB,QAAU,EAAG,MACrC,IAAK,aAAc,MAGnB,IAAK,SAAU7yB,EAAKpjD,KAAOhI,EAAE61B,IAAK,MAGlC,IAAK,MAAOu1B,EAAK8sK,GAAKl4N,EAAE61B,IAAK,MAG7B,IAAK,UACJ,IAAI71B,EAAE61B,IAAK,MAEZ,IAAK,WACL,IAAK,YAAau1B,EAAKqmM,OAAS,EAAG,MACnC,IAAK,YAAa,MAGlB,IAAK,KACJ,IAAIzxP,EAAE61B,IAAK,MACX,OAAO71B,EAAE61B,KACR,IAAK,SAAUu1B,EAAKsmM,KAAO,SAAU,MACrC,IAAK,mBAAoBtmM,EAAKsmM,KAAO,oBAAqB,MAC1D,IAAK,mBAAoBtmM,EAAKsmM,KAAO,oBAGvC,IAAK,MACL,IAAK,OAAQtmM,EAAKrW,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,KACJ,GAAY,KAAT/0C,EAAE61B,IAAY,MAElB,IAAK,MACL,IAAK,OAAQu1B,EAAKljD,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,KACJ,GAAY,KAATlI,EAAE61B,IAAY,MAElB,IAAK,MACL,IAAK,OAAQu1B,EAAKtpD,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,SACD9B,EAAEgjD,MAAKoI,EAAK5I,MAAQxiD,EAAEgjD,IAAI50C,MAAM,EAAE,IACrC,MAGD,IAAK,UAAWg9C,EAAKumM,OAAS3xP,EAAE61B,IAAK,MAGrC,IAAK,aAAcu1B,EAAKyc,OAAS7nE,EAAE61B,IAAK,MAGxC,IAAK,UAAW,MAGhB,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQ+jL,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QACC,GAA0B,KAAvB55M,EAAE,GAAG0mK,WAAW,KAAckzC,EAAM,MAAM,IAAIh+M,MAAM,4BAA8BoE,EAAE,KAG1F,OAAOorD,EAaQwmM,CAAUL,EAAI,KACrBnmP,EAER,IAAIymP,EAAS,gBAAiBC,EAAO,iBACrC,OAAO,SAAkBC,GACxB,OAAOA,EAAG51P,QAAQ01P,EAAO,IAAInqO,MAAMoqO,GAAMnhO,IAAI2gO,GAAS7+N,QAAO,SAASlnB,GAAK,OAAOA,EAAER,MAftE,GAqBZinP,GAAc,WACjB,IAAIC,EAAU,aAyBd,SAASC,EAAU3mP,GAClB,IAAI4mP,EAAQ,CAAC,GAAG5mP,EAAER,EAAE,IACpB,OAAIQ,EAAER,GAEHQ,EAAE7K,GA5BN,SAAoB0qD,EAAMgnM,EAAOC,GAChC,IAAI3xM,EAAQ,GAET0K,EAAKrW,GAAG2L,EAAMz8C,KAAK,+BACnBmnD,EAAKsmM,MAAMhxM,EAAMz8C,KAAK,wBAA0BmnD,EAAKsmM,KAAO,KAC5DtmM,EAAK8sK,IAAIx3K,EAAMz8C,KAAK,aAAemnD,EAAK8sK,GAAK,OAC7C9sK,EAAK6yB,SAASv9B,EAAMz8C,KAAK,yBACzBmnD,EAAKomM,QAAQ9wM,EAAMz8C,KAAK,sBAC3BmuP,EAAMnuP,KAAK,gBAAkBy8C,EAAMx0C,KAAK,IAAM,MAE3Ck/C,EAAKljD,IAAKkqP,EAAMnuP,KAAK,OAAQouP,EAAMpuP,KAAK,SACxCmnD,EAAKtpD,IAAKswP,EAAMnuP,KAAK,OAAQouP,EAAMpuP,KAAK,SACxCmnD,EAAKqmM,SAAUW,EAAMnuP,KAAK,OAAQouP,EAAMpuP,KAAK,SAEhD,IAAIijE,EAAQ9b,EAAKyc,QAAU,GACf,eAATX,GAAmC,SAATA,EAAkBA,EAAQ,MACtC,aAATA,IAAsBA,EAAQ,OAC1B,IAATA,IAAekrL,EAAMnuP,KAAK,IAAMijE,EAAQ,KAAMmrL,EAAMpuP,KAAK,KAAOijE,EAAQ,MAE3EmrL,EAAMpuP,KAAK,WASHquP,CAAW/mP,EAAE7K,EAAGyxP,EAAM,GAAIA,EAAM,IAEjCA,EAAM,GAAGjmP,KAAK,IAAMimP,EAAM,GAAGh2P,QAAQ81P,EAAQ,SAAWE,EAAM,GAAGjmP,KAAK,KAJ7D,GAOjB,OAAO,SAAkB6lP,GACxB,OAAOA,EAAGphO,IAAIuhO,GAAWhmP,KAAK,KApCd,GAyCdqmP,GAAW,0CAA2CC,GAAW,eACjEC,GAAa,+CACjB,SAASC,GAAS3yP,EAAGowN,GACpB,IAAIvlJ,GAAOulJ,GAAOA,EAAKwiC,SACnBtpB,EAAI,GACR,OAAItpO,GAIDA,EAAEqkB,MAAM,0BACVilN,EAAEtgO,EAAI4gO,GAAYc,GAAS1qO,EAAEqO,MAAMrO,EAAExD,QAAQ,KAAK,GAAGmrB,MAAM,kBAAkB,IAAI,KACjF2hN,EAAE99N,EAAIk/N,GAAS1qO,GACZ6qE,IAAMy+J,EAAE1qM,EAAIwrM,GAAWd,EAAEtgO,KAGZhJ,EAAEqkB,MAAMouO,MACxBnpB,EAAE99N,EAAIk/N,GAAS1qO,GACfspO,EAAEtgO,EAAI4gO,GAAYc,IAAU1qO,EAAE5D,QAAQs2P,GAAY,IAAIruO,MAAMmuO,KAAW,IAAIrmP,KAAK,IAAI/P,QAAQ4sO,GAAS,MAClGn+J,IAAMy+J,EAAE1qM,EAAIqzN,GAAWb,GAAS9nB,EAAE99N,MAI/B89N,GAjBO,KAqBf,IAAIupB,GAAQ,iDACRC,GAAQ,6BACRC,GAAQ,8BAiBZxb,GAAKyb,IAAM,oFACX,IAAIC,GAAe,mBACnB,SAASC,GAAcC,EAAK/iC,GAC3B,IAAIA,EAAKgjC,QAAS,MAAO,GACzB,IAAI/nP,EAAI,CAACy9N,IACTz9N,EAAEA,EAAExJ,QAAW+pO,GAAU,MAAO,KAAM,CACrCynB,MAAOrrM,GAAMsrM,KAAK,GAClBzvP,MAAOsvP,EAAII,MACXC,YAAaL,EAAIM,SAElB,IAAI,IAAI1xP,EAAI,EAAGA,GAAKoxP,EAAItxP,SAAUE,EAAK,GAAa,MAAVoxP,EAAIpxP,GAAP,CACtC,IAAIpB,EAAIwyP,EAAIpxP,GACR2xP,EAAQ,OACT/yP,EAAE6K,EAAGkoP,GAAS/yP,EAAE6K,GAElBkoP,GAAS,KACL/yP,EAAEqI,IAAGrI,EAAEqI,EAAI,IACZrI,EAAEqI,EAAEqb,MAAM4uO,MAAeS,GAAS,yBACrCA,GAAS,IAAMzpB,GAAUtpO,EAAEqI,GAAK,QAEjC0qP,GAAS,QACTroP,EAAEA,EAAExJ,QAAW6xP,EAGhB,OADGroP,EAAExJ,OAAO,IAAIwJ,EAAEA,EAAExJ,QAAW,SAAWwJ,EAAE,GAAGA,EAAE,GAAGjP,QAAQ,KAAK,MAC1DiP,EAAEc,KAAK,IAyCf,IAAIwnP,GA77IJ,SAAuBjsO,EAAKrc,GAE3B,IAAIonO,GAAQ,EAGZ,OAH2B,MAALpnO,IAAaonO,GAAQ,EAAMpnO,EAAI2wN,GAAQ,GAAG,EAAEt0M,EAAI1e,EAAEnH,SACxEwJ,EAAEwsN,YAAY,EAAE,GAChB2a,GAAmB9qN,EAAI1e,EAAGqC,GACnBonO,EAAQpnO,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,GA07IlC,SAASuoP,GAAcT,GACtB,IAAI9jB,EAAKP,KACTM,GAAaC,EAAI,cAXlB,SAA2B8jB,EAAK9nP,GAI/B,OAHIA,IAAGA,EAAI2wN,GAAQ,IACnB3wN,EAAEwsN,YAAY,EAAGs7B,EAAII,OACrBloP,EAAEwsN,YAAY,EAAGs7B,EAAIM,QACdpoP,EAOyBwoP,CAAkBV,IAClD,IAAI,IAAIpxP,EAAI,EAAGA,EAAIoxP,EAAItxP,SAAUE,EAAGqtO,GAAaC,EAAI,aAAcskB,GAAiBR,EAAIpxP,KAGxF,OADAqtO,GAAaC,EAAI,aACVA,EAAG/vO,MAEX,SAASw0P,GAASpsO,GACjB,GAAsB,qBAAZ0jM,QAAyB,OAAOA,QAAQ9M,MAAMiP,OAAOpC,EAAczjM,GAE7E,IADA,IAAIrc,EAAI,GAAIsiO,EAAKjmN,EAAIC,MAAM,IACnB5lB,EAAI,EAAGA,EAAI4rO,EAAG9rO,SAAUE,EAAGsJ,EAAEtJ,GAAK4rO,EAAG5rO,GAAG4kK,WAAW,GAC3D,OAAOt7J,EAIR,SAAS0oP,GAAoB/7B,EAAMn2N,GAClC,IAAIwJ,EAAI,GAIR,OAHAA,EAAE2oP,MAAQh8B,EAAKE,WAAW,GAC1B7sN,EAAE4oP,MAAQj8B,EAAKE,WAAW,GACxBr2N,GAAU,IAAGm2N,EAAKxgN,GAAK3V,EAAS,GAC3BwJ,EAcR,SAAS6oP,GAAwBl8B,GAOhC,IANA,IAAIjhN,EAAMihN,EAAKE,WAAW,GACtB54N,EAAM04N,EAAKxgN,EAAIT,EAAM,EACrB1L,EAAI,GACJyuN,EAAM9B,EAAKE,WAAW,GACtBi8B,EAAQ,GAENr6B,KAAQ,GAAGq6B,EAAMjwP,KAAK,CAAE8E,EAAGgvN,EAAKE,WAAW,GAAIltN,EAAGgtN,EAAKE,WAAW,EAAG,UAG3E,GAFA7sN,EAAEpD,KAAO+vN,EAAKE,WAAW,EAAG,QAC5B7sN,EAAE8oP,MAAQA,EACPn8B,EAAKxgN,GAAKlY,EAAK,MAAM,IAAIzD,MAAM,0BAA4Bm8N,EAAKxgN,EAAI,OAASlY,GAChF,OAAO+L,EAkCR,SAAS+oP,GAAcp8B,GAEtB,IAAIymB,EAdL,SAAmCzmB,GAClC,IAAI3sN,EAAI,GAQR,OAPc2sN,EAAKE,WAAW,GAC9BF,EAAKxgN,GAAK,EACVnM,EAAE4oD,GAAK+jK,EAAKE,WAAW,EAAG,QAC1B7sN,EAAEpD,KAAO+vN,EAAKE,WAAW,EAAG,QAC5B7sN,EAAEm4E,EAAIuwK,GAAoB/7B,EAAM,GAChC3sN,EAAEs4E,EAAIowK,GAAoB/7B,EAAM,GAChC3sN,EAAEw+B,EAAIkqN,GAAoB/7B,EAAM,GACzB3sN,EAKGgpP,CAA0Br8B,GAKpC,GAHAymB,EAAI6V,MAAQt8B,EAAKE,WAAW,EAAG,SAC/BumB,EAAI1P,MAAQ/W,EAAKE,WAAW,GAC5BumB,EAAI8V,MAAQv8B,EAAKE,WAAW,GACH,GAAtBF,EAAKE,WAAW,GAAY,MAAM,IAAIr8N,MAAM,uBAC/C,OAAO4iP,EAIR,SAAS+V,GAAuBx8B,EAAMn2N,GACrC,IAAIu2N,EAAMJ,EAAKxgN,EAAI3V,EACfwJ,EAAI,GACRA,EAAEopP,MAA8B,GAArBz8B,EAAKE,WAAW,GAC3BF,EAAKxgN,GAAK,EACVnM,EAAEqpP,MAAQ18B,EAAKE,WAAW,GAC1B,IAAI1gF,GAAQ,EACZ,OAAOnsI,EAAEqpP,OACR,KAAK,MAAQ,KAAK,MAAQ,KAAK,MAAQl9G,EAAoB,IAAXnsI,EAAEopP,MAAgB,MAClE,KAAK,MAAQj9G,EAAoB,GAAXnsI,EAAEopP,MAAgB,MACxC,KAAK,EAAGj9G,EAAoB,IAAXnsI,EAAEopP,OAA4B,GAAXppP,EAAEopP,OAA4B,IAAXppP,EAAEopP,MAAgB,MACzE,QAAS,KAAM,sCAAwCppP,EAAEqpP,MAE1D,IAAIl9G,EAAO,MAAM,IAAI37I,MAAM,mCAO3B,OANAwP,EAAEspP,UAAY38B,EAAKE,WAAW,GAC9B7sN,EAAEupP,QAAU58B,EAAKE,WAAW,GAC5B7sN,EAAEwpP,aAAe78B,EAAKE,WAAW,GACjCF,EAAKxgN,GAAK,EACVnM,EAAEypP,QAAU98B,EAAKE,WAAYE,EAAIJ,EAAKxgN,GAAI,EAAG,WAC7CwgN,EAAKxgN,EAAI4gN,EACF/sN,EAIR,SAAS0pP,GAAyB/8B,EAAMn2N,GACvC,IAAIwJ,EAAI,GAAI+sN,EAAMJ,EAAKxgN,EAAI3V,EAM3B,OALAm2N,EAAKxgN,GAAK,EACVnM,EAAE2pP,KAAOh9B,EAAK3pN,MAAM2pN,EAAKxgN,EAAGwgN,EAAKxgN,EAAE,IAAKwgN,EAAKxgN,GAAK,GAClDnM,EAAE4pP,SAAWj9B,EAAK3pN,MAAM2pN,EAAKxgN,EAAGwgN,EAAKxgN,EAAE,IAAKwgN,EAAKxgN,GAAK,GACzCwgN,EAAKE,WAAW,GAC7B7sN,EAAE6pP,aAAel9B,EAAK3pN,MAAM2pN,EAAKxgN,EAAG4gN,GAAMJ,EAAKxgN,EAAI4gN,EAC5C/sN,EAeR,SAAS8pP,GAAiBn9B,GAEzB,GAAqB,KAAT,GADAA,EAAKE,WAAW,IACD,MAAM,IAAIr8N,MAAM,2BAC3C,IAAIs8N,EAAKH,EAAKE,WAAW,GAIzB,MAAO,CAAElvN,EAAE,MAAO41B,EAFR41N,GAAuBx8B,EAAMG,GAEdntN,EADV+pP,GAAyB/8B,EAAMA,EAAKn2N,OAASm2N,EAAKxgN,IAIlE,SAAS49O,KAAqB,MAAM,IAAIv5P,MAAM,mDAE9C,SAASw5P,GAAiBr9B,GACzB,IAAIs9B,EAAU,CAAC,WAAW,YAAY,UAAU,WAAW,kBAAkB,iBAAiB,gBAAgB,aAC9Gt9B,EAAKxgN,GAAG,EACR,IAAI+9O,EAAMv9B,EAAKE,WAAWF,EAAKn2N,OAASm2N,EAAKxgN,EAAG,QAC5CnM,EAAI,GAiBR,OAhBAkqP,EAAIn5P,QAAQ4sO,IAAU,SAAmBhpO,GACxC,IAAIC,EAAIkpO,GAAYnpO,GACpB,OAAOypO,GAASxpO,EAAE,KACjB,IAAK,QAAS,MACd,IAAK,cAAe,IAAK,gBAAiB,MAC1C,IAAK,WAAYq1P,EAAQnoP,SAAQ,SAASimB,GAAK/nB,EAAE+nB,GAAKnzB,EAAEmzB,MAAQ,MAChE,IAAK,iBAAkB/nB,EAAEmqP,iBAAmBv1P,EAAEu1P,iBAAkBnqP,EAAEoqP,mBAAqBx1P,EAAEw1P,mBAAoB,MAC7G,IAAK,kBAAmB,IAAK,iBAAkBpqP,EAAEqqP,KAAO,GAAI,MAC5D,IAAK,mBAAoB,MAEzB,IAAK,gBAAiBrqP,EAAEsqP,IAAM11P,EAAE01P,IAAK,MACrC,IAAK,kBAAmB,MACxB,IAAK,gBAAiBtqP,EAAEqqP,KAAKxxP,KAAKjE,GAAI,MACtC,QAAS,MAAMA,EAAE,OAGZoL,EA2BR,SAASuqP,GAAsCC,GAC9C,IAAuBC,EAEe/zP,EAFlCkzP,EAAW,EACXc,EAAkBjC,GAAS+B,GAC3B9+O,EAAMg/O,EAAgBl0P,OAAS,EAInC,KAFAi0P,EAAgBznC,EAAYt3M,IACd,GAAKg/O,EAAgBl0P,OAC/BE,EAAI,EAAGA,GAAKgV,IAAOhV,EAAG+zP,EAAc/zP,GAAKg0P,EAAgBh0P,EAAE,GAC/D,IAAIA,EAAIgV,EAAI,EAAGhV,GAAK,IAAKA,EAKxBkzP,IAHyC,KAAZ,MAAXA,GAAiC,EAAI,GACtCA,GAAY,EAAK,OAFnBa,EAAc/zP,GAM9B,OAAkB,MAAXkzP,EAIR,IAAIe,GAAiC,WACpC,IAAIC,EAAW,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAChGC,EAAc,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAC/HC,EAAY,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,OAE70BC,EAAS,SAASC,EAAOC,GAAS,OADsB,MAAzCC,EAC8BF,EAAQC,GADhB,EAAW,IAALC,GAArC,IAASA,GAcnB,OAAO,SAASC,GAKf,IAJA,IAKIC,EAAMC,EAAkBC,EALxBd,EAAW/B,GAAS0C,GACpBI,EAdsB,SAASf,GAGnC,IAFA,IAAIe,EAASV,EAAYL,EAASh0P,OAAS,GACvCg1P,EAAiB,IACb90P,EAAI8zP,EAASh0P,OAAO,EAAGE,GAAK,IAAKA,EAExC,IADA,IAAI+0P,EAAOjB,EAAS9zP,GACZ4jC,EAAI,EAAQ,GAALA,IAAUA,EACd,GAAPmxN,IAAaF,GAAUT,EAAUU,IACpCC,GAAQ,IAAKD,EAGf,OAAOD,EAIMG,CAAqBlB,GAC9BmB,EAAQnB,EAASh0P,OACjBo1P,EAAmB5oC,EAAY,IAC3BtsN,EAAI,EAAQ,IAALA,IAAWA,EAAGk1P,EAAiBl1P,GAAK,EAUnD,IARmB,KAAP,EAARi1P,KACHP,EAAOG,GAAU,EACjBK,EAAiBD,GAASZ,EAAOH,EAAS,GAAIQ,KAC5CO,EACFP,EAAgB,IAATG,EACPF,EAAmBb,EAASA,EAASh0P,OAAS,GAC9Co1P,EAAiBD,GAASZ,EAAOM,EAAkBD,IAE9CO,EAAQ,GAEbP,EAAOG,GAAU,EACjBK,IAFED,GAEwBZ,EAAOP,EAASmB,GAAQP,GAElDA,EAAgB,IAATG,EACPK,IAFED,GAEwBZ,EAAOP,EAASmB,GAAQP,GAInD,IAFAO,EAAQ,GACRL,EAAW,GAAKd,EAASh0P,OACnB80P,EAAW,GAChBF,EAAOG,GAAU,EACjBK,EAAiBD,GAASZ,EAAOH,EAASU,GAAWF,KAEnDE,EACFF,EAAgB,IAATG,EACPK,IAHED,GAGwBZ,EAAOP,EAASmB,GAAQP,KAChDO,IACAL,EAEH,OAAOM,GArD4B,GAyEjCC,GAA0B,SAASV,GACtC,IAAIW,EAAgB,EAAGC,EAAWpB,GAA8BQ,GAChE,OAAO,SAASa,GACf,IAAI/zK,EAlB2B,SAASkzK,EAAUa,EAAMF,EAAeC,EAAU9zK,GAIlF,IAAI0zK,EAAOM,EACX,IAHIh0K,IAAGA,EAAI+zK,GACPD,IAAUA,EAAWpB,GAA8BQ,IAEnDQ,EAAQ,EAAGA,GAASK,EAAKx1P,SAAUm1P,EACtCM,EAAQD,EAAKL,GAEbM,EAAoC,MADpCA,GAASF,EAASD,KACD,EAAMG,GAAO,GAC9Bh0K,EAAE0zK,GAASM,IACTH,EAEH,MAAO,CAAC7zK,EAAG6zK,EAAeC,GAMjBG,CAA2B,GAAIF,EAAMF,EAAeC,GAE5D,OADAD,EAAgB7zK,EAAE,GACXA,EAAE,KAcX,SAASk0K,GAAqBx/B,EAAMn2N,EAAQ8rO,GAC3C,IAAItiO,EAAIsiO,GAAM,GAGd,OAHkBtiO,EAAEosP,KAAOz/B,EAAKE,WAAW,GAAIF,EAAKxgN,GAAK,EAC3C,IAAXnM,EAAEosP,KAAYpsP,EAAEgsP,KA5HpB,SAAyBr/B,GACxB,IAAI3sN,EAAI,GACJulP,EAAOvlP,EAAEqsP,sBAAwB3D,GAAoB/7B,EAAM,GAC/D,GAAiB,GAAd44B,EAAKoD,OAA4B,GAAdpD,EAAKqD,MAAY,KAAM,6BAA+BrD,EAAKoD,MAAQ,MAAQpD,EAAKqD,MAItG,OAHA5oP,EAAE2pP,KAAOh9B,EAAKE,WAAW,IACzB7sN,EAAEssP,kBAAoB3/B,EAAKE,WAAW,IACtC7sN,EAAEusP,sBAAwB5/B,EAAKE,WAAW,IACnC7sN,EAqHmBwsP,CAAgB7/B,GACrC3sN,EAAEgsP,KAzIR,SAA+Br/B,EAAMn2N,GACpC,IAAIwJ,EAAI,GACJulP,EAAOvlP,EAAEqsP,sBAAwB3D,GAAoB/7B,EAAM,GAC/D,GADmEn2N,GAAU,EAC5D,GAAd+uP,EAAKqD,MAAY,MAAM,IAAIp4P,MAAM,oCAAsC+0P,EAAKqD,OAC/E,GAAGrD,EAAKoD,MAAQ,GAAKpD,EAAKoD,MAAQ,EAAG,MAAM,IAAIn4P,MAAM,oCAAsC+0P,EAAKoD,OAChG3oP,EAAEopP,MAAQz8B,EAAKE,WAAW,GAAIr2N,GAAU,EACxC,IAAIs2N,EAAKH,EAAKE,WAAW,GAGzB,OAH6Br2N,GAAU,EACvCwJ,EAAEysP,iBAAmBtD,GAAuBx8B,EAAMG,GAAKt2N,GAAUs2N,EACjE9sN,EAAE0sP,mBAAqBhD,GAAyB/8B,EAAMn2N,GAC/CwJ,EAgIO2sP,CAAsBhgC,EAAMn2N,GACnCwJ,EAUR,IAAI4sP,GAAO,WACV,SAASC,EAAar6P,EAAGuyN,GACxB,OAAOA,EAAKnpN,MACX,IAAK,SAAU,OAAOkxP,EAAiB7qC,EAAOD,OAAOxvN,GAAIuyN,GACzD,IAAK,SAAU,OAAO+nC,EAAiBt6P,EAAGuyN,GAC1C,IAAK,SAAU,OAAO+nC,EAAiBt6P,EAAEnC,SAAS,UAAW00N,GAC7D,IAAK,QAAU,OAAO+nC,EAAiB7wB,GAAOzpO,GAAIuyN,GAEnD,MAAM,IAAIv0N,MAAM,qBAAuBu0N,EAAKnpN,MAG7C,SAASkxP,EAAiBzwO,EAAK0oM,GAC9B,IACIlwL,GADIkwL,GAAQ,IACLqhB,MAAS,GAAO,GAI3B,IAAI/pN,EAAIrD,MAAM,WAAY,MAAM,IAAIxoB,MAAM,qBAG1C,OADAqkC,EAAG,QAAU0wM,GALA,CAACjwO,EAAG,CAAC2W,EAAE,EAAG9L,EAAE,GAAIzB,EAAG,CAACuN,EAAE,EAAG9L,EAAE,KAMjC00B,EA0BR,MAAO,CACNmnN,YAxBD,SAAyBxpP,EAAGuyN,GAAQ,OAAO+gB,GAAkB+mB,EAAar6P,EAAGuyN,GAAOA,IAyBnFk3B,SAAU4Q,EACV3Q,WAvBD,SAAsBrnN,GAIrB,IAHA,IACuCsvM,EADnCnkO,EAAI,CAAC,iBACLG,EAAIslO,GAAkB5wM,EAAG,SACzBuxM,EAAQ10O,MAAMD,QAAQojC,GAClBsjD,EAAIh4E,EAAE7K,EAAE6K,EAAGg4E,GAAKh4E,EAAEzB,EAAEyB,IAAKg4E,EAAG,CACnCn4E,EAAEnH,KAAK,uBACP,IAAI,IAAI2+E,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAAGx3E,EAAEnH,KAAK,WAAa2+E,EAAE,IAE1D,IADAx3E,EAAEnH,KAAK,iBACH2+E,EAAIr3E,EAAE7K,EAAE2W,EAAGurE,GAAKr3E,EAAEzB,EAAEuN,IAAKurE,EAAG,CAC/B,IAAIirK,EAAQhe,GAAY,CAACtkO,EAAEg4E,EAAElsE,EAAEurE,KAC/B2sJ,EAAOiC,GAASvxM,EAAGsjD,IAAI,IAAIX,GAAI3iD,EAAG4tN,MACZ,MAAVte,EAAKxkO,GAAewkO,EAAKllO,IAAKklO,EAAKzsJ,KAC/C13E,EAAEnH,KAAK,KAAOsrO,EAAKprM,IAAM8sM,GAAY1B,GAAOA,EAAKprM,KACjD/4B,EAAEnH,KAAK,WAERmH,EAAEnH,KAAK,sBAER,OAAOmH,EAAEc,KAAK,IAAM,MA3CX,GAwDX,SAASisP,GAAQn1M,GAChB,IAAI,IAAIlhD,EAAE,EAAEsJ,EAAE,EAAM,GAAHtJ,IAAQA,EAAGsJ,EAAM,IAAFA,GAAS43C,EAAIlhD,GAAG,IAAI,IAAIkhD,EAAIlhD,GAAG,EAAE,EAAEkhD,EAAIlhD,IACvE,OAAOsJ,EAAE3P,SAAS,IAAIksB,cAAcvZ,MAAM,GAqC3C,SAASgqP,GAASt1M,EAAKoyL,GACtB,GAAY,IAATA,EAAY,OAAOpyL,EACtB,IAAIu+G,EApCL,SAAiBr+G,GAChB,IAAIugC,EAAIvgC,EAAI,GAAG,IAAK+/B,EAAI//B,EAAI,GAAG,IAAK2/B,EAAE3/B,EAAI,GAAG,IACzCpkB,EAAI5hC,KAAKM,IAAIimF,EAAGR,EAAGJ,GAAIt3E,EAAIrO,KAAKK,IAAIkmF,EAAGR,EAAGJ,GAAIC,EAAIhkD,EAAIvzB,EAC1D,GAAS,IAANu3E,EAAS,MAAO,CAAC,EAAG,EAAGW,GAE1B,IAAYC,EAAR60K,EAAK,EAAUC,EAAM15N,EAAIvzB,EAE7B,OADAm4E,EAAIZ,GAAK01K,EAAK,EAAI,EAAIA,EAAKA,GACpB15N,GACN,KAAK2kD,EAAG80K,IAAOt1K,EAAIJ,GAAKC,EAAI,GAAG,EAAG,MAClC,KAAKG,EAAGs1K,GAAO11K,EAAIY,GAAKX,EAAI,EAAI,MAChC,KAAKD,EAAG01K,GAAO90K,EAAIR,GAAKH,EAAI,EAE7B,MAAO,CAACy1K,EAAK,EAAG70K,EAAG80K,EAAK,GAwBdC,CA7CX,SAAiB55N,GAChB,IAAIvzB,EAAIuzB,EAAEvwB,MAAa,MAAPuwB,EAAE,GAAS,EAAE,GAAGvwB,MAAM,EAAE,GACxC,MAAO,CAACowB,SAASpzB,EAAEgD,MAAM,EAAE,GAAG,IAAIowB,SAASpzB,EAAEgD,MAAM,EAAE,GAAG,IAAIowB,SAASpzB,EAAEgD,MAAM,EAAE,GAAG,KA2ChEoqP,CAAQ11M,IAG1B,OAFcu+G,EAAI,GAAd6zE,EAAO,EAAY7zE,EAAI,IAAM,EAAI6zE,GACvB,GAAK,EAAI7zE,EAAI,KAAO,EAAI6zE,GAC/BijB,GAxBR,SAAiB92F,GAChB,IAIIz9E,EAJAZ,EAAIq+E,EAAI,GAAI79E,EAAI69E,EAAI,GAAI3nJ,EAAI2nJ,EAAI,GAChCz+E,EAAQ,EAAJY,GAAS9pE,EAAI,GAAMA,EAAI,EAAIA,GAAIrO,EAAIqO,EAAIkpE,EAAE,EAC7C5/B,EAAM,CAAC33C,EAAEA,EAAEA,GAAIotP,EAAK,EAAEz1K,EAG1B,GAAS,IAANQ,EAAS,OAAU,EAAHi1K,GAClB,KAAK,EAAG,KAAK,EAAG70K,EAAIhB,EAAI61K,EAAIz1M,EAAI,IAAM4/B,EAAG5/B,EAAI,IAAM4gC,EAAG,MACtD,KAAK,EAAGA,EAAIhB,GAAK,EAAI61K,GAAOz1M,EAAI,IAAM4gC,EAAG5gC,EAAI,IAAM4/B,EAAG,MACtD,KAAK,EAAGgB,EAAIhB,GAAK61K,EAAK,GAAMz1M,EAAI,IAAM4/B,EAAG5/B,EAAI,IAAM4gC,EAAG,MACtD,KAAK,EAAGA,EAAIhB,GAAK,EAAI61K,GAAOz1M,EAAI,IAAM4gC,EAAG5gC,EAAI,IAAM4/B,EAAG,MACtD,KAAK,EAAGgB,EAAIhB,GAAK61K,EAAK,GAAMz1M,EAAI,IAAM4/B,EAAG5/B,EAAI,IAAM4gC,EAAG,MACtD,KAAK,EAAGA,EAAIhB,GAAK,EAAI61K,GAAOz1M,EAAI,IAAM4gC,EAAG5gC,EAAI,IAAM4/B,EAEpD,IAAI,IAAI9gF,EAAI,EAAQ,GAALA,IAAUA,EAAGkhD,EAAIlhD,GAAK9E,KAAKQ,MAAa,IAAPwlD,EAAIlhD,IACpD,OAAOkhD,EASQ01M,CAAQr3F,IAKxB,IAA4Cs3F,GAA9B,EACd,SAASlL,GAAS1rP,GAAS,OAAO/E,KAAKU,OAAQqE,EAAS/E,KAAKQ,MAAM,IAAIm7P,IAAM,KAAOA,IACpF,SAASjL,GAAQkL,GAAM,OAAQ57P,KAAKU,OAAOk7P,EAAK,GAAGD,GAAM,IAAM,IAAM,IACrE,SAASE,GAAWC,GAAO,OAAQ97P,KAAKQ,OAAOs7P,EAAMH,GAAM,GAAGA,GAAI,KAAM,IAGxE,SAASI,GAAYC,GAAS,OAAOH,GAAWnL,GAAQD,GAASuL,KAEjE,SAASC,GAAcD,GACtB,IAAIxtK,EAAQxuF,KAAK6B,IAAIm6P,EAAQD,GAAYC,IAASE,EAAOP,GACzD,GAAGntK,EAAQ,KAAO,IAAImtK,GAVkB,EAULA,GAVT,KAUwBA,GAAQ37P,KAAK6B,IAAIm6P,EAAQD,GAAYC,KAAWxtK,IAASA,EAAQxuF,KAAK6B,IAAIm6P,EAAQD,GAAYC,IAASE,EAAOP,IAChKA,GAAMO,EAcP,SAAStM,GAAYuM,GACjBA,EAAKp3P,OACPo3P,EAAK3L,IAAMC,GAAS0L,EAAKp3P,OACzBo3P,EAAKxM,IAAMe,GAAQyL,EAAK3L,KACxB2L,EAAKR,IAAMA,IACFQ,EAAK3L,KACd2L,EAAKxM,IAAMe,GAAQyL,EAAK3L,KACxB2L,EAAKp3P,MAAQ82P,GAAWM,EAAKxM,KAC7BwM,EAAKR,IAAMA,IACiB,iBAAZQ,EAAKxM,MACrBwM,EAAKp3P,MAAQ82P,GAAWM,EAAKxM,KAC7BwM,EAAK3L,IAAMC,GAAS0L,EAAKp3P,OACzBo3P,EAAKR,IAAMA,IAETQ,EAAKC,oBAAoBD,EAAKC,YAIlC,SAASzL,GAAMiL,GAAM,OAAY,GAALA,EADd,GAEd,SAAS7L,GAAM1oP,GAAM,OAFP,GAEcA,EAAW,GAGvC,IAAIg1P,GAAqB,CACxB,KAAQ,OACR,MAAS,QACT,OAAU,aACV,OAAU,WACV,OAAU,YACV,WAAc,iBACd,WAAc,eACd,kBAAqB,WACrB,WAAc,SACd,UAAa,WACb,eAAkB,cAClB,eAAkB,kBAClB,eAAkB,gBAClB,sBAAyB,YACzB,cAAiB,aAgTdC,GAAc,CAAE,WAAY,SAAU,SAAU,WAAY,QAC5DC,GAAc,CAAE,iBAAkB,cAAe,YAAa,YAAa,oBAAqB,kBAAmB,cAAe,eAqElIC,GAAgB,WACpB,IAAIC,EAAc,wDACdC,EAAc,wDACdC,EAAa,oDACbC,EAAa,oDACbC,EAAe,wDAEnB,OAAO,SAAuB/yP,EAAMpC,EAAQyrN,GAC3C,IAIIpnN,EAJAihD,EAAS,GACb,OAAIljD,IAMAiC,GALJjC,EAAOA,EAAK3K,QAAQ,sBAAsB,IAAIA,QAAQ,+BAA+B,KAK1EioB,MAAMq1O,KA5HlB,SAAuB1wP,EAAGihD,EAAQmmK,GACjCnmK,EAAO8vM,UAAY,GAEnB,IADA,IAAI3mO,EAAsBnmB,EAAK8hN,EAAI0H,QAC3B10N,EAAE,EAAGA,EAAIqxB,EAAEvxB,SAAUE,EAAGkoD,EAAO8vM,UAAU3mO,EAAErxB,IAAMgtN,EAAI0H,OAAOrjM,EAAErxB,IACtE,IAAIuJ,EAAItC,EAAE,GAAGqb,MAAM2kN,IACnB,GAAI19N,EACJ,IAAIvJ,EAAE,EAAGA,EAAIuJ,EAAEzJ,SAAUE,EAAG,CAC3B,IAAI9B,EAAIkpO,GAAY79N,EAAEvJ,IACtB,OAAO0nO,GAASxpO,EAAE,KACjB,IAAK,WAAY,IAAK,aAAc,IAAK,aAAc,IAAK,YAAa,MACzE,IAAK,UACJ,IAAIqK,EAAEs/N,GAAYc,GAASzqO,EAAE+5P,aAAcr0N,EAAElH,SAASx+B,EAAEgxO,SAAS,IAEjE,GADAhnL,EAAO8vM,UAAUp0N,GAAKr7B,EACnBq7B,EAAE,EAAG,CACP,GAAGA,EAAI,IAAO,CACb,IAAIA,EAAI,IAAOA,EAAI,IAAqC,MAAvBskB,EAAO8vM,UAAUp0N,KAAvBA,GAC3BskB,EAAO8vM,UAAUp0N,GAAKr7B,EAEvBykN,EAAI55C,KAAK7qK,EAAEq7B,GAEX,MACF,IAAK,YAAa,MAClB,QAAS,GAAGyqL,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,gBAAkBoE,EAAE,GAAK,iBAsGjCg6P,CAAcjxP,EAAGihD,EAAQmmK,IAGrDpnN,EAAEjC,EAAKsd,MAAMw1O,KAvPlB,SAAqB7wP,EAAGihD,EAAQtlD,EAAQyrN,GACvCnmK,EAAOiwM,MAAQ,GACf,IAAI7uM,EAAO,GACPwuJ,GAAO,GACV7wM,EAAE,GAAGqb,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GACpB,OAAOypO,GAASxpO,EAAE,KACjB,IAAK,SAAU,IAAK,UAAW,IAAK,WAAY,MAGhD,IAAK,QAAS,IAAK,SAAU,MAC7B,IAAK,UAAW,IAAK,UACpBgqD,EAAOiwM,MAAMh2P,KAAKmnD,GAClBA,EAAO,GACP,MAGD,IAAK,QAAYprD,EAAE61B,MAAKu1B,EAAKpjD,KAAOyiO,GAASzqO,EAAE61B,MAAM,MACrD,IAAK,UAAW,IAAK,UAAW,MAGhC,IAAK,KAAMu1B,EAAK8uM,KAAOl6P,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MACxD,IAAK,OAAQu1B,EAAK8uM,KAAO,EAAG,MAG5B,IAAK,KAAM9uM,EAAK+uM,OAASn6P,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MAC1D,IAAK,OAAQu1B,EAAK+uM,OAAS,EAAG,MAG9B,IAAK,KACJ,OAAOn6P,EAAE61B,KACR,IAAK,OAAQu1B,EAAKgvM,UAAY,EAAM,MACpC,IAAK,SAAUhvM,EAAKgvM,UAAY,EAAM,MACtC,IAAK,SAAUhvM,EAAKgvM,UAAY,EAAM,MACtC,IAAK,mBAAoBhvM,EAAKgvM,UAAY,GAAM,MAChD,IAAK,mBAAoBhvM,EAAKgvM,UAAY,GACzC,MACH,IAAK,OAAQhvM,EAAKgvM,UAAY,EAAG,MAGjC,IAAK,UAAWhvM,EAAKqmM,OAASzxP,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MAC/D,IAAK,YAAau1B,EAAKqmM,OAAS,EAAG,MAGnC,IAAK,WAAYrmM,EAAK6yB,QAAUj+E,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MACjE,IAAK,aAAcu1B,EAAK6yB,QAAU,EAAG,MAGrC,IAAK,UAAW7yB,EAAKomM,OAASxxP,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MAC/D,IAAK,YAAau1B,EAAKomM,OAAS,EAAG,MAGnC,IAAK,YAAapmM,EAAKivM,SAAWr6P,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MACnE,IAAK,cAAeu1B,EAAKivM,SAAW,EAAG,MAGvC,IAAK,UAAWjvM,EAAK/3B,OAASrzB,EAAE61B,IAAM20M,GAAaxqO,EAAE61B,KAAO,EAAG,MAC/D,IAAK,YAAau1B,EAAK/3B,OAAS,EAAG,MAGnC,IAAK,MAAUrzB,EAAE61B,MAAKu1B,EAAK8sK,IAAMl4N,EAAE61B,KAAK,MACxC,IAAK,QAAS,IAAK,QAAS,MAG5B,IAAK,aAAiB71B,EAAE61B,MAAKu1B,EAAKkvM,UAAYt6P,EAAE61B,KAAK,MACrD,IAAK,eAAgB,IAAK,eAAgB,MAG1C,IAAK,UAAc71B,EAAE61B,MAAKu1B,EAAKumM,OAASnzN,SAASx+B,EAAE61B,IAAI,KAAK,MAC5D,IAAK,YAAa,IAAK,YAAa,MAGpC,IAAK,UAAc71B,EAAE61B,MAAKu1B,EAAKmvM,OAASv6P,EAAE61B,KAAK,MAC/C,IAAK,YAAa,IAAK,YAAa,MAGpC,IAAK,WACJ,GAAY,KAAT71B,EAAE61B,IAAY,MACjB71B,EAAEunP,SAAWl8B,EAAM7sL,SAASx+B,EAAE61B,IAAK,KACnC,MAGD,IAAK,SAIJ,GAHIu1B,EAAK5I,QAAO4I,EAAK5I,MAAQ,IAC1BxiD,EAAEg1O,OAAM5pL,EAAK5I,MAAMwyL,KAAOxK,GAAaxqO,EAAEg1O,OAEzCh1O,EAAEgjD,IAAKoI,EAAK5I,MAAMQ,IAAMhjD,EAAEgjD,IAAI50C,OAAO,QACnC,GAAGpO,EAAE89C,QAAS,CAClBsN,EAAK5I,MAAMp1C,MAAQoxB,SAASx+B,EAAE89C,QAAS,IACvC,IAAI08M,EAAMxkB,GAAO5qL,EAAK5I,MAAMp1C,OAE5B,GADuB,IAApBg+C,EAAK5I,MAAMp1C,QAAaotP,EAAMxkB,GAAO,KACpCwkB,EAAK,MAAM,IAAI5+P,MAAMmE,GACzBqrD,EAAK5I,MAAMQ,IAAMw3M,EAAI,GAAG/+P,SAAS,IAAM++P,EAAI,GAAG/+P,SAAS,IAAM++P,EAAI,GAAG/+P,SAAS,SACpEuE,EAAE0/I,QACXt0F,EAAK5I,MAAMk9F,MAAQlhH,SAASx+B,EAAE0/I,MAAO,IAClC1/I,EAAEk1O,OAAM9pL,EAAK5I,MAAM0yL,KAAO3mN,WAAWvuB,EAAEk1O,OACvCl1O,EAAE0/I,OAASh7I,EAAO+1P,eAAiB/1P,EAAO+1P,cAAcC,YAC1DtvM,EAAK5I,MAAMQ,IAAMo1M,GAAS1zP,EAAO+1P,cAAcC,UAAUtvM,EAAK5I,MAAMk9F,OAAO18F,IAAKoI,EAAK5I,MAAM0yL,MAAQ,KAIrG,MACD,IAAK,WAAY,IAAK,WAAY,MAGlC,IAAK,oBAAqBt7B,GAAO,EAAM,MACvC,IAAK,sBAAuBA,GAAO,EAAO,MAG1C,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQA,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGuW,GAAQA,EAAKob,MACpB3xB,EAAM,MAAM,IAAIh+M,MAAM,gBAAkBoE,EAAE,GAAK,iBAsIvB26P,CAAY5xP,EAAGihD,EAAQtlD,EAAQyrN,IAG1DpnN,EAAEjC,EAAKsd,MAAMu1O,KA5TlB,SAAqB5wP,EAAGihD,EAAQtlD,EAAQyrN,GACvCnmK,EAAO4wM,MAAQ,GACf,IAAIz5M,EAAO,GACPy4J,GAAO,GACV7wM,EAAE,GAAGqb,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GACpB,OAAOypO,GAASxpO,EAAE,KACjB,IAAK,SAAU,IAAK,UAAW,IAAK,WAAY,MAGhD,IAAK,SAAU,IAAK,QAAS,IAAK,UACjCmhD,EAAO,GAAI6I,EAAO4wM,MAAM32P,KAAKk9C,GAAO,MACrC,IAAK,UAGL,IAAK,iBAAkB,MACvB,IAAK,gBACL,IAAK,kBAAmB6I,EAAO4wM,MAAM32P,KAAKk9C,GAAOA,EAAO,GAAI,MAG5D,IAAK,eAAgB,IAAK,gBACtBnhD,EAAE66P,cAAa15M,EAAK05M,YAAc76P,EAAE66P,aACvC,MACD,IAAK,iBAAkB,IAAK,iBAAkB,MAG9C,IAAK,WACA15M,EAAK25M,UAAS35M,EAAK25M,QAAU,IAC9B96P,EAAE89C,UAASqD,EAAK25M,QAAQh9M,QAAUtf,SAASx+B,EAAE89C,QAAS,KACtD99C,EAAE0/I,QAAOv+F,EAAK25M,QAAQp7G,MAAQlhH,SAASx+B,EAAE0/I,MAAO,KAChD1/I,EAAEk1O,OAAM/zL,EAAK25M,QAAQ5lB,KAAO3mN,WAAWvuB,EAAEk1O,OAEzCl1O,EAAEgjD,MAAK7B,EAAK25M,QAAQ93M,IAAMhjD,EAAEgjD,IAAI50C,OAAO,IAC1C,MACD,IAAK,aAAc,IAAK,aAAc,MAGtC,IAAK,WACA+yC,EAAK45M,UAAS55M,EAAK45M,QAAU,IAC9B/6P,EAAE0/I,QAAOv+F,EAAK45M,QAAQr7G,MAAQlhH,SAASx+B,EAAE0/I,MAAO,KAChD1/I,EAAEk1O,OAAM/zL,EAAK45M,QAAQ7lB,KAAO3mN,WAAWvuB,EAAEk1O,OAEhC,MAATl1O,EAAEgjD,MAAa7B,EAAK45M,QAAQ/3M,IAAMhjD,EAAEgjD,IAAI50C,OAAO,IAClD,MACD,IAAK,aAAc,IAAK,aAAc,MAGtC,IAAK,QAAS,IAAK,UACnB,IAAK,UAAW,MAGhB,IAAK,SAAU,IAAK,WACpB,IAAK,WAAY,MAGjB,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQwrM,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGuW,GAAQA,EAAKob,MACpB3xB,EAAM,MAAM,IAAIh+M,MAAM,gBAAkBoE,EAAE,GAAK,iBAiQvBg7P,CAAYjyP,EAAGihD,EAAQtlD,EAAQyrN,IAG1DpnN,EAAEjC,EAAKsd,MAAMy1O,KA1YlB,SAAuB9wP,EAAGihD,EAAQtlD,EAAQyrN,GACzCnmK,EAAOixM,QAAU,GACjB,IAAIC,EAAS,GACTthD,GAAO,GACV7wM,EAAE,GAAGqb,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GACpB,OAAOypO,GAASxpO,EAAE,KACjB,IAAK,WAAY,IAAK,YAAa,IAAK,aAAc,MAGtD,IAAK,UAAW,IAAK,WAAY,IAAK,YACrCk7P,EAAS,GACNl7P,EAAEm7P,aAAYD,EAAOC,WAAa3wB,GAAaxqO,EAAEm7P,aACjDn7P,EAAEo7P,eAAcF,EAAOE,aAAe5wB,GAAaxqO,EAAEo7P,eACxDpxM,EAAOixM,QAAQh3P,KAAKi3P,GACpB,MACD,IAAK,YAGL,IAAK,UAAW,MAChB,IAAK,QAAS,IAAK,SACnB,IAAK,UAGL,IAAK,WAAY,MACjB,IAAK,SAAU,IAAK,UACpB,IAAK,WAGL,IAAK,SAAU,MACf,IAAK,OAAQ,IAAK,QAClB,IAAK,SAGL,IAAK,YAAa,MAClB,IAAK,UAAW,IAAK,WACrB,IAAK,YAAa,MAGlB,IAAK,YAAa,IAAK,aAAc,IAAK,cAC1C,IAAK,cAAe,MAGpB,IAAK,cAAe,IAAK,eAAgB,IAAK,gBAC9C,IAAK,gBAAiB,MAGtB,IAAK,YAAa,IAAK,aAAc,IAAK,cAC1C,IAAK,cAAe,MAGpB,IAAK,SAAU,IAAK,UAAW,IAAK,WACpC,IAAK,WAAY,MAGjB,IAAK,OAAQ,IAAK,QAAS,IAAK,SAChC,IAAK,SAAU,MAGf,IAAK,SAAU,IAAK,UACnB,MACD,IAAK,WAAY,IAAK,WAAY,MAGlC,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQthD,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGuW,GAAQA,EAAKob,MACpB3xB,EAAM,MAAM,IAAIh+M,MAAM,gBAAkBoE,EAAE,GAAK,mBAsUrBq7P,CAActyP,EAAGihD,EAAQtlD,EAAQyrN,IAM9DpnN,EAAEjC,EAAKsd,MAAMs1O,KAlGlB,SAAuB3wP,EAAGihD,EAAQmmK,GAEjC,IAAImrC,EADJtxM,EAAOuxM,OAAS,GAEhB,IAAI3hD,GAAO,GACV7wM,EAAE,GAAGqb,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GAAI+B,EAAI,EAC5B,OAAO0nO,GAASxpO,EAAE,KACjB,IAAK,WAAY,IAAK,YAAa,IAAK,aAAc,IAAK,aAAc,MAGzE,IAAK,MAAO,IAAK,QAGhB,WAFAs7P,EAAKt7P,GACK,GACN8B,EAAI,EAAGA,EAAIw3P,GAAY13P,SAAUE,EAAMw5P,EAAGhC,GAAYx3P,MACzDw5P,EAAGhC,GAAYx3P,IAAM08B,SAAS88N,EAAGhC,GAAYx3P,IAAK,KACnD,IAAIA,EAAI,EAAGA,EAAIy3P,GAAY33P,SAAUE,EAAMw5P,EAAG/B,GAAYz3P,MACzDw5P,EAAG/B,GAAYz3P,IAAM0oO,GAAa8wB,EAAG/B,GAAYz3P,MAClD,GAAGw5P,EAAGtqB,SAAW,IAChB,IAAIlvO,EAAI,IAAOA,EAAI,KAAQA,EAAG,GAAGkoD,EAAO8vM,UAAUwB,EAAGtqB,WAAahnL,EAAO8vM,UAAUh4P,GAAI,CAAEw5P,EAAGtqB,SAAWlvO,EAAG,MAE3GkoD,EAAOuxM,OAAOt3P,KAAKq3P,GAAK,MACzB,IAAK,QAAS,MAGd,IAAK,aAAc,IAAK,eACvB,IAAIE,EAAY,GACbx7P,EAAEy9H,WAAU+9H,EAAU/9H,SAAWz9H,EAAEy9H,UACnCz9H,EAAE2oM,aAAY6yD,EAAU7yD,WAAa3oM,EAAE2oM,YACrB,MAAlB3oM,EAAEy7P,eAAsBD,EAAUC,aAAez7P,EAAEy7P,cACnDz7P,EAAE07P,SAAQF,EAAUE,OAAS17P,EAAE07P,QAC/B17P,EAAE27P,WAAUH,EAAUG,SAAWnxB,GAAaxqO,EAAE27P,WACnDL,EAAGE,UAAYA,EACf,MACD,IAAK,eAGL,IAAK,cACJ,MACD,IAAK,gBAAiB,IAAK,gBAAiB,MAG5C,IAAK,oBAAqB5hD,GAAO,EAAM,MACvC,IAAK,sBAAuBA,GAAO,EAAO,MAG1C,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQA,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGuW,GAAQA,EAAKob,MACpB3xB,EAAM,MAAM,IAAIh+M,MAAM,gBAAkBoE,EAAE,GAAK,mBAiDtB47P,CAAc7yP,EAAGihD,EAAQmmK,GAOlDnmK,GA5BUA,GATE,GAyChB6xM,GAAkBlwB,GAAU,aAAc,KAAM,CACnD,MAAS5jL,GAAMsrM,KAAK,GACpB,WAAYtrM,GAAMqyL,KAKnB,SAAS0hB,GAAcpZ,EAAIvyB,GAC1B,IAAuChsL,EAAnC/4B,EAAI,CAACy9N,GAAYgzB,IAYrB,OAXGnZ,EAAG5zB,KAAsC,OAA9B3qL,EApIf,SAAuB43N,GACtB,IAAI3wP,EAAI,CAAC,aAIT,MAHA,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM8B,SAAQ,SAAS3B,GACpE,IAAI,IAAIzJ,EAAIyJ,EAAE,GAAIzJ,GAAKyJ,EAAE,KAAMzJ,EAAe,MAATi6P,EAAGj6P,KAAYsJ,EAAEA,EAAExJ,QAAW+pO,GAAU,SAAS,KAAK,CAACqF,SAASlvO,EAAEi4P,WAAW/vB,GAAU+xB,EAAGj6P,UAEhH,IAAbsJ,EAAExJ,OAAqB,IAC1BwJ,EAAEA,EAAExJ,QAAW,aACfwJ,EAAE,GAAKugO,GAAU,UAAW,KAAM,CAAE/nO,MAAMwH,EAAExJ,OAAO,IAAKzF,QAAQ,KAAM,KAC/DiP,EAAEc,KAAK,KA4HI8vP,CAActZ,EAAG5zB,QAAe1jN,EAAEA,EAAExJ,QAAUuiC,GAChE/4B,EAAEA,EAAExJ,QAAW,oIACfwJ,EAAEA,EAAExJ,QAAW,2HACfwJ,EAAEA,EAAExJ,QAAW,0FACfwJ,EAAEA,EAAExJ,QAAW,gGACXuiC,EApEL,SAAuB83N,GACtB,IAAI7wP,EAAI,GAMR,OALAA,EAAEA,EAAExJ,QAAW+pO,GAAU,UAAU,MACnCswB,EAAQ/uP,SAAQ,SAASmK,GACxBjM,EAAEA,EAAExJ,QAAW+pO,GAAU,KAAM,KAAMt0N,MAEtCjM,EAAEA,EAAExJ,QAAW,aACC,IAAbwJ,EAAExJ,OAAqB,IAC1BwJ,EAAE,GAAKugO,GAAU,UAAU,KAAM,CAAC/nO,MAAMwH,EAAExJ,OAAO,IAAIzF,QAAQ,KAAK,KAC3DiP,EAAEc,KAAK,KA2DNgwP,CAAc/rC,EAAK8rC,YAAW7wP,EAAEA,EAAExJ,QAAWuiC,GACrD/4B,EAAEA,EAAExJ,QAAW,uFACfwJ,EAAEA,EAAExJ,QAAW,oBACfwJ,EAAEA,EAAExJ,QAAW,uGAEZwJ,EAAExJ,OAAO,IAAIwJ,EAAEA,EAAExJ,QAAW,gBAAkBwJ,EAAE,GAAGA,EAAE,GAAGjP,QAAQ,KAAK,MACjEiP,EAAEc,KAAK,IAQf,SAASiwP,GAAar6P,EAAGuI,EAAGe,GACvBA,IAAGA,EAAI2wN,GAAQ,EAAI,EAAI1xN,EAAEzI,SAC7BwJ,EAAEwsN,YAAY,EAAG91N,GACjBywO,GAAmBloO,EAAGe,GACtB,IAAIitC,EAAOjtC,EAAExJ,OAASwJ,EAAEmM,EAAKnM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAE/C,OADU,MAAPA,EAAEmM,IAAWnM,EAAEmM,EAAInM,EAAExJ,QACjBy2C,EAgDR,SAAS+jN,GAAchxM,EAAMhgD,GACxBA,IAAGA,EAAI2wN,GAAQ,MACnB3wN,EAAEwsN,YAAY,EAAa,GAAVxsK,EAAK8sK,IA9rKvB,SAAyB9sK,EAAMhgD,GAC1BA,IAAGA,EAAI2wN,GAAQ,IACnB,IAAIsgC,GACFjxM,EAAK+uM,OAAW,EAAO,IACvB/uM,EAAKqmM,OAAW,EAAO,IACvBrmM,EAAK6yB,QAAW,GAAO,IACvB7yB,EAAKomM,OAAW,GAAO,IACvBpmM,EAAKivM,SAAW,GAAO,IACvBjvM,EAAK/3B,OAAW,IAAO,GACzBjoB,EAAEwsN,YAAY,EAAGykC,GACjBjxP,EAAEwsN,YAAY,EAAG,GAqrKjB0kC,CAAgBlxM,EAAMhgD,GACtBA,EAAEwsN,YAAY,EAAGxsK,EAAK8uM,KAAO,IAAS,KACtC,IAAIqC,EAAM,EACW,eAAlBnxM,EAAKkvM,UAA4BiC,EAAM,EAChB,aAAlBnxM,EAAKkvM,YAA0BiC,EAAM,GAC7CnxP,EAAEwsN,YAAY,EAAG2kC,GACjBnxP,EAAEwsN,YAAY,EAAGxsK,EAAKgvM,WAAa,GACnChvP,EAAEwsN,YAAY,EAAGxsK,EAAKumM,QAAU,GAChCvmP,EAAEwsN,YAAY,EAAGxsK,EAAKoxM,SAAW,GACjCpxP,EAAEwsN,YAAY,EAAG,GACjBmd,GAAe3pL,EAAK5I,MAAOp3C,GAC3B,IAAImvP,EAAS,EAKb,MAJkB,SAAfnvM,EAAKmvM,SAAmBA,EAAS,GAClB,SAAfnvM,EAAKmvM,SAAmBA,EAAS,GACpCnvP,EAAEwsN,YAAY,EAAG2iC,GACjBhoB,GAAmBnnL,EAAKpjD,KAAMoD,GACvBA,EAAExJ,OAASwJ,EAAEmM,EAAInM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAhG3CksO,GAAKmlB,IAAM,6EAoGX,IAqBIC,GAAuB/1B,EArBL,CACrB,OACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,aAIGg2B,GAAgBpuB,GACpB,SAASquB,GAAcz7M,EAAM/1C,GACxBA,IAAGA,EAAI2wN,GAAQ,KACnB,IAAI8gC,EAAMH,GAAoBv7M,EAAK05M,aACzB,MAAPgC,IAAaA,EAAM,IACtBzxP,EAAEwsN,YAAY,EAAGilC,GACjB,IAAIn3N,EAAI,EACR,GAAU,IAAPm3N,EAMF,IAJA9nB,GAAe,CAACC,KAAK,GAAI5pO,GAEzB2pO,GAAe,CAACC,KAAK,GAAI5pO,GAEnBs6B,EAAI,KAAMA,EAAGt6B,EAAEwsN,YAAY,EAAG,OAC9B,CACN,KAAMlyL,EAAI,IAAKA,EAAGt6B,EAAEwsN,YAAY,EAAG,GAEnC,KAAMlyL,EAAI,KAAMA,EAAGt6B,EAAEwsN,YAAY,EAAG,GAUrC,OAAOxsN,EAAExJ,OAASwJ,EAAEmM,EAAInM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAW3C,SAAS0xP,GAAYh2P,EAAM08O,EAAOp4O,GAC7BA,IAAGA,EAAI2wN,GAAQ,KACnB3wN,EAAEwsN,YAAY,EAAG4rB,GAAO,GACxBp4O,EAAEwsN,YAAY,EAAG9wN,EAAKkqO,UAAU,GAChC5lO,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GAMjB,OAJAxsN,EAAEwsN,YAAY,EADH,GAEXxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACVxsN,EAIR,SAAS2xP,GAAWj2P,EAAMsE,GAMzB,OALIA,IAAGA,EAAI2wN,GAAQ,KACnB3wN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACVxsN,EAGR,IAAI4xP,GAAkBzuB,GAyItB,SAAS0uB,GAAkB7tB,GAC1B,IAzIgChkO,EA4IhC+jO,GAAaC,EAAI,kBAAmBgD,GAH1B,IAIVjD,GAAaC,EAAI,aA5IbhkO,IAAGA,EAAI2wN,GAAQ,KACnB3wN,EAAEwsN,YAAY,EAAG,GACjBmlC,GAAW,EAAM3xP,GACjB2xP,GAAW,EAAM3xP,GACjB2xP,GAAW,EAAM3xP,GACjB2xP,GAAW,EAAM3xP,GACjB2xP,GAAW,EAAM3xP,GACVA,EAAExJ,OAASwJ,EAAEmM,EAAInM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,IAuI1C+jO,GAAaC,EAAI,iBAuBlB,SAAS8tB,GAAiB9tB,GACzB,IA3JuB1uL,EAAOt1C,EA6J9B+jO,GAAaC,EAAI,iBAAkBgD,GAFzB,IAGVjD,GAAaC,EAAI,YA9JM1uL,EA8JqB,CAC3Cy8M,KAAK,EACLC,UAAU,EACVp1P,KAAK,UAhKFoD,IAAGA,EAAI2wN,GAAQ,KACnB3wN,EAAEwsN,YAAY,EAAGl3K,EAAMy8M,MACvB/xP,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,GAAIl3K,EAAM08M,WACxBhyP,EAAEwsN,YAAY,EAAG,GACjBoc,GAA2BtzL,EAAM14C,MAAQ,GAAIoD,GACtCA,EAAExJ,OAASwJ,EAAEmM,EAAInM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,IA6J1C+jO,GAAaC,EAAI,gBAWlB,SAASiuB,GAAsBjuB,GAG9BD,GAAaC,EAAI,sBAvKlB,SAAmCvV,EAAKyjC,EAAeC,GACtD,IAAInyP,EAAI2wN,GAAQ,MAIhB,OAHA3wN,EAAEwsN,YAAY,EAAGiC,GACjBma,GAA2BspB,EAAelyP,GAC1C4oO,GAA2BupB,EAAenyP,GACnCA,EAAExJ,OAASwJ,EAAEmM,EAAInM,EAAEgD,MAAM,EAAGhD,EAAEmM,GAAKnM,EAkKFoyP,CAF9B,EAE6D,oBAAqB,sBAE5FruB,GAAaC,EAAI,qBASlB,SAASquB,GAAc/a,EAAIvyB,GAC1B,IAAIif,EAAKP,KAcT,OAbAM,GAAaC,EAAI,sBA7GlB,SAAwBA,EAAI2sB,GAC3B,GAAIA,EAAJ,CACA,IAAIliC,EAAM,EACV,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM3sN,SAAQ,SAAS3B,GACtE,IAAI,IAAIzJ,EAAIyJ,EAAE,GAAIzJ,GAAKyJ,EAAE,KAAMzJ,EAAe,MAATi6P,EAAGj6P,MAAc+3N,KAG3C,GAAPA,IACHsV,GAAaC,EAAI,eAAgBgD,GAAevY,IAChD,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM3sN,SAAQ,SAAS3B,GACtE,IAAI,IAAIzJ,EAAIyJ,EAAE,GAAIzJ,GAAKyJ,EAAE,KAAMzJ,EAAe,MAATi6P,EAAGj6P,IAAYqtO,GAAaC,EAAI,SAAU+sB,GAAar6P,EAAGi6P,EAAGj6P,QAEjGqtO,GAAaC,EAAI,gBAkGjBsuB,CAAetuB,EAAIsT,EAAG5zB,KA/FvB,SAAyBsgB,GAIxBD,GAAaC,EAAI,gBAAiBgD,GAHxB,IAIVjD,GAAaC,EAAI,UAAWgtB,GAAc,CACzClkC,GAAG,GACH11K,MAAO,CAACk9F,MAAM,GACd13I,KAAM,UACN2pP,OAAQ,EACR4I,OAAQ,WAGTprB,GAAaC,EAAI,eAmFjBuuB,CAAgBvuB,GAhFjB,SAAyBA,GAIxBD,GAAaC,EAAI,gBAAiBgD,GAHxB,IAIVjD,GAAaC,EAAI,UAAWwtB,GAAc,CAAC/B,YAAY,UACvD1rB,GAAaC,EAAI,UAAWwtB,GAAc,CAAC/B,YAAY,aAEvD1rB,GAAaC,EAAI,eAyEjBwuB,CAAgBxuB,GAChB6tB,GAAkB7tB,GA7DnB,SAAgCA,GAE/BD,GAAaC,EAAI,uBAAwBgD,GAD/B,IAEVjD,GAAaC,EAAI,QAAS0tB,GAAY,CACrC9rB,SAAU,EACV6sB,OAAU,EACVC,OAAU,EACVC,SAAU,GACR,QAEH5uB,GAAaC,EAAI,sBAoDjB4uB,CAAuB5uB,GAjDxB,SAA2BA,EAAItoO,GAC9BqoO,GAAaC,EAAI,kBAAmBgD,GAAetrO,EAAKlF,SACxDkF,EAAKoG,SAAQ,SAASmK,GAAK83N,GAAaC,EAAI,QAAS0tB,GAAYzlP,EAAE,OAEnE83N,GAAaC,EAAI,iBA8CjB6uB,CAAkB7uB,EAAIjf,EAAK8rC,SAC3BiB,GAAiB9tB,GA/BlB,SAAwBA,GAGvBD,GAAaC,EAAI,eAAgBgD,GAFvB,IAIVjD,GAAaC,EAAI,cA2BjB8uB,CAAe9uB,GACfiuB,GAAsBjuB,GAGtBD,GAAaC,EAAI,oBACVA,EAAG/vO,MAEXi4O,GAAK6mB,MAAQ,4EAGb,IAAIC,GAAqB,CACxB,WAAY,WAAY,WAAY,WACpC,eAAgB,eAAgB,eAChC,eAAgB,eAAgB,eAChC,aAAc,iBAGf,SAASC,GAAgBt1P,EAAGrE,EAAQyrN,GACnCzrN,EAAO+1P,cAAcC,UAAY,GACjC,IAAIl4M,EAAQ,IACXz5C,EAAE,GAAGqb,MAAM2kN,KAAW,IAAI77N,SAAQ,SAASnN,GAC3C,IAAIC,EAAIkpO,GAAYnpO,GACpB,OAAOC,EAAE,IAER,IAAK,eAAgB,IAAK,iBAAkB,MAG5C,IAAK,aACJwiD,EAAMQ,IAAMhjD,EAAE61B,IAAK,MAGpB,IAAK,YACJ2sB,EAAMQ,IAAMhjD,EAAEs+P,QAAS,MAcxB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,YAAa,IAAK,aACvB,IAAK,eAAgB,IAAK,gBACF,MAAnBt+P,EAAE,GAAG65C,OAAO,IACfn1C,EAAO+1P,cAAcC,UAAU0D,GAAmB7hQ,QAAQyD,EAAE,KAAOwiD,EACnEA,EAAQ,IAERA,EAAMx6C,KAAOhI,EAAE,GAAGoO,MAAM,EAAGpO,EAAE,GAAG4B,OAAS,GAE1C,MAED,QAAS,GAAGuuN,GAAQA,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,gBAAkBoE,EAAE,GAAK,qBAM1E,SAASu+P,MAGT,SAASC,MAET,IAAIC,GAAY,6CACZC,GAAY,+CACZC,GAAY,6CAqBZC,GAAe,qDAGnB,SAASC,GAAgB/3P,EAAMqpN,GAE9B,IAAIrpN,GAAwB,IAAhBA,EAAKlF,OAAc,OAAOi9P,GAAgBC,MAEtD,IAAI/1P,EACArE,EAAS,GAGb,KAAKqE,EAAEjC,EAAKsd,MAAMw6O,KAAgB,MAAM,IAAIhjQ,MAAM,oCAGlD,OAhCD,SAA6BkL,EAAMpC,EAAQyrN,GAG1C,IAAIpnN,EAFJrE,EAAO+1P,cAAgB,GAIvB,CAEC,CAAC,YAAagE,GAAWJ,IAEzB,CAAC,aAAcK,GAAWH,IAE1B,CAAC,YAAaI,GAAWH,KACxBtxP,SAAQ,SAAS7B,GAClB,KAAKtC,EAAEjC,EAAKsd,MAAM/Y,EAAE,KAAM,MAAM,IAAIzP,MAAMyP,EAAE,GAAK,+BACjDA,EAAE,GAAGtC,EAAGrE,EAAQyrN,MAgBjB4uC,CAAoBh2P,EAAE,GAAIrE,EAAQyrN,GAClCzrN,EAAOm3N,IAAM/0N,EACNpC,EAGR,SAASo6P,GAAYE,EAAQ7uC,GAC5B,GAAGA,GAAQA,EAAK8uC,UAAW,OAAO9uC,EAAK8uC,UACvC,GAAGD,GAA+B,iBAAdA,EAAOnjC,IAAiB,OAAOmjC,EAAOnjC,IAC1D,IAAIzwN,EAAI,CAACy9N,IAsKT,OArKAz9N,EAAEA,EAAExJ,QAAU,gGACdwJ,EAAEA,EAAExJ,QAAW,oBAEfwJ,EAAEA,EAAExJ,QAAY,8BAChBwJ,EAAEA,EAAExJ,QAAa,+DACjBwJ,EAAEA,EAAExJ,QAAa,2DACjBwJ,EAAEA,EAAExJ,QAAa,2CACjBwJ,EAAEA,EAAExJ,QAAa,2CACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,mDACjBwJ,EAAEA,EAAExJ,QAAa,+CACjBwJ,EAAEA,EAAExJ,QAAa,qDACjBwJ,EAAEA,EAAExJ,QAAY,iBAEhBwJ,EAAEA,EAAExJ,QAAY,+BAChBwJ,EAAEA,EAAExJ,QAAa,gBACjBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAc,sBAClBwJ,EAAEA,EAAExJ,QAAc,sBAClBwJ,EAAEA,EAAExJ,QAAc,iFAClBwJ,EAAEA,EAAExJ,QAAc,+DAClBwJ,EAAEA,EAAExJ,QAAc,kDAClBwJ,EAAEA,EAAExJ,QAAc,8DAClBwJ,EAAEA,EAAExJ,QAAc,qDAClBwJ,EAAEA,EAAExJ,QAAc,qDAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,+CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,8CAClBwJ,EAAEA,EAAExJ,QAAc,0DAClBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,uDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,+CAClBwJ,EAAEA,EAAExJ,QAAc,kDAClBwJ,EAAEA,EAAExJ,QAAc,qDAClBwJ,EAAEA,EAAExJ,QAAc,qDAClBwJ,EAAEA,EAAExJ,QAAc,sDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAa,iBACjBwJ,EAAEA,EAAExJ,QAAa,gBACjBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAc,sBAClBwJ,EAAEA,EAAExJ,QAAc,sBAClBwJ,EAAEA,EAAExJ,QAAc,iFAClBwJ,EAAEA,EAAExJ,QAAc,+DAClBwJ,EAAEA,EAAExJ,QAAc,kDAClBwJ,EAAEA,EAAExJ,QAAc,8DAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,8CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,8CAClBwJ,EAAEA,EAAExJ,QAAc,0DAClBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,4CAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,uDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAc,+CAClBwJ,EAAEA,EAAExJ,QAAc,kDAClBwJ,EAAEA,EAAExJ,QAAc,qDAClBwJ,EAAEA,EAAExJ,QAAc,2CAClBwJ,EAAEA,EAAExJ,QAAc,sDAClBwJ,EAAEA,EAAExJ,QAAc,6CAClBwJ,EAAEA,EAAExJ,QAAa,iBACjBwJ,EAAEA,EAAExJ,QAAY,kBAEhBwJ,EAAEA,EAAExJ,QAAY,8BAChBwJ,EAAEA,EAAExJ,QAAa,mBACjBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAe,YACnBwJ,EAAEA,EAAExJ,QAAgB,4GACpBwJ,EAAEA,EAAExJ,QAAgB,gHACpBwJ,EAAEA,EAAExJ,QAAgB,iHACpBwJ,EAAEA,EAAExJ,QAAe,aACnBwJ,EAAEA,EAAExJ,QAAe,qCACnBwJ,EAAEA,EAAExJ,QAAc,gBAClBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAe,YACnBwJ,EAAEA,EAAExJ,QAAgB,oIACpBwJ,EAAEA,EAAExJ,QAAgB,wIACpBwJ,EAAEA,EAAExJ,QAAe,aACnBwJ,EAAEA,EAAExJ,QAAe,qCACnBwJ,EAAEA,EAAExJ,QAAc,gBAClBwJ,EAAEA,EAAExJ,QAAa,oBACjBwJ,EAAEA,EAAExJ,QAAa,iBACjBwJ,EAAEA,EAAExJ,QAAc,mMAClBwJ,EAAEA,EAAExJ,QAAc,yIAClBwJ,EAAEA,EAAExJ,QAAc,yIAClBwJ,EAAEA,EAAExJ,QAAa,kBACjBwJ,EAAEA,EAAExJ,QAAa,qBACjBwJ,EAAEA,EAAExJ,QAAc,kBAClBwJ,EAAEA,EAAExJ,QAAe,gBACnBwJ,EAAEA,EAAExJ,QAAgB,oJACpBwJ,EAAEA,EAAExJ,QAAe,iBACnBwJ,EAAEA,EAAExJ,QAAc,mBAClBwJ,EAAEA,EAAExJ,QAAc,kBAClBwJ,EAAEA,EAAExJ,QAAe,gBACnBwJ,EAAEA,EAAExJ,QAAgB,oJACpBwJ,EAAEA,EAAExJ,QAAe,iBACnBwJ,EAAEA,EAAExJ,QAAc,mBAClBwJ,EAAEA,EAAExJ,QAAc,kBAClBwJ,EAAEA,EAAExJ,QAAe,gBACnBwJ,EAAEA,EAAExJ,QAAgB,oJACpBwJ,EAAEA,EAAExJ,QAAe,iBACnBwJ,EAAEA,EAAExJ,QAAe,6LACnBwJ,EAAEA,EAAExJ,QAAe,mDACnBwJ,EAAEA,EAAExJ,QAAc,mBAClBwJ,EAAEA,EAAExJ,QAAa,sBACjBwJ,EAAEA,EAAExJ,QAAa,qBACjBwJ,EAAEA,EAAExJ,QAAc,wDAClBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAe,YACnBwJ,EAAEA,EAAExJ,QAAgB,4GACpBwJ,EAAEA,EAAExJ,QAAgB,sIACpBwJ,EAAEA,EAAExJ,QAAgB,kHACpBwJ,EAAEA,EAAExJ,QAAe,aACnBwJ,EAAEA,EAAExJ,QAAe,2FACnBwJ,EAAEA,EAAExJ,QAAc,gBAClBwJ,EAAEA,EAAExJ,QAAc,gCAClBwJ,EAAEA,EAAExJ,QAAe,YACnBwJ,EAAEA,EAAExJ,QAAgB,4GACpBwJ,EAAEA,EAAExJ,QAAgB,kHACpBwJ,EAAEA,EAAExJ,QAAe,aACnBwJ,EAAEA,EAAExJ,QAAe,yFACnBwJ,EAAEA,EAAExJ,QAAc,gBAClBwJ,EAAEA,EAAExJ,QAAa,sBACjBwJ,EAAEA,EAAExJ,QAAY,iBAChBwJ,EAAEA,EAAExJ,QAAW,qBAEfwJ,EAAEA,EAAExJ,QAAW,qBACfwJ,EAAEA,EAAExJ,QAAY,YAChBwJ,EAAEA,EAAExJ,QAAa,mSACjBwJ,EAAEA,EAAExJ,QAAY,aAChBwJ,EAAEA,EAAExJ,QAAY,YAChBwJ,EAAEA,EAAExJ,QAAa,mSACjBwJ,EAAEA,EAAExJ,QAAY,aAChBwJ,EAAEA,EAAExJ,QAAW,sBACfwJ,EAAEA,EAAExJ,QAAW,yBACfwJ,EAAEA,EAAExJ,QAAU,aACPwJ,EAAEc,KAAK,IAoBf,SAASgzP,GAAmBnnC,GAC3B,IAAI3sN,EAAI,GAGR,OAFAA,EAAE+zP,SAAWpnC,EAAKE,WAAW,GAC7B7sN,EAAEg0P,WAAarnC,EAAKE,WAAW,GACxB7sN,EAAE+zP,UACR,KAAK,EAAGpnC,EAAKxgN,GAAK,EAAG,MACrB,KAAK,EAAGnM,EAAEi0P,UAUZ,SAAqBtnC,EAAMn2N,GAC1B,OAAO2sO,GAAUxW,EAAMn2N,GAXA09P,CAAYvnC,EAAM,GAAI,MAC5C,KAAK,EAAG3sN,EAAEi0P,UAAYje,GAAerpB,GAAU,MAC/C,KAAK,EAAG3sN,EAAEi0P,UAXZ,SAA0BtnC,GAAQ,OAAOA,EAAKE,WAAW,GAWjCsnC,CAAiBxnC,GAAU,MACjD,KAAK,EAAGA,EAAKxgN,GAAK,EAGnB,OADAwgN,EAAKxgN,GAAK,EACHnM,EAcR,SAASo0P,GAAcznC,GACtB,IAAI0nC,EAAU1nC,EAAKE,WAAW,GAC1B7yB,EAAK2yB,EAAKE,WAAW,GAAK,EAC1B7sN,EAAI,CAACq0P,GACT,OAAOA,GACN,KAAK,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,EACtC,KAAK,EAAM,KAAK,GAAM,KAAK,GAAM,KAAK,GACrCr0P,EAAE,GAAK8zP,GAAmBnnC,GAAW,MACtC,KAAK,EAAM3sN,EAAE,GAbf,SAA6B2sN,EAAMn2N,GAClC,OAAO2sO,GAAUxW,EAAMn2N,GAYJ89P,CAAoB3nC,EAAM3yB,GAAK,MACjD,KAAK,GAAM,KAAK,GAAMh6L,EAAE,GAAK2sN,EAAKE,WAAkB,IAAP7yB,EAAW,EAAI,GAAI,MAChE,QAAS,MAAM,IAAIxpM,MAAM,8BAAgC6jQ,EAAU,IAAMr6D,GAE1E,OAAOh6L,EA4IRksO,GAAKqoB,IAAM,4EACXroB,GAAKsoB,KAAO,8EAsBZ,IAAIC,GAAW,KACf,SAASC,GAAmBlnB,EAAKlC,GAYhC,IAXA,IAAIqpB,EAAQ,CAAC,MAAO,OAEhBnyO,EAAO,CAAC,SAASmyO,EAAM,GAAGA,EAAM,GAAGA,EAAM,GAAGA,EAAM,GAAG,OAAO7zP,KAAK,KACjEd,EAAI,CACPugO,GAAU,MAAO,KAAM,CAAE,UAAWI,GAAU,UAAWA,GAAU,UAAWA,GAAU,WAAYA,KAAa5vO,QAAQ,MAAM,KAC/HwvO,GAAU,gBAAiBA,GAAU,UAAW,KAAM,CAAC,QAAQ,OAAQ,KAAOiN,IAAO,CAAC,QAAQ,SAC9FjN,GAAU,cAAe,CACxBA,GAAU,WAAY,KAAM,CAACq0B,UAAU,UACvCr0B,GAAU,SAAU,KAAM,CAACs0B,gBAAgB,IAAK,gBAAgB,UAC/D/zP,KAAK,IAAK,CAAC8nD,GAAG,cAAe,QAAQ,IAAKksM,UAAUH,EAAM7zP,KAAK,KAAKqF,KAAKqc,KAEtEiyO,GAAiB,IAANjnB,GAAYinB,IAAY,IAqCzC,OAnCAnpB,EAASxpO,SAAQ,SAASnN,GAC1B,IAAIsX,EAAIm5N,GAAYzwO,EAAE,IAClBogQ,EAAW,CAAC,OAAS,UAAW,KAAO,YACvB,YAAjBA,EAASn5P,OAAoBm5P,EAAS5+P,MAAQ,QACjD,IAAI6+P,EAA4B,YAAjBD,EAASn5P,KAAqB2kO,GAAU,SAAU,KAAM,CAAC3kO,KAAK,mBAAoB,QAAQ,SAAW,KAChHq5P,EAAU10B,GAAU,SAAUy0B,EAAUD,KAG1CN,GAEFz0P,EAAIA,EAAEO,OAAO,CACb,WAAa+/N,GAAW,CACvB13K,GAAG,WAAa6rM,GAChB74P,KAAK,eACL05C,MAAM,yFAA2F3gD,EAAE,GAAG0xD,OAAS,qBAAuB,IACtI6uM,UAAU,UACVC,YAAY,YACR,IACJF,EACA10B,GAAU,WAAY,KAZR,CAAC/mL,GAAG,IAAK,SAAW,MAalC+mL,GAAU,SAAU,KAAM,CAAC,gBAAgB,SAC3C,6DACA,mCACC,qBACA,qBAEAF,GAAS,WAAY,CAACp0N,EAAEA,EAAE,EAAG,EAAGA,EAAE9L,EAAE,EAAG,EAAG8L,EAAEA,EAAE,EAAG,GAAIA,EAAE9L,EAAE,EAAG,IAAIW,KAAK,MACrEu/N,GAAS,aAAc,SACvBA,GAAS,QAASj8L,OAAOn4B,EAAE9L,IAC3BkgO,GAAS,WAAYj8L,OAAOn4B,EAAEA,IAC9BtX,EAAE,GAAG0xD,OAAS,GAAK,eACpB,kBACD,kBAEArmD,EAAEnH,KAAK,UACAmH,EAAEc,KAAK,IAEforO,GAAKkpB,KAAO,+EA+DZ,IAAIC,GAAgB90B,GAAU,WAAY,KAAM,CAAE,MAAS5jL,GAAMsrM,KAAK,KACtE,SAASqN,GAAmB55P,GAC3B,IAAIsE,EAAI,CAACy9N,GAAY43B,IAEjBE,EAAU,GAmBd,OAlBAv1P,EAAEnH,KAAK,aACP6C,EAAKoG,SAAQ,SAASnN,GAAKA,EAAE,GAAGmN,SAAQ,SAASi3B,GAAK,IAAI3nC,EAAIwtO,GAAU7lM,EAAE3nC,GACtEmkQ,EAAQpkQ,QAAQC,IAAM,IACzBmkQ,EAAQ18P,KAAKzH,GACb4O,EAAEnH,KAAK,WAAazH,EAAI,oBAEzB4O,EAAEnH,KAAK,cACPmH,EAAEnH,KAAK,iBACP6C,EAAKoG,SAAQ,SAAStP,GACrBA,EAAE,GAAGsP,SAAQ,SAASmK,GAErBjM,EAAEnH,KAAK,iBAAmBrG,EAAE,GAAK,eAAiB+iQ,EAAQpkQ,QAAQytO,GAAU3yN,EAAE7a,IAAM,YACpF4O,EAAEnH,KAAKwnO,GAAS,IAAY,MAAPp0N,EAAEtO,EAAY,GAAKihO,GAAU3yN,EAAEtO,KACpDqC,EAAEnH,KAAK,2BAGTmH,EAAEnH,KAAK,kBACJmH,EAAExJ,OAAO,IAAKwJ,EAAEA,EAAExJ,QAAW,cAAgBwJ,EAAE,GAAGA,EAAE,GAAGjP,QAAQ,KAAK,MAChEiP,EAAEc,KAAK,IAwBf,IAAI00P,GAAyBvuB,GA4C7B,SAASwuB,GAAmB/5P,GAC3B,IAAIsoO,EAAKP,KACL8xB,EAAU,GA2Bd,OA1BAxxB,GAAaC,EAAI,oBAEjBD,GAAaC,EAAI,0BACjBtoO,EAAKoG,SAAQ,SAAS4zP,GACrBA,EAAQ,GAAG5zP,SAAQ,SAASmK,GACxBspP,EAAQpkQ,QAAQ8a,EAAE7a,IAAM,IAC3BmkQ,EAAQ18P,KAAKoT,EAAE7a,EAAE4R,MAAM,EAAE,KACzB+gO,GAAaC,EAAI,mBArDpB,SAAgCtoO,GAAQ,OAAOyrO,GAAmBzrO,EAAKsH,MAAM,EAAG,KAqDxC2yP,CAAuB1pP,EAAE7a,WAGhE2yO,GAAaC,EAAI,wBAEjBD,GAAaC,EAAI,uBACjBtoO,EAAKoG,SAAQ,SAAS4zP,GACrBA,EAAQ,GAAG5zP,SAAQ,SAASmK,GAC3BA,EAAEspP,QAAUA,EAAQpkQ,QAAQ8a,EAAE7a,GAC9B,IAAIgD,EAAQ,CAACkB,EAAE8vO,GAAYswB,EAAQ,IAAIh3P,EAAE0mO,GAAYswB,EAAQ,KAC7D3xB,GAAaC,EAAI,kBA5EpB,SAA+BtoO,EAAMsE,GAQpC,OAPQ,MAALA,IAAWA,EAAI2wN,GAAQ,KAC1B3wN,EAAEwsN,YAAY,EAAG9wN,EAAK,GAAG65P,SACzBjsB,GAAoB5tO,EAAK,GAAKsE,GAC9BA,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACVxsN,EAoE+B41P,CAAsB,CAACxhQ,EAAO6X,KAC/DA,EAAEtO,GAAKsO,EAAEtO,EAAEnH,OAAS,GAAGutO,GAAaC,EAAI,iBAAkBmE,GAAqBl8N,IAClF83N,GAAaC,EAAI,wBACV/3N,EAAEspP,cAGXxxB,GAAaC,EAAI,qBAEjBD,GAAaC,EAAI,kBACVA,EAAG/vO,MAqBX,IAAI4hQ,GAAU,CAAE,OAAQ,OAAQ,OAAQ,QAAS,OAEjD3pB,GAAK4pB,GAAK,kFACV5pB,GAAK6pB,GAAK,sEAQV,IAAI1U,GAAY,WACf,IAAI2U,EAAU,gFACVC,EAAU,CAAC91P,EAAE,EAAE8L,EAAE,GACrB,SAASiqP,EAAOnuC,EAAGC,EAAGC,EAAGC,GACxB,IAAIkc,GAAO,EAAOC,GAAO,EAET,GAAbpc,EAAGzxN,OAAa6tO,GAAO,EACF,KAAhBpc,EAAGx5K,OAAO,KAAa41L,GAAO,EAAMpc,EAAKA,EAAGjlN,MAAM,GAAI,IAE9C,GAAbklN,EAAG1xN,OAAa4tO,GAAO,EACF,KAAhBlc,EAAGz5K,OAAO,KAAa21L,GAAO,EAAMlc,EAAKA,EAAGllN,MAAM,GAAI,IAE9D,IAAIm1E,EAAI8vI,EAAGzxN,OAAO,EAAkB,EAAhB48B,SAAS60L,EAAG,IAAM,EAAGzwI,EAAI0wI,EAAG1xN,OAAO,EAAkB,EAAhB48B,SAAS80L,EAAG,IAAM,EAI3E,OAFGkc,EAAM5sJ,GAAKy+K,EAAOhqP,IAAUurE,EAC5B6sJ,EAAMlsJ,GAAK89K,EAAO91P,IAAUg4E,EACxB6vI,GAAMoc,EAAO,GAAK,KAAOU,GAAWttJ,IAAM6sJ,EAAO,GAAK,KAAOQ,GAAW1sJ,GAEhF,OAAO,SAAkBg+K,EAAMrzP,GAE9B,OADAmzP,EAASnzP,EACFqzP,EAAKplQ,QAAQilQ,EAASE,IApBf,GAwBZE,GAAY,iLACZpU,GACI,SAAkBmU,EAAMrzP,GAC9B,OAAOqzP,EAAKplQ,QAAQqlQ,IAAW,SAASC,EAAIruC,EAAIC,EAAIC,EAAIouC,EAAIC,GAC3D,IAAItqP,EAAIg5N,GAAW/c,IAAOD,EAAK,EAAInlN,EAAKmJ,GACpC9L,EAAI4kO,GAAWwxB,IAAOD,EAAK,EAAIxzP,EAAK3C,GAGxC,OAAO6nN,EAAK,KAFE,GAAL7nN,EAAS,GAAMm2P,EAAsBn2P,EAAE,EAAnB,IAAMA,EAAI,KAEjB,KADR,GAAL8L,EAAS,GAAMg8M,EAAsBh8M,EAAE,EAAnB,IAAMA,EAAI,SAa1C,SAASuqP,GAAmBv3P,EAAG7K,EAAO+vO,GACrC,IAA6B7uO,EAArBgwO,GAAalxO,GAAckB,EAAG2W,EAAIm5N,GAAYjB,GAEtD,OATD,SAA2BllO,EAAGmhF,GAC7B,OAAOnhF,EAAElO,QAAQqlQ,IAAW,SAASC,EAAIruC,EAAIC,EAAIC,EAAIouC,EAAIC,GACxD,OAAOvuC,GAAQ,KAAJC,EAAUA,EAAGC,EAAK4c,GAAWG,GAAW/c,GAAI9nI,EAAMn0E,KAAS,KAAJqqP,EAAUA,EAAGC,EAAK1xB,GAAWE,GAAWwxB,GAAMn2K,EAAMjgF,OAOhHs2P,CAAkBx3P,EADb,CAACkB,EAAE8L,EAAE9L,EAAI7K,EAAE6K,EAAG8L,EAAEA,EAAEA,EAAI3W,EAAE2W,IAUrC,SAASyqP,GAAMz3P,GACd,OAAOA,EAAElO,QAAQ,WAAW,IAE7B,SAAS4lQ,GAAWhqC,GAAQA,EAAKxgN,GAAG,EAGpC,SAASyqP,GAAcjqC,EAAMn2N,GAC5B,IAAIyV,EAAI0gN,EAAKE,WAAqB,GAAVr2N,EAAc,EAAI,GAC1C,MAAO,CAAK,MAAJyV,EAAaA,GAAK,GAAM,EAAIA,GAAK,GAAM,GAIhD,SAAS4qP,GAAelqC,EAAMn2N,EAAQuuN,GACrC,IAAIhsL,EAAI,EACR,GAAGgsL,EAAM,CACR,GAAGA,EAAKuf,MAAQ,GAAKvf,EAAKuf,MAAQ,EAAG,OAAOwyB,GAAqBnqC,GAC5C,IAAb5H,EAAKuf,OAAYvrM,EAAI,GAE9B,IAAI54B,EAAEwsN,EAAKE,WAAW9zL,GAAIo/C,EAAEw0I,EAAKE,WAAW9zL,GACxC9sB,EAAE2qP,GAAcjqC,EAAM,GACtBn1I,EAAEo/K,GAAcjqC,EAAM,GAC1B,MAAO,CAAEr3N,EAAE,CAAC6K,EAAEA,EAAG8L,EAAEA,EAAE,GAAIm4N,KAAKn4N,EAAE,GAAIo4N,KAAKp4N,EAAE,IAAKvN,EAAE,CAACyB,EAAEg4E,EAAGlsE,EAAEurE,EAAE,GAAI4sJ,KAAK5sJ,EAAE,GAAI6sJ,KAAK7sJ,EAAE,KAGnF,SAASs/K,GAAqBnqC,GAC7B,IAAIxsN,EAAEy2P,GAAcjqC,EAAM,GAAIx0I,EAAEy+K,GAAcjqC,EAAM,GAChD1gN,EAAE0gN,EAAKE,WAAW,GAClBr1I,EAAEm1I,EAAKE,WAAW,GACtB,MAAO,CAAEv3N,EAAE,CAAC6K,EAAEA,EAAE,GAAI8L,EAAEA,EAAGm4N,KAAKjkO,EAAE,GAAIkkO,KAAKlkO,EAAE,IAAKzB,EAAE,CAACyB,EAAEg4E,EAAE,GAAIlsE,EAAEurE,EAAG4sJ,KAAKjsJ,EAAE,GAAIksJ,KAAKlsJ,EAAE,KAanF,SAAS4+K,GAAcpqC,EAAMn2N,EAAQuuN,GACpC,GAAGA,GAAQA,EAAKuf,MAAQ,GAAKvf,EAAKuf,MAAQ,EAAG,OAK9C,SAA6B3X,GAC5B,IAAIxsN,EAAIy2P,GAAcjqC,EAAM,GACxB1gN,EAAI0gN,EAAKE,WAAW,GACxB,MAAO,CAAC1sN,EAAEA,EAAE,GAAI8L,EAAEA,EAAGm4N,KAAKjkO,EAAE,GAAIkkO,KAAKlkO,EAAE,IARa62P,CAAoBrqC,GACxE,IAAIxsN,EAAIwsN,EAAKE,WAAW9H,GAAqB,IAAbA,EAAKuf,KAAa,EAAI,GAClDr4N,EAAI2qP,GAAcjqC,EAAM,GAC5B,MAAO,CAACxsN,EAAEA,EAAG8L,EAAEA,EAAE,GAAIm4N,KAAKn4N,EAAE,GAAIo4N,KAAKp4N,EAAE,IASxC,SAASgrP,GAAiBtqC,GACzB,IAAIxsN,EAAIwsN,EAAKE,WAAW,GACpB5gN,EAAI0gN,EAAKE,WAAW,GACxB,MAAO,CAAC1sN,EAAEA,EAAG8L,EAAM,IAAJA,EAAUirP,WAAe,MAAJjrP,GAAam4N,KAAKn4N,GAAG,GAAIo4N,KAAKp4N,GAAG,IA6HtE,SAASkrP,GAAuBxqC,GAE/B,MAAO,CADIA,EAAKE,WAAW,GAAUF,EAAKE,WAAW,IA8FtD,SAASuqC,GAAYzqC,EAAM2X,GAC1B,IAAI75M,EAAM,CAACkiM,EAAKE,WAAW,IAC3B,GAAW,IAARyX,EAAY,OAAO75M,EAAI,IACzB,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,GAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAErB,OAAOA,EAAI,IACV,KAAK,EACJA,EAAI,GAAKsoN,GAAUpmB,EAAM,GAAK,OAAS,QAC5B,IAAR2X,IAAY3X,EAAKxgN,GAAK,GAAG,MAC7B,KAAK,GACL,KAAK,GACJse,EAAI,GAAKg/M,GAAK9c,EAAKA,EAAKxgN,IACxBwgN,EAAKxgN,GAAe,IAARm4N,EAAc,EAAI,EAAI,MACnC,KAAK,EACJ3X,EAAKxgN,GAAK,EAAG,MACd,KAAK,EACJse,EAAI,GAAK8+M,GAAW5c,GAAU,MAC/B,KAAK,EACJliM,EAAI,GAAK8qN,GAAuB5oB,EAAM,EAAG,CAAC2X,KAAKA,EAAO,GAAKA,EAAO,EAAI,EAAIA,IAAQ,MACnF,QAAS,MAAM,IAAI9zO,MAAM,cAAgBi6B,EAAI,IAE9C,OAAOA,EAIR,SAAS4sO,GAAkB1qC,EAAM6sB,EAAKz0B,GAGrC,IAFA,IAAIvsN,EAAQm0N,EAAKE,WAAyB,IAAb9H,EAAKuf,KAAc,EAAI,GAChDr3L,EAAM,GACFv2C,EAAI,EAAGA,GAAK8B,IAAS9B,EAAGu2C,EAAIp0C,MAAoB,IAAbksN,EAAKuf,KAAc+E,GAAqBkN,IAAa5pB,EAAM,IACtG,OAAO1/K,EAIR,SAASqqN,GAAoB3qC,EAAMn2N,EAAQuuN,GAC1C,IAAIn6F,EAAO,EAAG2sI,EAAO,EACL,IAAbxyC,EAAKuf,MACP15G,EAAO+hG,EAAKE,WAAW,GACvB0qC,EAAO5qC,EAAKE,WAAW,KAEvB0qC,EAAO,EAAI5qC,EAAKE,WAAW,GAC3BjiG,EAAO,EAAI+hG,EAAKE,WAAW,IAEzB9H,EAAKuf,MAAQ,GAAKvf,EAAKuf,KAAO,MAAO15G,EAAmB,KAAR2sI,IAAWA,EAAO,MAErE,IAAI,IAAI7gQ,EAAI,EAAGsJ,EAAI,GAAItJ,GAAKk0H,IAAS5qH,EAAEtJ,GAAK,MAAOA,EAClD,IAAI,IAAI4jC,EAAI,EAAGA,GAAKi9N,IAAQj9N,EAAGt6B,EAAEtJ,GAAG4jC,GAAK88N,GAAYzqC,EAAM5H,EAAKuf,MACjE,OAAOtkO,EA8ER,SAASw3P,GAAgB7qC,EAAMn2N,EAAQuuN,GAEtC,OADA4H,EAAKxgN,GAAK,EACH,CAAC8qP,GAAiBtqC,IAE1B,SAAS8qC,GAAiB9qC,GAEzB,OADAA,EAAKxgN,GAAK,EACH,GAGR,IAAIurP,GAAkBF,GAElBG,GAAmBF,GAEnBG,GAAoBH,GAEpBI,GAAmBL,GAEvB,SAASM,GAAgBnrC,GAExB,OADAA,EAAKxgN,GAAK,EACH,CAACuoO,GAAY/nB,GAA4B,EAArBA,EAAKE,WAAW,IAG5C,IAAIkrC,GAAsBP,GAEtBQ,GAAyBF,GAEzBG,GAAuBR,GAEvBS,GAAiBV,GAEjBW,GAAkBX,GAGlBY,GAAY,CACf,OACA,MACA,UACA,KACA,SACA,KACA,eACA,KACA,SACA,KACA,KACA,KACA,cACA,KACA,KACA,KACA,YA6CGC,GAAW,CACf,EAAM,CAAEz6P,EAAE,SAAUqB,EAxPpB,SAAsB0tN,EAAMn2N,EAAQuuN,GAEnC,OADA4H,EAAKxgN,IACF44M,GAAqB,IAAbA,EAAKuf,KAAmB,CAAC3X,EAAKE,WAAW,EAAG,KAAM,GAGtD,CAFGF,EAAKE,WAAW,GAChBF,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,MAqPxD,EAAM,CAAE1mO,EAAE,SAAUqB,EAnGDkkO,IAoGnB,EAAM,CAAEvlO,EAAE,SAAUqB,EAAE03P,IACtB,EAAM,CAAE/4P,EAAE,SAAUqB,EAAE03P,IACtB,EAAM,CAAE/4P,EAAE,SAAUqB,EAAE03P,IACtB,EAAM,CAAE/4P,EAAE,SAAUqB,EAAE03P,IACtB,EAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,EAAM,CAAE/4P,EAAE,YAAaqB,EAAE03P,IACzB,EAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,QAASqB,EAAE03P,IACrB,GAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,GAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,GAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,GAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,GAAM,CAAE/4P,EAAE,YAAaqB,EAAE03P,IACzB,GAAM,CAAE/4P,EAAE,aAAcqB,EAAE03P,IAC1B,GAAM,CAAE/4P,EAAE,WAAYqB,EAAE03P,IACxB,GAAM,CAAE/4P,EAAE,aAAcqB,EAAE03P,IAC1B,GAAM,CAAE/4P,EAAE,SAAUqB,EAzPpB,SAAsB0tN,EAAMn2N,EAAQuuN,GAAkB,OAAV4H,EAAKxgN,IAAY2oO,GAA2BnoB,EAAMn2N,EAAUuuN,KA0PxG,GAAM,CAAEnnN,EAAE,WAAYqB,EAlDtB,SAAwB0tN,EAAMn2N,EAAQuuN,GAIrC,OAHA4H,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAK,EACVwgN,EAAKxgN,GAAmB,GAAb44M,EAAKuf,KAAY,EAAI,EACzB,CAAC,cA+CT,GAAM,CAAE1mO,EAAE,cAAeqB,EA7CzB,SAA2B0tN,EAAMn2N,EAAQuuN,GAExC,OADA4H,EAAKxgN,GAAmB,GAAb44M,EAAKuf,KAAY,EAAI,EACzB,CAAC,iBA4CT,GAAM,CAAE1mO,EAAE,SAAUqB,EAxQpB,SAAsB0tN,GAAkB,OAAVA,EAAKxgN,IAAYs9N,GAAK9c,EAAKE,WAAW,MAyQpE,GAAM,CAAEjvN,EAAE,UAAWqB,EAnQrB,SAAuB0tN,GAAkB,OAAVA,EAAKxgN,IAAiC,IAArBwgN,EAAKE,WAAW,KAoQhE,GAAM,CAAEjvN,EAAE,SAAUqB,EAvQpB,SAAsB0tN,GAAkB,OAAVA,EAAKxgN,IAAYwgN,EAAKE,WAAW,KAwQ/D,GAAM,CAAEjvN,EAAE,SAAUqB,EAlQpB,SAAsB0tN,GAAkB,OAAVA,EAAKxgN,IAAYo9N,GAAW5c,KAmQ1D,GAAM,CAAE/uN,EAAE,WAAYqB,EAhZtB,SAAwB0tN,EAAMn2N,EAAQuuN,GACrC,IAAInpN,GAAyB,GAAjB+wN,EAAKA,EAAKxgN,OAAgB,EAEtC,OADAwgN,EAAKxgN,GAAkB,GAAb44M,EAAKuf,KAAY,EAAiB,IAAbvf,EAAKuf,KAAa,GAAK,EAC/C,CAAC1oO,KA8YT,GAAM,CAAEgC,EAAE,UAAWqB,EA9SrB,SAAuB0tN,EAAMn2N,EAAQuuN,GAEpC,IAAInpN,GAAuB,GAAf+wN,EAAKA,EAAKxgN,KAAY,EAClCwgN,EAAKxgN,GAAK,EACV,IAAImsP,EAAQ3rC,EAAKE,WAAW9H,GAAQA,EAAKuf,MAAQ,EAAI,EAAI,GACzD,MAAO,CAACi0B,GAASD,GAAQE,GAAKF,GAAQ18P,KA0SvC,GAAM,CAAEgC,EAAE,aAAcqB,EAvSxB,SAA0B0tN,EAAMn2N,EAAQuuN,GACvC,IAAInpN,EAAO+wN,EAAKA,EAAKxgN,KACjBssP,EAAU9rC,EAAKE,WAAW,GAAI6rC,EAAM3zC,GAAQA,EAAKuf,MAAQ,EAAI,CAAU,IAAR1oO,GAAgB,EAAI,EAAI+wN,EAAKE,WAAW,IAI5G,SAAkBF,GACjB,MAAO,CAACA,EAAKA,EAAKxgN,EAAE,IAAI,EAAwB,MAArBwgN,EAAKE,WAAW,IALqE8rC,CAAShsC,GACzH,MAAO,CAAC8rC,GAAqB,IAAXC,EAAI,GAAWF,GAAOI,IAAOF,EAAI,OAqSpD,GAAM,CAAE96P,EAAE,UAAWqB,EA1MrB,SAAuB0tN,EAAMn2N,EAAQuuN,GACpC,IAAInpN,EAAQ+wN,EAAKE,WAAW,KAAO,EAAK,EACpC9zL,GAAMgsL,GAASA,EAAKuf,MAAQ,EAAM,EAAI,EACtCu0B,EAAYlsC,EAAKE,WAAW9zL,GAChC,OAAOgsL,EAAKuf,MACX,KAAK,EAAG3X,EAAKxgN,GAAK,EAAG,MACrB,KAAK,EAAG,KAAK,EAAGwgN,EAAKxgN,GAAK,EAAG,MAC7B,KAAK,EAAGwgN,EAAKxgN,GAAK,GAEnB,MAAO,CAACvQ,EAAM,EAAGi9P,KAkMlB,GAAM,CAAEj7P,EAAE,SAAUqB,EA7UpB,SAAsB0tN,EAAMn2N,EAAQuuN,GAEnC,IAAInpN,GAAuB,GAAf+wN,EAAKA,EAAKxgN,KAAY,EAGlC,OAFAwgN,EAAKxgN,GAAK,EAEH,CAACvQ,EADEm7P,GAAcpqC,EAAM,EAAG5H,MA0UlC,GAAM,CAAEnnN,EAAE,UAAWqB,EAncrB,SAAuB0tN,EAAMn2N,EAAQuuN,GAGpC,MAAO,EAFsB,GAAjB4H,EAAKA,EAAKxgN,OAAgB,EAC3B0qP,GAAelqC,EAAM5H,EAAKuf,MAAQ,GAAKvf,EAAKuf,KAAmBvf,MAkc3E,GAAM,CAAEnnN,EAAE,aAAcqB,EA/KxB,SAA0B0tN,EAAMn2N,EAAQuuN,GACvC,IAAInpN,EAAQ+wN,EAAKE,WAAW,KAAO,EAAK,EAGxC,OAFAF,EAAKxgN,GAAM44M,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,EAEjC,CAAC1oO,EADE+wN,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,MA6KxD,GAAM,CAAE1mO,EAAE,YAAaqB,EA1IDkkO,IA2ItB,GAAM,CAAEvlO,EAAE,cAAeqB,EAzIDkkO,IA0IxB,GAAM,CAAEvlO,EAAE,aAAcqB,EA1KxB,SAA0B0tN,EAAMn2N,EAAQuuN,GAGvC,MAAO,CAFK4H,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,MAyKxD,GAAM,CAAE1mO,EAAE,YAAaqB,EAnKvB,SAAyB0tN,EAAMn2N,EAAQuuN,GACtC,IAAInpN,EAAQ+wN,EAAKE,WAAW,KAAO,EAAK,EAIxC,OAHAF,EAAKxgN,GAAK,EACP44M,EAAKuf,KAAO,GAAG3X,EAAKxgN,IACP,IAAb44M,EAAKuf,OAAY3X,EAAKxgN,GAAK,GACvB,CAACvQ,KA+JT,GAAM,CAAEgC,EAAE,aAAcqB,EArbxB,SAA0B0tN,EAAMn2N,EAAQuuN,GACvC,IAAInpN,GAAyB,GAAjB+wN,EAAKA,EAAKxgN,OAAgB,EAEtC,OADAwgN,EAAKxgN,GAAK44M,GAASA,EAAKuf,KAAO,EAAK,GAAMvf,EAAKuf,KAAO,EAAI,EAAI,EACvD,CAAC1oO,KAmbT,GAAM,CAAEgC,EAAE,UAAWqB,EA5UrB,SAAuB0tN,EAAMn2N,EAAQuuN,GACpC,IAAInpN,GAAuB,GAAf+wN,EAAKA,EAAKxgN,KAAY,EAGlC,OAFAwgN,EAAKxgN,GAAK,EAEH,CAACvQ,EAxJT,SAA0B+wN,EAAMn2N,EAAQuuN,GACvC,IAAIuf,EAAOvf,GAAQA,EAAKuf,KAAOvf,EAAKuf,KAAO,EAC3C,GAAGA,GAAQ,GAAKA,GAAQ,EAAG,OAS5B,SAAgC3X,GAC/B,IAAImsC,EAAKnsC,EAAKE,WAAW,GACrB5gN,EAAI0gN,EAAKE,WAAW,GACpBwX,GAAa,MAALy0B,IAAgB,GAAI10B,GAAa,MAAL00B,IAAgB,GACxDA,GAAM,MACK,GAARz0B,GAAay0B,GAAM,OAAQA,GAAU,OAC7B,GAAR10B,GAAan4N,GAAK,MAAMA,GAAQ,KACnC,MAAO,CAAC9L,EAAE24P,EAAG7sP,EAAEA,EAAEm4N,KAAKA,EAAKC,KAAKA,GAhBE00B,CAAuBpsC,GACzD,IAAIxsN,EAAIwsN,EAAKE,WAAWyX,GAAQ,GAAK,EAAI,GACrC00B,EAAKrsC,EAAKE,WAAW,GACrBuX,GAAa,MAAL40B,IAAgB,GAAI30B,GAAa,MAAL20B,IAAgB,GAExD,GADAA,GAAM,MACK,GAAR30B,EAAW,KAAMlkO,EAAI,QAASA,GAAK,QACtC,GAAW,GAARikO,EAAW,KAAM40B,EAAK,MAAQA,GAAU,MAC3C,MAAO,CAAC74P,EAAEA,EAAE8L,EAAE+sP,EAAG50B,KAAKA,EAAKC,KAAKA,GA8ItB40B,CAAiBtsC,EAAM,EAAG5H,MA0UrC,GAAM,CAAEnnN,EAAE,WAAYqB,EApatB,SAAwB0tN,EAAMn2N,EAAQuuN,GAGrC,MAAO,EAFsB,GAAjB4H,EAAKA,EAAKxgN,OAAgB,EA3FvC,SAA2BwgN,EAAMn2N,EAAQuuN,GACxC,GAAGA,EAAKuf,KAAO,EAAG,OAAOwyB,GAAqBnqC,GAC9C,IAAIxsN,EAAEwsN,EAAKE,WAAwB,IAAb9H,EAAKuf,KAAa,EAAI,GAAInsJ,EAAEw0I,EAAKE,WAAwB,IAAb9H,EAAKuf,KAAa,EAAI,GACpFr4N,EAAE2qP,GAAcjqC,EAAM,GACtBn1I,EAAEo/K,GAAcjqC,EAAM,GAC1B,MAAO,CAAEr3N,EAAE,CAAC6K,EAAEA,EAAG8L,EAAEA,EAAE,GAAIm4N,KAAKn4N,EAAE,GAAIo4N,KAAKp4N,EAAE,IAAKvN,EAAE,CAACyB,EAAEg4E,EAAGlsE,EAAEurE,EAAE,GAAI4sJ,KAAK5sJ,EAAE,GAAI6sJ,KAAK7sJ,EAAE,KAuFvE0hL,CAAkBvsC,EAAMn2N,EAAYuuN,MAmahD,GAAM,CAAEnnN,EAAE,cAAeqB,EA5DzB,SAA2B0tN,GAG1B,MAAO,CAFKA,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW,MA2D3B,GAAM,CAAEjvN,EAAE,eAAgBqB,EAxD1B,SAA4B0tN,GAG3B,MAAO,CAFKA,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW,MAuD3B,GAAM,CAAEjvN,EAAE,WAAYqB,EA1MtB,SAAwB0tN,EAAMn2N,EAAQuuN,GACrC,OAAgB,GAAbA,EAAKuf,KAMT,SAA8B3X,GAC7B,IAAI/wN,EAAQ+wN,EAAKE,WAAW,KAAO,EAAK,EACpCssC,EAAOxsC,EAAKE,WAAW,EAAG,KAC9BF,EAAKxgN,GAAK,EACV,IAAI0sP,EAAYlsC,EAAKE,WAAW,GAEhC,OADAF,EAAKxgN,GAAK,GACH,CAACvQ,EAAMu9P,EAAMN,GAZMO,CAAqBzsC,GAIxC,CAHKA,EAAKE,WAAW,KAAO,EAAK,EAC7BF,EAAKE,WAAW,GACXF,EAAKE,WAAW,MAuMjC,GAAM,CAAEjvN,EAAE,WAAYqB,EAzUtB,SAAwB0tN,EAAMn2N,EAAQuuN,GACrC,IAAInpN,GAAuB,GAAf+wN,EAAKA,EAAKxgN,KAAY,EAClCwgN,EAAKxgN,GAAK,EACV,IAAIgtP,EAAOxsC,EAAKE,WAAW,GAG3B,OAFG9H,GAAqB,GAAbA,EAAKuf,OAAW3X,EAAKxgN,GAAK,IAE9B,CAACvQ,EAAMu9P,EADJpC,GAAcpqC,EAAM,EAAG5H,MAqUlC,GAAM,CAAEnnN,EAAE,YAAaqB,EAzcvB,SAAyB0tN,EAAMn2N,EAAQuuN,GACtC,IAAInpN,GAAyB,GAAjB+wN,EAAKA,EAAKxgN,OAAgB,EAClCgtP,EAAOxsC,EAAKE,WAAW,EAAG,KAE9B,GAAG9H,EAAM,OAAOA,EAAKuf,MACpB,KAAK,EAAG3X,EAAKxgN,GAAK,GAAQ,EAAG,MAC7B,KAAK,GAAQ,GAGd,MAAO,CAACvQ,EAAMu9P,EADHtC,GAAelqC,EAAM5zL,EAAGgsL,MAkcpC,GAAM,CAAEnnN,EAAE,cAAeqB,EAnKzB,SAA2B0tN,EAAMn2N,EAAQuuN,GACxC,IAAInpN,GAAyB,GAAjB+wN,EAAKA,EAAKxgN,OAAgB,EAClCgtP,EAAOxsC,EAAKE,WAAW,GACvB9zL,EAAI,EACR,GAAGgsL,EAAM,OAAOA,EAAKuf,MACpB,KAAK,EAAGvrM,EAAI,GAAI,MAChB,KAAK,GAAIA,EAAI,EAGd,OADA4zL,EAAKxgN,GAAK4sB,EACH,CAACn9B,EAAMu9P,KA2Jf,GAAM,CAAEv7P,EAAE,eAAgBqB,EAxb1B,SAA4B0tN,EAAMn2N,EAAQuuN,GACzC,IAAInpN,GAAyB,GAAjB+wN,EAAKA,EAAKxgN,OAAgB,EAClCgtP,EAAOxsC,EAAKE,WAAW,GACvB9zL,EAAI,EACR,GAAGgsL,EAAM,OAAOA,EAAKuf,MACpB,KAAK,EAAG3X,EAAKxgN,GAAK,GAAI4sB,EAAI,EAAG,MAC7B,KAAK,GAAIA,EAAI,GAGd,OADA4zL,EAAKxgN,GAAK4sB,EACH,CAACn9B,EAAMu9P,KAgbf,IAAM,IAGFE,GAAW,CACf,GAAM,GAAM,GAAM,GAClB,GAAM,GAAM,GAAM,GAClB,GAAM,GAAM,GAAM,GAClB,GAAM,GAAM,GAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,GAClB,GAAM,GAAM,IAAM,KAElB,WAAY,IAAI,IAAIzkQ,KAAKykQ,GAAUhB,GAASzjQ,GAAKyjQ,GAASgB,GAASzkQ,IAAnE,GAEA,IAAI0kQ,GAAQ,CACZ,EAAM,CAAE17P,EAAE,YAAaqB,EAAE64P,IACzB,EAAM,CAAEl6P,EAAE,WAAYqB,EAAEi5P,IACxB,EAAM,CAAEt6P,EAAE,YAAaqB,EAAEy4P,IACzB,EAAM,CAAE95P,EAAE,YAAaqB,EAAEk5P,IACzB,EAAM,CAAEv6P,EAAE,aAAcqB,EAAE44P,IAC1B,GAAM,CAAEj6P,EAAE,gBAAiBqB,EAAE84P,IAC7B,GAAM,CAAEn6P,EAAE,iBAAkBqB,EAAEg5P,IAC9B,GAAM,CAAEr6P,EAAE,aAAcqB,EAAE04P,IAC1B,GAAM,CAAE/5P,EAAE,cAAeqB,EAAE24P,IAC3B,GAAM,CAAEh6P,EAAE,mBAAoBqB,EAAE+4P,IAChC,GAAM,CAAEp6P,EAAE,UAAWqB,EAtIrB,SAAuB0tN,GACtBA,EAAKxgN,GAAK,EACV,IAAIgtP,EAAOxsC,EAAKE,WAAW,GACvBljM,EAAQgjM,EAAKE,WAAW,GACxBxpJ,EAAMspJ,EAAKE,WAAW,GACtB5gN,EAAI0gN,EAAKE,WAAW,GACpBr1I,EAAIm1I,EAAKE,WAAW,GAExB,MAAO,CAACssC,KAAMA,EAAMI,QAAe,EAAN5vO,EAAY6vO,GADhCpB,GAAWzuO,GAAS,EAAK,IACc05C,IAAIA,EAAKp3D,EAAEA,EAAGurE,EAAEA,KA+HjE,GAAM,CAAE55E,EAAE,YAAaqB,EA5HvB,SAAyB0tN,GAExB,OADAA,EAAKxgN,GAAK,EACH,CAACwgN,EAAKE,WAAW,MA2HzB,IAAM,IAEF4sC,GAAQ,CACZv5C,EAAM,CAAEtiN,EAAE,cAAeqB,EAtGzB,SAA2B0tN,GAE1B,OADAA,EAAKxgN,GAAK,EACH,CAAC,EAAG,KAqGZ,EAAM,CAAEvO,EAAE,cAAeqB,EArazB,SAA2B0tN,EAAMn2N,EAAQuuN,GACxC,IAAI20C,EAA4B,IAAjB/sC,EAAKA,EAAKxgN,EAAE,GAAa,EAAI,EAE5C,OADAwgN,EAAKxgN,GAAK44M,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,EAChC,CAACo1B,KAmaT,EAAM,CAAE97P,EAAE,YAAaqB,EApbvB,SAAyB0tN,EAAMn2N,EAAQuuN,GACtC,IAAI40C,EAA0B,IAAjBhtC,EAAKA,EAAKxgN,EAAE,GAAa,EAAI,EAE1C,OADAwgN,EAAKxgN,GAAK,EACH,CAACwtP,EAAOhtC,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,MAkb7D,EAAM,CAAE1mO,EAAE,gBAAiBqB,EAtc3B,SAA6B0tN,EAAMn2N,EAAQuuN,GAC1C4H,EAAKxgN,GAAI,EAIT,IAHA,IAAIk2B,EAASsqL,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,GACtDtkO,EAAI,GAEAtJ,EAAI,EAAGA,GAAK2rC,IAAU3rC,EAAGsJ,EAAEnH,KAAK8zN,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,IACrF,OAAOtkO,IAicR,EAAM,CAAEpC,EAAE,cAAeqB,EA7bzB,SAA2B0tN,EAAMn2N,EAAQuuN,GACxC,IAAI60C,EAA4B,IAAjBjtC,EAAKA,EAAKxgN,EAAE,GAAa,EAAI,EAE5C,OADAwgN,EAAKxgN,GAAK,EACH,CAACytP,EAASjtC,EAAKE,WAAW9H,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,MA2b/D,GAAM,CAAE1mO,EAAE,aAAcqB,EAjWxB,SAA0B0tN,EAAMn2N,EAAQuuN,GACvC4H,EAAKxgN,GAAK44M,GAAqB,GAAbA,EAAKuf,KAAY,EAAI,IAiWxC,GAAM,CAAE1mO,EAAE,gBAAiBqB,EAjd3B,SAA6B0tN,GAC5B,IAAI+sC,EAA2B,EAAjB/sC,EAAKA,EAAKxgN,EAAE,GAG1B,OADAwgN,EAAKxgN,GAAK,EACH,CAACutP,EAFQ,KAgdjB,GAAM,CAAE97P,EAAE,eAAgBqB,EA9Z1B,SAA4B0tN,GAE3B,OADAA,EAAKE,WAAW,GACTsqC,GAAuBxqC,KA6Z/B,GAAM,CAAE/uN,EAAE,mBAAoBqB,EAzZ9B,SAAgC0tN,GAE/B,OADAA,EAAKE,WAAW,GACTsqC,GAAuBxqC,KAwZ/B,IAAM,CAAE/uN,EAAE,iBAAkBqB,EApb5B,SAA8B0tN,GAC7B,IAAIgtC,EAA0B,IAAjBhtC,EAAKA,EAAKxgN,EAAE,GAAa,EAAI,EAE1C,OADAwgN,EAAKxgN,GAAK,EACH,CAACwtP,EAAOhtC,EAAKE,WAAW,MAkbhC,IAAM,IAKN,SAASitB,GAAentB,EAAMn2N,EAAQmjP,EAAM50B,GAC3C,GAAGA,EAAKuf,KAAO,EAAG,OAAOnB,GAAUxW,EAAMn2N,GAGzC,IAFA,IAAIqF,EAAS8wN,EAAKxgN,EAAI3V,EAClBwJ,EAAI,GACAtJ,EAAI,EAAGA,IAAMijP,EAAKnjP,SAAUE,EACnC,OAAOijP,EAAKjjP,GAAG,IACd,IAAK,WACJijP,EAAKjjP,GAAG,GAAK4gQ,GAAoB3qC,EAAM,EAAG5H,GAC1C/kN,EAAEnH,KAAK8gP,EAAKjjP,GAAG,IACf,MACD,IAAK,aACJijP,EAAKjjP,GAAG,GAAK2gQ,GAAkB1qC,EAAMgtB,EAAKjjP,GAAG,GAAIquN,GACjD/kN,EAAEnH,KAAK8gP,EAAKjjP,GAAG,IACf,MACD,IAAK,SACDquN,GAAqB,IAAbA,EAAKuf,OACfqV,EAAKjjP,GAAG,GAAG,GAAKi2N,EAAKE,WAAW,GAChC7sN,EAAEnH,KAAK8gP,EAAKjjP,GAAG,KACd,MACH,IAAK,UACL,IAAK,iBACL,IAAK,aACL,IAAK,cACJ,KAAM,eAAiBijP,EAAKjjP,GAAG,GAQlC,OADc,KAHdF,EAASqF,EAAS8wN,EAAKxgN,IAGNnM,EAAEnH,KAAKsqO,GAAUxW,EAAMn2N,IACjCwJ,EAIR,SAAS65O,GAAWltB,EAAMn2N,EAAQuuN,GAGjC,IAFA,IACI5sI,EAAGvvB,EADH/sD,EAAS8wN,EAAKxgN,EAAI3V,EACXqjQ,EAAO,GACZh+P,GAAU8wN,EAAKxgN,GACpB3V,EAASqF,EAAS8wN,EAAKxgN,EACvBy8C,EAAK+jK,EAAKA,EAAKxgN,GACfgsE,EAAIkgL,GAASzvM,GACH,KAAPA,GAAsB,KAAPA,IAAauvB,GAAY,KAAPvvB,EAAc0wM,GAAQG,IAAO9sC,EAAKA,EAAKxgN,EAAI,KAC3EgsE,GAAMA,EAAEl5E,EACL46P,EAAKhhQ,KAAK,CAACs/E,EAAEv6E,EAAGu6E,EAAEl5E,EAAE0tN,EAAMn2N,EAAQuuN,KADVoe,GAAUxW,EAAMn2N,GAGhD,OAAOqjQ,EAGR,SAASC,GAAgB76P,GAExB,IADA,IAAIe,EAAI,GACAtJ,EAAI,EAAGA,EAAIuI,EAAEzI,SAAUE,EAAG,CAEjC,IADA,IAAI/B,EAAIsK,EAAEvI,GAAIyJ,EAAI,GACVm6B,EAAI,EAAGA,EAAI3lC,EAAE6B,SAAU8jC,EAAG,CACjC,IAAI1lC,EAAID,EAAE2lC,GACV,GAAG1lC,EAAG,OAAOA,EAAE,IAEd,KAAK,EACTuL,EAAEtH,KAAK,IAAMjE,EAAE,GAAG7D,QAAQ,KAAK,MAAQ,KAAM,MACzC,QAASoP,EAAEtH,KAAKjE,EAAE,SACZuL,EAAEtH,KAAK,IAEfmH,EAAEnH,KAAKsH,EAAEW,KAAK,MAEf,OAAOd,EAAEc,KAAK,KAnEf24P,GAAM,IAAQA,GAAM,IAuEpB,IAAIM,GAAW,CACdC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPC,SAAU,IACVC,OAAQ,KAOT,SAASC,GAAaC,EAAU1B,EAAMp0C,GACrC,IAAI81C,EAAU,MAAO,cACrB,GAAG91C,EAAKuf,KAAO,KAAOu2B,EAASC,MAAQD,EAASC,IAAI3B,IAAQ,OAAO0B,EAAS70B,WAAWmzB,GACvF,IAAI0B,EAASC,IAAK,MAAO,cACzB,IAAIA,EAAMD,EAASC,IAAI3B,GACvB,GAAGp0C,EAAKuf,KAAO,EAGd,OAFG60B,EAAO,MAAOA,GAAO,OACrBA,EAAO,IAAGA,GAAQA,GACN,GAARA,EAAY,GAAK0B,EAASC,IAAI3B,EAAO,GAE7C,IAAI2B,EAAK,MAAO,cAChB,IAAI96P,EAAI,GACR,GAAG+kN,EAAKuf,KAAO,EAAG,OAAOu2B,EAASC,EAAI,IAAI,IACzC,KAAK,IAEJ,OADA96P,GAAe,GAAX86P,EAAI,GAAW,OAASD,EAAS70B,WAAW80B,EAAI,IAC7CA,EAAI,IAAMA,EAAI,GAAK96P,EAAIA,EAAI,IAAM66P,EAAS70B,WAAW80B,EAAI,IACjE,KAAK,IACJ,OAAe,MAAZ/1C,EAAKg2C,IAAoBF,EAAS70B,WAAWjhB,EAAKg2C,KAC9C,cAAgBF,EAASC,EAAI,IAAI,GACzC,KAAK,IAEL,QAAS,MAAO,aAAeD,EAASC,EAAI,IAAI,GAEjD,OAAOD,EAASC,EAAI,IAAI,GAAG,IAC1B,KAAK,KAEJ,OADA96P,GAAe,GAAX86P,EAAI,GAAW,OAAUD,EAAS70B,WAAW80B,EAAI,KAAO,cACrDA,EAAI,IAAMA,EAAI,GAAK96P,EAAIA,EAAI,IAAM66P,EAAS70B,WAAW80B,EAAI,IACjE,KAAK,MAAQ,OAAOD,EAASC,EAAI,IAAI93P,MAAM,GAAGuiB,KAAI,SAAS3oB,GAAQ,OAAOA,EAAKw8O,QAASt4O,KAAK,MAC7F,QACC,OAAI+5P,EAASC,EAAI,IAAI,GAAG,IACxB96P,GAAe,GAAX86P,EAAI,GAAW,OAAUD,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAAO,cACxDA,EAAI,IAAMA,EAAI,GAAK96P,EAAIA,EAAI,IAAM66P,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAFhC,eAKtC,SAASE,GAASH,EAAU1B,EAAMp0C,GACjC,OAxCD,SAAkCk2C,EAAOl2C,GACxC,IAAIk2C,KAAWl2C,GAAQA,EAAKuf,MAAQ,GAAKvf,EAAKuf,MAAQ,GAAI,MAAM,IAAI9zO,MAAM,oBAC1E,OAAGyqQ,EAAM9pQ,QAAQ,MAAQ,EAAU,IAAM8pQ,EAAQ,IAC1CA,EAqCAC,CAAyBN,GAAaC,EAAU1B,EAAMp0C,GAAOA,GAErE,SAASo2C,GAAkB/Z,EAAuBhtP,EAAO+vO,EAAM02B,EAAU91C,GACxE,IAEgB3C,EAAIC,EAAKp2M,EAAsB9L,EAF3CmkO,EAAQvf,GAAQA,EAAKuf,MAAS,EAC9BmC,EAAqC,CAACnxO,EAAE,CAAC2W,EAAE,EAAG9L,EAAE,GAAGzB,EAAE,CAACuN,EAAE,EAAG9L,EAAE,IAC7DurB,EAAQ,GAAgBytO,EAAK,EAAGiC,EAAQ,EAAMH,EAAM,GACxD,IAAI7Z,EAAQ,KAAOA,EAAQ,GAAG,GAAI,MAAO,GAEzC,IADA,IAAIia,GAAW,EAAGC,EAAK,GACflzC,EAAK,EAAGmzC,EAAQna,EAAQ,GAAG5qP,OAAQ4xN,EAAKmzC,IAASnzC,EAAI,CAC5D,IAAInpN,EAAImiP,EAAQ,GAAGh5B,GACnB,OAAOnpN,EAAE,IACR,IAAK,YACJysB,EAAM7yB,KAAK,IAAM6yB,EAAM5rB,OAAQ,MAChC,IAAK,WACJ4rB,EAAM7yB,KAAK,IAAM6yB,EAAM5rB,OAAQ,MAChC,IAAK,aACJ4rB,EAAM7yB,KAAK6yB,EAAM5rB,MAAQ,KAAM,MAEhC,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,SAEJ,GADAsiN,EAAK12L,EAAM5rB,MAAOuiN,EAAK32L,EAAM5rB,MAC1Bu7P,GAAW,EAAG,CAChB,OAAOja,EAAQ,GAAGia,GAAS,GAAG,IAC7B,KAAK,EAEJC,EAAKvlN,GAAK,IAAKqrM,EAAQ,GAAGia,GAAS,GAAG,IAAK,MAC5C,KAAK,EAEJC,EAAKvlN,GAAK,KAAMqrM,EAAQ,GAAGia,GAAS,GAAG,IAAK,MAC7C,QAGC,GAFAC,EAAK,GAEFv2C,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,+BAAiC4wP,EAAQ,GAAGia,GAAS,GAAG,IAEvFh5C,GAAUi5C,EACVD,GAAW,EAEZ3vO,EAAM7yB,KAAKwpN,EAAG03C,GAAS96P,EAAE,IAAImjN,GAC7B,MAED,IAAK,WACJA,EAAK12L,EAAM5rB,MAAOuiN,EAAK32L,EAAM5rB,MAC7B4rB,EAAM7yB,KAAKwpN,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK12L,EAAM5rB,MAAOuiN,EAAK32L,EAAM5rB,MAC7B4rB,EAAM7yB,KAAKwpN,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK12L,EAAM5rB,MAAOuiN,EAAK32L,EAAM5rB,MAC7B4rB,EAAM7yB,KAAKwpN,EAAG,IAAID,GAClB,MAED,IAAK,gBAEL,IAAK,cAEL,IAAK,YAEL,IAAK,iBACJ,MAGD,IAAK,SACRn2M,EAAIi4N,GAAgBjlO,EAAE,GAAG,GAAKwnO,EAAQ1hB,GAClCr5L,EAAM7yB,KAAK2rO,GAAgBv4N,EAAGq4N,IAC9B,MACD,IAAK,UACRr4N,EAAIk4N,EAAOD,GAAgBjlO,EAAE,GAAG,GAAKklO,EAAMpf,GAAS9lN,EAAE,GAAG,GACrDysB,EAAM7yB,KAAK2rO,GAAgBv4N,EAAGq4N,IAC9B,MACD,IAAK,WACR60B,EAAOl6P,EAAE,GAAG,GAAIgN,EAAIi4N,GAAgBjlO,EAAE,GAAG,GAAKwnO,EAAQ1hB,GAClDk2C,EAAQD,GAASH,EAAU1B,EAAMp0C,GAEjCr5L,EAAM7yB,KAAKoiQ,EAAQ,IAAMz2B,GAAgBv4N,EAAGq4N,IAC5C,MAED,IAAK,UACL,IAAK,aAEJ,IAAIk3B,EAAQv8P,EAAE,GAAG,GAAK+tB,EAAQ/tB,EAAE,GAAG,GAC/Bu8P,IAAMA,EAAO,GAEjB,IAAI56P,EAAe,IADnB46P,GAAQ,KACe,GAAK9vO,EAAM1oB,OAAOw4P,GACzC9vO,EAAMl1B,QAAUglQ,EACJ,SAATxuO,IAAiBA,EAAOpsB,EAAKwsC,SAChC1hB,EAAM7yB,KAAKm0B,EAAO,IAAMpsB,EAAKE,KAAK,KAAO,KACzC,MAED,IAAK,UACJ4qB,EAAM7yB,KAAKoG,EAAE,GAAK,OAAS,SAAU,MACtC,IAAK,SACJysB,EAAM7yB,KAAKoG,EAAE,IAAK,MACnB,IAAK,SACJysB,EAAM7yB,KAAKurC,OAAOnlC,EAAE,KAAM,MAC3B,IAAK,SAEJysB,EAAM7yB,KAAK,IAAMoG,EAAE,GAAGlO,QAAQ,KAAM,MAAQ,KAAM,MACnD,IAAK,SACJ26B,EAAM7yB,KAAKoG,EAAE,IAAK,MACnB,IAAK,WACRkB,EAAIokO,GAAgBtlO,EAAE,GAAG,GAAIklO,EAAO,CAAC7uO,EAAE6uO,GAAQsC,EAAQ1hB,GACnDr5L,EAAM7yB,KAAK+rO,GAAkBzkO,EAAI4kN,IACjC,MACD,IAAK,UACR5kN,EAAIokO,GAAgBtlO,EAAE,GAAG,GAAIwnO,EAAQ1hB,GACjCr5L,EAAM7yB,KAAK+rO,GAAkBzkO,EAAI4kN,IACjC,MACD,IAAK,YACRo0C,EAAOl6P,EAAE,GAAG,GAAIkB,EAAIlB,EAAE,GAAG,GACrBg8P,EAAQD,GAASH,EAAU1B,EAAMp0C,GACjCr5L,EAAM7yB,KAAKoiQ,EAAQ,IAAMr2B,GAAkBzkO,EAAI4kN,IAC/C,MACD,IAAK,aACJr5L,EAAM7yB,KAAK,OAAS6yB,EAAM5rB,MAAQ,KAClC,MAED,IAAK,gBACL,IAAK,cACJ,MAED,IAAK,UAEJs7P,EAAWn8P,EAAE,GAAG,GAChB,IAAIw8P,GAAOZ,EAASxgO,OAAO,IAAI+gO,EAAQ,KAAOP,EAAS,IAAI,IAAIO,GAC3Dx+P,EAAO6+P,EAAMA,EAAIriB,KAAO,cAAgBh1M,OAAOg3N,GAChDx+P,KAAQ8+P,KAAqB9+P,EAAO8+P,GAAoB9+P,IAC3D8uB,EAAM7yB,KAAK+D,GACX,MAED,IAAK,WAEJ,IAAkD++P,EAA9CC,EAAW38P,EAAE,GAAG,GAEpB,GAFyBm8P,EAAWn8P,EAAE,GAAG,KAEtC8lN,EAAKuf,MAAQ,GAGT,CACN,IAAItkO,EAAI,GAQR,GAP0C,SAArC66P,EAASe,IAAU,IAAI,IAAI,IAAI,KACW,QAArCf,EAASe,IAAU,IAAI,IAAI,IAAI,GACrCf,EAASe,GAASR,IAAYP,EAASe,GAASR,GAAS3hB,KAAO,IAClEz5O,EAAI66P,EAAS70B,WAAW60B,EAASe,GAASR,GAAS3hB,KAAK,GAAK,KAG1Dz5O,EAAI66P,EAAS70B,WAAWo1B,EAAQ,GAAI,KACtCP,EAASe,IAAYf,EAASe,GAASR,GAAUp7P,GAAK66P,EAASe,GAASR,GAAShiB,UAC/E,GAAGyhB,EAAS,IAAMA,EAAS,GAAGO,GAAUp7P,GAAK66P,EAAS,GAAGO,GAAShiB,SAClE,CACJ,IAAIyiB,EAAWjB,GAAaC,EAAUe,EAAS72C,GAAMzoM,MAAM,MACxDu/O,EAAST,EAAU,GAAIp7P,EAAI67P,EAAST,EAAU,GAC5Cp7P,GAAK,cAEX0rB,EAAM7yB,KAAKmH,GACX,MAnBG47P,EAAU,IAAGA,GAAWA,GACxBf,EAASe,KAAUD,EAAad,EAASe,GAASR,IAoBlDO,IAAYA,EAAa,CAACviB,KAAM,gBACpC1tN,EAAM7yB,KAAK8iQ,EAAWviB,MACtB,MAED,IAAK,WACJ,IAAI0iB,EAAK,IAAKC,EAAK,IACnB,GAAGV,GAAW,EAAG,CAEhB,OADAC,EAAK,GACEla,EAAQ,GAAGia,GAAS,GAAG,IAE7B,KAAK,EAAGS,EAAK/lN,GAAK,IAAKqrM,EAAQ,GAAGia,GAAS,GAAG,IAAMS,EAAI,MAExD,KAAK,EAAGA,EAAK/lN,GAAK,KAAMqrM,EAAQ,GAAGia,GAAS,GAAG,IAAMS,EAAI,MAEzD,KAAK,EAAGC,EAAKhmN,GAAK,IAAKqrM,EAAQ,GAAGia,GAAS,GAAG,IAAMU,EAAI,MAExD,KAAK,EAAGA,EAAKhmN,GAAK,KAAMqrM,EAAQ,GAAGia,GAAS,GAAG,IAAMU,EAAI,MACzD,QAEC,GAAGh3C,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,+BAAiC4wP,EAAQ,GAAGia,GAAS,GAAG,IAEvFA,GAAW,EAEZ3vO,EAAM7yB,KAAKijQ,EAAKpwO,EAAM5rB,MAAQi8P,GAAK,MAEpC,IAAK,YAGL,IAAK,cACJrwO,EAAM7yB,KAAK,SAAU,MAEtB,IAAK,SACJoT,EAAI,CAACA,EAAGhN,EAAE,GAAG,GAAIkB,EAAGlB,EAAE,GAAG,IACzB,IAAIo3J,EAAK,CAACpqJ,EAAGk4N,EAAKl4N,EAAG9L,EAAEgkO,EAAKhkO,GAC5B,GAAG06P,EAASmB,QAAQv3B,GAAYx4N,IAAK,CACpC,IAAIgwP,EAAWpB,EAASmB,QAAQv3B,GAAYx4N,IAC5Cyf,EAAM7yB,KAAKsiQ,GAAkBc,EAASx1B,EAAQpwE,EAAGwkG,EAAU91C,QAEvD,CACJ,IAAIm3C,GAAM,EACV,IAAI95C,EAAG,EAAEA,GAAIy4C,EAASsB,OAAO3lQ,SAAU4rN,EAGtC,GADAC,EAAKw4C,EAASsB,OAAO/5C,KAClBn2M,EAAEA,EAAIo2M,EAAG,GAAG/sN,EAAE2W,GAAKA,EAAEA,EAAIo2M,EAAG,GAAG3jN,EAAEuN,MACjCA,EAAE9L,EAAIkiN,EAAG,GAAG/sN,EAAE6K,GAAK8L,EAAE9L,EAAIkiN,EAAG,GAAG3jN,EAAEyB,GAApC,CACAurB,EAAM7yB,KAAKsiQ,GAAkB94C,EAAG,GAAIokB,EAAQpwE,EAAGwkG,EAAU91C,IACzDm3C,GAAM,EACN,MAEGA,GAAKxwO,EAAM7yB,KAAKoG,EAAE,IAEvB,MAED,IAAK,WACJysB,EAAM7yB,KAAK,IAAMihQ,GAAgB76P,EAAE,IAAM,KACzC,MAED,IAAK,aAEJ,MAED,IAAK,eACL,IAAK,mBACJo8P,EAAUjzC,EACV,MAED,IAAK,SAGL,IAAK,YACJ,MAED,IAAK,aACJ18L,EAAM7yB,KAAK,IACX,MAED,IAAK,aAGL,IAAK,eACJ6yB,EAAM7yB,KAAK,SAAU,MAEtB,IAAK,UAEJ6yB,EAAM7yB,KAAK,QAAUoG,EAAE,GAAGokE,IAAM,KAAOpkE,EAAE,GAAGu6P,GAAK,KACjD,MAED,IAAK,cACL,IAAK,eACL,IAAK,cACL,IAAK,WACL,IAAK,cAGL,IAAK,aAEL,IAAK,cACJ,MAED,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,YACJ,MAAM,IAAIhpQ,MAAM,oBAEjB,IAAK,YAEL,QAAS,MAAM,IAAIA,MAAM,+BAAiC4zC,OAAOnlC,IAGlE,GAAgB,GAAb8lN,EAAKuf,MAAc+2B,GAAW,IAA+C,GAD/D,CAAC,eAAgB,mBAAoB,eACLlqQ,QAAQiwP,EAAQ,GAAGh5B,GAAI,IAAW,CAElF,IAAIg0C,GAAQ,EACZ,QAFAn9P,EAAImiP,EAAQ,GAAGia,IAEN,GAAG,IAEX,KAAK,EAAGe,GAAQ,EAEhB,KAAK,EAEJd,EAAKvlN,GAAK,IAAK92C,EAAE,GAAG,IAAK,MAC1B,KAAK,EAAGm9P,GAAQ,EAEhB,KAAK,EAEJd,EAAKvlN,GAAK,KAAM92C,EAAE,GAAG,IAAK,MAC3B,QAGC,GAFAq8P,EAAK,GAEFv2C,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,+BAAiCyO,EAAE,GAAG,IAErEysB,EAAM7yB,MAAMujQ,EAAQd,EAAK,IAAM5vO,EAAM5rB,OAASs8P,EAAQ,GAAKd,IAC3DD,GAAW,GAGb,GAAG3vO,EAAMl1B,OAAS,GAAKuuN,EAAKob,IAAK,MAAM,IAAI3vO,MAAM,qBACjD,OAAOk7B,EAAM,GAId,SAASyuN,GAAyBxtB,EAAMn2N,EAAQuuN,GAC/C,IACI60B,EADA/9O,EAAS8wN,EAAKxgN,EAAI3V,EAAQkV,EAAmB,GAAbq5M,EAAKuf,KAAY,EAAI,EAC/CkV,EAAM7sB,EAAKE,WAAWnhN,GAChC,GAAU,OAAP8tO,EAAe,MAAO,CAAC,GAAGrW,GAAUxW,EAAMn2N,EAAO,IACpD,IAAImjP,EAAOE,GAAWltB,EAAM6sB,EAAKz0B,GAGjC,OAFGvuN,IAAWgjP,EAAM9tO,IAAKkuO,EAAOE,GAAentB,EAAMn2N,EAASgjP,EAAM9tO,EAAKiuO,EAAM50B,IAC/E4H,EAAKxgN,EAAItQ,EACF,CAAC89O,EAAMC,GAwBf,SAASyiB,GAA0B1vC,EAAMn2N,EAAQuuN,GAChD,IACI60B,EADA/9O,EAAS8wN,EAAKxgN,EAAI3V,EACZgjP,EAAM7sB,EAAKE,WAAW,GAC5B8sB,EAAOE,GAAWltB,EAAM6sB,EAAKz0B,GACjC,OAAU,OAAPy0B,EAAsB,CAAC,GAAGrW,GAAUxW,EAAMn2N,EAAO,KACjDA,IAAWgjP,EAAM,IAAGI,EAAOE,GAAentB,EAAM9wN,EAAS29O,EAAM,EAAGG,EAAM50B,IACpE,CAAC40B,EAAMC,IA8Bf,SAAS0iB,GAAc3vC,EAAMn2N,EAAQuuN,GACpC,IAAI9wN,EAAM04N,EAAKxgN,EAAI3V,EACf2tO,EAAO+R,GAAcvpB,GACT,GAAb5H,EAAKuf,QAAa3X,EAAKxgN,EAC1B,IAAIse,EA9BL,SAA4BkiM,GAC3B,IAAI7vN,EACJ,GAAuC,QAApC+jO,GAAelU,EAAKA,EAAKxgN,EAAI,GAAe,MAAO,CAACo9N,GAAW5c,GAAM,KACxE,OAAOA,EAAKA,EAAKxgN,IAChB,KAAK,EAAmB,OAAbwgN,EAAKxgN,GAAK,EAAU,CAAC,SAAU,KAC1C,KAAK,EAA+C,OAAzCrP,EAAuB,IAAnB6vN,EAAKA,EAAKxgN,EAAE,GAAYwgN,EAAKxgN,GAAK,EAAU,CAACrP,EAAE,KAC9D,KAAK,EAAuC,OAAjCA,EAAI6vN,EAAKA,EAAKxgN,EAAE,GAAIwgN,EAAKxgN,GAAK,EAAU,CAACrP,EAAE,KACtD,KAAK,EAAmB,OAAb6vN,EAAKxgN,GAAK,EAAU,CAAC,GAAG,KAEpC,MAAO,GAqBGowP,CAAmB5vC,GACzBhjM,EAAQgjM,EAAKE,WAAW,GACZ,GAAb9H,EAAKuf,OACP3X,EAAKE,WAAW,GACb9H,EAAKuf,MAAQ,GACD3X,EAAKE,WAAW,IAGhC,IAAI2vC,EApEL,SAAoC7vC,EAAMn2N,EAAQuuN,GACjD,IACI60B,EADA/9O,EAAS8wN,EAAKxgN,EAAI3V,EAAQkV,EAAmB,GAAbq5M,EAAKuf,KAAY,EAAI,EAC/CkV,EAAM7sB,EAAKE,WAAWnhN,GAChC,GAAU,OAAP8tO,EAAe,MAAO,CAAC,GAAGrW,GAAUxW,EAAMn2N,EAAO,IACpD,IAAImjP,EAAOE,GAAWltB,EAAM6sB,EAAKz0B,GAGjC,OAFGvuN,IAAWgjP,EAAM9tO,IAAKkuO,EAAOE,GAAentB,EAAMn2N,EAASgjP,EAAM9tO,EAAKiuO,EAAM50B,IAC/E4H,EAAKxgN,EAAItQ,EACF,CAAC89O,EAAMC,GA6DJ6iB,CAA2B9vC,EAAM14N,EAAM04N,EAAKxgN,EAAG44M,GACzD,MAAO,CAACof,KAAKA,EAAM15M,IAAIA,EAAI,GAAI22N,QAAQob,EAAKE,OAAS/yO,GAAS,EAAK,EAAGuqG,GAAGzpG,EAAI,IAE9E,SAASkyO,GAAcx4B,EAAMhsJ,EAAGX,EAAGutI,EAAMhxE,GAExC,IAAI6oH,EAAKxmB,GAAcj+J,EAAGX,EAAGu8D,GAGzBsnF,EAnCL,SAA4BnrO,GAC3B,GAAY,MAATA,EAAe,CAEjB,IAAI8P,EAAI2wN,GAAQ,GAMhB,OALA3wN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,GACjBxsN,EAAEwsN,YAAY,EAAG,OACVxsN,EACD,OAAoCwpO,GAAjB,iBAATt5O,EAAqCA,EACpC,GAwBT2sQ,CAAmB14B,EAAKxkO,GAG7Bm9P,EAAKnsC,GAAQ,GAEjBmsC,EAAGtwC,YAAY,EADH,IAEZswC,EAAGtwC,YAAY,EAAG,GAIlB,IADA,IAAIuwC,EAAKpsC,GAAQwT,EAAK44B,GAAGvmQ,QACjBE,EAAI,EAAGA,EAAIytO,EAAK44B,GAAGvmQ,SAAUE,EAAGqmQ,EAAGrmQ,GAAKytO,EAAK44B,GAAGrmQ,GAGxD,OADU4sN,EAAQ,CAACs5C,EAAIvhC,EAAIyhC,EAAIC,IAMhC,SAASC,GAAwBthQ,EAAMlF,EAAQuuN,GAC9C,IAAIy0B,EAAM99O,EAAKmxN,WAAW,GACtB8sB,EAAOE,GAAWn+O,EAAM89O,EAAKz0B,GAC7B/qB,EAAKt+L,EAAKmxN,WAAW,GAEzB,MAAO,CAAC8sB,EADG3/C,EAAK,EAAI8/C,GAAep+O,EAAMs+L,EAAI2/C,EAAM50B,GAAQ,MAK5D,IAAIk4C,GAA+BD,GAE/BE,GAA8BF,GAM9BG,GAA8BH,GAE9BI,GAAgCJ,GAEhCpE,GAAQ,CACZ14C,EAAQ,OACR,EAAQ,OACR,EAAQ,aACR,EAAQ,YACR,EAAQ,OACR,EAAQ,UACR,EAAQ,cACR,EAAQ,aACR,EAAQ,QACR,EAAQ,gBACR,GAAQ,OACR,GAAQ,aACR,GAAQ,cACR,GAAQ,cACR,GAAQ,cACR,GAAQ,OACR,GAAQ,QACR,GAAQ,MACR,GAAQ,iBACR,GAAQ,mBACR,GAAQ,iBACR,GAAQ,oBACR,GAAQ,OACR,GAAQ,UACR,GAAQ,mBACR,GAAQ,YACR,GAAQ,UACR,GAAQ,gBACR,GAAQ,cACR,GAAQ,YACR,GAAQ,UACR,GAAQ,cACR,GAAQ,eACR,GAAQ,eACR,GAAQ,OACR,GAAQ,cACR,GAAQ,QACR,GAAQ,gBACR,GAAQ,YACR,GAAQ,QACR,GAAQ,SACR,GAAQ,kBACR,GAAQ,eACR,GAAQ,OACR,GAAQ,MACR,GAAQ,OACR,GAAQ,QACR,GAAQ,QACR,GAAQ,gBACR,GAAQ,cACR,GAAQ,SACR,GAAQ,aACR,GAAQ,YACR,GAAQ,cACR,GAAQ,eACR,GAAQ,eACR,GAAQ,eACR,GAAQ,mBACR,GAAQ,mBACR,GAAQ,eACR,GAAQ,cACR,GAAQ,iBACR,GAAQ,eACR,GAAQ,cACR,GAAQ,kBACR,GAAQ,cACR,GAAQ,YACR,GAAQ,cACR,GAAQ,YACR,GAAQ,gBACR,GAAQ,OACR,GAAQ,SACR,GAAQ,cACR,GAAQ,YACR,GAAQ,eACR,GAAQ,mBACR,GAAQ,WACR,GAAQ,aACR,GAAQ,UACR,GAAQ,QACR,GAAQ,gBACR,GAAQ,cACR,GAAQ,cACR,GAAQ,QACR,GAAQ,UACR,GAAQ,OACR,GAAQ,SACR,GAAQ,YACR,GAAQ,UACR,GAAQ,eACR,GAAQ,gBACR,GAAQ,iBACR,IAAQ,iBACR,IAAQ,oBACR,IAAQ,oBACR,IAAQ,WACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,eACR,IAAQ,SACR,IAAQ,cACR,IAAQ,gBACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,UACR,IAAQ,UACR,IAAQ,QACR,IAAQ,MACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,UACR,IAAQ,aACR,IAAQ,eACR,IAAQ,eACR,IAAQ,aACR,IAAQ,cACR,IAAQ,cACR,IAAQ,kBACR,IAAQ,YACR,IAAQ,iBACR,IAAQ,cACR,IAAQ,eACR,IAAQ,eACR,IAAQ,YACR,IAAQ,QACR,IAAQ,YACR,IAAQ,UACR,IAAQ,gBACR,IAAQ,UACR,IAAQ,aACR,IAAQ,aACR,IAAQ,gBACR,IAAQ,YACR,IAAQ,aACR,IAAQ,UACR,IAAQ,OACR,IAAQ,cACR,IAAQ,UACR,IAAQ,YACR,IAAQ,iBACR,IAAQ,cACR,IAAQ,oBACR,IAAQ,gBACR,IAAQ,eACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,cACR,IAAQ,qBACR,IAAQ,SACR,IAAQ,cACR,IAAQ,WACR,IAAQ,WACR,IAAQ,eACR,IAAQ,eACR,IAAQ,iBACR,IAAQ,eACR,IAAQ,kBACR,IAAQ,qBACR,IAAQ,aACR,IAAQ,YACR,IAAQ,YACR,IAAQ,gBACR,IAAQ,cACR,IAAQ,eACR,IAAQ,kBACR,IAAQ,oBACR,IAAQ,kBACR,IAAQ,iBACR,IAAQ,UACR,IAAQ,YACR,IAAQ,YACR,IAAQ,aACR,IAAQ,cACR,IAAQ,UACR,IAAQ,SACR,IAAQ,cACR,IAAQ,UACR,IAAQ,oBACR,IAAQ,kBACR,IAAQ,QACR,IAAQ,aACR,IAAQ,YACR,IAAQ,cACR,IAAQ,mBACR,IAAQ,oBACR,IAAQ,cACR,IAAQ,cACR,IAAQ,mBACR,IAAQ,eACR,IAAQ,aACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,aACR,IAAQ,cACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,YACR,IAAQ,cACR,IAAQ,eACR,IAAQ,aACR,IAAQ,aACR,IAAQ,gBACR,IAAQ,eACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,qBACR,IAAQ,WACR,IAAQ,OACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,aACR,IAAQ,aACR,IAAQ,eACR,IAAQ,iBACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,qBACR,IAAQ,YACR,IAAQ,oBACR,IAAQ,WACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,WACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,mBACR,IAAQ,iBACR,IAAQ,eACR,IAAQ,cACR,IAAQ,YACR,IAAQ,kBACR,IAAQ,oBACR,IAAQ,iBACR,IAAQ,YACR,IAAQ,aACR,IAAQ,oBACR,IAAQ,aACR,IAAQ,eACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,qBACR,IAAQ,mBACR,IAAQ,qBACR,IAAQ,yBACR,IAAQ,cACR,IAAQ,aACR,IAAQ,mBACR,IAAQ,sBACR,IAAQ,eACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,cACR,IAAQ,kBACR,IAAQ,cACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,2BACR,IAAQ,eACR,IAAQ,iBACR,IAAQ,aACR,IAAQ,iBACR,IAAQ,YACR,IAAQ,mBACR,IAAQ,cACR,IAAQ,wBACR,IAAQ,kBACR,IAAQ,qBACR,IAAQ,kBACR,IAAQ,kBACR,IAAQ,kBACR,IAAQ,qBACR,IAAQ,aACR,IAAQ,iBACR,IAAQ,eACR,IAAQ,mBACR,IAAQ,aACR,IAAQ,eACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,iBACR,IAAQ,uBACR,IAAQ,0BACR,IAAQ,iBACR,IAAQ,eACR,IAAQ,YACR,IAAQ,cACR,IAAQ,aACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,qBACR,IAAQ,cACR,IAAQ,mBACR,IAAQ,uBACR,IAAQ,mBACR,IAAQ,kBACR,IAAQ,mBACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,eACR,IAAQ,eACR,IAAQ,oBACR,IAAQ,sBACR,IAAQ,sBACR,IAAQ,mBACR,IAAQ,qBACR,IAAQ,qBACR,IAAQ,gBACR,IAAQ,aACR,IAAQ,YACR,IAAQ,cACR,IAAQ,mBACR,IAAQ,gBACR,IAAQ,wBACR,IAAQ,qBACR,IAAQ,SACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,mBACR,IAAQ,mBACR,IAAQ,oBACR,IAAQ,eACR,IAAQ,oBACR,IAAQ,uBACR,IAAQ,cACR,IAAQ,WACR,IAAQ,WACR,IAAQ,aACR,IAAQ,aACR,IAAQ,eACR,IAAQ,eACR,IAAQ,cACR,IAAQ,qBACR,IAAQ,yBACR,IAAQ,mBACR,IAAQ,WACR,IAAQ,iBACR,IAAQ,iBACR,IAAQ,eACR,IAAQ,YACR,IAAQ,mBACR,IAAQ,mBACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,oBACR,IAAQ,mBACR,IAAQ,cACR,IAAQ,gBACR,IAAQ,WACR,IAAQ,YACR,IAAQ,cACR,IAAQ,cACR,IAAQ,mBACR,IAAQ,oBACR,IAAQ,iBACR,IAAQ,YACR,IAAQ,SACR,IAAQ,SACR,IAAQ,gBACR,IAAQ,mBACR,IAAQ,iBACR,IAAQ,WACR,IAAQ,gBACR,IAAQ,gBACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,iBACR,IAAQ,oBACR,IAAQ,sBACR,IAAQ,aACR,IAAQ,cACR,IAAQ,cACR,IAAQ,oBACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,qBAKJs4C,GAAO,CACXt4C,EAAQ,QACR,EAAQ,KACR,EAAQ,OACR,EAAQ,UACR,EAAQ,MACR,EAAQ,UACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,SACR,GAAQ,KACR,GAAQ,MACR,GAAQ,QACR,GAAQ,SACR,GAAQ,QACR,GAAQ,MACR,GAAQ,MACR,GAAQ,MACR,GAAQ,OACR,GAAQ,KACR,GAAQ,OACR,GAAQ,MACR,GAAQ,KACR,GAAQ,QACR,GAAQ,MACR,GAAQ,MACR,GAAQ,OACR,GAAQ,QACR,GAAQ,SACR,GAAQ,QACR,GAAQ,OACR,GAAQ,MACR,GAAQ,MACR,GAAQ,QACR,GAAQ,OACR,GAAQ,QACR,GAAQ,MACR,GAAQ,KACR,GAAQ,MACR,GAAQ,MACR,GAAQ,SACR,GAAQ,OACR,GAAQ,WACR,GAAQ,OACR,GAAQ,OACR,GAAQ,SACR,GAAQ,MACR,GAAQ,OACR,GAAQ,OACR,GAAQ,SACR,GAAQ,QACR,GAAQ,SACR,GAAQ,SACR,GAAQ,OACR,GAAQ,OACR,GAAQ,SACR,GAAQ,KACR,GAAQ,KACR,GAAQ,OACR,GAAQ,MACR,GAAQ,OACR,GAAQ,OACR,GAAQ,MACR,GAAQ,OACR,GAAQ,QACR,GAAQ,OACR,GAAQ,OACR,GAAQ,MACR,GAAQ,QACR,GAAQ,OACR,GAAQ,UACR,GAAQ,OACR,GAAQ,SACR,GAAQ,SACR,GAAQ,MACR,GAAQ,QACR,GAAQ,OACR,GAAQ,UACR,GAAQ,SACR,GAAQ,SACR,GAAQ,SACR,GAAQ,WACR,GAAQ,SACR,GAAQ,YACR,GAAQ,QACR,GAAQ,OACR,GAAQ,OACR,GAAQ,OACR,GAAQ,WACR,GAAQ,SACR,GAAQ,QACR,GAAQ,UACR,GAAQ,SACR,GAAQ,YACR,GAAQ,cACR,GAAQ,YACR,GAAQ,SACR,GAAQ,QACR,GAAQ,OACR,GAAQ,OACR,IAAQ,SACR,IAAQ,UACR,IAAQ,UACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,cACR,IAAQ,WACR,IAAQ,YACR,IAAQ,MACR,IAAQ,OACR,IAAQ,OACR,IAAQ,QACR,IAAQ,QACR,IAAQ,SACR,IAAQ,OACR,IAAQ,QACR,IAAQ,QACR,IAAQ,OACR,IAAQ,UACR,IAAQ,aACR,IAAQ,OACR,IAAQ,QACR,IAAQ,YACR,IAAQ,OACR,IAAQ,OACR,IAAQ,QACR,IAAQ,SACR,IAAQ,WACR,IAAQ,UACR,IAAQ,IACR,IAAQ,IACR,IAAQ,QACR,IAAQ,SACR,IAAQ,QACR,IAAQ,UACR,IAAQ,QACR,IAAQ,WACR,IAAQ,SACR,IAAQ,OACR,IAAQ,YACR,IAAQ,YACR,IAAQ,MACR,IAAQ,MACR,IAAQ,MACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,WACR,IAAQ,WACR,IAAQ,OACR,IAAQ,UACR,IAAQ,WACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,gBACR,IAAQ,iBACR,IAAQ,WACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,iBACR,IAAQ,aACR,IAAQ,QACR,IAAQ,UACR,IAAQ,WACR,IAAQ,QACR,IAAQ,QACR,IAAQ,OACR,IAAQ,OACR,IAAQ,SACR,IAAQ,aACR,IAAQ,MACR,IAAQ,QACR,IAAQ,QACR,IAAQ,OACR,IAAQ,WACR,IAAQ,UACR,IAAQ,OACR,IAAQ,UACR,IAAQ,YACR,IAAQ,UACR,IAAQ,OACR,IAAQ,UACR,IAAQ,UACR,IAAQ,OACR,IAAQ,WACR,IAAQ,gBACR,IAAQ,aACR,IAAQ,eACR,IAAQ,WACR,IAAQ,YACR,IAAQ,WACR,IAAQ,OACR,IAAQ,SACR,IAAQ,OACR,IAAQ,UACR,IAAQ,QACR,IAAQ,QACR,IAAQ,YACR,IAAQ,UACR,IAAQ,aACR,IAAQ,aACR,IAAQ,WACR,IAAQ,QACR,IAAQ,UACR,IAAQ,WACR,IAAQ,QACR,IAAQ,SACR,IAAQ,OACR,IAAQ,OACR,IAAQ,UACR,IAAQ,YACR,IAAQ,MACR,IAAQ,OACR,IAAQ,OACR,IAAQ,UACR,IAAQ,UACR,IAAQ,QACR,IAAQ,MACR,IAAQ,OACR,IAAQ,UACR,IAAQ,SACR,IAAQ,WACR,IAAQ,SACR,IAAQ,aACR,IAAQ,OACR,IAAQ,OACR,IAAQ,OACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,OACR,IAAQ,gBACR,IAAQ,WACR,IAAQ,aACR,IAAQ,cACR,IAAQ,gBACR,IAAQ,kBACR,IAAQ,gBACR,IAAQ,WACR,IAAQ,OACR,IAAQ,QACR,IAAQ,aACR,IAAQ,KACR,IAAQ,QACR,IAAQ,SACR,IAAQ,YACR,IAAQ,cACR,IAAQ,iBACR,IAAQ,OACR,IAAQ,gBACR,IAAQ,WACR,IAAQ,cACR,IAAQ,WACR,IAAQ,iBACR,IAAQ,aACR,IAAQ,YACR,IAAQ,eACR,IAAQ,eACR,IAAQ,cACR,IAAQ,aACR,IAAQ,cACR,IAAQ,eACR,IAAQ,SACR,IAAQ,WACR,IAAQ,UACR,IAAQ,UACR,IAAQ,YACR,IAAQ,UACR,IAAQ,SACR,IAAQ,SACR,IAAQ,aACR,IAAQ,YACR,IAAQ,OACR,IAAQ,YACR,IAAQ,QACR,IAAQ,OACR,IAAQ,SACR,IAAQ,YACR,IAAQ,QACR,IAAQ,YACR,IAAQ,WACR,IAAQ,UACR,IAAQ,cACR,IAAQ,cACR,IAAQ,SACR,IAAQ,eACR,IAAQ,WACR,IAAQ,YACR,IAAQ,UACR,IAAQ,WACR,IAAQ,cACR,IAAQ,MACR,IAAQ,SACR,IAAQ,UACR,IAAQ,QACR,IAAQ,UACR,IAAQ,UACR,IAAQ,WACR,IAAQ,WACR,IAAQ,UACR,IAAQ,SACR,IAAQ,QACR,IAAQ,WACR,IAAQ,QACR,IAAQ,YACR,IAAQ,UACR,IAAQ,MACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,OACR,IAAQ,QACR,IAAQ,UACR,IAAQ,UACR,IAAQ,QACR,IAAQ,OACR,IAAQ,OACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,WACR,IAAQ,aACR,IAAQ,cACR,IAAQ,OACR,IAAQ,WACR,IAAQ,OACR,IAAQ,gBACR,IAAQ,YACR,IAAQ,cACR,IAAQ,QACR,IAAQ,iBACR,IAAQ,kBACR,IAAQ,kBACR,IAAQ,iBACR,IAAQ,UACR,IAAQ,UACR,IAAQ,WACR,IAAQ,QACR,IAAQ,UACR,IAAQ,aACR,IAAQ,eACR,IAAQ,oBACR,IAAQ,QACR,IAAQ,UACR,IAAQ,aACR,IAAQ,eACR,IAAQ,QACR,IAAQ,cACR,IAAQ,cACR,IAAQ,WACR,IAAQ,eACR,IAAQ,YACR,IAAQ,WACR,IAAQ,WACR,IAAQ,OACR,IAAQ,OACR,IAAQ,UACR,IAAQ,QACR,IAAQ,SACR,IAAQ,OACR,IAAQ,WACR,IAAQ,gBACR,IAAQ,YACR,IAAQ,kBACR,IAAQ,eACR,IAAQ,gBACR,IAAQ,mBACR,IAAQ,cACR,IAAQ,gBACR,IAAQ,cACR,IAAQ,WACR,IAAQ,MAER,IAAQ,YACR,IAAQ,aACR,IAAQ,qBACR,IAAQ,mBACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,QACR,IAAQ,QACR,IAAQ,UACR,IAAQ,QACR,IAAQ,SACR,IAAQ,OACR,IAAQ,SACR,IAAQ,UACR,IAAQ,QACR,IAAQ,QACR,IAAQ,QACR,IAAQ,aACR,IAAQ,cACR,IAAQ,YACR,IAAQ,SACR,IAAQ,UACR,IAAQ,QACR,IAAQ,YACR,IAAQ,YACR,IAAQ,aACR,IAAQ,SACR,IAAQ,WACR,IAAQ,QACR,IAAQ,SACR,IAAQ,SACR,IAAQ,QACR,IAAQ,SACR,IAAQ,MACR,IAAQ,OACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,OACR,IAAQ,OACR,IAAQ,WACR,IAAQ,WACR,IAAQ,UACR,IAAQ,WACR,IAAQ,OACR,IAAQ,YACR,IAAQ,YACR,IAAQ,UACR,IAAQ,aACR,IAAQ,aACR,IAAQ,QACR,IAAQ,QACR,IAAQ,WACR,IAAQ,WACR,IAAQ,UACR,IAAQ,SACR,IAAQ,WACR,IAAQ,UACR,IAAQ,QACR,IAAQ,UACR,IAAQ,WACR,IAAQ,YACR,IAAQ,WACR,IAAQ,aACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,WACR,IAAQ,YACR,IAAQ,YACR,IAAQ,YACR,IAAQ,YACR,IAAQ,YACR,IAAQ,cACR,IAAQ,UACR,IAAQ,YACR,IAAQ,WACR,IAAQ,UACR,IAAQ,UACR,IAAQ,UACR,IAAQ,WACR,IAAQ,UACR,IAAQ,cACR,IAAQ,MACR,IAAQ,cACR,IAAQ,MACR,IAAQ,aACR,IAAQ,gBACR,IAAQ,UACR,IAAQ,eACR,IAAQ,UACR,IAAQ,WACR,IAAQ,SACR,IAAQ,YACR,IAAQ,cAEJq4C,GAAW,CACf,EAAQ,EACR,EAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IA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","file":"static/js/2.f20b8035.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\r\n * A collection of utility functions for various type checks and conversion\r\n * @todo Review unused functions for removal\r\n * @hidden\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { percent, Percent, isPercent } from \"./Percent\";\r\n\r\n\r\n/**\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\nexport type Public = {[P in keyof T]: T[P]};\r\n\r\n\r\n/**\r\n * `Keyof` is the same as `keyof T` except it only accepts string keys, not numbers or symbols.\r\n */\r\nexport type Keyof = Extract;\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * TYPE CHECK\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns `true` if value is not a number (NaN).\r\n *\r\n * @param value Input value\r\n * @return Is NaN?\r\n * @deprecated Is not used anywhere. JS built-in isNaN is used everywhere. Maybe we don't need this, or if we do, then we should use it everywhere\r\n */\r\nexport function isNaN(value: number): boolean {\r\n\treturn Number(value) !== value;\r\n}\r\n\r\n/**\r\n * Represents a type for all available JavaScript variable types.\r\n */\r\nexport type Type\r\n\t= \"[object Object]\"\r\n\t| \"[object Array]\"\r\n\t| \"[object String]\"\r\n\t| \"[object Number]\"\r\n\t| \"[object Boolean]\"\r\n\t| \"[object Date]\";\r\n\r\n/**\r\n * Returns a type of the value.\r\n *\r\n * @param value Input value\r\n * @return Type of the value\r\n */\r\nexport function getType(value: A): Type {\r\n\treturn ({}).toString.call(value) as Type;\r\n}\r\n\r\n/**\r\n * Returns a default value if the passed in value is empty.\r\n *\r\n * @param value Input value\r\n * @param optional Default value\r\n * @return Value or default value whichever is available\r\n * @deprecated Not used anywhere\r\n */\r\nexport function getDefault(value: null | undefined | A, optional: A): A {\r\n\treturn value || optional;\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is a string.\r\n *\r\n * @param value Value\r\n * @return Is string?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkString(value: any): value is string {\r\n\tif (typeof value === \"string\") {\r\n\t\treturn true;\r\n\t} else {\r\n\t\tthrow new Error(\"Expected a string but got \" + getType(value));\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is a boolean.\r\n *\r\n * @param value Value\r\n * @return Is boolean?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkBoolean(value: any): value is boolean {\r\n\tif (typeof value === \"boolean\") {\r\n\t\treturn true;\r\n\t} else {\r\n\t\tthrow new Error(\"Expected a boolean but got \" + getType(value));\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is a number.\r\n *\r\n * @param value Value\r\n * @return Is number?\r\n * @throws {Error}\r\n */\r\nexport function checkNumber(value: any): value is number {\r\n\tif (typeof value === \"number\") {\r\n\t\tif (isNaN(value)) {\r\n\t\t\tthrow new Error(\"Expected a number but got NaN\");\r\n\t\t}\r\n\t} else {\r\n\t\tthrow new Error(\"Expected a number but got \" + getType(value));\r\n\t}\r\n\treturn true;\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is an object.\r\n *\r\n * @param value Value\r\n * @return Is object?\r\n * @throws {Error}\r\n * @todo Is the input type correct?\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkObject(value: {}): value is {} {\r\n\tconst t = getType(value);\r\n\r\n\tif (t === \"[object Object]\") {\r\n\t\treturn true;\r\n\r\n\t} else {\r\n\t\tthrow new Error(\"Expected an object but got \" + t);\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is an array.\r\n *\r\n * @param value Value\r\n * @return Is array?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkArray(value: Array): value is Array {\r\n\tif (Array.isArray(value)) {\r\n\t\treturn true;\r\n\r\n\t} else {\r\n\t\tthrow new Error(\"Expected an array but got \" + getType(value));\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if the passed in value is a Date object.\r\n *\r\n * @param value Value\r\n * @return Is Date object?\r\n * @throws {Error}\r\n * @deprecated Not used anywhere\r\n */\r\nexport function checkDate(value: Date): value is Date {\r\n\tconst t = getType(value);\r\n\r\n\tif (t === \"[object Date]\") {\r\n\t\treturn true;\r\n\r\n\t} else {\r\n\t\tthrow new Error(\"Expected a date but got \" + t);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * TYPE CASTING\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Casts string or a number into string.\r\n *\r\n * @param value Input\r\n * @return String value\r\n * @deprecated Not used anywhere\r\n */\r\nexport function castString(value: string | number): string {\r\n\tif (typeof value === \"string\") {\r\n\t\treturn value;\r\n\r\n\t} else if (typeof value === \"number\") {\r\n\t\treturn \"\" + value;\r\n\r\n\t} else {\r\n\t\tthrow new Error(\"Expected a string or number but got \" + getType(value));\r\n\t}\r\n}\r\n\r\n/**\r\n * Casts string or a number into a number.\r\n *\r\n * @param value Input value\r\n * @return Number value\r\n * @throws {Error}\r\n */\r\nexport function castNumber(value: string | number | Date): number {\r\n\tif (typeof value === \"string\") {\r\n\t\tconst number = +value;\r\n\r\n\t\tif (isNaN(number)) {\r\n\t\t\tthrow new Error(\"Cannot cast string \" + JSON.stringify(value) + \" to a number\");\r\n\r\n\t\t} else {\r\n\t\t\treturn number;\r\n\t\t}\r\n\r\n\t} else if (typeof value === \"number\") {\r\n\t\tif (isNaN(value)) {\r\n\t\t\tthrow new Error(\"Expected a number but got NaN\");\r\n\r\n\t\t} else {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t} else {\r\n\t\tconst t = getType(value);\r\n\r\n\t\tif (t === \"[object Date]\") {\r\n\t\t\treturn value.getTime();\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Expected a string, number, or date but got \" + t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Casts number, string or Date into a Date object.\r\n *\r\n * @param value Input value\r\n * @return Date object\r\n * @deprecated Not used anywhere\r\n * @throws {Error}\r\n * @hidden\r\n * @deprecated\r\n */\r\n/*export function castDate(value: string | number | Date, formatter?: DateFormatter): Date {\r\n\tif (typeof value === \"string\") {\r\n\t\tif (formatter) {\r\n\t\t\treturn formatter.parse(value);\r\n\t\t}\r\n\t\treturn new Date(value);\r\n\r\n\t} else if (typeof value === \"number\") {\r\n\t\treturn new Date(value);\r\n\r\n\t} else {\r\n\t\tconst t = getType(value);\r\n\r\n\t\tif (t === \"[object Date]\") {\r\n\t\t\treturn value;\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Expected a string, number, or date but got \" + t);\r\n\t\t}\r\n\t}\r\n}*/\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * QUICK CONVERSION\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n\r\n/**\r\n * Converts any value into `boolean`.\r\n *\r\n * @param value Source value\r\n * @return `true` or `false`\r\n */\r\nexport function toBoolean(value: any): boolean {\r\n\treturn value ? true : false;\r\n}\r\n\r\n/**\r\n * Converts any value into a `number`.\r\n *\r\n * @param value Source value\r\n * @return Number representation of value\r\n */\r\nexport function toNumber(value: any): number {\r\n\tif (hasValue(value) && !isNumber(value)) {\r\n\t\tlet converted = Number(value);\r\n\t\tif (isNaN(converted) && isString(value) && value != \"\") {\r\n\t\t\treturn toNumber(value.replace(/[^0-9.\\-]+/g, ''));\r\n\t\t}\r\n\t\treturn converted;\r\n\t}\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * Converts any value into a string (text).\r\n *\r\n * @param value Source value\r\n * @return String representation of the input\r\n */\r\nexport function toText(value: any): string {\r\n\tif (hasValue(value) && !isString(value)) {\r\n\t\tif (isNumber(value)) {\r\n\t\t\treturn castString(value);\r\n\t\t}\r\n\t\telse if (isObject(value)) {\r\n\t\t\treturn value.toString();\r\n\t\t}\r\n\t}\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * Converts any value to a number or [[Percent]].\r\n *\r\n * If the parameter is a string and contains \"%\", it will\r\n * convert it into a [[Percent]].\r\n *\r\n * Otherwise, it will convert into a number.\r\n *\r\n * @param value Number or percent\r\n * @return Percent object\r\n */\r\nexport function toNumberOrPercent(value: any): number | Percent {\r\n\tif (!hasValue(value) || isNumber(value) || isPercent(value)) {\r\n\t\treturn value;\r\n\t}\r\n\tif (isString(value) && value.indexOf(\"%\") != -1) {\r\n\t\treturn percent(toNumber(value));\r\n\t}\r\n\treturn toNumber(value);\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * VALUE PRESENCE CHECK\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines an optional value that can be of any type or `undefined`.\r\n */\r\nexport type Optional = A | undefined;\r\n\r\n/**\r\n * Checks if a variable has a value.\r\n *\r\n * @param a Input value\r\n * @returns Has value?\r\n */\r\nexport function hasValue(a: Optional | null): a is A {\r\n\treturn a != null;\r\n}\r\n\r\n/**\r\n * Returns a value or throws an {Error} exception if the variable has not\r\n * value.\r\n *\r\n * @param a Input value\r\n * @returns Value\r\n */\r\nexport function getValue(a: Optional | null): A {\r\n\tif (hasValue(a)) {\r\n\t\treturn a;\r\n\r\n\t} else {\r\n\t\tthrow new Error(\"Value doesn't exist\");\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns a value, or returns the default value if it doesn't have a value.\r\n *\r\n * @param a Input value\r\n * @returns Value\r\n */\r\nexport function getValueDefault(a: Optional | null, defaultValue: A): A {\r\n\tif (hasValue(a)) {\r\n\t\treturn a;\r\n\r\n\t} else {\r\n\t\treturn defaultValue;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * TYPE CHECK\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Checks if parameter is `Date`.\r\n *\r\n * @param value Input value\r\n * @return Is Date?\r\n */\r\nexport function isDate(value: any): value is Date {\r\n\treturn getType(value) === \"[object Date]\";\r\n}\r\n\r\n/**\r\n * Checks if parameter is `string`.\r\n *\r\n * @param value Input value\r\n * @return Is string?\r\n */\r\nexport function isString(value: any): value is string {\r\n\treturn typeof value === \"string\";\r\n}\r\n\r\n/**\r\n * Checks if parameter is `number`.\r\n *\r\n * @param value Input value\r\n * @return Is number?\r\n */\r\nexport function isNumber(value: any): value is number {\r\n\treturn typeof value === \"number\" && Number(value) == value;\r\n}\r\n\r\n/**\r\n * Checks if parameter is `object`.\r\n *\r\n * @param value Input value\r\n * @return Is object?\r\n */\r\nexport function isObject(value: any): value is object {\r\n\treturn typeof value === \"object\" && value != null;\r\n}\r\n\r\n/**\r\n * Checks if parameter is `Array`.\r\n *\r\n * @param value Input value\r\n * @return Is Array?\r\n */\r\nexport function isArray(value: any): value is Array {\r\n\treturn Array.isArray(value);\r\n}\r\n","/**\r\n * A collection of Math-related functions\r\n *\r\n * @todo Comment trigonometric functions?\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { IRange } from \"../defs/IRange\";\r\nimport * as $type from \"./Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * CONSTANTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nexport const PI = Math.PI;\r\nexport const HALFPI = PI / 2;\r\nexport const RADIANS = PI / 180;\r\nexport const DEGREES = 180 / PI;\r\n\r\n/**\r\n * Converts any value and fits it into a specific value range.\r\n *\r\n * @param value Source value\r\n * @param min Minimum allowable value\r\n * @param max Maximum allowable value\r\n * @return Number\r\n */\r\nexport function toNumberRange(value: any, min: number, max: number): number {\r\n\tif ($type.hasValue(value)) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\treturn fitToRange(value, min, max);\r\n\t}\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * Rounds the numeric value to whole number or specific precision of set.\r\n *\r\n * @param value Value\r\n * @param precision Precision (number of decimal points)\r\n * @param floor In case value ends with 0.5 and precision is 0, we might need to floor the value instead of ceiling it.\r\n * @return Rounded value\r\n */\r\nexport function round(value: number, precision?: number, floor?: boolean): number {\r\n\tif (!$type.isNumber(precision) || precision <= 0) {\r\n\r\n\t\tlet rounded = Math.round(value);\r\n\t\tif (floor) {\r\n\t\t\tif (rounded - value == 0.5) {\r\n\t\t\t\trounded--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn rounded;\r\n\t}\r\n\telse {\r\n\t\tlet d: number = Math.pow(10, precision);\r\n\t\treturn Math.round(value * d) / d;\r\n\t}\r\n}\r\n\r\n/**\r\n * Ceils the numeric value to whole number or specific precision of set.\r\n *\r\n * @param value Value\r\n * @param precision Precision (number of decimal points)\r\n * @return Rounded value\r\n */\r\nexport function ceil(value: number, precision?: number): number {\r\n\tif (!$type.isNumber(precision) || precision <= 0) {\r\n\t\treturn Math.ceil(value);\r\n\t}\r\n\telse {\r\n\t\tlet d: number = Math.pow(10, precision);\r\n\t\treturn Math.ceil(value * d) / d;\r\n\t}\r\n}\r\n\r\n/**\r\n * Stretches `t` so that it will always be between `from` and `to`.\r\n *\r\n * @param t Number from 0 to 1\r\n * @param from Lowest possible value\r\n * @param to Highest possible value\r\n * @return Adjusted value\r\n */\r\nexport function stretch(t: number, from: number, to: number): number {\r\n\treturn (t * (to - from)) + from;\r\n}\r\n\r\n\r\n/**\r\n * Adjust numeric value so it fits to specific value range.\r\n *\r\n * @param value Value\r\n * @param minValue Lowest possible value\r\n * @param maxValue Highest possible value\r\n * @return Adjusted value\r\n */\r\nexport function fitToRange(value: number, minValue: $type.Optional, maxValue: $type.Optional): number {\r\n\tif ($type.isNumber(minValue)) {\r\n\t\tif ($type.isNumber(maxValue) && maxValue < minValue) {\r\n\t\t\tlet temp = maxValue;\r\n\t\t\tmaxValue = minValue;\r\n\t\t\tminValue = temp;\r\n\t\t}\r\n\r\n\t\tif (value < minValue) {\r\n\t\t\tvalue = minValue;\r\n\t\t}\r\n\t}\r\n\r\n\tif ($type.isNumber(maxValue)) {\r\n\t\tif (value > maxValue) {\r\n\t\t\tvalue = maxValue;\r\n\t\t}\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * Returns sine of a number.\r\n *\r\n * @param value Value\r\n * @return Sine\r\n */\r\nexport function sin(value: number): number {\r\n\treturn round(Math.sin(RADIANS * value), 10);\r\n}\r\n\r\n/**\r\n * Returns tan of a number.\r\n *\r\n * @param value Value\r\n * @return Sine\r\n */\r\nexport function tan(value: number): number {\r\n\treturn round(Math.tan(RADIANS * value), 10);\r\n}\r\n\r\n/**\r\n * Returns cosine of a number.\r\n *\r\n * @param value Value\r\n * @return Cosine\r\n */\r\nexport function cos(value: number): number {\r\n\treturn round(Math.cos(RADIANS * value), 10);\r\n}\r\n\r\n/**\r\n * Returns biggest value out of passed in numeric values.\r\n *\r\n * @param left Numeric value\r\n * @param right Numeric value\r\n * @return Biggest value\r\n */\r\nexport function max(left: number, right: number): number;\r\nexport function max(left: number, right: $type.Optional): number;\r\nexport function max(left: $type.Optional, right: number): number;\r\nexport function max(left: $type.Optional, right: $type.Optional): $type.Optional;\r\nexport function max(left: any, right: any): any {\r\n\tif ($type.isNumber(left)) {\r\n\t\tif ($type.isNumber(right)) {\r\n\t\t\tif (right > left) {\r\n\t\t\t\treturn right;\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn left;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\treturn left;\r\n\t\t}\r\n\r\n\t} else if ($type.isNumber(right)) {\r\n\t\treturn right;\r\n\r\n\t} else {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns smallest value out of passed in numeric values.\r\n *\r\n * @param left Numeric value\r\n * @param right Numeric value\r\n * @return Smallest value\r\n */\r\nexport function min(left: number, right: number): number;\r\nexport function min(left: number, right: $type.Optional): number;\r\nexport function min(left: $type.Optional, right: number): number;\r\nexport function min(left: $type.Optional, right: $type.Optional): $type.Optional;\r\nexport function min(left: any, right: any): any {\r\n\tif ($type.isNumber(left)) {\r\n\t\tif ($type.isNumber(right)) {\r\n\t\t\tif (right < left) {\r\n\t\t\t\treturn right;\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn left;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\treturn left;\r\n\t\t}\r\n\r\n\t} else if ($type.isNumber(right)) {\r\n\t\treturn right;\r\n\r\n\t} else {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns the closest value from the array of values to the reference value.\r\n *\r\n * @param values Array of values\r\n * @param value Reference value\r\n * @return Closes value from the array\r\n */\r\nexport function closest(values: number[], referenceValue: number): number {\r\n\treturn values.reduce(function(prev, curr) {\r\n\t\treturn (Math.abs(curr - referenceValue) < Math.abs(prev - referenceValue) ? curr : prev);\r\n\t});\r\n}\r\n\r\n/**\r\n * Checks whether two ranges of values intersect.\r\n *\r\n * @param range1 Range 1\r\n * @param range2 Range 2\r\n * @return Any intersecting numbers?\r\n */\r\nexport function intersect(range1: IRange, range2: IRange): boolean {\r\n\tlet start1: number = $type.getValue(range1.start);\r\n\tlet start2: number = $type.getValue(range2.start);\r\n\tlet end1: number = $type.getValue(range1.end);\r\n\tlet end2: number = $type.getValue(range2.end);\r\n\r\n\treturn Math.max(start1, start2) <= Math.min(end1, end2);\r\n}\r\n\r\n/**\r\n * Inverts the range of values.\r\n *\r\n * @param range Range\r\n */\r\nexport function invertRange(range: IRange) {\r\n\tlet start: number = $type.getValue(range.start);\r\n\tlet end: number = $type.getValue(range.end);\r\n\treturn { start: 1 - end, end: 1 - start };\r\n}\r\n\r\n/**\r\n * Returns an intersection range between two ranges of values.\r\n *\r\n * @param range1 Range 1\r\n * @param range2 Range 2\r\n * @return Intersecting value range\r\n */\r\nexport function intersection(range1: IRange, range2: IRange): $type.Optional {\r\n\tlet start1: number = $type.getValue(range1.start);\r\n\tlet start2: number = $type.getValue(range2.start);\r\n\tlet end1: number = $type.getValue(range1.end);\r\n\tlet end2: number = $type.getValue(range2.end);\r\n\tlet startMax: number = Math.max(start1, start2);\r\n\tlet endMin: number = Math.min(end1, end2);\r\n\r\n\tif (endMin < startMax) {\r\n\t\treturn undefined;\r\n\t}\r\n\telse {\r\n\t\treturn { start: startMax, end: endMin };\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns pixel \"distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getDistance(point1: IPoint, point2?: IPoint): number {\r\n\tif (!point1) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!point2) {\r\n\t\tpoint2 = { x: 0, y: 0 };\r\n\t}\r\n\treturn Math.sqrt(Math.pow(Math.abs(point1.x - point2.x), 2) + Math.pow(Math.abs(point1.y - point2.y), 2));\r\n}\r\n\r\n/**\r\n * Returns pixel \"horizontal distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getHorizontalDistance(point1: IPoint, point2?: IPoint): number {\r\n\tif (!point1) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!point2) {\r\n\t\tpoint2 = { x: 0, y: 0 };\r\n\t}\r\n\treturn Math.abs(point1.x - point2.x);\r\n}\r\n\r\n/**\r\n * Returns pixel \"vertical distance\" between two points.\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Distance in relative pixels\r\n */\r\nexport function getVerticalDistance(point1: IPoint, point2?: IPoint): number {\r\n\tif (!point1) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!point2) {\r\n\t\tpoint2 = { x: 0, y: 0 };\r\n\t}\r\n\treturn Math.abs(point1.y - point2.y);\r\n}\r\n\r\n/**\r\n * Returns approximate pixel \"distance\" between two points of cubic curve\r\n *\r\n * If second point is not specified, distance from {x:0, y:0} point is\r\n * calculated.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @param controlPointA Control Point 1\r\n * @param controlPointB Control Point 2\r\n * @param stepCount number of steps (the more, the more accurate result)\r\n * @return Distance in relative pixels\r\n */\r\nexport function getCubicCurveDistance(point1: IPoint, point2: IPoint, controlPointA: IPoint, controlPointB: IPoint, stepCount:number): number {\r\n\tif (!point1) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!point2) {\r\n\t\tpoint2 = { x: 0, y: 0 };\r\n\t}\r\n\r\n\tlet distance = 0;\r\n\tlet prevPoint: IPoint = point1;\r\n\tif (stepCount > 0) {\r\n\t\tfor (let s = 0; s <= stepCount; s++) {\r\n\t\t\tlet point = getPointOnCubicCurve(point1, point2, controlPointA, controlPointB, s / stepCount);\r\n\t\t\tdistance += getDistance(prevPoint, point);\r\n\t\t\tprevPoint = point;\r\n\t\t}\r\n\t}\r\n\treturn distance;\r\n}\r\n\r\n/**\r\n * Returns scale based on original and end position of the two points.\r\n *\r\n * @param point1 Current position of point 1\r\n * @param startPoint1 Start position of point 1\r\n * @param point2 Current position of point 1\r\n * @param startPoint2 Start position of point 2\r\n * @return Scale Calculated scale\r\n */\r\nexport function getScale(point1: IPoint, startPoint1: IPoint, point2: IPoint, startPoint2: IPoint): number {\r\n\tlet initialDistance: number = getDistance(startPoint1, startPoint2);\r\n\tlet currentDistance: number = getDistance(point1, point2);\r\n\r\n\treturn Math.abs(currentDistance / initialDistance);\r\n}\r\n\r\n/**\r\n * Returns an exact mid point between two points.\r\n *\r\n * @param point1 Position of point 1\r\n * @param point2 Position of point 2\r\n * @return Mid point Position of mid-point\r\n */\r\nexport function getMidPoint(point1: IPoint, point2: IPoint, position?: number): IPoint {\r\n\tif (!$type.isNumber(position)) {\r\n\t\tposition = 0.5;\r\n\t}\r\n\r\n\treturn {\r\n\t\t\"x\": (point1.x + (point2.x - point1.x) * position),\r\n\t\t\"y\": (point1.y + (point2.y - point1.y) * position)\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns difference in angles between starting and ending position of two\r\n * vectors.\r\n *\r\n * @param point1 Current position of point 1\r\n * @param startPoint1 Start position of point 1\r\n * @param point2 Current position of point 1\r\n * @param startPoint2 Start position of point 2\r\n * @return Angle difference in degrees\r\n */\r\nexport function getRotation(point1: IPoint, startPoint1: IPoint, point2: IPoint, startPoint2: IPoint): number {\r\n\r\n\t// Get start and end angles\r\n\tlet startAngle: number = getAngle(startPoint1, startPoint2);\r\n\tlet angle: number = getAngle(point1, point2);\r\n\r\n\t// Calculate angle\r\n\tlet diff: number = startAngle - angle;\r\n\tif (diff < 0) {\r\n\t\tdiff += 360;\r\n\t}\r\n\r\n\treturn diff;\r\n}\r\n\r\n/**\r\n * Calculates angle of the vector based on two or one point.\r\n *\r\n * @param point1 Point 1\r\n * @param point2 Point 2\r\n * @return Angle in degrees\r\n */\r\nexport function getAngle(point1: IPoint, point2?: IPoint): number {\r\n\tif (!point2) {\r\n\t\tpoint2 = { x: point1.x * 2, y: point1.y * 2 };\r\n\t}\r\n\tlet diffX: number = point2.x - point1.x;\r\n\tlet diffY: number = point2.y - point1.y;\r\n\tlet angle: number = Math.atan2(diffY, diffX) * DEGREES;\r\n\tif (angle < 0) {\r\n\t\tangle += 360;\r\n\t}\r\n\treturn normalizeAngle(angle);\r\n}\r\n\r\n/**\r\n * Returns the shift in coordinates of the center when item is rotated, moved\r\n * and scaled at the same time.\r\n *\r\n * @param center Current center\r\n * @param point1 Frst reference point\r\n * @param startPoint1 Original position of the first reference point\r\n * @param point2 Second reference point\r\n * @param startPoint2 Original position of the first reference point\r\n * @return Shift in center point coordinates\r\n */\r\nexport function getCenterShift(center: IPoint, point1: IPoint, startPoint1: IPoint, point2: IPoint, startPoint2: IPoint): IPoint {\r\n\r\n\t// Get angle\r\n\tlet angle: number = getRotation(point1, startPoint1, point2, startPoint2) - 90;\r\n\tif (angle < 0) {\r\n\t\tangle += 360;\r\n\t}\r\n\r\n\t// Get distance between new position\r\n\tlet distance: number = getDistance(point1, point2);\r\n\r\n\t// Calculate new X\r\n\tlet x: number = Math.cos(angle) / distance + point1.x;\r\n\tlet y: number = Math.cos(angle) / distance + point1.y;\r\n\r\n\tlet shift: IPoint = {\r\n\t\t\"x\": x - center.x,\r\n\t\t\"y\": y - center.y\r\n\t}\r\n\treturn shift;\r\n}\r\n\r\n/**\r\n * Converts an array of points into a bounding box rectangle.\r\n *\r\n * Array can contain any number of points.\r\n *\r\n * @param points Points\r\n * @return Bounding box rectangle\r\n */\r\nexport function getBBox(points: IPoint[]): $type.Optional {\r\n\tif (points) {\r\n\t\tlet length = points.length;\r\n\r\n\t\tif (length !== 0) {\r\n\t\t\tlet left!: number;\r\n\t\t\tlet right!: number;\r\n\t\t\tlet top!: number;\r\n\t\t\tlet bottom!: number;\r\n\r\n\t\t\tfor (let i = 0; i < length; i++) {\r\n\t\t\t\tlet point: IPoint = points[i];\r\n\r\n\t\t\t\tif (!$type.isNumber(right) || (point.x > right)) {\r\n\t\t\t\t\tright = point.x;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(left) || (point.x < left)) {\r\n\t\t\t\t\tleft = point.x;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$type.isNumber(top) || (point.y < top)) {\r\n\t\t\t\t\ttop = point.y;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(bottom) || (point.y > bottom)) {\r\n\t\t\t\t\tbottom = point.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn { x: left, y: top, width: right - left, height: bottom - top };\r\n\t\t}\r\n\t}\r\n\r\n\treturn { x: 0, y: 0, width: 0, height: 0 };\r\n}\r\n\r\n/**\r\n * Returns a [[IRectangle]] object representing a common rectangle that fits\r\n * all passed in rectangles in it.\r\n *\r\n * @param rectangles An array of rectangles\r\n * @return Common rectangle\r\n */\r\nexport function getCommonRectangle(rectangles: IRectangle[]): $type.Optional {\r\n\tlet length = rectangles.length;\r\n\r\n\tif (length !== 0) {\r\n\t\tlet minX!: number;\r\n\t\tlet minY!: number;\r\n\t\tlet maxX!: number;\r\n\t\tlet maxY!: number;\r\n\r\n\t\tfor (let i = 0; i < length; i++) {\r\n\t\t\tlet rectangle = rectangles[i];\r\n\t\t\tminX = min(rectangle.x, minX);\r\n\t\t\tminY = min(rectangle.y, minY);\r\n\t\t\tmaxX = max(rectangle.x + rectangle.width, maxX);\r\n\t\t\tmaxY = max(rectangle.y + rectangle.height, maxY);\r\n\t\t}\r\n\r\n\t\treturn { x: minX, y: minY, width: maxX - minX, height: maxY - minY };\r\n\t}\r\n}\r\n\r\n/**\r\n * [getPointOnQuadraticCurve description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param pointA [description]\r\n * @param pointB [description]\r\n * @param controlPoint [description]\r\n * @param position [description]\r\n * @return [description]\r\n */\r\nexport function getPointOnQuadraticCurve(pointA: IPoint, pointB: IPoint, controlPoint: IPoint, position: number): IPoint {\r\n\tlet x: number = (1 - position) * (1 - position) * pointA.x + 2 * (1 - position) * position * controlPoint.x + position * position * pointB.x;\r\n\tlet y: number = (1 - position) * (1 - position) * pointA.y + 2 * (1 - position) * position * controlPoint.y + position * position * pointB.y;\r\n\treturn { x: x, y: y };\r\n}\r\n\r\n/**\r\n * [getPointOnCubicCurve description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param pointA [description]\r\n * @param pointB [description]\r\n * @param controlPointA [description]\r\n * @param controlPointB [description]\r\n * @param position [description]\r\n * @return [description]\r\n */\r\nexport function getPointOnCubicCurve(pointA: IPoint, pointB: IPoint, controlPointA: IPoint, controlPointB: IPoint, position: number): IPoint {\r\n\tlet point: IPoint = { x: 0, y: 0 };\r\n\tlet mt1: number = 1 - position;\r\n\tlet mt2: number = mt1 * mt1;\r\n\tlet mt3: number = mt2 * mt1;\r\n\r\n\tpoint.x = pointA.x * mt3 + controlPointA.x * 3 * mt2 * position + controlPointB.x * 3 * mt1 * position * position + pointB.x * position * position * position;\r\n\tpoint.y = pointA.y * mt3 + controlPointA.y * 3 * mt2 * position + controlPointB.y * 3 * mt1 * position * position + pointB.y * position * position * position;\r\n\r\n\treturn point;\r\n}\r\n\r\n/**\r\n * [getCubicControlPointA description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param p0 [description]\r\n * @param p1 [description]\r\n * @param p2 [description]\r\n * @param p3 [description]\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n * @return [description]\r\n */\r\nexport function getCubicControlPointA(p0: IPoint, p1: IPoint, p2: IPoint, p3: IPoint, tensionX: number, tensionY: number): IPoint {\r\n\ttensionX = adjustTension(tensionX);\r\n\ttensionY = adjustTension(tensionY);\r\n\treturn { x: ((-p0.x + p1.x / tensionX + p2.x) * tensionX), y: ((-p0.y + p1.y / tensionY + p2.y) * tensionY) };\r\n}\r\n\r\n/**\r\n * [getCubicControlPointB description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param p0 [description]\r\n * @param p1 [description]\r\n * @param p2 [description]\r\n * @param p3 [description]\r\n * @param tensionX [description]\r\n * @param tensionY [description]\r\n * @return [description]\r\n */\r\nexport function getCubicControlPointB(p0: IPoint, p1: IPoint, p2: IPoint, p3: IPoint, tensionX: number, tensionY: number): IPoint {\r\n\ttensionX = adjustTension(tensionX);\r\n\ttensionY = adjustTension(tensionY);\r\n\treturn { x: ((p1.x + p2.x / tensionX - p3.x) * tensionX), y: ((p1.y + p2.y / tensionY - p3.y) * tensionY) };\r\n}\r\n\r\n/**\r\n * [adjustTension description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param tension [description]\r\n * @return [description]\r\n */\r\nexport function adjustTension(tension: number): number {\r\n\treturn 1 - tension + 0.00001;\r\n}\r\n\r\n/**\r\n * [normalizeAngle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n * @return [description]\r\n */\r\nexport function normalizeAngle(value: number): number {\r\n\tif (value == 360) {\r\n\t\treturn 360;\r\n\t}\r\n\treturn value % 360;\r\n}\r\n\r\n\r\n\r\n/**\r\n * [normalizeAngleToRange description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @todo review this with various angles, can be tested on radar chart with custom start/end angles\r\n * @param value [description]\r\n * @param startAngle [description]\r\n * @param endAngle [description]\r\n * @return [description]\r\n */\r\nexport function fitAngleToRange(value: number, startAngle: number, endAngle: number): number {\r\n\r\n\tif (startAngle > endAngle) {\r\n\t\tlet temp: number = startAngle;\r\n\t\tstartAngle = endAngle;\r\n\t\tendAngle = temp;\r\n\t}\r\n\r\n\tvalue = normalizeAngle(value);\r\n\r\n\tlet count = (startAngle - normalizeAngle(startAngle)) / 360;\r\n\r\n\tif (value < startAngle) {\r\n\t\tvalue += 360 * (count + 1);\r\n\t}\r\n\r\n\tlet maxEnd: number = startAngle + (endAngle - startAngle) / 2 + 180;\r\n\tlet maxStart: number = startAngle + (endAngle - startAngle) / 2 - 180;\r\n\r\n\tif (value > endAngle) {\r\n\r\n\t\tif (value - 360 > startAngle) {\r\n\t\t\tvalue -= 360;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (value < maxEnd) {\r\n\t\t\t\tvalue = endAngle;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = startAngle;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (value < startAngle) {\r\n\t\tif (value > maxStart) {\r\n\t\t\tvalue = startAngle;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvalue = endAngle;\r\n\t\t}\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\n\r\n/**\r\n * Returns [[IRectangle]] of an arc in relative values, assuming that the\r\n * center is at the circle center.\r\n *\r\n * Used to find out max radius of an arc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param startAngle Start angle\r\n * @param endAngle End angle\r\n * @param radius \t Relative radius\r\n * @return Rectangle\r\n */\r\nexport function getArcRect(startAngle: number, endAngle: number, radius?: number): IRectangle {\r\n\r\n\tlet minX = Number.MAX_VALUE;\r\n\tlet minY = Number.MAX_VALUE;\r\n\tlet maxX = -Number.MAX_VALUE;\r\n\tlet maxY = -Number.MAX_VALUE;\r\n\r\n\tlet bpoints = [];\r\n\r\n\tif (!$type.isNumber(radius)) {\r\n\t\tradius = 1;\r\n\t}\r\n\r\n\tbpoints.push(getArcPoint(radius, startAngle));\r\n\tbpoints.push(getArcPoint(radius, endAngle));\r\n\r\n\tlet fromAngle = Math.min(Math.floor(startAngle / 90) * 90, Math.floor(endAngle / 90) * 90);\r\n\tlet toAngle = Math.max(Math.ceil(startAngle / 90) * 90, Math.ceil(endAngle / 90) * 90);\r\n\r\n\tfor (let angle = fromAngle; angle <= toAngle; angle += 90) {\r\n\t\tif (angle >= startAngle && angle <= endAngle) {\r\n\t\t\tbpoints.push(getArcPoint(radius, angle));\r\n\t\t}\r\n\t}\r\n\r\n\tfor (let i = 0; i < bpoints.length; i++) {\r\n\t\tlet pt = bpoints[i];\r\n\t\tif (pt.x < minX) { minX = pt.x; }\r\n\t\tif (pt.y < minY) { minY = pt.y; }\r\n\t\tif (pt.x > maxX) { maxX = pt.x; }\r\n\t\tif (pt.y > maxY) { maxY = pt.y; }\r\n\t}\r\n\r\n\treturn ({ x: minX, y: minY, width: maxX - minX, height: maxY - minY });\r\n}\r\n\r\n/**\r\n * Returns point on arc\r\n *\r\n * @param center point\r\n * @param radius\r\n * @param arc\r\n * @return {boolean}\r\n */\r\nexport function getArcPoint(radius: number, arc: number) {\r\n\treturn ({ x: radius * cos(arc), y: radius * sin(arc) });\r\n}\r\n\r\n/**\r\n * Returns true if a point is within rectangle\r\n *\r\n * @param point\r\n * @param rectangle\r\n * @return {boolean}\r\n */\r\nexport function isInRectangle(point: IPoint, rectangle: IRectangle): boolean {\r\n\tif (point.x >= rectangle.x && point.x <= rectangle.x + rectangle.width && point.y > rectangle.y && point.y < rectangle.y + rectangle.height) {\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n\r\nexport function getLineIntersection(pointA1: IPoint, pointA2: IPoint, pointB1: IPoint, pointB2: IPoint) {\r\n\tlet x = ((pointA1.x * pointA2.y - pointA2.x * pointA1.y) * (pointB1.x - pointB2.x) - (pointA1.x - pointA2.x) * (pointB1.x * pointB2.y - pointB1.y * pointB2.x)) / ((pointA1.x - pointA2.x) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x - pointB2.x));\r\n\tlet y = ((pointA1.x * pointA2.y - pointA2.x * pointA1.y) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x * pointB2.y - pointB1.y * pointB2.x)) / ((pointA1.x - pointA2.x) * (pointB1.y - pointB2.y) - (pointA1.y - pointA2.y) * (pointB1.x - pointB2.x));\r\n\treturn { x: x, y: y };\r\n}\r\n","module.exports = require(\"regenerator-runtime\");\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ITheme } from \"../themes/ITheme\";\r\nimport { EventDispatcher, AMEvent } from \"./utils/EventDispatcher\";\r\nimport { Dictionary } from \"./utils/Dictionary\";\r\nimport { Sprite } from \"./Sprite\";\r\nimport { Container } from \"./Container\";\r\nimport { Component } from \"./Component\";\r\nimport { cache } from \"./utils/Cache\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $string from \"./utils/String\";\r\nimport * as $array from \"./utils/Array\";\r\n\r\n\r\n/**\r\n * Define events available for [[Registry]]\r\n */\r\nexport interface IRegistryEvents {\r\n\r\n\t/**\r\n\t * Invoked when update cycle starts. Before invalid elements are re-validated.\r\n\t */\r\n\tenterframe: {};\r\n\r\n\t/**\r\n\t * Invoked when udpate cycle ends. After invalid elements have been\r\n\t * re-validated.\r\n\t */\r\n\texitframe: {};\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Registry is used to store miscellaneous system-wide information, like ids,\r\n * maps, themes, and registered classes.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport class Registry {\r\n\r\n\t/**\r\n\t * Unique ID of the object.\r\n\t */\r\n\tpublic uid: string;\r\n\r\n\t/**\r\n\t * Event dispacther.\r\n\t */\r\n\tpublic events: EventDispatcher> = new EventDispatcher();\r\n\r\n\t/**\r\n\t * Holds a universal mapping collection, so that elements and their children\r\n\t * can create and look up all kinds of relations between id and object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _map: $type.Optional>;\r\n\r\n\t/**\r\n\t * All currently applied themes. All new chart instances created will\r\n\t * automatically inherit and retain System's themes.\r\n\t */\r\n\tpublic themes: ITheme[] = [];\r\n\r\n\t/**\r\n\t * List of all loaded available themes.\r\n\t *\r\n\t * Whenever a theme loads, it registers itself in System's `loadedThemes`\r\n\t * collection.\r\n\t */\r\n\tpublic loadedThemes: { [index: string]: ITheme } = {};\r\n\r\n\t/**\r\n\t * An indeternal counter used to generate unique IDs.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _uidCount: number = 0;\r\n\r\n\t/**\r\n\t * Keeps register of class references so that they can be instnatiated using\r\n\t * string key.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic registeredClasses: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * Holds all generated placeholders.\r\n\t */\r\n\tprotected _placeholders: { [index: string]: string } = {};\r\n\r\n\t/**\r\n\t * A list of invalid(ated) [[Sprite]] objects that need to be re-validated\r\n\t * during next cycle.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidSprites: { [index: string]: Array } = {};\r\n\r\n\t/**\r\n\t * Components are added to this list when their data provider changes to\r\n\t * a new one or data is added/removed from their data provider.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidDatas: { [index: string]: Array } = {};\r\n\r\n\t/**\r\n\t * Components are added to this list when values of their raw data change.\r\n\t * Used when we want a smooth animation from one set of values to another.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidRawDatas: Array = [];\r\n\r\n\t/**\r\n\t * Components are added to this list when values of their data changes\r\n\t * (but not data provider itself).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidDataItems: Array = [];\r\n\r\n\t/**\r\n\t * Components are added to this list when their data range (selection) is\r\n\t * changed, e.g. zoomed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidDataRange: Array = [];\r\n\r\n\t/**\r\n\t * A list of [[Sprite]] objects that have invalid(ated) positions, that need\r\n\t * to be recalculated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidPositions: { [index: string]: Array } = {};\r\n\r\n\t/**\r\n\t * A list of [[Container]] objects with invalid(ated) layouts.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidLayouts: { [index: string]: Array } = {};\r\n\r\n\t/**\r\n\t * An array holding all active (non-disposed) top level elemens.\r\n\t *\r\n\t * When, for example, a new chart is created, its instance will be added to\r\n\t * this array, and will be removed when the chart is disposed.\r\n\t */\r\n\tpublic baseSprites: Array = [];\r\n\r\n\tpublic baseSpritesByUid: { [index: string]: Sprite } = {};\r\n\r\n\tpublic queue: Array = [];\r\n\r\n\tconstructor() {\r\n\t\tthis.uid = this.getUniqueId();\r\n\r\n\t\tthis.invalidSprites.noBase = [];\r\n\t\tthis.invalidDatas.noBase = [];\r\n\t\tthis.invalidLayouts.noBase = [];\r\n\t\tthis.invalidPositions.noBase = [];\r\n\r\n\t\t// This is needed to prevent charts from being cut off when printing\r\n\t\taddEventListener(\"beforeprint\", () => {\r\n\t\t\t$array.each(this.baseSprites, (sprite) => {\r\n\t\t\t\tconst svg = sprite.paper.svg;\r\n\t\t\t\tsvg.setAttribute(\"viewBox\", \"0 0 \" + svg.clientWidth + \" \" + svg.clientHeight);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\taddEventListener(\"afterprint\", () => {\r\n\t\t\t$array.each(this.baseSprites, (sprite) => {\r\n\t\t\t\tconst svg = sprite.paper.svg;\r\n\t\t\t\tsvg.removeAttribute(\"viewBox\");\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Generates a unique chart system-wide ID.\r\n\t *\r\n\t * @return Generated ID\r\n\t */\r\n\tpublic getUniqueId(): string {\r\n\t\tlet uid = this._uidCount;\r\n\t\tthis._uidCount += 1;\r\n\t\treturn \"id-\" + uid;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a universal collection for mapping ids with objects.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Map collection\r\n\t */\r\n\tpublic get map(): Dictionary {\r\n\t\tif (!this._map) {\r\n\t\t\tthis._map = new Dictionary();\r\n\t\t}\r\n\t\treturn this._map;\r\n\t}\r\n\r\n\t/**\r\n\t * Caches value in object's cache.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param key Key\r\n\t * @param value Value\r\n\t * @param ttl TTL in seconds\r\n\t */\r\n\tpublic setCache(key: string, value: any, ttl?: number): void {\r\n\t\tcache.set(this.uid, key, value, ttl);\r\n\t}\r\n\r\n\t/**\r\n\t * Retrieves cached value.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param key Key\r\n\t * @param value Value to return if cache is not available\r\n\t * @return Value\r\n\t */\r\n\tpublic getCache(key: string, value: any = undefined): any {\r\n\t\treturn cache.get(this.uid, key, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Dispatches an event using own event dispatcher. Will automatically\r\n\t * populate event data object with event type and target (this element).\r\n\t * It also checks if there are any handlers registered for this sepecific\r\n\t * event.\r\n\t *\r\n\t * @param eventType Event type (name)\r\n\t * @param data Data to pass into event handler(s)\r\n\t */\r\n\tpublic dispatch(eventType: Key, data?: any): void {\r\n\t\t// @todo Implement proper type check\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tif (data) {\r\n\t\t\t\tdata.type = eventType;\r\n\t\t\t\tdata.target = data.target || this;\r\n\t\t\t\t(this.events).dispatch(eventType, {\r\n\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t(this.events).dispatch(eventType, {\r\n\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Works like `dispatch`, except event is triggered immediately, without\r\n\t * waiting for the next frame cycle.\r\n\t *\r\n\t * @param eventType Event type (name)\r\n\t * @param data Data to pass into event handler(s)\r\n\t */\r\n\tpublic dispatchImmediately(eventType: Key, data?: any): void {\r\n\t\t// @todo Implement proper type check\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tif (data) {\r\n\t\t\t\tdata.type = eventType;\r\n\t\t\t\tdata.target = data.target || this;\r\n\t\t\t\t(this.events).dispatchImmediately(eventType, data);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t(this.events).dispatchImmediately(eventType, {\r\n\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a unique placeholder suitable for the key.\r\n\t *\r\n\t * @param key Key\r\n\t * @return Random string to be used as placeholder\r\n\t */\r\n\tpublic getPlaceholder(key: string): string {\r\n\t\tif ($type.hasValue(this._placeholders[key])) {\r\n\t\t\treturn this._placeholders[key];\r\n\t\t}\r\n\t\tthis._placeholders[key] = \"__amcharts_\" + key + \"_\" + $string.random(8) + \"__\";\r\n\t\treturn this._placeholders[key];\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic addToInvalidComponents(component: Component) {\r\n\t\tif (component.baseId) {\r\n\t\t\t$array.move(this.invalidDatas[component.baseId], component);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$array.move(this.invalidDatas[\"noBase\"], component);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic removeFromInvalidComponents(component: Component) {\r\n\t\tif (component.baseId) {\r\n\t\t\t$array.remove(this.invalidDatas[component.baseId], component);\r\n\t\t}\r\n\r\n\t\t$array.remove(this.invalidDatas[\"noBase\"], component);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic addToInvalidSprites(sprite: Sprite) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.add(this.invalidSprites[sprite.baseId], sprite);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$array.add(this.invalidSprites[\"noBase\"], sprite);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic removeFromInvalidSprites(sprite: Sprite) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.remove(this.invalidSprites[sprite.baseId], sprite);\r\n\t\t}\r\n\r\n\t\t$array.remove(this.invalidSprites[\"noBase\"], sprite);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic addToInvalidPositions(sprite: Sprite) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.add(this.invalidPositions[sprite.baseId], sprite);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$array.add(this.invalidPositions[\"noBase\"], sprite);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic removeFromInvalidPositions(sprite: Sprite) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.remove(this.invalidPositions[sprite.baseId], sprite);\r\n\t\t}\r\n\r\n\t\t$array.remove(this.invalidPositions[\"noBase\"], sprite);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic addToInvalidLayouts(sprite: Container) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.add(this.invalidLayouts[sprite.baseId], sprite);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$array.add(this.invalidLayouts[\"noBase\"], sprite);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic removeFromInvalidLayouts(sprite: Container) {\r\n\t\tif (sprite.baseId) {\r\n\t\t\t$array.remove(this.invalidLayouts[sprite.baseId], sprite);\r\n\t\t}\r\n\r\n\t\t$array.remove(this.invalidLayouts[\"noBase\"], sprite);\r\n\t}\r\n}\r\n\r\n/**\r\n * A singleton global instance of [[Registry]].\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport let registry = new Registry();\r\n\r\n\r\n/**\r\n * Returns `true` if object is an instance of the class. It's the same as `instanceof` except it doesn't need to import the class.\r\n *\r\n * @param object Object\r\n * @param name Class name\r\n * @return Is instance of class\r\n */\r\nexport function is(object: any, name: string): object is A {\r\n\tconst x = registry.registeredClasses[name];\r\n\treturn x != null && object instanceof x;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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}","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t19(plugin: string) {\n\t\treturn \"plugin not loaded: \" + plugin\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtypeObject,\n\tArchtypeArray,\n\tArchtypeMap,\n\tArchtypeSet,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\treturn !proto || proto === Object.prototype\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (value && value[DRAFT_STATE]) {\n\t\treturn value[DRAFT_STATE].base_ as any\n\t}\n\t// otherwise return undefined\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === ArchtypeObject) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key =>\n\t\t\titer(key, obj[key], obj)\n\t\t)\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): 0 | 1 | 2 | 3 {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? ArchtypeArray\n\t\t: isMap(thing)\n\t\t? ArchtypeMap\n\t\t: isSet(thing)\n\t\t? ArchtypeSet\n\t\t: ArchtypeObject\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchtypeMap\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchtypeMap ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchtypeMap) thing.set(propOrOldValue, value)\n\telse if (t === ArchtypeSet) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(\n\tbase: T,\n\tinvokeGetters?: boolean\n): T\nexport function shallowCopy(base: any, invokeGetters = false) {\n\tif (Array.isArray(base)) return base.slice()\n\tconst clone = Object.create(Object.getPrototypeOf(base))\n\teach(base, (key: any) => {\n\t\tif (key === DRAFT_STATE) {\n\t\t\treturn // Never copy over draft state.\n\t\t}\n\t\tconst desc = Object.getOwnPropertyDescriptor(base, key)!\n\t\tlet {value} = desc\n\t\tif (desc.get) {\n\t\t\tif (!invokeGetters) die(1)\n\t\t\tvalue = desc.get.call(base)\n\t\t}\n\t\tif (desc.enumerable) {\n\t\t\tclone[key] = value\n\t\t} else {\n\t\t\tObject.defineProperty(clone, key, {\n\t\t\t\tvalue,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t})\n\t\t}\n\t})\n\treturn clone\n}\n\nexport function freeze(obj: any, deep: boolean): void {\n\tif (isDraft(obj) || isFrozen(obj) || !isDraftable(obj)) return\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tES5ObjectState,\n\tES5ArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const ArchtypeObject = 0\nexport const ArchtypeArray = 1\nexport const ArchtypeMap = 2\nexport const ArchtypeSet = 3\n\nexport const ProxyTypeProxyObject = 0\nexport const ProxyTypeProxyArray = 1\nexport const ProxyTypeES5Object = 4\nexport const ProxyTypeES5Array = 5\nexport const ProxyTypeMap = 2\nexport const ProxyTypeSet = 3\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| ES5ObjectState\n\t| ES5ArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyArray,\n\tAnyMap,\n\tAnySet,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\tmarkChangedES5_(state: ImmerState): void\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(__DEV__ ? 18 : 19, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tplugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tfinalizing_: boolean\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Array\n\tdraft_: Drafted\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeMap\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeSet\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\tstate.type_ === ProxyTypeProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tshallowCopy,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tis,\n\tget,\n\tProxyTypeES5Object,\n\tProxyTypeES5Array,\n\tProxyTypeSet,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumarable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyTypeES5Object || state.type_ === ProxyTypeES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_, true))\n\t\t\t\t: state.copy_\n\t\t// finalize all children of the copy\n\t\teach(result as any, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyTypeSet && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Unchanged draft properties are ignored.\n\tif (parentState && is(childValue, get(parentState!.base_, prop))) {\n\t\treturn\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","\"use strict\"\nimport {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\tdrafts_?: {\n\t\t[property: string]: Drafted\n\t}\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyObject\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyTypeProxyArray : (ProxyTypeProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// Any property proxies.\n\t\tdrafts_: {},\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nconst objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\t\tlet {drafts_: drafts} = state\n\n\t\t// Check for existing draft in unmodified state.\n\t\tif (!state.modified_ && has(drafts, prop)) {\n\t\t\treturn drafts![prop as any]\n\t\t}\n\n\t\tconst value = latest(state)[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// Check for existing draft in modified state.\n\t\tif (state.modified_) {\n\t\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\t\tif (value !== peek(state.base_, prop)) return value\n\t\t\t// Store drafts on the copy (when one exists).\n\t\t\t// @ts-ignore\n\t\t\tdrafts = state.copy_\n\t\t}\n\n\t\treturn (drafts![prop as any] = createProxy(\n\t\t\tstate.scope_.immer_,\n\t\t\tvalue,\n\t\t\tstate\n\t\t))\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(state, prop: string /* strictly not, but helps TS */, value) {\n\t\tif (!state.modified_) {\n\t\t\tconst baseValue = peek(state.base_, prop)\n\t\t\t// Optimize based on value's truthiness. Truthy values are guaranteed to\n\t\t\t// never be undefined, so we can avoid the `in` operator. Lastly, truthy\n\t\t\t// values may be drafts, but falsy values are never drafts.\n\t\t\tconst isUnchanged = value\n\t\t\t\t? is(baseValue, value) || value === state.drafts_![prop]\n\t\t\t\t: is(baseValue, value) && prop in state.base_\n\t\t\tif (isUnchanged) return true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChangedProxy(state)\n\t\t}\n\t\tstate.assigned_[prop] = true\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChangedProxy(state)\n\t\t} else if (state.assigned_[prop]) {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (desc) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable =\n\t\t\t\tstate.type_ !== ProxyTypeProxyArray || prop !== \"length\"\n\t\t}\n\t\treturn desc\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n/**\n * Map drafts\n */\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey): any {\n\tconst state = draft[DRAFT_STATE]\n\tconst desc = Reflect.getOwnPropertyDescriptor(\n\t\tstate ? latest(state) : draft,\n\t\tprop\n\t)\n\treturn desc && desc.value\n}\n\nexport function markChangedProxy(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (\n\t\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\t\tstate.type_ === ProxyTypeProxyArray\n\t\t) {\n\t\t\tconst copy = (state.copy_ = shallowCopy(state.base_))\n\t\t\teach(state.drafts_!, (key, value) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tcopy[key] = value\n\t\t\t})\n\t\t\tstate.drafts_ = undefined\n\t\t}\n\n\t\tif (state.parent_) {\n\t\t\tmarkChangedProxy(state.parent_)\n\t\t}\n\t}\n}\n\nfunction prepareCopy(state: ProxyState) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tNOTHING,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tmarkChangedProxy,\n\tcreateProxyProxy,\n\tfreeze,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tisMinified,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = __DEV__ ? true /* istanbul ignore next */ : !isMinified\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tthis.produce = this.produce.bind(this)\n\t\tthis.produceWithPatches = this.produceWithPatches.bind(this)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce(base: any, recipe?: any, patchListener?: any) {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t}\n\t}\n\n\tproduceWithPatches(arg1: any, arg2?: any, arg3?: any): any {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && draft[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is disabled in production.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (!hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: Objectish, patches: Patch[]) {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n\nexport function markChanged(immer: Immer, state: ImmerState) {\n\tif (immer.useProxies_) {\n\t\tmarkChangedProxy(state)\n\t} else {\n\t\tgetPlugin(\"ES5\").markChangedES5_(state)\n\t}\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is disabled in production.\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/* istanbul ignore next */\nfunction mini() {}\nexport const isMinified = mini.name !== \"mini\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","module.exports = require('./lib/axios');","/**\r\n * A collection of functions that deals with path calculations.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { getGhostPaper } from \"../rendering/Paper\";\r\nimport { options } from \"../Options\";\r\n\r\n/**\r\n * ============================================================================\r\n * PATH FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns an SVG path from a number of points.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points An array of line elbow points\r\n * @return SVG path\r\n */\r\nexport function polyline(points: IPoint[]): string {\r\n\tlet path = lineTo(points[0]);\r\n\tlet prevPoint = { x: 0, y: 0 };\r\n\r\n\tlet minStep = options.minPolylineStep;\r\n\tif (!$type.isNumber(minStep)) {\r\n\t\tminStep = 0.5;\r\n\t}\r\n\r\n\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\tlet point = points[i];\r\n\t\tif ($math.getDistance(point, prevPoint) > minStep) {\r\n\t\t\tpath += lineTo(point);\r\n\t\t\tprevPoint = point;\r\n\t\t}\r\n\t}\r\n\treturn path;\r\n}\r\n\r\n\r\n/**\r\n * Returns a starting point of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point Starting point\r\n * @return SVG path\r\n */\r\nexport function moveTo(point: IPoint): string {\r\n\treturn \" M\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n\r\n/**\r\n * Returns a line part of SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point SVG path\r\n * @return SVG path\r\n */\r\nexport function lineTo(point: IPoint): string {\r\n\treturn \" L\" + $math.round(point.x, 4) + \",\" + $math.round(point.y, 4) + \" \";\r\n}\r\n\r\n/**\r\n * Returns a quadratic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPoint Control point\r\n * @return SVG path\r\n */\r\nexport function quadraticCurveTo(point: IPoint, controlPoint: IPoint): string {\r\n\treturn \" Q\" + $math.round(controlPoint.x, 4)\r\n\t\t+ \",\" + $math.round(controlPoint.y, 4) + \" \" + $math.round(point.x, 4)\r\n\t\t+ \",\" + $math.round(point.y, 4);\r\n}\r\n\r\n/**\r\n * Returns a cubic curve part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param point End point of the curve\r\n * @param controlPointA Control point A\r\n * @param controlPointB Control point B\r\n * @return SVG path\r\n */\r\nexport function cubicCurveTo(point: IPoint, controlPointA: IPoint, controlPointB: IPoint): string {\r\n\treturn \" C\" + $math.round(controlPointA.x, 4)\r\n\t\t+ \",\" + $math.round(controlPointA.y, 4) + \" \" + $math.round(controlPointB.x, 4)\r\n\t\t+ \",\" + $math.round(controlPointB.y, 4) + \" \" + $math.round(point.x, 4)\r\n\t\t+ \",\" + $math.round(point.y, 4);\r\n}\r\n\r\n/**\r\n * Returns a terminator for an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @return SVG path\r\n */\r\nexport function closePath(): string {\r\n\treturn \" Z\";\r\n}\r\n\r\n/**\r\n * Returns an arc part of an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Better parameter descriptions\r\n * @param startAngle Starting angle\r\n * @param arc Arc\r\n * @param radius Radius\r\n * @param radiusY Vertical radius\r\n * @return SVG path\r\n */\r\nexport function arcTo(startAngle: number, arc: number, radius: number, radiusY?: number): string {\r\n\r\n\tif (arc == 0) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tif (!$type.isNumber(radiusY)) {\r\n\t\tradiusY = radius;\r\n\t}\r\n\r\n\tlet path = \"\";\r\n\tlet c = \",\";\r\n\tlet segments = Math.ceil(Math.abs(arc) / 180);\r\n\tlet l = 1;\r\n\r\n\tif (arc < 0) {\r\n\t\tl = 0;\r\n\t}\r\n\r\n\t// previous, as we use a not A\r\n\tlet pax: number = 0;\r\n\tlet pay: number = 0;\r\n\r\n\t// center\r\n\tlet cx: number = -$math.cos(startAngle) * radius;\r\n\tlet cy: number = -$math.sin(startAngle) * radiusY;\r\n\r\n\t// foir very short angles and big radius, solves artefacts\r\n\tif (arc < 0.5 && radius > 3000) {\r\n\t\tlet endAngle = startAngle + arc\r\n\t\tlet ax = $math.round($math.cos(endAngle) * radius, 4);\r\n\t\tlet ay = $math.round($math.sin(endAngle) * radiusY, 4);\r\n\t\treturn lineTo({ x: ax, y: ay })\r\n\t}\r\n\r\n\tfor (let i = 0; i < segments; i++) {\r\n\t\tlet endAngle = startAngle + arc / segments * (i + 1);\r\n\r\n\t\tlet ax = $math.round($math.cos(endAngle) * radius + cx - pax, 4);\r\n\t\tlet ay = $math.round($math.sin(endAngle) * radiusY + cy - pay, 4);\r\n\r\n\t\tpath += \" a\" + radius + c + radiusY + c + 0 + c + 0 + c + l + c + ax + c + ay;\r\n\r\n\t\tpax = ax;\r\n\t\tpay = ay;\r\n\t}\r\n\treturn path;\r\n}\r\n\r\n/**\r\n * Creates an arc path.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param startAngle [description]\r\n * @param arc [description]\r\n * @param radius [description]\r\n * @param innerRadius [description]\r\n * @param radiusY [description]\r\n * @param cornerRadius [description]\r\n * @param innerCornerRadius [description]\r\n * @return SVG path\r\n */\r\nexport function arc(startAngle: number, arc: number, radius: number, innerRadius?: number, radiusY?: number, cornerRadius?: number, innerCornerRadius?: number): string {\r\n\tif (arc == 0) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tif (!$type.isNumber(innerRadius)) {\r\n\t\tinnerRadius = 0;\r\n\t}\r\n\r\n\tif (radius == 0 && innerRadius <= 0) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tif (radius < innerRadius) {\r\n\t\tlet temp = radius;\r\n\t\tradius = innerRadius;\r\n\t\tinnerRadius = temp;\r\n\r\n\t\tif ($type.isNumber(radiusY)) {\r\n\t\t\tradiusY = radiusY / innerRadius * radius;\r\n\t\t}\r\n\t}\r\n\r\n\tarc = $math.min(arc, 360);\r\n\r\n\tif (arc == 360) {\r\n\t\tcornerRadius = 0;\r\n\t\tinnerCornerRadius = 0;\r\n\t}\r\n\r\n\tlet endAngle = startAngle + arc;\r\n\tlet crSin = $math.sin($math.min(arc, 45) / 2);\r\n\r\n\tradiusY = $type.isNumber(radiusY) ? radiusY : radius;\r\n\tcornerRadius = cornerRadius || 0;\r\n\tinnerCornerRadius = $type.isNumber(innerCornerRadius) ? innerCornerRadius : cornerRadius;\r\n\r\n\tlet innerRadiusY = (radiusY / radius) * innerRadius;\r\n\r\n\tlet cornerRadiusY = (radiusY / radius) * cornerRadius;\r\n\tlet innerCornerRadiusY = (radiusY / radius) * innerCornerRadius;\r\n\r\n\tcornerRadius = $math.fitToRange(cornerRadius, 0, (radius - innerRadius) / 2);\r\n\tcornerRadiusY = $math.fitToRange(cornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n\r\n\tinnerCornerRadius = $math.fitToRange(innerCornerRadius, 0, (radius - innerRadius) / 2);\r\n\tinnerCornerRadiusY = $math.fitToRange(innerCornerRadiusY, 0, (radiusY - innerRadiusY) / 2);\r\n\r\n\tcornerRadius = $math.round($math.fitToRange(cornerRadius, 0, radius * crSin), 4);\r\n\tcornerRadiusY = $math.round($math.fitToRange(cornerRadiusY, 0, radiusY * crSin), 4);\r\n\r\n\tinnerCornerRadius = $math.round($math.fitToRange(innerCornerRadius, 0, innerRadius * crSin), 4);\r\n\tinnerCornerRadiusY = $math.round($math.fitToRange(innerCornerRadiusY, 0, innerRadiusY * crSin), 4);\r\n\r\n\tlet crAngle: number = Math.asin(cornerRadius / radius / 2) * $math.DEGREES * 2;\r\n\tlet crAngleY: number = Math.asin(cornerRadiusY / radiusY / 2) * $math.DEGREES * 2;\r\n\r\n\tif (innerRadius < innerCornerRadius) {\r\n\t\tinnerRadius = innerCornerRadius;\r\n\t}\r\n\r\n\tif (innerRadiusY < innerCornerRadiusY) {\r\n\t\tinnerRadiusY = innerCornerRadiusY;\r\n\t}\r\n\r\n\tlet crInnerAngle: number = Math.asin(innerCornerRadius / innerRadius / 2) * $math.DEGREES * 2;\r\n\tlet crInnerAngleY: number = Math.asin(innerCornerRadiusY / innerRadiusY / 2) * $math.DEGREES * 2;\r\n\r\n\tif (!$type.isNumber(crInnerAngle)) {\r\n\t\tcrInnerAngle = 0;\r\n\t}\r\n\tif (!$type.isNumber(crInnerAngleY)) {\r\n\t\tcrInnerAngleY = 0;\r\n\t}\r\n\r\n\tlet middleAngle = startAngle + arc / 2;\r\n\tlet mPoint = { x: $math.round($math.cos(middleAngle) * innerRadius, 4), y: $math.sin(middleAngle) * innerRadiusY };\r\n\r\n\tlet a0 = { x: $math.cos(startAngle) * (innerRadius + innerCornerRadius), y: $math.sin(startAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n\tlet b0 = { x: $math.cos(startAngle) * (radius - cornerRadius), y: $math.sin(startAngle) * (radiusY - cornerRadiusY) };\r\n\tlet c0 = { x: $math.cos(endAngle) * (radius - cornerRadius), y: $math.sin(endAngle) * (radiusY - cornerRadiusY) };\r\n\tlet d0 = { x: $math.cos(endAngle) * (innerRadius + innerCornerRadius), y: $math.sin(endAngle) * (innerRadiusY + innerCornerRadiusY) };\r\n\r\n\tlet b1 = { x: $math.cos(startAngle + crAngle) * radius, y: $math.sin(startAngle + crAngleY) * radiusY };\r\n\tlet d1 = { x: $math.cos(endAngle - crInnerAngle) * innerRadius, y: $math.sin(endAngle - crInnerAngleY) * innerRadiusY };\r\n\r\n\t// some magic math\r\n\tinnerCornerRadius += innerCornerRadius * $math.sin(crInnerAngle / 2);\r\n\tinnerCornerRadiusY += innerCornerRadiusY * $math.sin(crInnerAngleY / 2);\r\n\r\n\tif (crInnerAngle > (endAngle - startAngle) / 2) {\r\n\t\td1 = mPoint;\r\n\t}\r\n\r\n\tlet path: string = \"\";\r\n\t// start from b if this is full circle\r\n\tif (arc == 360) {\r\n\t\tpath = moveTo(b0);\r\n\t}\r\n\t// otherwise start from a\r\n\telse {\r\n\t\tpath = moveTo(a0);\r\n\t\tpath += lineTo(b0);\r\n\t\tpath += arcToPoint(b1, cornerRadius, cornerRadiusY, true);\r\n\t}\r\n\r\n\t// draw arc\r\n\tpath += arcTo(startAngle + crAngle, arc - 2 * crAngle, radius, radiusY);\r\n\r\n\t// draw inner arc\r\n\tif ($type.isNumber(innerRadius) && innerRadius != 0) {\r\n\r\n\t\t// move to B if this is full circle\r\n\t\tif (arc == 360 && cornerRadius == 0) {\r\n\t\t\tpath += moveTo(d0);\r\n\t\t}\r\n\t\t// draw line otherwise\r\n\t\telse {\r\n\t\t\tpath += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n\t\t\tpath += lineTo(d0);\r\n\t\t\tpath += arcToPoint(d1, innerCornerRadius, innerCornerRadiusY, true);\r\n\t\t}\r\n\r\n\t\tpath += arcTo(endAngle - crInnerAngle, -(arc - 2 * crInnerAngle), innerRadius, innerRadiusY);\r\n\t\tif (arc < 360 || cornerRadius > 0) {\r\n\t\t\tpath += arcToPoint(a0, innerCornerRadius, innerCornerRadiusY, true);\r\n\t\t}\r\n\t\tpath += lineTo(a0);\r\n\t}\r\n\telse {\r\n\t\tpath += arcToPoint(c0, cornerRadius, cornerRadiusY, true);\r\n\t\tif (arc < 360) {\r\n\t\t\tpath += lineTo(a0);\r\n\t\t}\r\n\t}\r\n\r\n\treturn path;\r\n}\r\n\r\n/**\r\n * Creates a path for an arc to specific coordinate.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param point Reference point\r\n * @param radius Radius\r\n * @param radiusY Vertical radius (for skewed arcs)\r\n * @param sweepFlag [description]\r\n * @param largeArcFlag [description]\r\n * @param xAxisRotation [description]\r\n * @return Arc path\r\n */\r\nexport function arcToPoint(point: IPoint, radius: number, radiusY?: number, sweepFlag?: boolean, largeArcFlag?: boolean, xAxisRotation?: number): string {\r\n\tif (radius == 0) {\r\n\t\treturn \"\";\r\n\t}\r\n\txAxisRotation = xAxisRotation || 0;\r\n\tlargeArcFlag = Boolean(largeArcFlag);\r\n\tsweepFlag = Boolean(sweepFlag);\r\n\r\n\tlet c = \",\";\r\n\tlet sweepFlagValue: number = +sweepFlag; // converts to 1 or 0\r\n\tlet largeArcFlagValue: number = +largeArcFlag; // converts to 1 or 0\r\n\r\n\treturn \" A\" + radius + c + radiusY + c + xAxisRotation + c + largeArcFlagValue + c + sweepFlagValue + c + $math.round(point.x, 4) + c + $math.round(point.y, 4);\r\n}\r\n\r\n/**\r\n * Creates a new rectangle.\r\n *\r\n * @ignore Exclude from docs\r\n * @param width Width (px)\r\n * @param height Height (px)\r\n * @param x X position\r\n * @param y Y position\r\n * @return Rectangle\r\n */\r\nexport function rectangle(width: number, height: number, x?: number, y?: number): string {\r\n\tif (!$type.isNumber(x)) {\r\n\t\tx = 0;\r\n\t}\r\n\tif (!$type.isNumber(y)) {\r\n\t\ty = 0;\r\n\t}\r\n\treturn moveTo({ x: x, y: y }) + lineTo({ x: x + width, y: y }) + lineTo({ x: x + width, y: y + height }) + lineTo({ x: x, y: y + height }) + closePath();\r\n}\r\n\r\n/**\r\n * Converts a rectangle to an SVG path.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rect Rectangle\r\n * @param ccw Counter-clockwise?\r\n * @return SVG path\r\n */\r\nexport function rectToPath(rect: IRectangle, ccw?: boolean): string {\r\n\tlet c = \",\";\r\n\tlet L = \" L\";\r\n\tif (ccw) {\r\n\t\treturn \"M\" + rect.x\r\n\t\t\t+ c + rect.y + L + rect.x\r\n\t\t\t+ c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n\t\t\t+ c + (rect.y + rect.height) + L + (rect.x + rect.width)\r\n\t\t\t+ c + rect.y + L + rect.x\r\n\t\t\t+ c + rect.y;\r\n\t}\r\n\telse {\r\n\t\treturn \"M\" + rect.x\r\n\t\t\t+ c + rect.y + L + (rect.x + rect.width)\r\n\t\t\t+ c + rect.y + L + (rect.x + rect.width)\r\n\t\t\t+ c + (rect.y + rect.height) + L + rect.x\r\n\t\t\t+ c + (rect.y + rect.height) + L + rect.x\r\n\t\t\t+ c + rect.y;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts SVG path to array of points.\r\n *\r\n * Note, this is experimental feature based on method which is deprecated\r\n * on some browsers and some browsers do not support it at all.\r\n *\r\n * You can save the output of this function, but not rely on it completely.\r\n */\r\nexport function pathToPoints(path: string, pointCount: number): IPoint[] {\r\n\r\n\tlet paper = getGhostPaper();\r\n\tlet svgPath: SVGPathElement = paper.add(\"path\").node;\r\n\tsvgPath.setAttribute(\"d\", path);\r\n\r\n\tif (svgPath.getPointAtLength && svgPath.getTotalLength) {\r\n\t\tlet length = svgPath.getTotalLength();\r\n\r\n\t\tlet toPoints = []\r\n\t\tfor (let i = 0; i < pointCount; i++) {\r\n\t\t\tlet point = svgPath.getPointAtLength(i / pointCount * length);\r\n\t\t\ttoPoints.push({ x: point.x, y: point.y });\r\n\t\t}\r\n\r\n\t\treturn toPoints;\r\n\t}\r\n\r\n\tsvgPath.remove();\r\n}\r\n\r\n\r\nexport function spiralPoints(cx: number, cy: number, radius: number, radiusY: number, innerRadius: number, step: number, radiusStep: number, startAngle?: number, endAngle?: number): IPoint[] {\r\n\r\n\tif (!$type.isNumber(startAngle)) {\r\n\t\tstartAngle = 0;\r\n\t}\r\n\r\n\tif (!$type.isNumber(startAngle)) {\r\n\t\tendAngle = startAngle;\r\n\t}\r\n\r\n\tlet r = innerRadius + 0.01;\r\n\tlet angle = startAngle * $math.RADIANS;\r\n\tlet points = [];\r\n\r\n\twhile (r < radius + radiusStep) {\r\n\r\n\t\tlet stepSize = step;\r\n\t\tif (stepSize / 2 > r) {\r\n\t\t\tstepSize = 2 * r;\r\n\t\t}\r\n\r\n\t\tangle += 2 * Math.asin(stepSize / 2 / r);\t\t\r\n\r\n\t\tif (angle * $math.DEGREES > endAngle + ((radius - innerRadius) / radiusStep) * 360) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tlet degrees = angle * $math.DEGREES;\r\n\r\n\t\tlet point = { x: cx + r * Math.cos(angle), y: cy + r * radiusY / radius * Math.sin(angle) };\r\n\t\tpoints.push(point);\r\n\r\n\t\tr = innerRadius + degrees / 360 * radiusStep;\r\n\r\n\t}\r\n\r\n\tpoints.shift();\r\n\r\n\treturn points;\r\n}\r\n\r\nexport function pointsToPath(points: IPoint[]) {\r\n\tif (!points || points.length == 0) {\r\n\t\treturn \"\";\r\n\t}\r\n\tlet path = moveTo(points[0]);\r\n\tif (points && points.length > 0) {\r\n\t\tfor (let i = 1; i < points.length; i++) {\r\n\t\t\tpath += lineTo(points[i]);\r\n\t\t}\r\n\t}\r\n\treturn path;\r\n}\r\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default\n/*#__PURE__*/\ncreateConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore =\n/*#__PURE__*/\ncreateStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch =\n/*#__PURE__*/\ncreateDispatchHook();","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelectors\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","/**\r\n * A collection of universal utility functions.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { Percent } from \"./Percent\";\r\nimport { isSafari } from \"./Browser\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $string from \"./String\";\r\nimport * as $strings from \"./Strings\";\r\nimport * as $object from \"./Object\";\r\nimport * as $array from \"./Array\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MISC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n\r\n/**\r\n * Marks a value as being used (e.g. because the value has side effects).\r\n */\r\nexport function used(value: A) { }\r\n\r\n/**\r\n * Copies all properties of one object to the other, omitting undefined.\r\n *\r\n * @param fromObject Source object\r\n * @param toObject Target object\r\n * @return Updated target object\r\n * @todo Maybe consolidate with utils.copy?\r\n */\r\nexport function copyProperties(source: Object, target: Object): Object {\r\n\t$object.each(source, (key, value) => {\r\n\t\t// only if value is set\r\n\t\tif ($type.hasValue(value)) {\r\n\t\t\t(target)[key] = value;\r\n\t\t}\r\n\t});\r\n\r\n\treturn target;\r\n}\r\n\r\n/**\r\n * Removes target from url\r\n */\r\nexport function stripHash(url: string): string {\r\n\treturn /^[^#]*/.exec(url)[0];\r\n}\r\n\r\nexport function getBaseURI() {\r\n\tlet url = \"#\";\r\n\r\n\t// Needed until https://bugs.webkit.org/show_bug.cgi?id=189499 is fixed\r\n\tif (isSafari()) {\r\n\t\tlet baseURI = document.baseURI;\r\n\t\tif (baseURI) {\r\n\t\t\tbaseURI = stripHash(baseURI);\r\n\t\t\tlet loc = stripHash(location.href);\r\n\t\t\tif (baseURI !== loc) {\r\n\t\t\t\turl = loc + url;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn url;\r\n}\r\n\r\n/**\r\n * Copies all properties of one object to the other, omitting undefined, but only if property in target object doesn't have a value set.\r\n *\r\n * @param fromObject Source object\r\n * @param toObject Target object\r\n * @return Updated target object\r\n * @todo Maybe consolidate with utils.copy?\r\n */\r\nexport function softCopyProperties(source: Object, target: Object): Object {\r\n\t$object.each(source, (key, value) => {\r\n\t\t// only if value is set\r\n\t\tif ($type.hasValue(value) && !($type.hasValue((target)[key]))) {\r\n\t\t\t(target)[key] = value;\r\n\t\t}\r\n\t});\r\n\treturn target;\r\n}\r\n\r\n/**\r\n * Copies all properties of one object to the other.\r\n *\r\n * @param source Source object\r\n * @param recipient Target object\r\n * @return Updated target object\r\n */\r\nexport function copy(source: Object, target: Object): Object {\r\n\t$object.each(source, (key, value) => {\r\n\t\t(target)[key] = value;\r\n\t});\r\n\treturn target;\r\n}\r\n\r\n/**\r\n * Checks if value is not empty (undefined or zero-length string).\r\n *\r\n * @param value Value to check\r\n * @return `true` if value is not \"empty\"\r\n */\r\nexport function isNotEmpty(value: $type.Optional): value is string {\r\n\treturn $type.hasValue(value) && (value.toString() !== \"\");\r\n}\r\n\r\n/**\r\n * [relativeToValue description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param percent [description]\r\n * @param full [description]\r\n * @return [description]\r\n */\r\nexport function relativeToValue(percent: $type.Optional, full: number): number {\r\n\tif ($type.isNumber(percent)) {\r\n\t\treturn percent;\r\n\t} else if (percent != null && $type.isNumber(percent.value) && $type.isNumber(full)) {\r\n\t\treturn full * percent.value;\r\n\r\n\t} else {\r\n\t\treturn 0;\r\n\t}\r\n}\r\n\r\n/**\r\n * [relativeRadiusToValue description]\r\n *\r\n * Differs from relativeToValue so that if a value is negative, it subtracts\r\n * it from full value.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param percent [description]\r\n * @param full [description]\r\n * @param subtractIfNegative [description]\r\n * @return [description]\r\n */\r\nexport function relativeRadiusToValue(percent: $type.Optional, full: number, subtractIfNegative?: boolean): $type.Optional {\r\n\tlet value: $type.Optional;\r\n\r\n\tif ($type.isNumber(percent)) {\r\n\t\tvalue = percent;\r\n\r\n\t\tif (value < 0) {\r\n\t\t\tif (subtractIfNegative) {\r\n\t\t\t\tvalue = full + value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = full - value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t} else if (percent != null && $type.isNumber(percent.value)) {\r\n\t\tvalue = full * percent.value;\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * [valueToRelative description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param value [description]\r\n * @param full [description]\r\n * @return [description]\r\n */\r\nexport function valueToRelative(value: number | Percent, full: number): number {\r\n\tif (value instanceof Percent) {\r\n\t\treturn value.value;\r\n\t}\r\n\telse {\r\n\t\treturn value / full;\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns pixel ratio of the current screen (used on retina displays).\r\n *\r\n * @return Pixel ratio\r\n */\r\nexport function getPixelRatio(): number {\r\n\tlet ratio = window.devicePixelRatio || 1;\r\n\treturn ratio;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * STRING FORMATTING FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Converts camelCased text to dashed version:\r\n * (\"thisIsString\" > \"this-is-string\")\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function camelToDashed(str: string): string {\r\n\treturn str.replace(/\\W+/g, '-').replace(/([a-z\\d])([A-Z])/g, '$1-$2').toLowerCase();\r\n}\r\n\r\n/**\r\n * Converts tring to uppercase.\r\n *\r\n * @param str String to convert\r\n * @return uppercased string\r\n * @todo Maybe make it better\r\n */\r\nexport function capitalize(str: string): string {\r\n\tlet arr: string[] = str.split(\"\");\r\n\tarr[0] = arr[0].toUpperCase();\r\n\treturn arr.join(\"\");\r\n}\r\n\r\n/**\r\n * Converts any value into its string representation.\r\n *\r\n * @param value Value\r\n * @return String represantation of the value\r\n */\r\nexport function stringify(value: any): string {\r\n\treturn JSON.stringify(value);\r\n}\r\n\r\n/**\r\n * Escapes string so it can safely be used in a Regex.\r\n *\r\n * @param value Unsescaped string\r\n * @return Escaped string\r\n */\r\nexport function escapeForRgex(value: string): string {\r\n\treturn value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n}\r\n\r\n/**\r\n * Splits the text into multiple lines, respecting maximum character count.\r\n * Prioretizes splitting on spaces and punctuation. Falls back on splitting\r\n * mid-word if there's no other option.\r\n *\r\n * @param text Text\r\n * @param maxChars Maximum number of characters per line\r\n * @return An array of split text\r\n */\r\nexport function splitTextByCharCount(text: string, maxChars: number, fullWords?: boolean, rtl?: boolean): string[] {\r\n\r\n\t// Maybe the text fits?\r\n\tif (text.length <= maxChars) {\r\n\t\treturn [text];\r\n\t}\r\n\r\n\t// Init result\r\n\tlet res: string[] = [];\r\n\r\n\t// Split by words or by charts\r\n\tif (fullWords) {\r\n\r\n\t\t// Split by words first\r\n\r\n\t\t// Split by spacing\r\n\t\tlet currentIndex: number = -1;\r\n\t\tlet tmpText = text.replace(/([,;:!?\\\\\\/\\.]+[\\s]+|[\\s])/g, $strings.PLACEHOLDER + \"$1\" + $strings.PLACEHOLDER);\r\n\t\tlet words = tmpText.split($strings.PLACEHOLDER);\r\n\r\n\t\t// Process each word\r\n\t\tfor (let i = 0; i < words.length; i++) {\r\n\r\n\t\t\t// Get word and symbol count\r\n\t\t\tlet word: string = words[i];\r\n\t\t\tlet wordLength: number = word.length;\r\n\r\n\t\t\t// Ignore empty words\r\n\t\t\tif (wordLength === 0) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// Check word length\r\n\t\t\t//if ((wordLength > maxChars) && fullWords !== true) {\r\n\t\t\tif (wordLength > maxChars) {\r\n\t\t\t\t// A single word is longer than allowed symbol count\r\n\t\t\t\t// Break it up\r\n\t\t\t\tif (rtl) {\r\n\t\t\t\t\tword = reverseString(word);\r\n\t\t\t\t}\r\n\t\t\t\tlet parts: RegExpMatchArray | null = word.match(new RegExp(\".{1,\" + maxChars + \"}\", \"g\"));\r\n\r\n\t\t\t\t// TODO is this correct ?\r\n\t\t\t\tif (parts) {\r\n\t\t\t\t\tif (rtl) {\r\n\t\t\t\t\t\tfor (let x = 0; x < parts.length; x++) {\r\n\t\t\t\t\t\t\tparts[x] = reverseString(parts[x]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//parts.reverse();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tres = res.concat(parts);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// Init current line\r\n\t\t\t\tif (currentIndex === -1) {\r\n\t\t\t\t\tres.push(\"\");\r\n\t\t\t\t\tcurrentIndex = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check if we need to break into another line\r\n\t\t\t\tif (((res[currentIndex].length + wordLength + 1) > maxChars) && res[currentIndex] !== \"\") {\r\n\t\t\t\t\tres.push(\"\");\r\n\t\t\t\t\tcurrentIndex++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Add word\r\n\t\t\t\tres[currentIndex] += word;\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Update index\r\n\t\t\tcurrentIndex = res.length - 1;\r\n\t\t}\r\n\t}\r\n\telse {\r\n\r\n\t\t// Splitting by anywhere (living la vida facil)\r\n\t\tlet parts: RegExpMatchArray | null = text.match(new RegExp(\".{1,\" + maxChars + \"}\", \"g\"));\r\n\r\n\t\tif (parts) {\r\n\t\t\tif (rtl) {\r\n\t\t\t\tfor (let x = 0; x < parts.length; x++) {\r\n\t\t\t\t\tparts[x] = reverseString(parts[x]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tres = parts;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t// Do we have only one word that does not fit?\r\n\t// Since fullWords is set and we can't split the word, we end up with empty\r\n\t// set.\r\n\tif (res.length == 1 && fullWords && (res[0].length > maxChars)) {\r\n\t\tres = [];\r\n\t}\r\n\r\n\treturn res;\r\n}\r\n\r\n/**\r\n * Truncates the text to certain character count.\r\n *\r\n * Will add ellipsis if the string is truncated. Optionally, can truncate on\r\n * full words only.\r\n *\r\n * For RTL support, pass in the fifth parameter as `true`.\r\n *\r\n * @param text Input text\r\n * @param maxChars Maximum character count of output\r\n * @param ellipsis Ellipsis string, i.e. \"...\"\r\n * @param fullWords If `true`, will not break mid-word, unless there's a single word and it does not with into `maxChars`\r\n * @param rtl Is this an RTL text?\r\n * @return Truncated text\r\n */\r\nexport function truncateWithEllipsis(text: string, maxChars: number, ellipsis: string, fullWords?: boolean, rtl?: boolean): string {\r\n\r\n\tif (text.length <= maxChars) {\r\n\t\treturn text;\r\n\t}\r\n\r\n\t// Calc max chars\r\n\tmaxChars -= ellipsis.length;\r\n\tif (maxChars < 1) {\r\n\t\tmaxChars = 1;\r\n\t\t//ellipsis = \"\";\r\n\t}\r\n\r\n\t// Get lines\r\n\tlet lines = splitTextByCharCount(text, maxChars, fullWords, rtl);\r\n\r\n\t// Use first line\r\n\treturn (lines[0] || \"\") + ellipsis;\r\n}\r\n\r\n/**\r\n * Removes whitespace from beginning and end of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function trim(str: string): string {\r\n\treturn str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\r\n};\r\n\r\n/**\r\n * Removes whitespace from end of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function rtrim(str: string): string {\r\n\treturn str.replace(/[\\s\\uFEFF\\xA0]+$/g, \"\");\r\n};\r\n\r\n/**\r\n * Removes whitespace from beginning of the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function ltrim(str: string): string {\r\n\treturn str.replace(/^[\\s\\uFEFF\\xA0]+/g, \"\");\r\n};\r\n\r\n/**\r\n * Reverses string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function reverseString(str: string): string {\r\n\treturn str.split(\"\").reverse().join(\"\");\r\n}\r\n\r\n/**\r\n * Removes quotes from the string.\r\n *\r\n * @param str Input\r\n * @return Output\r\n */\r\nexport function unquote(str: string): string {\r\n\tlet res = str.trim();\r\n\tres = str.replace(/^'(.*)'$/, \"$1\");\r\n\tif (res == str) {\r\n\t\tres = str.replace(/^\"(.*)\"$/, \"$1\");\r\n\t}\r\n\treturn res;\r\n}\r\n\r\n/**\r\n * Pads a string with additional characters to certain length.\r\n *\r\n * @param value A numeric value\r\n * @param len Result string length in characters\r\n * @param char A character to use for padding\r\n * @return Padded value as string\r\n */\r\nexport function padString(value: any, len: number = 0, char: string = \"0\"): string {\r\n\tif (typeof value !== \"string\") {\r\n\t\tvalue = value.toString();\r\n\t}\r\n\r\n\treturn len > value.length ? Array(len - value.length + 1).join(char) + value : value;\r\n}\r\n\r\n/**\r\n * Tries to determine format type.\r\n *\r\n * @ignore Exclude from docs\r\n * @param format Format string\r\n * @return Format type (\"string\" | \"number\" | \"date\" | \"duration\")\r\n */\r\nexport function getFormat(format: string): string {\r\n\r\n\t// Undefined?\r\n\tif (typeof format === \"undefined\") {\r\n\t\treturn $strings.STRING;\r\n\t}\r\n\r\n\t// Cleanup and lowercase format\r\n\tformat = format.toLowerCase().replace(/^\\[[^\\]]*\\]/, \"\");\r\n\r\n\t// Remove style tags\r\n\tformat = format.replace(/\\[[^\\]]+\\]/, \"\");\r\n\r\n\t// Trim\r\n\tformat = format.trim();\r\n\r\n\t// Check for any explicit format hints (i.e. /Date)\r\n\tlet hints: RegExpMatchArray | null = format.match(/\\/(date|number|duration)$/);\r\n\r\n\tif (hints) {\r\n\t\treturn hints[1];\r\n\t}\r\n\r\n\t// Check for explicit hints\r\n\tif (format === $strings.NUMBER) {\r\n\t\treturn $strings.NUMBER;\r\n\t}\r\n\r\n\tif (format === $strings.DATE) {\r\n\t\treturn $strings.DATE;\r\n\t}\r\n\r\n\tif (format === $strings.DURATION) {\r\n\t\treturn $strings.DURATION;\r\n\t}\r\n\r\n\t// Detect number formatting symbols\r\n\tif (format.match(/[#0]/)) {\r\n\t\treturn $strings.NUMBER;\r\n\t}\r\n\r\n\t// Detect date formatting symbols\r\n\tif (format.match(/[ymwdhnsqaxkzgtei]/)) {\r\n\t\treturn $strings.DATE;\r\n\t}\r\n\r\n\t// Nothing? Let's display as string\r\n\treturn $strings.STRING;\r\n}\r\n\r\n/**\r\n * Cleans up format:\r\n * * Strips out formatter hints\r\n *\r\n * @ignore Exclude from docs\r\n * @param format Format\r\n * @return Cleaned format\r\n */\r\nexport function cleanFormat(format: string): string {\r\n\treturn format.replace(/\\/(date|number|duration)$/i, \"\");\r\n}\r\n\r\n/**\r\n * Strips all tags from the string.\r\n *\r\n * @param text Source string\r\n * @return String without tags\r\n */\r\nexport function stripTags(text: string): string {\r\n\treturn text ? text.replace(/<[^>]*>/g, \"\") : text;\r\n}\r\n\r\n/**\r\n * Removes new lines and tags from a string.\r\n *\r\n * @param text String to conver\r\n * @return Converted string\r\n */\r\nexport function plainText(text: string): string {\r\n\treturn text ? stripTags(text.replace(/[\\n\\r]+/g, \". \")) : text;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * TYPE CONVERSION FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Converts numeric value into string. Deals with large or small numbers that\r\n * would otherwise use exponents.\r\n *\r\n * @param value Numeric value\r\n * @return Numeric value as string\r\n */\r\nexport function numberToString(value: number): string {\r\n\t// TODO handle Infinity and -Infinity\r\n\tif ($type.isNaN(value)) {\r\n\t\treturn \"NaN\";\r\n\t}\r\n\r\n\tif (value === Infinity) {\r\n\t\treturn \"Infinity\";\r\n\t}\r\n\r\n\tif (value === -Infinity) {\r\n\t\treturn \"-Infinity\";\r\n\t}\r\n\r\n\t// Negative 0\r\n\tif ((value === 0) && (1 / value === -Infinity)) {\r\n\t\treturn \"-0\";\r\n\t}\r\n\r\n\t// Preserve negative and deal with absoute values\r\n\tlet negative = value < 0;\r\n\r\n\tvalue = Math.abs(value);\r\n\r\n\t// TODO test this\r\n\tlet parsed = $type.getValue(/^([0-9]+)(?:\\.([0-9]+))?(?:e[\\+\\-]([0-9]+))?$/.exec(\"\" + value));\r\n\tlet digits = parsed[1];\r\n\tlet decimals = parsed[2] || \"\";\r\n\r\n\tlet res: string;\r\n\r\n\t// Leave the nummber as it is if it does not use exponents\r\n\tif (parsed[3] == null) {\r\n\t\tres = (decimals === \"\" ? digits : digits + \".\" + decimals);\r\n\r\n\t} else {\r\n\t\tlet exponent = +parsed[3];\r\n\r\n\t\t// Deal with decimals\r\n\t\tif (value < 1) {\r\n\t\t\tlet zeros = exponent - 1;\r\n\r\n\t\t\tres = \"0.\" + $string.repeat(\"0\", zeros) + digits + decimals;\r\n\r\n\t\t\t// Deal with integers\r\n\t\t} else {\r\n\t\t\tlet zeros = exponent - decimals.length;\r\n\r\n\t\t\tif (zeros === 0) {\r\n\t\t\t\tres = digits + decimals;\r\n\r\n\t\t\t} else if (zeros < 0) {\r\n\t\t\t\tres = digits + decimals.slice(0, zeros) + \".\" + decimals.slice(zeros);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tres = digits + decimals + $string.repeat(\"0\", zeros);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn negative ? \"-\" + res : res;\r\n}\r\n\r\n/**\r\n * Converts anything to Date object.\r\n *\r\n * @param value A value of any type\r\n * @return Date object representing a value\r\n */\r\nexport function anyToDate(value: Date | number | string): Date {\r\n\tif ($type.isDate(value)) {\r\n\t\t// TODO maybe don't create a new Date ?\r\n\t\treturn new Date(value);\r\n\t}\r\n\r\n\telse if ($type.isNumber(value)) {\r\n\t\treturn new Date(value);\r\n\t}\r\n\r\n\telse {\r\n\t\t// Try converting to number (assuming timestamp)\r\n\t\tlet num = Number(value);\r\n\r\n\t\tif (!$type.isNumber(num)) {\r\n\t\t\treturn new Date(value);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn new Date(num);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Tries converting any value to a number.\r\n *\r\n * @param value Source value\r\n * @return Number\r\n */\r\nexport function anyToNumber(value: Date | number | string): $type.Optional {\r\n\tif ($type.isDate(value)) {\r\n\t\treturn value.getTime();\r\n\t}\r\n\r\n\telse if ($type.isNumber(value)) {\r\n\t\treturn value;\r\n\t}\r\n\r\n\telse if ($type.isString(value)) {\r\n\t\t// Try converting to number (assuming timestamp)\r\n\t\tlet num = Number(value);\r\n\r\n\t\tif (!$type.isNumber(num)) {\r\n\t\t\t// Failing\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn num;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATE-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns a year day.\r\n *\r\n * @param date Date\r\n * @param utc Assume UTC dates?\r\n * @return Year day\r\n * @todo Account for UTC\r\n */\r\nexport function getYearDay(date: Date, utc: boolean = false): number {\r\n\tconst start = new Date(date.getFullYear(), 0, 0);\r\n\tconst diff = (date.getTime() - start.getTime()) + ((start.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000);\r\n\tconst oneDay = 1000 * 60 * 60 * 24;\r\n\treturn Math.floor(diff / oneDay);\r\n}\r\n\r\n/**\r\n * Returns week number for a given date.\r\n *\r\n * @param date Date\r\n * @param utc Assume UTC dates?\r\n * @return Week number\r\n * @todo Account for UTC\r\n */\r\nexport function getWeek(date: Date, utc: boolean = false): number {\r\n\tconst day = getYearDay(date, utc) - 1;\r\n\tlet week = Math.floor((day - (date.getDay() || 7) + 10) / 7);\r\n\tif (week === 0) {\r\n\t\tweek = 53;\r\n\t}\r\n\telse if (week === 53) {\r\n\t\tweek = 1;\r\n\t}\r\n\treturn week;\r\n}\r\n\r\n/**\r\n * Returns a week number in the month.\r\n *\r\n * @param date Source Date\r\n * @param utc Assume UTC dates?\r\n * @return Week number in month\r\n */\r\nexport function getMonthWeek(date: Date, utc: boolean = false): number {\r\n\tconst firstWeek = getWeek(new Date(date.getFullYear(), date.getMonth(), 1), utc);\r\n\tlet currentWeek = getWeek(date, utc);\r\n\tif (currentWeek == 1) {\r\n\t\tcurrentWeek = 53;\r\n\t}\r\n\treturn currentWeek - firstWeek + 1;\r\n}\r\n\r\n/**\r\n * Returns a year day out of the given week number.\r\n *\r\n * @param week Week\r\n * @param year Year\r\n * @param weekday Weekday\r\n * @param utc Assume UTC dates\r\n * @return Day in a year\r\n */\r\nexport function getDayFromWeek(week: number, year: number, weekday: number = 1, utc: boolean = false): number {\r\n\tlet date = new Date(year, 0, 4, 0, 0, 0, 0);\r\n\tif (utc) {\r\n\t\tdate.setUTCFullYear(year);\r\n\t}\r\n\tlet day = week * 7 + weekday - ((date.getDay() || 7) + 3);\r\n\treturn day;\r\n}\r\n\r\n/**\r\n * Returns 12-hour representation out of the 24-hour hours.\r\n *\r\n * @param hours 24-hour number\r\n * @return 12-hour number\r\n */\r\nexport function get12Hours(hours: number, base?: number): number {\r\n\tif (hours > 12) {\r\n\t\thours -= 12;\r\n\t}\r\n\telse if (hours === 0) {\r\n\t\thours = 12;\r\n\t}\r\n\treturn $type.hasValue(base) ? hours + (base - 1) : hours;\r\n}\r\n\r\n/**\r\n * Returns a string name of the tome zone.\r\n *\r\n * @param date Date object\r\n * @param long Should return long (\"Pacific Standard Time\") or short abbreviation (\"PST\")\r\n * @param savings Include information if it's in daylight savings mode\r\n * @param utc Assume UTC dates\r\n * @return Time zone name\r\n */\r\nexport function getTimeZone(date: Date, long: boolean = false, savings: boolean = false, utc: boolean = false): string {\r\n\tif (utc) {\r\n\t\treturn long ? \"Coordinated Universal Time\" : \"UTC\";\r\n\t}\r\n\tlet wotz = date.toLocaleString(\"UTC\");\r\n\tlet wtz = date.toLocaleString(\"UTC\", { timeZoneName: long ? \"long\" : \"short\" }).substr(wotz.length);\r\n\t//wtz = wtz.replace(/[+-]+[0-9]+$/, \"\");\r\n\tif (savings === false) {\r\n\t\twtz = wtz.replace(/ (standard|daylight|summer|winter) /i, \" \");\r\n\t}\r\n\treturn wtz;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * NUMBER-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns a random number between `from` and `to`.\r\n *\r\n * @param from From number\r\n * @param to To number\r\n * @return Random number\r\n */\r\nexport function random(from: number, to: number): number {\r\n\treturn Math.floor(Math.random() * to) + from;\r\n}\r\n\r\n/**\r\n * Fits the number into specific `min` and `max` bounds.\r\n *\r\n * @param value Input value\r\n * @param min Minimum value\r\n * @param max Maximum value\r\n * @return Possibly adjusted value\r\n */\r\nexport function fitNumber(value: number, min: number, max: number): number {\r\n\tif (value > max) {\r\n\t\treturn max;\r\n\t}\r\n\telse if (value < min) {\r\n\t\treturn min;\r\n\t}\r\n\treturn value;\r\n}\r\n\r\n/**\r\n * Fits the number into specific `min` and `max` bounds.\r\n *\r\n * If the value is does not fit withing specified range, it \"wraps\" around the\r\n * values.\r\n *\r\n * For example, if we have input value 10 with min set at 1 and max set at 8,\r\n * the value will not fit. The remainder that does not fit (2) will be added\r\n * to `min`, resulting in 3.\r\n *\r\n * The output of regular `fitNumber()` would return 8 instead.\r\n *\r\n * @param value Input value\r\n * @param min Minimum value\r\n * @param max Maximum value\r\n * @return Possibly adjusted value\r\n */\r\nexport function fitNumberRelative(value: number, min: number, max: number): number {\r\n\tlet gap = max - min;\r\n\tif (value > max) {\r\n\t\tvalue = min + (value - gap * Math.floor(value / gap));\r\n\t}\r\n\telse if (value < min) {\r\n\t\tvalue = min + (value - gap * Math.floor(value / gap));\r\n\t}\r\n\treturn value;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * SPRITE-RELATED FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Converts SVG element coordinates to coordinates within specific [[Sprite]].\r\n *\r\n * @param point SVG coordinates\r\n * @param sprite Sprite\r\n * @return Sprite coordinates\r\n */\r\nexport function svgPointToSprite(point: IPoint, sprite: Sprite): IPoint {\r\n\tlet x: number = point.x;\r\n\tlet y: number = point.y;\r\n\tlet sprites: Sprite[] = [];\r\n\tif (sprite) {\r\n\t\twhile ($type.hasValue(sprite.parent)) {\r\n\t\t\tsprites.push(sprite);\r\n\t\t\tsprite = sprite.parent as any;\r\n\t\t}\r\n\r\n\t\tsprites.reverse();\r\n\r\n\t\tfor (let i = 0; i < sprites.length; i++) {\r\n\t\t\tlet sprite: Sprite = sprites[i];\r\n\t\t\tlet angle: number = sprite.rotation;\r\n\r\n\t\t\tlet relativeX = x - sprite.pixelX - sprite.ex;\r\n\t\t\tlet relativeY = y - sprite.pixelY - sprite.ey;\r\n\r\n\t\t\tif (sprite.dx) {\r\n\t\t\t\tx -= sprite.dx;\r\n\t\t\t}\r\n\t\t\tif (sprite.dy) {\r\n\t\t\t\ty -= sprite.dy;\r\n\t\t\t}\r\n\r\n\t\t\tlet scale = sprite.scale;\r\n\r\n\t\t\t// this handles nonscaling\r\n\t\t\tif(sprite.group){\r\n\t\t\t\tscale = sprite.group.scale; \r\n\t\t\t}\r\n\r\n\t\t\tx = ($math.cos(-angle) * relativeX - $math.sin(-angle) * relativeY) / scale - sprite.pixelPaddingLeft;\r\n\t\t\ty = ($math.cos(-angle) * relativeY + $math.sin(-angle) * relativeX) / scale - sprite.pixelPaddingTop;\r\n\t\t}\r\n\t}\r\n\r\n\treturn { x: x, y: y };\r\n}\r\n\r\n/**\r\n * Converts coordinates within [[Sprite]] to coordinates relative to the whole\r\n * SVG element.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @return SVG coordinates\r\n */\r\nexport function spritePointToSvg(point: IPoint, sprite: Sprite): IPoint {\r\n\tlet x: number = point.x;\r\n\tlet y: number = point.y;\r\n\r\n\tif (sprite) {\r\n\t\twhile ($type.hasValue(sprite.parent)) {\r\n\t\t\tlet angle: number = sprite.rotation;\r\n\r\n\t\t\tx += sprite.pixelPaddingLeft + sprite.ex;\r\n\t\t\ty += sprite.pixelPaddingTop + sprite.ey;\r\n\r\n\t\t\tlet scale = sprite.scale;\r\n\r\n\t\t\t// this handles nonscaling\r\n\t\t\tif(sprite.group){\r\n\t\t\t\tscale = sprite.group.scale; \r\n\t\t\t}\r\n\r\n\t\t\tlet relativeX = sprite.pixelX + ((x * $math.cos(angle) - y * $math.sin(angle))) * scale;\r\n\t\t\tlet relativeY = sprite.pixelY + ((x * $math.sin(angle) + y * $math.cos(angle))) * scale;\r\n\r\n\t\t\tif (sprite.dx) {\r\n\t\t\t\trelativeX += sprite.dx;\r\n\t\t\t}\r\n\t\t\tif (sprite.dy) {\r\n\t\t\t\trelativeY += sprite.dy;\r\n\t\t\t}\r\n\r\n\t\t\tx = relativeX;\r\n\t\t\ty = relativeY;\r\n\r\n\t\t\tsprite = sprite.parent as any;\r\n\t\t}\r\n\t}\r\n\treturn { x: x, y: y };\r\n}\r\n\r\n\r\n/**\r\n * Converts coordinates of one sprite to another.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @param toSprite Sprite\r\n * @return converted coordinates\r\n */\r\nexport function spritePointToSprite(point: IPoint, sprite: Sprite, toSprite: Sprite): IPoint {\r\n\treturn svgPointToSprite(spritePointToSvg(point, sprite), toSprite);\r\n}\r\n\r\n\r\n/**\r\n * Converts a rectangle expressed in SVG element coordinates to coordinates\r\n * within specific [[Sprite]].\r\n *\r\n * @param rect SVG rectangle\r\n * @param sprite Sprite\r\n * @return Sprite rectangle\r\n */\r\nexport function svgRectToSprite(rect: IRectangle, sprite: Sprite): IRectangle {\r\n\tlet p1: IPoint = svgPointToSprite(rect, sprite);\r\n\tlet p2: IPoint = svgPointToSprite({ x: rect.x + rect.width, y: rect.y + rect.height }, sprite);\r\n\treturn { x: p1.x, y: p1.y, width: p2.x - p1.x, height: p2.y - p1.y };\r\n}\r\n\r\n/**\r\n * Converts a rectangle expressed in [[Sprite]] coordinates to SVG coordinates.\r\n *\r\n * @param rect Sprite rectangle\r\n * @param sprite Sprite\r\n * @return SVG rectangle\r\n */\r\nexport function spriteRectToSvg(rect: IRectangle, sprite: Sprite): IRectangle {\r\n\tlet p1: IPoint = spritePointToSvg(rect, sprite);\r\n\tlet p2: IPoint = spritePointToSvg({ x: rect.x + rect.width, y: rect.y + rect.height }, sprite);\r\n\treturn { x: p1.x, y: p1.y, width: p2.x - p1.x, height: p2.y - p1.y };\r\n}\r\n\r\n/**\r\n * Converts global document-wide coordinates to coordinates within SVG element.\r\n *\r\n * @param point Global coordinates\r\n * @param svgContainer SVG element\r\n * @return SVG coordinates\r\n */\r\nexport function documentPointToSvg(point: IPoint, svgContainer: HTMLElement, cssScale?: number): IPoint {\r\n\ttry {\r\n\t\tlet bbox = svgContainer.getBoundingClientRect();\r\n\r\n\t\tif (!$type.isNumber(cssScale)) {\r\n\t\t\tcssScale = 1;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t\"x\": (point.x - bbox.left) / cssScale,\r\n\t\t\t\"y\": (point.y - bbox.top) / cssScale\r\n\t\t};\r\n\t}\r\n\tcatch (e) {\r\n\t\treturn point;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts SVG coordinates to global document-wide coordinates.\r\n *\r\n * @param point SVG coordinates\r\n * @param svgContainer SVG element\r\n * @return Global coordinates\r\n */\r\nexport function svgPointToDocument(point: IPoint, svgContainer: HTMLElement): IPoint {\r\n\ttry {\r\n\t\tlet bbox = svgContainer.getBoundingClientRect();\r\n\r\n\t\treturn {\r\n\t\t\t\"x\": point.x + bbox.left,\r\n\t\t\t\"y\": point.y + bbox.top\r\n\t\t};\r\n\t}\r\n\tcatch (e) {\r\n\t\treturn point;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts document-wide global coordinates to coordinates within specific\r\n * [[Sprite]].\r\n *\r\n * @param point Global coordinates\r\n * @param sprite Sprite\r\n * @return Sprite coordinates\r\n */\r\nexport function documentPointToSprite(point: IPoint, sprite: Sprite): IPoint {\r\n\tif (sprite && sprite.htmlContainer) {\r\n\t\tlet svgPoint: IPoint = documentPointToSvg(point, $type.getValue(sprite.htmlContainer), sprite.svgContainer.cssScale);\r\n\t\treturn svgPointToSprite(svgPoint, sprite);\r\n\t}\r\n\telse {\r\n\t\treturn point;\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts coordinates within [[Sprite]] to global document coordinates.\r\n *\r\n * @param point Sprite coordinates\r\n * @param sprite Sprite\r\n * @return Global coordinates\r\n */\r\nexport function spritePointToDocument(point: IPoint, sprite: Sprite): IPoint {\r\n\tif (sprite && sprite.htmlContainer) {\r\n\t\tlet svgPoint: IPoint = spritePointToSvg(point, sprite);\r\n\t\treturn svgPointToDocument(svgPoint, $type.getValue(sprite.htmlContainer));\r\n\t}\r\n\telse {\r\n\t\treturn point;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DEPRECATED FUNCTIONS\r\n * @todo Review and remove\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns element's width.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Width (px)\r\n * @deprecated Not used anywhere\r\n */\r\nexport function width(element: HTMLElement): number {\r\n\r\n\tlet cs = getComputedStyle(element);\r\n\r\n\tlet paddingX = parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight);\r\n\tlet borderX = parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth);\r\n\r\n\treturn element.clientWidth - paddingX - borderX;\r\n}\r\n\r\n/**\r\n * Returns element's height.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Height (px)\r\n * @deprecated Not used anywhere\r\n */\r\nexport function height(element: HTMLElement): number {\r\n\r\n\tlet cs = getComputedStyle(element);\r\n\r\n\tlet paddingY = parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom);\r\n\tlet borderY = parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth);\r\n\r\n\treturn element.clientHeight - paddingY - borderY;\r\n}\r\n\r\n/**\r\n * Returns number of decimals\r\n *\r\n * @ignore Exclude from docs\r\n * @param number Input number\r\n * @return Number of decimals\r\n */\r\nexport function decimalPlaces(number: number): number {\r\n\tlet match = ('' + number).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n\tif (!match) { return 0; }\r\n\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\r\n}\r\n\r\n\r\n/**\r\n * A parsed URL\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport interface Url {\r\n\tprotocol: string;\r\n\tseparator: string;\r\n\tauthority: string;\r\n\tdomain: string;\r\n\tport: string;\r\n\tpath: string;\r\n\tquery: string;\r\n\thash: string;\r\n}\r\n\r\nconst urlRegexp = /^([a-zA-Z][a-zA-Z0-9\\+\\.\\-]*:)?(?:(\\/\\/)([^\\@]+\\@)?([^\\/\\?\\#\\:]*)(\\:[0-9]+)?)?([^\\?\\#]*)(\\?[^\\#]*)?(\\#.*)?$/;\r\n\r\n/**\r\n * Parses a URL\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO test this\r\nexport function parseUrl(url: string): Url {\r\n\tconst match = urlRegexp.exec(url);\r\n\r\n\treturn {\r\n\t\tprotocol: (match && match[1]) || \"\",\r\n\t\tseparator: (match && match[2]) || \"\",\r\n\t\tauthority: (match && match[3]) || \"\",\r\n\t\tdomain: (match && match[4]) || \"\",\r\n\t\tport: (match && match[5]) || \"\",\r\n\t\tpath: (match && match[6]) || \"\",\r\n\t\tquery: (match && match[7]) || \"\",\r\n\t\thash: (match && match[8]) || \"\"\r\n\t};\r\n}\r\n\r\n/**\r\n * Serializes a Url into a string\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function serializeUrl(url: Url): string {\r\n\treturn url.protocol + url.separator + url.authority + url.domain + url.port + url.path + url.query + url.hash;\r\n}\r\n\r\n/**\r\n * Checks whether a Url is relative or not\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO is this correct ?\r\nfunction isRelativeUrl(url: Url): boolean {\r\n\treturn url.protocol === \"\" &&\r\n\t\turl.separator === \"\" &&\r\n\t\turl.authority === \"\" &&\r\n\t\turl.domain === \"\" &&\r\n\t\turl.port === \"\";\r\n}\r\n\r\n/**\r\n * Joins together two URLs, resolving relative URLs correctly\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n// TODO test this\r\nexport function joinUrl(left: string, right: string): string {\r\n\tconst parsedLeft = parseUrl(left);\r\n\tconst parsedRight = parseUrl(right);\r\n\r\n\tif (isRelativeUrl(parsedLeft)) {\r\n\t\tthrow new Error(\"Left URL is not absolute\");\r\n\t}\r\n\r\n\tif (isRelativeUrl(parsedRight)) {\r\n\t\t// TODO is this correct ?\r\n\t\tif (parsedRight.path !== \"\") {\r\n\t\t\tif (parsedRight.path[0] === \"/\") {\r\n\t\t\t\tparsedLeft.path = parsedRight.path;\r\n\r\n\t\t\t\t// TODO is this correct ?\r\n\t\t\t} else {\r\n\t\t\t\tconst leftPath = parsedLeft.path.split(/\\//);\r\n\t\t\t\tconst rightPath = parsedRight.path.split(/\\//);\r\n\r\n\t\t\t\t// TODO is this correct ?\r\n\t\t\t\tif (leftPath.length === 0) {\r\n\t\t\t\t\tif (rightPath.length !== 0) {\r\n\t\t\t\t\t\tleftPath.push(\"\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (leftPath.length > 1) {\r\n\t\t\t\t\tleftPath.pop();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.pushAll(leftPath, rightPath);\r\n\r\n\t\t\t\tparsedLeft.path = leftPath.join(\"/\");\r\n\r\n\t\t\t\tif (parsedLeft.path !== \"\" && parsedLeft.path[0] !== \"/\") {\r\n\t\t\t\t\tthrow new Error(\"URL path must start with /\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO is this correct ?\r\n\t\tparsedLeft.query = parsedRight.query;\r\n\t\tparsedLeft.hash = parsedRight.hash;\r\n\r\n\t\treturn serializeUrl(parsedLeft);\r\n\r\n\t} else {\r\n\t\treturn serializeUrl(parsedRight);\r\n\t}\r\n}\r\n\r\n/**\r\n * Detects MSIE.\r\n *\r\n * @return Is IE?\r\n */\r\nexport function isIE(): boolean {\r\n\treturn !!(window).MSInputMethodContext && !!(document).documentMode;\r\n}\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Ordering } from \"./Order\";\r\nimport { Optional } from \"./Type\";\r\nimport * as $math from \"./Math\";\r\nimport * as $type from \"./Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * UTILITY FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Searches `array` for `value`.\r\n *\r\n * Returns -1 if not found.\r\n *\r\n * @param array Source array\r\n * @param value Value to search\r\n * @returns Index\r\n */\r\nexport function indexOf(array: ArrayLike, value: A): number {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\t// TODO handle NaN\r\n\t\tif (array[i] === value) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * Calls `test` for each element in `array`.\r\n *\r\n * If `test` returns `true` then it immediately returns `true`.\r\n *\r\n * If `test` returns `false` for all of the elements in `array` then it returns `false`.\r\n *\r\n * @param array Source array\r\n * @param test Function which is called on each element\r\n * @returns Whether `test` returned true or not\r\n */\r\nexport function any(array: ArrayLike, test: (value: A) => boolean): boolean {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tif (test(array[i])) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\n/**\r\n * Calls `fn` function for every member of array and returns a new array out\r\n * of all outputs.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n * @returns New array\r\n */\r\nexport function map(array: ArrayLike, fn: (value: A, index: number) => B): Array {\r\n\tconst length = array.length;\r\n\tconst output = new Array(length);\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\toutput[i] = fn(array[i], i);\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function each(array: ArrayLike, fn: (value: A, index: number) => void): void {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tfn(array[i], i);\r\n\t}\r\n}\r\n\r\n/**\r\n * Iterates through all items in array in reverse order and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function eachReverse(array: ArrayLike, fn: (value: A, index: number) => void): void {\r\n\tlet i = array.length;\r\n\r\n\twhile (i--) {\r\n\t\tfn(array[i], i);\r\n\t}\r\n}\r\n\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * If `fn` call evaluates to `false`, further iteration is cancelled.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function eachContinue(array: ArrayLike, fn: (value: A, index: number) => boolean): void {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tif (!fn(array[i], i)) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Shifts an item at `index` towards beginning of the array.\r\n *\r\n * @param array Source array\r\n * @param index Target element index\r\n */\r\nexport function shiftLeft(array: Array, index: number): void {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = index; i < length; ++i) {\r\n\t\tarray[i - index] = array[i];\r\n\t}\r\n\r\n\tarray.length = length - index;\r\n}\r\n\r\n/**\r\n * Returns the last item of the array.\r\n *\r\n * @param array Source array\r\n * @returns Last item\r\n */\r\nexport function last(array: Array): Optional {\r\n\tconst length = array.length;\r\n\treturn length ? array[length - 1] : undefined;\r\n}\r\n\r\n/**\r\n * Returns the first item of the array.\r\n *\r\n * @param array Source array\r\n * @returns Last item\r\n */\r\nexport function first(array: Array): Optional {\r\n\treturn array[0];\r\n}\r\n\r\n/**\r\n * Inserts `element` into `array` at `index`.\r\n *\r\n * Caps `index` to be between `0` and `array.length`\r\n *\r\n * @param array Source array\r\n * @param element Item to insert\r\n * @param array Index to insert item at\r\n */\r\nexport function insert(array: Array, element: A, index: number): void {\r\n\t//if (array) {\r\n\tindex = $math.fitToRange(index, 0, array.length);\r\n\tarray.splice(index, 0, element);\r\n\t//}\r\n}\r\n\r\n/**\r\n * Removes all copies of `element` from `array` (if they exist) and then\r\n * inserts `element` at `index`.\r\n *\r\n * @param array Source array\r\n * @param element Item\r\n * @param array Index to move item to\r\n */\r\nexport function setIndex(array: Array, element: A, index: number): void {\r\n\tremove(array, element);\r\n\tinsert(array, element, index);\r\n}\r\n\r\n\r\n/**\r\n * Pushes all of the elements from `input` into `array`.\r\n *\r\n * @param array Output array\r\n * @param input Input array\r\n */\r\nexport function pushAll(array: Array, input: Array) {\r\n\tconst length = input.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tarray.push(input[i]);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Removes `element` from `array`.\r\n *\r\n * If there are multiple copies of `element`, they are all removed.\r\n *\r\n * @param array Source array\r\n * @param element Item to remove\r\n */\r\nexport function remove(array: Array, element: A): boolean {\r\n\tlet found: boolean = false;\r\n\tlet index: number = array.indexOf(element);\r\n\r\n\tif (index !== -1) {\r\n\t\tfound = true;\r\n\t\tarray.splice(index, 1);\r\n\r\n\t\tlet length: number = array.length;\r\n\r\n\t\twhile (index < length) {\r\n\t\t\t// TODO handle NaN\r\n\t\t\tif (array[index] === element) {\r\n\t\t\t\tarray.splice(index, 1);\r\n\t\t\t\t--length;\r\n\r\n\t\t\t} else {\r\n\t\t\t\t++index;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn found;\r\n}\r\n\r\n/**\r\n * Adds an `element` to `array`.\r\n *\r\n * If array already contains and item like this, it is removed before adding\r\n * it again.\r\n *\r\n * Optionally `toIndex` can be specified to add element at specific index.\r\n *\r\n * @param array Source array\r\n * @param element Item to add\r\n * @param array Index to move item to\r\n */\r\nexport function move(array: Array, element: A, toIndex?: number): void {\r\n\t// @todo this implementation must be the same as the List.moveValue method\r\n\t// @todo don't do anything if the desired index is the same as the current index\r\n\tlet index = indexOf(array, element);\r\n\r\n\t// @todo remove all old values rather than only the first ?\r\n\tif (index !== -1) {\r\n\t\tremoveIndex(array, index);\r\n\t}\r\n\r\n\tif (toIndex == null) {\r\n\t\tarray.push(element);\r\n\t} else {\r\n\t\tinsertIndex(array, toIndex, element);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Inserts `element` into `array` at `index`.\r\n *\r\n * If `index` is not provided, it will insert `element` at the end of `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to add\r\n * @param array Index to add item at\r\n */\r\nexport function add(array: Array, element: A, index?: number): void {\r\n\t// Append to the end if index is not set\r\n\tif (!$type.isNumber(index)) {\r\n\t\tarray.push(element);\r\n\t}\r\n\r\n\t// Add to the beginning of array if index is 0\r\n\telse if (index === 0) {\r\n\t\tarray.unshift(element);\r\n\t}\r\n\t// Add to indicated place if index is set\r\n\telse {\r\n\t\tarray.splice(index, 0, element);\r\n\t}\r\n}\r\n\r\n/**\r\n * Removes `element` from `array` (if it exists) and then inserts `element` at\r\n * `index`.\r\n *\r\n * If `index` is not provided, it will insert `element` at the end of `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to remove\r\n * @param array Index to move item to\r\n */\r\nexport function replace(array: Array, element: A, index?: number): void {\r\n\t// check if exists\r\n\tlet ind: number = array.indexOf(element);\r\n\r\n\t// remove if exists\r\n\tif (ind !== -1) {\r\n\t\tarray.splice(ind, 1);\r\n\t}\r\n\r\n\t// add to end if index is not set\r\n\tif (!$type.isNumber(index)) {\r\n\t\tarray.push(element);\r\n\t}\r\n\t// add to indicated place if index is set\r\n\telse {\r\n\t\tarray.splice(index, 0, element);\r\n\t}\r\n}\r\n\r\n/**\r\n * Wraps `input` in an array, if it isn't already an array.\r\n *\r\n * @param input Source value\r\n * @return An array\r\n */\r\nexport function toArray(input: Array | A): Array {\r\n\tif (Array.isArray(input)) {\r\n\t\treturn input;\r\n\t}\r\n\telse {\r\n\t\treturn [input];\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns `true` if `element` exists in `array`.\r\n *\r\n * @param array Source array\r\n * @param element Item to search for\r\n * @returns Item in array?\r\n */\r\nexport function has(array: ArrayLike, element: A): boolean {\r\n\treturn indexOf(array, element) !== -1;\r\n}\r\n\r\n/**\r\n * Returns a shallow copy of `array`.\r\n *\r\n * @param array Source array\r\n * @returns Copy of the array\r\n */\r\nexport function copy(array: ArrayLike): Array {\r\n\tconst length = array.length;\r\n\r\n\t// It's faster to create the array with a pre-defined length\r\n\tconst output = new Array(length);\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\t// Because the array has a pre-defined length, we have to assign rather than push\r\n\t\t// This is also faster than pushing\r\n\t\toutput[i] = array[i];\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\n\r\n/**\r\n * Returns a copy of `array` which contains all the elements between `start`\r\n * and `end`. (including `start` and excluding `end`)\r\n *\r\n * If `end` is not provided, it defaults to `array.length`.\r\n *\r\n * @param array Source array\r\n * @param start Start index\r\n * @param end End index\r\n * @returns Part of the array\r\n */\r\nexport function slice(array: ArrayLike, start: number, end: number = array.length): Array {\r\n\tconst output = new Array(end - start);\r\n\r\n\tfor (let i = start; i < end; ++i) {\r\n\t\toutput[i - start] = array[i];\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\n/**\r\n * Inserts a value into array at specific index.\r\n *\r\n * @param array Source array\r\n * @param index Index\r\n * @param value Value to insert\r\n */\r\nexport function insertIndex(array: Array, index: number, value: A): void {\r\n\tarray.splice(index, 0, value);\r\n}\r\n\r\n/**\r\n * Removes a value from array at specific index.\r\n *\r\n * @param array Source array\r\n * @param index Index\r\n */\r\nexport function removeIndex(array: Array, index: number): void {\r\n\tarray.splice(index, 1);\r\n}\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport interface SortResult {\r\n\tfound: boolean;\r\n\tindex: number\r\n}\r\n\r\n/**\r\n * Orders an array using specific `ordering` function and returns index of\r\n * the `value`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param array Source array\r\n * @param ordering An ordering function\r\n * @param value Value to search for\r\n * @returns Result of the search\r\n */\r\nexport function getSortedIndex(array: ArrayLike, ordering: (left: A, right: A) => Ordering, value: A): SortResult {\r\n\tlet start = 0;\r\n\tlet end = array.length;\r\n\tlet found = false;\r\n\r\n\twhile (start < end) {\r\n\t\t// TODO is this faster/slower than using Math.floor ?\r\n\t\tconst pivot = (start + end) >> 1;\r\n\r\n\t\tconst order = ordering(value, array[pivot]);\r\n\r\n\t\t// less\r\n\t\tif (order < 0) {\r\n\t\t\tend = pivot;\r\n\r\n\t\t// equal\r\n\t\t} else if (order === 0) {\r\n\t\t\tfound = true;\r\n\t\t\tstart = pivot + 1;\r\n\r\n\t\t// more\r\n\t\t} else {\r\n\t\t\tstart = pivot + 1;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tfound: found,\r\n\t\tindex: (found ? start - 1 : start)\r\n\t};\r\n}\r\n\r\n/**\r\n * Searches the array using custom function and returns index of the item if\r\n * found.\r\n *\r\n * Will call `matches` function on all items of the array. If return value\r\n * evaluates to `true`, index is returned.\r\n *\r\n * Otherwise returns -1.\r\n *\r\n * @param array Source array\r\n * @param matches Search function\r\n * @returns Index of the item if found\r\n */\r\nexport function findIndex(array: ArrayLike, matches: (value: A, index: number) => boolean): number {\r\n\tconst length = array.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tif (matches(array[i], i)) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * Searches the array using custom function and returns item if found.\r\n *\r\n * Will call `matches` function on all items of the array. If return value\r\n * evaluates to `true`, index is returned.\r\n *\r\n * Otherwise returns `undefined`.\r\n *\r\n * @param array Source array\r\n * @param matches Search function\r\n * @returns Item if found\r\n */\r\nexport function find(array: ArrayLike, matches: (value: A, index: number) => boolean): A | undefined {\r\n\tconst index = findIndex(array, matches);\r\n\r\n\tif (index !== -1) {\r\n\t\treturn array[index];\r\n\t}\r\n}\r\n\r\n/**\r\n * Iterates through all items in array and calls `fn` function for each of\r\n * them.\r\n *\r\n * @param array Source array\r\n * @param fn Callback function\r\n */\r\nexport function shuffle(array: Array) {\r\n\t// https://stackoverflow.com/a/2450976/449477\r\n\tlet currentIndex = array.length,\r\n\t\ttemporaryValue,\r\n\t\trandomIndex;\r\n\r\n\t// While there remain elements to shuffle...\r\n\twhile (0 !== currentIndex) {\r\n\t\t// Pick a remaining element...\r\n\t\trandomIndex = Math.floor(Math.random() * currentIndex);\r\n\t\tcurrentIndex -= 1;\r\n\r\n\t\t// And swap it with the current element.\r\n\t\ttemporaryValue = array[currentIndex];\r\n\t\tarray[currentIndex] = array[randomIndex];\r\n\t\tarray[randomIndex] = temporaryValue;\r\n\t}\r\n}\r\n\r\n\r\nexport function keepIf(array: Array, keep: (value: A) => boolean): void {\r\n\tlet length = array.length;\r\n\tlet i = 0;\r\n\r\n\twhile (i < length) {\r\n\t\tif (keep(array[i])) {\r\n\t\t\t++i;\r\n\r\n\t\t} else {\r\n\t\t\tarray.splice(i, 1);\r\n\t\t\t--length;\r\n\t\t}\r\n\t}\r\n}\r\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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","//! moment.js\n//! version : 2.27.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.27.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport { IClone } from \"./Clone\";\nimport { Ordering } from \"./Order\";\nimport * as $array from \"./Array\";\nimport * as $type from \"./Type\";\n\n\n/**\n * ============================================================================\n * UTILITY FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface Iterator {\n\t(push: (value: A) => boolean): void;\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface Iterable {\n\titerator(): Iterator;\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function fromArray(array: Array): Iterator {\n\treturn (push) => {\n\t\tconst length = array.length;\n\n\t\tfor (let i = 0; i < length; ++i) {\n\t\t\tif (!push(array[i])) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function length(iter: Iterator): number {\n\tlet sum = 0;\n\n\titer((_) => {\n\t\t++sum;\n\t\treturn true;\n\t});\n\n\treturn sum;\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function toArray(iter: Iterator): Array {\n\tconst output: Array = [];\n\n\titer((value) => {\n\t\toutput.push(value);\n\t\treturn true;\n\t});\n\n\treturn output;\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function eachContinue(iter: Iterator, fn: (value: A) => boolean): void {\n\titer(fn);\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function each(iter: Iterator, fn: (value: A) => void): void {\n\titer((value) => {\n\t\tfn(value);\n\t\treturn true;\n\t});\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function sort(iter: Iterator, fn: (left: A, right: A) => Ordering): Iterator {\n\treturn fromArray(toArray(iter).sort(fn));\n}\n\n/**\n * [A description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function map(iter: Iterator, fn: (value: A) => B): Iterator {\n\treturn (push) => iter((value) => push(fn(value)));\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function filter(iter: Iterator, fn: (value: A) => boolean): Iterator {\n\treturn (push) => iter((value) => {\n\t\tif (fn(value)) {\n\t\t\treturn push(value);\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t});\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function concat(...args: Array>): Iterator {\n\treturn (push) => {\n\t\tlet go = true;\n\n\t\tconst push2 = (value: A) => (go = push(value));\n\n\t\tconst length = args.length;\n\n\t\tfor (let i = 0; i < length; ++i) {\n\t\t\targs[i](push2);\n\n\t\t\tif (!go) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function flatten(iter: Iterator>): Iterator {\n\treturn (push) => {\n\t\tlet go = true;\n\n\t\tconst push2 = (value: A) => (go = push(value));\n\n\t\titer((value) => {\n\t\t\tvalue(push2);\n\t\t\treturn go;\n\t\t});\n\t};\n}\n\n/**\n * [number description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function indexed(iter: Iterator): Iterator<[number, A]> {\n\treturn (push) => {\n\t\tlet index = 0;\n\n\t\titer((value) => push([index++, value]));\n\t};\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function findIndex(iter: Iterator, matches: (value: A) => boolean): number {\n\tlet found = false;\n\tlet i = 0;\n\n\titer((value) => {\n\t\tif (matches(value)) {\n\t\t\tfound = true;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\t++i;\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn (found ? i : -1);\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function find(iter: Iterator, matches: (value: A) => boolean): A | undefined {\n\tlet output;\n\n\titer((value) => {\n\t\tif (matches(value)) {\n\t\t\toutput = value;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn output;\n}\n\n/**\n * [A description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function findMap(iter: Iterator, matches: (value: A) => B | null): B | undefined {\n\tlet output;\n\n\titer((value) => {\n\t\tconst v = matches(value);\n\n\t\tif (v !== null) {\n\t\t\toutput = v;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn output;\n}\n\n/**\n * [iter description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function contains(iter: Iterator, matches: (value: A) => boolean): boolean {\n\tlet output = false;\n\n\titer((value) => {\n\t\tif (matches(value)) {\n\t\t\toutput = true;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn output;\n}\n\n/**\n * [A description]\n *\n * @ignore Exclude from docs\n * @todo Description\n */\nexport function foldl(iter: Iterator, init: B, fn: (state: B, value: A) => B): B {\n\titer((value) => {\n\t\tinit = fn(init, value);\n\t\treturn true;\n\t});\n\n\treturn init;\n}\n\n/**\n * [min2 description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param left [description]\n * @param right [description]\n * @return [description]\n */\nfunction min2(left: number | null, right: number): number {\n\tif (left == null || right < left) {\n\t\treturn right;\n\n\t} else {\n\t\treturn left;\n\t}\n}\n\n/**\n * [min description]\n *\n * @ignore Exclude from docs\n * @todo Verify that this works correctly\n * @todo Description\n * @param a [description]\n * @return [description]\n */\nexport function min(a: Iterator): number | null {\n\treturn foldl(a, null, min2);\n}\n\n/**\n * [max2 description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param left [description]\n * @param right [description]\n * @return [description]\n */\nfunction max2(left: number | null, right: number): number {\n\tif (left == null || right > left) {\n\t\treturn right;\n\n\t} else {\n\t\treturn left;\n\t}\n}\n\n/**\n * [max description]\n *\n * @ignore Exclude from docs\n * @todo Verify that this works correctly\n * @todo Description\n * @param a [description]\n * @return [description]\n */\nexport function max(a: Iterator): number | null {\n\treturn foldl(a, null, max2);\n}\n\n\n/**\n * [join description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param iter [description]\n * @param separator [description]\n * @return [description]\n */\nexport function join(iter: Iterator, separator: string = \"\"): string {\n\tlet first = true;\n\tlet init = \"\";\n\n\titer((value) => {\n\t\tif (first) {\n\t\t\tfirst = false;\n\n\t\t} else {\n\t\t\tinit += separator;\n\t\t}\n\n\t\tinit += value;\n\n\t\treturn true;\n\t});\n\n\treturn init;\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class ListIterator> {\n\tprivate _listCopy!: Array;\n\tprivate _create: () => T;\n\n\tpublic list: Iterable;\n\n\t// flag specifies if iterator should create new list item if it is reqested for a nextItem but there is no more left in the list\n\tpublic createNewItems: boolean = false;\n\n\t/**\n\t * Constructor\n\t *\n\t * @param list [description]\n\t * @param create [description]\n\t */\n\tconstructor(list: Iterable, create: () => T) {\n\t\tthis.list = list;\n\t\tthis._create = create;\n\t\tthis.reset();\n\t}\n\n\treset() {\n\t\tthis._listCopy = toArray(this.list.iterator());\n\t}\n\n\tclear() {\n\t\tthis._listCopy.length = 0;\n\t}\n\n\tgetFirst(): $type.Optional {\n\t\treturn this.returnItem(0);\n\t}\n\n\tgetLast(): $type.Optional {\n\t\treturn this.returnItem(this._listCopy.length - 1);\n\t}\n\n\tfind(fn: (value: T) => boolean): $type.Optional {\n\t\tlet index: number = $array.findIndex(this._listCopy, fn);\n\n\t\tif (index !== -1) {\n\t\t\tlet item = this._listCopy[index];\n\t\t\t// TODO use removeIndex instead ?\n\t\t\t$array.remove(this._listCopy, item);\n\t\t\treturn item;\n\n\t\t} else {\n\t\t\treturn this.getLast();\n\t\t}\n\t}\n\n\tremoveItem(item: T): boolean {\n\t\treturn $array.remove(this._listCopy, item);\n\t}\n\n\tprotected returnItem(index: number): $type.Optional {\n\t\tif (index >= 0 && index < this._listCopy.length) {\n\t\t\tlet item = this._listCopy[index];\n\t\t\t// TODO use removeIndex instead ?\n\t\t\t$array.remove(this._listCopy, item);\n\t\t\treturn item;\n\n\t\t} else if (this.createNewItems) {\n\t\t\treturn this._create();\n\t\t}\n\t}\n\n\titerator() {\n\t\treturn fromArray(this._listCopy);\n\t}\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}","/**\n * ============================================================================\n * MAIN CLASS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Represents a relative value (percent).\n *\n * The Percent object, can be instantiated using two ways:\n *\n * * Via `new Percent(X)`.\n * * Via `am4core.percent(X)`.\n *\n * `Percent` type objects can be used in a number of dual-measuring or\n * positioning properties, like `width`. E.g.:\n *\n * ```TypeScript\n * chart.paddingRight = new Percent(10);\n * // or\n * chart.paddingRight = am4core.percent(10);\n * ```\n * ```JavaScript\n * chart.paddingRight = new Percent(10);\n * // or\n * chart.paddingRight = am4core.percent(10);\n * ```\n * ```JSON\n * {\n * // ...\n * \"paddingRight\": \"10%\"\n * }\n * ```\n */\nexport class Percent {\n\n\t/**\n\t * Value in percent.\n\t */\n\tprotected _value: number;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param percent Percent value\n\t */\n\tconstructor(percent: number) {\n\t\tthis._value = percent;\n\t}\n\n\t/**\n\t * Relative value.\n\t *\n\t * E.g. 100% is 1, 50% is 0.5, etc.\n\t *\n\t * This is useful to apply transformations to other values. E.g.:\n\t *\n\t * ```TypeScript\n\t * let value = 256;\n\t * let percent = new am4core.Percent(50);\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t * ```JavaScript\n\t * var value = 256;\n\t * var percent = new am4core.Percent(50);\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t *\n\t * Alternatively, you can use `am4core.percent()` helper function:\n\t *\n\t * ```TypeScript\n\t * let value = 256;\n\t * let percent = am4core.percent(50);\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t * ```JavaScript\n\t * var value = 256;\n\t * var percent = am4core.percent(50);\n\t * console.log(value * percent.value); // outputs 128\n\t * ```\n\t *\n\t * @readonly\n\t * @return Relative value\n\t */\n\tpublic get value(): number {\n\t\treturn this._value / 100;\n\t}\n\n\t/**\n\t * Value in percent.\n\t *\n\t * @return Percent\n\t */\n\tpublic get percent(): number {\n\t\treturn this._value;\n\t}\n\n\tpublic toString(): string {\n\t\treturn \"\" + this._value + \"%\";\n\t}\n\n\t/*public toNumber(): number {\n\t\treturn this.percent;\n\t}*/\n\n}\n\n\n/**\n * Converts numeric percent value to a proper [[Percent]] object.\n *\n * ```TypeScript\n * pieSeries.radius = am4core.percent(80);\n * ```\n * ```JavaScript\n * pieSeries.radius = am4core.percent(80);\n * ```\n *\n * @param value Percent\n * @return Percent object\n */\nexport function percent(value: number): Percent {\n\treturn new Percent(value);\n}\n\n\n/**\n * Checks if value is a [[Percent]] object.\n *\n * @ignore Exclude from docs\n * @param value Input value\n * @return Is percent?\n */\nexport function isPercent(value: any): boolean {\n\treturn value instanceof Percent;\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}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","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\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"]);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"]);\n\n var classString = classNames('anticon', _defineProperty({}, \"anticon-\".concat(icon.name), Boolean(icon.name)), className);\n var svgClassString = classNames({\n 'anticon-spin': !!spin || icon.name === 'loading'\n });\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return React.createElement(\"span\", Object.assign({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), React.createElement(ReactIcon, {\n className: svgClassString,\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","/**\r\n * This module contains Color object definition\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { iRGB, iHSV, iHSL } from \"./Colors\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $colors from \"./Colors\";\r\nimport * as $type from \"./Type\";\r\n\r\n// Re-export\r\nexport { iRGB, iHSV, iHSL };\r\n\r\n/**\r\n * Represents a color.\r\n *\r\n * `Color` accepts value only in [[iRGB]] object format. To create `Color`\r\n * object by parsing it from any supported string-based formats, use helper\r\n * [[color]] function:\r\n *\r\n * ```TypeScript\r\n * am4core.color(\"#ff0000\");\r\n * am4core.color(\"#f00\");\r\n * am4core.color(\"rgb(255, 0, 0)\");\r\n * am4core.color(\"rgba(255, 0, 0, 0.5)\");\r\n * am4core.color({ r: 255, g: 0, b: 0 });\r\n * am4core.color(\"red\");\r\n * ```\r\n * ```JavaScript\r\n * am4core.color(\"#ff0000\");\r\n * am4core.color(\"#f00\");\r\n * am4core.color(\"rgb(255, 0, 0)\");\r\n * am4core.color(\"rgba(255, 0, 0, 0.5)\");\r\n * am4core.color({ r: 255, g: 0, b: 0 });\r\n * am4core.color(\"red\");\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nexport class Color {\r\n\r\n\t/**\r\n\t * Light color (used when light contrasting color is required).\r\n\t *\r\n\t * @param {Color}\r\n\t * @ignore\r\n\t */\r\n\tprotected _lightColor: $type.Optional;\r\n\r\n\t/**\r\n\t * Dark color (used when dark contrasting color is required).\r\n\t *\r\n\t * @param {Color}\r\n\t * @ignore\r\n\t */\r\n\tprotected _darkColor: $type.Optional;\r\n\r\n\t/**\r\n\t * Holds RGB value of the color.\r\n\t */\r\n\tprotected _value: $type.Optional;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param color Source color\r\n\t */\r\n\tconstructor(color: $type.Optional) {\r\n\t\tthis._value = color;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns [[iRGB]] representation of the color.\r\n\t *\r\n\t * @return RGB object\r\n\t */\r\n\tpublic get rgb(): $type.Optional {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns color hex value string, e.g. \"#FF0000\".\r\n\t *\r\n\t * @return Hex color code\r\n\t */\r\n\tpublic get hex(): string {\r\n\t\treturn this._value ? $colors.rgbToHex(this._value) : \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `rgba()` representation of the color, e.g.:\r\n\t * `rgba(255, 0, 0, 0.5)`.\r\n\t *\r\n\t * @return rgba color string\r\n\t */\r\n\tpublic get rgba(): string {\r\n\t\treturn this._value ? $colors.rgbToRGBA(this._value) : \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Set alpha (transparency) of the color.\r\n\t *\r\n\t * @param value Alpha (0-1)\r\n\t */\r\n\tpublic set alpha(value: number) {\r\n\t\tif (this._value) {\r\n\t\t\tthis._value.a = value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current transparency.\r\n\t *\r\n\t * @return Alpha (0-1)\r\n\t */\r\n\tpublic get alpha(): number {\r\n\t\tif (this._value != null && this._value.a != null) {\r\n\t\t\treturn this._value.a;\r\n\r\n\t\t} else {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets \"light\" color. Used when determining contrasting color.\r\n\t *\r\n\t * @param color Color\r\n\t */\r\n\tpublic set lightColor(color: Color) {\r\n\t\tthis._lightColor = color;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current light color setting.\r\n\t *\r\n\t * @return Color\r\n\t */\r\n\tpublic get lightColor(): Color {\r\n\t\tif (!this._lightColor) {\r\n\t\t\tthis._lightColor = new Color({ r: 255, g: 255, b: 255 });\r\n\t\t}\r\n\t\treturn this._lightColor;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets \"dark\" color. Used when determining contrasting color.\r\n\t *\r\n\t * @param color Color\r\n\t */\r\n\tpublic set darkColor(color: Color) {\r\n\t\tthis._darkColor = color;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current dark color setting.\r\n\t *\r\n\t * @return Color\r\n\t */\r\n\tpublic get darkColor(): Color {\r\n\t\tif (!this._darkColor) {\r\n\t\t\tthis._darkColor = new Color({ r: 0, g: 0, b: 0 });\r\n\t\t}\r\n\t\treturn this._darkColor;\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides `toString` method so that [[Color]] object can be used as\r\n\t * string.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return String represantion of color (usable in CSS)\r\n\t */\r\n\tpublic toString(): string {\r\n\t\treturn this.alpha < 1 ? this.rgba : this.hex;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new [[Color]] which is percent lighter (positive value),\r\n\t * or darker (negative value).\r\n\t *\r\n\t * Parameter is in the scale of -1 to 1.\r\n\t *\r\n\t * @param percent Increase/decrease lightness by X\r\n\t * @return New Color\r\n\t */\r\n\tpublic lighten(percent: number): Color {\r\n\t\treturn new Color($colors.lighten(this.rgb, percent));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new [[Color]] which is percent brighter (positive value),\r\n\t * or darker (negative value).\r\n\t *\r\n\t * Parameter is in the scale of -1 to 1.\r\n\t *\r\n\t * @param percent Increase/decrease brightness by X\r\n\t * @return New Color\r\n\t */\r\n\tpublic brighten(percent: number): Color {\r\n\t\treturn new Color($colors.brighten(this.rgb, percent));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new [[Color]] based on current color with specific saturation\r\n\t * applied.\r\n\t *\r\n\t * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\r\n\t * saturated).\r\n\t *\r\n\t * @param saturation Saturation (0-1)\r\n\t * @return New (saturated) color\r\n\t */\r\n\tpublic saturate(saturation: number): Color {\r\n\t\treturn new Color($colors.saturate(this.rgb, saturation));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a either light or dark color that contrasts specifically with\r\n\t * this color.\r\n\t *\r\n\t * Uses properties `darkColor` (default black) and `lightColor` (default\r\n\t * white).\r\n\t *\r\n\t * Useful when determining which color label should be on a colored\r\n\t * background, so that it stands out.\r\n\t *\r\n\t * @return Contrasting color\r\n\t */\r\n\tpublic get alternative(): Color {\r\n\t\tif (this.rgb != null) {\r\n\t\t\treturn $colors.isLight(this.rgb) ? this.darkColor : this.lightColor;\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Color does not exist\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Resolves an input variable to a normal [[iRGB]] color and creates [[Color]]\r\n * object for it.\r\n *\r\n * @param value Input value\r\n * @param alpha Alpha (0-1)\r\n * @return Color object\r\n */\r\nexport function color(value?: string | iRGB | Color, alpha?: number): Color {\r\n\r\n\tif (!$type.hasValue(value)) {\r\n\t\treturn new Color(undefined);\r\n\t}\r\n\r\n\tif (typeof value == \"string\") {\r\n\t\tlet cacheId = \"_color_\" + value + \"_\" + (alpha || \"1\");\r\n\t\tlet cached = registry.getCache(cacheId);\r\n\t\tif (cached) {\r\n\t\t\treturn new Color({\r\n\t\t\t\tr: cached.r,\r\n\t\t\t\tg: cached.g,\r\n\t\t\t\tb: cached.b,\r\n\t\t\t\ta: cached.a\r\n\t\t\t});\r\n\t\t}\r\n\t\tlet rgb = $colors.rgb(value, alpha);\r\n\t\tregistry.setCache(cacheId, rgb);\r\n\t\treturn new Color(rgb);\r\n\t}\r\n\r\n\t// Check if it's already a Color object\r\n\tif (value instanceof Color) {\r\n\t\tif ($type.hasValue(alpha)) {\r\n\t\t\tvalue.alpha = alpha;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t// Not a string or Color instance, it's the iRGB object then\r\n\treturn new Color(value);\r\n}\r\n\r\n/**\r\n * Checks if supplied argument is instance of [[Color]].\r\n *\r\n * @param value Input value\r\n * @return Is Color?\r\n */\r\nexport function isColor(value: any): boolean {\r\n\treturn value instanceof Color;\r\n}\r\n\r\n/**\r\n * Converts any value to [[Color]].\r\n *\r\n * @param value Input value\r\n * @return Color\r\n */\r\nexport function castColor(value: any): Color {\r\n\treturn color(value);\r\n}\r\n\r\n/**\r\n * Converts any value into a [[Color]].\r\n *\r\n * @param value Source value\r\n * @return Color object\r\n */\r\nexport function toColor(value: any): Color {\r\n\tif ($type.hasValue(value) && !isColor(value)) {\r\n\t\treturn castColor(value);\r\n\t}\r\n\treturn value;\r\n}\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $type from \"./Type\";\r\nimport { Ordering } from \"./Order\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * UTILITY FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Returns an iterator for all entries in object.\r\n *\r\n * Can be used to safely iterate through all properties of the object.\r\n *\r\n * @param object Source object\r\n * @returns Iterator\r\n */\r\nexport function entries(object: Object): $iter.Iterator<[$type.Keyof, Object[$type.Keyof]]> {\r\n\treturn (push) => {\r\n\t\t// TODO make this more efficient ?\r\n\t\tfor (let key in object) {\r\n\t\t\tif (hasKey(object, key)) {\r\n\t\t\t\tif (!push([key as $type.Keyof, object[key] as Object[$type.Keyof]])) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns an array of object's property names.\r\n *\r\n * @param object Source object\r\n * @returns Object property names\r\n */\r\nexport function keys(object: Object): Array<$type.Keyof> {\r\n\tconst output = [];\r\n\r\n\tfor (let key in object) {\r\n\t\tif (hasKey(object, key)) {\r\n\t\t\toutput.push(key as $type.Keyof);\r\n\t\t}\r\n\t}\r\n\r\n\treturn output;\r\n}\r\n\r\n/**\r\n * Returns an array of object's property names ordered using specific ordering\r\n * function.\r\n *\r\n * @param object Source object\r\n * @param order Ordering function\r\n * @returns Object property names\r\n */\r\nexport function keysOrdered(object: Object, order: (a: $type.Keyof, b: $type.Keyof) => Ordering): Array<$type.Keyof> {\r\n\treturn keys(object).sort(order);\r\n}\r\n\r\n/**\r\n * Checks if `object` has a specific `key`.\r\n *\r\n * @param object Source object\r\n * @param key Property name\r\n * @returns Has key?\r\n */\r\nexport function hasKey(object: Object, key: Key): boolean {\r\n\treturn {}.hasOwnProperty.call(object, key);\r\n}\r\n\r\n/**\r\n * Returns value of the specific `key`.\r\n *\r\n * @param object Source object\r\n * @param key Property name\r\n * @returns Key value\r\n */\r\nexport function getKey(object: Object, key: Key): Object[Key] {\r\n\treturn object[key];\r\n}\r\n\r\n/**\r\n * Iterates through all properties of the object calling `fn` for each of them.\r\n *\r\n * If return value of the function evaluates to `false` further iteration is\r\n * cancelled.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n */\r\nexport function eachContinue(object: Object, fn: >(key: Key, value: Object[Key]) => boolean): void {\r\n\tfor (let key in object) {\r\n\t\tif (hasKey(object, key)) {\r\n\t\t\tif (!fn(key as $type.Keyof, object[key] as Object[$type.Keyof])) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Iterates through all properties of the object calling `fn` for each of them.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n */\r\nexport function each(object: Object, fn: >(key: Key, value: Object[Key]) => void): void {\r\n\teachContinue(object, (key, value) => {\r\n\t\tfn(key, value);\r\n\t\treturn true;\r\n\t});\r\n}\r\n\r\n/**\r\n * Orders object properties using custom `ord` function and iterates through\r\n * them calling `fn` for each of them.\r\n *\r\n * @param object Source object\r\n * @param fn Callback function\r\n * @param order Ordering function\r\n */\r\nexport function eachOrdered(object: Object, fn: >(key: Key, value: Object[Key]) => void, ord: (a: $type.Keyof, b: $type.Keyof) => Ordering): void {\r\n\t$array.each(keysOrdered(object, ord), (key) => {\r\n\t\tfn(key, object[key]);\r\n\t});\r\n}\r\n\r\n/**\r\n * Returns a copy of the object.\r\n *\r\n * @param object Source object\r\n * @returns Copy of the object\r\n */\r\nexport function copy(object: Object): Object {\r\n\treturn Object.assign({}, object);\r\n}\r\n\r\n/**\r\n * Merges two objects and returns a new object that contains properties from\r\n * both source objects.\r\n *\r\n * @param object1 Source object #1\r\n * @param object2 Source object #2\r\n * @returns Combined object\r\n */\r\nexport function merge(object1: Object1, object2: Object2): Object1 & Object2 {\r\n\treturn Object.assign({}, object1, object2);\r\n}\r\n\r\n/**\r\n * Returns object clone.\r\n *\r\n * @param object Source object\r\n * @returns Clone\r\n */\r\nexport function clone(object: Object): Object {\r\n\treturn JSON.parse(JSON.stringify(object));\r\n}\r\n/**\r\n * Copies a list of properties from one object to another.\r\n *\r\n * Will not copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function copyProperties(source: { [key: string]: any }, target: { [key: string]: any }, keys: Array): void {\r\n\t$array.each(keys, (key) => {\r\n\t\tif ($type.hasValue(source[key])) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Copies a list of properties from one object to another only if target does't have value of the property set.\r\n *\r\n * Will not copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function softCopyProperties(source: { [key: string]: any }, target: { [key: string]: any }, keys: Array): void {\r\n\t$array.each(keys, (key) => {\r\n\t\tif ($type.hasValue(source[key]) && !($type.hasValue((target)[key]))) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Copies a list of properties from one object to another.\r\n *\r\n * Will copy empty properties.\r\n *\r\n * @param source Source object\r\n * @param target Target object\r\n * @param keys List of keys to copy\r\n */\r\nexport function forceCopyProperties(source: { [key: string]: any }, target: { [key: string]: any }, keys: Array): void {\r\n\t$array.each(keys, (key) => {\r\n\t\ttarget[key] = source[key];\r\n\t});\r\n}\r\n\r\n/**\r\n * Copies all properties from one object to another.\r\n *\r\n * @param from Source object\r\n * @param to Target object\r\n */\r\nexport function copyAllProperties(from: { [key: string]: any }, to: { [key: string]: any }): void {\r\n\tcopyProperties(from, to, keys(from));\r\n}\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IClone } from \"./Clone\";\r\nimport { Disposer, MultiDisposer, IDisposer } from \"./Disposer\";\r\nimport { EventDispatcher, AMEvent } from \"./EventDispatcher\";\r\nimport { Ordering } from \"./Order\";\r\nimport * as $array from \"./Array\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * @todo Description\r\n */\r\nexport class IndexedIterable {\r\n\r\n\t/**\r\n\t * Item list\r\n\t */\r\n\tprivate _array: Array;\r\n\r\n\t/**\r\n\t * Start index.\r\n\t */\r\n\tprivate _start: number;\r\n\r\n\t/**\r\n\t * End index.\r\n\t */\r\n\tprivate _end: number;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param array List items\r\n\t * @param start Start index\r\n\t * @param end End index\r\n\t */\r\n\tconstructor(array: Array, start: number, end: number) {\r\n\t\tthis._array = array;\r\n\t\tthis._start = start;\r\n\t\tthis._end = end;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list item iterator.\r\n\t *\r\n\t * @return Iterator\r\n\t */\r\n\tpublic iterator(): $iter.Iterator {\r\n\t\treturn (push) => {\r\n\t\t\tif (this._start !== this._end) {\r\n\t\t\t\tif (this._start < this._end) {\r\n\t\t\t\t\tfor (let i = this._start; i < this._end; ++i) {\r\n\t\t\t\t\t\tif (!push(this._array[i])) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (let i = this._start - 1; i >= this._end; --i) {\r\n\t\t\t\t\t\tif (!push(this._array[i])) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an interable list sorted backwards than current list.\r\n\t *\r\n\t * @return List\r\n\t */\r\n\tpublic backwards(): IndexedIterable {\r\n\t\treturn new IndexedIterable(this._array, this._end, this._start);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new list consisting only of specific range of items between\r\n\t * `start` and `end` indexes.\r\n\t *\r\n\t * @param start Start index\r\n\t * @param end End index\r\n\t * @return List\r\n\t */\r\n\tpublic range(start: number, end: number): IndexedIterable {\r\n\t\tif (start <= end) {\r\n\t\t\tif (this._start === this._end) {\r\n\t\t\t\treturn this;\r\n\r\n\t\t\t} else if (this._start < this._end) {\r\n\t\t\t\tconst diff = end - start;\r\n\r\n\t\t\t\tstart = Math.max(this._start + start, this._start);\r\n\t\t\t\tend = Math.min(start + diff, this._end);\r\n\r\n\t\t\t\treturn new IndexedIterable(this._array, start, end);\r\n\r\n\t\t\t} else {\r\n\t\t\t\tconst diff = end - start;\r\n\r\n\t\t\t\tstart = Math.max(this._start - start, this._end);\r\n\t\t\t\tend = Math.max(start - diff, this._end);\r\n\r\n\t\t\t\treturn new IndexedIterable(this._array, start, end);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Start index must be lower than end index\");\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Defines events for the [[List]].\r\n */\r\nexport interface IListEvents {\r\n\t/**\r\n\t * Invoked when item is added to the list.\r\n\t *\r\n\t * @todo remove this later?\r\n\t */\r\n\tinserted: {\r\n\t\tnewValue: A;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when item is removed from the list.\r\n\t *\r\n\t * @todo remove this later?\r\n\t */\r\n\tremoved: {\r\n\t\toldValue: A;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when `setAll` method is called.\r\n\t */\r\n\tsetAll: {\r\n\t\toldArray: Array;\r\n\t\tnewArray: Array;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when `insertIndex` method is called.\r\n\t */\r\n\tinsertIndex: {\r\n\t\tindex: number;\r\n\t\tnewValue: A;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when `setIndex` method is called.\r\n\t */\r\n\tsetIndex: {\r\n\t\tindex: number;\r\n\t\toldValue: A;\r\n\t\tnewValue: A;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when item is removed.\r\n\t */\r\n\tremoveIndex: {\r\n\t\tindex: number;\r\n\t\toldValue: A;\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * ListGrouper organizes [[List]] items into groups.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport class ListGrouper extends MultiDisposer {\r\n\r\n\t/**\r\n\t * Function that can be used to extract a \"value\" of the list element.\r\n\t *\r\n\t * Used for ordering.\r\n\t */\r\n\tprivate _getKey: (value: A) => number;\r\n\r\n\t/**\r\n\t * A function that is used to order list groups.\r\n\t */\r\n\tprivate _sort: (left: number, right: number) => Ordering;\r\n\r\n\t/**\r\n\t * Grouping keys.\r\n\t */\r\n\tprivate _keys: Array = [];\r\n\r\n\t/**\r\n\t * List item groups.\r\n\t */\r\n\tprivate _groups: { [key: number]: Array } = {};\r\n\r\n\t/**\r\n\t * Inserts an item (`x`) to a specific group (`key`) and specific `index`.\r\n\t *\r\n\t * @param x Item\r\n\t * @param key Group name\r\n\t * @param index Index\r\n\t */\r\n\tprivate _insert(x: A, key: number, index?: number): void {\r\n\t\tif (this._groups[key] == null) {\r\n\t\t\tthis._groups[key] = [];\r\n\r\n\t\t\t// TODO code duplication with SortedList\r\n\t\t\tconst { found, index } = $array.getSortedIndex(this._keys, this._sort, key);\r\n\r\n\t\t\tif (found) {\r\n\t\t\t\tthrow new Error(\"Key already exists: \" + key);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$array.insertIndex(this._keys, index, key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (index == null) {\r\n\t\t\tthis._groups[key].push(x);\r\n\r\n\t\t} else {\r\n\t\t\t$array.insertIndex(this._groups[key], index, x);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an item from the list.\r\n\t *\r\n\t * @param x Item to remove\r\n\t */\r\n\tprivate _remove(x: A): void {\r\n\t\tconst key = this._getKey(x);\r\n\r\n\t\tconst values = this._groups[key];\r\n\r\n\t\tif (values != null) {\r\n\t\t\t$array.remove(values, x);\r\n\r\n\t\t\tif (values.length === 0) {\r\n\t\t\t\tdelete this._groups[key];\r\n\r\n\t\t\t\tconst { found, index } = $array.getSortedIndex(this._keys, this._sort, key);\r\n\r\n\t\t\t\tif (found) {\r\n\t\t\t\t\t$array.removeIndex(this._keys, index);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(\"Key doesn't exist: \" + key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t */\r\n\tconstructor(\r\n\t\tlist: $iter.Iterable & {\r\n\t\t\tevents: EventDispatcher<{\r\n\t\t\t\tinserted: { newValue: A },\r\n\t\t\t\tremoved: { oldValue: A }\r\n\t\t\t}>;\r\n\t\t},\r\n\t\tgetKey: (value: A) => number,\r\n\t\tsort: (left: number, right: number) => Ordering\r\n\t) {\r\n\t\tsuper([\r\n\t\t\tlist.events.on(\"inserted\", (x) => {\r\n\t\t\t\tconst value = x.newValue;\r\n\t\t\t\tconst key = this._getKey(value);\r\n\r\n\t\t\t\tlet index = 0;\r\n\r\n\t\t\t\t$iter.eachContinue(list.iterator(), (x) => {\r\n\t\t\t\t\tif (x === value) {\r\n\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t} else if (this._getKey(x) === key) {\r\n\t\t\t\t\t\t++index;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._insert(value, key, index);\r\n\t\t\t}, undefined, false),\r\n\r\n\t\t\tlist.events.on(\"removed\", (x) => {\r\n\t\t\t\tthis._remove(x.oldValue);\r\n\t\t\t}, undefined, false)\r\n\t\t]);\r\n\r\n\t\tthis._getKey = getKey;\r\n\t\tthis._sort = sort;\r\n\r\n\t\t$iter.each(list.iterator(), (x) => {\r\n\t\t\tthis._insert(x, getKey(x));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an iterator for the list.\r\n\t *\r\n\t * The iterator will iterate through all items in all groups.\r\n\t *\r\n\t * @return Iterator\r\n\t */\r\n\tpublic iterator(): $iter.Iterator {\r\n\t\treturn $iter.flatten($iter.map($iter.fromArray(this._keys), (key) => {\r\n\t\t\treturn $iter.fromArray(this._groups[key]);\r\n\t\t}));\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * @todo Description\r\n * @ignore Exclude from docs\r\n */\r\nexport type ListLike = $iter.Iterable & {\r\n\tevents: EventDispatcher<{ removed: { oldValue: A } }>;\r\n};\r\n\r\n/**\r\n * A disposable list, which when disposed itself will call `dispose()` method\r\n * on all its items.\r\n */\r\nexport class ListDisposer extends Disposer {\r\n\tconstructor(list: ListLike, disposeOnRemove: boolean = true) {\r\n\t\tif (disposeOnRemove) {\r\n\t\t\tconst disposer = list.events.on(\"removed\", (x) => {\r\n\t\t\t\tx.oldValue.dispose();\r\n\t\t\t}, undefined, false);\r\n\r\n\t\t\tsuper(() => {\r\n\t\t\t\tdisposer.dispose();\r\n\r\n\t\t\t\t// TODO clear the list ?\r\n\t\t\t\t$iter.each(list.iterator(), (x) => {\r\n\t\t\t\t\tx.dispose();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t} else {\r\n\t\t\tsuper(() => {\r\n\t\t\t\t// TODO clear the list ?\r\n\t\t\t\t$iter.each(list.iterator(), (x) => {\r\n\t\t\t\t\tx.dispose();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if specific index fits into length.\r\n *\r\n * @param index Index\r\n * @param len Length\r\n */\r\nfunction checkBounds(index: number, len: number): void {\r\n\tif (!(index >= 0 && index < len)) {\r\n\t\tthrow new Error(\"Index out of bounds: \" + index);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * A List class is used to hold a number of indexed items of the same type.\r\n */\r\nexport class List {\r\n\r\n\t/**\r\n\t * List values.\r\n\t */\r\n\tprivate _values: Array;\r\n\r\n\t/**\r\n\t * Event dispatcher.\r\n\t */\r\n\tpublic events: EventDispatcher>> = new EventDispatcher();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param initial Inital list of values to add to list\r\n\t */\r\n\tconstructor(initial: Array = []) {\r\n\t\tthis._values = initial;\r\n\t}\r\n\r\n\t/**\r\n\t * An array of values in the list.\r\n\t *\r\n\t * Do not use this property to add values. Rather use dedicated methods, like\r\n\t * `push()`, `removeIndex()`, etc.\r\n\t *\r\n\t * @readonly\r\n\t * @return List values\r\n\t */\r\n\tpublic get values(): Array {\r\n\t\treturn this._values;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if list contains specific item reference.\r\n\t *\r\n\t * @param item Item to search for\r\n\t * @return `true` if found, `false` if not found\r\n\t */\r\n\tpublic contains(value: T): boolean {\r\n\t\treturn this._values.indexOf(value) !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes specific item from the list.\r\n\t *\r\n\t * @param item An item to remove\r\n\t */\r\n\tpublic removeValue(value: T): void {\r\n\t\tlet i = 0;\r\n\t\tlet length = this._values.length;\r\n\r\n\t\twhile (i < length) {\r\n\t\t\t// TODO handle NaN\r\n\t\t\tif (this._values[i] === value) {\r\n\t\t\t\tthis.removeIndex(i);\r\n\t\t\t\t--length;\r\n\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Searches the list for specific item and returns its index.\r\n\t *\r\n\t * @param item An item to search for\r\n\t * @return Index or -1 if not found\r\n\t */\r\n\tpublic indexOf(value: T): number {\r\n\t\treturn $array.indexOf(this._values, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Number of items in list.\r\n\t *\r\n\t * @readonly\r\n\t * @return Number of items\r\n\t */\r\n\tpublic get length(): number {\r\n\t\treturn this._values.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if there's a value at specific index.\r\n\t *\r\n\t * @param index Index\r\n\t * @return Value exists?\r\n\t */\r\n\tpublic hasIndex(index: number): boolean {\r\n\t\treturn index >= 0 && index < this._values.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an item at specified index.\r\n\t *\r\n\t * @param index Index\r\n\t * @return List item\r\n\t */\r\n\tpublic getIndex(index: number): T | undefined {\r\n\t\treturn this._values[index];\r\n\t}\r\n\r\n\t/**\r\n\t * Sets value at specific index.\r\n\t *\r\n\t * If there's already a value at the index, it is overwritten.\r\n\t *\r\n\t * @param index Index\r\n\t * @param value New value\r\n\t * @return New value\r\n\t */\r\n\tpublic setIndex(index: number, value: T): T {\r\n\t\tcheckBounds(index, this._values.length);\r\n\r\n\t\tconst oldValue = this._values[index];\r\n\r\n\t\t// Do nothing if the old value and the new value are the same\r\n\t\tif (oldValue !== value) {\r\n\t\t\tthis._values[index] = value;\r\n\r\n\t\t\tif (this.events.isEnabled(\"setIndex\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"setIndex\", {\r\n\t\t\t\t\ttype: \"setIndex\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: index,\r\n\t\t\t\t\toldValue: oldValue,\r\n\t\t\t\t\tnewValue: value\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\t\ttype: \"inserted\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tnewValue: value\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn oldValue;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an item to the list at a specific index, which pushes all the other\r\n\t * items further down the list.\r\n\t *\r\n\t * @param index Index\r\n\t * @param item An item to add\r\n\t */\r\n\tpublic insertIndex(index: number, value: T): void {\r\n\t\tcheckBounds(index, this._values.length + 1);\r\n\r\n\t\t$array.insertIndex(this._values, index, value);\r\n\r\n\t\tif (this.events.isEnabled(\"insertIndex\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"insertIndex\", {\r\n\t\t\t\ttype: \"insertIndex\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tindex: index,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\ttype: \"inserted\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [_sortQuicksort description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param low [description]\r\n\t * @param high [description]\r\n\t * @param order [description]\r\n\t */\r\n\tprivate _sortQuicksort(low: number, high: number, order: (left: T, right: T) => Ordering): void {\r\n\t\tif (low < high) {\r\n\t\t\tconst p = this._sortPartition(low, high, order);\r\n\t\t\tthis._sortQuicksort(low, p, order);\r\n\t\t\tthis._sortQuicksort(p + 1, high, order);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [_sortPartition description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param low [description]\r\n\t * @param high [description]\r\n\t * @param order [description]\r\n\t * @return [description]\r\n\t */\r\n\tprivate _sortPartition(low: number, high: number, order: (left: T, right: T) => Ordering): number {\r\n\t\tconst values = this._values;\r\n\t\tconst pivot = values[low];\r\n\r\n\t\tlet i = low - 1;\r\n\t\tlet j = high + 1;\r\n\r\n\t\tfor (; ;) {\r\n\t\t\tdo {\r\n\t\t\t\t++i;\r\n\t\t\t} while (order(values[i], pivot) < 0);\r\n\r\n\t\t\tdo {\r\n\t\t\t\t--j;\r\n\t\t\t} while (order(values[j], pivot) > 0);\r\n\r\n\t\t\tif (i >= j) {\r\n\t\t\t\treturn j;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.swap(i, j);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Reorders list items according to specific ordering function.\r\n\t *\r\n\t * @param order Ordering function\r\n\t */\r\n\tpublic sort(order: (left: T, right: T) => Ordering): void {\r\n\t\t// https://en.wikipedia.org/wiki/Quicksort#Hoare_partition_scheme\r\n\t\t// @todo faster implementation of this\r\n\t\t// @todo test this\r\n\t\tthis._sortQuicksort(0, this._values.length - 1, order);\r\n\t}\r\n\r\n\t/**\r\n\t * Swaps indexes of two items in the list.\r\n\t *\r\n\t * @param a Item 1\r\n\t * @param b Item 2\r\n\t */\r\n\tpublic swap(a: number, b: number): void {\r\n\t\tconst len = this._values.length;\r\n\r\n\t\tcheckBounds(a, len);\r\n\t\tcheckBounds(b, len);\r\n\r\n\t\tif (a !== b) {\r\n\t\t\tconst value_a = this._values[a];\r\n\t\t\tconst value_b = this._values[b];\r\n\r\n\t\t\tthis._values[a] = value_b;\r\n\r\n\t\t\tif (this.events.isEnabled(\"setIndex\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"setIndex\", {\r\n\t\t\t\t\ttype: \"setIndex\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: a,\r\n\t\t\t\t\toldValue: value_a,\r\n\t\t\t\t\tnewValue: value_b\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._values[b] = value_a;\r\n\r\n\t\t\tif (this.events.isEnabled(\"setIndex\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"setIndex\", {\r\n\t\t\t\t\ttype: \"setIndex\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: b,\r\n\t\t\t\t\toldValue: value_b,\r\n\t\t\t\t\tnewValue: value_a\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes a value at specific index.\r\n\t *\r\n\t * @param index Index of value to remove\r\n\t * @return Removed value\r\n\t */\r\n\tpublic removeIndex(index: number): T {\r\n\t\tcheckBounds(index, this._values.length);\r\n\r\n\t\tconst oldValue = this._values[index];\r\n\r\n\t\t$array.removeIndex(this._values, index);\r\n\r\n\t\tif (this.events.isEnabled(\"removeIndex\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"removeIndex\", {\r\n\t\t\t\ttype: \"removeIndex\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tindex: index,\r\n\t\t\t\toldValue: oldValue\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\ttype: \"removed\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\toldValue: oldValue\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn oldValue;\r\n\t}\r\n\r\n\t/**\r\n\t * Moves an item to a specific index within the list.\r\n\t *\r\n\t * If the index is not specified it will move the item to the end of the\r\n\t * list.\r\n\t *\r\n\t * @param value Item to move\r\n\t * @param index Index to place item at\r\n\t */\r\n\tpublic moveValue(value: T, toIndex?: number): void {\r\n\t\t// TODO don't do anything if the desired index is the same as the current index\r\n\t\tlet index = this.indexOf(value);\r\n\r\n\t\t// TODO remove all old values rather than only the first ?\r\n\t\tif (index !== -1) {\r\n\t\t\tconst oldValue = this._values[index];\r\n\r\n\t\t\t$array.removeIndex(this._values, index);\r\n\r\n\t\t\tif (this.events.isEnabled(\"removeIndex\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removeIndex\", {\r\n\t\t\t\t\ttype: \"removeIndex\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: index,\r\n\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (toIndex == null) {\r\n\t\t\ttoIndex = this._values.length;\r\n\t\t\tthis._values.push(value);\r\n\r\n\t\t} else {\r\n\t\t\t$array.insertIndex(this._values, toIndex, value);\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"insertIndex\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"insertIndex\", {\r\n\t\t\t\ttype: \"insertIndex\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tindex: toIndex,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (index === -1) {\r\n\t\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\t\ttype: \"inserted\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tnewValue: value\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an item to the end of the list.\r\n\t *\r\n\t * @param item An item to add\r\n\t */\r\n\tpublic push(value: K): K {\r\n\t\tconst index = this._values.push(value) - 1;\r\n\r\n\t\tif (this.events.isEnabled(\"insertIndex\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"insertIndex\", {\r\n\t\t\t\ttype: \"insertIndex\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tindex: index,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\ttype: \"inserted\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an item as a first item in the list.\r\n\t *\r\n\t * @param item An item to add\r\n\t */\r\n\tpublic unshift(value: T): void {\r\n\t\tthis.insertIndex(0, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds multiple items to the list.\r\n\t *\r\n\t * @param items An Array of items to add\r\n\t */\r\n\tpublic pushAll(values: Array): void {\r\n\t\t$array.each(values, (value) => {\r\n\t\t\tthis.push(value);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Copies and adds items from abother list.\r\n\t *\r\n\t * @param source A list top copy items from\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tthis.pushAll(source._values);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the last item from the list, and removes it.\r\n\t *\r\n\t * @return Item\r\n\t */\r\n\tpublic pop(): $type.Optional {\r\n\t\tlet index = this._values.length - 1;\r\n\t\treturn index < 0 ? undefined : this.removeIndex(this._values.length - 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the first item from the list, and removes it.\r\n\t *\r\n\t * @return Item\r\n\t */\r\n\tpublic shift(): $type.Optional {\r\n\t\treturn this._values.length ? this.removeIndex(0) : undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets multiple items to the list.\r\n\t *\r\n\t * All current items are removed.\r\n\t *\r\n\t * @param newArray New items\r\n\t */\r\n\tpublic setAll(newArray: Array): void {\r\n\t\t// @tod if a value exists in both the new and old arrays, don't send remove/insert events\r\n\t\tconst oldArray = $array.copy(this._values);\r\n\r\n\t\tthis._values.length = 0;\r\n\r\n\t\t$array.each(newArray, (value) => {\r\n\t\t\tthis._values.push(value);\r\n\t\t});\r\n\r\n\t\tif (this.events.isEnabled(\"setAll\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"setAll\", {\r\n\t\t\t\ttype: \"setAll\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\toldArray: oldArray,\r\n\t\t\t\tnewArray: this._values // TODO make a copy ?\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t$array.each(oldArray, (x) => {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\toldValue: x\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\t$array.each(this._values, (x) => {\r\n\t\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\t\ttype: \"inserted\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tnewValue: x\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all items from the list.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tthis.setAll([]);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list iterator.\r\n\t *\r\n\t * @return Iterator\r\n\t */\r\n\tpublic iterator(): $iter.Iterator {\r\n\t\treturn $iter.fromArray(this._values);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an ES6 iterator for the list.\r\n\t */\r\n\tpublic *[Symbol.iterator](): Iterator {\r\n\t\tconst length = this._values.length;\r\n\r\n\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\tyield this._values[i];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Calls `f` for each element in the list.\r\n\t *\r\n\t * `f` should have at least one parameter defined which will get a current\r\n\t * item, with optional second argument - index.\r\n\t */\r\n\tpublic each(f: (value: T, index: number) => void): void {\r\n\t\t$array.each(this._values, f);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a specific range of list items, which can be iterated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Code duplication with IndexedIterable\r\n\t * @param start Start index\r\n\t * @param end End index\r\n\t * @return Range\r\n\t */\r\n\tpublic range(start: number, end: number): IndexedIterable {\r\n\t\tif (start <= end) {\r\n\t\t\tconst diff = end - start;\r\n\r\n\t\t\tstart = Math.max(start, 0);\r\n\t\t\tend = Math.min(start + diff, this._values.length);\r\n\r\n\t\t\treturn new IndexedIterable(this._values, start, end);\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Start index must be lower than end index\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an iterator that has list items sorted backwards.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return List\r\n\t */\r\n\tpublic backwards(): IndexedIterable {\r\n\t\treturn new IndexedIterable(this._values, this._values.length, 0);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A version of a [[List]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nexport class ListTemplate & { isTemplate: boolean }> extends List implements IClone> {\r\n\t/**\r\n\t * A template object.\r\n\t *\r\n\t * @todo Make this private\r\n\t */\r\n\tpublic _template!: T;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param t Template object\r\n\t */\r\n\tpublic constructor(t: T) {\r\n\t\tsuper();\r\n\t\tthis.template = t;\r\n\t}\r\n\r\n\t/**\r\n\t * A \"template\" object to copy all properties from when creating new list\r\n\t * items.\r\n\t *\r\n\t * @param v Template object\r\n\t */\r\n\tpublic set template(v: T) {\r\n\t\tv.isTemplate = true;\r\n\t\tthis._template = v;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Template object\r\n\t */\r\n\tpublic get template(): T {\r\n\t\treturn this._template;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all elements from other list.\r\n\t *\r\n\t * @param source Source list\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source.iterator(), (value) => {\r\n\t\t\tthis.push(value.clone());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Instantiates a new object of the specified type, adds it to the end of\r\n\t * the list, and returns it.\r\n\t *\r\n\t * @param make Item type to use. Will use the default type for the list if not specified.\r\n\t * @return Newly created item\r\n\t */\r\n\tpublic create(make: { new(): T; }): T;\r\n\tpublic create(): T;\r\n\tpublic create(make?: { new(): T; }): T {\r\n\t\tconst clone =\r\n\t\t\t(make != null\r\n\t\t\t\t? new make()\r\n\t\t\t\t: this.template.clone());\r\n\r\n\t\tthis.push(clone);\r\n\r\n\t\treturn clone;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an exact clone of the list, including its items and template.\r\n\t *\r\n\t * @return New list\r\n\t */\r\n\tpublic clone(): ListTemplate {\r\n\t\tconst out = new ListTemplate(this.template);\r\n\r\n\t\tconst values = this.values;\r\n\r\n\t\tconst length = values.length;\r\n\r\n\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\tout.push(values[i].clone());\r\n\t\t}\r\n\r\n\t\treturn out;\r\n\t}\r\n\r\n}\r\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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}","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\nimport { Optional } from \"./Type\";\r\n\r\n/**\r\n * Defines interface for disposable objects.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport interface IDisposer {\r\n\tisDisposed(): boolean;\r\n\tdispose(): void;\r\n}\r\n\r\n/**\r\n * A base class for disposable objects.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport class Disposer implements IDisposer {\r\n\r\n\t/**\r\n\t * Is object disposed?\r\n\t */\r\n\tprivate _disposed: boolean;\r\n\r\n\t/**\r\n\t * Method that disposes the object.\r\n\t */\r\n\tprivate _dispose: () => void;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param dispose Function that disposes object\r\n\t */\r\n\tconstructor(dispose: () => void) {\r\n\t\tthis._disposed = false;\r\n\t\tthis._dispose = dispose;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if object is disposed.\r\n\t *\r\n\t * @return Disposed?\r\n\t */\r\n\tpublic isDisposed(): boolean {\r\n\t\treturn this._disposed;\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes the object.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this._disposed) {\r\n\t\t\tthis._disposed = true;\r\n\t\t\tthis._dispose();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A collection of related disposers that can be disposed in one go.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport class MultiDisposer extends Disposer {\r\n\tconstructor(disposers: Array) {\r\n\t\tsuper(() => {\r\n\t\t\t$array.each(disposers, (x) => {\r\n\t\t\t\tx.dispose();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n/**\r\n * A special kind of Disposer that has attached value set.\r\n *\r\n * If a new value is set using `set()` method, the old disposer value is\r\n * disposed.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport class MutableValueDisposer extends Disposer {\r\n\r\n\t/**\r\n\t * Current disposer.\r\n\t */\r\n\tprivate _disposer: Optional;\r\n\r\n\t/**\r\n\t * Current value.\r\n\t */\r\n\tprivate _value: Optional;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper(() => {\r\n\t\t\tif ($type.hasValue(this._disposer)) {\r\n\t\t\t\tthis._disposer.dispose();\r\n\t\t\t\tthis._disposer = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current value.\r\n\t *\r\n\t * @return Value\r\n\t */\r\n\tpublic get(): Optional {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets value and disposes previous disposer if it was set.\r\n\t *\r\n\t * @param value New value\r\n\t * @param disposer Disposer\r\n\t */\r\n\tpublic set(value: Optional, disposer: Optional): void {\r\n\t\tif ($type.hasValue(this._disposer)) {\r\n\t\t\tthis._disposer.dispose();\r\n\t\t}\r\n\r\n\t\tthis._disposer = disposer;\r\n\t\tthis._value = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Resets the disposer value.\r\n\t */\r\n\tpublic reset(): void {\r\n\t\tthis.set(undefined, undefined);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport class CounterDisposer extends Disposer {\r\n\r\n\t/**\r\n\t * [_counter description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprivate _counter: number = 0;\r\n\r\n\t/**\r\n\t * [increment description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tpublic increment() {\r\n\t\t// TODO throw an error if it is disposed\r\n\t\t++this._counter;\r\n\r\n\t\t// TODO make this more efficient\r\n\t\treturn new Disposer(() => {\r\n\t\t\t--this._counter;\r\n\r\n\t\t\tif (this._counter === 0) {\r\n\t\t\t\tthis.dispose();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","/**\r\n * A collection of DOM-related functions.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Disposer, IDisposer } from \"./Disposer\";\r\nimport { readFrame, writeFrame } from \"./AsyncPending\";\r\nimport { options } from \"../Options\";\r\nimport * as $object from \"./Object\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * SVG namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport const SVGNS: string = \"http://www.w3.org/2000/svg\";\r\n\r\n/**\r\n * XML namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport const XMLNS: string = \"http://www.w3.org/2000/xmlns/\";\r\n\r\n/**\r\n * XLINK namespace.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport const XLINK: string = \"http://www.w3.org/1999/xlink\";\r\n\r\n\r\n/**\r\n * Function that adds a disposable event listener directly to a DOM element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dom A DOM element to add event to\r\n * @param type Event type\r\n * @param listener Event listener\r\n * @returns Disposable event\r\n */\r\nexport function addEventListener(dom: EventTarget, type: string, listener: (event: E) => void, options?: any): IDisposer {\r\n\t//@todo proper type check for options: EventListenerOptions | boolean (TS for some reason gives error on passive parameter)\r\n\t//console.log(type, dom);\r\n\tdom.addEventListener(type, listener, options || false);\r\n\r\n\treturn new Disposer(() => {\r\n\t\tdom.removeEventListener(type, listener, options || false);\r\n\t});\r\n}\r\n\r\n/**\r\n * Finds and returns an element reference using following logic:\r\n * * If we pass in an element instance, we just return it back.\r\n * * If we pass in a string, the function looks for an element with such id.\r\n * * If no element with such id is found, we grab the first element with a tag name like this.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el Element definition (reference, or id, or tag name)\r\n * @return Element reference\r\n * @todo Review this function as it seems pretty fuzzy and hacky\r\n */\r\nexport function getElement(el: $type.Optional): $type.Optional {\r\n\tif ($type.isString(el)) {\r\n\t\tlet e: Element | null = document.getElementById(el);\r\n\r\n\t\tif (e == null) {\r\n\t\t\te = document.getElementsByClassName(el)[0];\r\n\t\t}\r\n\r\n\t\tif (e instanceof HTMLElement) {\r\n\t\t\treturn e;\r\n\t\t}\r\n\r\n\t} else if (el instanceof HTMLElement) {\r\n\t\treturn el;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds a class name to an HTML or SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @param className Class name to add\r\n */\r\nexport function addClass(element: HTMLElement | SVGSVGElement, className: string): void {\r\n\tif (!element) {\r\n\t\treturn;\r\n\t}\r\n\tif (element.classList) {\r\n\t\telement.classList.add(className);\r\n\t}\r\n\telse {\r\n\t\tlet currentClassName = element.getAttribute(\"class\");\r\n\t\tif (currentClassName) {\r\n\t\t\telement.setAttribute(\"class\", currentClassName.split(\" \").filter((item) => {\r\n\t\t\t\treturn item !== className;\r\n\t\t\t}).join(\" \") + \" \" + className);\r\n\t\t}\r\n\t\telse {\r\n\t\t\telement.setAttribute(\"class\", className);\r\n\t\t}\r\n\t\t//element.className = element.className.replace(new RegExp(\"^\" + className + \"| \" + className), \"\") + \" \" + className;\r\n\t}\r\n}\r\n\r\n/**\r\n * Removes a class name from an HTML or SVG element.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @param className Class name to add\r\n */\r\nexport function removeClass(element: HTMLElement | SVGSVGElement, className: string): void {\r\n\tif (!element) {\r\n\t\treturn;\r\n\t}\r\n\tif (element.classList) {\r\n\t\telement.classList.remove(className);\r\n\t}\r\n\telse {\r\n\t\tlet currentClassName = element.getAttribute(\"class\");\r\n\t\tif (currentClassName) {\r\n\t\t\telement.setAttribute(\"class\", currentClassName.split(\" \").filter((item) => {\r\n\t\t\t\treturn item !== className;\r\n\t\t\t}).join(\" \"));\r\n\t\t}\r\n\t\t//element.className = element.className.replace(new RegExp(\"^\" + className + \"| \" + className), \"\");\r\n\t}\r\n}\r\n\r\n/**\r\n * Sets style property on DOM element.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Still needed?\r\n */\r\nexport function setStyle(element: HTMLElement | SVGSVGElement, property: string, value: string): void {\r\n\t(element.style)[property] = value;\r\n}\r\n\r\n/**\r\n * Gets the computed style value for an element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function getComputedStyle(element: Element, property: string): string | number {\r\n\r\n\tif ((element).currentStyle) {\r\n\t\treturn (element).currentStyle[property];\r\n\t}\r\n\r\n\treturn document.defaultView.getComputedStyle(element, null).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Removes focus from any element by shifting focus to body.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function blur(): void {\r\n\tlet input = document.createElement(\"input\");\r\n\tinput.style.position = \"fixed\";\r\n\tinput.style.top = \"0px\";\r\n\tinput.style.left = \"-10000px\";\r\n\tdocument.body.appendChild(input);\r\n\tinput.focus();\r\n\tinput.blur();\r\n\tdocument.body.removeChild(input);\r\n}\r\n\r\n/**\r\n * Tries to focus the element.\r\n *\r\n * @ignore Exlude from docs\r\n * @param element Element to focus\r\n */\r\nexport function focus(element: HTMLElement | SVGSVGElement): void {\r\n\r\n\tif (element instanceof HTMLElement) {\r\n\t\telement.focus();\r\n\t}\r\n\telse {\r\n\t\tlet input = document.createElement(\"input\");\r\n\t\tlet fo = document.createElementNS(SVGNS, \"foreignObject\");\r\n\t\tfo.appendChild(input);\r\n\t\telement.appendChild(fo);\r\n\t\tinput.focus();\r\n\t\tinput.disabled = true;\r\n\t\tfo.remove();\r\n\t}\r\n\r\n\t/*if ((element).focus != undefined) {\r\n\t\t(element).focus();\r\n\t}\r\n\telse if (element instanceof SVGSVGElement) {\r\n\t\t// Not implemented\r\n\t\t// @todo implement focus fallback\r\n\t}*/\r\n}\r\n\r\n/**\r\n * Returns markup for the element including the element tag itself.\r\n * SVG elements do not support `outerHTML` so this functions applies of\r\n * a workaround which creates a new temporary wrapper, clones element and uses\r\n * wrapper's `innerHTML`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element to get full markup for\r\n * @return Markup\r\n * @deprecated Not in use anywhere\r\n */\r\nexport function outerHTML(element: HTMLElement | SVGSVGElement): string {\r\n\tif (element.outerHTML) {\r\n\t\treturn element.outerHTML;\r\n\t}\r\n\telse {\r\n\t\tlet twrap = document.createElement(\"div\");\r\n\t\tlet tnode = element.cloneNode(true);\r\n\t\ttwrap.appendChild(tnode);\r\n\t\tlet content = twrap.innerHTML;\r\n\t\treturn content;\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks if element is a valid DOM node.\r\n *\r\n * @ignore Exclude from docs\r\n * @param el Element\r\n * @return `true` if element is a valid DOM node\r\n */\r\nexport function isElement(el: HTMLElement): boolean {\r\n\treturn el instanceof Object && el && el.nodeType === 1;\r\n}\r\n\r\n/**\r\n * Checks of element `a` contains element `b`.\r\n *\r\n * @param a Aleged ascendant\r\n * @param b Aleged descendant\r\n * @return Contains?\r\n */\r\nexport function contains(a: HTMLElement | SVGSVGElement, b: HTMLElement | SVGSVGElement): boolean {\r\n\tlet cursor: Node = b;\r\n\r\n\twhile (true) {\r\n\t\tif (a === cursor) {\r\n\t\t\treturn true;\r\n\r\n\t\t} else if (cursor.parentNode == null) {\r\n\t\t\t// TODO better ShadowRoot detection\r\n\t\t\tif ((cursor).host == null) {\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tcursor = (cursor).host;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tcursor = cursor.parentNode;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns the shadow root of the element or null\r\n *\r\n * @param a Node\r\n * @return Root\r\n */\r\nexport function getShadowRoot(a: Node): ShadowRoot | null {\r\n\tlet cursor: Node = a;\r\n\r\n\twhile (true) {\r\n\t\tif (cursor.parentNode == null) {\r\n\t\t\t// TODO better ShadowRoot detection\r\n\t\t\tif ((cursor).host != null) {\r\n\t\t\t\treturn cursor;\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tcursor = cursor.parentNode;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns the root of the element (either the Document or the ShadowRoot)\r\n *\r\n * @param a Node\r\n * @return Root\r\n */\r\nexport function getRoot(a: Node): Document | ShadowRoot | null {\r\n\t// TODO replace with Node.prototype.getRootNode\r\n\tconst owner = a.ownerDocument;\r\n\r\n\tlet cursor: Node = a;\r\n\r\n\twhile (true) {\r\n\t\tif (cursor.parentNode == null) {\r\n\t\t\t// If the cursor is the document, or it is a ShadowRoot\r\n\t\t\t// TODO better ShadowRoot detection\r\n\t\t\tif (cursor === owner || (cursor).host != null) {\r\n\t\t\t\treturn cursor;\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tcursor = cursor.parentNode;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Gets the true target of the Event.\r\n *\r\n * This is needed to make events work with the shadow DOM.\r\n *\r\n * @param event Event\r\n * @return EventTarget\r\n */\r\nexport function eventTarget(event: Event): EventTarget {\r\n\tif (typeof (event).composedPath === \"function\") {\r\n\t\treturn (event).composedPath()[0];\r\n\r\n\t} else {\r\n\t\treturn event.target;\r\n\t}\r\n}\r\n\r\n/**\r\n * Copies attributes from one element to another.\r\n *\r\n * @ignore Exclude from docs\r\n * @param source Element to copy attributes from\r\n * @param target Element to copy attributes to\r\n */\r\nexport function copyAttributes(source: Element | HTMLElement | SVGSVGElement, target: HTMLElement | SVGSVGElement): void {\r\n\t$array.each(source.attributes, (attr) => {\r\n\t\t// TODO what if it's null ?\r\n\t\tif (attr.value != null) {\r\n\t\t\ttarget.setAttribute(attr.name, attr.value);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * [fixPixelPerfect description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param el Element\r\n */\r\nexport function fixPixelPerfect(el: HTMLElement): void {\r\n\treadFrame(() => {\r\n\t\t// sometimes IE doesn't like this\r\n\t\t// TODO figure out a way to remove this\r\n\t\ttry {\r\n\t\t\tconst rect = el.getBoundingClientRect();\r\n\r\n\t\t\tconst left = rect.left - Math.round(rect.left);\r\n\t\t\tconst top = rect.top - Math.round(rect.top);\r\n\r\n\t\t\tif (left !== 0) {\r\n\t\t\t\twriteFrame(() => {\r\n\t\t\t\t\tel.style.left = left + \"px\";\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (top !== 0) {\r\n\t\t\t\twriteFrame(() => {\r\n\t\t\t\t\tel.style.top = top + \"px\";\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t} catch (e) { }\r\n\t});\r\n}\r\n\r\n/**\r\n * [rootStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nlet rootStylesheet: $type.Optional;\r\n\r\n/**\r\n * [getStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @return [description]\r\n */\r\nfunction getStylesheet(element: ShadowRoot | null): CSSStyleSheet {\r\n\tif (element == null) {\r\n\t\tif (!$type.hasValue(rootStylesheet)) {\r\n\t\t\t// TODO use createElementNS ?\r\n\t\t\tconst e = document.createElement(\"style\");\r\n\t\t\te.type = \"text/css\";\r\n\t\t\tif (options.nonce != \"\") {\r\n\t\t\t\te.setAttribute(\"nonce\", options.nonce)\r\n\t\t\t}\r\n\t\t\tdocument.head.appendChild(e);\r\n\t\t\trootStylesheet = e.sheet as CSSStyleSheet;\r\n\t\t}\r\n\r\n\t\treturn rootStylesheet;\r\n\r\n\t} else {\r\n\t\t// TODO use createElementNS ?\r\n\t\tconst e = document.createElement(\"style\");\r\n\t\te.type = \"text/css\";\r\n\t\tif (options.nonce != \"\") {\r\n\t\t\te.setAttribute(\"nonce\", options.nonce)\r\n\t\t}\r\n\t\telement.appendChild(e);\r\n\t\treturn e.sheet as CSSStyleSheet;\r\n\t}\r\n}\r\n\r\n/**\r\n * [makeStylesheet description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param selector [description]\r\n * @return [description]\r\n */\r\nfunction appendStylesheet(root: CSSStyleSheet, selector: string): CSSStyleRule {\r\n\tconst index = root.cssRules.length;\r\n\r\n\troot.insertRule(selector + \"{}\", index);\r\n\r\n\treturn root.cssRules[index] as CSSStyleRule;\r\n}\r\n\r\n/**\r\n * Defines a class for a CSS rule.\r\n *\r\n * Can be used to dynamically add CSS to the document.\r\n */\r\nexport class StyleRule extends Disposer {\r\n\r\n\t/**\r\n\t * CSS rule.\r\n\t */\r\n\tprivate _rule: CSSStyleRule;\r\n\r\n\t/**\r\n\t * A CSS selector text.\r\n\t *\r\n\t * E.g.: `.myClass p`\r\n\t *\r\n\t * @param selector CSS selector\r\n\t */\r\n\tpublic set selector(selector: string) {\r\n\t\tthis._rule.selectorText = selector;\r\n\t}\r\n\r\n\t/**\r\n\t * @return CSS selector\r\n\t */\r\n\tpublic get selector(): string {\r\n\t\treturn this._rule.selectorText;\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param selector CSS selector\r\n\t * @param styles An object of style attribute - value pairs\r\n\t */\r\n\tconstructor(element: ShadowRoot | null, selector: string, styles: { [name: string]: string }) {\r\n\t\tconst root = getStylesheet(element);\r\n\r\n\t\t// TODO test this\r\n\t\tsuper(() => {\r\n\t\t\t// TODO a bit hacky\r\n\t\t\tconst index = $array.indexOf(root.cssRules, this._rule);\r\n\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tthrow new Error(\"Could not dispose StyleRule\");\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// TODO if it's empty remove it from the DOM ?\r\n\t\t\t\troot.deleteRule(index);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._rule = appendStylesheet(root, selector);\r\n\r\n\t\t$object.each(styles, (key, value) => {\r\n\t\t\tthis.setStyle(key, value);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the same style properties with browser-specific prefixes.\r\n\t *\r\n\t * @param name Attribute name\r\n\t * @param value Attribute value\r\n\t */\r\n\tprivate _setVendorPrefixName(name: string, value: string): void {\r\n\t\tconst style = this._rule.style;\r\n\t\tstyle.setProperty(\"-webkit-\" + name, value, \"\");\r\n\t\tstyle.setProperty(\"-moz-\" + name, value, \"\");\r\n\t\tstyle.setProperty(\"-ms-\" + name, value, \"\");\r\n\t\tstyle.setProperty(\"-o-\" + name, value, \"\");\r\n\t\tstyle.setProperty(name, value, \"\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a value for specific style attribute.\r\n\t *\r\n\t * @param name Attribute\r\n\t * @param value Value\r\n\t */\r\n\tpublic setStyle(name: string, value: string): void {\r\n\t\tif (name === \"transition\") {\r\n\t\t\tthis._setVendorPrefixName(name, value);\r\n\r\n\t\t} else {\r\n\t\t\tthis._rule.style.setProperty(name, value, \"\");\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * An internal counter for unique style ids.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nlet styleId: number = 0;\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport class StyleClass extends StyleRule {\r\n\r\n\t/**\r\n\t * Class name.\r\n\t */\r\n\tprivate _className: string;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param styles An object of style attribute - value pairs\r\n\t * @param name Class name\r\n\t */\r\n\tconstructor(element: ShadowRoot | null, styles: { [name: string]: string }, name?: string) {\r\n\t\tconst className =\r\n\t\t\t(!$type.hasValue(name)\r\n\t\t\t\t// TODO generate the classname randomly\r\n\t\t\t\t? \"__style_\" + (++styleId) + \"__\"\r\n\t\t\t\t: name);\r\n\r\n\t\tsuper(element, \".\" + className, styles);\r\n\r\n\t\tthis._className = className;\r\n\t}\r\n\r\n\t/**\r\n\t * Class name.\r\n\t *\r\n\t * @param name Class name\r\n\t */\r\n\tpublic set className(name: string) {\r\n\t\tthis._className = name;\r\n\t\tthis.selector = \".\" + name;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Class name\r\n\t */\r\n\tpublic get className(): string {\r\n\t\treturn this._className;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts the whole class to\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic toString(): string {\r\n\t\treturn this._className;\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport function ready(f: () => void): void {\r\n\tif (document.readyState !== \"loading\") {\r\n\t\tf();\r\n\r\n\t} else {\r\n\t\tconst listener = () => {\r\n\t\t\tif (document.readyState !== \"loading\") {\r\n\t\t\t\tdocument.removeEventListener(\"readystatechange\", listener);\r\n\t\t\t\tf();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener(\"readystatechange\", listener);\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns a font fmaily name for the element (directly set or\r\n * computed/inherited).\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Font family\r\n */\r\nexport function findFont(element: Element): string {\r\n\r\n\t// Check if element has styles set\r\n\tlet font = getComputedStyle(element, \"font-family\");\r\n\r\n\tif (!font) {\r\n\t\t// Completely transparent. Look for a parent\r\n\t\tlet parent = element.parentElement || element.parentNode;\r\n\t\tif (parent) {\r\n\t\t\treturn findFont(parent);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\treturn (font);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Returns a font fmaily name for the element (directly set or\r\n * computed/inherited).\r\n *\r\n * @ignore Exclude from docs\r\n * @param element Element\r\n * @return Font family\r\n */\r\nexport function findFontSize(element: Element): string {\r\n\r\n\t// Check if element has styles set\r\n\tlet font = getComputedStyle(element, \"font-size\");\r\n\r\n\tif (!font) {\r\n\t\t// Completely transparent. Look for a parent\r\n\t\tlet parent = element.parentElement || element.parentNode;\r\n\t\tif (parent) {\r\n\t\t\treturn findFontSize(parent);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\treturn (font);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Checks whether element is not visible, whether directly or via its\r\n * ascendants.\r\n *\r\n * @param element Target element\r\n * @return Hidden?\r\n */\r\nexport function isHidden(element: HTMLElement): boolean {\r\n\treturn (element.offsetParent === null);\r\n}\r\n\r\n\r\n/**\r\n * Checks wthether element is in the current viewport.\r\n *\r\n * @since 2.5.5\r\n * @param el Element\r\n * @return Within viewport?\r\n */\r\nexport function isElementInViewport(el: HTMLElement, viewportTarget?: HTMLElement | HTMLElement[]): boolean {\r\n\r\n\t// Get position data of the element\r\n\tlet rect = el.getBoundingClientRect();\r\n\r\n\t// Convert to array\r\n\tconst targets = $type.isArray(viewportTarget) ? viewportTarget : viewportTarget ? [viewportTarget] : [];\r\n\r\n\t// Should we measure against specific viewport element?\r\n\tif (targets.length) {\r\n\t\tfor (let i = 0; i < targets.length; i++) {\r\n\r\n\t\t\tconst target = targets[i];\r\n\r\n\t\t\t// Check if viewport itself is visible\r\n\t\t\tif (!isElementInViewport(target)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if element is visible within the viewport\r\n\t\t\tlet viewportRect = target.getBoundingClientRect();\r\n\t\t\tif (\r\n\t\t\t\trect.top >= 0 &&\r\n\t\t\t\trect.left >= 0 &&\r\n\t\t\t\trect.top <= (viewportRect.top + viewportRect.height) &&\r\n\t\t\t\trect.left <= (viewportRect.left + viewportRect.width)\r\n\t\t\t) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.top <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n\r\n}\r\n","/**\r\n * This is the main class that encapsulates every object on the chart.\r\n *\r\n * If it's an element that is to be displayed on the screen at some point, its\r\n * class must extend [[Sprite]] class.\r\n */\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SpriteState } from \"./SpriteState\";\r\nimport { ISpriteEvents, SpriteEventDispatcher, AMEvent } from \"./SpriteEvents\";\r\nexport { ISpriteEvents, SpriteEventDispatcher, AMEvent };\r\n\r\nimport { BaseObjectEvents } from \"./Base\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { ITheme } from \"../themes/ITheme\";\r\nimport { Dictionary, IDictionaryEvents, DictionaryTemplate, DictionaryDisposer } from \"./utils/Dictionary\";\r\nimport { ListTemplate, ListDisposer, List } from \"./utils/List\";\r\nimport { EventDispatcher } from \"./utils/EventDispatcher\";\r\nimport { MultiDisposer, IDisposer, Disposer, MutableValueDisposer } from \"./utils/Disposer\";\r\nimport { Animation, IAnimatable, IAnimationOptions, AnimationDisposer } from \"./utils/Animation\";\r\nimport { Optional } from \"./utils/Type\";\r\nimport { Group } from \"./rendering/Group\";\r\nimport { Paper, getGhostPaper } from \"./rendering/Paper\";\r\nimport { DataItem } from \"./DataItem\";\r\nimport { Container } from \"./Container\";\r\nimport { Pattern } from \"./rendering/fills/Pattern\";\r\nimport { LinearGradient } from \"./rendering/fills/LinearGradient\";\r\nimport { RadialGradient } from \"./rendering/fills/RadialGradient\";\r\nimport { SVGContainer } from \"./rendering/SVGContainer\";\r\nimport { Align } from \"./defs/Align\";\r\nimport { Roles, AriaLive } from \"./defs/Accessibility\";\r\nimport { IPlugin } from \"./utils/Plugin\";\r\nimport { Popup } from \"./elements/Popup\";\r\nimport { Modal } from \"./elements/Modal\";\r\nimport { Color, color, toColor } from \"./utils/Color\";\r\nimport { Ordering } from \"./utils/Order\";\r\n\r\nimport { HorizontalCenter } from \"./defs/HorizontalCenter\";\r\nimport { VerticalCenter } from \"./defs/VerticalCenter\";\r\nimport { VerticalAlign } from \"./defs/VerticalAlign\";\r\nimport { ShapeRendering } from \"./defs/ShapeRendering\";\r\nimport { AMElement } from \"./rendering/AMElement\";\r\nimport { Filter } from \"./rendering/filters/Filter\";\r\n\r\nimport { ColorModifier } from \"./rendering/fills/ColorModifier\";\r\n\r\nimport { getInteraction } from \"./interaction/Interaction\";\r\nimport { InteractionObject } from \"./interaction/InteractionObject\";\r\n\r\nimport { IInertiaOptions, ISwipeOptions, IHitOptions, IHoverOptions, ICursorOptions, IKeyboardOptions, IMouseOptions } from \"./interaction/InteractionOptions\";\r\nimport { IPointer } from \"./interaction/Pointer\";\r\nimport { MouseCursorStyle } from \"./interaction/Mouse\";\r\nimport { InertiaTypes } from \"./interaction/Inertia\";\r\nimport { IStyleProperty } from \"./defs/IStyleProperty\";\r\n\r\nimport { options } from \"./Options\";\r\nimport { registry } from \"./Registry\";\r\nimport { IPoint } from \"./defs/IPoint\";\r\nimport { IRectangle } from \"./defs/IRectangle\";\r\nimport { Tooltip } from \"./elements/Tooltip\";\r\n\r\nimport { NumberFormatter } from \"./formatters/NumberFormatter\";\r\nimport { DateFormatter } from \"./formatters/DateFormatter\";\r\nimport { DurationFormatter } from \"./formatters/DurationFormatter\";\r\nimport { getTextFormatter } from \"./formatters/TextFormatter\";\r\nimport { Language } from \"./utils/Language\";\r\nimport { Export } from \"./export/Export\";\r\nimport { AmChartsLogo } from \"./elements/AmChartsLogo\";\r\n\r\n\r\nimport { ISVGAttribute } from \"./rendering/AMElement\";\r\n\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $strings from \"./utils/Strings\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $iter from \"./utils/Iterator\";\r\n\r\nimport { system } from \"./System\";\r\n\r\nimport { Percent, percent } from \"./utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Sprite]]\r\n */\r\nexport interface ISpriteProperties {\r\n\tdisabled?: boolean;\r\n\tx?: number | Percent;\r\n\ty?: number | Percent;\r\n\twidth?: number | Percent;\r\n\theight?: number | Percent;\r\n\tscale?: number;\r\n\trotation?: number;\r\n\tpixelPerfect?: boolean;\r\n\tmarginLeft?: number;\r\n\tmarginRight?: number;\r\n\tmarginTop?: number;\r\n\tmarginBottom?: number;\r\n\tfillOpacity?: number;\r\n\tfill?: Color | LinearGradient | RadialGradient | Pattern;\r\n\topacity?: number;\r\n\tstroke?: Color | LinearGradient | RadialGradient | Pattern;\r\n\tstrokeOpacity?: number;\r\n\tstrokeWidth?: number;\r\n\tstrokeDasharray?: string;\r\n\tstrokeDashoffset?: number;\r\n\tstrokeLinecap?: \"butt\" | \"square\" | \"round\";\r\n\tstrokeLinejoin?: \"miter\" | \"round\" | \"bevel\";\r\n\tshapeRendering?: ShapeRendering;\r\n\tdraggable?: boolean;\r\n\tinert?: boolean;\r\n\tresizable?: boolean;\r\n\tswipeable?: boolean;\r\n\ttrackable?: boolean;\r\n\thoverable?: boolean;\r\n\tclickable?: boolean;\r\n\ttogglable?: boolean;\r\n\twheelable?: boolean;\r\n\tfocusable?: boolean;\r\n\ttabindex?: number;\r\n\tcontextMenuDisabled?: boolean;\r\n\tvisible?: boolean;\r\n\ttooltipText?: string;\r\n\ttooltipHTML?: string;\r\n\ttooltipX?: number | Percent;\r\n\ttooltipY?: number | Percent;\r\n\talwaysShowTooltip?: boolean;\r\n\ttooltipPosition?: \"fixed\" | \"pointer\";\r\n\tshowTooltipOn?: \"hover\" | \"hit\" | \"always\";\r\n\tinteractionsEnabled?: boolean;\r\n\thorizontalCenter?: HorizontalCenter;\r\n\tverticalCenter?: VerticalCenter;\r\n\talign?: Align;\r\n\tvalign?: VerticalAlign;\r\n\tpaddingLeft?: number;\r\n\tpaddingRight?: number;\r\n\tpaddingTop?: number;\r\n\tpaddingBottom?: number;\r\n\tminX?: number;\r\n\tminY?: number;\r\n\tmaxX?: number;\r\n\tmaxY?: number;\r\n\tdx?: number;\r\n\tdy?: number;\r\n\trole?: Roles;\r\n\treaderDescribedBy?: string;\r\n\treaderLabelledBy?: string;\r\n\treaderLive?: AriaLive;\r\n\treaderControls?: string;\r\n\treaderChecked?: boolean;\r\n\treaderHidden?: boolean;\r\n\treaderDescription?: string;\r\n\treaderTitle?: string;\r\n\treaderOrientation?: string;\r\n\treaderValueNow?: string;\r\n\treaderValueText?: string;\r\n\tnonScaling?: boolean;\r\n\tnonScalingStroke?: boolean;\r\n\tzIndex?: number;\r\n\tminWidth?: number;\r\n\tmaxWidth?: number;\r\n\tminHeight?: number;\r\n\tmaxHeight?: number;\r\n\tfillModifier?: ColorModifier;\r\n\tstrokeModifier?: ColorModifier;\r\n\thoverOnFocus?: boolean;\r\n\tpath?: string;\r\n\turlTarget?: string;\r\n\turl?: string;\r\n\thidden?: boolean;\r\n\tshowOnInit?: boolean;\r\n\tid?: string;\r\n\tisActive?: boolean;\r\n\tisHover?: boolean;\r\n\tuserClassName?: string;\r\n}\r\n\r\n/**\r\n * Defines animation options\r\n */\r\nexport interface ISpriteAnimationOptions {\r\n\tfrom?: Percent | Color | number | string;\r\n\tto: Percent | Color | number | string;\r\n\tproperty: any; // todo: this[\"_properties\"] can not be used here, think.\r\n}\r\n\r\n/**\r\n * Defines list ofvisual properties\r\n */\r\nexport const visualProperties: (keyof ISpriteProperties)[] = [\"fill\", \"fillOpacity\", \"stroke\", \"strokeOpacity\", \"strokeWidth\", \"strokeDasharray\", \"strokeDashoffset\", \"strokeLinecap\", \"strokeLinejoin\"]; // do not add opacity here, as it is used for showing/hiding\r\n\r\n/**\r\n * Represents a list of available adapters for [[Sprite]]\r\n */\r\nexport interface ISpriteAdapters extends ISpriteProperties {\r\n\r\n\tpixelHeight: number;\r\n\tpixelWidth: number;\r\n\trelativeHeight: number\r\n\trelativeWidth: number;\r\n\tmeasuredHeight: number;\r\n\tmeasuredWidth: number;\r\n\touterHeight: number;\r\n\touterWidth: number;\r\n\tinnerHeight: number;\r\n\tinnerWidth: number;\r\n\tglobalScale: number;\r\n\tpixelMarginRight: number;\r\n\trelativeMarginRight: number;\r\n\tpixelMarginLeft: number;\r\n\trelativeMarginLeft: number;\r\n\tpixelMarginTop: number;\r\n\trelativeMarginTop: number;\r\n\tpixelMarginBottom: number;\r\n\trelativeMarginBottom: number;\r\n\tpixelX: number;\r\n\trelativeX: number;\r\n\tpixelY: number;\r\n\trelativeY: number;\r\n\tmask: Sprite;\r\n\tpopulateString: string;\r\n\r\n\tinertiaOptions: Dictionary;\r\n\thitOptions: IHitOptions;\r\n\thoverOptions: IHoverOptions;\r\n\tswipeOptions: ISwipeOptions;\r\n\tkeyboardOptions: IKeyboardOptions;\r\n\tmouseOptions: IMouseOptions;\r\n\tcursorOptions: ICursorOptions;\r\n\tcriticalError: Error;\r\n};\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Sprite represents any displayable element.\r\n *\r\n * This is the main class that encapsulates every object on the chart.\r\n *\r\n * If it's an element that is to be displayed on the screen at some point, its\r\n * class must extend [[Sprite]] class.\r\n *\r\n * [[Sprite]] class represents the a hierarchical structure. Every object that\r\n * extends [[Sprite]] can have children, that would inherit their properties,\r\n * such as language, formatters, etc.\r\n *\r\n * @see {@link SpriteState}\r\n * @see {@link ISpriteEvents} for a list of available events\r\n * @see {@link ISpriteAdapters} for a list of available Adapters\r\n *\r\n * @todo Review child elements that need to go into `_disposers`\r\n * @important\r\n */\r\nexport class Sprite extends BaseObjectEvents implements IAnimatable {\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: ISpriteProperties;\r\n\r\n\t/**\r\n\t * Defines state type.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\t//public _state: SpriteState;\r\n\r\n\t/**\r\n\t * Defines type used in the Sprite.\r\n\t */\r\n\tpublic _adapter!: ISpriteAdapters;\r\n\r\n\t/**\r\n\t * Holds values for Sprite's properties.\r\n\t */\r\n\tpublic properties: this[\"_properties\"] = {};\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISpriteEvents;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _eventDispatcher: SpriteEventDispatcher> = new SpriteEventDispatcher(this);\r\n\r\n\t/**\r\n\t * Event dispatcher.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/event-listeners/} for more info about Events\r\n\t */\r\n\tpublic get events(): SpriteEventDispatcher> {\r\n\t\treturn this._eventDispatcher;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _adapterO: Adapter;\r\n\r\n\t/**\r\n\t * Holds Adapter.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/adapters/} for more info about Adapters\r\n\t */\r\n\tpublic get adapter(): Adapter {\r\n\t\tif (!this._adapterO) {\r\n\t\t\tthis._adapterO = new Adapter(this);\r\n\t\t}\r\n\t\treturn this._adapterO;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprivate _bindings: { [key: string]: IDisposer } = {};\r\n\r\n\t/**\r\n\t * Holds indicator if this Sprite is a \"template\" to be used for creating\r\n\t * other Sprites from and should not be treated as full-fledged element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _isTemplate: boolean = false;\r\n\r\n\tprotected _isPath: boolean = false;\r\n\r\n\t/**\r\n\t * Holds collection of Sprite States.\r\n\t */\r\n\tpublic _states: $type.Optional>>;\r\n\r\n\t/**\r\n\t * Holds indicator whether this sprite was already initialized.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _inited: boolean = false;\r\n\r\n\t/**\r\n\t * Holds indicator whether this sprite was already initialized and ready.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _ready: boolean = false;\r\n\r\n\t/**\r\n\t * A reference to a Tooltip for this Sprite.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _tooltip: $type.Optional;\r\n\r\n\t/**\r\n\t * A special data item which tooltip will use when formatting data. In case\r\n\t * it is not set, dataItem will be used.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _tooltipDataItem: $type.Optional;\r\n\r\n\t/**\r\n\t * A reference to another sprite or sprite template from which tooltip should take colors if getFillFromObject or getStrokeFromObject are set to true.\r\n\t * Mostly used when we need to adjust tooltip color for a series, depending on column or bullet color.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _tooltipColorSource: $type.Optional;\r\n\r\n\t/**\r\n\t * If `sprite.hide()` is called and we have \"hidden\" state and\r\n\t * `transitionDuration > 0`, we set `isHiding` flag to `true` in order to\r\n\t * avoid restarting animations in case `hide()` method is called multiple\r\n\t * times.\r\n\t */\r\n\tpublic isHiding: boolean = false;\r\n\r\n\t/**\r\n\t * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.\r\n\t * This was added becaus hidden state might have visibility set to true and so\r\n\t * there would not be possible to find out if a sprite is technically hidden or not.\r\n\t */\r\n\tprotected _isHidden: boolean = false;\r\n\r\n\t/**\r\n\t * This property indicates if Sprite is currently being revealed from hidden\r\n\t * state. This is used to prevent multiple calls to `sprite.show()` to\r\n\t * restart reveal animation. (if enabled)\r\n\t */\r\n\tpublic isShowing: boolean = false;\r\n\r\n\t/**\r\n\t * Indicates if this element is a standalone instance. A \"standalone\r\n\t * instance\" means this is a autonomous object which maintains its own\r\n\t * set of controls like Preloader, Export, etc.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic isStandaloneInstance: boolean = false;\r\n\r\n\t/**\r\n\t * Indicates if togglable Sprite is currently active (toggled on).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _isActive: boolean = false;\r\n\r\n\t/**\r\n\t * A Sprite element to use as a mask for this Sprite.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _mask = new MutableValueDisposer();\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _clipPath: Optional;\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _clipElement: $type.Optional;\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _positionPrecision: number = 3;\r\n\r\n\t/**\r\n\t * Holds reference to Sprite's [[InteractionObject]]. Sprite does not\r\n\t * perform any user interactions directly, it happens via [[InteractionObject]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _interaction: $type.Optional;\r\n\r\n\t/**\r\n\t * An instance of [[Language]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _language = new MutableValueDisposer();\r\n\r\n\t/**\r\n\t * An instance of [[NumberFormatter]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _numberFormatter: $type.Optional;\r\n\r\n\t/**\r\n\t * An instance of [[DateFormatter]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _dateFormatter: $type.Optional;\r\n\r\n\t/**\r\n\t * An instance of [[DurationFormatter]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _durationFormatter: $type.Optional;\r\n\r\n\t/**\r\n\t * An HTML element to which [[svgContainer]] is added.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _htmlContainer: $type.Optional;\r\n\r\n\t/**\r\n\t * An HTML element to which all chart elements are added.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _svgContainer: $type.Optional;\r\n\r\n\t/**\r\n\t * A [[Container]] instance to place this element's [[Tooltip]] elements in\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _tooltipContainer: $type.Optional;\r\n\r\n\r\n\tprotected _urlDisposer: $type.Optional;\r\n\r\n\t/**\r\n\t * Should this element be measured when measuring its parent container's\r\n\t * dimentions?\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _isMeasured: $type.Optional;\r\n\r\n\t/**\r\n\t * Indicates if the chart should follow right-to-left rules.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _rtl: boolean;\r\n\r\n\t/**\r\n\t * Holds [[Export]] object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _exporting = new MutableValueDisposer();\r\n\r\n\t/**\r\n\t * Should this Sprite be included when exporting?\r\n\t */\r\n\tprotected _exportable: boolean = true;\r\n\r\n\t/**\r\n\t * A reference to a top-level SVG node for this Sprite element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _element: Optional;\r\n\r\n\t/**\r\n\t * Holds Sprite's main SVG group (``) element. Other Sprite's elements\r\n\t * are all placed in this group.\r\n\t */\r\n\tpublic group: Group;\r\n\r\n\t/**\r\n\t * A reference to [[Paper]] SVG renderer used to create SVG nodes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _paper: $type.Optional;\r\n\r\n\t/**\r\n\t * Elements's top-level [[Container]].\r\n\t *\r\n\t *\r\n\t * @return Top-level ascendant\r\n\t */\r\n\tprotected _topParent: Optional;\r\n\r\n\t/**\r\n\t * Data item assigned to the sprite. It might contain information defining\r\n\t * some style properties.\r\n\t */\r\n\tpublic _dataItem: $type.Optional;\r\n\r\n\t/**\r\n\t * Parent container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _parent: Container;\r\n\r\n\t/**\r\n\t * Sprite's \"virtual\" parent.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _virtualParent: Sprite;\r\n\r\n\t/**\r\n\t * Defines bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _bbox: IRectangle = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n\t/**\r\n\t * Base tab index for the Sprite. Used for TAB-key selection order.\r\n\t *\r\n\t * Use accessors `tabIndex` to set and retrieve.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _tabindex: $type.Optional;\r\n\r\n\t/**\r\n\t * Should system tooltips be allowed to be displayed if the element has\r\n\t * `readerTitle` set?\r\n\t *\r\n\t * Use accessors `showSystemTooltip` to set and retrieve.\r\n\t *\r\n\t * This is an accessibility feature.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _showSystemTooltip: $type.Optional;\r\n\r\n\t/**\r\n\t * List of animations currently playing for this Sprite.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _animations: $type.Optional>;\r\n\r\n\t/**\r\n\t * A link to [[Disposer]] for event handler which is attached to hide\r\n\t * animation. In some cases we need to cancel this event. This property is\r\n\t * used to hold the reference to disposer of this event so that we can\r\n\t * cancel it by calling its `dispose()` method.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _showHideDisposer: $type.Optional;\r\n\r\n\t/**\r\n\t * If element is currently hiding, this property will hold a reference to\r\n\t * [[Animation]] instance, which is handling hiding animation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _hideAnimation: $type.Optional;\r\n\r\n\t/**\r\n\t * List of [[Filter]] items that are currently applied to the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _filters: $type.Optional>;\r\n\r\n\t/**\r\n\t * A shortcut to the special \"Focus\" filter which is applied when the element\r\n\t * gains focus.\r\n\t *\r\n\t * This is an accessibility feature.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _focusFilter: $type.Optional;\r\n\r\n\t/**\r\n\t * Indicates if this element is invalid and should be re-validated (redrawn).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalid: boolean = false;\r\n\r\n\t/**\r\n\t * Indicates if this elements position is invalid and should be repositioned\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic positionInvalid: boolean = false;\r\n\r\n\t/**\r\n\t * A collection of key/value pairs that can be used to bind specific Sprite\r\n\t * properties to [[DataItem]].\r\n\t *\r\n\t * For example: `fill` property can be bound to `myCustomColor` field in\r\n\t * DataItem. The Sprite will automatically get the value for `fill` from its\r\n\t * DataItem.\r\n\t *\r\n\t * Can be set for each [[SpriteState]] individually to override default\r\n\t * bindings.\r\n\t *\r\n\t * @see {@link SpriteState}\r\n\t */\r\n\tpublic propertyFields: { [index in keyof this[\"_properties\"]]?: string } = {};\r\n\t//public propertyFields: Dictionary = new Dictionary();\r\n\r\n\t/**\r\n\t * Element's relative width.\r\n\t *\r\n\t * Do not set this property directly. Use `width` accessor with [[Percent]]\r\n\t * value instead.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic percentWidth: $type.Optional;\r\n\r\n\t/**\r\n\t * Element's relative height.\r\n\t *\r\n\t * Do not set this property directly. Use `height` accessor with [[Percent]]\r\n\t * value instead.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic percentHeight: $type.Optional;\r\n\r\n\t/**\r\n\t * An SVG group element that is used to put all SVG filters to.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic filterElement: $type.Optional;\r\n\r\n\t/**\r\n\t * A field in data context of element's `dataItem` that holds config values\r\n\t * for this element.\r\n\t *\r\n\t * This is a very powerful feature, allowing changing virtually any setting,\r\n\t * including those for element's children, for the element via data.\r\n\t *\r\n\t * Example data:\r\n\t *\r\n\t * ```JSON\r\n\t * {\r\n\t * \"value\": 100,\r\n\t * \"config\": {\r\n\t * \"fill\": \"#F00\"\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * If you set element's `configField = \"config\"`, the element for this\r\n\t * specific data point will have a red fill.\r\n\t */\r\n\tpublic configField: $type.Optional;\r\n\r\n\t/**\r\n\t * Reference to element's `` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _titleElement: Optional<AMElement>;\r\n\r\n\t/**\r\n\t * Reference to element's `<description>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _descriptionElement: Optional<AMElement>;\r\n\r\n\t/**\r\n\t * Specifies if property changes on this object should be propagated to the\r\n\t * objects cloned from this object.\r\n\t *\r\n\t * This setting affects property changes *after* cloning, since at the moment\r\n\t * of cloning all of properties from source object are copied to the clone\r\n\t * anyway.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tpublic applyOnClones: boolean = false;\r\n\r\n\t/**\r\n\t * a reference to an object which should be used when populating string. used for tooltip label mostly.\r\n\t * @ignore\r\n\t */\r\n\tpublic populateStringFrom: any;\r\n\r\n\t/**\r\n\t * Internal storage properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\r\n\tprotected _measuredWidth: number;\r\n\tprotected _measuredHeight: number;\r\n\r\n\t// unrotated unscaled\r\n\tprotected _measuredWidthSelf: number = 0;\r\n\tprotected _measuredHeightSelf: number = 0;\r\n\r\n\tprotected _prevMeasuredWidth: number;\r\n\tprotected _prevMeasuredHeight: number;\r\n\r\n\tprotected _pixelWidth: $type.Optional<number>;\r\n\tprotected _pixelHeight: $type.Optional<number>;\r\n\r\n\tprotected _relativeWidth: $type.Optional<number>;\r\n\tprotected _relativeHeight: $type.Optional<number>;\r\n\r\n\t// read only, sprite extreme coordinates\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxLeft: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxRight: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxTop: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxBottom: number = 0;\r\n\r\n\t// not rotated and not scaled\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxLeftSelf: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxRightSelf: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxTopSelf: number = 0;\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic maxBottomSelf: number = 0;\r\n\r\n\tprotected _isDragged: boolean = false;\r\n\r\n\tprotected _isResized: boolean = false;\r\n\r\n\t/**\r\n\t * @deprecated Moved to [[SpriteProperties]]\r\n\t */\r\n\tprotected _disabled: boolean = false;\r\n\r\n\tprotected _internalDisabled: boolean = false;\r\n\r\n\tprotected _updateDisabled: boolean = false;\r\n\r\n\tprotected _maskRectangle: $type.Optional<IRectangle>;\r\n\r\n\tprotected _internalDefaultsApplied: boolean = false;\r\n\r\n\tprotected _interactionDisposer: $type.Optional<IDisposer>;\r\n\r\n\t/**\r\n\t * You can set bbox from outside if you know what size your element must be (used in radar chart for example)\r\n\t * @ignore\r\n\t */\r\n\tpublic definedBBox: IRectangle;\r\n\r\n\t/**\r\n\t * Time in milliseconds after which rollout event happens when user rolls-out of the sprite. This helps to avoid flickering in some cases.\r\n\t */\r\n\tpublic rollOutDelay: number = 0;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _outTimeout: $type.Optional<IDisposer>;\r\n\r\n\t/**\r\n\t * This flag is set to `true` for the initial sprite you create and place\r\n\t * to the div so that we could clear all additional\r\n\t * sprites/containers when this sprite is disposed.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic isBaseSprite: boolean = false;\r\n\r\n\t/**\r\n\t * Indicates whether this sprite should be cloned when cloning its parent\r\n\t * container. We set this to `false` in those cases when a sprite is created\r\n\t * by the class, so that when cloning a duplicate sprite would not appear.\r\n\t */\r\n\tpublic shouldClone: boolean = true;\r\n\r\n\t/**\r\n\t * A property which you can use to store any data you want.\r\n\t */\r\n\tpublic dummyData: any;\r\n\r\n\t/**\r\n\t * A reference to a real fill object. Sometimes might be useful to modify\r\n\t * gradient (when fill is color but we have FillModifier).\r\n\t */\r\n\tpublic realFill: Color | Pattern | LinearGradient | RadialGradient;\r\n\r\n\t/**\r\n\t * A reference to a real stroke object. Sometimes might be useful to modify\r\n\t * gradient (when fill is color but we have a FillModifier).\r\n\t */\r\n\tpublic realStroke: Color | Pattern | LinearGradient | RadialGradient;\r\n\r\n\t/**\r\n\t * A reference to amCharts logo element.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic logo: AmChartsLogo;\r\n\r\n\t/**\r\n\t * [_baseId description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _baseId: string;\r\n\r\n\t/**\r\n\t * A read-only flag which indicates if a sprite has completed its initial\r\n\t * animation (if `showOnInit = true`).\r\n\t *\r\n\t * In case `showOnInit = false`, `appeared` is set to `true` on init.\r\n\t *\r\n\t * @readonly\r\n\t */\r\n\tpublic appeared: boolean = false;\r\n\r\n\t/**\r\n\t * [ex description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore\r\n\t */\r\n\tpublic ex: number = 0;\r\n\r\n\t/**\r\n\t * [ey description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore\r\n\t */\r\n\tpublic ey: number = 0;\r\n\r\n\t/**\r\n\t * [_showOnInitDisposer description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _showOnInitDisposer: MultiDisposer;\r\n\r\n\t/**\r\n\t * Holds the list of plugins attached to this Sprite.\r\n\t */\r\n\tprotected _plugins: $type.Optional<List<IPlugin>>;\r\n\r\n\t/**\r\n\t * Indicates if the sprite can be moved around when resizing it with two fingers (will only work if draggable = false)\r\n\t * @ignore\r\n\t */\r\n\tpublic dragWhileResize: boolean = false;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic vpDisposer: MultiDisposer;\r\n\r\n\tprotected _alwaysShowDisposers: IDisposer[];\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic measureFailed: boolean = false;\r\n\r\n\t/**\r\n\t * If this flag is set to true, calling show() will not reveal the sprite.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic preventShow: boolean = false;\r\n\r\n\t/**\r\n\t * When cloning a sprite, if the template has it's own tooltip assigned, this tooltip is also cloned by default.\r\n\t * This is not good for cpu and sometimes you might only need one single tooltip for all clones. Set this to false in order not to clone tooltip.\r\n\t */\r\n\tpublic cloneTooltip: boolean = true;\r\n\r\n\t/**\r\n\t * Constructor:\r\n\t * * Creates initial node\r\n\t * * Sets default properties\r\n\t * * Creates required default states\r\n\t * * Inits accessibility\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"Sprite\";\r\n\r\n\t\tthis._disposers.push(this._eventDispatcher);\r\n\r\n\t\t// Generate a unique ID\r\n\t\t$utils.used(this.uid);\r\n\r\n\t\t// Create SVG group to hold everything in\r\n\t\tthis.group = this.paper.addGroup(\"g\");\r\n\r\n\t\t// Set defaults\r\n\t\t// it is better to set defauls like this in order to save invaliation calls and events\r\n\t\tthis.setPropertyValue(\"scale\", 1);\r\n\t\tthis.setPropertyValue(\"rotation\", 0);\r\n\t\tthis.setPropertyValue(\"align\", \"none\");\r\n\t\tthis.setPropertyValue(\"valign\", \"none\");\r\n\t\tthis.setPropertyValue(\"pixelPerfect\", false);\r\n\t\tthis.setPropertyValue(\"visible\", true);\r\n\t\tthis.setPropertyValue(\"tooltipPosition\", \"fixed\");\r\n\t\tthis.setPropertyValue(\"verticalCenter\", \"none\");\r\n\t\tthis.setPropertyValue(\"horizontalCenter\", \"none\");\r\n\r\n\t\tthis.setPropertyValue(\"tooltipX\", percent(50));\r\n\t\tthis.setPropertyValue(\"tooltipX\", percent(50));\r\n\r\n\t\tthis.setPropertyValue(\"marginTop\", 0);\r\n\t\tthis.setPropertyValue(\"marginBottom\", 0);\r\n\t\tthis.setPropertyValue(\"marginLeft\", 0);\r\n\t\tthis.setPropertyValue(\"marginRight\", 0);\r\n\r\n\t\tthis.setPropertyValue(\"dx\", 0);\r\n\t\tthis.setPropertyValue(\"dy\", 0);\r\n\r\n\t\tthis.setPropertyValue(\"paddingTop\", 0);\r\n\t\tthis.setPropertyValue(\"paddingBottom\", 0);\r\n\t\tthis.setPropertyValue(\"paddingRight\", 0);\r\n\t\tthis.setPropertyValue(\"paddingLeft\", 0);\r\n\r\n\t\tthis.setPropertyValue(\"togglable\", false);\r\n\t\tthis.setPropertyValue(\"hidden\", false);\r\n\t\tthis.setPropertyValue(\"urlTarget\", \"_self\");\r\n\t\tthis.setPropertyValue(\"alwaysShowTooltip\", false);\r\n\t\tthis.setPropertyValue(\"showTooltipOn\", \"hover\");\r\n\r\n\t\tthis._prevMeasuredWidth = 0;\r\n\t\tthis._prevMeasuredHeight = 0;\r\n\t\tthis._measuredWidth = 0;\r\n\t\tthis._measuredHeight = 0;\r\n\r\n\t\tthis._isMeasured = true;\r\n\r\n\t\t// Invalidate the Sprite so that renderer knows it needs to be drawn\r\n\t\tthis.invalidate();\r\n\r\n\t\t//this.states.create(\"default\").properties.opacity = 1;\r\n\r\n\t\t// Apply the theme\r\n\t\tthis.applyTheme();\r\n\r\n\t\t//this._disposers.push(this._clickable);\r\n\r\n\t\t// Decorate adapter with events so that we can apply its settings whenever\r\n\t\t// it is modified\r\n\t\t// @todo Think what to do here. We can't just apply the adapter value to\r\n\t\t// property since not all of those are for properties. Commented out for\r\n\t\t// now.\r\n\t\t/*this.adapter.events.on(\"inserted\", (ev: any) => {\r\n\t\t\t(<any>this)[ev.newValue.key] = (<any>this)[ev.newValue.key];\r\n\t\t});\r\n\t\tthis.adapter.events.on(\"removed\", (ev: any) => {\r\n\t\t\t(<any>this)[ev.newValue.key] = (<any>this)[ev.newValue.key];\r\n\t\t});*/\r\n\r\n\t\t// Add disposable dependencies to `_disposers` so they are automatically\r\n\t\t// disposed of when this object is disposed\r\n\t\tthis._disposers.push(this.events);\r\n\t\tthis._disposers.push(this.group);\r\n\t\tthis._disposers.push(this._mask);\r\n\t\tthis._disposers.push(this._language);\r\n\t\tthis._disposers.push(this._exporting);\r\n\t\t//this._disposers.push(this._parent);\r\n\t\t//this._disposers.push(this._modal);\r\n\r\n\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t$object.each(this._bindings, (key, value) => {\r\n\t\t\t\tvalue.dispose();\r\n\t\t\t});\r\n\t\t}));\r\n\r\n\t\tthis.setPropertyValue(\"interactionsEnabled\", true);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * ELEMENT VALIDATION, INIT, AND DRAWING STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Applies properties from all assigned themes.\r\n\t *\r\n\t * We do this here so that we can apply class names as well.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic applyTheme(): void {\r\n\t\tsuper.applyTheme();\r\n\t\tif (options.autoSetClassName) {\r\n\t\t\tthis.setClassName();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns theme(s) used by this object either set explicitly on this\r\n\t * element, inherited from parent, or inherited from [[System]].\r\n\t *\r\n\t * @return An array of theme references\r\n\t */\r\n\tpublic getCurrentThemes(): ITheme[] {\r\n\t\tconst themes = this._themes;\r\n\r\n\t\tif (themes) {\r\n\t\t\treturn themes;\r\n\r\n\t\t} else {\r\n\t\t\tconst parent = this._parent;\r\n\r\n\t\t\tif (parent) {\r\n\t\t\t\treturn parent.getCurrentThemes();\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn registry.themes;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Called just before element's validation, this function allows setting\r\n\t * defaults.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\t// Nothing here, but extending classes might override this function\r\n\t\t// so that they can set their defaults\r\n\t\tthis._internalDefaultsApplied = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates element.\r\n\t *\r\n\t * Object will be redrawn during the next update cycle.\r\n\t *\r\n\t * Please note that in most cases elements will auto-invalidate when needed. If\r\n\t * everything works, DO NOT use this method. Use it only if some changes do\r\n\t * not take otherwise.\r\n\t */\r\n\tpublic invalidate(): void {\r\n\t\tif (this.disabled || this._isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// We no longer reset this on each invalidate, so that they are applied\r\n\t\t// only once, and do not overwrite user-defined settings\r\n\t\t//this._internalDefaultsApplied = false;\r\n\r\n\t\tif (!this.invalid) {\r\n\t\t\tthis.invalid = true;\r\n\t\t\tregistry.addToInvalidSprites(this);\r\n\t\t\tsystem.requestFrame();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates element:\r\n\t * * Triggers events\r\n\t * * Redraws the element\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tthis.dispatchImmediately(\"beforevalidated\");\r\n\r\n\t\t// prevents from drawing if topparent is 0x0\r\n\t\t/*\r\n\t\tlet topParent = this.topParent;\r\n\r\n\t\tif (topParent) {\r\n\t\t\tif (!topParent.maxWidth || !topParent.maxHeight) {\r\n\t\t\t\tthis._disposers.push(topParent.events.once(\"maxsizechanged\", this.invalidate, this));\r\n\t\t\t}\r\n\t\t}*/\r\n\r\n\t\t// Set internal defaults\r\n\t\tif (!this._internalDefaultsApplied) {\r\n\t\t\tthis.applyInternalDefaults();\r\n\t\t}\r\n\r\n\t\tthis.beforeDraw();\r\n\t\tthis.draw();\r\n\r\n\t\tthis.invalid = false;\r\n\r\n\t\tregistry.removeFromInvalidSprites(this);\r\n\t\tthis.afterDraw();\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates element's position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidatePosition(): void {\r\n\t\tif (this.disabled || this._isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.positionInvalid) {\r\n\t\t\tthis.positionInvalid = true;\r\n\t\t\tregistry.addToInvalidPositions(this);\r\n\t\t\tsystem.requestFrame();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Transforms the element.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validatePosition(): void {\r\n\r\n\t\tlet pixelX = this.pixelX;\r\n\t\tlet pixelY = this.pixelY;\r\n\t\tlet dx = this.dx;\r\n\t\tlet dy = this.dy;\r\n\r\n\t\tlet x: number = pixelX + dx;\r\n\t\tlet y: number = pixelY + dy;\r\n\r\n\t\tif (this._updateDisabled) {\r\n\t\t\tif (this._internalDisabled) {\r\n\t\t\t\tthis.group.attr({ \"display\": \"none\" })\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!this.disabled) {\r\n\t\t\t\t\tthis.removeSVGAttribute(\"display\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._updateDisabled = false;\r\n\t\t}\r\n\r\n\t\tlet sizeChanged: boolean = this.measure();\r\n\r\n\t\t//if (!this.invalid) {\r\n\t\tlet prevGroupTransform: string = this.group.transformString;\r\n\r\n\t\tthis.group.moveTo({ x: x, y: y });\r\n\t\tthis.group.rotation = this.rotation;\r\n\t\tif (this.nonScaling) {\r\n\t\t\tthis.group.scale = this.scale / this.globalScale;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.group.scale = this.scale;\r\n\t\t}\r\n\r\n\t\tif (prevGroupTransform != this.group.transformString || sizeChanged) {\r\n\t\t\t// not yet sure, this is to avoid many transforms=>container layout invalidation on initial buid\r\n\t\t\tif (prevGroupTransform == null) {\r\n\t\t\t\tthis.dispatch(\"transformed\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.dispatchImmediately(\"transformed\");\r\n\t\t\t}\r\n\t\t\t// TODO clear existing positionchanged dispatches ?\r\n\t\t\tthis.dispatch(\"positionchanged\");\r\n\r\n\t\t\tif (this.showTooltipOn == \"hit\" || this.showTooltipOn == \"always\") {\r\n\t\t\t\tthis.updateTooltipPosition();\r\n\t\t\t}\r\n\t\t}\r\n\t\t//}\r\n\r\n\t\t// it might happen that x and y changed again, so we only remove if they didn't\r\n\t\tif (pixelX + dx == x && pixelY + dy == y) {\r\n\t\t\tregistry.removeFromInvalidPositions(this);\r\n\t\t\tthis.positionInvalid = false;\r\n\t\t}\r\n\t\tlet maskRectangle = this._maskRectangle;\r\n\t\t// todo: verify this\r\n\t\tif (maskRectangle) {\r\n\t\t\tthis._clipElement.moveTo({ x: maskRectangle.x - pixelX, y: maskRectangle.y - pixelY });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A placeholder method that is called **before** element begins to be drawn.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected beforeDraw(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A placeholder method that draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected draw(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A placeholder method that is called **after** element finishes drawing\r\n\t * itself.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected afterDraw(): void {\r\n\t\tif (this.isMeasured || this.horizontalCenter !== \"none\" || this.verticalCenter !== \"none\") {\r\n\t\t\tthis.measureElement();\r\n\t\t}\r\n\r\n\t\t//this.applyMask();\r\n\r\n\t\tif (!this._inited) {\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\t// used to be applySVGAttrbutes here, this is more efficient\r\n\t\t\t\tfor (let key of this._adapterO.keys()) {\r\n\t\t\t\t\tswitch (key) {\r\n\t\t\t\t\t\tcase \"mask\":\r\n\t\t\t\t\t\tcase \"fill\":\r\n\t\t\t\t\t\tcase \"opacity\":\r\n\t\t\t\t\t\tcase \"fillOpacity\":\r\n\t\t\t\t\t\tcase \"stroke\":\r\n\t\t\t\t\t\tcase \"strokeOpacity\":\r\n\t\t\t\t\t\tcase \"strokeWidth\":\r\n\t\t\t\t\t\tcase \"shapeRendering\":\r\n\t\t\t\t\t\tcase \"strokeDasharray\":\r\n\t\t\t\t\t\tcase \"strokeDashoffset\":\r\n\t\t\t\t\t\tcase \"strokeLinecap\":\r\n\t\t\t\t\t\tcase \"strokeLinejoin\":\r\n\t\t\t\t\t\tcase \"textDecoration\":\r\n\t\t\t\t\t\tcase \"fontSize\":\r\n\t\t\t\t\t\tcase \"fontFamily\":\r\n\t\t\t\t\t\tcase \"fontWeight\":\r\n\t\t\t\t\t\t\t//case \"focusable\":\r\n\t\t\t\t\t\t\t//case \"tabindex\":\r\n\t\t\t\t\t\t\t//case \"role\":\r\n\t\t\t\t\t\t\t(<any>this)[key] = (<any>this)[key];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.applyFilters();\r\n\r\n\t\t\tthis.visible = this.visible;\r\n\t\t\tthis.interactionsEnabled = this.getPropertyValue(\"interactionsEnabled\"); // can't use .interactionsEnabled as it get's parent's\r\n\r\n\t\t\tthis._inited = true;\r\n\r\n\t\t\tif (!this.showOnInit) {\r\n\t\t\t\tthis.appeared = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.hidden) {\r\n\t\t\t\tthis.hide(0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.applyMask();\r\n\t\t\tthis.dispatch(\"validated\");\r\n\t\t\tthis.dispatch(\"inited\");\r\n\t\t\tthis.dispatchReady();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dispatch(\"validated\");\r\n\t\t}\r\n\r\n\t\tif (this.showTooltipOn == \"always\") {\r\n\t\t\tif (this.visible && !this.disabled && !this.__disabled) {\r\n\t\t\t\tthis.showTooltip();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.hideTooltip(0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispatches `\"ready\"` event. Sprite dispatches it right after `\"inited\"` event.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic dispatchReady(): void {\r\n\t\tif (!this.isReady()) {\r\n\t\t\tthis._ready = true;\r\n\t\t\tthis.dispatch(\"ready\");\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Triggers a re-initialization of this element.\r\n\t *\r\n\t * Will result in complete redrawing of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic reinit(): void {\r\n\t\tthis._inited = false;\r\n\t\tthis.setState(this.defaultState);\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the situation where parent element is resized.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleGlobalScale(): void {\r\n\t\tthis.dispatch(\"globalscalechanged\");\r\n\r\n\t\tif (this.nonScalingStroke) {\r\n\t\t\tthis.strokeWidth = this.strokeWidth;\r\n\t\t}\r\n\r\n\t\tif (this.nonScaling) {\r\n\t\t\tthis.validatePosition();\r\n\t\t}\r\n\r\n\t\tthis.updateFilterScale();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates filter properties which might depend on scale\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateFilterScale(): void {\r\n\t\t$iter.each(this.filters.iterator(), (filter) => {\r\n\t\t\tfilter.scale = this.globalScale;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Removes itself from system's invalid lists.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected removeFromInvalids() {\r\n\t\tregistry.removeFromInvalidSprites(this);\r\n\t\tregistry.removeFromInvalidPositions(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Sprite]].\r\n\t *\r\n\t * @param source Source Sprite\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\tthis.isMeasured = source.isMeasured;\r\n\r\n\t\tthis.states.copyFrom(source.states);\r\n\r\n\t\tif (source.filters.length > 0) {\r\n\t\t\tsource.filters.each((filter) => {\r\n\t\t\t\tthis.filters.push(filter.clone());\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (source._adapterO) {\r\n\t\t\tthis.adapter.copyFrom(source._adapterO);\r\n\t\t}\r\n\r\n\t\t//helps to avoid calling getter which creates instance\r\n\t\tif ((<any>source)[\"_interaction\"]) {\r\n\t\t\tthis.interactions.copyFrom(source.interactions);\r\n\t\t}\r\n\r\n\t\tif ((<any>source)[\"_plugins\"]) {\r\n\t\t\tthis.plugins.copyFrom(source.plugins);\r\n\t\t}\r\n\r\n\t\tthis.configField = source.configField;\r\n\r\n\t\tthis.applyOnClones = source.applyOnClones;\r\n\r\n\t\t// this.numberFormatter = source.numberFormatter; // todo: this creates loose number formatter and copies it to all clones. somehow we need to know if source had numberFormatter explicitly created and not just because a getter was called.\r\n\r\n\t\t//this.mask = source.mask; need to think about this, generally this causes a lot of problems\r\n\t\tthis.disabled = source.disabled;\r\n\r\n\t\tthis.virtualParent = source.virtualParent;\r\n\r\n\t\tthis.exportable = source.exportable;\r\n\t\t//@todo: create tooltip if it's on source but not on this?\r\n\t\t//const tooltip = this._tooltip;\r\n\t\t//if (tooltip) {\r\n\t\t//\ttooltip.copyFrom(source.tooltip);\r\n\t\t//}\r\n\r\n\t\tif (source._tooltip) {\r\n\t\t\tif (this._tooltip) {\r\n\t\t\t\tthis._tooltip.copyFrom(source.tooltip);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (source.cloneTooltip) {\r\n\t\t\t\t\tthis.tooltip = source.tooltip.clone();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._tooltip = source.tooltip;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//if ((<any>source)[\"_tooltip\"] && !this._tooltip) {\r\n\t\t//\tthis._tooltip = (<any>source)[\"_tooltip\"];\r\n\t\t//}\r\n\r\n\t\tthis._showSystemTooltip = source.showSystemTooltip;\r\n\r\n\t\t$utils.copyProperties(source.propertyFields, this.propertyFields);\r\n\t\t$utils.copyProperties(source.properties, this);\r\n\r\n\t\tif (source.fillModifier) {\r\n\t\t\tthis.fillModifier = source.fillModifier.clone();\r\n\t\t}\r\n\r\n\t\tif (source.strokeModifier) {\r\n\t\t\tthis.strokeModifier = source.strokeModifier.clone();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this.isDisposed()) {\r\n\r\n\t\t\tif (this.showTooltipOn == \"always\" && this.tooltip) {\r\n\t\t\t\tthis.tooltip.hide();\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchImmediately(\"beforedisposed\");\r\n\r\n\t\t\tif (this.isBaseSprite) {\r\n\t\t\t\tif (this.htmlContainer) {\r\n\t\t\t\t\twhile (this.htmlContainer.childNodes.length > 0) {\r\n\t\t\t\t\t\tthis.htmlContainer.removeChild(this.htmlContainer.firstChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.isBaseSprite = false;\r\n\t\t\t}\r\n\r\n\t\t\tsuper.dispose();\r\n\r\n\t\t\t// Clear adapters\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\tthis._adapterO.clear();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.applyOnClones) {\r\n\t\t\t\tif (this._clones) {\r\n\t\t\t\t\tfor (let i = this._clones.length - 1; i >= 0; i--) {\r\n\t\t\t\t\t\tlet clone = this._clones.getIndex(i);\r\n\t\t\t\t\t\tclone.dispose();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this._svgContainer) {\r\n\t\t\t\tthis._svgContainer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (this._interactionDisposer) {\r\n\t\t\t\tthis._interactionDisposer.dispose();\r\n\t\t\t\tthis._interactionDisposer = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._urlDisposer) {\r\n\t\t\t\tthis._urlDisposer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.removeFromInvalids();\r\n\r\n\t\t\tif (this.element) {\r\n\t\t\t\tthis.element.dispose();\r\n\t\t\t}\r\n\t\t\tif (this.group) {\r\n\t\t\t\tthis.group.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (this._numberFormatter) {\r\n\t\t\t\tthis._numberFormatter.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (this._focusFilter) {\r\n\t\t\t\tthis._focusFilter.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tlet stroke = this.stroke;\r\n\t\t\tif (stroke && !(stroke instanceof Color) && stroke.dispose) {\r\n\t\t\t\tif (this.clonedFrom && this.clonedFrom.stroke == stroke) {\r\n\t\t\t\t\t// do nothing\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tstroke.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// TODO a bit hacky\r\n\t\t\tlet fill = this.fill;\r\n\t\t\tif (fill && !(fill instanceof Color) && fill.dispose) {\r\n\t\t\t\tif (this.clonedFrom && this.clonedFrom.fill == fill) {\r\n\t\t\t\t\t// do nothing\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tfill.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// remove from map\r\n\t\t\tif ($type.hasValue(this.id)) {\r\n\t\t\t\tthis.map.removeKey(this.id);\r\n\t\t\t}\r\n\r\n\t\t\tthis.parent = undefined;\r\n\t\t\tif (this._filters) {\r\n\t\t\t\twhile (this._filters.length > 0) {\r\n\t\t\t\t\tlet filter = <Filter>this._filters.getIndex(0);\r\n\t\t\t\t\tfilter.dispose();\r\n\t\t\t\t\tthis._filters.removeValue(filter);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._alwaysShowDisposers = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element is a \"template\".\r\n\t *\r\n\t * Template Sprites act only as a holders for config for other \"real\"\r\n\t * elements to be cloned from.\r\n\t *\r\n\t * Templates are treated differently, as they are not validated, redrawn, or\r\n\t * otherwise are processed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Is template?\r\n\t */\r\n\tpublic set isTemplate(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this._isTemplate != value) {\r\n\t\t\tthis._isTemplate = value;\r\n\r\n\t\t\tif (this instanceof Container) {\r\n\t\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\t\tchild.isTemplate = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.parent = this._parent;\r\n\t\t\t\tthis.removeFromInvalids();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Is template?\r\n\t */\r\n\tpublic get isTemplate(): boolean {\r\n\t\treturn this._isTemplate;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates whether the element should attempt to construct itself in a way\r\n\t * so that system tooltip is shown if its `readerTitle` is set.\r\n\t *\r\n\t * @param value Show system tooltip?\r\n\t */\r\n\tpublic set showSystemTooltip(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this._showSystemTooltip != value) {\r\n\t\t\tthis._showSystemTooltip = value;\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Show system tooltip?\r\n\t */\r\n\tpublic get showSystemTooltip(): boolean {\r\n\t\tif (!$type.hasValue(this._showSystemTooltip)) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.showSystemTooltip;\r\n\t\t\t}\r\n\t\t\telse if (this._parent) {\r\n\t\t\t\treturn this._parent.showSystemTooltip;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._showSystemTooltip;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * HIERARCHY AND STRUCTURE RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Sprites's top-level [[Container]].\r\n\t *\r\n\t * Please note that in most cases it won't be the chart element.\r\n\t *\r\n\t * To access base chart element, use `baseSprite` instead.\r\n\t *\r\n\t * @return Top-level ascendant\r\n\t */\r\n\tpublic get topParent(): Optional<Container> {\r\n\t\tif (this._topParent) {\r\n\t\t\treturn this._topParent;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.topParent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @param value {Container} top parent of a sprite\r\n\t */\r\n\tpublic set topParent(value: Container) {\r\n\t\tthis._topParent = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Elements' parent [[Container]].\r\n\t *\r\n\t * @param parent Parent container\r\n\t */\r\n\tpublic set parent(parent: Optional<Container>) {\r\n\t\tif (this._isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// TODO is this needed ?\r\n\t\t$utils.used(this.paper);\r\n\r\n\t\tlet oldParent = this._parent;\r\n\t\tif (oldParent != parent) {\r\n\r\n\t\t\tif (oldParent) {\r\n\t\t\t\toldParent.children.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis._parent = parent;\r\n\r\n\t\t\tif (parent) {\r\n\r\n\t\t\t\tthis.topParent = parent.topParent;\r\n\r\n\t\t\t\tif (parent.isTemplate) {\r\n\t\t\t\t\tthis.isTemplate = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.baseId = parent.baseId;\r\n\r\n\t\t\t\tparent.children.push(this);\r\n\t\t\t\t// insert handler at Container invalidates + invalidatesLayout + adds to group\r\n\r\n\t\t\t\tif (this._tooltip && !this._tooltipContainer) {\r\n\t\t\t\t\tthis._tooltip.parent = parent.tooltipContainer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._dataItem) {\r\n\t\t\t\t\tthis.dataItem = parent.dataItem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.handleAlwaysShowTooltip();\r\n\r\n\t\t\t\tthis.dispatchImmediately(\"parentset\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.topParent = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleAlwaysShow() {\r\n\t\tthis.showTooltip();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleAlwaysShowTooltip() {\r\n\t\tlet sprite: Sprite = this;\r\n\r\n\t\tlet oldDisposers = this._alwaysShowDisposers;\r\n\t\tif (oldDisposers) {\r\n\t\t\t$array.each(oldDisposers, (oldDisposer) => {\r\n\t\t\t\toldDisposer.dispose();\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._alwaysShowDisposers = [];\r\n\r\n\t\tif (this.showTooltipOn == \"always\") {\r\n\t\t\twhile (sprite != undefined) {\r\n\t\t\t\tlet disposer = sprite.events.on(\"visibilitychanged\", this.handleAlwaysShow, this, false);\r\n\t\t\t\tthis.addDisposer(disposer);\r\n\t\t\t\tthis._alwaysShowDisposers.push(disposer);\r\n\t\t\t\tsprite = sprite.parent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Parent container\r\n\t */\r\n\tpublic get parent(): Optional<Container> {\r\n\t\treturn this._parent;\r\n\t}\r\n\r\n\t/**\r\n\t * Element's \"virtual\" parent.\r\n\t *\r\n\t * This is required in ordere to maintain proper inheritance (like\r\n\t * formatters).\r\n\t *\r\n\t * Sometimes an element is a \"logical\" parent, even though it's not a direct\r\n\t * ascendant.\r\n\t *\r\n\t * Example: a bullet is not a child of the axis, but it would make sense\r\n\t * for it to inherit series' formatters.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Virtual parent\r\n\t */\r\n\tpublic set virtualParent(value: Sprite) {\r\n\t\tthis._virtualParent = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Virtual parent\r\n\t */\r\n\tpublic get virtualParent(): Optional<Sprite> {\r\n\t\treturn this._virtualParent;\r\n\t}\r\n\r\n\t/**\r\n\t * Moves `<defs>` to correct place in DOM.\r\n\t *\r\n\t * Some elements are initially created in \"ghost\" container. When moving\r\n\t * those into proper place in DOM, their respective `<defs>` need to be moved\r\n\t * as well.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic appendDefs(): void {\r\n\r\n\t\tif (this.filterElement) {\r\n\t\t\tthis.paper.appendDef(this.filterElement);\r\n\t\t}\r\n\r\n\t\tlet fill = <any>this.fill;\r\n\r\n\t\tif (fill && fill.element) {\r\n\t\t\tthis.paper.appendDef(fill.element);\r\n\t\t}\r\n\r\n\t\tlet stroke = <any>this.stroke;\r\n\t\tif (stroke && stroke.element) {\r\n\t\t\tthis.paper.appendDef(stroke.element);\r\n\t\t}\r\n\r\n\t\tif (this.fillModifier && this.fill instanceof Color) {\r\n\t\t\tlet fill = <any>this.fillModifier.modify(this.fill);\r\n\t\t\tif (fill && fill.element) {\r\n\t\t\t\tthis.paper.appendDef(fill.element);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.strokeModifier && this.stroke instanceof Color) {\r\n\t\t\tlet stroke = <any>this.strokeModifier.modify(this.stroke);\r\n\t\t\tif (stroke && stroke.element) {\r\n\t\t\t\tthis.paper.appendDef(stroke.element);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this._clipPath) {\r\n\t\t\tthis.paper.appendDef(this._clipPath);\r\n\t\t}\r\n\r\n\t\tif (this._exportable === false) {\r\n\t\t\tthis.exportable = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a [[Dictionary]] which maps object ids with their respective\r\n\t * objects.\r\n\t *\r\n\t * Can be used to retrieve any object by id, e.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * console.log(mySprite.map.getKey(\"myid\"));\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * console.log(mySprite.map.getKey(\"myid\"));\r\n\t * ```\r\n\t *\r\n\t * @return Map collection\r\n\t */\r\n\tpublic get map(): Dictionary<string, any> {\r\n\t\tconst top = this.topParent;\r\n\r\n\t\tif (top) {\r\n\t\t\treturn top.map;\r\n\t\t} else if (!this._map) {\r\n\t\t\tthis._map = new Dictionary<string, any>();\r\n\t\t}\r\n\r\n\t\treturn this._map;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @return Map collection\r\n\t */\r\n\tpublic get delayedMap(): Dictionary<string, any> {\r\n\t\tconst top = this.topParent;\r\n\r\n\t\tif (top) {\r\n\t\t\treturn top.delayedMap;\r\n\t\t} else if (!this._delayedMap) {\r\n\t\t\tthis._delayedMap = new Dictionary<string, any>();\r\n\t\t}\r\n\r\n\t\treturn this._delayedMap;\r\n\t}\r\n\r\n\t/**\r\n\t * Element's user-defined ID.\r\n\t *\r\n\t * Will throw an Error if there already is an object with the same ID.\r\n\t *\r\n\t * Please note that above check will be performed withing the scope of the\r\n\t * current chart instance. It will not do checks across other chart instances\r\n\t * or in globally in DOM.\r\n\t *\r\n\t * Make sure the IDs are unique.\r\n\t *\r\n\t * @param value ID\r\n\t */\r\n\tpublic set id(value: string) {\r\n\t\tif (this._id != value) {\r\n\t\t\tthis._id = value;\r\n\t\t\tif (this.map.hasKey(value)) {\r\n\t\t\t\tthrow Error(\"Duplicate id (\" + value + \") used on multiple objects.\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.map.setKey(value, this);\r\n\t\t\t}\r\n\t\t\tif (options.autoSetClassName) {\r\n\t\t\t\tthis.setClassName();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return ID\r\n\t */\r\n\tpublic get id(): string {\r\n\t\treturn this._id;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * ELEMENT AND DOM TREE MANIPULATION AND MEASURING\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns DOM element reference associated with this element.\r\n\t *\r\n\t * @readonly\r\n\t * @return DOM element\r\n\t */\r\n\tpublic get dom(): SVGSVGElement {\r\n\t\treturn this.group.node;\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Paper]] instance to place elements on.\r\n\t *\r\n\t * If there's no Paper set for this element, it goes up the ascendant tree\r\n\t * until it finds one.\r\n\t *\r\n\t * This method is used by important `addChild()` method, so it's essential\r\n\t * to have a [[Paper]] instance.\r\n\t *\r\n\t * If this element has a separate `htmlContainer` set, it will have a\r\n\t * [[Paper]] instance itself.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param paper Paper\r\n\t */\r\n\tpublic set paper(paper: Paper) {\r\n\t\tthis.setPaper(paper);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets [[Paper]] instance to use to draw elements.\r\n\t * @ignore\r\n\t * @param paper Paper\r\n\t * @return true if paper was changed, false, if it's the same\r\n\t */\r\n\tpublic setPaper(paper: Paper): boolean {\r\n\t\tlet oldPaper = this._paper;\r\n\r\n\t\tif (oldPaper != paper) {\r\n\t\t\tthis._paper = paper;\r\n\r\n\t\t\tthis.appendDefs();\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Paper\r\n\t */\r\n\tpublic get paper(): Paper {\r\n\t\tif (this._paper) {\r\n\t\t\treturn this._paper;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet parent = this._parent;\r\n\t\t\tif (parent) {\r\n\t\t\t\treturn parent.paper;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn getGhostPaper();\r\n\t}\r\n\r\n\t/**\r\n\t * An HTML element to be used when placing wrapper element (`<div>`)\r\n\t * for the whole chart.\r\n\t *\r\n\t * This is the same for **all** elements within the same chart.\r\n\t *\r\n\t * @param htmlContainer HTML element\r\n\t */\r\n\tpublic set htmlContainer(htmlContainer: $type.Optional<HTMLElement>) {\r\n\t\tthis._htmlContainer = htmlContainer;\r\n\t}\r\n\r\n\t/**\r\n\t * @return HTML element\r\n\t */\r\n\tpublic get htmlContainer(): $type.Optional<HTMLElement> {\r\n\t\tif (this._htmlContainer) {\r\n\t\t\treturn this._htmlContainer;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet parent = this._parent;\r\n\t\t\tif (parent) {\r\n\t\t\t\treturn parent.htmlContainer;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates (if not yet created) and returns element's `<title>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Title element\r\n\t */\r\n\tpublic get titleElement(): AMElement {\r\n\t\tif (!this._titleElement) {\r\n\t\t\tthis._titleElement = this.paper.add(\"title\");\r\n\t\t\tthis.group.add(this._titleElement);\r\n\t\t}\r\n\t\treturn this._titleElement;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates (if not yet created) and returns element's `<desc>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Desc element\r\n\t */\r\n\tpublic get descriptionElement(): AMElement {\r\n\t\tif (!this._descriptionElement) {\r\n\t\t\tthis._descriptionElement = this.paper.add(\"desc\");\r\n\t\t\tthis.group.add(this._descriptionElement);\r\n\t\t}\r\n\t\treturn this._descriptionElement;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns list of SVG filters (effects) applied to element. If the filter\r\n\t * list is not yet initilized, creates and returns an empty one.\r\n\t * Note, not all filters combine well with one another. We recommend using one filter per sprite.\r\n\t *\r\n\t * @return List of filters\r\n\t */\r\n\tpublic get filters(): List<Filter> {\r\n\t\tif (!this._filters) {\r\n\t\t\tthis._filters = new List<Filter>();\r\n\t\t\t// TODO only add certain events ?\r\n\t\t\tthis._disposers.push(this._filters.events.onAll(this.applyFilters, this));\r\n\t\t\tthis._disposers.push(new ListDisposer(this._filters));\r\n\t\t}\r\n\t\treturn this._filters;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets required SVG attributes. Must be called every time an element is\r\n\t * redrawn so that attributes are (re)applied.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected setSVGAttributes(): void {\r\n\t\tthis.fill = this.fill;\r\n\t\tthis.opacity = this.opacity;\r\n\t\tthis.fillOpacity = this.fillOpacity;\r\n\t\tthis.stroke = this.stroke;\r\n\t\tthis.strokeOpacity = this.strokeOpacity;\r\n\t\tthis.shapeRendering = this.shapeRendering;\r\n\t\tthis.strokeDasharray = this.strokeDasharray;\r\n\t\tthis.strokeDashoffset = this.strokeDashoffset;\r\n\t\tthis.strokeLinecap = this.strokeLinecap;\r\n\t\tthis.strokeLinejoin = this.strokeLinejoin;\r\n\t\tthis.focusable = this.focusable;\r\n\t\tthis.tabindex = this.tabindex;\r\n\t\tthis.role = this.role;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets an attribute directly on an SVG element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param attribute Attribute object\r\n\t */\r\n\tprotected setSVGAttribute(attribute: ISVGAttribute): void {\r\n\t\tthis.group.attr(attribute);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an attribute directly from SVG element.\r\n\t *\r\n\t * @param attribute Attribute key to remove\r\n\t */\r\n\tprotected removeSVGAttribute(attribute: string): void {\r\n\t\tthis.group.removeAttr(attribute);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets `class` attribute of the elements SVG node.\r\n\t *\r\n\t * Uses `am4core.options.classNamePrefix`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic setClassName(): void {\r\n\r\n\t\tlet className = this.className;\r\n\t\tlet classNamePrefix = options.classNamePrefix;\r\n\r\n\t\tif (this.element) {\r\n\t\t\tthis.element.addClass(classNamePrefix + className);\r\n\t\t}\r\n\r\n\t\tthis.group.addClass(classNamePrefix + className + \"-group\");\r\n\r\n\t\tif ($type.hasValue(this.id)) {\r\n\t\t\tthis.group.addClass(classNamePrefix + this.id);\r\n\t\t}\r\n\r\n\t\tif (this.userClassName) {\r\n\t\t\tthis.group.addClass(this.userClassName);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an `id` attribute the the element and returns the id.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Element's ID\r\n\t */\r\n\tpublic uidAttr(): string {\r\n\t\tthis.setSVGAttribute({ \"id\": this.uid });\r\n\t\treturn this.uid;\r\n\t}\r\n\r\n\t/**\r\n\t * [updateClipPath description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected updateClipPath(): void {\r\n\t\tconst element = this._clipElement;\r\n\r\n\t\tif (element) {\r\n\t\t\telement.moveTo({ x: this.mask.pixelX, y: this.mask.pixelY });\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createClipPath() {\r\n\t\tif (!this._clipPath) {\r\n\t\t\tthis._clipPath = this.paper.addGroup(\"clipPath\");\r\n\t\t\tthis.paper.appendDef(this._clipPath);\r\n\t\t\tthis._disposers.push(this._clipPath);\r\n\t\t\tlet id: string = registry.getUniqueId();\r\n\t\t\tthis._clipPath.attr({ \"id\": id });\r\n\t\t\tthis.group.attr({ \"clip-path\": \"url(\\\"\" + $utils.getBaseURI() + id + \"\\\")\" });\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Applies the mask Sprite.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected applyMask(): void {\r\n\t\tlet mask = this.mask;\r\n\r\n\t\tif (this._clipPath && mask) {\r\n\t\t\t// Container\r\n\t\t\tif (mask instanceof Container) {\r\n\t\t\t\tthis._clipElement.attr({ \"width\": $math.max(0, mask.pixelWidth), \"height\": $math.max(0, mask.pixelHeight) });\r\n\r\n\t\t\t\tlet point = $utils.spritePointToSprite({ x: mask.pixelX, y: mask.pixelY }, mask.parent, this);\r\n\r\n\t\t\t\tthis._clipPath.x = point.x;\r\n\t\t\t\tthis._clipPath.y = point.y;\r\n\t\t\t}\r\n\t\t\t// Sprite\r\n\t\t\telse {\r\n\t\t\t\tif (mask.element && mask.element != this._clipElement) {\r\n\t\t\t\t\tthis._clipElement = mask.element;\r\n\t\t\t\t\tthis._clipPath.add(this._clipElement);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._clipPath.scale = mask.scale;\r\n\t\t\t\tthis._clipPath.x = mask.pixelX;\r\n\t\t\t\tthis._clipPath.y = mask.pixelY;\r\n\t\t\t\tthis._clipPath.rotation = mask.rotation;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Applies filters to the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected applyFilters(): void {\r\n\t\t// we create a separate filter for each sprite as otherwise it would be impossible to animate filter.\r\n\t\t// svg doesn't support multiple filters applied to one element, so we put all the primitives to one filterElement of a sprite.\r\n\t\tif (this._filters && this._filters.length > 0) {\r\n\r\n\t\t\tlet width = 100;\r\n\t\t\tlet height = 100;\r\n\r\n\t\t\tif (!this.filterElement) {\r\n\t\t\t\tthis.filterElement = this.paper.addGroup(\"filter\");\r\n\t\t\t\tthis._disposers.push(this.filterElement);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.filterElement.removeChildNodes();\r\n\t\t\t}\r\n\r\n\t\t\tthis.paper.appendDef(this.filterElement);\r\n\r\n\t\t\tlet id: string = \"filter-\" + this.uid;\r\n\t\t\tthis.filterElement.attr({ \"id\": id });\r\n\r\n\t\t\t$iter.each(this.filters.iterator(), (filter) => {\r\n\t\t\t\tfilter.sprite = this;\r\n\t\t\t\tfilter.paper = this.paper;\r\n\r\n\t\t\t\tthis.filterElement.attr({filterUnits:filter.filterUnits});\r\n\r\n\t\t\t\tfilter.appendPrimitives(this.filterElement);\r\n\r\n\t\t\t\tif (filter.width > width) {\r\n\t\t\t\t\twidth = filter.width;\r\n\t\t\t\t}\r\n\t\t\t\tif (filter.height > height) {\r\n\t\t\t\t\theight = filter.height;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfilter.scale = this.globalScale;\r\n\t\t\t});\r\n\r\n\t\t\tlet w = width + \"%\";\r\n\t\t\tlet h = height + \"%\";\r\n\r\n\t\t\t/* temporarily removed as it is breaking tooltips on Safari @todo come back to this\r\n\t\t\tif (this._measuredHeight <= 1) {\r\n\t\t\t\th = height + \"\";\r\n\t\t\t}\r\n\r\n\t\t\tif (this._measuredWidth <= 1) {\r\n\t\t\t\th = width + \"\";\r\n\t\t\t}*/\r\n\r\n\t\t\tthis.filterElement.attr({ \"width\": w, \"height\": h, \"x\": -(width - 100) / 2 + \"%\", \"y\": -(height - 100) / 2 + \"%\" });\r\n\r\n\t\t\tthis.group.attr({ \"filter\": \"url(\\\"\" + $utils.getBaseURI() + id + \"\\\")\" });\r\n\t\t}\r\n\t\telse if (this.filterElement) {\r\n\t\t\tthis.group.removeAttr(\"filter\");\r\n\t\t\tthis.filterElement.removeChildNodes();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [removeClipPath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected removeClipPath(): void {\r\n\t\tif (this._clipPath) {\r\n\t\t\t//this._clipPath.dispose();\r\n\t\t\tthis.removeDispose(this._clipPath);\r\n\t\t\tthis._clipPath = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [setElement description]\r\n\t *\r\n\t * @ignore\r\n\t * @todo Description\r\n\t * @param element [description]\r\n\t */\r\n\tpublic setElement(element: AMElement) {\r\n\t\tthis.element = element;\r\n\t\tthis.setSVGAttributes();\r\n\t\tthis.applyAccessibility();\r\n\t}\r\n\r\n\t/**\r\n\t * The main element for this Sprite, usually an SVG `<g>`.\r\n\t *\r\n\t * All other sub-elements are created in it.\r\n\t *\r\n\t * @param element Element\r\n\t */\r\n\tpublic set element(element: Optional<AMElement>) {\r\n\r\n\t\t// Destroy previous element if there was one before\r\n\t\tthis.removeElement();\r\n\r\n\t\t// Set new element\r\n\t\tthis._element = element;\r\n\r\n\t\t// Add element to group\r\n\t\t// Since we are adding Element to group, which is already in the\r\n\t\t// `.disposers` it will be removed automatically when Sprite is disposed\r\n\t\t// of\r\n\t\tthis.group.add(element);\r\n\r\n\t\tif (element.node instanceof SVGPathElement) {\r\n\t\t\tthis._isPath = true;\r\n\t\t}\r\n\r\n\t\t// This is needed if someone is setting element not in draw method but\r\n\t\t// from outside\r\n\t\tif (!this.invalid) {\r\n\t\t\tthis.validate();\r\n\t\t}\r\n\r\n\t\tif (options.autoSetClassName) {\r\n\t\t\tthis.setClassName();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element\r\n\t */\r\n\tpublic get element(): Optional<AMElement> {\r\n\t\treturn this._element;\r\n\t}\r\n\r\n\t/**\r\n\t * HTML container (`<div>`) which is used to place chart's `<svg>` element\r\n\t * in.\r\n\t *\r\n\t * @return Container for chart elements\r\n\t */\r\n\tpublic get svgContainer(): $type.Optional<SVGContainer> {\r\n\t\tif (this._svgContainer) {\r\n\t\t\treturn this._svgContainer;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.svgContainer;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets HTML container to add SVG and other chart elements to.\r\n\t *\r\n\t * @param svgContainer Container for chart elements\r\n\t */\r\n\tpublic set svgContainer(svgContainer: $type.Optional<SVGContainer>) {\r\n\t\tthis._svgContainer = svgContainer;\r\n\t}\r\n\r\n\t/**\r\n\t * Measures main element.\r\n\t *\r\n\t * Saves measurements into private `_bbox` property.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected measureElement() {\r\n\r\n\t\tif (this.element) {\r\n\t\t\tif (this.definedBBox) {\r\n\t\t\t\tthis._bbox = this.definedBBox;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet svgBBox: IRectangle = this.element.getBBox();\r\n\t\t\t\tthis._bbox = { x: svgBBox.x, y: svgBBox.y, width: svgBBox.width, height: svgBBox.height };\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Positions element according its center settings.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateCenter() {\r\n\t\tif (this.element) {\r\n\t\t\tlet prevElementTransform: string = this.element.transformString;\r\n\r\n\t\t\tlet bbox = this.bbox;\r\n\r\n\t\t\tlet ex = 0;\r\n\t\t\tlet ey = 0;\r\n\r\n\t\t\tlet elementX = bbox.x;\r\n\t\t\tlet elementY = bbox.y;\r\n\r\n\t\t\tlet elementWidth = bbox.width;\r\n\t\t\tlet elementHeigth = bbox.height;\r\n\r\n\t\t\tlet pixelPaddingLeft = this.pixelPaddingLeft;\r\n\t\t\tlet pixelPaddingRight = this.pixelPaddingRight;\r\n\t\t\tlet pixelPaddingTop = this.pixelPaddingTop;\r\n\t\t\tlet pixelPaddingBottom = this.pixelPaddingBottom;\r\n\r\n\t\t\t// add padding to the measured size\r\n\t\t\tlet measuredWidth = $math.max(elementWidth + pixelPaddingLeft + pixelPaddingRight, this.pixelWidth);\r\n\t\t\tlet measuredHeight = $math.max(elementHeigth + pixelPaddingTop + pixelPaddingBottom, this.pixelHeight);\r\n\r\n\t\t\t// extremes\r\n\t\t\tlet left = bbox.x;\r\n\t\t\tlet right = bbox.x + measuredWidth;\r\n\r\n\t\t\tlet top = bbox.y;\r\n\t\t\tlet bottom = bbox.y + measuredHeight;\r\n\r\n\t\t\tlet horizontalCenter = this.horizontalCenter;\r\n\t\t\tlet verticalCenter = this.verticalCenter;\r\n\r\n\t\t\tswitch (horizontalCenter) {\r\n\t\t\t\tcase \"none\":\r\n\t\t\t\t\tex = elementX + pixelPaddingLeft;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tex = pixelPaddingLeft;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"middle\":\r\n\t\t\t\t\tex = pixelPaddingLeft - (elementWidth + pixelPaddingRight + pixelPaddingLeft) / 2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tex = -pixelPaddingRight - elementWidth;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (verticalCenter) {\r\n\t\t\t\tcase \"none\":\r\n\t\t\t\t\tey = elementY + pixelPaddingTop;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\tey = pixelPaddingTop;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"middle\":\r\n\t\t\t\t\tey = pixelPaddingTop - (elementHeigth + pixelPaddingBottom + pixelPaddingTop) / 2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\tey = -pixelPaddingBottom - elementHeigth;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tthis._measuredHeight = measuredHeight;\r\n\t\t\tthis._measuredWidth = measuredWidth;\r\n\r\n\t\t\tlet x: number = $math.round(ex - elementX, this._positionPrecision, true);\r\n\t\t\tlet y: number = $math.round(ey - elementY, this._positionPrecision, true);\r\n\r\n\t\t\tthis.ex = x - pixelPaddingLeft;\r\n\t\t\tthis.ey = y - pixelPaddingTop;\r\n\r\n\t\t\tthis.maxLeft = left + x - pixelPaddingLeft;\r\n\t\t\tthis.maxRight = right + x - pixelPaddingLeft;\r\n\r\n\t\t\tthis.maxTop = top + y - pixelPaddingTop;\r\n\t\t\tthis.maxBottom = bottom + y - pixelPaddingTop;\r\n\r\n\t\t\tif (this.pixelPerfect) {\r\n\t\t\t\tx -= 0.5;\r\n\t\t\t\ty -= 0.5;\r\n\t\t\t}\r\n\r\n\t\t\tthis.element.moveTo({ x: x, y: y });\r\n\r\n\t\t\tif (prevElementTransform != this.element.transformString) {\r\n\t\t\t\tthis.dispatchImmediately(\"transformed\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the whole element.\r\n\t *\r\n\t * Returns `true` if the size has changed from the last measurement.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Did the size changed from the last measurement?\r\n\t */\r\n\tpublic measure(): boolean {\r\n\r\n\t\tthis.updateCenter();\r\n\r\n\t\tlet measuredWidth = this._measuredWidth;\r\n\t\tlet measuredHeight = this._measuredHeight;\r\n\r\n\t\t// extremes\r\n\t\tlet left = this.maxLeft;\r\n\t\tlet right = this.maxRight;\r\n\r\n\t\tlet top = this.maxTop;\r\n\t\tlet bottom = this.maxBottom;\r\n\r\n\t\t// non-parent wise size\r\n\t\tthis._measuredWidthSelf = measuredWidth;\r\n\t\tthis._measuredHeightSelf = measuredHeight;\r\n\r\n\t\tlet positionPrecision = this._positionPrecision;\r\n\r\n\t\tthis.maxLeftSelf = this.maxLeft;\r\n\t\tthis.maxRightSelf = this.maxRight;\r\n\t\tthis.maxTopSelf = this.maxTop;\r\n\t\tthis.maxBottomSelf = this.maxBottom;\r\n\r\n\t\t// if a sprite is rotated or scaled, calculate measured size after transformations\r\n\r\n\t\tif (this.rotation !== 0 || this.scale !== 1) {\r\n\r\n\t\t\t// not good to handleGlobalScale here.\r\n\t\t\tif (this.nonScalingStroke) {\r\n\t\t\t\tthis.strokeWidth = this.strokeWidth;\r\n\t\t\t}\r\n\r\n\t\t\tlet svg = this.paper.svg;\r\n\r\n\t\t\tlet matrix: SVGMatrix = svg.createSVGMatrix();\r\n\t\t\tlet rotation: number = this.rotation;\r\n\r\n\t\t\tmatrix.a = $math.cos(rotation) * this.scale;\r\n\t\t\tmatrix.c = - $math.sin(rotation) * this.scale;\r\n\t\t\tmatrix.e = 0;\r\n\t\t\tmatrix.b = $math.sin(rotation) * this.scale;\r\n\t\t\tmatrix.d = $math.cos(rotation) * this.scale;\r\n\t\t\tmatrix.f = 0;\r\n\r\n\t\t\tlet p1: SVGPoint = svg.createSVGPoint();\r\n\t\t\tp1.x = left;\r\n\t\t\tp1.y = top;\r\n\r\n\t\t\tlet p2: SVGPoint = svg.createSVGPoint();\r\n\t\t\tp2.x = right;\r\n\t\t\tp2.y = top;\r\n\r\n\t\t\tlet p3: SVGPoint = svg.createSVGPoint();\r\n\t\t\tp3.x = right;\r\n\t\t\tp3.y = bottom;\r\n\r\n\t\t\tlet p4: SVGPoint = svg.createSVGPoint();\r\n\t\t\tp4.x = left;\r\n\t\t\tp4.y = bottom;\r\n\r\n\t\t\tlet pt1: SVGPoint = p1.matrixTransform(matrix);\r\n\t\t\tlet pt2: SVGPoint = p2.matrixTransform(matrix);\r\n\t\t\tlet pt3: SVGPoint = p3.matrixTransform(matrix);\r\n\t\t\tlet pt4: SVGPoint = p4.matrixTransform(matrix);\r\n\r\n\t\t\tleft = Math.min(pt1.x, pt2.x, pt3.x, pt4.x);\r\n\t\t\tright = Math.max(pt1.x, pt2.x, pt3.x, pt4.x);\r\n\t\t\ttop = Math.min(pt1.y, pt2.y, pt3.y, pt4.y);\r\n\t\t\tbottom = Math.max(pt1.y, pt2.y, pt3.y, pt4.y);\r\n\r\n\t\t\tmeasuredWidth = right - left;\r\n\t\t\tmeasuredHeight = bottom - top;\r\n\r\n\t\t\tthis.maxLeft = $math.round(left, positionPrecision, true);\r\n\t\t\tthis.maxRight = $math.round(right, positionPrecision, true);\r\n\t\t\tthis.maxTop = $math.round(top, positionPrecision, true);\r\n\t\t\tthis.maxBottom = $math.round(bottom, positionPrecision, true);\r\n\t\t}\r\n\r\n\t\tthis._measuredWidth = $math.round(measuredWidth, positionPrecision, true);\r\n\t\tthis._measuredHeight = $math.round(measuredHeight, positionPrecision, true);\r\n\r\n\r\n\t\t// dispatch event\r\n\t\tif (this._measuredWidth != this._prevMeasuredWidth || this._measuredHeight != this._prevMeasuredHeight) {\r\n\t\t\tthis._prevMeasuredHeight = this._measuredHeight;\r\n\t\t\tthis._prevMeasuredWidth = this._measuredWidth;\r\n\r\n\t\t\t// TODO clear existing sizechanged dispatches ?\r\n\t\t\tthis.dispatch(\"sizechanged\");\r\n\r\n\t\t\tif ((this.isHover || this.showTooltipOn == \"hit\" || this.showTooltipOn == \"always\") && this.tooltip && this.tooltip.visible && ($type.hasValue(this.tooltipText) || $type.hasValue(this.tooltipHTML))) {\r\n\t\t\t\tthis.updateTooltipPosition();\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Insert this element before sibling element.\r\n\t *\r\n\t * @param sprite Target element\r\n\t * @return This element\r\n\t */\r\n\tpublic insertBefore(sprite: Sprite): Sprite {\r\n\t\tlet parent = this._parent;\r\n\r\n\t\tif (parent) {\r\n\t\t\tlet index: number = parent.children.indexOf(sprite);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tparent.children.moveValue(this, index);\r\n\t\t\t\tparent.sortChildren();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Insert this element after sibling element.\r\n\t *\r\n\t * @param sprite Target element\r\n\t * @return This element\r\n\t */\r\n\tpublic insertAfter(sprite: Sprite): Sprite {\r\n\t\tlet parent = this._parent;\r\n\r\n\t\tif (parent) {\r\n\t\t\tlet index: number = parent.children.indexOf(sprite);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tparent.children.moveValue(this, index + 1);\r\n\t\t\t\tparent.sortChildren();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the main SVG element.\r\n\t *\r\n\t * This does not destroy the whole Sprite element. To do that use\r\n\t * `dispose()` instead.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected removeElement() {\r\n\t\t// remove visual element\r\n\t\tif (this._element) {\r\n\t\t\tthis.removeDispose(this._element);\r\n\t\t\tthis._element = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative (percent) value of the X coordindate within this element.\r\n\t *\r\n\t * A relative value is a hundredth of a percent. So 100% would result in a 1\r\n\t * as relative value.\r\n\t *\r\n\t * @param value Absolute or relative X coordinate\r\n\t * @return Relative value\r\n\t */\r\n\tpublic getRelativeX(value: number | Percent): number {\r\n\t\tif (value instanceof Percent) {\r\n\t\t\treturn value.value;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn value / this._parent.innerWidth;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative (percent) value of the Y coordindate within this element.\r\n\t *\r\n\t * A relative value is a hundredth of a percent. So 100% would result in a 1\r\n\t * as relative value.\r\n\t *\r\n\t * @param value Absolute or relative Y coordinate\r\n\t * @return Relative value\r\n\t */\r\n\tpublic getRelativeY(value: number | Percent): number {\r\n\t\tif (value instanceof Percent) {\r\n\t\t\treturn value.value;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn value / this._parent.innerHeight;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an X coordinate in pixel within the element.\r\n\t *\r\n\t * If number is passed in as parameter, the same number will be returned\r\n\t * back.\r\n\t *\r\n\t * If [[Percent]] is passed in, it will be recalculated to pixels.\r\n\t *\r\n\t * @param value Absolute or relative X coordinate\r\n\t * @return X coordinate in pixels\r\n\t */\r\n\tpublic getPixelX(value: number | Percent): number {\r\n\r\n\t\t// we don't use $utils.valueToRelative as this would mean that we should access parent.innerWidth\r\n\t\t// all the time and this would result chain of the same actions and will slow down the system a lot\r\n\r\n\t\tlet pixel: number = 0;\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tpixel = value;\r\n\t\t}\r\n\t\telse if (value instanceof Percent) {\r\n\t\t\tlet relative: number = value.value;\r\n\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tpixel = $math.round(this._parent.innerWidth * relative, this._positionPrecision, true);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn pixel;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an Y coordinate in pixel within the element.\r\n\t *\r\n\t * If number is passed in as parameter, the same number will be returned\r\n\t * back.\r\n\t *\r\n\t * If [[Percent]] is passed in, it will be recalculated to pixels.\r\n\t *\r\n\t * @param value Absolute or relative Y coordinate\r\n\t * @return Y coordinate in pixels\r\n\t */\r\n\tpublic getPixelY(value: number | Percent): number {\r\n\r\n\t\t// we don't use $utils.valueToRelative as this would mean that we should access parent.innerWidth\r\n\t\t// all the time and this would result chain of the same actions and will slow down the system a lot\r\n\r\n\t\tlet pixel: number = 0;\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tpixel = value;\r\n\t\t}\r\n\t\telse if (value instanceof Percent) {\r\n\t\t\tlet relative: number = value.value;\r\n\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tpixel = $math.round(this._parent.innerHeight * relative, this._positionPrecision, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn pixel;\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the element to a specified coordinates.\r\n\t *\r\n\t * Using this method is preferred method of moving element, as it saves some\r\n\t * CPU processing power over setting `x` and `y` properties separately.\r\n\t *\r\n\t * The method respects element's center settings. The element will be\r\n\t * positioned so that `point` coordinates come in whatever \"center\" of the\r\n\t * element is, as set in `horizontalCenter` and `verticalCenter`.\r\n\t *\r\n\t * Besides moving the element, you can also at the same time scale and\r\n\t * rotate the element.\r\n\t *\r\n\t * @param point New coordinates\r\n\t * @param rotation New rotation\r\n\t * @param scale New Scale\r\n\t */\r\n\tpublic moveTo(point: IPoint, rotation?: number, scale?: number, isDragged?: boolean): void {\r\n\t\tif (this.isDragged && !isDragged) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (point) {\r\n\t\t\tif ($type.isNumber(point.x)) {\r\n\t\t\t\tthis.setPropertyValue(\"x\", $math.round(point.x, this._positionPrecision, true));\r\n\t\t\t}\r\n\t\t\tif ($type.isNumber(point.y)) {\r\n\t\t\t\tthis.setPropertyValue(\"y\", $math.round(point.y, this._positionPrecision, true));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(rotation)) {\r\n\t\t\tthis.rotation = rotation;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(scale)) {\r\n\t\t\tthis.scale = scale;\r\n\t\t}\r\n\r\n\t\t// must leave this\r\n\t\tthis.invalidatePosition();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets another [[Sprite]] element as this elements mask.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param mask A [[Sprite]] to use as mask\r\n\t */\r\n\tpublic set mask(mask: Optional<Sprite>) {\r\n\t\tif (this._mask.get() !== mask) {\r\n\t\t\t// this is good\r\n\t\t\tif (mask) {\r\n\r\n\t\t\t\tthis.createClipPath();\r\n\r\n\t\t\t\tif (!(mask instanceof Container)) {\r\n\t\t\t\t\tmask.isMeasured = false;\r\n\t\t\t\t\tif (mask.element) {\r\n\t\t\t\t\t\tthis._clipElement = mask.element;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._clipElement = this.paper.add(\"rect\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._clipElement) {\r\n\t\t\t\t\tthis._clipPath.add(this._clipElement);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._mask.set(mask, new MultiDisposer([\r\n\t\t\t\t\t//mask.addEventListener(SpriteEvent.TRANSFORMED, this.applyMask, false, this);\r\n\t\t\t\t\tmask.events.on(\"maxsizechanged\", () => { if (this.inited) { this.applyMask(); } }, undefined, false),\r\n\t\t\t\t\tmask.events.on(\"validated\", this.applyMask, this, false),\r\n\t\t\t\t\tmask.events.on(\"positionchanged\", this.applyMask, this, false)\r\n\t\t\t\t]));\r\n\r\n\t\t\t\tthis.applyMask();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._mask.reset();\r\n\t\t\t\tthis.group.removeAttr(\"clip-path\");\r\n\t\t\t\tthis.removeClipPath();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns [[Sprite]] element currently used as mask for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return A [[Sprite]] to use as mask\r\n\t */\r\n\tpublic get mask(): Optional<Sprite> {\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._mask.get();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"mask\", this._mask.get());\r\n\t\t}\r\n\t}\r\n\r\n\t// you can set IRectangle as a mask instead o a sprite. Note, the changes of the object won't be monitored\r\n\r\n\t/**\r\n\t * Instead of creating a [[Sprite]] for mask, you can just use a\r\n\t * [[Rectangle]] by setting this accessor.\r\n\t *\r\n\t * Please note that the element will not monitor any changes to the mask\r\n\t * rectangle.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param rect Mask Rectangle\r\n\t */\r\n\tpublic set maskRectangle(rect: IRectangle) {\r\n\t\tif (rect) {\r\n\r\n\t\t\tthis.createClipPath();\r\n\r\n\t\t\tif (!this._clipElement) {\r\n\t\t\t\tthis._clipElement = this.paper.add(\"rect\");\r\n\t\t\t\tthis._clipPath.add(this._clipElement);\r\n\t\t\t}\r\n\t\t\tthis._clipElement.attr({ \"width\": rect.width, \"height\": rect.height });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeClipPath();\r\n\t\t\tthis._clipElement = undefined;\r\n\t\t}\r\n\t\tthis._maskRectangle = rect;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Mask Rectangle\r\n\t */\r\n\tpublic get maskRectangle(): IRectangle {\r\n\t\treturn this._maskRectangle;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element was already measured.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Was element already measured?\r\n\t */\r\n\tpublic set isMeasured(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\r\n\t\tif (!value) {\r\n\t\t\tthis._measuredWidth = 0;\r\n\t\t\tthis._measuredHeight = 0;\r\n\t\t\t//this._pixelHeight = 0;\r\n\t\t\t//this._pixelWidth = 0;\r\n\t\t}\r\n\r\n\t\tif (this._isMeasured != value) {\r\n\t\t\tthis._isMeasured = value;\r\n\t\t\tthis.invalidatePosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Was element already measured?\r\n\t */\r\n\tpublic get isMeasured(): boolean {\r\n\t\treturn this._isMeasured;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the this element has any of its parts overlapping with another\r\n\t * element.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param sprite Second element to test again\r\n\t * @return Overlapping?\r\n\t */\r\n\tpublic hitTest(sprite: Sprite): boolean {\r\n\t\t// validate, otherwise we will not know measuredWidth and measuredHeight\r\n\t\tif (this.invalid) {\r\n\t\t\tthis.validate();\r\n\t\t}\r\n\t\tif (sprite.invalid) {\r\n\t\t\tsprite.validate();\r\n\t\t}\r\n\r\n\t\tlet ax1 = this.pixelX;\r\n\t\tlet ay1 = this.pixelY;\r\n\t\tlet ax2 = ax1 + this.measuredWidth;\r\n\t\tlet ay2 = ay1 + this.measuredHeight;\r\n\r\n\t\tlet bx1 = sprite.pixelX;\r\n\t\tlet by1 = sprite.pixelY;\r\n\t\tlet bx2 = bx1 + sprite.measuredWidth;\r\n\t\tlet by2 = by1 + sprite.measuredHeight;\r\n\r\n\t\treturn !(bx1 > ax2 || bx2 < ax1 || by1 > ay2 || by2 < ay1);\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * STATE-RELATED\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns `true` if Sprite has already finished initializing.\r\n\t *\r\n\t * @return Initialized?\r\n\t */\r\n\tpublic get inited(): boolean {\r\n\t\treturn this._inited;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if Sprite has already finished initializing and is ready.\r\n\t *\r\n\t * If this object is a [[Container]] it will wait for all of its children\r\n\t * are ready before becoming ready itself and firing a `\"ready\"` event.\r\n\t *\r\n\t * @return is ready?\r\n\t */\r\n\tpublic isReady(): boolean {\r\n\t\treturn this._ready;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a collection of element's available [[SpriteState]] entries.\r\n\t *\r\n\t * @see {@link SpriteState}\r\n\t * @return States\r\n\t */\r\n\tpublic get states(): DictionaryTemplate<string, SpriteState<this[\"_properties\"], this[\"_adapter\"]>> {\r\n\t\tif (!this._states) {\r\n\t\t\tconst state = new SpriteState<this[\"_properties\"], this[\"_adapter\"]>();\r\n\r\n\t\t\t// works\r\n\t\t\tthis._states = new DictionaryTemplate<string, SpriteState<this[\"_properties\"], this[\"_adapter\"]>>(state);\r\n\r\n\t\t\t// TODO what about removeKey ?\r\n\t\t\tthis._disposers.push(this._states.events.on(\"insertKey\", this.processState, this, false));\r\n\t\t\tthis._disposers.push(this._states.events.on(\"setKey\", this.processState, this, false));\r\n\r\n\t\t\tthis._disposers.push(new DictionaryDisposer(this._states));\r\n\t\t\tthis._disposers.push(state);\r\n\t\t}\r\n\t\treturn this._states;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a [[SpriteState]] object for \"hidden\" state.\r\n\t *\r\n\t * This is a shortcut to `this.states.getKey(\"hidden\")`.\r\n\t *\r\n\t * @return Hidden state\r\n\t */\r\n\tpublic get hiddenState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\t\tif (!this.states.getKey(\"hidden\")) {\r\n\t\t\tlet hiddenState = this.states.create(\"hidden\");\r\n\t\t\thiddenState.properties.opacity = 0;\r\n\t\t\thiddenState.properties.visible = false;\r\n\t\t}\r\n\r\n\t\treturn this.states.getKey(\"hidden\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a [[SpriteState]] object for \"default\" state.\r\n\t *\r\n\t * This is a shortcut to `this.states.getKey(\"default\")`.\r\n\t *\r\n\t * @return Hidden state\r\n\t */\r\n\tpublic get defaultState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\r\n\t\tif (!this.states.getKey(\"default\")) {\r\n\t\t\tlet defaultState = this.states.create(\"default\");\r\n\t\t\tdefaultState.properties.opacity = 1;\r\n\t\t}\r\n\r\n\t\treturn this.states.getKey(\"default\");\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if some key states are defined and updates Sprite properties\r\n\t * accordingly.\r\n\t *\r\n\t * For example if there's a state \"down\" defined for Sprite, we automatically\r\n\t * make it \"clickable\".\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event An event which caused state list update\r\n\t */\r\n\tprotected processState(event: IDictionaryEvents<string, SpriteState<this[\"_properties\"], this[\"_adapter\"]>>[\"insertKey\" | \"setKey\"]): void {\r\n\t\tlet state: SpriteState<this[\"_properties\"], this[\"_adapter\"]> = event.newValue;\r\n\t\tstate.sprite = this;\r\n\t\tstate.name = event.key;\r\n\t\tif (this.states.hasKey(\"hover\") || (this.showTooltipOn == \"hover\" && ($type.hasValue(this.tooltipHTML) || $type.hasValue(this.tooltipText)))) {\r\n\t\t\tthis.hoverable = true;\r\n\t\t}\r\n\r\n\t\tif (this.states.hasKey(\"down\") || (this.showTooltipOn == \"hover\" && ($type.hasValue(this.tooltipHTML) || $type.hasValue(this.tooltipText)))) {\r\n\t\t\tthis.clickable = true;\r\n\t\t}\r\n\r\n\t\tif (this.states.hasKey(\"focus\")) {\r\n\t\t\tthis.focusable = true;\r\n\t\t}\r\n\r\n\t\t// Propagate the new state to clones\r\n\t\tif (this.applyOnClones) {\r\n\t\t\tconst clones = this.clones.values;\r\n\t\t\tconst length = clones.length;\r\n\r\n\t\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\t\tconst clone = clones[i];\r\n\t\t\t\tif (!clone.isDisposed()) {\r\n\t\t\t\t\tclone.states.setKey(state.name, state);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list elements's animations currently being played.\r\n\t *\r\n\t * If the list has not been initialized it is created.\r\n\t *\r\n\t * @return List of animations\r\n\t */\r\n\tpublic get animations(): Array<Animation> {\r\n\t\tif (!this._animations) {\r\n\t\t\tthis._animations = [];\r\n\t\t\tthis._disposers.push(new AnimationDisposer(this._animations));\r\n\t\t}\r\n\t\treturn this._animations;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts element's local coordinates to the coordinates within the main\r\n\t * chart container.\r\n\t *\r\n\t * @param point Local point\r\n\t * @return Global point\r\n\t */\r\n\tpublic getSvgPoint(point: IPoint): IPoint {\r\n\t\ttry {\r\n\t\t\t// Calculate SVG point\r\n\t\t\tlet bbox = this.htmlContainer.getBoundingClientRect();\r\n\r\n\t\t\treturn {\r\n\t\t\t\t\"x\": point.x - bbox.left,\r\n\t\t\t\t\"y\": point.y - bbox.top\r\n\t\t\t};\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\treturn point;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and starts an [[Animation]] with given `animationOptions`.\r\n\t *\r\n\t * @see {@link Animation} for additional information about available options\r\n\t * @param animationOptions Animation options\r\n\t * @param duration Duration in milliseconds\r\n\t * @param easing Easing function\r\n\t * @return Animation instance\r\n\t */\r\n\tpublic animate(animationOptions: ISpriteAnimationOptions[] | ISpriteAnimationOptions, duration: number, easing?: (value: number) => number): Animation {\r\n\t\treturn new Animation(this, animationOptions, duration, easing).start();\r\n\t}\r\n\r\n\t/**\r\n\t * Applies a [[SpriteState]] on this element.\r\n\t *\r\n\t * The first parameter can either be a name state or a [[SpriteState]]\r\n\t * instance.\r\n\t *\r\n\t * When run, this method will apply SVG properties defined in a\r\n\t * [[SpriteState]], but only those that are relevant to this particular\r\n\t * element, i.e. are in the `properties` array.\r\n\t *\r\n\t * @see {@link SpriteState}\r\n\t * @param value A state - name key or instance\r\n\t * @param transitionDuration Duration of the transition between current and new state\r\n\t * @param easing An easing function\r\n\t */\r\n\tpublic setState(value: string | SpriteState<this[\"_properties\"], this[\"_adapter\"]>, transitionDuration?: number, easing?: (value: number) => number): $type.Optional<Animation> {\r\n\t\tlet state: Optional<SpriteState<this[\"_properties\"], this[\"_adapter\"]>>;\r\n\t\tif (value instanceof SpriteState) {\r\n\t\t\tthis.states.setKey(value.name, value);\r\n\t\t\tstate = value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstate = this.states.getKey(value);\r\n\t\t\tif (!state) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// stop previous transition\r\n\t\t// not good - foe expample, we are animating to some \"active\" state and in them middle \"hover\" state happens. then \"active\" stat won't be applied\r\n\t\t//if (this._transition) {\r\n\t\t//this._transition.stop();\r\n\t\t//}\r\n\r\n\t\tif (state.name == \"hover\") {\r\n\t\t\tif (this.isHidden) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.isHover = true;\r\n\t\t}\r\n\r\n\t\tif (state.name == \"hidden\") {\r\n\t\t\tthis.isHiding = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (!this.visible) {\r\n\t\t\t\tthis.setVisibility(state.properties.visible || this.defaultState.properties.visible);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (state.name == \"active\") {\r\n\t\t\tthis.isActive = true;\r\n\t\t}\r\n\t\t// we do not set isActive = false here if it's not active, but container does that if setStateOnChildren = true\r\n\r\n\r\n\t\tif (!$type.isNumber(transitionDuration)) {\r\n\t\t\ttransitionDuration = state.transitionDuration;\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(easing)) {\r\n\t\t\teasing = state.transitionEasing;\r\n\t\t}\r\n\r\n\t\treturn this.transitTo(state, transitionDuration, easing);\r\n\t}\r\n\r\n\t/**\r\n\t * Applies proper state based on the condition of the element. A condition is\r\n\t * deducted in this order:\r\n\t * * \"hover\" if Sprite has currently any pointers over it\r\n\t * * \"down\" if Sprite has any pointers (touch or mouse) currently pressed over it\r\n\t * * \"focus\" if Sprite has currently got focus (accessibility)\r\n\t * * \"hidden\" if Sprite is currently hidden\r\n\t *\r\n\t * Returns an [[Animation]] object, which is handling gradual transition from\r\n\t * current values of properties, to the new target state(s).\r\n\t *\r\n\t * @param duration Duration for the animation (ms)\r\n\t * @return [[Animation]] object which is handling the transition\r\n\t */\r\n\tpublic applyCurrentState(duration?: number): $type.Optional<Animation> {\r\n\r\n\t\t//if (!this.isHidden) { // this was done for hover state not to take effect if \"hidden\" is actually visible, need to think about it.\r\n\r\n\t\tlet animation: $type.Optional<Animation> = this.setState(this.defaultState, duration);\r\n\r\n\t\tif (this.isHover) {\r\n\t\t\tanimation = this.setState(\"hover\", duration);\r\n\t\t}\r\n\r\n\t\tif (this.isDown && this.interactions.downPointers.length) {\r\n\t\t\tanimation = this.setState(\"down\", duration);\r\n\t\t}\r\n\r\n\t\tthis.isFocused = this.isFocused;\r\n\r\n\t\tif (this.isActive) {\r\n\t\t\tanimation = this.setState(\"active\", duration);\r\n\t\t\tif (this.isHover && this.states.hasKey(\"hoverActive\")) {\r\n\t\t\t\tanimation = this.setState(\"hoverActive\", duration);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn animation;\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Starts an [[Animation]] of the properties to specific values as they are\r\n\t * set in `state`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param state Target State\r\n\t * @param duration Duration in milliseconds\r\n\t * @param easing Easing function\r\n\t * @return Transition Animation\r\n\t */\r\n\tprotected transitTo(state: SpriteState<this[\"_properties\"], this[\"_adapter\"]>, duration: number, easing?: (value: number) => number): Optional<Animation> {\r\n\t\t// Init\r\n\t\tlet options: ISpriteAnimationOptions[] = [],\r\n\t\t\tpropValues = state.allValues,\r\n\t\t\ttransition: Optional<Animation>;\r\n\r\n\t\t// todo: do this for numeric/color properties only?\r\n\t\t// @todo use state.getPropertyValue instead\r\n\t\t$object.each(propValues, (propertyName, finalValue) => {\r\n\t\t\tlet currentValue: any = (<any>this)[propertyName];\r\n\t\t\t// save current value to default state. this solves a big problem where values must be set both on sprite and default state\r\n\t\t\tif (finalValue != currentValue && this.defaultState.properties[propertyName] == undefined) {\r\n\t\t\t\tthis.defaultState.properties[propertyName] = currentValue;\r\n\t\t\t}\r\n\r\n\t\t\t//if (finalValue != currentValue && $type.hasValue(finalValue)) {\r\n\t\t\tif (<any>finalValue != \"__unset\") {\r\n\t\t\t\tlet option: ISpriteAnimationOptions = { from: currentValue, to: <any>finalValue, property: propertyName };\r\n\t\t\t\toptions.push(option);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (options.length > 0) {\r\n\t\t\ttransition = this.animate(options, duration, easing);\r\n\t\t\tif (transition && !transition.isFinished()) {\r\n\t\t\t\t// TODO should this use events.once ?\r\n\t\t\t\t// TODO push onto _disposers array ?\r\n\t\t\t\tthis._disposers.push(transition.events.on(\"animationended\", () => {\r\n\t\t\t\t\tthis.dispatchImmediately(\"transitionended\");\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.dispatchImmediately(\"transitionended\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// apply filters if set\r\n\t\tif (state.filters.length > 0) {\r\n\t\t\tlet newFilters: Filter[] = [];\r\n\t\t\t// check for the same filters\r\n\t\t\t$iter.each(state.filters.iterator(), (stateFilter) => {\r\n\t\t\t\tlet newFilter: Filter = <Filter>stateFilter.clone();\r\n\t\t\t\tnewFilters.push(newFilter);\r\n\t\t\t\tlet animationOptions: IAnimationOptions[] = [];\r\n\r\n\t\t\t\t$iter.each(this.filters.iterator(), (currentFilter) => {\r\n\t\t\t\t\t// if we have the same filters\r\n\t\t\t\t\tif (currentFilter.className == newFilter.className) {\r\n\r\n\t\t\t\t\t\tif (!$iter.contains(this.defaultState.filters.iterator(), (x) => x.className === newFilter.className)) {\r\n\t\t\t\t\t\t\tthis.defaultState.filters.push(currentFilter);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$object.each(newFilter.properties, (propertyName, newValue) => {\r\n\t\t\t\t\t\t\tlet currentValue = (<any>currentFilter).properties[propertyName];\r\n\t\t\t\t\t\t\t// if values are not the same, push to animation options array\r\n\t\t\t\t\t\t\tif (currentValue != newValue) {\r\n\t\t\t\t\t\t\t\tanimationOptions.push({ property: propertyName, from: currentValue, to: newValue });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t// animate to new value\r\n\t\t\t\tnewFilter.animate(animationOptions, duration, easing);\r\n\t\t\t});\r\n\t\t\tthis.filters.clear();\r\n\t\t\tthis.filters.pushAll(newFilters);\r\n\t\t}\r\n\r\n\t\treturn transition;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if Sprite is currently transiting from one state/value to\r\n\t * another.\r\n\t *\r\n\t * @return Is in transition?\r\n\t */\r\n\tpublic isInTransition(): boolean {\r\n\t\treturn this.animations.length > 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element has a mouse pointer currently hovering\r\n\t * over it, or if it has any touch pointers pressed on it.\r\n\t *\r\n\t * @param value Is hovered?\r\n\t */\r\n\tpublic set isHover(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (value !== this.isHover) {\r\n\t\t\tif (this.isInteractive()) {\r\n\t\t\t\tthis.interactions.isHover = value;\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.handleOver();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.interactions.isRealHover = false;\r\n\t\t\t\t\tthis.handleOut();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns indicator if this element has a mouse pointer currently hovering\r\n\t * over it, or if it has any touch pointers pressed on it.\r\n\t *\r\n\t * @return Is hovered?\r\n\t */\r\n\tpublic get isHover(): boolean {\r\n\t\tif (this.isInteractive()) {\r\n\t\t\treturn this.interactions.isHover;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns indicator if this element is being dragged at the moment.\r\n\t *\r\n\t * @return Is dragged?\r\n\t */\r\n\tpublic get isDragged(): boolean {\r\n\t\treturn this._isDragged;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns indicator if this element is being resized at the moment.\r\n\t *\r\n\t * @return Is resized?\r\n\t */\r\n\tpublic get isResized(): boolean {\r\n\t\treturn this._isResized;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element has any pointers (mouse or touch) pressing down\r\n\t * on it.\r\n\t *\r\n\t * @param value Is down?\r\n\t */\r\n\tpublic set isDown(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.isInteractive() && this.isDown != value) {\r\n\t\t\tthis.interactions.isDown = value;\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.handleDown();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.handleUp();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is down?\r\n\t */\r\n\tpublic get isDown(): boolean {\r\n\t\tif (this.isInteractive()) {\r\n\t\t\treturn this.interactions.isDown;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element is focused (possibly by tab navigation).\r\n\t *\r\n\t * @param value Is focused?\r\n\t */\r\n\tpublic set isFocused(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.focusable && this.isFocused != value) {\r\n\t\t\tif (this.isInteractive()) {\r\n\t\t\t\tthis.interactions.isFocused = value;\r\n\t\t\t\tif (value === true) {\r\n\t\t\t\t\tthis.handleFocus();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.handleBlur();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is focused?\r\n\t */\r\n\tpublic get isFocused(): boolean {\r\n\t\tif (this.isInteractive()) {\r\n\t\t\treturn this.interactions.isFocused;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this element is currently active (toggled on) or not\r\n\t * (toggled off).\r\n\t *\r\n\t * @param value Is active?\r\n\t */\r\n\tpublic set isActive(value: boolean) {\r\n\t\tthis.setActive(value);\r\n\t}\r\n\r\n\r\n\tprotected setActive(value: boolean) {\r\n\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this._isActive !== value) {\r\n\t\t\tthis._isActive = value;\r\n\t\t\tif (value && this.states.hasKey(\"active\")) {\r\n\t\t\t\tthis.setState(\"active\");\r\n\t\t\t\tif (this.isHover && this.states.hasKey(\"hoverActive\")) {\r\n\t\t\t\t\tthis.setState(\"hoverActive\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCurrentState();\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchImmediately(\"toggled\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is active?\r\n\t */\r\n\tpublic get isActive(): boolean {\r\n\t\treturn this._isActive;\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if element is disabled.\r\n\t *\r\n\t * A disabled element is hidden, and is removed from any processing, layout\r\n\t * calculations, and generally treated as if it does not exist.\r\n\t *\r\n\t * The element itself is not destroyed, though. Setting this back to `false`,\r\n\t * will \"resurrect\" the element.\r\n\t *\r\n\t * @param value Disabled?\r\n\t */\r\n\tpublic set disabled(value: boolean) {\r\n\t\tthis.setDisabled(value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Disabled?\r\n\t */\r\n\tpublic get disabled(): boolean {\r\n\t\t//if(this._internalDisabled){\r\n\t\t//\treturn true;\r\n\t\t//}\r\n\t\tlet current = this.getPropertyValue(\"disabled\");\r\n\t\tif ($type.hasValue(current)) {\r\n\t\t\treturn current;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.disabled;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.disabled;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tlet current = this.getPropertyValue(\"disabled\");\r\n\t\tif (current != value) {\r\n\t\t\tthis.setPropertyValue(\"disabled\", value, true);\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.parent = this._parent;\r\n\t\t\t\tthis.removeFromInvalids();\r\n\t\t\t\tthis.group.attr({ \"display\": \"none\" });\r\n\t\t\t\tthis.dispatch(\"disabled\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._parent) {\r\n\t\t\t\t\tlet group = <Group>this._parent.element;\r\n\t\t\t\t\tif (!group.hasChild(this.group)) {\r\n\t\t\t\t\t\tgroup.add(this.group);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this instanceof Container) {\r\n\t\t\t\t\tthis.deepInvalidate();\r\n\t\t\t\t\tif (this._background) {\r\n\t\t\t\t\t\tthis._background.invalidate();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.invalidate();\r\n\t\t\t\t}\r\n\t\t\t\tif (!this.__disabled) {\r\n\t\t\t\t\tthis.removeSVGAttribute(\"display\");\r\n\t\t\t\t}\r\n\t\t\t\tthis.dispatch(\"enabled\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatch(\"transformed\");\r\n\t\t\tsystem.requestFrame();\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Internal disable method.\r\n\t *\r\n\t * Do not use it for disabling elements. Use `disabled` accessor instead.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Disabled?\r\n\t */\r\n\tpublic set __disabled(value: boolean) {\r\n\t\tif (this._internalDisabled != value) {\r\n\t\t\tthis._internalDisabled = value;\r\n\t\t\tthis._updateDisabled = true;\r\n\t\t\tthis.invalidatePosition(); // better use this instead of invalidate()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @return Disabled?\r\n\t */\r\n\tpublic get __disabled(): boolean {\r\n\t\treturn this._internalDisabled;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * FORMATTERS AND OTHER EXTERNAL HELPERS\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * A [[NumberFormatter]] instance.\r\n\t *\r\n\t * This is used to format numbers.\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.numberFormatter.numberFormat = \"#,###.#####\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.numberFormatter.numberFormat = \"#,###.#####\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"numberFormatter\": {\r\n\t * \"numberFormat\": \"#,###.#####\"\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * You can set a separate instance of formatter for each\r\n\t * individual element. However that would be unnecessary overhead as\r\n\t * all elements would automatically inherit formatter from their parents,\r\n\t * all the way up to the chart itself.\r\n\t *\r\n\t *\r\n\t * @see {@link NumberFormatter} for more info on formatting numbers\r\n\t * @param value An instance of NumberFormatter\r\n\t */\r\n\tpublic set numberFormatter(value: NumberFormatter) {\r\n\t\tthis._numberFormatter = value;\r\n\t\tthis._numberFormatter.language = this.language;\r\n\t}\r\n\r\n\t/**\r\n\t * @return A [[NumberFormatter]] instance to be used\r\n\t */\r\n\tpublic get numberFormatter(): NumberFormatter {\r\n\t\tif (this._numberFormatter) {\r\n\t\t\treturn this._numberFormatter;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.numberFormatter;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.numberFormatter;\r\n\t\t}\r\n\t\tthis._numberFormatter = new NumberFormatter();\r\n\t\tthis._numberFormatter.language = this.language;\r\n\t\treturn this.numberFormatter;\r\n\t}\r\n\r\n\t/**\r\n\t * A [[DateFormatter]] instance.\r\n\t *\r\n\t * This is used to format dates, e.g. on a date axes, balloons, etc.\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.dateFormatter.dateFormat = \"yyyy-MM-dd\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.dateFormatter.dateFormat = \"yyyy-MM-dd\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"dateFormatter\": {\r\n\t * \"dateFormat\": \"yyyy-MM-dd\"\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * You can set a separate instance of formatter for each\r\n\t * individual element. However that would be unnecessary overhead as\r\n\t * all elements would automatically inherit formatter from their parents,\r\n\t * all the way up to the chart itself.\r\n\t *\r\n\t * @see {@link DateFormatter} for more info on dates formatting\r\n\t * @param value An instance of DateFormatter\r\n\t */\r\n\tpublic set dateFormatter(value: DateFormatter) {\r\n\t\tthis._dateFormatter = value;\r\n\t\tthis._dateFormatter.language = this.language;\r\n\t}\r\n\r\n\t/**\r\n\t * @return An instance of DateFormatter\r\n\t */\r\n\tpublic get dateFormatter(): DateFormatter {\r\n\t\tif (this._dateFormatter) {\r\n\t\t\treturn this._dateFormatter;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.dateFormatter;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.dateFormatter;\r\n\t\t}\r\n\t\tthis._dateFormatter = new DateFormatter();\r\n\t\tthis._dateFormatter.language = this.language;\r\n\t\treturn this.dateFormatter;\r\n\t}\r\n\r\n\t/**\r\n\t * A [[DurationFormatter]] instance.\r\n\t *\r\n\t * This is used to format numbers as durations, e.g. on a value axes.\r\n\t *\r\n\t * You can set a separate instance of formatter for each\r\n\t * individual element. However that would be unnecessary overhead as\r\n\t * all elements would automatically inherit formatter from their parents,\r\n\t * all the way up to the chart itself.\r\n\t *\r\n\t * @see {@link DurationFormatter} for more info on durations\r\n\t * @param value An instance of DurationFormatter\r\n\t */\r\n\tpublic set durationFormatter(value: DurationFormatter) {\r\n\t\tthis._durationFormatter = value;\r\n\t\tthis._durationFormatter.language = this.language;\r\n\t}\r\n\r\n\t/**\r\n\t * @return An instance of DurationFormatter\r\n\t */\r\n\tpublic get durationFormatter(): DurationFormatter {\r\n\t\tif (this._durationFormatter) {\r\n\t\t\treturn this._durationFormatter;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.durationFormatter;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.durationFormatter;\r\n\t\t}\r\n\t\tthis._durationFormatter = new DurationFormatter();\r\n\t\tthis._durationFormatter.language = this.language;\r\n\t\treturn this.durationFormatter;\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Language]] instance to use for translations.\r\n\t *\r\n\t * Normally it is enough to set language for the top-most element - chart.\r\n\t *\r\n\t * All other element child elements will automatically re-use that language\r\n\t * object.\r\n\t *\r\n\t * @param value An instance of Language\r\n\t */\r\n\tpublic set language(value: Language) {\r\n\t\tif (this._language.get() !== value) {\r\n\t\t\tthis._language.set(value, value.events.on(\"localechanged\", (ev) => {\r\n\t\t\t\tif (this._numberFormatter) {\r\n\t\t\t\t\tthis._numberFormatter.language = this.language;\r\n\t\t\t\t}\r\n\t\t\t\tif (this._dateFormatter) {\r\n\t\t\t\t\tthis._dateFormatter.language = this.language;\r\n\t\t\t\t}\r\n\t\t\t\tif (this._durationFormatter) {\r\n\t\t\t\t\tthis._durationFormatter.language = this.language;\r\n\t\t\t\t}\r\n\t\t\t\tif (this._exporting.get()) {\r\n\t\t\t\t\tconst exporting = this._exporting.get();\r\n\t\t\t\t\texporting.numberFormatter.language = this.language;\r\n\t\t\t\t\texporting.dateFormatter.language = this.language;\r\n\t\t\t\t\texporting.durationFormatter.language = this.language;\r\n\t\t\t\t\texporting.language = this.language;\r\n\t\t\t\t}\r\n\t\t\t\tif (this instanceof Container) {\r\n\t\t\t\t\tthis.deepInvalidate();\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return An instance of Language\r\n\t */\r\n\tpublic get language(): Language {\r\n\t\tlet language = this._language.get();\r\n\t\tif (language) {\r\n\t\t\treturn language;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.language;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.language;\r\n\t\t}\r\n\t\tlanguage = new Language();\r\n\t\tthis.language = language;\r\n\t\treturn language;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * DATA-RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Parses the string for meta tags `{tag}` and replaces them with a real\r\n\t * value. Supports straight up tags referring to the field in data, i.e.\r\n\t * `{value}` or tags with additional formatting info. E.g.:\r\n\t *\r\n\t * ```Text\r\n\t * {myfield.formatDate(\"yyyy-MM-dd\")}\r\n\t * {myfield.formatDate()}\r\n\t * {myfield.formatNumber(\"#,####.00\")}\r\n\t * {myfield.formatNumber()}\r\n\t * {myField.formatDuration(\"mm:ss\")}\r\n\t * ```\r\n\t *\r\n\t * Etc.\r\n\t *\r\n\t * This method Will automatically detect and use proper formatter for the\r\n\t * value.\r\n\t *\r\n\t * The source value will be looked up in various places: (in order)\r\n\t * * Sprite's own `dataItem`\r\n\t * * Sprite's properties\r\n\t * * Parent's `dataItem`\r\n\t * * Parent's properties\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param string A string to format\r\n\t * @param dataItem DataItem\r\n\t * @return Formatted string\r\n\t */\r\n\r\n\tpublic populateString(string: string, dataItem?: DataItem): string {\r\n\t\tif ($type.hasValue(string)) {\r\n\t\t\tstring = $type.castString(string);\r\n\t\t\tstring = getTextFormatter().escape(string);\r\n\t\t\tlet tags = string.match(/\\{([^}]+)\\}/g);\r\n\t\t\tlet i;\r\n\t\t\tif (tags) {\r\n\t\t\t\tfor (i = 0; i < tags.length; i++) {\r\n\t\t\t\t\tlet tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\r\n\t\t\t\t\tlet value = this.getTagValue(tag, \"\", dataItem);\r\n\r\n\t\t\t\t\tif (!$type.hasValue(value)) {\r\n\t\t\t\t\t\tvalue = \"\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstring = string.split(tags[i]).join(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstring = getTextFormatter().unescape(string);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstring = \"\";\r\n\t\t}\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn string;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"populateString\", string);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the value from data item and formats it according to specified format.\r\n\t *\r\n\t * If `format` is specified, it will use its contents to choose formatter for\r\n\t * the value. Otherwise it will select formatter accordingly to actual value\r\n\t * type.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Ability to force certain formatter on known numeric and date values\r\n\t * @see {@link NumberFormatter}\r\n\t * @see {@link DateFormatter}\r\n\t * @see {@link DurationFormatter}\r\n\t * @param tagName Tag name to replace\r\n\t * @param format Format to use\r\n\t * @param dataItem DataItem\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic getTagValue(tagName: string, format?: string, dataItem?: DataItem): string {\r\n\t\tlet value: any;\r\n\t\tif (!$type.hasValue(dataItem)) {\r\n\t\t\tdataItem = this.dataItem;\r\n\t\t}\r\n\r\n\t\t// Parse parts\r\n\t\tlet parts: any[] = [];\r\n\t\tlet reg = /([^.]+)\\(([^)]*)\\)|([^.]+)/g;;\r\n\t\tlet matches;\r\n\r\n\t\twhile (true) {\r\n\t\t\tmatches = reg.exec(tagName);\r\n\r\n\t\t\tif (matches === null) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (matches[3]) {\r\n\t\t\t\t// Simple property\r\n\t\t\t\tparts.push({\r\n\t\t\t\t\tprop: matches[3]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Method\r\n\t\t\t\t// Parse parameters\r\n\t\t\t\tlet params: any[] = [];\r\n\t\t\t\tif ($utils.trim(matches[2]) != \"\") {\r\n\t\t\t\t\tlet reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\r\n\t\t\t\t\tlet matches2;\r\n\r\n\t\t\t\t\twhile (true) {\r\n\t\t\t\t\t\tmatches2 = reg2.exec(matches[2]);\r\n\r\n\t\t\t\t\t\tif (matches2 === null) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparams.push(matches2[1] || matches2[2] || matches2[3])\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tparts.push({\r\n\t\t\t\t\tmethod: matches[1],\r\n\t\t\t\t\tparams: params\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// Check if we can retrieve the value from data item\r\n\t\tif (dataItem) {\r\n\r\n\r\n\t\t\t// Check values\r\n\t\t\tvalue = this.getTagValueFromObject(parts, dataItem.values);\r\n\r\n\t\t\t// Check properties\r\n\t\t\tif (!$type.hasValue(value) || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and wont't get to the dateX date.\r\n\t\t\t\tvalue = this.getTagValueFromObject(parts, dataItem);\r\n\t\t\t}\r\n\r\n\t\t\t// Check data context\r\n\t\t\tlet dataContext: any = dataItem.dataContext;\r\n\t\t\tif (!$type.hasValue(value) && dataContext) {\r\n\t\t\t\tvalue = this.getTagValueFromObject(parts, dataItem.dataContext);\r\n\r\n\t\t\t\t// scond data context level sometimes exist (tree map)\r\n\t\t\t\tif (!$type.hasValue(value) && dataContext.dataContext) {\r\n\t\t\t\t\tvalue = this.getTagValueFromObject(parts, dataContext.dataContext);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check component's data item\r\n\t\t\tif (!$type.hasValue(value) && dataItem.component && dataItem.component.dataItem !== dataItem) {\r\n\t\t\t\tvalue = dataItem.component.getTagValue(tagName, format);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Check sprite's properties\r\n\t\tif (!$type.hasValue(value)) {\r\n\t\t\tvalue = this.getTagValueFromObject(parts, this.populateStringFrom || <any>this);\r\n\t\t}\r\n\r\n\t\t// Finally, check the parent\r\n\t\tif (!$type.hasValue(value) && this._parent) {\r\n\t\t\tvalue = this._parent.getTagValue(tagName, format);\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Tries to retrieve values from properties of any object, then applies\r\n\t * proper formatting to it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (improve)\r\n\t * @param parts Properties ant methods to access\r\n\t * @param object Source object\r\n\t * @param format A specific format to apply\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic getTagValueFromObject(parts: any[], object: any, format?: string): any {\r\n\t\tlet current: any = object;\r\n\t\tlet formatApplied = false;\r\n\t\tfor (let i = 0, len = parts.length; i < len; i++) {\r\n\t\t\tlet part = parts[i];\r\n\t\t\tif (part.prop) {\r\n\t\t\t\t// Regular property\r\n\t\t\t\tcurrent = current[part.prop];\r\n\t\t\t\tif (!$type.hasValue(current)) {\r\n\t\t\t\t\t// Not set, return undefined\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Method\r\n\r\n\t\t\t\tswitch (part.method) {\r\n\t\t\t\t\tcase \"formatNumber\":\r\n\t\t\t\t\t\tlet numberValue = $utils.anyToNumber(current);\r\n\t\t\t\t\t\tif ($type.hasValue(numberValue)) {\r\n\t\t\t\t\t\t\tcurrent = this.numberFormatter.format(\r\n\t\t\t\t\t\t\t\tnumberValue,\r\n\t\t\t\t\t\t\t\tformat || part.params[0] || undefined\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tformatApplied = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"formatDate\":\r\n\t\t\t\t\t\tlet dateValue;\r\n\t\t\t\t\t\tif ($type.isString(current)) {\r\n\t\t\t\t\t\t\tdateValue = this.dateFormatter.parse(current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tdateValue = $utils.anyToDate(current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\r\n\t\t\t\t\t\t\t// Was not able to get date out of value, quitting and letting\r\n\t\t\t\t\t\t\t// calling method try another value\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($type.hasValue(dateValue)) {\r\n\t\t\t\t\t\t\tcurrent = this.dateFormatter.format(\r\n\t\t\t\t\t\t\t\tdateValue,\r\n\t\t\t\t\t\t\t\tformat || part.params[0] || undefined\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tformatApplied = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"formatDuration\":\r\n\t\t\t\t\t\tlet durationValue = $utils.anyToNumber(current);\r\n\t\t\t\t\t\tif ($type.hasValue(durationValue)) {\r\n\t\t\t\t\t\t\tcurrent = this.durationFormatter.format(\r\n\t\t\t\t\t\t\t\tdurationValue,\r\n\t\t\t\t\t\t\t\tformat || part.params[0] || undefined,\r\n\t\t\t\t\t\t\t\tpart.params[1] || undefined\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tformatApplied = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"urlEncode\":\r\n\t\t\t\t\tcase \"encodeURIComponent\":\r\n\t\t\t\t\t\tcurrent = encodeURIComponent(current);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif (current[part.method]) {\r\n\t\t\t\t\t\t\tcurrent[part.method].apply(this, part.params);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Apply default format if it wasn't applied explicitly\r\n\t\tif (!formatApplied) {\r\n\r\n\t\t\tlet formatParts = [{\r\n\t\t\t\tmethod: \"\",\r\n\t\t\t\tparams: format\r\n\t\t\t}];\r\n\r\n\t\t\tif (!$type.hasValue(format)) {\r\n\r\n\t\t\t\t// Format is not set\r\n\t\t\t\t// Determine from the type of the value\r\n\t\t\t\tif ($type.isNumber(current)) {\r\n\t\t\t\t\tformatParts[0].method = \"formatNumber\";\r\n\t\t\t\t\tformatParts[0].params = \"\";\r\n\t\t\t\t}\r\n\t\t\t\telse if ($type.isDate(current)) {\r\n\t\t\t\t\tformatParts[0].method = \"formatDate\";\r\n\t\t\t\t\tformatParts[0].params = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// Format set\r\n\t\t\t\t// Try to determine formatter based on the format\r\n\t\t\t\tlet formatterType: string = $utils.getFormat(format);\r\n\r\n\t\t\t\t// format\r\n\t\t\t\tif (formatterType === $strings.NUMBER) {\r\n\t\t\t\t\tformatParts[0].method = \"formatNumber\";\r\n\t\t\t\t}\r\n\t\t\t\telse if (formatterType === $strings.DATE) {\r\n\t\t\t\t\tformatParts[0].method = \"formatDate\";\r\n\t\t\t\t}\r\n\t\t\t\telse if (formatterType === $strings.DURATION) {\r\n\t\t\t\t\tformatParts[0].method = \"formatDuration\";\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Apply format\r\n\t\t\tif (formatParts[0].method) {\r\n\t\t\t\tcurrent = this.getTagValueFromObject(formatParts, current);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn current;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * A [[DataItem]] to use as element's data source.\r\n\t *\r\n\t * @todo Review type\r\n\t * @param dataItem DataItem\r\n\t */\r\n\tpublic set dataItem(dataItem: this[\"_dataItem\"]) {\r\n\t\t//an not use this[\"_dataItem\"] here, as we return parent data item if this sprite doesn't have one.\r\n\t\t// @todo:think about it\r\n\t\tthis.setDataItem(dataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [[DataItem]]\r\n\t */\r\n\tpublic get dataItem(): this[\"_dataItem\"] {\r\n\t\tif (!this._dataItem) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.dataItem;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.dataItem;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._dataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets currently used [[DataItem]].\r\n\t *\r\n\t * If the element has also `configField` set, it will also look for any\r\n\t * config in DataItem's data context to apply to this element.\r\n\t *\r\n\t * @param dataItem DataItem\r\n\t */\r\n\tprotected setDataItem(dataItem: DataItem) {\r\n\t\tif (this._dataItem != dataItem) {\r\n\t\t\tthis._dataItem = dataItem;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tif (this.configField) {\r\n\t\t\t\t\tlet dataContext: any = dataItem.dataContext;\r\n\t\t\t\t\tif (dataContext) {\r\n\t\t\t\t\t\tthis.config = dataContext[this.configField];\r\n\t\t\t\t\t\tif (!this.config && dataContext.dataContext) {\r\n\t\t\t\t\t\t\tthis.config = dataContext.dataContext[this.configField];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet dataContext = <any>dataItem.dataContext;\r\n\r\n\t\t\t\tif (dataContext) {\r\n\r\n\t\t\t\t\tlet dataContext2 = dataContext.dataContext;\r\n\r\n\t\t\t\t\t$object.each(this.propertyFields, (propertyName, fieldValue) => {\r\n\t\t\t\t\t\tif ($type.hasValue(dataContext[fieldValue])) {\r\n\t\t\t\t\t\t\tlet anyThis = <any>this;\r\n\t\t\t\t\t\t\tanyThis[propertyName] = dataContext[fieldValue];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (dataContext2) {\r\n\t\t\t\t\t\t\t\tlet value = dataContext2[fieldValue];\r\n\t\t\t\t\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\t\t\t\t\tlet anyThis = <any>this;\r\n\t\t\t\t\t\t\t\t\tanyThis[propertyName] = value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * PROPERTY UTILITIES\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns element's property value.\r\n\t *\r\n\t * Will check if there are any bindings with [[DataItem]].\r\n\t *\r\n\t * Will also apply any adapters bound to `propertyName`.\r\n\t *\r\n\t * @param propertyName Property name\r\n\t * @return Property value\r\n\t */\r\n\tpublic getPropertyValue<Key extends keyof this[\"_properties\"]>(propertyName: Key): this[\"_properties\"][Key] {\r\n\t\tlet propValue: this[\"_properties\"][Key] = this.properties[propertyName];\r\n\r\n\t\t// Apply adapter\r\n\t\tif (!this._isTemplate) {\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\tpropValue = this._adapterO.apply(propertyName, <any>propValue);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn propValue;\r\n\t}\r\n\r\n\r\n\tprotected setColorProperty<Key extends keyof this[\"properties\"]>(property: Key, value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>, invalidate?: boolean): boolean {\r\n\t\tlet currentValue = this.properties[property];\r\n\t\tif (value instanceof Color && currentValue instanceof Color && value.toString() == currentValue.toString()) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.setPropertyValue(property, value, invalidate);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected setPercentProperty<Key extends keyof this[\"properties\"]>(property: Key, value: Percent | number, invalidate?: boolean, transform?: boolean, precision?: number, floor?: boolean): boolean {\r\n\t\tvalue = $type.toNumberOrPercent(value);\r\n\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tif($type.isNumber(precision)){\r\n\t\t\t\tvalue = $math.round(value, precision, floor);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.setPropertyValue(property, value, invalidate, transform);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet currentValue = this.properties[property];\r\n\r\n\t\t\tif (value instanceof Percent && currentValue instanceof Percent && value.value == currentValue.value) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.setPropertyValue(property, value, invalidate, transform);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets elements's property value. Will also propagate the same property value\r\n\t * on all element's clones.\r\n\t *\r\n\t * @param property Property\r\n\t * @param value Value\r\n\t * @param invalidate Should the sprite be invalidated, cause it's re-rendering\r\n\t * @param transform Re-apply positioning of the element\r\n\t * @return Did the value change? It will return `true` if the new value and the old value of the property are not the same\r\n\t * @todo Review propagation to clones. Right now we simply check if clone is disposed before setting the same property on it. It's better to remove from clone list altogether.\r\n\t */\r\n\tpublic setPropertyValue<Key extends keyof this[\"properties\"]>(property: Key, value: any, invalidate?: boolean, transform?: boolean): boolean {\r\n\t\tif (this.properties[property] !== value && !this.isDisposed()) {\r\n\t\t\tthis.properties[property] = value;\r\n\r\n\t\t\tif (this.events.isEnabled(\"propertychanged\")) {\r\n\r\n\t\t\t\tconst event: AMEvent<this, ISpriteEvents>[\"propertychanged\"] = {\r\n\t\t\t\t\ttype: \"propertychanged\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tproperty: <string>property\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"propertychanged\", event);\r\n\t\t\t}\r\n\r\n\t\t\tif (invalidate) {\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\r\n\t\t\tif (transform) {\r\n\t\t\t\tthis.invalidatePosition();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.applyOnClones) {\r\n\t\t\t\tconst clones = this.clones.values;\r\n\t\t\t\tconst length = clones.length;\r\n\r\n\t\t\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\t\t\tconst clone = clones[i];\r\n\r\n\t\t\t\t\tif (!clone.isDisposed()) {\r\n\t\t\t\t\t\t//(<Sprite>clone).setPropertyValue(<any>property, value, invalidate, transform);\r\n\t\t\t\t\t\t(<any>clone)[property] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Verify this\r\n\t */\r\n\tpublic bind<\r\n\t\tS extends { cloneId: string, events: EventDispatcher<{ propertychanged: { property: string } }> },\r\n\t\tFrom extends (keyof S & keyof this),\r\n\t\tTo extends keyof this\r\n\t>(\r\n\t\tproperty: To,\r\n\t\tsource: S,\r\n\t\tbindToProperty: From,\r\n\t\tmodifier?: (value: this[From]) => this[To]\r\n\t): void;\r\n\tpublic bind<\r\n\t\tS extends { cloneId: string, events: EventDispatcher<{ propertychanged: { property: string } }> },\r\n\t\tKey extends (keyof S & keyof this)\r\n\t>(\r\n\t\tproperty: Key,\r\n\t\tsource: S,\r\n\t\tmodifier?: (value: this[Key]) => this[Key]\r\n\t): void;\r\n\tpublic bind<\r\n\t\tS extends this & { cloneId: string, events: EventDispatcher<{ propertychanged: { property: string } }> },\r\n\t\tKey extends (keyof S & keyof this)\r\n\t>(\r\n\t\tproperty: Key,\r\n\t\tsource: S,\r\n\t\tbindToProperty: Key = property,\r\n\t\tmodifier?: (value: this[Key]) => this[Key]\r\n\t): void {\r\n\t\tif ($type.hasValue(this._bindings[<string>property])) {\r\n\t\t\tthis._bindings[<string>property].dispose();\r\n\t\t}\r\n\r\n\t\t// set current value\r\n\t\tthis[property] = source[bindToProperty];\r\n\r\n\t\t//source.addEventListener(AMEvent.PROPERTY_CHANGED, this.handleBindings, false, this);\r\n\t\tthis._bindings[<string>property] = source.events.on(\"propertychanged\", (event) => {\r\n\t\t\tif (event.property === bindToProperty) {\r\n\t\t\t\tlet value: this[Key] = source[bindToProperty];\r\n\r\n\t\t\t\tif (modifier) {\r\n\t\t\t\t\tvalue = modifier(value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO clonesById\r\n\t\t\t\tthis[property] = value;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up and obeserver function to monitor changes in particular property\r\n\t * or properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param property Element's property name\r\n\t * @param listener Handler function\r\n\t * @param context Context for handler function\r\n\t * @returns Event Disposer\r\n\t */\r\n\tpublic observe<C>(property: string | string[], listener: (this: C, event: AMEvent<this, ISpriteEvents>[\"propertychanged\"]) => void, context?: C, shouldClone?: boolean): IDisposer {\r\n\t\treturn new MultiDisposer($array.map($array.toArray(property), (prop) => {\r\n\t\t\treturn this.events.on(\"propertychanged\", (e) => {\r\n\t\t\t\tif (e.property === prop) {\r\n\t\t\t\t\tlistener.call(context, e);\r\n\t\t\t\t}\r\n\t\t\t}, context, shouldClone);\r\n\t\t}));\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * ACCESSIBILITY-RELATED PROPERTIES\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Applies accessibility to the SVG element.\r\n\t *\r\n\t * Adds `<title>` and `<description>` elements as well as `aria-labelledby`\r\n\t * and `role` properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected applyAccessibility(): void {\r\n\r\n\t\t// Check if we need to add label and description\r\n\t\tlet title = this.readerTitle,\r\n\t\t\tdescription = this.readerDescription,\r\n\t\t\trole = this.role,\r\n\t\t\thidden = this.readerHidden,\r\n\t\t\tchecked = this.readerChecked,\r\n\t\t\tcontrols = this.readerControls,\r\n\t\t\tlive = this.readerLive,\r\n\t\t\torientation = this.readerOrientation,\r\n\t\t\tvalueNow = this.readerValueNow,\r\n\t\t\tvalueText = this.readerValueText;\r\n\r\n\t\t// Init label/describe ids\r\n\t\tlet labelledByIds: string[] = [],\r\n\t\t\tdescribedByIds: string[] = [];\r\n\r\n\t\tlet labelledBy: string = this.readerLabelledBy;\r\n\t\tif (labelledBy) {\r\n\t\t\tlabelledByIds.push(labelledBy);\r\n\t\t}\r\n\r\n\t\tlet describedBy: string = this.readerDescribedBy;\r\n\t\tif (describedBy) {\r\n\t\t\tdescribedByIds.push(describedBy);\r\n\t\t}\r\n\r\n\t\t// Consolidate title and description if system tooltip is disabled\r\n\t\tif (!this.showSystemTooltip && title) {\r\n\t\t\tif (description) {\r\n\t\t\t\tdescription = title + \" -- \" + description;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdescription = title;\r\n\t\t\t}\r\n\t\t\ttitle = undefined;\r\n\t\t}\r\n\r\n\t\t// If we have only label, we use `aria-label` attribute.\r\n\t\t// If there are both label and description, we'll go with separate tags and\r\n\t\t// use `aria-labelledby`\r\n\t\tif (title && !description && !this.showSystemTooltip) {\r\n\r\n\r\n\t\t\t// Only label is set, use attribute\r\n\t\t\tthis.setSVGAttribute({\r\n\t\t\t\t\"aria-label\": title\r\n\t\t\t});\r\n\r\n\t\t\t// Remove previous elements\r\n\t\t\tthis.removeSVGAttribute(\"aria-description\");\r\n\t\t\tif (this._titleElement) {\r\n\t\t\t\tthis.group.removeElement(this._titleElement);\r\n\t\t\t\tthis._titleElement = undefined;\r\n\t\t\t}\r\n\t\t\tif (this._descriptionElement) {\r\n\t\t\t\tthis.group.removeElement(this._descriptionElement);\r\n\t\t\t\tthis._descriptionElement = undefined;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\tif (title) {\r\n\t\t\t\tlet titleElement = this.titleElement;\r\n\t\t\t\tlet titleId = this.uid + \"-title\";\r\n\t\t\t\tif (titleElement.node.textContent != title) {\r\n\t\t\t\t\ttitleElement.node.textContent = title;\r\n\t\t\t\t\ttitleElement.attr({ id: titleId });\r\n\t\t\t\t}\r\n\t\t\t\tlabelledByIds.push(titleId);\r\n\t\t\t}\r\n\t\t\telse if (this._titleElement) {\r\n\t\t\t\tthis.group.removeElement(this._titleElement);\r\n\t\t\t\tthis._titleElement = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tlet descriptionId = this.uid + \"-description\";\r\n\t\t\tif (description) {\r\n\t\t\t\tlet descriptionElement = this.descriptionElement;\r\n\r\n\t\t\t\tif (descriptionElement.node.textContent != description) {\r\n\t\t\t\t\tdescriptionElement.node.textContent = description;\r\n\t\t\t\t\tdescriptionElement.attr({ id: descriptionId });\r\n\t\t\t\t}\r\n\t\t\t\tdescribedByIds.push(descriptionId);\r\n\t\t\t}\r\n\t\t\telse if (this._descriptionElement) {\r\n\t\t\t\tthis.group.removeElement(this._descriptionElement);\r\n\t\t\t\tthis._descriptionElement = undefined;\r\n\t\t\t\t$array.remove(describedByIds, descriptionId);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// Add label and described properties\r\n\t\tif (labelledByIds.length) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-labelledby\": labelledByIds.join(\" \") });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-labelledby\");\r\n\t\t}\r\n\r\n\t\tif (describedByIds.length) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-describedby\": describedByIds.join(\" \") });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-describedby\");\r\n\t\t}\r\n\r\n\t\t// Apply role\r\n\t\tif (role) {\r\n\t\t\tthis.setSVGAttribute({ \"role\": role });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"role\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-hidden\r\n\t\tif (hidden) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-hidden\": \"true\" });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-hidden\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-checked\r\n\t\tif (checked) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-checked\": \"true\" });\r\n\t\t}\r\n\t\telse if (checked === false) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-checked\": \"false\" });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-checked\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-controls\r\n\t\tif (controls) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-controls\": controls });\r\n\t\t} else {\r\n\t\t\tthis.removeSVGAttribute(\"aria-controls\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-live\r\n\t\tif (live) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-live\": live });\r\n\t\t} else {\r\n\t\t\tthis.removeSVGAttribute(\"aria-live\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-orientation\r\n\t\tif (orientation) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-orientation\": orientation });\r\n\t\t} else {\r\n\t\t\tthis.removeSVGAttribute(\"aria-orientation\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-valuenow\r\n\t\tif (valueNow) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-valuenow\": valueNow });\r\n\t\t} else {\r\n\t\t\tthis.removeSVGAttribute(\"aria-valuenow\");\r\n\t\t}\r\n\r\n\t\t// Apply aria-valuetext\r\n\t\tif (valueText) {\r\n\t\t\tthis.setSVGAttribute({ \"aria-valuetext\": valueText });\r\n\t\t} else {\r\n\t\t\tthis.removeSVGAttribute(\"aria-valuetext\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Screen reader title of the element.\r\n\t *\r\n\t * @param value Title\r\n\t */\r\n\tpublic set readerTitle(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerTitle\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Title\r\n\t */\r\n\tpublic get readerTitle(): string {\r\n\t\tconst title = this.getPropertyValue(\"readerTitle\");\r\n\t\tif ($type.hasValue(title) && this.dataItem) {\r\n\t\t\treturn this.populateString(title);\r\n\t\t}\r\n\t\treturn title;\r\n\t}\r\n\r\n\t/**\r\n\t * Screen reader description of the element.\r\n\t *\r\n\t * @param value Description\r\n\t */\r\n\tpublic set readerDescription(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerDescription\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Description\r\n\t */\r\n\tpublic get readerDescription(): string {\r\n\t\treturn this.getPropertyValue(\"readerDescription\");\r\n\t}\r\n\r\n\t/**\r\n\t * A WAI-ARIA role for the element.\r\n\t *\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#role_definitions} for more information on WAI-ARIA roles\r\n\t * @param value Role\r\n\t */\r\n\tpublic set role(value: Roles) {\r\n\t\tvalue = <Roles>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"role\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\r\n\t\t\tif (value == \"slider\") {\r\n\t\t\t\tthis.setSVGAttribute({ \"aria-valuemin\": \"0\" });\r\n\t\t\t\tthis.setSVGAttribute({ \"aria-valuemax\": \"100\" });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Role\r\n\t */\r\n\tpublic get role(): Roles {\r\n\t\treturn this.getPropertyValue(\"role\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if element should be hidden from screen readers.\r\n\t *\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-hidden} for more information\r\n\t * @param value Hidden?\r\n\t */\r\n\tpublic set readerHidden(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"readerHidden\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hidden?\r\n\t */\r\n\tpublic get readerHidden(): boolean {\r\n\t\treturn this.getPropertyValue(\"readerHidden\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if element is currently marked as \"checked\".\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-checked} for more information\r\n\t * @param value Checked?\r\n\t */\r\n\tpublic set readerChecked(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"readerChecked\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Checked?\r\n\t */\r\n\tpublic get readerChecked(): boolean {\r\n\t\treturn this.getPropertyValue(\"readerChecked\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `uid` of an element this element controls.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-controls} for more information\r\n\t * @param value Setting value\r\n\t */\r\n\tpublic set readerControls(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerControls\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Setting value\r\n\t */\r\n\tpublic get readerControls(): string {\r\n\t\treturn this.getPropertyValue(\"readerControls\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls accessibility setting \"aria-live\" for the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions} for more information\r\n\t * @param value Setting value\r\n\t */\r\n\tpublic set readerLive(value: AriaLive) {\r\n\t\tvalue = <AriaLive>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerLive\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Setting value\r\n\t */\r\n\tpublic get readerLive(): AriaLive {\r\n\t\treturn this.getPropertyValue(\"readerLive\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `uid` of an element that describes this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby} for more information\r\n\t * @param value Target element\r\n\t */\r\n\tpublic set readerLabelledBy(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerLabelledBy\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Target element\r\n\t */\r\n\tpublic get readerLabelledBy(): string {\r\n\t\treturn this.getPropertyValue(\"readerLabelledBy\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `uid` of an element that describes this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-describedby} for more information\r\n\t * @param value Target element\r\n\t */\r\n\tpublic set readerDescribedBy(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerDescribedBy\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Target element\r\n\t */\r\n\tpublic get readerDescribedBy(): string {\r\n\t\treturn this.getPropertyValue(\"readerDescribedBy\");\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation of the element.\r\n\t *\r\n\t * @since 4.7.16\r\n\t * @param value Orientation\r\n\t */\r\n\tpublic set readerOrientation(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerOrientation\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Orientation\r\n\t */\r\n\tpublic get readerOrientation(): string {\r\n\t\treturn this.getPropertyValue(\"readerOrientation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Current value of the element.\r\n\t *\r\n\t * @since 4.7.16\r\n\t * @param value Current value\r\n\t */\r\n\tpublic set readerValueNow(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerValueNow\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Current value\r\n\t */\r\n\tpublic get readerValueNow(): string {\r\n\t\treturn this.getPropertyValue(\"readerValueNow\");\r\n\t}\r\n\r\n\t/**\r\n\t * Text representation of the current value of the element.\r\n\t *\r\n\t * @since 4.7.16\r\n\t * @param value Current value (text)\r\n\t */\r\n\tpublic set readerValueText(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerValueText\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Current value (text)\r\n\t */\r\n\tpublic get readerValueText(): string {\r\n\t\treturn this.getPropertyValue(\"readerValueText\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * USER INTERACTIONS\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns elements keyboard options.\r\n\t *\r\n\t * @return Keyboard options\r\n\t */\r\n\tpublic get keyboardOptions(): IKeyboardOptions {\r\n\t\tif (!this.interactions.keyboardOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.keyboardOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.keyboardOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.keyboardOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Mouse options.\r\n\t *\r\n\t * Enables controlling options related to the mouse, for example sensitivity\r\n\t * of its mouse wheel.\r\n\t *\r\n\t * E.g. the below will reduce chart's wheel-zoom speed to half its default\r\n\t * speed:\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.plotContainer.mouseOptions.sensitivity = 0.5;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"plotContainer\": {\r\n\t * \"mouseOptions\": {\r\n\t * \"sensitivity\": 0.5\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @return Mouse options\r\n\t */\r\n\tpublic get mouseOptions(): IMouseOptions {\r\n\t\tif (!this.interactions.mouseOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.mouseOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.mouseOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.mouseOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns (creates if necessary) an [[InteractionObject]] associated with\r\n\t * this element.\r\n\t *\r\n\t * [[InteractionObject]] is used to attach all kinds of user-interactions to\r\n\t * the element, e.g. click/touch, dragging, hovering, and similar events.\r\n\t *\r\n\t * @return Interaction object\r\n\t */\r\n\tpublic get interactions(): InteractionObject {\r\n\t\tif (!this._interaction) {\r\n\t\t\tconst interaction = getInteraction().getInteraction(this.dom);\r\n\t\t\tthis._interaction = interaction;\r\n\t\t\tthis._interaction.clickable = this.clickable;\r\n\t\t\tthis._interaction.hoverable = this.hoverable;\r\n\t\t\tthis._interaction.trackable = this.trackable;\r\n\t\t\tthis._interaction.draggable = this.draggable;\r\n\t\t\tthis._interaction.swipeable = this.swipeable;\r\n\t\t\tthis._interaction.resizable = this.resizable;\r\n\t\t\tthis._interaction.wheelable = this.wheelable;\r\n\t\t\tthis._interaction.contextMenuDisabled = this.contextMenuDisabled;\r\n\t\t\tthis._interaction.inert = this.inert;\r\n\t\t\tthis._interaction.sprite = this;\r\n\t\t\tthis._disposers.push(this._interaction);\r\n\t\t}\r\n\t\treturn this._interaction;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns true if interactions object was created. Mostly used just to avoid creating interactions object if not needed.\r\n\t * @return Is Sprite interactive?\r\n\t */\r\n\tpublic isInteractive(): boolean {\r\n\t\tif (this._interaction) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * ELEMENT FOCUS-RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Controls if the element can gain focus.\r\n\t *\r\n\t * Focusable element will be selectable via TAB key.\r\n\t *\r\n\t * Please note, clicking it with a mouse or touching will not add focus to\r\n\t * it.\r\n\t *\r\n\t * Focused element will show a system-specific highlight, which might ruin\r\n\t * the overal look. This is why we don't focus element on click/touch.\r\n\t *\r\n\t * A default setting varies for different elements. By default all elements\r\n\t * are not focusable, except certain items like buttons, legend items, etc.\r\n\t *\r\n\t * @default undefined (auto)\r\n\t * @param value Can element be focused?\r\n\t */\r\n\tpublic set focusable(value: Optional<boolean>) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"focusable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.interactions.focusable = value;\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.setSVGAttribute({ \"focusable\": value });\r\n\t\t\t\t\tif (!this._tabindex) {\r\n\t\t\t\t\t\tthis.tabindex = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.removeSVGAttribute(\"focusable\");\r\n\t\t\t\t\tthis.tabindex = undefined;\r\n\t\t\t\t}\r\n\t\t\t\t// Set focus events that would apply \"focus\" state\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-focusable\", value, () => new MultiDisposer([\r\n\t\t\t\t\tthis.events.on(\"blur\", this.handleBlur, this, false),\r\n\t\t\t\t\tthis.events.on(\"focus\", this.handleFocus, this, false)\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Can element be focused?\r\n\t */\r\n\tpublic get focusable(): Optional<boolean> {\r\n\t\treturn this.getPropertyValue(\"focusable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Applies filters (if set) when element gains focus.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleFocus(ev?: AMEvent<Sprite, ISpriteEvents>[\"focus\"]): void {\r\n\t\tif (this.focusable) {\r\n\t\t\tif (this.topParent) {\r\n\t\t\t\tthis.topParent.hasFocused = true;\r\n\t\t\t}\r\n\t\t\tif (this.focusFilter) {\r\n\t\t\t\t// Any `filters` manipulation will trigger `applyFilters()` so we don't\r\n\t\t\t\t// need to call it here\r\n\t\t\t\tthis.filters.push(this.focusFilter);\r\n\t\t\t}\r\n\t\t\tif (this.hoverOnFocus) {\r\n\t\t\t\t// Trigger a hover event as well\r\n\t\t\t\tthis.isHover = true;\r\n\t\t\t\tthis.handleOver();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes focus filter (if set) when elementloses focus.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleBlur(ev?: AMEvent<Sprite, ISpriteEvents>[\"blur\"]): void {\r\n\t\tif (this.focusable) {\r\n\t\t\tif (this.topParent) {\r\n\t\t\t\tthis.topParent.hasFocused = false;\r\n\t\t\t}\r\n\t\t\tif (this.focusFilter) {\r\n\t\t\t\t// Any `filters` manipulation will trigger `applyFilters()` so we don't\r\n\t\t\t\t// need to call it here\r\n\t\t\t\tthis.filters.removeValue(this.focusFilter);\r\n\t\t\t}\r\n\t\t\tif (this.hoverOnFocus) {\r\n\t\t\t\t// Trigger a out event as well\r\n\t\t\t\tthis.isHover = false;\r\n\t\t\t\tthis.handleOut();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to a [[Filter]] to apply to element when it gains focus.\r\n\t *\r\n\t * Normally, browsers will draw a default ugly square around focused element,\r\n\t * which totally makes sense because its purpose is to help identify active\r\n\t * element for visually impaired people.\r\n\t *\r\n\t * However, if you would rather apply a filter, so you can modify how focused\r\n\t * element looks like, use `focusFilter`.\r\n\t *\r\n\t * Simply set it to an anstance of [[FocusFilter]], or any other filter\r\n\t * object.\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.focusFilter = new am4core.FocusFilter();\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.focusFilter = new am4core.FocusFilter();\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"focusFilter\": {\r\n\t * \"type\": \"FocusFilter\"\r\n\t * },\r\n\t * // ...\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link Filter}\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/accessibility/} more about accessibility\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/changing-appearance-of-focused-items/} cusomizing focus appearance\r\n\t * @ignore Exclude from docs\r\n\t * @return Focused element filter\r\n\t */\r\n\tpublic get focusFilter(): $type.Optional<Filter> {\r\n\t\t/*if (!this._focusFilter) {\r\n\t\t\tthis._focusFilter = new FocusFilter();\r\n\t\t\tthis._disposers.push(this._focusFilter);\r\n\t\t}*/\r\n\t\t//return this._focusFilter;\r\n\r\n\t\tconst focusFilter = this._focusFilter;\r\n\r\n\t\tif (focusFilter) {\r\n\t\t\treturn focusFilter;\r\n\t\t}\r\n\t\tif (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.focusFilter;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.focusFilter;\r\n\t\t}\r\n\r\n\t\t//this._focusFilter = new FocusFilter();\r\n\t\t//this._disposers.push(this._focusFilter);\r\n\t}\r\n\r\n\t/**\r\n\t * @see {@link Filter}\r\n\t * @ignore Exclude from docs\r\n\t * @todo This is still experimental, don't use it\r\n\t */\r\n\tpublic set focusFilter(value: $type.Optional<Filter>) {\r\n\t\tthis._focusFilter = value;\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true`, this element will also trigger `\"over\"` event with all\r\n\t * the related consequences, like \"hover\" state being applied and tooltip\r\n\t * being shown.\r\n\t *\r\n\t * Useful as an accessibility feature to display rollover tooltips on items\r\n\t * selected via keyboard.\r\n\t *\r\n\t * @param value Trigger hover on focus?\r\n\t * @default false\r\n\t */\r\n\tpublic set hoverOnFocus(value: boolean) {\r\n\t\tif (value !== this.hoverOnFocus) {\r\n\t\t\tthis.setPropertyValue(\"hoverOnFocus\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Trigger hover on focus?\r\n\t */\r\n\tpublic get hoverOnFocus(): boolean {\r\n\t\treturn this.getPropertyValue(\"hoverOnFocus\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets TAB index.\r\n\t *\r\n\t * Tab index maintains the order in which focusable elements gain focus when\r\n\t * TAB key is pressed.\r\n\t *\r\n\t * Please note, tab index is not local to the chart. It affects the whole\r\n\t * of the page, including non-SVG elements. Maintain extreme causion when\r\n\t * setting tab indexes, as it affects the user experience for the whole\r\n\t * web page.\r\n\t *\r\n\t * @param value TAB index\r\n\t */\r\n\tpublic set tabindex(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (this.setPropertyValue(\"tabindex\", value) && $type.isNumber(value)) {\r\n\t\t\tthis.interactions.tabindex = value;\r\n\t\t\tthis.setSVGAttribute({ \"tabindex\": value });\r\n\t\t\tthis._tabindex = value;\r\n\t\t\tif (value > -1) {\r\n\t\t\t\tthis.focusable = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.focusable = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current TAB index for focusable item.\r\n\t *\r\n\t * @return TAB index\r\n\t */\r\n\tpublic get tabindex(): $type.Optional<number> {\r\n\t\tconst index = this._tabindex;\r\n\r\n\t\tif (index != null) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.tabindex;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.tabindex;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * DRAGGING AND RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns element's options to be used for inertia. This setting is\r\n\t * inheritable, meaning that if not set directly, it will search in all its\r\n\t * ascendants until very top.\r\n\t *\r\n\t * Inertia is used only if element's `inert` is set to `true`.\r\n\t *\r\n\t * \"Inert\" element, when dragged and released, will carry the momentum of the\r\n\t * movement, and will continue moving in the same drag direction, gradually\r\n\t * reducing in speed until finally stops.\r\n\t *\r\n\t * Check [[IInertiaOptions]] for how you tweak inertia animations.\r\n\t *\r\n\t * @return Inertia options\r\n\t */\r\n\tpublic get inertiaOptions(): Dictionary<InertiaTypes, IInertiaOptions> {\r\n\t\tif (!this.interactions.inertiaOptions) {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.inertiaOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.inertiaOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if the element is draggable.\r\n\t *\r\n\t * @param value `true` if element can be dragged\r\n\t */\r\n\tpublic set draggable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"draggable\", value)) {\r\n\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.draggable = value;\r\n\t\t\t\t//interaction.processDraggable(this);\r\n\r\n\t\t\t\t// Add events\r\n\t\t\t\t// @todo Maybe attach to InteractionObject's multidisposer so that\r\n\t\t\t\t// sprites events get disposed together with them?\r\n\t\t\t\t// this.interactions.disposers.getItem(\"movable\")\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-draggable\", value, () => new MultiDisposer([\r\n\t\t\t\t\tthis.events.on(\"down\", this.handleDown, this, false),\r\n\t\t\t\t\tthis.events.on(\"dragstart\", this.handleDragStart, this, false),\r\n\t\t\t\t\tthis.events.on(\"drag\", this.handleDragMove, this, false),\r\n\t\t\t\t\tthis.events.on(\"dragstop\", this.handleDragStop, this, false)\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `true` if element can be dragged\r\n\t */\r\n\tpublic get draggable(): boolean {\r\n\t\treturn this.getPropertyValue(\"draggable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Executes when dragged element is being started to drag.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected handleDragStart(ev: AMEvent<Sprite, ISpriteEvents>[\"dragstart\"]): void {\r\n\t\tif (!this.interactions.isTouchProtected || !ev.touch) {\r\n\t\t\tthis.interactions.originalPosition = {\r\n\t\t\t\tx: this.pixelX,\r\n\t\t\t\ty: this.pixelY\r\n\t\t\t};\r\n\t\t\tthis._isDragged = true;\r\n\t\t\tthis.hideTooltip(0);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Tell this element to start being dragged. This is useful if you want to\r\n\t * drag items by interactions performed not directly on the target element.\r\n\t *\r\n\t * Parameter `pointer` is highly recommended. By passing in the Pointer you\r\n\t * will ensure that movement is tracked for the pointer that you want. If not\r\n\t * supplied, the system will try to determine the most logical pointer.\r\n\t *\r\n\t * However this may fail if you have more than one pointer active, which\r\n\t * might happen if you have several objects being dragged on a touch device.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param pointer Pointer to use for movement\r\n\t */\r\n\tpublic dragStart(pointer?: IPointer): void {\r\n\t\t//this.dragStop(pointer);\r\n\t\t//this.draggable = true;\r\n\t\tthis._isDragged = true;\r\n\t\tgetInteraction().dragStart(this.interactions, pointer);\r\n\t}\r\n\r\n\t/**\r\n\t * Executes when dragged element is being dropped.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected handleDragStop(ev: AMEvent<Sprite, ISpriteEvents>[\"dragstop\"]): void {\r\n\t\tif (!this.interactions.isTouchProtected || !ev.touch) {\r\n\t\t\tthis._isDragged = false;\r\n\t\t\tthis.showTooltip();\r\n\t\t\tthis.interactions.originalPosition = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Stops manually initiated dragging of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param pointer Pointer to use as a reference\r\n\t */\r\n\tpublic dragStop(pointer?: IPointer, cancelled?: boolean): void {\r\n\t\t//this.draggable = false;\r\n\t\tthis._isDragged = false;\r\n\t\tgetInteraction().dragStop(this.interactions, pointer, cancelled);\r\n\t\t//this.handleDragStop();\r\n\t}\r\n\r\n\t/**\r\n\t * Executes when {Sprite} is being dragged.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t * @todo Implement parent position offset calculation\r\n\t */\r\n\tpublic handleDragMove(ev: AMEvent<Sprite, ISpriteEvents>[\"drag\"]): void {\r\n\t\tif (!this.interactions.isTouchProtected || !ev.touch) {\r\n\t\t\tlet point: Optional<IPoint> = this.interactions.originalPosition;\r\n\r\n\t\t\tif (point && this._isDragged) {\r\n\t\t\t\tlet globalScale = this._parent.globalScale * this.svgContainer.cssScale;\r\n\t\t\t\tthis.moveTo({ x: point.x + ev.shift.x / globalScale, y: point.y + ev.shift.y / globalScale }, undefined, undefined, true);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchImmediately(\"dragged\", ev);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if the element should use inertia when interacted with.\r\n\t *\r\n\t * \"Inert\" element, when dragged and released, will carry the momentum of the\r\n\t * movement, and will continue moving in the same drag direction, gradually\r\n\t * reducing in speed until finally stops.\r\n\t *\r\n\t * @default false\r\n\t * @param value `true` if element should use inertia when animated\r\n\t */\r\n\tpublic set inert(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"inert\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.interactions.inert = value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `true` if element should use inertia when animated\r\n\t */\r\n\tpublic get inert(): boolean {\r\n\t\treturn this.getPropertyValue(\"inert\");\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * HOVERING\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns Sprite's hover options.\r\n\t *\r\n\t * @see {@link IHoverOptions} for available options.\r\n\t * @return Options\r\n\t */\r\n\tpublic get hoverOptions(): IHoverOptions {\r\n\t\tif (!this.interactions.hoverOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.hoverOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.hoverOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.hoverOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if the element is hoverable (hover events are registered).\r\n\t *\r\n\t * Use `over` and `out` events, to watch for those respective actions.\r\n\t *\r\n\t * @default false\r\n\t * @param value `true` if element can be hovered\r\n\t */\r\n\tpublic set hoverable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"hoverable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.hoverable = value;\r\n\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-hoverable\", value, () => new MultiDisposer([\r\n\t\t\t\t\tthis.events.on(\"over\", this.handleOver, this, false),\r\n\t\t\t\t\tthis.events.on(\"out\", this.handleOut, this, false),\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `true` if element is hoverable\r\n\t */\r\n\tpublic get hoverable(): boolean {\r\n\t\treturn this.getPropertyValue(\"hoverable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles tasks when element becomes hovered:\r\n\t * * Shows [[Tooltip]] if applicable\r\n\t * * Applies \"hover\" state\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleOver(ev?: AMEvent<Sprite, ISpriteEvents>[\"over\"]): void {\r\n\t\tif (this._outTimeout) {\r\n\t\t\tthis._outTimeout.dispose();\r\n\t\t}\r\n\t\tif (this.isHover) {\r\n\r\n\t\t\tif (this.states.hasKey(\"hover\")) {\r\n\t\t\t\t//this.setState(\"hover\");\r\n\t\t\t\t// This will check `isHover` and will set \"hover\" state\r\n\t\t\t\tif (!this.isHidden) {\r\n\t\t\t\t\tthis.applyCurrentState();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet point: IPoint\r\n\t\t\tif (ev && ev.pointer) {\r\n\t\t\t\tpoint = $utils.documentPointToSvg(ev.pointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale)\r\n\t\t\t}\r\n\r\n\t\t\tif (this.showTooltipOn == \"hover\") {\r\n\t\t\t\tthis.showTooltip(point);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.showTooltipOn == \"hover\") {\r\n\t\t\t\tthis.hideTooltip();\r\n\t\t\t}\r\n\t\t\tif (!this.isHidden && this.states.hasKey(\"hover\")) {\r\n\t\t\t\tthis.applyCurrentState();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles tasks when element loses hover:\r\n\t *\r\n\t * * Hides [[Tooltip]]\r\n\t * * Applies default state\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev [description]\r\n\t */\r\n\tpublic handleOut(ev?: AMEvent<Sprite, ISpriteEvents>[\"out\"]): void {\r\n\t\tif (this.tooltip && this.tooltip.targetSprite == this && this.tooltip.keepTargetHover) {\r\n\t\t\tthis._outTimeout = this.setTimeout(() => {\r\n\t\t\t\tif (!this.tooltip.isHover) {\r\n\t\t\t\t\tif (this.tooltip.targetSprite == this) {\r\n\t\t\t\t\t\tthis.hideTooltip();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._outTimeout = this.setTimeout(this.handleOutReal.bind(this), this.rollOutDelay);\r\n\t\t\t\t}\r\n\t\t\t}, 10);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.showTooltipOn == \"hover\") {\r\n\t\t\tthis.hideTooltip();\r\n\t\t}\r\n\t\tthis._outTimeout = this.setTimeout(this.handleOutReal.bind(this), this.rollOutDelay);\r\n\t}\r\n\r\n\t/**\r\n\t * [handleOutReal description]\r\n\t *\r\n\t * @ignore\r\n\t * @todo description\r\n\t */\r\n\tpublic handleOutReal() {\r\n\t\tif (!this.isHidden && !this.isHiding && this.states.hasKey(\"hover\")) {\r\n\t\t\tthis.applyCurrentState();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * CLICKING/TAPPING AND TOGGLING STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns Sprite's click (hit) options.\r\n\t *\r\n\t * Click (hit) options control things like double-click, timeouts, etc.\r\n\t *\r\n\t * @see {@link IHitOptions} for available options.\r\n\t * @return Options\r\n\t */\r\n\tpublic get hitOptions(): IHitOptions {\r\n\t\tif (!this.interactions.hitOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.hitOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.hitOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.hitOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares element's after `down` event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event\r\n\t */\r\n\tpublic handleDown(ev?: AMEvent<Sprite, ISpriteEvents>[\"down\"]): void {\r\n\t\tif (this.interactions.downPointers.length === 1) {\r\n\t\t\tthis.interactions.originalPosition = {\r\n\t\t\t\tx: this.pixelX,\r\n\t\t\t\ty: this.pixelY\r\n\t\t\t};\r\n\t\t\tthis.interactions.originalAngle = this.rotation;\r\n\t\t\tthis.interactions.originalScale = this.scale;\r\n\t\t\tif (this.states.hasKey(\"down\")) {\r\n\t\t\t\tthis.setState(\"down\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares element's after `up` event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event\r\n\t */\r\n\tpublic handleUp(ev?: AMEvent<Sprite, ISpriteEvents>[\"up\"]): void {\r\n\t\t/*if (!this.isDown) {\r\n\t\t\tthis.interactions.originalPosition = null;\r\n\t\t\tthis.interactions.originalAngle = null;\r\n\t\t\tthis.interactions.originalScale = null;\r\n\t\t}*/\r\n\t\tthis._isResized = false;\r\n\t\tif (this.states.hasKey(\"down\")) {\r\n\t\t\tthis.applyCurrentState();\r\n\t\t}\r\n\t\tif (this.showTooltipOn == \"hit\") {\r\n\t\t\tthis.updateTooltipPosition(ev.pointer.point);\r\n\t\t\tthis._disposers.push(registry.events.once(\"exitframe\", ()=>{\r\n\t\t\t\tthis.showTooltip();\r\n\t\t\t}));\r\n\r\n\t\t\tthis._disposers.push(getInteraction().body.events.once(\"down\", (ev) => {\r\n\t\t\t\tthis.hideTooltip();\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if the element is clickable.\r\n\t *\r\n\t * Some type of the elements, like buttons are clickable by default.\r\n\t *\r\n\t * Most of the elements are not clickable by default.\r\n\t *\r\n\t * Use `hit`, `doublehit`, `up`, `down`, `toggled` events to watch for\r\n\t * respective click/touch actions.\r\n\t *\r\n\t * @param value `true` if element can be clicked\r\n\t */\r\n\tpublic set clickable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"clickable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.clickable = value;\r\n\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-clickable\", value, () => new MultiDisposer([\r\n\t\t\t\t\tthis.events.on(\"down\", this.handleDown, this, false),\r\n\t\t\t\t\tthis.events.on(\"up\", this.handleUp, this, false)\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {boolean}\r\n\t */\r\n\tpublic get clickable(): boolean {\r\n\t\treturn this.getPropertyValue(\"clickable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if element can be toggled on and off by subsequent clicks/taps.\r\n\t *\r\n\t * Togglable element will alternate its `isActive` property between `true`\r\n\t * and `false` with each click.\r\n\t *\r\n\t * @param value Is togglable?\r\n\t */\r\n\tpublic set togglable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"togglable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-togglable\", value, () => this.events.on(\"hit\", this.handleToggle, this, false));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is togglable?\r\n\t */\r\n\tpublic get togglable(): boolean {\r\n\t\treturn this.getPropertyValue(\"togglable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles toggling of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event\r\n\t */\r\n\tpublic handleToggle(ev: AMEvent<Sprite, ISpriteEvents>[\"hit\"]) {\r\n\t\tthis.isActive = !this.isActive;\r\n\t}\r\n\r\n\t/**\r\n\t * Should element prevent context menu to be displayed, e.g. when\r\n\t * right-clicked?\r\n\t *\r\n\t * @default false\r\n\t * @param value Context menu disabled?\r\n\t */\r\n\tpublic set contextMenuDisabled(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"contextMenuDisabled\", value)) {\r\n\t\t\tthis.interactions.contextMenuDisabled = value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Context menu disabled?\r\n\t */\r\n\tpublic get contextMenuDisabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"contextMenuDisabled\");\r\n\t}\r\n\r\n\t/**\r\n\t * Click-through URL for this element.\r\n\t *\r\n\t * If set, clicking/tapping this element will open the new URL in a target\r\n\t * window/tab as set by `urlTarget`.\r\n\t *\r\n\t * Please note that URL will be parsed by data placeholders in curly\r\n\t * brackets, to be populated from data. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.columns.template.url = \"https://www.google.com/search?q={category.urlEncode()}\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.columns.template.url = \"https://www.google.com/search?q={category.urlEncode()}\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"columns\": {\r\n\t * \"url\": \"https://www.google.com/search?q={category.urlEncode()}\"\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @param value URL\r\n\t */\r\n\tpublic set url(value: $type.Optional<string>) {\r\n\t\tif (this.setPropertyValue(\"url\", value)) {\r\n\t\t\tif (this._urlDisposer) {\r\n\t\t\t\tthis._urlDisposer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\t// If URL is not empty, set up events\r\n\t\t\tif ($utils.isNotEmpty(value)) {\r\n\t\t\t\tthis._urlDisposer = this.events.on(\"hit\", this.urlHandler, this, false);\r\n\r\n\t\t\t\t// Set other required parameters\r\n\t\t\t\tthis.clickable = true;\r\n\t\t\t\tthis.cursorOverStyle = MouseCursorStyle.pointer;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return URL\r\n\t */\r\n\tpublic get url(): $type.Optional<string> {\r\n\t\treturn this.getPropertyValue(\"url\");\r\n\t}\r\n\r\n\t/**\r\n\t * [baseId description]\r\n\t *\r\n\t * @ignore\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set baseId(value: string) {\r\n\t\tthis.setBaseId(value);\r\n\t}\r\n\r\n\t/**\r\n\t * [baseId description]\r\n\t *\r\n\t * @ignore\r\n\t * @return [description]\r\n\t */\r\n\tpublic get baseId(): string {\r\n\t\tif (!this._baseId && this._parent) {\r\n\t\t\tthis.baseId = this._parent.baseId;\r\n\t\t}\r\n\r\n\t\treturn this._baseId;\r\n\t}\r\n\r\n\tprotected setBaseId(value: string) {\r\n\t\tif (value != this._baseId) {\r\n\t\t\tif (this.invalid) {\r\n\t\t\t\tthis.invalid = false;\r\n\t\t\t\tregistry.removeFromInvalidSprites(this);\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\t\t\tthis._baseId = value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the mail chart object that this element belongs to.\r\n\t *\r\n\t * In most cases it will mean the chart object.\r\n\t *\r\n\t * Can be used to retrieve chart object in various events and adapters.\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.seriesContainer.events.on(\"hit\", function(ev) {\r\n\t * console.log(ev.target.baseSprite);\r\n\t * });\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.seriesContainer.events.on(\"hit\", function(ev) {\r\n\t * console.log(ev.target.baseSprite);\r\n\t * });\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"seriesContainer\": {\r\n\t * \"events\": {\r\n\t * \"hit\": function(ev) {\r\n\t * console.log(ev.target.baseSprite);\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @readonly\r\n\t * @return Base chart object\r\n\t */\r\n\tpublic get baseSprite(): $type.Optional<Sprite> {\r\n\t\tif (this.isBaseSprite) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.baseSprite;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Target to use for URL clicks:\r\n\t *\r\n\t * * _blank\r\n\t * * _self (default)\r\n\t * * _parent\r\n\t * * _top\r\n\t * * Name of the window/frame\r\n\t *\r\n\t * Ignored if `url` is not set.\r\n\t *\r\n\t * @param value URL target\r\n\t */\r\n\tpublic set urlTarget(value: string) {\r\n\t\tthis.setPropertyValue(\"urlTarget\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return URL target\r\n\t */\r\n\tpublic get urlTarget(): string {\r\n\t\treturn this.getPropertyValue(\"urlTarget\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles URL transition on element click.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev An event object\r\n\t */\r\n\tpublic urlHandler(ev: AMEvent<Sprite, ISpriteEvents>[\"hit\"]): void {\r\n\t\t// Is URL set?\r\n\t\tif ($utils.isNotEmpty(this.url)) {\r\n\t\t\t// Proceed to the URL\r\n\t\t\tlet url = this.populateString(this.url);\r\n\t\t\tif (this.urlTarget === \"_self\") {\r\n\t\t\t\twindow.location.href = url;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twindow.open(url, this.urlTarget);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * SWIPING GESTURE TRACKING\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns element's swipe gesture options.\r\n\t *\r\n\t * @return Swipe gesture options\r\n\t */\r\n\tpublic get swipeOptions(): ISwipeOptions {\r\n\t\tif (!this.interactions.swipeOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.swipeOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.swipeOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.swipeOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if element is swipeable.\r\n\t *\r\n\t * Swipable element will invoke `swipe`, `swipeleft` and `swiperight` events,\r\n\t * when quick horizontal drag action is performed with either mouse or touch.\r\n\t *\r\n\t * Please note that combining swipe and drag is possible, however will incur\r\n\t * a slight but noticeable delay in drag start.\r\n\t *\r\n\t * @param value Element swipable?\r\n\t */\r\n\tpublic set swipeable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"swipeable\", value)) {\r\n\t\t\tthis.applyCursorStyle();\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.interactions.swipeable = value;\r\n\t\t\t}\r\n\t\t\t//interaction.processSwipeable(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element swipable?\r\n\t */\r\n\tpublic get swipeable(): boolean {\r\n\t\treturn this.getPropertyValue(\"swipeable\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * POINTER TRACKING\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Indicates if the element is trackable (mouse position over it is reported to\r\n\t * event listeners).\r\n\t *\r\n\t * Will invoke `track` events whenever pointer (cursor) changes position\r\n\t * while over element.\r\n\t *\r\n\t * Please note, touch devices will also invoke `track` events when touch\r\n\t * point is moved while holding down on a trackable element.\r\n\t *\r\n\t * @param value Track cursor movement over element?\r\n\t */\r\n\tpublic set trackable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"trackable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.trackable = value;\r\n\t\t\t}\r\n\t\t\t//interaction.processTrackable(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Track cursor movement over element?\r\n\t */\r\n\tpublic get trackable(): boolean {\r\n\t\treturn this.getPropertyValue(\"trackable\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * MOUSE-WHEEL RELATED\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Indicates if the element can be interacted with mouse wheel.\r\n\t *\r\n\t * Will invoke `wheel`, `wheelup`, `wheeldown`, `wheelleft`, and `wheelright`\r\n\t * events when using mouse wheel over the element.\r\n\t *\r\n\t * @param value Mouse wheel events enabled?\r\n\t */\r\n\tpublic set wheelable(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"wheelable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.wheelable = value;\r\n\t\t\t}\r\n\t\t\t//interaction.processWheelable(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Mouse wheel events enabled?\r\n\t */\r\n\tpublic get wheelable(): boolean {\r\n\t\treturn this.getPropertyValue(\"wheelable\");\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * RESIZE\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Indicates if this element is resizable.\r\n\t *\r\n\t * Enabling resize will turn on various interactions on the element. Their\r\n\t * actual functionality will depend on other properties.\r\n\t *\r\n\t * If the element also `draggable`, resize will only happen with two points\r\n\t * of contact on a touch device.\r\n\t *\r\n\t * If the element is not draggable, resize can be performed with just one\r\n\t * point of contact, touch or mouse.\r\n\t *\r\n\t * Will invoke `resize` event every time the size of the element changes.\r\n\t *\r\n\t * @param value Element resizable?\r\n\t */\r\n\tpublic set resizable(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"resizable\", value)) {\r\n\t\t\tif (!value && !this.isInteractive()) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.applyCursorStyle();\r\n\t\t\t\tthis.interactions.resizable = value;\r\n\t\t\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\t\t\tthis.interactions.setEventDisposer(\"sprite-resizable\", value, () => new MultiDisposer([\r\n\t\t\t\t\tthis.events.on(\"down\", this.handleDown, this, false),\r\n\t\t\t\t\tthis.events.on(\"resize\", this.handleResize, this, false)\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element resizable?\r\n\t */\r\n\tpublic get resizable(): boolean {\r\n\t\treturn this.getPropertyValue(\"resizable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles resize intermediate step.\r\n\t *\r\n\t * By default this method resizes actual element. Each element, can override\r\n\t * this method to implement their own resize logic.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleResize(ev: AMEvent<Sprite, ISpriteEvents>[\"resize\"]): void {\r\n\t\tif (!this.interactions.isTouchProtected || !ev.touch) {\r\n\t\t\tthis._isResized = true;\r\n\r\n\t\t\tthis.scale = this.interactions.originalScale * ev.scale;\r\n\r\n\t\t\tthis.validatePosition();\r\n\t\t\t/*center: (io.draggable\r\n\t\t\t? $math.getMidPoint(point1, point2)\r\n\t\t\t: {\r\n\t\t\t\t\"x\": io.originalPosition.x,\r\n\t\t\t\t\"y\": io.originalPosition.y\r\n\t\t\t})*/\r\n\t\t\t//this.moveTo(this.originalPosition.x + ev.shift.x, this.originalPosition.y + ev.shift.y);\r\n\t\t\tif (this.draggable || this.dragWhileResize) {\r\n\t\t\t\tthis._isDragged = false;\r\n\t\t\t\tlet svgPoint1: IPoint = $utils.documentPointToSvg(ev.point1, this.htmlContainer, this.svgContainer.cssScale);\r\n\t\t\t\tlet svgPoint2: IPoint = $utils.documentPointToSvg(ev.point2, this.htmlContainer, this.svgContainer.cssScale);\r\n\t\t\t\tlet svgMidPoint: IPoint = $math.getMidPoint(svgPoint1, svgPoint2);\r\n\r\n\t\t\t\tlet parentPoint1: IPoint = $utils.documentPointToSprite(ev.startPoint1, this._parent);\r\n\t\t\t\tlet parentPoint2: IPoint = $utils.documentPointToSprite(ev.startPoint2, this._parent);\r\n\r\n\t\t\t\tlet originalPosition: Optional<IPoint> = this.interactions.originalPosition;\r\n\t\t\t\tlet originalScale: number = this.interactions.originalScale;\r\n\r\n\t\t\t\tif (originalPosition) {\r\n\t\t\t\t\tlet spritePoint1: IPoint = { x: (parentPoint1.x - originalPosition.x) / originalScale, y: (parentPoint1.y - originalPosition.y) / originalScale };\r\n\t\t\t\t\tlet spritePoint2: IPoint = { x: (parentPoint2.x - originalPosition.x) / originalScale, y: (parentPoint2.y - originalPosition.y) / originalScale };\r\n\r\n\t\t\t\t\tlet spriteMidPoint: IPoint = $math.getMidPoint(spritePoint1, spritePoint2);\r\n\r\n\t\t\t\t\tlet parentPoint: IPoint = $utils.svgPointToSprite(svgMidPoint, this._parent);\r\n\t\t\t\t\tthis.moveTo({ x: parentPoint.x - spriteMidPoint.x * this.scale, y: parentPoint.y - spriteMidPoint.y * this.scale }, undefined, undefined, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * MOUSE-RELATED\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns element's cursor options.\r\n\t *\r\n\t * Cursor options usually define cursor style for various states of the\r\n\t * hovered element.\r\n\t *\r\n\t * Elements inherit `cursorOptions` from their parents if they don't have\r\n\t * them set explicitly.\r\n\t *\r\n\t * @see {@link ICursorOptions} for a list of available options\r\n\t * @return Cursor options\r\n\t */\r\n\tpublic get cursorOptions(): ICursorOptions {\r\n\t\tif (!this.interactions.cursorOptions) {\r\n\t\t\tif (this.virtualParent) {\r\n\t\t\t\treturn this.virtualParent.cursorOptions;\r\n\t\t\t}\r\n\t\t\tif (this._parent) {\r\n\t\t\t\treturn this._parent.cursorOptions;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.interactions.cursorOptions;\r\n\t}\r\n\r\n\t/**\r\n\t * A shortcut to setting mouse cursor on hover.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": {\r\n\t * // ...\r\n\t * \"slices\": {\r\n\t * \"cursorOverStyle\": \"pointer\"\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @param style An array of styles to apply onhover\r\n\t */\r\n\tpublic set cursorOverStyle(style: Array<IStyleProperty>) {\r\n\t\tif (!this.cursorOptions.overStyle) {\r\n\t\t\tthis.interactions.cursorOptions = {\r\n\t\t\t\tdefaultStyle: this.cursorOptions.defaultStyle\r\n\t\t\t};\r\n\t\t}\r\n\t\tthis.cursorOptions.overStyle = style;\r\n\t\tgetInteraction().applyCursorOverStyle(this.interactions);\r\n\t}\r\n\r\n\t/**\r\n\t * A shortcut to setting mouse cursor when button is pressed down.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": {\r\n\t * // ...\r\n\t * \"slices\": {\r\n\t * \"cursorDownStyle\": \"grabbing\"\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @param style An array of styles to apply onhover\r\n\t */\r\n\tpublic set cursorDownStyle(style: Array<IStyleProperty>) {\r\n\t\tthis.cursorOptions.downStyle = style;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies default cursor styles for interactable elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Determine if this is necessary. Maybe let's not apply any cursor styles by default\r\n\t */\r\n\tpublic applyCursorStyle(): void {\r\n\r\n\t\t// Draggable styles\r\n\t\t/*if (this.draggable) {\r\n\r\n\t\t\tif (!$type.hasValue(this.cursorOptions.overStyle)) {\r\n\t\t\t\tthis.cursorOptions.overStyle = MouseCursorStyle.grab;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.hasValue(this.cursorOptions.downStyle)) {\r\n\t\t\t\tthis.cursorOptions.downStyle = MouseCursorStyle.grabbing;\r\n\t\t\t}\r\n\t\t}*/\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Setting this to `false` will effectively disable all interactivity on the\r\n\t * element.\r\n\t *\r\n\t * @param value Is interaction enabled for this element?\r\n\t */\r\n\tpublic set interactionsEnabled(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\r\n\t\tif (this.setPropertyValue(\"interactionsEnabled\", value)) {\r\n\t\t\tlet pointerEvents = null; // must be null, not \"null\"!\r\n\t\t\tif (!value) {\r\n\t\t\t\tpointerEvents = \"none\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// this is for IE\r\n\t\t\t\tthis.group.node.style.pointerEvents = \"\";\r\n\t\t\t}\r\n\t\t\tthis.group.node.style.pointerEvents = pointerEvents;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is interaction enabled for this element?\r\n\t */\r\n\tpublic get interactionsEnabled(): boolean {\r\n\t\tlet value = this.getPropertyValue(\"interactionsEnabled\");\r\n\t\tif (value === false) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.interactionsEnabled;\r\n\t\t}\r\n\t\tif (this._parent) {\r\n\t\t\treturn this._parent.interactionsEnabled;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * EXPORT-RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * An [[Export]] instance.\r\n\t *\r\n\t * Used to access API of the chart export functionality.\r\n\t *\r\n\t * If `exporting` is not set, the element inherits [[Export]] instance from\r\n\t * its parents.\r\n\t *\r\n\t * Upon request, if no parent has such instance, a new one is created, using\r\n\t * default settings, what in most cases is just enough.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/exporting/} for more info about exporting\r\n\t * @param exp Export\r\n\t */\r\n\tpublic set exporting(exp: Export) {\r\n\t\tthis._exporting.set(exp, exp);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Export instance\r\n\t */\r\n\tpublic get exporting(): Export {\r\n\t\treturn this.getExporting();\r\n\t}\r\n\r\n\t/**\r\n\t * This is here as a method so that inheriting classes could override it.\r\n\t *\r\n\t * @return Export instance\r\n\t */\r\n\tprotected getExporting(): Export {\r\n\t\tlet _export = this._exporting.get();\r\n\r\n\t\tif (_export) {\r\n\t\t\treturn _export;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.isStandaloneInstance || !this._parent) {\r\n\t\t\t\t_export = new Export(this.svgContainer.SVGContainer);\r\n\t\t\t\t_export.sprite = this;\r\n\t\t\t\t_export.language = this.language;\r\n\t\t\t\t_export.numberFormatter = this.numberFormatter;\r\n\t\t\t\t_export.dateFormatter = this.dateFormatter;\r\n\t\t\t\t_export.durationFormatter = this.durationFormatter;\r\n\t\t\t\tthis._exporting.set(_export, _export);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this._parent.exporting;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn _export;\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `false` this element will be omitted when exporting the chart\r\n\t * to an image.\r\n\t *\r\n\t * @default true\r\n\t * @param value Export?\r\n\t */\r\n\tpublic set exportable(value: boolean) {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tthis._exportable = value;\r\n\t\tif (svgContainer) {\r\n\t\t\tif (value) {\r\n\t\t\t\t$array.remove(svgContainer.nonExportableSprites, this);\r\n\t\t\t}\r\n\t\t\telse if ($array.indexOf(svgContainer.nonExportableSprites, this) == -1) {\r\n\t\t\t\tsvgContainer.nonExportableSprites.push(this);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Export?\r\n\t */\r\n\tpublic get exportable(): boolean {\r\n\t\treturn this._exportable;\r\n\t\t/*const svgContainer = this.svgContainer;\r\n\t\treturn !svgContainer || $array.indexOf(svgContainer.nonExportableSprites, this) == -1;*/\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * MODAL/POPUP RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Private method to be used for \"classPrefix\" adapter for modals/popups.\r\n\t *\r\n\t * @param value Prefix\r\n\t */\r\n\tprivate modalPrefix(value: string) {\r\n\t\tvalue = options.classNamePrefix + value;\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a [[Modal]] instance, associated with this chart.\r\n\t * (elements top parent)\r\n\t *\r\n\t * Accessing modal does not make it appear. To make a modal appear, use\r\n\t * `showModal()` method.\r\n\t *\r\n\t * @see {@link Modal} for more information about using Modal windows\r\n\t * @return Modal instance\r\n\t */\r\n\tpublic get modal(): Optional<Modal> {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\tconst modal = svgContainer.modal;\r\n\t\t\tif (!modal.adapter.has(\"classPrefix\", this.modalPrefix)) {\r\n\t\t\t\tmodal.adapter.add(\"classPrefix\", this.modalPrefix);\r\n\t\t\t}\r\n\t\t\treturn modal;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Opens a modal window with specific content (`text` parameter) and,\r\n\t * optionally, `title`.\r\n\t *\r\n\t * The `text` parameter can contain HTML content.\r\n\t *\r\n\t * @see {@link Modal} for more information about using Modal windows\r\n\t * @param text Modal contents\r\n\t * @param title Title for the modal window\r\n\t */\r\n\tpublic openModal(text: string, title?: string): Optional<Modal> {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\treturn svgContainer.openModal(text, title);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides modal window if there is one currently open.\r\n\t */\r\n\tpublic closeModal(): void {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\tsvgContainer.closeModal();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A list of popups for this chart.\r\n\t *\r\n\t * @return Popups\r\n\t */\r\n\tpublic get popups(): Optional<ListTemplate<Popup>> {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\tconst popups = svgContainer.popups;\r\n\t\t\tpopups.template.sprite = this;\r\n\r\n\t\t\tif (!popups.template.adapter.has(\"classPrefix\", this.modalPrefix)) {\r\n\t\t\t\tpopups.template.adapter.add(\"classPrefix\", this.modalPrefix);\r\n\t\t\t}\r\n\t\t\treturn popups;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Creates, opens, and returns a new [[Popup]] window.\r\n\t *\r\n\t * `text` can be any valid HTML.\r\n\t *\r\n\t * `title` is currently not supported.\r\n\t *\r\n\t * @param text Popup contents\r\n\t * @param title Popup title\r\n\t * @return Popup instance\r\n\t */\r\n\tpublic openPopup(text: string, title?: string): Optional<Popup> {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\treturn svgContainer.openPopup(text, title);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Closes all currently open popup windows\r\n\t */\r\n\tpublic closeAllPopups(): void {\r\n\t\tconst svgContainer = this.svgContainer;\r\n\t\tif (svgContainer) {\r\n\t\t\tsvgContainer.closeAllPopups();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * POSITIONAL PROPERTIES AND RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Element's absolute or relative X coordinate.\r\n\t *\r\n\t * If setting both X and Y, please consider using `moveTo()` method instead,\r\n\t * as it will be faster to set both coordinates at once.\r\n\t *\r\n\t * @param value X coordinate\r\n\t */\r\n\tpublic set x(value: number | Percent) {\r\n\t\tif (!this.isDragged) {\r\n\t\t\tthis.setPercentProperty(\"x\", value, false, true, this._positionPrecision, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return X coordinate\r\n\t */\r\n\tpublic get x(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"x\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's current absolute X coordinate in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic get pixelX(): number {\r\n\t\tlet value = $math.fitToRange(this.getPixelX(this.x), this.minX, this.maxX);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelX\", value);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's current relative X coordinate in [[Percent]].\r\n\t *\r\n\t * @return X coordinate ([[Percent]])\r\n\t */\r\n\tpublic get relativeX(): number {\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this.getRelativeX(this.x)\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeX\", this.getRelativeX(this.x));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The smallest allowable absolute X coordinate for this element.\r\n\t *\r\n\t * This is used to contain element movement within certain boundaries.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Min X (px)\r\n\t */\r\n\tpublic set minX(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"minX\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Min X (px)\r\n\t */\r\n\tpublic get minX(): number {\r\n\t\treturn this.getPropertyValue(\"minX\");\r\n\t}\r\n\r\n\t/**\r\n\t * The biggest allowable absolute X coordinate for this element.\r\n\t *\r\n\t * This is used to contain element movement within certain boundaries.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Max X (px)\r\n\t */\r\n\tpublic set maxX(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"maxX\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Max X (px)\r\n\t */\r\n\tpublic get maxX(): number {\r\n\t\treturn this.getPropertyValue(\"maxX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's absolute or relative Y coordinate.\r\n\t *\r\n\t * If setting both X and Y, please consider using `moveTo()` method instead,\r\n\t * as it will be faster to set both coordinates at once.\r\n\t *\r\n\t * @param value Y coordinate\r\n\t */\r\n\tpublic set y(value: number | Percent) {\r\n\t\tif (!this.isDragged) {\r\n\t\t\tthis.setPercentProperty(\"y\", value, false, true, this._positionPrecision, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y coordinate\r\n\t */\r\n\tpublic get y(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"y\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's current absolute Y coordinate in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic get pixelY(): number {\r\n\t\tlet value = $math.fitToRange(this.getPixelY(this.y), this.minY, this.maxY);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelY\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's current relative Y coordinate in [[Percent]].\r\n\t *\r\n\t * @readonly\r\n\t * @return Y coordinate ([[Percent]])\r\n\t */\r\n\tpublic get relativeY(): number {\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this.getRelativeX(this.y);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeY\", this.getRelativeX(this.y));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The smallest allowable absolute Y coordinate for this element.\r\n\t *\r\n\t * This is used to contain element movement within certain boundaries.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Min Y (px)\r\n\t */\r\n\tpublic set minY(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"minY\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Min Y (px)\r\n\t */\r\n\tpublic get minY(): number {\r\n\t\treturn this.getPropertyValue(\"minY\");\r\n\t}\r\n\r\n\t/**\r\n\t * The biggest allowable absolute Y coordinate for this element.\r\n\t *\r\n\t * This is used to contain element movement within certain boundaries.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Max Y (px)\r\n\t */\r\n\tpublic set maxY(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"maxY\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Max Y (px)\r\n\t */\r\n\tpublic get maxY(): number {\r\n\t\treturn this.getPropertyValue(\"maxY\");\r\n\t}\r\n\r\n\t/**\r\n\t * A horizontal offset for the element in pixels.\r\n\t *\r\n\t * Can be negative value for offset to the left.\r\n\t *\r\n\t * @param value Horizontal offset (px)\r\n\t */\r\n\tpublic set dx(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"dx\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal offset (px)\r\n\t */\r\n\tpublic get dx(): number {\r\n\t\treturn this.getPropertyValue(\"dx\");\r\n\t}\r\n\r\n\t/**\r\n\t * A vertical offset for the element in pixels.\r\n\t *\r\n\t * Can be negative value for offset upwards.\r\n\t *\r\n\t * @param value Vertical offset (px)\r\n\t */\r\n\tpublic set dy(value: number) {\r\n\t\tif ($type.isNumber(value)) {\r\n\t\t\tvalue = $math.round(value, this._positionPrecision, true);\r\n\t\t\tthis.setPropertyValue(\"dy\", value, false, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical offset (px)\r\n\t */\r\n\tpublic get dy(): number {\r\n\t\treturn this.getPropertyValue(\"dy\");\r\n\t}\r\n\r\n\t/**\r\n\t * Rotation of the element in degrees. (0-360)\r\n\t *\r\n\t * Note: For convenience purposes, negative values (for counter-clockwise\r\n\t * rotation) and values exceeding 360 can also be used.\r\n\t *\r\n\t * @param value Rotation (0-360)\r\n\t */\r\n\tpublic set rotation(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tthis.setPropertyValue(\"rotation\", value, false, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rotation (0-360)\r\n\t */\r\n\tpublic get rotation(): number {\r\n\t\treturn this.getPropertyValue(\"rotation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls horizontal alignment of the element.\r\n\t *\r\n\t * This is used by parent [[Container]] when layouting its children.\r\n\t *\r\n\t * @param value Horizontal align\r\n\t */\r\n\tpublic set align(value: Align) {\r\n\t\tvalue = <Align>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"align\", value)) {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tthis._parent.invalidateLayout();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal align\r\n\t */\r\n\tpublic get align(): Align {\r\n\t\treturn this.getPropertyValue(\"align\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls vertical alignment of the element.\r\n\t *\r\n\t * This is used by parent [[Container]] when layouting its children.\r\n\t *\r\n\t * @param value Vertical align\r\n\t */\r\n\tpublic set valign(value: VerticalAlign) {\r\n\t\tvalue = <VerticalAlign>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"valign\", value)) {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tthis._parent.invalidateLayout();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical align\r\n\t */\r\n\tpublic get valign(): VerticalAlign {\r\n\t\treturn this.getPropertyValue(\"valign\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls which part of the element to treat as a horizontal center.\r\n\t *\r\n\t * The setting will be used when positioning, resizing and rotating the\r\n\t * element.\r\n\t *\r\n\t * @param value Horizontal center\r\n\t */\r\n\tpublic set horizontalCenter(value: HorizontalCenter) {\r\n\t\tvalue = <HorizontalCenter>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"horizontalCenter\", value)) {\r\n\t\t\tthis.updateCenter();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal center\r\n\t */\r\n\tpublic get horizontalCenter(): HorizontalCenter {\r\n\t\treturn this.getPropertyValue(\"horizontalCenter\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls which part of the element to treat as a vertical center.\r\n\t *\r\n\t * The setting will be used when positioning, resizing and rotating the\r\n\t * element.\r\n\t *\r\n\t * @param value Vertical center\r\n\t */\r\n\tpublic set verticalCenter(value: VerticalCenter) {\r\n\t\tvalue = <VerticalCenter>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"verticalCenter\", value)) {\r\n\t\t\tthis.updateCenter();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical center\r\n\t */\r\n\tpublic get verticalCenter(): VerticalCenter {\r\n\t\treturn this.getPropertyValue(\"verticalCenter\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * DIMENSIONAL PROPERTIES AND RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Maximum allowed width for the element in pixels.\r\n\t *\r\n\t * @param value Maximum width (px)\r\n\t */\r\n\tpublic set maxWidth(value: number) {\r\n\t\tthis.setMaxWidth(value);\r\n\t}\r\n\r\n\tprotected setMaxWidth(value: number) {\r\n\t\tlet prevWidth = this.maxWidth;\r\n\t\tlet prevHeight = this.maxHeight;\r\n\t\tif (this.setPropertyValue(\"maxWidth\", value)) {\r\n\t\t\tif ($type.isNumber(this.relativeWidth)) {\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\r\n\t\t\tconst event: AMEvent<this, ISpriteEvents>[\"maxsizechanged\"] = {\r\n\t\t\t\ttype: \"maxsizechanged\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tpreviousWidth: prevWidth,\r\n\t\t\t\tpreviousHeight: prevHeight\r\n\t\t\t};\r\n\r\n\t\t\tthis.dispatchImmediately(\"maxsizechanged\", event);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Maximum width (px)\r\n\t */\r\n\tpublic get maxWidth(): number {\r\n\t\tlet maxWidth = this.getPropertyValue(\"maxWidth\");\r\n\r\n\t\tif (!$type.isNumber(maxWidth)) {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tlet parentWidth = this._parent.maxWidth;\r\n\t\t\t\tif (this._parent.layout != \"absolute\" && this.align != \"none\" && this.align != undefined) {\r\n\t\t\t\t\tparentWidth = parentWidth - this.pixelMarginLeft - this.pixelMarginRight;\r\n\t\t\t\t}\r\n\t\t\t\treturn parentWidth;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn maxWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum allowed height for the element in pixels.\r\n\t *\r\n\t * @param value Maximum height (px)\r\n\t */\r\n\tpublic set maxHeight(value: number) {\r\n\t\tthis.setMaxHeight(value);\r\n\t}\r\n\r\n\tprotected setMaxHeight(value: number) {\r\n\r\n\t\tlet prevWidth = this.maxWidth;\r\n\t\tlet prevHeight = this.maxHeight;\r\n\r\n\t\tif (this.setPropertyValue(\"maxHeight\", value)) {\r\n\r\n\t\t\tif ($type.isNumber(this.relativeHeight)) {\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\r\n\t\t\tconst event: AMEvent<this, ISpriteEvents>[\"maxsizechanged\"] = {\r\n\t\t\t\ttype: \"maxsizechanged\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tpreviousWidth: prevWidth,\r\n\t\t\t\tpreviousHeight: prevHeight\r\n\t\t\t};\r\n\r\n\t\t\tthis.dispatchImmediately(\"maxsizechanged\", event);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Maximum height (px)\r\n\t */\r\n\tpublic get maxHeight(): number {\r\n\t\tlet maxHeight = this.getPropertyValue(\"maxHeight\");\r\n\t\tif (!$type.isNumber(maxHeight)) {\r\n\t\t\tif (this._parent) {\r\n\t\t\t\tlet parentHeight = this._parent.maxHeight;\r\n\t\t\t\tif (this._parent.layout != \"absolute\" && this.valign != \"none\" && this.valign != undefined) {\r\n\t\t\t\t\tparentHeight = parentHeight - this.pixelMarginTop - this.pixelMarginBottom;\r\n\t\t\t\t}\r\n\t\t\t\treturn parentHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn maxHeight;\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum width of the element in pixels.\r\n\t *\r\n\t * Set to `undefined` to remove the limit.\r\n\t *\r\n\t * @param value Minimum width (px)\r\n\t */\r\n\tpublic set minWidth(value: Optional<number>) {\r\n\t\tthis.setPropertyValue(\"minWidth\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Minimum width (px)\r\n\t */\r\n\tpublic get minWidth(): Optional<number> {\r\n\t\treturn this.getPropertyValue(\"minWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum height for the element in pixels.\r\n\t *\r\n\t * Set to `undefined` to remove the limit.\r\n\t *\r\n\t * @param value Minimum height (px)\r\n\t */\r\n\tpublic set minHeight(value: Optional<number>) {\r\n\t\tthis.setPropertyValue(\"minHeight\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Minimum height (px)\r\n\t */\r\n\tpublic get minHeight(): Optional<number> {\r\n\t\treturn this.getPropertyValue(\"minHeight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's absolute or relative width.\r\n\t *\r\n\t * The width can either be absolute, set in numeric pixels, or relative, set\r\n\t * in [[Percent]].\r\n\t *\r\n\t * Relative width will be calculated using closest measured ancestor\r\n\t * [[Container]].\r\n\t *\r\n\t * NOTE: `width` is an accessor, which allows setting width in pixels or\r\n\t * percent. It is a sort of a \"shortcut\" for the users. Actual renderer does\r\n\t * not ever use it. It uses either `pixelWidth` or `percentWidth`, so if\r\n\t * you need to add an adapter for width add it for either of the two\r\n\t * properties - whichever suits your requirements.\r\n\t *\r\n\t * @param value Width (numeric in pixels or relative)\r\n\t */\r\n\tpublic set width(value: number | Percent) {\r\n\r\n\t\tlet changed: boolean = this.setPercentProperty(\"width\", value, true, false, this._positionPrecision, true);\r\n\r\n\t\tif (changed) {\r\n\t\t\tthis.percentWidth = undefined;\r\n\t\t\tthis.relativeWidth = undefined;\r\n\r\n\t\t\tif (value instanceof Percent) {\r\n\t\t\t\tthis.percentWidth = value.percent;\r\n\t\t\t\tif ($type.isNumber(this._pixelWidth)) {\r\n\t\t\t\t\tthis.maxWidth = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tthis._pixelWidth = undefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._pixelWidth = Number(value);\r\n\t\t\t\t//this._measuredWidth = this._pixelWidth;\r\n\t\t\t\tthis.maxWidth = this._pixelWidth;\r\n\t\t\t}\r\n\t\t\tthis.invalidatePosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (absolute or relative)\r\n\t */\r\n\tpublic get width(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"width\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's absolute or relative height.\r\n\t *\r\n\t * The height can either be absolute, set in numeric pixels, or relative, set\r\n\t * in [[Percent]].\r\n\t *\r\n\t * Relative height will be calculated using closest measured ancestor\r\n\t * [[Container]].\r\n\t *\r\n\t * NOTE: `height` is an accessor, which allows setting height in pixels or\r\n\t * percent. It is a sort of a \"shortcut\" for the users. Actual renderer does\r\n\t * not ever use it. It uses either `pixelHeight` or `percentHeight`, so if\r\n\t * you need to add an adapter for height add it for either of the two\r\n\t * properties - whichever suits your requirements.\r\n\t *\r\n\t * @param value Height (numeric in pixels or relative)\r\n\t */\r\n\tpublic set height(value: number | Percent) {\r\n\r\n\t\tlet changed: boolean = this.setPercentProperty(\"height\", value, true, false, this._positionPrecision, true);\r\n\r\n\t\tif (changed) {\r\n\t\t\tthis.percentHeight = undefined;\r\n\t\t\tthis._relativeHeight = undefined;\r\n\r\n\t\t\tif (value instanceof Percent) {\r\n\t\t\t\tthis.percentHeight = value.percent;\r\n\t\t\t\tif ($type.isNumber(this._pixelHeight)) {\r\n\t\t\t\t\tthis.maxHeight = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tthis._pixelHeight = undefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._pixelHeight = Number(value);\r\n\t\t\t\t//this._measuredHeight = this._pixelHeight;\r\n\t\t\t\tthis.maxHeight = this._pixelHeight; // yes, we reset maxWidth\r\n\t\t\t}\r\n\r\n\t\t\tthis.invalidatePosition();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return height (absolute or relative)\r\n\t */\r\n\tpublic get height(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"height\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's width in pixels, if width was set. For actual width use measuredWidth property.\r\n\t *\r\n\t * @readonly\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get pixelWidth(): number {\r\n\t\tlet width: number;\r\n\t\tif ($type.isNumber(this.percentWidth)) {\r\n\t\t\twidth = this.maxWidth;\r\n\t\t}\r\n\t\telse if ($type.isNumber(this._pixelWidth)) {\r\n\t\t\twidth = this._pixelWidth;\r\n\t\t}\r\n\t\telse {\r\n\t\t\twidth = 0;\r\n\t\t}\r\n\r\n\t\tconst minWidth = this.minWidth;\r\n\r\n\t\tif (minWidth != null && width < minWidth) {\r\n\t\t\twidth = minWidth;\r\n\t\t}\r\n\t\tlet value = $math.round(width, this._positionPrecision, true);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelWidth\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's height in pixels. For actual height use measuredHeight property.\r\n\t *\r\n\t * @readonly\r\n\t * @return Height (px)\r\n\t */\r\n\tpublic get pixelHeight(): number {\r\n\t\tlet height: number;\r\n\t\tif ($type.isNumber(this.percentHeight)) {\r\n\t\t\theight = this.maxHeight;\r\n\t\t}\r\n\t\telse if ($type.isNumber(this._pixelHeight)) {\r\n\t\t\theight = this._pixelHeight;\r\n\t\t}\r\n\t\telse {\r\n\t\t\theight = 0//this._measuredHeightSelf;\r\n\t\t}\r\n\r\n\t\tconst minHeight = this.minHeight;\r\n\r\n\t\tif (minHeight != null && height < minHeight) {\r\n\t\t\theight = minHeight;\r\n\t\t}\r\n\t\tlet value = $math.round(height, this._positionPrecision, true);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelHeight\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Element's relative width in [[Percent]].\r\n\t * @ignore\r\n\t *\r\n\t * @param value Relative width\r\n\t */\r\n\tpublic set relativeWidth(value: $type.Optional<number>) {\r\n\t\tif (this._relativeWidth != value) {\r\n\t\t\tthis._relativeWidth = value;\r\n\t\t\t//\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Relative width\r\n\t * @ignore\r\n\t */\r\n\tpublic get relativeWidth(): $type.Optional<number> {\r\n\t\tconst relativeWidth = this._relativeWidth;\r\n\r\n\t\tif ($type.isNumber(relativeWidth)) {\r\n\t\t\tif (!this._adapterO) {\r\n\t\t\t\treturn relativeWidth;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this._adapterO.apply(\"relativeWidth\", relativeWidth);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Element's relative height in [[Percent]].\r\n\t *\r\n\t * @param value Relative height\r\n\t * @ignore\r\n\t */\r\n\tpublic set relativeHeight(value: $type.Optional<number>) {\r\n\t\tif (this._relativeHeight != value) {\r\n\t\t\tthis._relativeHeight = value;\r\n\t\t\t//\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Relative height\r\n\t * @ignore\r\n\t */\r\n\tpublic get relativeHeight(): $type.Optional<number> {\r\n\t\tconst relativeHeight = this._relativeHeight;\r\n\r\n\t\tif ($type.isNumber(relativeHeight)) {\r\n\t\t\tif (!this._adapterO) {\r\n\t\t\t\treturn relativeHeight;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this._adapterO.apply(\"relativeHeight\", relativeHeight);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's measured width in pixels.\r\n\t *\r\n\t * A measured width is actual width of contents plus `paddingRight` and* `paddingLeft`, relative to sprite parent, meaning that\r\n\t * rotation and scale is taken into account.\r\n\t *\r\n\t * @readonly\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get measuredWidth(): number {\r\n\r\n\t\tif (this.disabled || this.__disabled) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._measuredWidth;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"measuredWidth\", this._measuredWidth);\r\n\t\t}\r\n\t\t// it's not good to fit to min/max range as then rotations and scale won't be taken into account\r\n\t\t//return this.adapter.apply(\"measuredWidth\", $math.fitToRange(this._measuredWidth, this.minWidth, this.maxWidth));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns elements's measured height in pixels.\r\n\t *\r\n\t * A measured height is actual height of contents plus `paddingTop` and `paddingBottom`, relative to sprite parent, meaning that\r\n\t * rotation and scale taken into account.\r\n\t *\r\n\t * @readonly\r\n\t * @return Height (px)\r\n\t */\r\n\tpublic get measuredHeight(): number {\r\n\r\n\t\tif (this.disabled || this.__disabled) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// it's not good to fit to min/max range as then rotations and scale won't be taken into account\r\n\t\t//return this.adapter.apply(\"measuredHeight\", $math.fitToRange(this._measuredHeight, this.minHeight, this.maxHeight));\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._measuredHeight;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"measuredHeight\", this._measuredHeight);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's measured width plus its left and right margins in\r\n\t * pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Outer width (px)\r\n\t */\r\n\tpublic get outerWidth(): number {\r\n\t\tlet value = this.pixelWidth + this.pixelMarginRight + this.pixelMarginLeft;\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"outerWidth\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's measured height plus its top and bottom margins in\r\n\t * pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Outer height (px)\r\n\t */\r\n\tpublic get outerHeight(): number {\r\n\t\tlet value = this.pixelHeight + this.pixelMarginTop + this.pixelMarginBottom;\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"outerHeight\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's measured inner width in pixels.\r\n\t *\r\n\t * Inner width is actual available space for content, e.g. element's width\r\n\t * minus horizontal padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Inner width (px)\r\n\t */\r\n\tpublic get innerWidth(): number {\r\n\t\tlet value = Math.max(0, this.pixelWidth - this.pixelPaddingRight - this.pixelPaddingLeft);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"innerWidth\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's measured inner height in pixels.\r\n\t *\r\n\t * Inner height is actual available space for content, e.g. element's height\r\n\t * minus vertical padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Inner height (px)\r\n\t */\r\n\tpublic get innerHeight(): number {\r\n\t\tlet value = Math.max(0, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"innerHeight\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's current \"global\" scale.\r\n\t *\r\n\t * Scale values accumulate over hierarchy of elements.\r\n\t *\r\n\t * E.g. if a [[Container]] has `scale = 2` and it's child has a `scale = 2`,\r\n\t * the child's `globalScale` will be 4. (a multitude of `2 x 2`)\r\n\t *\r\n\t * @readonly\r\n\t * @return Global scale\r\n\t */\r\n\tpublic get globalScale(): number {\r\n\t\tlet scale: number = this.scale;\r\n\t\tif (this._parent) {\r\n\t\t\tscale = scale * this._parent.globalScale;\r\n\t\t}\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn scale;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"globalScale\", scale);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Scale of the element.\r\n\t *\r\n\t * The scale is set from 0 (element reduced to nothing) to 1 (default size).\r\n\t * * 2 will mean element is increased twice.\r\n\t * * 0.5 - reduced by 50%.\r\n\t *\r\n\t * Etc.\r\n\t *\r\n\t * @param value Scale (0-1)\r\n\t */\r\n\tpublic set scale(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (value < 0) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tif (value != this.getPropertyValue(\"scale\")) {\r\n\t\t\tthis.setPropertyValue(\"scale\", value, false, true);\r\n\t\t\tthis.handleGlobalScale();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Scale (0-1)\r\n\t */\r\n\tpublic get scale(): number {\r\n\t\treturn this.getPropertyValue(\"scale\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets all four margins for the element at once.\r\n\t *\r\n\t * Margins are set in pixels.\r\n\t *\r\n\t * @param top Top margin\r\n\t * @param right Right margin\r\n\t * @param bottom Bottom margin\r\n\t * @param left Left margin\r\n\t * @return Current element\r\n\t */\r\n\tpublic margin(top: number, right: number, bottom: number, left: number): Sprite {\r\n\t\tthis.marginTop = top;\r\n\t\tthis.marginRight = right;\r\n\t\tthis.marginBottom = bottom;\r\n\t\tthis.marginLeft = left;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Left margin - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Margin value\r\n\t */\r\n\tpublic set marginLeft(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"marginLeft\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Margin value\r\n\t */\r\n\tpublic get marginLeft(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"marginLeft\");\r\n\t}\r\n\r\n\t/**\r\n\t * Right margin - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Margin value\r\n\t */\r\n\tpublic set marginRight(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"marginRight\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Margin value\r\n\t */\r\n\tpublic get marginRight(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"marginRight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Top margin - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Margin value\r\n\t */\r\n\tpublic set marginTop(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"marginTop\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Margin value\r\n\t */\r\n\tpublic get marginTop(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"marginTop\");\r\n\t}\r\n\r\n\t/**\r\n\t * Bottom margin - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Margin value\r\n\t */\r\n\tpublic set marginBottom(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"marginBottom\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Margin value\r\n\t */\r\n\tpublic get marginBottom(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"marginBottom\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current right margin in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Right margin (px)\r\n\t */\r\n\tpublic get pixelMarginRight(): number {\r\n\t\tlet value = this.getPixelX(this.marginRight);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelMarginRight\", value);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative right margin.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative right margin\r\n\t */\r\n\tpublic get relativeMarginRight(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\tlet value = this.getRelativeX(this.marginRight);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeMarginRight\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current left margin in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Left margin (px)\r\n\t */\r\n\tpublic get pixelMarginLeft(): number {\r\n\t\tlet value = this.getPixelX(this.marginLeft);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelMarginLeft\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative left margin.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative left margin\r\n\t */\r\n\tpublic get relativeMarginLeft(): number {\r\n\t\t//@todo Maybe use [[Percent]]?\r\n\t\tlet value = this.getRelativeX(this.marginLeft);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeMarginLeft\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current top margin in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Top margin (px)\r\n\t */\r\n\tpublic get pixelMarginTop(): number {\r\n\t\tlet value = this.getPixelY(this.marginTop);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelMarginTop\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative top margin.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative top margin\r\n\t */\r\n\tpublic get relativeMarginTop(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\tlet value = this.getRelativeY(this.marginTop);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeMarginTop\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current bottom margin in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Bottom margin (px)\r\n\t */\r\n\tpublic get pixelMarginBottom(): number {\r\n\t\tlet value = this.getPixelY(this.marginBottom);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"pixelMarginBottom\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative bottom margin.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative bottom margin\r\n\t */\r\n\tpublic get relativeMarginBottom(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\tlet value = this.getRelativeY(this.marginBottom);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"relativeMarginBottom\", value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets padding for the element in pixels.\r\n\t *\r\n\t * @param top Top padding (px)\r\n\t * @param right Right padding (px)\r\n\t * @param bottom Bottom padding (px)\r\n\t * @param left Left padding (px)\r\n\t * @return Element\r\n\t */\r\n\tpublic padding(top: number, right: number, bottom: number, left: number): Sprite {\r\n\t\tthis.paddingTop = top;\r\n\t\tthis.paddingRight = right;\r\n\t\tthis.paddingBottom = bottom;\r\n\t\tthis.paddingLeft = left;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Left padding - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Padding value\r\n\t */\r\n\tpublic set paddingLeft(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"paddingLeft\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Padding value\r\n\t */\r\n\tpublic get paddingLeft(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"paddingLeft\");\r\n\t}\r\n\r\n\t/**\r\n\t * Right padding - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Padding value\r\n\t */\r\n\tpublic set paddingRight(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"paddingRight\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Padding value\r\n\t */\r\n\tpublic get paddingRight(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"paddingRight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Top padding - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Padding value\r\n\t */\r\n\tpublic set paddingTop(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"paddingTop\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Padding value\r\n\t */\r\n\tpublic get paddingTop(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"paddingTop\");\r\n\t}\r\n\r\n\t/**\r\n\t * Bottom padding - absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Padding value\r\n\t */\r\n\tpublic set paddingBottom(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"paddingBottom\", value, true, true, this._positionPrecision, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Padding value\r\n\t */\r\n\tpublic get paddingBottom(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"paddingBottom\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current right padding in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Right padding (px)\r\n\t */\r\n\tpublic get pixelPaddingRight(): number {\r\n\t\treturn this.getPixelX(this.paddingRight);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative right padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative right padding\r\n\t */\r\n\tpublic get relativePaddingRight(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\treturn this.getRelativeX(this.paddingRight);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current left padding in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Left padding (px)\r\n\t */\r\n\tpublic get pixelPaddingLeft(): number {\r\n\t\treturn this.getPixelX(this.paddingLeft);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative left padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative left padding\r\n\t */\r\n\tpublic get relativePaddingLeft(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\treturn this.getRelativeX(this.paddingLeft);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current top padding in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Top padding (px)\r\n\t */\r\n\tpublic get pixelPaddingTop(): number {\r\n\t\treturn this.getPixelY(this.paddingTop);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative top padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative top padding\r\n\t */\r\n\tpublic get relativePaddingTop(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\treturn this.getRelativeY(this.paddingTop);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current bottom padding in pixels.\r\n\t *\r\n\t * @readonly\r\n\t * @return Bottom padding (px)\r\n\t */\r\n\tpublic get pixelPaddingBottom(): number {\r\n\t\treturn this.getPixelY(this.paddingBottom);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current relative bottom padding.\r\n\t *\r\n\t * @readonly\r\n\t * @return Relative bottom padding\r\n\t */\r\n\tpublic get relativePaddingBottom(): number {\r\n\t\t// @todo Maybe use [[Percent]]?\r\n\t\treturn this.getRelativeY(this.paddingBottom);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * APPEARANCE-RELATED PROPERTIES AND RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Path of Sprite element\r\n\t */\r\n\tpublic set path(value: string) {\r\n\t\tthis.setPath(value);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setPath(value: string): boolean {\r\n\t\tif (this.setPropertyValue(\"path\", value)) {\r\n\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\tvalue = this._adapterO.apply(\"path\", value);\r\n\t\t\t}\r\n\r\n\t\t\tif (!this._isPath) {\r\n\t\t\t\tif (!this.element || (this.element.node && !(this.element.node instanceof SVGPathElement))) {\r\n\t\t\t\t\tthis.element = this.paper.add(\"path\");\r\n\t\t\t\t}\r\n\t\t\t\tthis._isPath = true;\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\tthis.element.attr({ \"d\": value });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.element.removeAttr(\"d\");\r\n\t\t\t}\r\n\t\t\tthis.invalidatePosition();\r\n\t\t\t// otherwise is 0x0\r\n\t\t\tif (!this.inited) {\r\n\t\t\t\tthis.events.once(\"inited\", this.validatePosition, this, false);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Path of a Sprite element\r\n\t */\r\n\tpublic get path(): string {\r\n\t\treturn this.getPropertyValue(\"path\");\r\n\t}\r\n\r\n\t/**\r\n\t * [[ColorModifier]] that can be used to modify color and pattern of the\r\n\t * element's fill, e.g. create gradients.\r\n\t *\r\n\t * @param value Fill color modifiier\r\n\t */\r\n\tpublic set fillModifier(value: ColorModifier) {\r\n\t\tif (this.setPropertyValue(\"fillModifier\", value)) {\r\n\t\t\tthis.setFill(this.fill);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Fill color modifier\r\n\t */\r\n\tpublic get fillModifier(): ColorModifier {\r\n\t\treturn this.getPropertyValue(\"fillModifier\");\r\n\t}\r\n\r\n\t/**\r\n\t * [[ColorModifier]] that can be used to modify color and pattern of the\r\n\t * element's stroke (outline), e.g. create gradients.\r\n\t *\r\n\t * @param value Stroke color modifier\r\n\t */\r\n\tpublic set strokeModifier(value: ColorModifier) {\r\n\t\tthis.setPropertyValue(\"strokeModifier\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Stroke color modifier\r\n\t */\r\n\tpublic get strokeModifier(): ColorModifier {\r\n\t\treturn this.getPropertyValue(\"strokeModifier\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's fill opacity.\r\n\t *\r\n\t * Opacity ranges from 0 (fully transparent) to 1 (fully opaque).\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set fillOpacity(value: number) {\r\n\t\tvalue = $math.toNumberRange(value, 0, 1);\r\n\t\tif (this.setPropertyValue(\"fillOpacity\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"fill-opacity\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Opacity (0-9)\r\n\t */\r\n\tpublic get fillOpacity(): number {\r\n\t\treturn this.getPropertyValue(\"fillOpacity\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's fill color or pattern.\r\n\t *\r\n\t * @param value Fill\r\n\t */\r\n\tpublic set fill(value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>) {\r\n\t\tthis.setFill(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets actual `fill` property on the SVG element, including applicable color\r\n\t * modifiers.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Fill\r\n\t */\r\n\tprotected setFill(value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>): void {\r\n\t\tif (!$type.isObject(value) || \"r\" in value) {\r\n\t\t\tvalue = toColor(value);\r\n\t\t}\r\n\r\n\t\tif (this.setColorProperty(\"fill\", value) || this.fillModifier) {\r\n\t\t\t// this can not go into next if, as value is turned to Gradient\r\n\t\t\tif (value instanceof Color) {\r\n\t\t\t\tif (this.fillModifier) {\r\n\t\t\t\t\tvalue = this.fillModifier.modify(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.realFill = value;\r\n\r\n\t\t\t// todo: review this place when some Color type will be added\r\n\t\t\tif (value instanceof Color) {\r\n\t\t\t\tthis.setSVGAttribute({ \"fill\": value.toString() });\r\n\t\t\t}\r\n\t\t\telse if (!$type.hasValue(value)) {\r\n\t\t\t\tthis.removeSVGAttribute(\"fill\");\r\n\t\t\t}\r\n\t\t\telse if (<any>value instanceof Pattern || <any>value instanceof LinearGradient || <any>value instanceof RadialGradient) {\r\n\t\t\t\tlet fill = value;\r\n\t\t\t\tfill.paper = this.paper;\r\n\t\t\t\tthis.setSVGAttribute({ \"fill\": \"url(\\\"\" + $utils.getBaseURI() + fill.id + \"\\\")\" });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Fill\r\n\t */\r\n\tpublic get fill(): $type.Optional<Color | Pattern | LinearGradient | RadialGradient> {\r\n\t\treturn this.getPropertyValue(\"fill\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's opacity.\r\n\t *\r\n\t * Opacity setting can range from 0 (fully transparent) to 1 (fully opaque).\r\n\t *\r\n\t * ATTENTION: It is highly not recommended to use `opacity` directly on the\r\n\t * element. The charts use `opacity` to hide/show elements, so your setting\r\n\t * might be lost if element is hidden and then later shown.\r\n\t *\r\n\t * Instead use methods `hide()` and `show()` to completely toggle off and on\r\n\t * the element.\r\n\t *\r\n\t * Or, use properties `fillOpacity` and `strokeOpacity`, if you need to make\r\n\t * the element semi-transparent.\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set opacity(value: number) {\r\n\t\tvalue = $math.toNumberRange(value, 0, 1);\r\n\t\tif (this.setPropertyValue(\"opacity\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"opacity\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Opacity (0-1)\r\n\t */\r\n\tpublic get opacity(): number {\r\n\t\treturn this.getPropertyValue(\"opacity\");\r\n\t}\r\n\r\n\t/**\r\n\t * Element's stroke (outline) color or pattern.\r\n\t *\r\n\t * @param value Stroke setting\r\n\t */\r\n\tpublic set stroke(value: Color | Pattern | LinearGradient | RadialGradient) {\r\n\t\tthis.setStroke(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets actual `stroke` property on the SVG element, including applicable\r\n\t * color modifiers.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Stroke setting\r\n\t */\r\n\tprotected setStroke(value: Color | Pattern | LinearGradient | RadialGradient) {\r\n\t\tif (!$type.isObject(value) || \"r\" in value) {\r\n\t\t\tvalue = toColor(value);\r\n\t\t}\r\n\r\n\t\tif (this.setColorProperty(\"stroke\", value) || this.strokeModifier) {\r\n\r\n\t\t\t// this can not go into next if, as value is turned to Gradient\r\n\t\t\tif (value instanceof Color) {\r\n\t\t\t\tif (this.strokeModifier) {\r\n\t\t\t\t\tvalue = this.strokeModifier.modify(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.realStroke = value;\r\n\r\n\t\t\tif (value instanceof Color) {\r\n\t\t\t\tif (value.hex == \"none\") {\r\n\t\t\t\t\tthis.removeSVGAttribute(\"stroke\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.setSVGAttribute({ \"stroke\": value.toString() });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (!$type.hasValue(value)) {\r\n\t\t\t\tthis.removeSVGAttribute(\"stroke\");\r\n\t\t\t}\r\n\t\t\telse if (<any>value instanceof Pattern || <any>value instanceof LinearGradient || <any>value instanceof RadialGradient) {\r\n\t\t\t\tlet stroke = value;\r\n\t\t\t\tstroke.paper = this.paper;\r\n\t\t\t\tthis.setSVGAttribute({ \"stroke\": \"url(\\\"\" + $utils.getBaseURI() + stroke.id + \"\\\")\" });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Stroke setting\r\n\t */\r\n\tpublic get stroke(): Color | Pattern | LinearGradient | RadialGradient {\r\n\t\treturn this.getPropertyValue(\"stroke\");\r\n\t}\r\n\r\n\t/**\r\n\t * Stroke (outline) opacity.\r\n\t *\r\n\t * The values may range from 0 (fully transparent) to 1 (fully opaque).\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set strokeOpacity(value: number) {\r\n\t\tvalue = $math.toNumberRange(value, 0, 1);\r\n\t\tif (this.setPropertyValue(\"strokeOpacity\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"stroke-opacity\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Opacity (0-1)\r\n\t */\r\n\tpublic get strokeOpacity(): number {\r\n\t\treturn this.getPropertyValue(\"strokeOpacity\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if the element's stroke (outline) should remain keep constant\r\n\t * thicnkess and do not scale when the whole element is resized.\r\n\t *\r\n\t * @param value Do not scale stroke (outline)\r\n\t */\r\n\tpublic set nonScalingStroke(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (this.setPropertyValue(\"nonScalingStroke\", value)) {\r\n\t\t\tthis.strokeWidth = this.strokeWidth;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Do not scale stroke (outline)\r\n\t */\r\n\tpublic get nonScalingStroke(): boolean {\r\n\t\treturn this.getPropertyValue(\"nonScalingStroke\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if element should keep constant size and not scale even if there is\r\n\t * space available, or it does not fit.\r\n\t *\r\n\t * @param value Is element scaleable?\r\n\t */\r\n\tpublic set nonScaling(value: boolean) {\r\n\t\t// @todo Description (review)\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tthis.setPropertyValue(\"nonScaling\", value, false, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is element scaleable?\r\n\t */\r\n\tpublic get nonScaling(): boolean {\r\n\t\treturn this.getPropertyValue(\"nonScaling\");\r\n\t}\r\n\r\n\t/**\r\n\t * Stroke (outline) thickness in pixels.\r\n\t *\r\n\t * @param value Thickness (px)\r\n\t */\r\n\tpublic set strokeWidth(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tthis.setPropertyValue(\"strokeWidth\", value, true);\r\n\r\n\t\tif (this.nonScalingStroke) {\r\n\t\t\tif (!$type.isNumber(value)) {\r\n\t\t\t\tvalue = 1;\r\n\t\t\t}\r\n\t\t\tvalue = value / this.globalScale;\r\n\t\t}\r\n\t\tthis.setSVGAttribute({ \"stroke-width\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Thickness (px)\r\n\t */\r\n\tpublic get strokeWidth(): number {\r\n\t\treturn this.getPropertyValue(\"strokeWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `stroke-dasharray` for the stroke (outline).\r\n\t *\r\n\t * \"Dasharray\" allows setting rules to make lines dashed, dotted, etc.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more info on `stroke-dasharray`\r\n\t * @param value `stroke-dasharray`\r\n\t */\r\n\tpublic set strokeDasharray(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"strokeDasharray\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"stroke-dasharray\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `stroke-dasharray`\r\n\t */\r\n\tpublic get strokeDasharray(): string {\r\n\t\treturn this.getPropertyValue(\"strokeDasharray\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `stroke-dashoffset` for the stroke (outline).\r\n\t *\r\n\t * \"Dashoffset\" allows setting the start position of the dashes if\r\n\t * `strokeDasharray` is used.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset} for more info on `stroke-dashoffset`\r\n\t * @param value `stroke-dashoffset`\r\n\t */\r\n\tpublic set strokeDashoffset(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (this.setPropertyValue(\"strokeDashoffset\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"stroke-dashoffset\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `stroke-dashoffset`\r\n\t */\r\n\tpublic get strokeDashoffset(): number {\r\n\t\treturn this.getPropertyValue(\"strokeDashoffset\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `stroke-linecap` to indicate how line ends are drawn.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linecap`\r\n\t * @param value `stroke-linecap`\r\n\t */\r\n\tpublic set strokeLinecap(value: \"butt\" | \"square\" | \"round\") {\r\n\t\tif (this.setPropertyValue(\"strokeLinecap\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"stroke-linecap\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `stroke-linecap`\r\n\t */\r\n\tpublic get strokeLinecap(): \"butt\" | \"square\" | \"round\" {\r\n\t\treturn this.getPropertyValue(\"strokeLinecap\");\r\n\t}\r\n\r\n\t/**\r\n\t * A `stroke-linejoin` to indicate how line ends are drawn.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linejoin`\r\n\t * @param value `stroke-linejoin`\r\n\t */\r\n\tpublic set strokeLinejoin(value: \"miter\" | \"round\" | \"bevel\") {\r\n\t\tif (this.setPropertyValue(\"strokeLinejoin\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"stroke-linejoin\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return `stroke-linejoin`\r\n\t */\r\n\tpublic get strokeLinejoin(): \"miter\" | \"round\" | \"bevel\" {\r\n\t\treturn this.getPropertyValue(\"strokeLinejoin\");\r\n\t}\r\n\r\n\t/**\r\n\t * An SVG-specific `shape-rendering` value.\r\n\t *\r\n\t * `shape-rendering` controls how vector graphics are drawn and rendered.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering} for more information about `shape-rendering`\r\n\t * @default \"auto\"\r\n\t * @param value 'shape-rendering' value\r\n\t */\r\n\tpublic set shapeRendering(value: ShapeRendering) {\r\n\t\tvalue = <ShapeRendering>$type.toText(value);\r\n\t\tif (this.setPropertyValue(\"shapeRendering\", value)) {\r\n\t\t\tthis.setSVGAttribute({ \"shape-rendering\": value });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return 'shape-rendering' value\r\n\t */\r\n\tpublic get shapeRendering(): ShapeRendering {\r\n\t\treturn this.getPropertyValue(\"shapeRendering\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if SVG vectors should be drawn with \"pixel\" precision, producing\r\n\t * perfectly crisp lines on retina displays.\r\n\t *\r\n\t * Setting this to `true` might improve visual quality, but may have a\r\n\t * negative effect on performance.\r\n\t *\r\n\t * Different elements use different default setting for `pixelPerfect`.\r\n\t *\r\n\t * We recommend leaving this at their default settings, unless there's a\r\n\t * specific need.\r\n\t *\r\n\t * @param value Use pixel perfect?\r\n\t */\r\n\tpublic set pixelPerfect(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (value) {\r\n\t\t\tthis._positionPrecision = 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._positionPrecision = 3;\r\n\t\t}\r\n\r\n\t\tthis.setPropertyValue(\"pixelPerfect\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use pixel perfect?\r\n\t */\r\n\tpublic get pixelPerfect(): boolean {\r\n\t\treturn this.getPropertyValue(\"pixelPerfect\");\r\n\t}\r\n\r\n\t/**\r\n\t * An RTL (right-to-left) setting.\r\n\t *\r\n\t * RTL may affect alignment, text, and other visual properties.\r\n\t *\r\n\t * If you set this on a top-level chart object, it will be used for all\r\n\t * child elements, e.g. labels, unless they have their own `rtl` setting\r\n\t * set directly on them.\r\n\t *\r\n\t * @param value `true` for to use RTL\r\n\t */\r\n\tpublic set rtl(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif(this.isBaseSprite){\r\n\t\t\tthis.topParent.rtl = value;\r\n\t\t}\r\n\t\tthis._rtl = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return RTL?\r\n\t */\r\n\tpublic get rtl(): boolean {\r\n\t\tif ($type.hasValue(this._rtl)) {\r\n\t\t\treturn this._rtl;\r\n\t\t}\r\n\t\telse if(this._topParent){\r\n\t\t\treturn this._topParent.rtl;\r\n\t\t}\r\n\t\t//this.rtl = false;\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * VISIBILITY AND ORDER PROPERTIES AND RELATED STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n \t * Reveals hidden element.\r\n \t *\r\n \t * Has no effect if element is already visible.\r\n \t *\r\n \t * If `duration` is not specified, it will use default.\r\n \t *\r\n \t * @param duration Fade in duration (ms)\r\n \t * @return Animation object if such object was created\r\n \t */\r\n\tpublic show(duration?: number): $type.Optional<Animation> {\r\n\t\treturn this.showReal(duration);\r\n\t}\r\n\r\n\t/**\r\n\t * Performs actual operations to reveal this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param duration Fade in duration (ms)\r\n\t * @return Fade in duration (ms)\r\n\t */\r\n\tprotected showReal(duration?: number): $type.Optional<Animation> {\r\n\t\tif (this.preventShow) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet transition: $type.Optional<Animation>;\r\n\r\n\t\tconst properties = this.defaultState.properties;\r\n\r\n\t\tif (!this.disabled && (this.isHidden || !this.visible || this.isHiding || (properties.opacity != null && this.opacity < properties.opacity && !this.isShowing)) && !this.isDisposed()) {\r\n\r\n\t\t\t// helps to avoid flicker, as show might change opacity or visibility but item might be at invalid state/position\r\n\t\t\tif (this.invalid) {\r\n\t\t\t\tthis.validate();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.positionInvalid) {\r\n\t\t\t\tthis.validatePosition();\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNumber(duration)) {\r\n\t\t\t\tduration = this.defaultState.transitionDuration;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._hideAnimation) {\r\n\t\t\t\tthis._hideAnimation.kill();\r\n\t\t\t\tthis._hideAnimation = undefined;\r\n\t\t\t}\r\n\r\n\t\t\t// Cancel hide handler just in case it was there\r\n\t\t\tif (this._showHideDisposer) {\r\n\t\t\t\tthis.removeDispose(this._showHideDisposer);\r\n\t\t\t}\r\n\r\n\t\t\tthis._isHidden = false;\r\n\t\t\tthis.isHiding = false;\r\n\t\t\tthis.isShowing = true;\r\n\r\n\t\t\t// Apply current state\r\n\t\t\ttransition = this.applyCurrentState(duration);\r\n\r\n\t\t\tif (transition && !transition.isFinished()) {\r\n\r\n\t\t\t\tthis._showHideDisposer = transition.events.on(\"animationended\", () => {\r\n\t\t\t\t\tthis.isShowing = false;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._disposers.push(this._showHideDisposer);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.isShowing = false;\r\n\t\t\t}\r\n\t\t\t// Make it visible\r\n\t\t\tlet visible = this.defaultState.properties.visible;\r\n\t\t\tif (!$type.hasValue(visible)) {\r\n\t\t\t\tvisible = true;\r\n\t\t\t}\r\n\t\t\tthis.visible = visible;\r\n\r\n\t\t\t// Unhide from screen readers\r\n\t\t\tthis.readerHidden = false;\r\n\r\n\t\t\t// Dispatch \"show\" event\r\n\t\t\tthis.dispatchImmediately(\"shown\");\r\n\t\t}\r\n\r\n\t\treturn transition;\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates hiding of Sprite.\r\n\t * When called it will fade out the the Sprite to transparency, then make it\r\n\t * invisible.\r\n\t * @param duration Duration in millisecons\r\n\t */\r\n\r\n\t/**\r\n\t * Hides the element, by applying `hidden` state.\r\n\t *\r\n\t * Has no effect if element is already hidden.\r\n \t *\r\n \t * If `duration` is not specified, it will use default.\r\n \t *\r\n \t * While element is fading out, its `isHiding` property will resolve to\r\n \t * `true`.\r\n \t *\r\n \t * When element is hidden, its `visible` property will resolve to `false`.\r\n\t *\r\n\t * @param duration Fade out duration (ms)\r\n\t * @return hide Animation object if such object was created\r\n\t */\r\n\tpublic hide(duration?: number): $type.Optional<Animation> {\r\n\t\treturn this.hideReal(duration);\r\n\t}\r\n\r\n\t/**\r\n\t * Hides actual SVG elements and handles hiding animations.\r\n\t *\r\n\t * @param duration Fade out duration (ms)\r\n\t * @return Fade out duration (ms)\r\n\t * @ignore\r\n\t */\r\n\tprotected hideReal(duration?: number): $type.Optional<Animation> {\r\n\t\tlet transition: $type.Optional<Animation>;\r\n\r\n\t\tif (!this.isHiding && this.visible && !this.isDisposed()) {\r\n\t\t\t// added to solve 51375\r\n\t\t\tif (this.tooltip && this.tooltip.currentSprite == this) {\r\n\t\t\t\tthis.hideTooltip(0);\r\n\t\t\t}\r\n\r\n\t\t\tif (this._hideAnimation) {\r\n\t\t\t\tthis._hideAnimation.kill();\r\n\t\t\t\tthis._hideAnimation = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tthis.isShowing = false;\r\n\r\n\t\t\t// Cancel hide handler just in case it was there\r\n\t\t\tif (this._showHideDisposer) {\r\n\t\t\t\tthis.removeDispose(this._showHideDisposer);\r\n\t\t\t}\r\n\r\n\t\t\t// Get state\r\n\t\t\tlet hiddenState = this.hiddenState;\r\n\r\n\t\t\t// Transition to \"hidden\" state, provided Sprite has one set\r\n\t\t\tif (hiddenState) {\r\n\t\t\t\t// Yes, we have a \"hidden\" state\r\n\t\t\t\t// `setState` will return an `Animation` object which we can set\r\n\t\t\t\t// events on\r\n\t\t\t\ttransition = this.setState(hiddenState, duration, undefined);\r\n\r\n\t\t\t\tif (transition && !transition.isFinished()) {\r\n\t\t\t\t\tthis._hideAnimation = transition;\r\n\t\t\t\t\tthis._showHideDisposer = transition.events.on(\"animationended\", () => {\r\n\t\t\t\t\t\tthis.isHiding = false;\r\n\t\t\t\t\t\tthis._isHidden = true;\r\n\t\t\t\t\t\tif(hiddenState.properties.visible == false){\r\n\t\t\t\t\t\t\tthis.visible = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this);\r\n\r\n\t\t\t\t\tthis._disposers.push(this._showHideDisposer);\r\n\r\n\t\t\t\t\t// Thrown everything into `_disposers` just in case Sprite gets\r\n\t\t\t\t\t// destroyed in the meantime\r\n\t\t\t\t\tthis._disposers.push(transition);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.isHiding = false;\r\n\t\t\t\t\tthis._isHidden = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// No hidden state, let's just set `visible` and call it a day\r\n\t\t\t\tthis.visible = false;\r\n\t\t\t\tthis.isHiding = false;\r\n\t\t\t\tthis._isHidden = true;\r\n\t\t\t}\r\n\r\n\t\t\t// Hide from screen readers\r\n\t\t\tthis.readerHidden = true;\r\n\r\n\t\t\t// Dispach \"hidden\" event\r\n\t\t\tthis.dispatchImmediately(\"hidden\");\r\n\t\t\tthis.invalidate(); // hide it at once to avoid flickers // validate() causes SO\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(duration)) {\r\n\t\t\tduration = this.hiddenState.transitionDuration;\r\n\t\t}\r\n\r\n\t\treturn transition;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets visibility of the element.\r\n\t *\r\n\t * @param value Visible?\r\n\t */\r\n\tpublic set visible(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tthis.setVisibility(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current visibility of the element.\r\n\t *\r\n\t * @return Visible?\r\n\t */\r\n\tpublic get visible(): boolean {\r\n\t\treturn this.getVisibility();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns visibility value\r\n\t * @ignore\r\n\t */\r\n\tprotected getVisibility(): boolean {\r\n\t\tlet value = this.getPropertyValue(\"visible\");\r\n\t\tif (!$type.hasValue(value)) {\r\n\t\t\tvalue = true;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets `visibility` property:\r\n\t *\r\n\t * * `true` - visible\r\n\t * * `false` - hidden\r\n\t *\r\n\t * @param value true - visible, false - hidden\r\n\t * @return Current visibility\r\n\t */\r\n\tpublic setVisibility(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"visible\", value)) {\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.group.removeAttr(\"visibility\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.group.attr({ \"visibility\": \"hidden\" });\r\n\t\t\t}\r\n\t\t\t//this.invalidatePosition();\r\n\r\n\t\t\tif (this.events.isEnabled(\"visibilitychanged\")) {\r\n\t\t\t\tconst event: AMEvent<this, ISpriteEvents>[\"visibilitychanged\"] = {\r\n\t\t\t\t\ttype: \"visibilitychanged\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tvisible: value\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"visibilitychanged\", event);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A \"zIndex\" of the element.\r\n\t *\r\n\t * \"zIndex\" determines the order of how elements are placed over each other.\r\n\t *\r\n\t * Higher \"zIndex\" will mean the element will be draw on top of elements\r\n\t * with lower \"zIndexes\".\r\n\t *\r\n\t * @param value zIndex\r\n\t */\r\n\tpublic set zIndex(value: number) {\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (this.setPropertyValue(\"zIndex\", value)) {\r\n\t\t\tthis.dispatch(\"zIndexChanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return zIndex\r\n\t */\r\n\tpublic get zIndex(): number {\r\n\t\treturn this.getPropertyValue(\"zIndex\");\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the element to the very top in element order, so that it appears\r\n\t * in front of other elements.\r\n\t */\r\n\tpublic toFront(): void {\r\n\t\tlet parent = this._parent;\r\n\t\tif (parent && parent.children.indexOf(this) != parent.children.length - 1) {\r\n\t\t\tparent.children.moveValue(this, parent.children.length - 1);\r\n\t\t\tthis.dispatch(\"zIndexChanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the element to the very bottom in the element order, so that it\r\n\t * appears behind other elements.\r\n\t */\r\n\tpublic toBack(): void {\r\n\t\tlet parent = this._parent;\r\n\t\tif (parent && parent.children.indexOf(this) != 0) {\r\n\t\t\tparent.children.moveValue(this, 0);\r\n\t\t\tthis.dispatch(\"zIndexChanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A custom class name to set on the element.\r\n\t *\r\n\t * If set, the value will be added to element's `class` attribute.\r\n\t *\r\n\t * @since 4.9.11\r\n\t * @param value Class name\r\n\t */\r\n\tpublic set userClassName(value: string) {\r\n\t\tif (this.setPropertyValue(\"userClassName\", value)) {\r\n\t\t\tif (!value && this.userClassName) {\r\n\t\t\t\tthis.group.removeClass(this.userClassName);\r\n\t\t\t}\r\n\t\t\tthis.setClassName();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Class name\r\n\t */\r\n\tpublic get userClassName(): string {\r\n\t\treturn this.getPropertyValue(\"userClassName\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * TOOLTIP-RELATED PROPERTIES STUFF\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * A [[Tooltip]] object to be used when displayed rollover information for\r\n\t * the element.\r\n\t *\r\n\t * @param tooltip Tooltip\r\n\t */\r\n\tpublic set tooltip(tooltip: $type.Optional<Tooltip>) {\r\n\t\tif (this._tooltip) {\r\n\t\t\t//this._tooltip.dispose();\r\n\t\t\tthis.removeDispose(this._tooltip);\r\n\t\t}\r\n\r\n\t\tthis._tooltip = tooltip;\r\n\r\n\t\tif (tooltip) {\r\n\t\t\ttooltip.parent = this.tooltipContainer;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip\r\n\t */\r\n\tpublic get tooltip(): $type.Optional<Tooltip> {\r\n\t\tif (this._tooltip) {\r\n\t\t\treturn this._tooltip;\r\n\t\t}\r\n\t\telse if (this.virtualParent) {\r\n\t\t\treturn this.virtualParent.tooltip;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.tooltip;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A [[DataItem]] to use when populating content for the element's\r\n\t * [[Tooltip]].\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t * @see {@link DataItem}\r\n\t * @param value Tooltip data item\r\n\t */\r\n\tpublic set tooltipDataItem(value: DataItem) {\r\n\t\t// important: do not dispose tooltip dataItem, as it is some actual data item from data!\r\n\t\tthis._tooltipDataItem = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip data item\r\n\t */\r\n\tpublic get tooltipDataItem(): DataItem {\r\n\t\tconst tooltipDataItem = this._tooltipDataItem;\r\n\r\n\t\tif (tooltipDataItem) {\r\n\t\t\treturn tooltipDataItem;\r\n\r\n\t\t} else {\r\n\t\t\treturn this.dataItem;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Sprite]] or sprite template to use when getting colors for tooltip. If a template is set,\r\n\t * tooltip will look for a clone in tooltipDataItem.sprites. If no clone is found, then template colors will be used.\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t * @see {@link Sprite}\r\n\t * @param sprite Sprite\r\n\t */\r\n\tpublic set tooltipColorSource(sprite: $type.Optional<Sprite>) {\r\n\t\tthis._tooltipColorSource = sprite;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip color source\r\n\t */\r\n\tpublic get tooltipColorSource(): $type.Optional<Sprite> {\r\n\t\treturn this._tooltipColorSource;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows the element's [[Tooltip]].\r\n\t *\r\n\t * A tooltip will be populated using text templates in either `tooltipHTML` or\r\n\t * `tooltipText` as well as data in `tooltipDataItem`.\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t * @param optional point (sprite-related) to which tooltip must point.\r\n\t * @return returns true if the tooltip was shown and false if it wasn't (no text was found)\r\n\t */\r\n\tpublic showTooltip(point?: IPoint): boolean {\r\n\r\n\t\tif (this.showTooltipOn == \"always\" && !this._tooltip && this.tooltip) {\r\n\t\t\tthis._tooltip = this.tooltip.clone();\r\n\t\t}\r\n\r\n\t\tif (!point && this.tooltipPosition == \"pointer\" && this.isHover) {\r\n\t\t\tpoint = $utils.documentPointToSvg(getInteraction().lastPointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale);\r\n\t\t}\r\n\r\n\t\t// do not show if hidden\r\n\t\tlet sprite: Sprite = this;\r\n\t\twhile (sprite != undefined) {\r\n\t\t\tif (!sprite.visible || sprite.disabled || sprite.__disabled) {\r\n\t\t\t\tif (this._tooltip && this._tooltip.visible) {\r\n\t\t\t\t\tthis._tooltip.hide(0);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tsprite = sprite.parent;\r\n\t\t}\r\n\r\n\t\tif ($type.hasValue(this.tooltipText) || $type.hasValue(this.tooltipHTML)) {\r\n\t\t\tlet tooltip = this.tooltip;\r\n\t\t\tlet tooltipDataItem = this.tooltipDataItem;\r\n\r\n\t\t\tif (tooltip) {\r\n\r\n\t\t\t\ttooltip.targetSprite = this;\r\n\r\n\t\t\t\tlet colorSource: Sprite = this;\r\n\t\t\t\tlet tooltipColorSource = this.tooltipColorSource;\r\n\t\t\t\tif ((tooltip.getStrokeFromObject || tooltip.getFillFromObject) && tooltipColorSource) {\r\n\t\t\t\t\tif (tooltipColorSource.isTemplate) {\r\n\t\t\t\t\t\tif (tooltipDataItem) {\r\n\t\t\t\t\t\t\t$array.eachContinue(tooltipDataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\tif (sprite.clonedFrom == tooltipColorSource) {\r\n\t\t\t\t\t\t\t\t\tcolorSource = sprite;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcolorSource = tooltipColorSource;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (tooltip.getStrokeFromObject) {\r\n\t\t\t\t\tlet stroke = this.stroke;\r\n\t\t\t\t\tlet source: Sprite = colorSource;\r\n\r\n\t\t\t\t\twhile (source.parent != undefined) {\r\n\t\t\t\t\t\tstroke = source.stroke;\r\n\t\t\t\t\t\tif (stroke == undefined) {\r\n\t\t\t\t\t\t\tsource = source.parent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (stroke != undefined) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (stroke instanceof Color) {\r\n\t\t\t\t\t\ttooltip.background.animate({ property: \"stroke\", to: stroke }, tooltip.animationDuration);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttooltip.background.stroke = stroke;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set data item\r\n\t\t\t\ttooltip.dataItem = tooltipDataItem;\r\n\t\t\t\ttooltip.label.populateStringFrom = this;\r\n\r\n\t\t\t\tif (tooltip.getFillFromObject) {\r\n\r\n\t\t\t\t\tlet fill = this.fill;\r\n\r\n\t\t\t\t\tlet source: Sprite = colorSource;\r\n\r\n\t\t\t\t\twhile (source.parent != undefined) {\r\n\t\t\t\t\t\tfill = source.fill;\r\n\t\t\t\t\t\tif (fill == undefined || (fill instanceof Color && fill.rgb == undefined)) {\r\n\t\t\t\t\t\t\tsource = source.parent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (fill != undefined) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (fill == undefined) {\r\n\t\t\t\t\t\tfill = color(\"#000000\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (fill instanceof Color) {\r\n\t\t\t\t\t\tif (!tooltip.visible) {\r\n\t\t\t\t\t\t\ttooltip.background.fill = fill;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ttooltip.background.animate({ property: \"fill\", to: fill }, tooltip.animationDuration);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttooltip.background.fill = fill;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (tooltip.autoTextColor && fill instanceof Color) {\r\n\t\t\t\t\t\ttooltip.label.fill = fill.alternative;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Apply tooltip text\r\n\t\t\t\tlet text = \"\";\r\n\t\t\t\tif (this.tooltipHTML) {\r\n\t\t\t\t\ttooltip.html = this.tooltipHTML;\r\n\t\t\t\t\ttext = this.tooltipHTML;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.tooltipText) {\r\n\t\t\t\t\ttooltip.text = this.tooltipText;\r\n\t\t\t\t\ttext = this.tooltipText;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.updateTooltipPosition(point)) {\r\n\r\n\t\t\t\t\t// Set accessibility option\r\n\t\t\t\t\ttooltip.readerDescribedBy = this.uidAttr();\r\n\r\n\t\t\t\t\t// make label to render to be able to check currentText\r\n\t\t\t\t\tif (tooltip.label.invalid) {\r\n\t\t\t\t\t\ttooltip.label.validate();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (text != undefined && text != \"\" && tooltip.label.currentText != \"\") {\r\n\r\n\t\t\t\t\t\t//@todo: think of how to solve this better\r\n\t\t\t\t\t\tif (tooltip && !tooltip.parent) {\r\n\t\t\t\t\t\t\ttooltip.parent = this.tooltipContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Reveal tooltip\r\n\t\t\t\t\t\t// showing it in 1 ms helps to avoid strange flickering in IE\r\n\t\t\t\t\t\tlet duration = tooltip.defaultState.transitionDuration;\r\n\t\t\t\t\t\tif (duration <= 0) {\r\n\t\t\t\t\t\t\tduration = 1;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttooltip.show(duration);\r\n\t\t\t\t\t\ttooltip.currentSprite = this;\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.hideTooltip(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.hideTooltip(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected updateTooltipPosition(point?: IPoint): boolean {\r\n\t\tif (this.tooltipPosition == \"pointer\") {\r\n\r\n\t\t\tif (this._interactionDisposer) {\r\n\t\t\t\tthis._interactionDisposer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis._interactionDisposer = getInteraction().body.events.on(\"track\", (ev) => {\r\n\t\t\t\treturn this.pointTooltipTo($utils.documentPointToSvg(ev.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale), true);\r\n\t\t\t});\r\n\t\t\tif (point) {\r\n\t\t\t\treturn this.pointTooltipTo(point, true);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Point to the X/Y of this Sprite\r\n\t\t\tlet globalPoint = $utils.spritePointToSvg({\r\n\t\t\t\t\"x\": this.getTooltipX(),\r\n\t\t\t\t\"y\": this.getTooltipY()\r\n\t\t\t}, this);\r\n\t\t\treturn this.pointTooltipTo(globalPoint);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the point the [[Tooltip]] should point to.\r\n\t *\r\n\t * @param point Coordinates to point to\r\n\t * @param instantly Move instantly without animation\r\n\t */\r\n\tprotected pointTooltipTo(point: IPoint, instantly?: boolean): boolean {\r\n\t\tlet tooltip = this.tooltip;\r\n\t\tif (tooltip && this.topParent) {\r\n\r\n\t\t\tif (tooltip.showInViewport) {\r\n\t\t\t\ttooltip.pointTo(point, instantly);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif ($math.isInRectangle(point, { x: 0, y: 0, width: this.topParent.maxWidth, height: this.topParent.maxHeight })) {\r\n\t\t\t\ttooltip.pointTo(point, instantly);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides element's [[Tooltip]].\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t */\r\n\tpublic hideTooltip(duration?: number): void {\r\n\r\n\t\tif (this.showTooltipOn == \"always\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet tooltip = this.tooltip;\r\n\t\tif (tooltip) {\r\n\t\t\tif (tooltip.targetSprite == this) {\r\n\t\t\t\ttooltip.targetSprite = undefined;\r\n\t\t\t}\r\n\t\t\ttooltip.hide(duration);\r\n\t\t\tif (this._interactionDisposer) {\r\n\t\t\t\tthis._interactionDisposer.dispose();\r\n\t\t\t\tthis._interactionDisposer = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An HTML template to be used to populate [[Tooltip]] contents.\r\n\t *\r\n\t * If element has `tooltipDataItem` or `dataItem` set, this will be parsed\r\n\t * for any data values to be replaced with the values from respective data\r\n\t * items.\r\n\t *\r\n\t * @param value Tooltip HTML content template\r\n\t */\r\n\tpublic set tooltipHTML(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tthis.hoverable = true;\r\n\t\tif (this.setPropertyValue(\"tooltipHTML\", value)) {\r\n\t\t\tif (this.tooltip) {\r\n\t\t\t\tif (this.tooltip.visible) {\r\n\t\t\t\t\tthis.showTooltip();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip HTML content template\r\n\t */\r\n\tpublic get tooltipHTML(): string {\r\n\t\treturn this.getPropertyValue(\"tooltipHTML\");\r\n\t}\r\n\r\n\t/**\r\n\t * A text template to be used to populate Tooltip's contents.\r\n\t *\r\n\t * If element has `tooltipDataItem` or `dataItem` set, this will be parsed\r\n\t * for any data values to be replaced with the values from respective data\r\n\t * items.\r\n\t *\r\n\t * This template will also be parsed for any special formatting tags.\r\n\t *\r\n\t * @param value Tooltip content template\r\n\t * @see {@link TextFormatter}\r\n\t */\r\n\tpublic set tooltipText(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (value) {\r\n\t\t\tthis.hoverable = true;\r\n\t\t}\r\n\t\tif (this.setPropertyValue(\"tooltipText\", value)) {\r\n\t\t\tif (this.tooltip) {\r\n\t\t\t\tif (this.tooltip.visible) {\r\n\t\t\t\t\tthis.showTooltip();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip content template\r\n\t */\r\n\tpublic get tooltipText(): string {\r\n\t\treturn this.getPropertyValue(\"tooltipText\");\r\n\t}\r\n\r\n\t/**\r\n\t * A container reference that should be used to place element's\r\n\t * [[Tooltip]] in.\r\n\t *\r\n\t * Will use parent's container if does not have one set.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Container\r\n\t * @todo Dispose of the old _tooltipContainer ?\r\n\t */\r\n\tpublic set tooltipContainer(value: $type.Optional<Container>) {\r\n\t\tthis._tooltipContainer = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Container\r\n\t */\r\n\tpublic get tooltipContainer(): $type.Optional<Container> {\r\n\t\tif (this._tooltipContainer) {\r\n\t\t\treturn this._tooltipContainer;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.tooltipContainer;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * X coordinate the [[Tooltip]] should be shown at.\r\n\t *\r\n\t * @param value Tooltip X (px)\r\n\t */\r\n\tpublic set tooltipX(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"tooltipX\", value) && this.tooltip) {\r\n\t\t\tthis.tooltip.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip X (px)\r\n\t */\r\n\tpublic get tooltipX(): number | Percent {\r\n\t\treturn this.getTooltipX();\r\n\t}\r\n\r\n\t/**\r\n\t * DEPRECATION NOTICE: This setting is deprecated in favor of a more flexible\r\n\t * setting: `showTooltipOn`. Please use `showTooltipOn = \"always\"` instead.\r\n\t *\r\n\t * Indicates if this element should display a tooltip permanently.\r\n\t *\r\n\t * Useful, if you want to show permanent tooltips on some items.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.5.4\r\n\t * @deprecated Use `showTooltipOn = \"always\"` instead\r\n\t * @param value Always show tooltip?\r\n\t */\r\n\tpublic set alwaysShowTooltip(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tif (value) {\r\n\t\t\tthis.showTooltipOn = \"always\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Always show tooltip?\r\n\t */\r\n\tpublic get alwaysShowTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"showTooltipOn\") == \"always\";\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates when tooltip needs to be shown on this element:\r\n\t *\r\n\t * * `\"hover\"` (default) - Tooltip will be shown when element is hovered on.\r\n\t * * `\"hit\"` - Tooltip will be shown when element is clicked/tapped. Tooltip will be hidden when clicked/tapped anywhere else.\r\n\t * * `\"always\"` - Tooltip will be shown on the element permanently.\r\n\t *\r\n\t * For example, if you would like to show tooltips on all of the columns of\r\n\t * a [[ColumnSeries]]:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.columns.template.showTooltipOn = \"always\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.columns.template.showTooltipOn = \"always\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"columns\": {\r\n\t * \"showTooltipOn\": \"always\"\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * It can even be set to display on a selected columns via `propertyFields`:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.columns.template.propertyFields.showTooltipOn = \"tooltip\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.columns.template.propertyFields.showTooltipOn = \"tooltip\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"columns\": {\r\n\t * \"propertyFields\": {\r\n\t * \"showTooltipOn\": \"tooltip\"\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default \"hover\"\r\n\t * @since 4.7.9\r\n\t * @param value When to show tooltip\r\n\t */\r\n\tpublic set showTooltipOn(value: \"hover\" | \"hit\" | \"always\") {\r\n\t\tif (this.setPropertyValue(\"showTooltipOn\", value)) {\r\n\t\t\tif (value == \"hit\") {\r\n\t\t\t\tthis.clickable = true;\r\n\t\t\t}\r\n\t\t\tif (this.tooltip) {\r\n\t\t\t\tif (value == \"always\") {\r\n\t\t\t\t\tthis.showTooltip();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.handleAlwaysShowTooltip();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return When to show tooltip\r\n\t */\r\n\tpublic get showTooltipOn(): \"hover\" | \"hit\" | \"always\" {\r\n\t\treturn this.getPropertyValue(\"showTooltipOn\");\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if [[Tooltip]] should follow the mouse or touch pointer or stay\r\n\t * at the fixed position.\r\n\t *\r\n\t * @param value Position\r\n\t */\r\n\tpublic set tooltipPosition(value: \"fixed\" | \"pointer\") {\r\n\t\tthis.setPropertyValue(\"tooltipPosition\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * Position\r\n\t */\r\n\tpublic get tooltipPosition(): \"fixed\" | \"pointer\" {\r\n\t\treturn this.getPropertyValue(\"tooltipPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate the [[Tooltip]] should be shown at.\r\n\t *\r\n\t * @param value Tooltip Y (px)\r\n\t */\r\n\tpublic set tooltipY(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"tooltipY\", value) && this.tooltip) {\r\n\t\t\tthis.tooltip.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip Y (px)\r\n\t */\r\n\tpublic get tooltipY(): number | Percent {\r\n\t\treturn this.getTooltipY();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns Tooltip X coordinate if it's set, or middle of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return X (px)\r\n\t */\r\n\tpublic getTooltipX(): number {\r\n\r\n\t\tlet x = this.getPropertyValue(\"tooltipX\");\r\n\r\n\t\tif (!$type.hasValue(x)) {\r\n\t\t\tx = percent(50);\r\n\t\t}\r\n\r\n\t\tlet value: number;\r\n\t\tif ($type.isNumber(x)) {\r\n\t\t\tvalue = x;\r\n\t\t}\r\n\r\n\t\tif (x instanceof Percent) {\r\n\t\t\tvalue = this.maxLeftSelf + this._measuredWidthSelf * x.value - this.pixelPaddingLeft - this.ex; // overflow is know only for measured items, so this is not always good\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns Tooltip Y coordinate if it's set, or middle of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Y (px)\r\n\t */\r\n\tpublic getTooltipY(): number {\r\n\t\tlet y = this.getPropertyValue(\"tooltipY\");\r\n\r\n\t\tif (!$type.hasValue(y)) {\r\n\t\t\ty = percent(50);\r\n\t\t}\r\n\r\n\t\tlet value: number;\r\n\t\tif ($type.isNumber(y)) {\r\n\t\t\tvalue = y;\r\n\t\t}\r\n\r\n\t\tif (y instanceof Percent) {\r\n\t\t\tvalue = this.maxTopSelf + this._measuredHeightSelf * y.value - this.pixelPaddingTop - this.ey; // overflow is know only for measured items, so this is not always good\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Displays a modal or console message with error, and halts any further\r\n\t * processing of this item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param e Error\r\n\t * @todo Implement from applying further actions to this item\r\n\t */\r\n\tpublic raiseCriticalError(e: Error, closable?: boolean) {\r\n\r\n\t\tif (this.svgContainer) {\r\n\t\t\tif (!this._adapterO) {\r\n\t\t\t\tthis.modal.content = e.message;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.modal.content = this._adapterO.apply(\"criticalError\", e).message;\r\n\t\t\t}\r\n\r\n\t\t\tif (!closable) {\r\n\t\t\t\tthis.disabled = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.modal.closable = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (!options.suppressErrors) {\r\n\t\t\t\tthis.modal.open();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.verbose) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Tooltip color source\r\n\t\t\tif ($type.hasValue(config.tooltipColorSource) && $type.isString(config.tooltipColorSource) && this.map.hasKey(config.tooltipColorSource)) {\r\n\t\t\t\tconfig.tooltipColorSource = this.map.getKey(config.tooltipColorSource);\r\n\t\t\t}\r\n\r\n\t\t\t// Cursor styles\r\n\t\t\tif ($type.hasValue(config.cursorOverStyle) && $type.isString(config.cursorOverStyle)) {\r\n\t\t\t\tconfig.cursorOverStyle = this.getCursorStyle(config.cursorOverStyle);\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.cursorDowntyle) && $type.isString(config.cursorDowntyle)) {\r\n\t\t\t\tconfig.cursorDowntyle = this.getCursorStyle(config.cursorDowntyle);\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.cursorOptions)) {\r\n\t\t\t\tif ($type.hasValue(config.cursorOptions.overStyle) && $type.isString(config.cursorOptions.overStyle)) {\r\n\t\t\t\t\tconfig.cursorOptions.overStyle = this.getCursorStyle(config.cursorOptions.overStyle);\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.hasValue(config.cursorOptions.downStyle) && $type.isString(config.cursorOptions.downStyle)) {\r\n\t\t\t\t\tconfig.cursorOptions.downStyle = this.getCursorStyle(config.cursorOptions.downStyle);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t\tthis.processDelayedMap();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Converts string name of the cursor into actual [[MouseCursorStyle]].\r\n\t *\r\n\t * @param style Cursor type\r\n\t * @return Cursor definition\r\n\t */\r\n\tprivate getCursorStyle(style: string): MouseCursorStyle {\r\n\t\tswitch (style) {\r\n\t\t\tcase \"grab\":\r\n\t\t\t\treturn MouseCursorStyle.grab;\r\n\t\t\tcase \"grabbing\":\r\n\t\t\t\treturn MouseCursorStyle.grabbing;\r\n\t\t\tcase \"pointer\":\r\n\t\t\t\treturn MouseCursorStyle.pointer;\r\n\t\t\tcase \"horizontalResize\":\r\n\t\t\t\treturn MouseCursorStyle.horizontalResize;\r\n\t\t\tcase \"verticalResize\":\r\n\t\t\t\treturn MouseCursorStyle.verticalResize;\r\n\t\t\tdefault:\r\n\t\t\t\treturn MouseCursorStyle.default;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function is used to sort element's JSON config properties, so that\r\n\t * some properties that absolutely need to be processed last, can be put at\r\n\t * the end.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param a Element 1\r\n\t * @param b Element 2\r\n\t * @return Sorting number\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t// Must come last\r\n\t\telse if (a == \"tooltipColorSource\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"tooltipColorSource\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.configOrder(a, b);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.\r\n\t * This was added becaus hidden state might have visibility set to true and so\r\n\t * there would not be possible to find out if a sprite is technically hidden or not.\r\n\t */\r\n\tpublic get isHidden(): boolean {\r\n\t\tif (this._isHidden) {\r\n\t\t\treturn this._isHidden;\r\n\t\t}\r\n\t\telse if (this._parent) {\r\n\t\t\treturn this._parent.isHidden;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * If this is set to `true`, Sprite, when inited will be instantly hidden\r\n\t * (\"hidden\" state applied) and then shown (\"default\" state applied).\r\n\t *\r\n\t * If your \"default\" state's `transitionDuration > 0` this will result in\r\n\t * initial animation from \"hidden\" state to \"default\" state.\r\n\t *\r\n\t * If you need a Sprite which has `showOnInit = true` not to be shown\r\n\t * initially, set `sprite.hidden = true`. Setting `sprite.visible = false`\r\n\t * will not prevent the animation and the sprite will be shown.\r\n\t *\r\n\t * @param value show on init?\r\n\t */\r\n\tpublic set showOnInit(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tthis.setShowOnInit(value);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setShowOnInit(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"showOnInit\", value)) {\r\n\t\t\tif (!this.isTemplate) {\r\n\t\t\t\tif (value && !this.inited && !this.hidden) {\r\n\t\t\t\t\tthis._showOnInitDisposer = new MultiDisposer([\r\n\t\t\t\t\t\tregistry.events.once(\"enterframe\", this.hideInitially, this),\r\n\t\t\t\t\t\tthis.events.once(\"beforevalidated\", this.hideInitially, this, false),\r\n\t\t\t\t\t\tthis.events.on(\"inited\", this.appear, this, false)\r\n\t\t\t\t\t])\r\n\r\n\t\t\t\t\tthis._disposers.push(this._showOnInitDisposer);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this._showOnInitDisposer) {\r\n\t\t\t\t\t\tthis._showOnInitDisposer.dispose();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected hideInitially() {\r\n\t\tif (!this.isDisposed()) {\r\n\t\t\tthis.appeared = false;\r\n\t\t\t//if (!this.hidden && !this._isHidden) { // not good for series, as on enterframe it doesn't have data items yet.\r\n\t\t\tif (!this.inited) {\r\n\t\t\t\tthis.hide(0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the chart instantly and then shows it. If defaultState.transitionDuration > 0, this will result an animation in which properties of hidden state will animate to properties of visible state.\r\n\t */\r\n\tpublic appear() {\r\n\t\tthis.appeared = false;\r\n\t\tif (!this.hidden && !this.isHidden) {\r\n\t\t\tthis.hide(0);\r\n\t\t}\r\n\t\tif (!this.hidden) {\r\n\r\n\t\t\tlet animation = this.show();\r\n\r\n\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\tthis.addDisposer(animation.events.on(\"animationended\", () => {\r\n\t\t\t\t\tthis.appeared = true;\r\n\t\t\t\t\tthis.dispatch(\"appeared\");\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.appeared = true;\r\n\t\t\t\tthis.dispatch(\"appeared\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appeared = true;\r\n\t\t\tthis.dispatch(\"appeared\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Show on init?\r\n\t */\r\n\tpublic get showOnInit(): boolean {\r\n\t\treturn this.getPropertyValue(\"showOnInit\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * If a sprite has `showOnInit = true`, it will animate from \"hidden\" to\r\n\t * \"default\" state when initialized. To prevent this but keep\r\n\t * `showOnInit = true`, you can set `sprite.hidden = true`.\r\n\t *\r\n\t * @param value initially hidden?\r\n\t */\r\n\tpublic set hidden(value: boolean) {\r\n\t\tvalue = $type.toBoolean(value);\r\n\t\tthis.setPropertyValue(\"hidden\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is initially hidden?\r\n\t */\r\n\tpublic get hidden(): boolean {\r\n\t\treturn this.getPropertyValue(\"hidden\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\t\treturn this._bbox;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of plugins (objects that implement [[IPlugin]] interface) attached\r\n\t * to this object.\r\n\t *\r\n\t * @since 4.2.2\r\n\t * @return List of plugins\r\n\t */\r\n\tpublic get plugins(): List<IPlugin> {\r\n\t\tif (!this._plugins) {\r\n\t\t\tthis._plugins = new List<IPlugin>();\r\n\t\t\tthis._disposers.push(this._plugins.events.on(\"inserted\", (ev) => {\r\n\t\t\t\tev.newValue.target = this;\r\n\t\t\t\tev.newValue.init();\r\n\t\t\t}));\r\n\t\t\tthis._disposers.push(new ListDisposer(this._plugins));\r\n\t\t}\r\n\t\treturn this._plugins;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Called during the System.update method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemUpdate(skippedSprites: Array<Sprite>) {\r\n\t\tthis.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.update method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemCheckIfValidate(): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.validatePositions method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemValidatePositions() {\r\n\t\tthis.validatePosition();\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.validateLayouts method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemValidateLayouts() {\r\n\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Sprite\"] = Sprite;\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","/**\r\n * Container module\r\n * @todo Needs description\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents, AMEvent } from \"./Sprite\";\r\nimport { SpriteState } from \"./SpriteState\";\r\nimport { Animation } from \"./utils/Animation\";\r\nimport { List, IListEvents } from \"./utils/List\";\r\nimport { VerticalAlign } from \"./defs/VerticalAlign\";\r\nimport { IDisposer, MultiDisposer } from \"./utils/Disposer\";\r\nimport { Dictionary, DictionaryDisposer } from \"./utils/Dictionary\";\r\nimport { getInteraction } from \"./interaction/Interaction\";\r\nimport { Align } from \"./defs/Align\";\r\nimport { Group } from \"./rendering/Group\";\r\nimport { Rectangle } from \"./elements/Rectangle\";\r\nimport { IPoint } from \"./defs/IPoint\";\r\nimport { Percent } from \"./utils/Percent\";\r\nimport { registry } from \"./Registry\";\r\nimport { Preloader } from \"./elements/Preloader\";\r\nimport { DataItem } from \"./DataItem\";\r\nimport { Optional } from \"./utils/Type\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport { Paper } from \"./rendering/Paper\";\r\nimport * as $iter from \"./utils/Iterator\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $dom from \"./utils/DOM\";\r\nimport { system } from \"./System\";\r\nimport { options } from \"./Options\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available font weights.\r\n */\r\nexport type FontWeight = \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\r\n\r\n/**\r\n * Defines available text decorations.\r\n */\r\nexport type TextDecoration = \"none\" | \"underline\" | \"overline\" | \"line-through\" | \"blink\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n// Defined in DataItem.ts\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available [[Container]] layout types\r\n */\r\nexport type ContainerLayout = \"absolute\" | \"vertical\" | \"horizontal\" | \"grid\" | \"none\";\r\n\r\n/**\r\n * Defines properties for [[Container]]\r\n */\r\nexport interface IContainerProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Container layout.\r\n\t *\r\n\t * Options: \"absolute\" (default), \"vertical\", \"horizontal\", or \"grid\".\r\n\t *\r\n\t * @default \"absolute\"\r\n\t */\r\n\tlayout?: ContainerLayout;\r\n\r\n\t/**\r\n\t * Default font weight.\r\n\t *\r\n\t * @default \"normal\"\r\n\t */\r\n\tfontWeight?: FontWeight;\r\n\r\n\t/**\r\n\t * Font size for the text.\r\n\t */\r\n\tfontSize?: number;\r\n\r\n\t/**\r\n\t * Font family for the text.\r\n\t */\r\n\tfontFamily?: string;\r\n\r\n\t/**\r\n\t * Default font decoration.\r\n\t *\r\n\t * @default \"none\"\r\n\t */\r\n\ttextDecoration?: TextDecoration;\r\n\r\n\t/**\r\n\t * Horizontal alignment of Container's items.\r\n\t */\r\n\tcontentAlign?: Align;\r\n\r\n\t/**\r\n\t * Vertical alignment of Container's items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tcontentValign?: VerticalAlign;\r\n\r\n\t/**\r\n\t * If set to `true`, all columns of the container with layout type \"grid\"\r\n\t * will be equally sized.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tfixedWidthGrid?: boolean;\r\n\r\n\t/**\r\n\t * Maximum number of columns (when using `\"grid\"` layout).\r\n\t */\r\n\tmaxColumns?: number;\r\n\r\n\t/**\r\n\t * If set to `true`, the children of the container will be drawn in reverse\r\n\t * order.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\treverseOrder?: boolean;\r\n\r\n\t/**\r\n\t * Specifies if, when state is applied on this container, the same state\r\n\t * should be applied to container's children as well as `background`.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tsetStateOnChildren?: boolean\r\n}\r\n\r\n/**\r\n * Defines events for the [[Container]]\r\n */\r\nexport interface IContainerEvents extends ISpriteEvents {\r\n\r\n\t/**\r\n\t * Invoked when a child Sprite is added to Container.\r\n\t */\r\n\tchildadded: {\r\n\t\tnewValue: Sprite;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when a child Sprite is removed from\r\n\t */\r\n\tchildremoved: {\r\n\t\toldValue: Sprite;\r\n\t};\r\n\r\n\t/**\r\n\t * invoked when layout of the container is validated\r\n\t */\r\n\tlayoutvalidated:{ }\r\n\r\n};\r\n\r\n/**\r\n * Defines adapters\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface IContainerAdapters extends ISpriteAdapters, IContainerProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Container can contain multiple sprites and arrange them in various layouts.\r\n *\r\n * @see {@link IContainerEvents} for a list of available events\r\n * @see {@link IContainerAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class Container extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IContainerProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IContainerAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IContainerEvents;\r\n\r\n\t/**\r\n\t * Container children. (sorted by layout)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _childrenByLayout: Sprite[] = [];\r\n\r\n\t/**\r\n\t * Available width (px).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _availableWidth: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * Available height (px).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _availableHeight: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * Container's child elements. (sorded by their `zIndex`)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _children: $type.Optional<List<Sprite>>;\r\n\r\n\t/**\r\n\t * Container's disposers for its child elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _childrenDisposers: Dictionary<string, IDisposer> = new Dictionary();\r\n\r\n\r\n\t/**\r\n\t * A [[Sprite]] instance to use as Container's background.\r\n\t *\r\n\t * @todo Make it protected\r\n\t */\r\n\tpublic _background: Sprite;\r\n\r\n\t/**\r\n\t * A reference to a [[Preloader]] element to show when Container is building\r\n\t * itself.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _preloader: $type.Optional<Preloader>;\r\n\r\n\t/**\r\n\t * Indicates if this container contains any focused elements, including\r\n\t * itself.\r\n\t */\r\n\tpublic hasFocused: boolean = false;\r\n\r\n\t/**\r\n\t * An array of references to elements the state should be set, when it is set\r\n\t * on this element.\r\n\t */\r\n\tpublic setStateOnSprites: Sprite[] = [];\r\n\r\n\t/*\r\n\t * @ignore\r\n\t */\r\n\tpublic layoutInvalid: boolean = false;\r\n\r\n\tprotected _absoluteWidth: number = 0;\r\n\r\n\tprotected _absoluteHeight: number = 0;\r\n\r\n\t/**\r\n\t * Width (in pixels) of the actual content in the Container.\r\n\t *\r\n\t * Please note that it might be bigger than width of the Container.\r\n\t *\r\n\t * @readonly\r\n\t */\r\n\tpublic contentWidth: number;\r\n\r\n\t/**\r\n\t * Height (in pixels) of the actual content in the Container.\r\n\t *\r\n\t * Please note that it might be bigger than height of the Container.\r\n\t *\r\n\t * @readonly\r\n\t */\r\n\tpublic contentHeight: number;\r\n\r\n\r\n\t/**\r\n\t * An array of child Sprites that should be ready before this object can\r\n\t * fire a \"ready\" event.\r\n\t */\r\n\tprotected _shouldBeReady: Sprite[] = [];\r\n\r\n\t/**\r\n\t * Enables touch tap protection.\r\n\t */\r\n\tprotected _tapToActivate: boolean = false;\r\n\r\n\t/**\r\n\t * Timeout reference for `tapToActivate` functionality.\r\n\t */\r\n\tprotected _tapToActivateTimeout: Optional<IDisposer>;\r\n\r\n\t/**\r\n\t * If `tapToActivate` is used, this setting will determine how long the chart\r\n\t * will stay in \"active\" mode.\r\n\t *\r\n\t * @default 3000\r\n\t * @since 4.4.0\r\n\t */\r\n\tpublic tapTimeout: number = 3000;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Container\";\r\n\r\n\t\tthis._element = this.paper.addGroup(\"g\");\r\n\t\tthis.group.add(this.element);\r\n\r\n\t\tthis.setPropertyValue(\"pixelPerfect\", false);\r\n\t\tthis.setPropertyValue(\"layout\", \"absolute\");\r\n\t\tthis.setPropertyValue(\"fixedWidthGrid\", false);\r\n\r\n\t\tthis.setPropertyValue(\"verticalCenter\", \"none\");\r\n\t\tthis.setPropertyValue(\"horizontalCenter\", \"none\");\r\n\r\n\t\tthis._positionPrecision = 4;\r\n\r\n\t\tthis._disposers.push(new DictionaryDisposer(this._childrenDisposers));\r\n\r\n\t\tthis.children.events.on(\"inserted\", this.handleChildAdded, this);\r\n\t\tthis.children.events.on(\"removed\", this.handleChildRemoved, this);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles adding of a new child into `children`. Adding new children might\r\n\t * affect the whole layout so it needs to be revalidated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event object\r\n\t * @todo Throw an exception on adding a disposed object. Of course it's better NOT TO add disposed objects, so that what we should focus on.\r\n\t */\r\n\tpublic handleChildAdded(event: IListEvents<Sprite>[\"inserted\"]): void {\r\n\t\tthis.processChild(event.newValue);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic processChild(child: Sprite) {\r\n\t\t// try solves the problem when somedy adds child directly to children\r\n\t\ttry {\r\n\t\t\tthis._childrenDisposers.insertKey(child.uid, new MultiDisposer([\r\n\t\t\t\t// it's not enough to listen to POSITION_CHANGED only, as some extra redrawals will happen.\r\n\t\t\t\tchild.events.on(\"transformed\", this.handleChildTransform, this),\r\n\t\t\t\tchild.events.on(\"zIndexChanged\", this.sortAndAdd, this)\r\n\t\t\t]));\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\t// void\r\n\t\t}\r\n\r\n\t\tif (this.element) {\r\n\t\t\tlet group = <Group>this.element;\r\n\t\t\tgroup.add(child.group);\r\n\t\t}\r\n\r\n\t\tchild.parent = this;\r\n\t\tchild.paper = this.paper;\r\n\r\n\t\tthis.dispatchImmediately(\"childadded\", { type: \"childadded\", newValue: child });\r\n\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected sortAndAdd() {\r\n\t\tthis.sortChildren();\r\n\t\tthis.addChildren();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles child removal. Changing size of the child may change the\r\n\t * whole layout of the Container, hence layout needs to be invalidated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event object\r\n\t */\r\n\tpublic handleChildRemoved(event: IListEvents<Sprite>[\"removed\"]): void {\r\n\t\tlet child: Sprite = event.oldValue;\r\n\r\n\t\t// TODO figure out why the key sometimes doesn't exist\r\n\t\tthis._childrenDisposers.removeKey(child.uid);\r\n\r\n\t\tif (this.element) {\r\n\t\t\tlet group = <Group>this.element;\r\n\t\t\tgroup.removeElement(child.group);\r\n\t\t}\r\n\r\n\t\tif (child.isMeasured) {\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\r\n\t\tthis.dispatchImmediately(\"childremoved\", { type: \"childremoved\", oldValue: child });\r\n\t}\r\n\r\n\t/**\r\n\t * Handles child transformation. Changing size of the child may change the\r\n\t * whole layout of the Container, hence layout needs to be invalidated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event object\r\n\t */\r\n\tpublic handleChildTransform(event: AMEvent<Sprite, ISpriteEvents>[\"transformed\"] | AMEvent<Sprite, ISpriteEvents>[\"sizechanged\"]): void {\r\n\t\tlet child: Sprite = event.target;\r\n\t\tif (child.isMeasured) {// && this.layout != \"none\" && this.layout != \"absolute\") {\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates Container's layout, causing it to be re-evaluated again.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateLayout(): void {\r\n\t\tif (this.layoutInvalid || this.disabled || this.isTemplate || this.layout == \"none\" || this.__disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.layoutInvalid = true;\r\n\t\tregistry.addToInvalidLayouts(this);\r\n\t\tsystem.requestFrame();\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates element.\r\n\t *\r\n\t * Object will be redrawn during the next update cycle.\r\n\t *\r\n\t * Please note that in most cases elements will auto-invalidate when needed. If\r\n\t * everything works, DO NOT use this method. Use it only if some changes do\r\n\t * not take otherwise.\r\n\t */\r\n\tpublic invalidate(): void {\r\n\t\tsuper.invalidate();\r\n\t\tthis.invalidateLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates the whole element, including layout AND all its child\r\n\t * elements.\r\n\t *\r\n\t * As this will essentially force all elements to redraw, use only if\r\n\t * absolutely necessary.\r\n\t */\r\n\tpublic deepInvalidate(): void {\r\n\t\tsuper.invalidate();\r\n\t\t//this.sortChildren();\r\n\r\n\t\t$array.each(this._childrenByLayout, (child) => {\r\n\t\t\tif (child instanceof Container) {\r\n\t\t\t\tchild.deepInvalidate();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tchild.invalidate();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.invalidateLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of the child [[Sprite]] elements contained in this\r\n\t * Container.\r\n\t *\r\n\t * @return List of child elements (Sprites)\r\n\t */\r\n\tpublic get children(): List<Sprite> {\r\n\t\t// @todo Review if we can add all children to disposers\r\n\t\tif (!this._children) {\r\n\t\t\tthis._children = new List<Sprite>();\r\n\t\t\t//this._disposers.push(new ListDisposer(this._children));\r\n\t\t}\r\n\t\treturn this._children;\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum width (px) for the Container. A container will not\r\n\t * auto-shrink beyond this value, even if child elements are smaller.\r\n\t *\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set minWidth(value: Optional<number>) {\r\n\t\tif (this.setPropertyValue(\"minWidth\", value)) {\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get minWidth(): Optional<number> {\r\n\t\treturn this.getPropertyValue(\"minWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum height (px) for the Container. A container will not\r\n\t * auto-shrink beyond this value, even if child elements are smaller.\r\n\t *\r\n\t * @param value Height (px)\r\n\t */\r\n\tpublic set minHeight(value: Optional<number>) {\r\n\t\tif (this.setPropertyValue(\"minHeight\", value)) {\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Height (px)\r\n\t */\r\n\tpublic get minHeight(): Optional<number> {\r\n\t\treturn this.getPropertyValue(\"minHeight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides the original `removeElement` so that Container's actual element\r\n\t * is not removed. We do not need to remove element of a Container.\r\n\t *\r\n\t * We do this because remove element each time will fail the `getBBox`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected removeElement(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sorts Container's children: the ones with variable width and height are\r\n\t * put at the end of the list (depending on layout type), so that fixed-width\r\n\t * ones can be drawn first.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic sortChildren(): void {\r\n\r\n\t\tthis._childrenByLayout = [];\r\n\r\n\t\tif (this.layout == \"none\" || this.layout == \"absolute\" || !this.layout) {\r\n\t\t\t//$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t//\tthis._childrenByLayout.push(child);\r\n\t\t\t//});\r\n\t\t\tthis._childrenByLayout = this.children.values;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Assemble fixed-size and relative lists\r\n\t\t\tlet fixed: Sprite[] = [];\r\n\t\t\tlet relative: Sprite[] = [];\r\n\r\n\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\tif (this.layout == \"horizontal\" || this.layout == \"grid\") {\r\n\t\t\t\t\tif (!$type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\t\tfixed.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\trelative.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.layout == \"vertical\") {\r\n\t\t\t\t\tif (!$type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\t\tfixed.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\trelative.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfixed.push(child);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Concat everything into list\r\n\t\t\tthis._childrenByLayout = fixed.concat(relative);\r\n\t\t}\r\n\r\n\t\tthis.calculateRelativeSize();\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates relative sizes for all Container's children.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Make it protected?\r\n\t */\r\n\tpublic calculateRelativeSize(): void {\r\n\t\tlet totalRelativeWidth: number = 0;\r\n\t\tlet totalRelativeHeight: number = 0;\r\n\r\n\t\t$array.each(this._childrenByLayout, (child) => {\r\n\t\t\t// if child is not measured, we do not care about it at all.\r\n\t\t\tif (child.isMeasured) {\r\n\t\t\t\tif ($type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\ttotalRelativeWidth += child.percentWidth;\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\ttotalRelativeHeight += child.percentHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$array.each(this._childrenByLayout, (child) => {\r\n\t\t\tif (child.isMeasured) {\r\n\t\t\t\tif (this.layout == \"horizontal\") {\r\n\t\t\t\t\tif ($type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\t\tchild.relativeWidth = child.percentWidth / totalRelativeWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\t\tchild.relativeHeight = child.percentHeight / 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\t\tif ($type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\t\tchild.relativeHeight = child.percentHeight / totalRelativeHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\t\tchild.relativeWidth = child.percentWidth / 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.layout == \"grid\") {\r\n\t\t\t\t\tif ($type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\t\tchild.relativeHeight = child.percentHeight / 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\t\tchild.relativeWidth = child.percentWidth / 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.layout == \"absolute\" || !child.isMeasured) {\r\n\t\t\t\tif ($type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\tchild.relativeWidth = child.percentWidth / 100;\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\tchild.relativeHeight = child.percentHeight / 100;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds all children to Container's SVG element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected addChildren(): void {\r\n\t\t/*\r\n\t\t Need this check because a child might be assigned to parent even before element is created, for example a theme\r\n\t\t access scrollbar.thumb\r\n\t\t*/\r\n\t\tif (this.element) {\r\n\t\t\tlet zindexed = $array.copy(this.children.values); // not children by layout!\r\n\r\n\t\t\tlet sortArray = zindexed.map(function(data, idx) {\r\n\t\t\t\treturn { idx: idx, data: data }\r\n\t\t\t});\r\n\r\n\t\t\tsortArray.sort(function(a: any, b: any) {\r\n\t\t\t\tconst ai = (a.data.zIndex || 0);\r\n\t\t\t\tconst bi = (b.data.zIndex || 0);\r\n\t\t\t\tif (ai < bi) { return -1; }\r\n\t\t\t\tif (ai > bi) { return 1; }\r\n\t\t\t\treturn a.idx - b.idx\r\n\t\t\t});\r\n\r\n\t\t\tzindexed = sortArray.map(function(val) {\r\n\t\t\t\treturn val.data;\r\n\t\t\t});\r\n\r\n\t\t\tlet group = <Group>this.element;\r\n\r\n\t\t\t// check, maybe the order is good already\r\n\t\t\tlet isCorrect = true;\r\n\r\n\t\t\tif (group.node && group.node.childNodes) {\r\n\t\t\t\tfor (let i = 0, len = group.node.childNodes.length; i < len; i++) {\r\n\t\t\t\t\tif (group.node.childNodes[i] != zindexed[i].group.node) {\r\n\t\t\t\t\t\tisCorrect = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!isCorrect) {\r\n\t\t\t\t$array.each(zindexed, (child) => {\r\n\t\t\t\t\tif (child.group) {\r\n\t\t\t\t\t\tgroup.add(child.group);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\tif (this._background) {\r\n\t\t\t\t\tthis.group.addToBack(this._background.group);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.invalidateLayout();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new element of specific type and assigns as a child to the\r\n\t * Container.\r\n\t *\r\n\t * @param Class type for the new element\r\n\t * @return New element\r\n\t */\r\n\tpublic createChild<T extends Sprite>(classType: { new(): T; }): T {\r\n\t\tlet sprite = new classType();\r\n\t\tsprite.parent = this;\r\n\t\treturn sprite;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all Container's children without actually destroying them.\r\n\t *\r\n\t * To destroy children use `disposeChildren()` instead.\r\n\t */\r\n\tpublic removeChildren(): void {\r\n\t\t// remove all children\r\n\t\t// TODO use iteration instead\r\n\t\twhile (this.children.length > 0) {\r\n\t\t\tlet child = <Sprite>this.children.getIndex(0);\r\n\t\t\tchild.parent = undefined;\r\n\t\t\tthis.children.removeValue(child);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes and destroys all Container's children.\r\n\t *\r\n\t * To remove children from Container without destroying them, use\r\n\t * `removeChildren()`.\r\n\t */\r\n\tpublic disposeChildren(): void {\r\n\t\t// TODO use iteration instead\r\n\t\twhile (this.children.length > 0) {\r\n\t\t\tlet child = <Sprite>this.children.getIndex(0);\r\n\t\t\tchild.dispose();\r\n\t\t\tthis.children.removeValue(child);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An element to use as container background.\r\n\t *\r\n\t * @param background Background element\r\n\t */\r\n\tpublic set background(background: this[\"_background\"]) {\r\n\t\tif (this._background && this.background != background) {\r\n\t\t\tthis.removeDispose(this._background);\r\n\t\t}\r\n\r\n\t\tif (background) {\r\n\t\t\tthis._background = background;\r\n\t\t\tthis._disposers.push(background);\r\n\t\t\tthis.processBackground();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the situation where parent element is resized.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleGlobalScale(): void {\r\n\t\tsuper.handleGlobalScale();\r\n\t\tthis.children.each((child) => {\r\n\t\t\tchild.handleGlobalScale();\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a [[Rectangle]] to use as a background for Container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Background Rectangle element\r\n\t */\r\n\tpublic createBackground(): this[\"_background\"] {\r\n\t\treturn <any>new Rectangle();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Background element\r\n\t */\r\n\tpublic get background(): this[\"_background\"] {\r\n\t\tif (!this._background) {\r\n\t\t\tthis._background = this.createBackground();\r\n\t\t\tthis.processBackground();\r\n\t\t}\r\n\r\n\t\treturn this._background;\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates background element with required properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processBackground(): void {\r\n\t\tlet background = this._background;\r\n\t\tif (background) {\r\n\t\t\tbackground.isMeasured = false;\r\n\t\t\tthis._background.fill = new InterfaceColorSet().getFor(\"background\");\r\n\t\t\tbackground.parent = this;\r\n\t\t\tbackground.isMeasured = false;\r\n\t\t\tthis.children.removeValue(background);\r\n\t\t\tthis._disposers.push(background);\r\n\t\t\tthis.group.addToBack(this._background.group);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the size of container and informs its children of how much size\r\n\t * they can occupy, by setting their relative `maxWidth` and `maxHeight`\r\n\t * properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateLayout(): void {\r\n\r\n\t\tregistry.removeFromInvalidLayouts(this);\r\n\r\n\t\tthis.layoutInvalid = false;\r\n\r\n\t\t// prevents from drawing if topparent is 0x0\r\n\t\t/*\r\n\t\tlet topParent = this.topParent;\r\n\t\tif (topParent) {\r\n\t\t\tif (!topParent.maxWidth || !topParent.maxHeight) {\r\n\t\t\t\tthis._disposers.push(topParent.events.once(\"maxsizechanged\", this.invalidateLayout, this));\r\n\t\t\t}\r\n\t\t}*/\r\n\r\n\t\tthis._availableWidth = this.innerWidth;\r\n\t\tthis._availableHeight = this.innerHeight;\r\n\r\n\t\tlet measuredWidth = 0;\r\n\t\tlet measuredHeight = 0;\r\n\r\n\t\tlet allValid = true;\r\n\r\n\t\tif (this.children) {\r\n\r\n\t\t\tthis.sortChildren();\r\n\r\n\t\t\t// we itterate through list of children, sorted by layout priority. sprites which width non-relative width/height will go first, so we will reduce available width before proceeding to sprites with relative width/height\r\n\t\t\t$array.each(this._childrenByLayout, (child) => {\r\n\t\t\t\tlet maxWidth: number;\r\n\t\t\t\tlet maxHeight: number;\r\n\r\n\t\t\t\tif ($type.isNumber(child.relativeWidth)) {\r\n\t\t\t\t\tmaxWidth = $math.round(this._availableWidth * child.relativeWidth, 2);\r\n\t\t\t\t\tif (this.layout == \"horizontal\") {// || this.layout == \"absolute\") {\r\n\t\t\t\t\t\tmaxWidth -= child.pixelMarginRight + child.pixelMarginLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.layout == \"horizontal\") {\r\n\t\t\t\t\t\tif (child.invalid) {\r\n\t\t\t\t\t\t\tchild.validate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($type.isNumber(child.relativeHeight)) {\r\n\t\t\t\t\tmaxHeight = $math.round(this._availableHeight * child.relativeHeight, 2);\r\n\t\t\t\t\tif (this.layout == \"vertical\") {// || this.layout == \"absolute\") {\r\n\t\t\t\t\t\tmaxHeight -= child.pixelMarginTop + child.pixelMarginBottom;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\t\t\tif (child.invalid) {\r\n\t\t\t\t\t\t\tchild.validate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if child is valid\r\n\t\t\t\tif (child.invalid == false) {\r\n\r\n\t\t\t\t\tif ($type.isNumber(child.relativeWidth)) {\r\n\t\t\t\t\t\tchild.maxWidth = maxWidth;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ($type.isNumber(child.relativeHeight)) {\r\n\t\t\t\t\t\tchild.maxHeight = maxHeight;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (child.isMeasured) {\r\n\t\t\t\t\t\t// reduce available width if this is horizontal layout\r\n\t\t\t\t\t\tif (this.layout == \"horizontal\") {\r\n\t\t\t\t\t\t\tif (!$type.isNumber(child.percentWidth)) {\r\n\t\t\t\t\t\t\t\tif (child.measuredWidth > 0) {\r\n\t\t\t\t\t\t\t\t\tthis._availableWidth -= child.measuredWidth + child.pixelMarginLeft + child.pixelMarginRight;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// reduce available height if this is vertical layout\r\n\t\t\t\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\t\t\t\tif (!$type.isNumber(child.percentHeight)) {\r\n\t\t\t\t\t\t\t\tif (child.measuredHeight > 0) {\r\n\t\t\t\t\t\t\t\t\tthis._availableHeight -= child.measuredHeight + child.pixelMarginTop + child.pixelMarginBottom;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet childMeasuredWidth = child.measuredWidth;\r\n\t\t\t\t\t\tlet childMeasuredHeight = child.measuredHeight;\r\n\r\n\t\t\t\t\t\tif (child.align != \"none\") {\r\n\t\t\t\t\t\t\tchildMeasuredWidth += child.pixelMarginLeft + child.pixelMarginRight;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (child.valign != \"none\") {\r\n\t\t\t\t\t\t\tchildMeasuredHeight += child.pixelMarginTop + child.pixelMarginBottom;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmeasuredWidth = Math.max(measuredWidth, childMeasuredWidth);\r\n\t\t\t\t\t\tmeasuredHeight = Math.max(measuredHeight, childMeasuredHeight);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// if child is not valid\r\n\t\t\t\telse {\r\n\t\t\t\t\t// tell child what maximum width/ height it can occupy\r\n\t\t\t\t\tif (child.isMeasured) {\r\n\t\t\t\t\t\tif ($type.isNumber(child.relativeWidth)) {\r\n\t\t\t\t\t\t\tif (child.maxWidth != maxWidth) { // need to check this because of allValid\r\n\t\t\t\t\t\t\t\tchild.maxWidth = maxWidth;\r\n\t\t\t\t\t\t\t\tallValid = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($type.isNumber(child.relativeHeight)) {\r\n\t\t\t\t\t\t\tif (child.maxHeight != maxHeight) { // need to check this because of allValid\r\n\t\t\t\t\t\t\t\tchild.maxHeight = maxHeight;\r\n\r\n\t\t\t\t\t\t\t\tallValid = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._absoluteWidth = measuredWidth;\r\n\t\tthis._absoluteHeight = measuredHeight;\r\n\r\n\t\t// arrange after measuring, only if all children are valid already\r\n\t\tif (allValid) {\r\n\t\t\tthis.arrange();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Arranges children according to layout specs and available space / child\r\n\t * sizes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic arrange(): void {\r\n\t\tlet children = this.children;\r\n\t\t/*\r\n\t\t in this method we not only arrange children but also find out the size of the container\r\n\t\t it might seem it would be easier to get container size using sprite's measure method,\r\n\t\t however it would return only actual size of the bbox. However as each child meight have\r\n\t\t margins set, we need to check each child - we do it here.\r\n\r\n\t\t This method doesn't do anything with DOM, so it's not expensive\r\n\t\t*/\r\n\t\tlet measuredWidth: number = 0;\r\n\t\tlet measuredHeight: number = 0;\r\n\r\n\t\t//let innerWidth: number = this.innerWidth; //$math.max(this.innerWidth, this._measuredWidth - paddingLeft - paddingRight);\r\n\t\t//let innerHeight: number = this.innerHeight; //$math.max(this.innerHeight, this._measuredHeight - paddingTop - paddingBottom);\r\n\t\t// above is wrong, as if a w/h is not specified, it is 0 and alignment doesn't work at all.\r\n\t\tlet innerWidth: number = $math.max(this.innerWidth, this._absoluteWidth);\r\n\t\tlet innerHeight: number = $math.max(this.innerHeight, this._absoluteHeight);\r\n\r\n\t\tlet left: $type.Optional<number>;// = 0;\r\n\t\tlet right: $type.Optional<number>;// = innerWidth;\r\n\t\tlet top: $type.Optional<number>;// = 0;\r\n\t\tlet bottom: $type.Optional<number>;// = innerHeight;\r\n\r\n\t\tlet paddingLeft: number = this.pixelPaddingLeft;\r\n\t\tlet paddingRight: number = this.pixelPaddingRight;\r\n\t\tlet paddingTop: number = this.pixelPaddingTop;\r\n\t\tlet paddingBottom: number = this.pixelPaddingBottom;\r\n\r\n\t\tlet nextX: number = 0;\r\n\t\tlet nextY: number = 0;\r\n\t\tlet row: number = 0;\r\n\t\tlet column: number = 0;\r\n\r\n\t\tlet columnWidth: number[] = [];\r\n\t\tlet rowHeight: number[] = [];\r\n\r\n\t\tlet maxCellWidth: $type.Optional<number>;\r\n\t\tlet minCellWidth: $type.Optional<number>;\r\n\t\tlet columnCount: $type.Optional<number>;\r\n\r\n\t\tlet maxWidth = this.maxWidth;\r\n\t\tlet maxHeight = this.maxHeight;\r\n\t\tlet minWidth = this.minWidth;\r\n\t\tlet minHeight = this.minHeight;\r\n\r\n\t\tlet childrenCopy = $array.copy(children.values);\r\n\t\tif (this.reverseOrder) {\r\n\t\t\tchildrenCopy.reverse();\r\n\t\t}\r\n\r\n\t\t// GRID PRECALCULATIONS\r\n\t\tif (this.layout == \"grid\") {\r\n\r\n\t\t\tminCellWidth = maxWidth;\r\n\t\t\tmaxCellWidth = 1;\r\n\r\n\t\t\tfor (let i = 0, len = childrenCopy.length; i < len; i++) {\r\n\t\t\t\tlet child = childrenCopy[i];\r\n\t\t\t\tif (child.isMeasured && !child.disabled && !child.__disabled) {\r\n\t\t\t\t\tlet childMeasuredWidth = child.measuredWidth;\r\n\t\t\t\t\tif (childMeasuredWidth < minCellWidth) {\r\n\t\t\t\t\t\tminCellWidth = childMeasuredWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (childMeasuredWidth > maxCellWidth) {\r\n\t\t\t\t\t\tmaxCellWidth = childMeasuredWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tminCellWidth = $math.fitToRange(minCellWidth, 1, maxWidth);\r\n\t\t\tmaxCellWidth = $math.fitToRange(maxCellWidth, 1, maxWidth);\r\n\r\n\r\n\t\t\tif (this.fixedWidthGrid) {\r\n\t\t\t\tcolumnCount = maxWidth / maxCellWidth;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcolumnCount = maxWidth / minCellWidth; // predicted number of columns, yes it is usually much more than real number, but we fix that later\r\n\t\t\t}\r\n\r\n\t\t\tcolumnCount = $math.max(1, Math.floor(columnCount));\r\n\t\t\tcolumnCount = $math.min(this.maxColumns, columnCount);\r\n\t\t\tcolumnWidth = this.getColumnWidth(childrenCopy, columnCount, maxCellWidth);\r\n\t\t}\r\n\r\n\t\tlet contentLeft: $type.Optional<number>;\r\n\t\tlet contentRight: $type.Optional<number>;\r\n\t\tlet contentTop: $type.Optional<number>;\r\n\t\tlet contentBottom: $type.Optional<number>;\r\n\r\n\t\t// we itterate through array of children\r\n\t\t// TODO use iterator instead\r\n\r\n\r\n\r\n\t\tfor (let i = 0, len = childrenCopy.length; i < len; i++) {\r\n\t\t\tlet child = childrenCopy[i];\r\n\r\n\t\t\tif (child.isMeasured && !child.disabled && !child.__disabled) {\r\n\r\n\t\t\t\tlet x: $type.Optional<number> = undefined;//child.pixelX; // must reset\r\n\t\t\t\tlet y: $type.Optional<number> = undefined;//child.pixelY; // must reset\r\n\r\n\t\t\t\tlet childMarginLeft: number = child.pixelMarginLeft;\r\n\t\t\t\tlet childMarginRight: number = child.pixelMarginRight;\r\n\t\t\t\tlet childMarginTop: number = child.pixelMarginTop;\r\n\t\t\t\tlet childMarginBottom: number = child.pixelMarginBottom;\r\n\r\n\t\t\t\tlet childWidth: number = child.measuredWidth;\r\n\t\t\t\tlet childHeight: number = child.measuredHeight;\r\n\r\n\t\t\t\tlet childLeft: $type.Optional<number>;\r\n\t\t\t\tlet childRight: $type.Optional<number>;\r\n\t\t\t\tlet childTop: $type.Optional<number>;\r\n\t\t\t\tlet childBottom: $type.Optional<number>;\r\n\r\n\t\t\t\tswitch (this.layout) {\r\n\t\t\t\t\tcase \"none\":\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t// absolute layout\r\n\t\t\t\t\tcase \"absolute\":\r\n\t\t\t\t\t\t// horizontal alignment\r\n\t\t\t\t\t\tswitch (child.align) {\r\n\t\t\t\t\t\t\tcase \"left\":\r\n\t\t\t\t\t\t\t\tx = childMarginLeft - child.maxLeft;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"center\":\r\n\t\t\t\t\t\t\t\tx = (innerWidth - childWidth) / 2 - child.maxLeft;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"right\":\r\n\t\t\t\t\t\t\t\tx = innerWidth - childMarginRight - child.maxRight;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tif (!(child.x instanceof Percent)) {\r\n\t\t\t\t\t\t\t\t\tx = child.pixelX;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// vertical alignment\r\n\t\t\t\t\t\tswitch (child.valign) {\r\n\t\t\t\t\t\t\tcase \"top\":\r\n\t\t\t\t\t\t\t\ty = childMarginTop - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\t\t\t\ty = (innerHeight - childHeight) / 2 - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\t\t\t\ty = innerHeight - childMarginBottom - child.maxBottom;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tif (!(child.y instanceof Percent)) {\r\n\t\t\t\t\t\t\t\t\ty = child.pixelY;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t// vertical layout\r\n\t\t\t\t\tcase \"vertical\":\r\n\t\t\t\t\t\t//if ($type.isNumber(child.relativeHeight)) {\r\n\t\t\t\t\t\t//\tchildHeight = child.maxHeight;\r\n\t\t\t\t\t\t//}\r\n\r\n\t\t\t\t\t\tswitch (child.align) {\r\n\t\t\t\t\t\t\tcase \"left\":\r\n\t\t\t\t\t\t\t\tx = childMarginLeft - child.maxLeft;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"center\":\r\n\t\t\t\t\t\t\t\tx = (innerWidth - childWidth) / 2 - child.maxLeft;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"right\":\r\n\t\t\t\t\t\t\t\tx = innerWidth - childMarginRight - child.maxRight;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tx = child.pixelX;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ty = nextY + childMarginTop - child.maxTop;\r\n\t\t\t\t\t\tnextY = y + child.maxBottom + childMarginBottom;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t// horizontal layout\r\n\t\t\t\t\tcase \"horizontal\":\r\n\r\n\t\t\t\t\t\t//if ($type.isNumber(child.relativeHeight)) {\r\n\t\t\t\t\t\t//\tchildHeight = child.maxHeight;\r\n\t\t\t\t\t\t//}\r\n\r\n\t\t\t\t\t\tswitch (child.valign) {\r\n\t\t\t\t\t\t\tcase \"top\":\r\n\t\t\t\t\t\t\t\ty = childMarginTop - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\t\t\t\ty = (innerHeight - childHeight) / 2 - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\t\t\t\ty = innerHeight - childMarginBottom - child.maxBottom;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\ty = child.pixelY;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tx = nextX + childMarginLeft - child.maxLeft;\r\n\t\t\t\t\t\tnextX = x + child.maxRight + childMarginRight;\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"grid\":\r\n\t\t\t\t\t\tx = nextX + childMarginLeft - child.maxLeft;\r\n\t\t\t\t\t\tswitch (child.valign) {\r\n\t\t\t\t\t\t\tcase \"top\":\r\n\t\t\t\t\t\t\t\ty = nextY + childMarginTop - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\t\t\t\ty = nextY + (innerHeight - childHeight) / 2 - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\t\t\t\ty = nextY + innerHeight - childMarginBottom - child.maxBottom;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\ty = nextY - child.maxTop;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tnextX += columnWidth[column];\r\n\r\n\t\t\t\t\t\trowHeight[row] = $math.max(rowHeight[row], childHeight);\r\n\t\t\t\t\t\tcolumn++;\r\n\r\n\t\t\t\t\t\tlet nextColumnWidth = columnWidth[column];\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(nextColumnWidth)) {\r\n\t\t\t\t\t\t\tnextColumnWidth = maxCellWidth;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (nextX > $math.min(this.innerWidth, maxWidth) - nextColumnWidth + 1 && column < columnCount) {\r\n\t\t\t\t\t\t\tcolumnCount = column;\r\n\r\n\t\t\t\t\t\t\tnextX = 0;\r\n\t\t\t\t\t\t\tnextY = 0;\r\n\r\n\t\t\t\t\t\t\trow = 0;\r\n\t\t\t\t\t\t\tcolumn = 0;\r\n\r\n\t\t\t\t\t\t\tcolumnWidth = this.getColumnWidth(childrenCopy, columnCount, maxCellWidth);\r\n\t\t\t\t\t\t\trowHeight = [];\r\n\r\n\t\t\t\t\t\t\ti = -1;\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (column >= columnCount) {\r\n\t\t\t\t\t\t\tcolumn = 0;\r\n\t\t\t\t\t\t\tnextY += rowHeight[row];\r\n\t\t\t\t\t\t\trow++;\r\n\t\t\t\t\t\t\tnextX = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.layout !== \"none\") {\r\n\t\t\t\t\tchild.moveTo({ x: x, y: y }); // must use moveTo, otherwise x/y set in percent won't work\r\n\r\n\t\t\t\t\tchildLeft = x + child.maxLeft - childMarginLeft;\r\n\t\t\t\t\tchildRight = x + child.maxRight + childMarginRight;\r\n\t\t\t\t\tchildTop = y + child.maxTop - childMarginTop;\r\n\t\t\t\t\tchildBottom = y + child.maxBottom + childMarginBottom;\r\n\r\n\t\t\t\t\tif (childRight > right || !$type.isNumber(right)) {\r\n\t\t\t\t\t\tright = childRight;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childLeft < left || !$type.isNumber(left)) {\r\n\t\t\t\t\t\tleft = childLeft;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childTop < top || !$type.isNumber(top)) {\r\n\t\t\t\t\t\ttop = childTop;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childBottom > bottom || !$type.isNumber(bottom)) {\r\n\t\t\t\t\t\tbottom = childBottom;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childRight > contentRight || !$type.isNumber(contentRight)) {\r\n\t\t\t\t\t\tcontentRight = childRight;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childLeft < contentLeft || !$type.isNumber(contentLeft)) {\r\n\t\t\t\t\t\tcontentLeft = childLeft;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childTop < contentTop || !$type.isNumber(contentTop)) {\r\n\t\t\t\t\t\tcontentTop = childTop;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (childBottom > contentBottom || !$type.isNumber(contentBottom)) {\r\n\t\t\t\t\t\tcontentBottom = contentBottom;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tchild.validatePosition();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.layout == \"none\") {\r\n\t\t\tlet noneBBox = this.bbox;\r\n\t\t\tleft = noneBBox.x;\r\n\t\t\tright = noneBBox.x + noneBBox.width;\r\n\t\t\ttop = noneBBox.y;\r\n\t\t\tbottom = noneBBox.y + noneBBox.height;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(left)) {\r\n\t\t\tleft = 0;\r\n\t\t\tcontentLeft = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(right)) {\r\n\t\t\tright = this._availableWidth;\r\n\t\t\tcontentRight = right;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(top)) {\r\n\t\t\ttop = 0;\r\n\t\t\tcontentTop = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(bottom)) {\r\n\t\t\tbottom = this._availableHeight;\r\n\t\t\tcontentBottom = bottom;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(contentTop)) {\r\n\t\t\tcontentTop = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(contentBottom)) {\r\n\t\t\tcontentBottom = contentTop;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(contentLeft)) {\r\n\t\t\tcontentLeft = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(contentRight)) {\r\n\t\t\tcontentRight = contentLeft;\r\n\t\t}\r\n\r\n\t\tmeasuredWidth = right - left;\r\n\t\tmeasuredHeight = bottom - top;\r\n\r\n\t\tif ($type.isNumber(this.relativeWidth)) {\r\n\t\t\tmeasuredWidth = maxWidth - paddingLeft - paddingRight;\r\n\t\t\tleft = 0;\r\n\t\t\tright = measuredWidth;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this.relativeHeight)) {\r\n\t\t\tmeasuredHeight = maxHeight - paddingTop - paddingBottom;\r\n\t\t\ttop = 0;\r\n\t\t\tbottom = measuredHeight;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this._pixelWidth)) {\r\n\t\t\tleft = 0;\r\n\t\t\tmeasuredWidth = this._pixelWidth - paddingLeft - paddingRight;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(minWidth) && measuredWidth < minWidth) {\r\n\t\t\tleft = 0;\r\n\t\t\tmeasuredWidth = this.minWidth - paddingLeft - paddingRight;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this._pixelHeight)) {\r\n\t\t\ttop = 0;\r\n\t\t\tmeasuredHeight = this._pixelHeight - paddingTop - paddingBottom;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(minHeight) && measuredHeight < minHeight) {\r\n\t\t\ttop = 0;\r\n\t\t\tmeasuredHeight = minHeight - paddingTop - paddingBottom;\r\n\t\t}\r\n\r\n\t\tlet measuredContentWidth = contentRight - contentLeft;\r\n\t\tlet measuredContentHeight = contentBottom - contentTop;\r\n\r\n\t\t/// handle content alignment\r\n\t\tif (this.layout != \"none\" && (this.contentAlign || this.contentValign) && children.length > 0) {\r\n\t\t\tlet dx: $type.Optional<number>;\r\n\t\t\tlet dy: $type.Optional<number>;\r\n\r\n\t\t\tlet mwa = measuredWidth;\r\n\t\t\tlet mha = measuredHeight;\r\n\t\t\tif (mwa < measuredContentWidth) {\r\n\t\t\t\tmwa = measuredContentWidth;\r\n\t\t\t}\r\n\r\n\t\t\tif (mha < measuredContentHeight) {\r\n\t\t\t\tmha = measuredContentHeight;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.contentAlign == \"center\") {\r\n\t\t\t\tdx = (mwa - measuredContentWidth) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.contentAlign == \"right\") {\r\n\t\t\t\tdx = mwa - measuredContentWidth;\r\n\t\t\t}\r\n\t\t\tif (this.contentValign == \"middle\") {\r\n\t\t\t\tdy = (mha - measuredContentHeight) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.contentValign == \"bottom\") {\r\n\t\t\t\tdy = mha - measuredContentHeight;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(dx)) {\r\n\t\t\t\t$iter.each(children.iterator(), (child) => {\r\n\t\t\t\t\tlet childLeft: number = child.maxLeft;\r\n\r\n\t\t\t\t\tlet ddx: number = dx;\r\n\r\n\t\t\t\t\tif (this.layout == \"horizontal\") {\r\n\t\t\t\t\t\tchild.x = child.pixelX + ddx;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// individual grid elements can not be aligned vertically, that's why it's different from horizontal\r\n\t\t\t\t\tif (this.layout == \"grid\") {\r\n\t\t\t\t\t\tchild.x = child.pixelX + ddx;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\t\t\tddx += child.pixelMarginLeft;\r\n\t\t\t\t\t\tif (child.align == \"none\") {\r\n\t\t\t\t\t\t\tchild.x = ddx - childLeft;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.layout == \"absolute\") {\r\n\t\t\t\t\t\tddx += child.pixelMarginLeft;\r\n\t\t\t\t\t\tif (child.align == \"none\") {\r\n\t\t\t\t\t\t\tchild.x = ddx - childLeft;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(dy)) {\r\n\t\t\t\t$iter.each(children.iterator(), (child) => {\r\n\t\t\t\t\tlet childTop: number = child.maxTop;\r\n\r\n\t\t\t\t\tlet ddy: number = dy;\r\n\r\n\t\t\t\t\tif (this.layout == \"horizontal\") {\r\n\t\t\t\t\t\tddy += child.pixelMarginTop;\r\n\t\t\t\t\t\tif (child.valign == \"none\") {\r\n\t\t\t\t\t\t\tchild.y = ddy - childTop;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// individual grid elements can not be aligned vertically, that's why it's different from horizontal\r\n\t\t\t\t\tif (this.layout == \"grid\") {\r\n\t\t\t\t\t\tddy += child.pixelMarginTop;\r\n\t\t\t\t\t\tchild.y = ddy - childTop;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.layout == \"vertical\") {\r\n\t\t\t\t\t\tchild.y = child.pixelY + ddy;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.layout == \"absolute\") {\r\n\t\t\t\t\t\tddy += child.pixelMarginTop;\r\n\r\n\t\t\t\t\t\tif (child.valign == \"none\") {\r\n\t\t\t\t\t\t\tchild.y = ddy - childTop;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet oldBBox = this.bbox;\r\n\r\n\r\n\t\t// this will mess up maxw/maxh set by container layout, we need a separate min/maxwidth for users\r\n\t\t// this prevents invalidating layout in such cases as scrolling category axis, when labels go outside bounds and results transformed event\r\n\t\t// todo: need to check if this doesn't cause other problems.\r\n\t\t//if (this.maxWidth > 0) {\r\n\t\t//measuredWidth = $math.min(measuredWidth, this.maxWidth);\r\n\t\t//measuredWidth = $math.max(measuredWidth, this.minWidth);\r\n\t\t//}\r\n\r\n\t\t//if (this.maxHeight > 0) {\r\n\t\t//measuredHeight = $math.min(measuredHeight, this.maxHeight);\r\n\t\t//measuredHeight = $math.max(measuredHeight, this.minHeight);\r\n\t\t//}\r\n\r\n\t\tmeasuredWidth = $math.max(measuredWidth, minWidth);\r\n\t\tmeasuredHeight = $math.max(measuredHeight, minHeight);\r\n\r\n\t\tthis.contentWidth = measuredWidth;\r\n\t\tthis.contentHeight = measuredHeight;\r\n\t\t// new\r\n\t\tmeasuredWidth = $math.min(measuredWidth, maxWidth);\r\n\t\tmeasuredHeight = $math.min(measuredHeight, maxHeight);\r\n\r\n\t\tthis._bbox = { x: left, y: top, width: measuredWidth, height: measuredHeight };\r\n\r\n\t\tlet prevLeft = this.maxLeft;\r\n\t\tlet prevTop = this.maxTop;\r\n\t\tlet prevBotttom = this.maxBottom;\r\n\t\tlet prevRight = this.maxRight;\r\n\r\n\t\tthis.measure();\r\n\r\n\t\tif (prevLeft != this.maxLeft || prevRight != this.maxRight || prevTop != this.maxTop || prevBotttom != this.maxBottom) {\r\n\t\t\tif (this.events.isEnabled(\"transformed\")) {\r\n\t\t\t\tlet event: AMEvent<this, IContainerEvents>[\"transformed\"] = {\r\n\t\t\t\t\ttype: \"transformed\",\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t};\r\n\t\t\t\tif (oldBBox) {\r\n\t\t\t\t\tevent.dummyData = oldBBox.width + \" \" + measuredWidth + \" \" + oldBBox.height + \" \" + measuredHeight;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.events.dispatchImmediately(\"transformed\", event);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.dispatchImmediately(\"layoutvalidated\");\r\n\t}\r\n\r\n\t/**\r\n\t * Positions element according its center settings.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateCenter() {\r\n\t\tsuper.updateCenter();\r\n\t\tthis.updateBackground();\r\n\t}\r\n\r\n\t/**\r\n\t * Update the background to fit into specific dimensions.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Make it protected?\r\n\t */\r\n\tpublic updateBackground(): void {\r\n\t\tlet background: Sprite = this._background; // accessing protected, as getter creates instance if it doesn't exist\r\n\r\n\t\tif (background) {\r\n\t\t\tbackground.x = this.maxLeft;\r\n\t\t\tbackground.y = this.maxTop;\r\n\t\t\tbackground.width = this.maxRight - this.maxLeft;\r\n\t\t\tbackground.height = this.maxBottom - this.maxTop;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns widths of all columns in a horizontal Container layout.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param columnCount Number of columns\r\n\t * @param maxCellWidth Maximum width of one grid cell\r\n\t * @return An array of column widths\r\n\t */\r\n\tpublic getColumnWidth(children: Sprite[], columnCount: number, maxCellWidth: number): number[] {\r\n\t\tlet columnWidth: number[] = [];\r\n\t\tlet column: number = 0;\r\n\r\n\t\t$array.each(children, (child) => {\r\n\t\t\tif (child.isMeasured && !child.disabled && !child.__disabled) {\r\n\t\t\t\tif (this.fixedWidthGrid) {\r\n\t\t\t\t\tcolumnWidth[column] = maxCellWidth;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcolumnWidth[column] = $math.max(columnWidth[column], child.measuredWidth + child.pixelMarginRight + child.pixelMarginLeft);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcolumn++;\r\n\r\n\t\t\t\tif (column == columnCount) {\r\n\t\t\t\t\tcolumn = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn columnWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Container layout.\r\n\t *\r\n\t * Options: \"absolute\" (default), \"vertical\", \"horizontal\", \"grid\", \"none\". \"none\" is quite the same as \"absolute\" - the objects will\r\n\t * be positioned at their x, y coordinates, the difference is that with \"absolute\" you can still use align/valign for children and with \"none\" you can not.\r\n\t * Use \"none\" as much as you can as it's most cpu-saving layout.\r\n\t *\r\n\t * @default \"absolute\"\r\n\t * @param value Layout\r\n\t */\r\n\tpublic set layout(value: ContainerLayout) {\r\n\t\tif (this.setPropertyValue(\"layout\", value)) {\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Layout\r\n\t */\r\n\tpublic get layout(): ContainerLayout {\r\n\t\treturn this.getPropertyValue(\"layout\");\r\n\t}\r\n\r\n\t/**\r\n\t * Vertical alignment of the elements for the vertical Container.\r\n\t *\r\n\t * This is used when Container is larger than the height of all its children.\r\n\t *\r\n\t * @param value vertical alignment\r\n\t */\r\n\tpublic set contentValign(value: VerticalAlign) {\r\n\t\tthis.setPropertyValue(\"contentValign\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical alignment\r\n\t */\r\n\tpublic get contentValign(): VerticalAlign {\r\n\t\treturn this.getPropertyValue(\"contentValign\");\r\n\t}\r\n\r\n\t/**\r\n\t * Horizontal alignment of the elements for the horizontal Container.\r\n\t *\r\n\t * This is used when Container is larger than the height of all its children.\r\n\t *\r\n\t * @param value Horizontal alignment\r\n\t */\r\n\tpublic set contentAlign(value: Align) {\r\n\t\tthis.setPropertyValue(\"contentAlign\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal alignment\r\n\t */\r\n\tpublic get contentAlign(): Align {\r\n\t\treturn this.getPropertyValue(\"contentAlign\");\r\n\t}\r\n\r\n\t/**\r\n\t * Controls if the grid of the Container should use fixed width. Fixed width\r\n\t * grid will divide available space to all its columns/rows equally, without\r\n\t * adapting to actual child sizes or size requirements.\r\n\t *\r\n\t * @default false\r\n\t * @param value Should use fixed width grid?\r\n\t */\r\n\tpublic set fixedWidthGrid(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fixedWidthGrid\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should use fixed width grid?\r\n\t */\r\n\tpublic get fixedWidthGrid(): boolean {\r\n\t\treturn this.getPropertyValue(\"fixedWidthGrid\");\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum number of columns (when using `\"grid\"` layout).\r\n\t *\r\n\t * @param value Should use fixed width grid?\r\n\t */\r\n\tpublic set maxColumns(value: Optional<number>) {\r\n\t\tthis.setPropertyValue(\"maxColumns\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should use fixed width grid?\r\n\t */\r\n\tpublic get maxColumns(): Optional<number> {\r\n\t\treturn this.getPropertyValue(\"maxColumns\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true`, the children of the container will be drawn in reverse\r\n\t * order.\r\n\t *\r\n\t * @default false\r\n\t * @param value Reverse children?\r\n\t */\r\n\tpublic set reverseOrder(value: Optional<boolean>) {\r\n\t\tthis.setPropertyValue(\"reverseOrder\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Reverse children?\r\n\t */\r\n\tpublic get reverseOrder(): Optional<boolean> {\r\n\t\treturn this.getPropertyValue(\"reverseOrder\");\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if, when state is applied on this container, the same state\r\n\t * should be applied to container's children as well as `background`.\r\n\t *\r\n\t * @default false\r\n\t * @param value Set state on children\r\n\t */\r\n\tpublic set setStateOnChildren(value: boolean) {\r\n\t\tthis.setPropertyValue(\"setStateOnChildren\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Set state on children\r\n\t */\r\n\tpublic get setStateOnChildren(): boolean {\r\n\t\treturn this.getPropertyValue(\"setStateOnChildren\");\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if point is within bounds of a container.\r\n\t *\r\n\t * @param point A coordinate to check\r\n\t * @return `true` if it fits within container\r\n\t */\r\n\tpublic fitsToBounds(point: IPoint): boolean {\r\n\t\tlet x = point.x;\r\n\t\tlet y = point.y;\r\n\t\tlet deviation = 0.5; // sometimes coordinates are rounded to numbers like .999 so we add deviation here\r\n\t\tif (x >= -deviation && x <= this.pixelWidth + deviation && y >= -deviation && y <= this.pixelHeight + deviation) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from different Container, including background\r\n\t * clone.\r\n\t *\r\n\t * @param source Source Container to copy from\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.layout = source.layout;\r\n\t\tthis.setStateOnChildren = source.setStateOnChildren;\r\n\r\n\t\tif (source._background) {\r\n\t\t\tthis.background = source._background.clone();\r\n\t\t\tthis.background.copyFrom(source._background); // won't work without this\r\n\t\t}\r\n\r\n\t\t$iter.each(source.children.iterator(), (child) => {\r\n\t\t\tif (child.shouldClone) {\r\n\t\t\t\tlet clonedChild: Sprite = child.clone();\r\n\t\t\t\tclonedChild.parent = this;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Preloader]] instance to be used when Container is busy.\r\n\t *\r\n\t * @param preloader Preloader instance\r\n\t */\r\n\tpublic set preloader(preloader: $type.Optional<Preloader>) {\r\n\t\tif (this._preloader) {\r\n\t\t\tthis.removeDispose(this._preloader);\r\n\t\t}\r\n\t\tthis._preloader = preloader;\r\n\t\tif (preloader) {\r\n\t\t\tpreloader.parent = this.tooltipContainer;\r\n\t\t\tthis._disposers.push(preloader);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Preloader instance\r\n\t */\r\n\tpublic get preloader(): $type.Optional<Preloader> {\r\n\t\tconst preloader = this._preloader;\r\n\r\n\t\tif (preloader) {\r\n\t\t\treturn preloader;\r\n\t\t}\r\n\t\telse if (this.parent) {\r\n\t\t\treturn this.parent.preloader;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets [[Paper]] instance to use to draw elements.\r\n\t * @ignore\r\n\t * @param paper Paper\r\n\t * @return true if paper was changed, false, if it's the same\r\n\t */\r\n\tpublic setPaper(paper: Paper): boolean {\r\n\t\tlet changed = super.setPaper(paper);\r\n\r\n\t\tif (changed) {\r\n\t\t\tif (this._background) {\r\n\t\t\t\tthis._background.paper = paper;\r\n\t\t\t\tthis._background.topParent = this.topParent;\r\n\t\t\t}\r\n\t\t\tthis.children.each((child) => {\r\n\t\t\t\tchild.setPaper(paper);\r\n\t\t\t\tchild.topParent = this.topParent;\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes Container from the system-wide list of invalid Containers.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected removeFromInvalids() {\r\n\t\tsuper.removeFromInvalids();\r\n\t\tregistry.removeFromInvalidLayouts(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a [[DataItem]] to be used as data for the Container.\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem DataItem\r\n\t */\r\n\tprotected setDataItem(dataItem: DataItem) {\r\n\t\t// this place is potentially dangerous, as if we set datItem for some dummy container, all children dataItems will be overriden\r\n\t\t// the main reason for doing this is that we need a setDataItem code to be called for each sprite, otherwise property fields won't be\r\n\t\t// applied. Also, getting dataItem from parent all the time is more expensive than saving value.\r\n\t\tif (this._dataItem != dataItem) {\r\n\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\tchild.dataItem = dataItem;\r\n\t\t\t});\r\n\r\n\t\t\tif (this._background) {\r\n\t\t\t\tthis._background.dataItem = dataItem;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.setDataItem(dataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic measureElement(): void {\r\n\t\tif (this.disabled || this.isTemplate || this.layout == \"none\" || this.__disabled) {\r\n\t\t\t// void\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.validateLayout();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Font family to be used for the text.\r\n\t *\r\n\t * Parts of the text may override this setting using in-line formatting.\r\n\t *\r\n\t * @param value Font family value\r\n\t */\r\n\tpublic set fontFamily(value: string) {\r\n\t\tif (this.setPropertyValue(\"fontFamily\", value, true)) {\r\n\t\t\tthis.setSVGAttribute({ \"font-family\": value });\r\n\t\t\tthis.invalidateLabels();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Font family\r\n\t */\r\n\tpublic get fontFamily(): string {\r\n\t\treturn this.getPropertyValue(\"fontFamily\");\r\n\t}\r\n\r\n\t/**\r\n\t * Font size to be used for the text. The size can either be numeric, in\r\n\t * pixels, or other measurements.\r\n\t *\r\n\t * Parts of the text may override this setting using in-line formatting.\r\n\t *\r\n\t * @param value Font size value\r\n\t */\r\n\tpublic set fontSize(value: any) {\r\n\t\tif (this.setPropertyValue(\"fontSize\", value, true)) {\r\n\t\t\tthis.setSVGAttribute({ \"font-size\": value });\r\n\t\t\tthis.invalidateLabels();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Font size\r\n\t */\r\n\tpublic get fontSize(): any {\r\n\t\treturn this.getPropertyValue(\"fontSize\");\r\n\t}\r\n\r\n\t/**\r\n\t * When fontSize of fontFamily changes we need to hard-invalidate all Labels of this container to position them properly.\r\n\t */\r\n\tpublic invalidateLabels() {\r\n\t\tthis.children.each((child) => {\r\n\t\t\t// can't import Label because of Circular dependencies\r\n\t\t\tif ((<any>child)[\"hardInvalidate\"]) {\r\n\t\t\t\t(<any>child)[\"hardInvalidate\"]();\r\n\t\t\t\t// this fixes firefox and viewport issue\r\n\t\t\t\tchild.events.once(\"validated\", (<any>child).handleValidate, child, false);\r\n\t\t\t}\r\n\t\t\telse if (child instanceof Container) {\r\n\t\t\t\tchild.invalidateLabels();\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Font weight to use for text.\r\n\t *\r\n\t * Parts of the text may override this setting using in-line formatting.\r\n\t *\r\n\t * @param value Font weight\r\n\t */\r\n\tpublic set fontWeight(value: FontWeight) {\r\n\t\tthis.setPropertyValue(\"fontWeight\", value);\r\n\t\tthis.setSVGAttribute({ \"font-weight\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Font weight\r\n\t */\r\n\tpublic get fontWeight(): FontWeight {\r\n\t\treturn this.getPropertyValue(\"fontWeight\");\r\n\t}\r\n\r\n\t/**\r\n\t * A text decoration to use for text.\r\n\t *\r\n\t * Parts of the text may override this setting using in-line formatting.\r\n\t *\r\n\t * @param value Decoration\r\n\t */\r\n\tpublic set textDecoration(value: TextDecoration) {\r\n\t\tthis.setPropertyValue(\"textDecoration\", value);\r\n\t\tthis.setSVGAttribute({ \"text-decoration\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Decoration\r\n\t */\r\n\tpublic get textDecoration(): TextDecoration {\r\n\t\treturn this.getPropertyValue(\"textDecoration\");\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes (destroys) the element and all its children.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (this._background) {\r\n\t\t\tthis._background.dispose();\r\n\t\t}\r\n\t\tthis._shouldBeReady = [];\r\n\t\tthis.disposeChildren();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * Applies a [[SpriteState]] on this element.\r\n\t *\r\n\t * The first parameter can either be a name of the state or a [[SpriteState]]\r\n\t * instance.\r\n\t *\r\n\t * When run, this method will apply SVG properties defined in a\r\n\t * [[SpriteState]], but only those that are relevant to this particular\r\n\t * element, that is are listed in its respective `properties` array.\r\n\t *\r\n\t * @see {@link SpriteState}\r\n\t * @param value A state - name key or instance\r\n\t * @param transitionDuration Duration of the transition between current and new state\r\n\t * @param easing An easing function\r\n\t */\r\n\tpublic setState(value: string | SpriteState<this[\"_properties\"], this[\"_adapter\"]>, transitionDuration?: number, easing?: (value: number) => number): $type.Optional<Animation> {\r\n\r\n\t\tlet stateName = value;\r\n\t\tif (value instanceof SpriteState) {\r\n\t\t\tstateName = value.name;\r\n\t\t}\r\n\r\n\t\tif (this.setStateOnChildren) {\r\n\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\tchild.setState(stateName, transitionDuration, easing);\r\n\r\n\t\t\t\t// not good to set it in child setState\r\n\t\t\t\tif (stateName != \"active\") {\r\n\t\t\t\t\tchild.isActive = false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (this._background) {\r\n\t\t\tthis._background.setState(stateName);\r\n\t\t}\r\n\r\n\t\tif (this.setStateOnSprites.length) {\r\n\t\t\t$array.each(this.setStateOnSprites, (item) => {\r\n\t\t\t\titem.setState(stateName, transitionDuration, easing);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn super.setState(value, transitionDuration, easing);\r\n\t}\r\n\r\n\t// otherwise isActive won't work properly with background\r\n\tprotected setActive(value: boolean) {\r\n\t\tsuper.setActive(value);\r\n\t\tif (this._background) {\r\n\t\t\tthis._background.isActive = value;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Dispatches ready event. Dispatches when all children are ready.\r\n\t */\r\n\tpublic dispatchReady() {\r\n\t\tif (!this.isReady() && !this.isDisposed()) {\r\n\t\t\tlet allReady = true;\r\n\r\n\t\t\t$iter.eachContinue(this.children.iterator(), (sprite) => {\r\n\t\t\t\tif (!sprite.__disabled && !sprite.disabled && !sprite.isReady()) {\r\n\t\t\t\t\tallReady = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$array.eachContinue(this._shouldBeReady, (sprite) => {\r\n\t\t\t\tif (!sprite.__disabled && !sprite.disabled && !sprite.isReady()) {\r\n\t\t\t\t\tallReady = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (allReady) {\r\n\t\t\t\tsuper.dispatchReady();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tregistry.events.once(\"exitframe\", () => {\r\n\t\t\t\t\tthis.dispatchReady();\r\n\t\t\t\t\tsystem.requestFrame();\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Called during the System.update method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemUpdate(skippedSprites: Array<Sprite>): void {\r\n\t\tthis.children.each((child) => {\r\n\t\t\tif (child.invalid) {\r\n\t\t\t\tif (!child._systemCheckIfValidate()) {\r\n\t\t\t\t\tskippedSprites.push(child);\r\n\t\t\t\t}\r\n\t\t\t\telse if (child.dataItem && child.dataItem.component && child.dataItem.component.dataInvalid) {\r\n\t\t\t\t\tskippedSprites.push(child);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tchild.validate();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsuper._systemUpdate(skippedSprites);\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.validatePositions method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemValidatePositions() {\r\n\t\tthis.children.each((sprite) => {\r\n\t\t\tif (sprite.positionInvalid) {\r\n\t\t\t\tsprite.validatePosition();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsuper._systemValidatePositions();\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.validateLayouts method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemValidateLayouts() {\r\n\t\tif (this.layoutInvalid && !this.isDisposed()) {\r\n\t\t\tthis.validateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true` the chart's regular touch functionality will be suspended\r\n\t * so that the whole page it is located in remains scrollable, even when\r\n\t * swiping over the chart's body.\r\n\t *\r\n\t * User will need to tap the chart in order to activate its regular touch\r\n\t * functionality.\r\n\t *\r\n\t * The chart will remain \"active\" as long as user keeps interacting with the\r\n\t * chart. After `tapTimeout` milliseconds the chart will return to its\r\n\t * \"protected\" mode.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.4.0\r\n\t * @param value Enable touch protection?\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n\t */\r\n\tpublic set tapToActivate(value: boolean) {\r\n\t\tif (this._tapToActivate != value) {\r\n\t\t\tthis.setTapToActivate(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Enable touch protection?\r\n\t */\r\n\tpublic get tapToActivate(): boolean {\r\n\t\treturn this._tapToActivate;\r\n\t}\r\n\r\n\tprotected setTapToActivate(value: boolean): void {\r\n\t\tthis._tapToActivate = value;\r\n\t\tthis.interactions.isTouchProtected = value;\r\n\t\t// setEventDisposer will also remove listeners if value == false\r\n\t\tif (value) {\r\n\t\t\tthis.interactions.setEventDisposer(\"container-tapToActivate\", value, () => new MultiDisposer([\r\n\t\t\t\tthis.events.on(\"hit\", this.handleTapToActivate, this, false),\r\n\t\t\t\tthis.events.on(\"down\", this.initTapTimeout, this, false),\r\n\t\t\t\tthis.events.on(\"track\", this.initTapTimeout, this, false),\r\n\t\t\t\t//this.events.on(\"drag\", this.initTapTimeout, this, false),\r\n\t\t\t\tgetInteraction().body.events.on(\"down\", (ev) => {\r\n\t\t\t\t\tif (!getInteraction().isLocalElement(ev.pointer, this.paper.svg, this.uid)) {\r\n\t\t\t\t\t\tthis.handleTapToActivateDeactivation();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this, false)\r\n\t\t\t]));\r\n\t\t}\r\n\r\n\t\tgetInteraction()\r\n\t}\r\n\r\n\t/**\r\n\t * @todo Ignore on non-touch events\r\n\t */\r\n\tprotected handleTapToActivate(): void {\r\n\t\tthis.interactions.isTouchProtected = false;\r\n\t\tthis.initTapTimeout();\r\n\t}\r\n\r\n\tprotected handleTapToActivateDeactivation(): void {\r\n\t\tthis.interactions.isTouchProtected = true;\r\n\t}\r\n\r\n\tprotected initTapTimeout(): void {\r\n\t\tif (this._tapToActivateTimeout) {\r\n\t\t\tthis._tapToActivateTimeout.dispose();\r\n\t\t}\r\n\t\tif (this.tapToActivate && !this.interactions.isTouchProtected && this.tapTimeout) {\r\n\t\t\tthis._tapToActivateTimeout = this.setTimeout(() => {\r\n\t\t\t\tthis.handleTapToActivateDeactivation()\r\n\t\t\t}, this.tapTimeout);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the whole chart to other HTML container.\r\n\t *\r\n\t * `htmlElement` can either be a reference to a DOM element, or an id of\r\n\t * such element.\r\n\t *\r\n\t * @since 4.9.24\r\n\t * @param htmlElement Target element\r\n\t */\r\n\tpublic moveHtmlContainer(htmlElement: string | HTMLElement): void {\r\n\t\tlet newContainer = $dom.getElement(htmlElement);\r\n\t\tif (newContainer) {\r\n\t\t\tconst svgDiv = this.svgContainer;\r\n\t\t\tsvgDiv.htmlElement = newContainer;\r\n\t\t\tsvgDiv.htmlElement.appendChild(svgDiv.SVGContainer);\r\n\t\t\tsvgDiv.initSensor();\r\n\t\t\tsvgDiv.measure();\r\n\t\t}\r\n\t\telse if($type.isString(htmlElement) && htmlElement != \"\") {\r\n\t\t\tsystem.log(\"html container '\" + htmlElement + \"' not found\");\r\n\t\t\t//throw new Error(\"html container not found\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @return Has license?\r\n\t */\r\n\tpublic hasLicense(): boolean {\r\n\t\tif (options.commercialLicense) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tfor (let i = 0; i < options.licenses.length; i++) {\r\n\t\t\tif (options.licenses[i].match(/^CH.{5,}/i)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Container\"] = Container;\r\n","/**\r\n * Functionality for adding images in SVG tree.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Image]].\r\n */\r\nexport interface IImageProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * A URI of the image.\r\n\t */\r\n\thref?: string;\r\n\r\n\t/**\r\n\t * Sets image `width` in relation to its `height`.\r\n\t */\r\n\twidthRatio?: number;\r\n\r\n\t/**\r\n\t * Sets image `height` in relation to its `width`.\r\n\t */\r\n\theightRatio?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[Image]].\r\n */\r\nexport interface IImageEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Image]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IImageAdapters extends ISpriteAdapters, IImageProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to add `<image>` elements to SVG.\r\n *\r\n * @see {@link IImageEvents} for a list of available events\r\n * @see {@link IImageAdapters} for a list of available Adapters\r\n */\r\nexport class Image extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IImageProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IImageAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IImageEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Image\";\r\n\t\tthis.element = this.paper.add(\"image\");\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.width = 50;\r\n\t\tthis.height = 50;\r\n\t}\r\n\r\n\t/**\r\n\t * Draws an `<image>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (this.href) {\r\n\r\n\t\t\tlet width = this.innerWidth;\r\n\t\t\tlet height = this.innerHeight;\r\n\r\n\t\t\tif ($type.isNumber(this.widthRatio)) {\r\n\t\t\t\twidth = height * this.widthRatio;\r\n\t\t\t\tthis.width = width;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(this.heightRatio)) {\r\n\t\t\t\theight = width * this.heightRatio;\r\n\t\t\t\tthis.height = height;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis.element.attr({\r\n\t\t\t\t\"width\": width,\r\n\t\t\t\t\"height\": height\r\n\t\t\t});\r\n\t\t\tthis.element.attrNS($dom.XLINK, \"xlink:href\", this.href);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An image URI.\r\n\t *\r\n\t * @param value Image URI\r\n\t */\r\n\tpublic set href(value: string) {\r\n\t\tthis.setPropertyValue(\"href\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Image URI\r\n\t */\r\n\tpublic get href(): string {\r\n\t\treturn this.getPropertyValue(\"href\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets image `width` relatively to its `height`.\r\n\t *\r\n\t * If image's `height = 100` and `widthRatio = 0.5` the actual width will be\r\n\t * `50`.\r\n\t *\r\n\t * @param value Ratio\r\n\t */\r\n\tpublic set widthRatio(value: number) {\r\n\t\tthis.setPropertyValue(\"widthRatio\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Ratio\r\n\t */\r\n\tpublic get widthRatio(): number {\r\n\t\treturn this.getPropertyValue(\"widthRatio\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets image `height` relatively to its `width`.\r\n\t *\r\n\t * If image's `width = 100` and `heightRatio = 0.5` the actual height will be\r\n\t * `50`.\r\n\t *\r\n\t * @param value Ratio\r\n\t */\r\n\tpublic set heightRatio(value: number) {\r\n\t\tthis.setPropertyValue(\"heightRatio\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Ratio\r\n\t */\r\n\tpublic get heightRatio(): number {\r\n\t\treturn this.getPropertyValue(\"heightRatio\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\treturn {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0,\r\n\t\t\twidth: this.pixelWidth,\r\n\t\t\theight: this.pixelHeight\r\n\t\t};\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Image\"] = Image;\r\n","/**\r\n * Module for a multi-part arched line.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Polyline, IPolylineProperties, IPolylineAdapters, IPolylineEvents } from \"./Polyline\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Polyarc]].\r\n */\r\nexport interface IPolyarcProperties extends IPolylineProperties {\r\n\r\n\t/**\r\n\t * Relative position along the line the control point is. (0-1)\r\n\t *\r\n\t * @default 0.5\r\n\t */\r\n\tcontrolPointPosition: number;\r\n\r\n\t/**\r\n\t * Relative distance of the control point. (0-1)\r\n\t *\r\n\t * Default is half the length of the line. (0.5)\r\n\t *\r\n\t * @default 0.5\r\n\t */\r\n\tcontrolPointDistance: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Polyarc]].\r\n */\r\nexport interface IPolyarcEvents extends IPolylineEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Polyarc]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPolyarcAdapters extends IPolylineAdapters, IPolyarcProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a multi-part arched line.\r\n *\r\n * @see {@link IPolyarcEvents} for a list of available events\r\n * @see {@link IPolyarcAdapters} for a list of available Adapters\r\n */\r\nexport class Polyarc extends Polyline {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPolyarcProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPolyarcAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPolyarcEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Polyarc\";\r\n\r\n\t\tthis.controlPointDistance = 0.5;\r\n\t\tthis.controlPointPosition = 0.5;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creats and adds an SVG path for the arc.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic makePath(): void {\r\n\t\tthis._distance = 0;\r\n\t\tlet segments = this.segments;\r\n\r\n\t\tif (segments && segments.length > 0) {\r\n\t\t\tlet path: string = \"\";\r\n\t\t\tthis._realSegments = [];\r\n\r\n\t\t\tfor (let i = 0, len = segments.length; i < len; i++) {\r\n\t\t\t\tlet points: IPoint[] = segments[i];\r\n\t\t\t\tlet realPoints: IPoint[] = [];\r\n\t\t\t\tthis._realSegments.push(realPoints);\r\n\t\t\t\tif (points.length > 0) {\r\n\t\t\t\t\tpath += $path.moveTo(points[0]);\r\n\r\n\t\t\t\t\tfor (let p = 1; p < points.length; p++) {\r\n\t\t\t\t\t\tlet pointA: IPoint = points[p - 1];\r\n\t\t\t\t\t\tlet pointB: IPoint = points[p];\r\n\r\n\t\t\t\t\t\tlet distanceAB: number = $math.getDistance(pointB, pointA);\r\n\t\t\t\t\t\tlet cpDistance: number = distanceAB * this.controlPointDistance;\r\n\t\t\t\t\t\tlet controlPointPosition: number = this.controlPointPosition;\r\n\t\t\t\t\t\tlet angle: number = -$math.getAngle(pointA, pointB);\r\n\r\n\t\t\t\t\t\tlet cpx: number = pointA.x + (pointB.x - pointA.x) * controlPointPosition * 0.5 - cpDistance * $math.sin(angle);\r\n\t\t\t\t\t\tlet cpy: number = pointA.y + (pointB.y - pointA.y) * controlPointPosition * 0.5 - cpDistance * $math.cos(angle);\r\n\t\t\t\t\t\tlet controlPoint1: IPoint = { x: cpx, y: cpy };\r\n\r\n\t\t\t\t\t\tlet cpx2: number = pointA.x + (pointB.x - pointA.x) * controlPointPosition * 1.5 - cpDistance * $math.sin(angle);\r\n\t\t\t\t\t\tlet cpy2: number = pointA.y + (pointB.y - pointA.y) * controlPointPosition * 1.5 - cpDistance * $math.cos(angle);\r\n\t\t\t\t\t\tlet controlPoint2: IPoint = { x: cpx2, y: cpy2 };\r\n\r\n\t\t\t\t\t\tpath += $path.cubicCurveTo(pointB, controlPoint1, controlPoint2);\r\n\r\n\t\t\t\t\t\t// we add a lot of points in order to get the position/angle later\r\n\t\t\t\t\t\tlet stepCount: number = Math.ceil(distanceAB);\r\n\t\t\t\t\t\tlet prevPoint: IPoint = pointA;\r\n\t\t\t\t\t\tif (stepCount > 0) {\r\n\t\t\t\t\t\t\tfor (let i: number = 0; i <= stepCount; i++) {\r\n\t\t\t\t\t\t\t\tlet point: IPoint = $math.getPointOnCubicCurve(pointA, pointB, controlPoint1, controlPoint2, i / stepCount);\r\n\t\t\t\t\t\t\t\trealPoints.push(point);\r\n\t\t\t\t\t\t\t\tthis._distance += $math.getDistance(prevPoint, point);\r\n\t\t\t\t\t\t\t\tprevPoint = point;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\trealPoints.push(pointA);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Relative position along the line the control point is. (0-1)\r\n\t *\r\n\t * @default 0.5\r\n\t * @param value Position (0-1)\r\n\t */\r\n\tpublic set controlPointPosition(value: number) {\r\n\t\tthis.setPropertyValue(\"controlPointPosition\", value);\r\n\t\tthis.makePath();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic get controlPointPosition(): number {\r\n\t\treturn this.getPropertyValue(\"controlPointPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative distance of the control point. (0-1)\r\n\t *\r\n\t * Default is half the length of the line. (0.5)\r\n\t *\r\n\t * @default 0.5\r\n\t * @param value Distance (0-1)\r\n\t */\r\n\tpublic set controlPointDistance(value: number) {\r\n\t\tthis.setPropertyValue(\"controlPointDistance\", value);\r\n\t\tthis.makePath();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Distance (0-1)\r\n\t */\r\n\tpublic get controlPointDistance(): number {\r\n\t\treturn this.getPropertyValue(\"controlPointDistance\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polyarc\"] = Polyarc;\r\n","/**\r\n * Morpher module contains functionality that allows morphing one polygon to\r\n * another.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { IMorphable } from \"../defs/IMorphable\";\r\nimport { IAnimatable, Animation, AnimationDisposer } from \"../utils/Animation\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n\r\n/**\r\n * Morpher can be used to morph one polygon to some other polygon.\r\n */\r\nexport class Morpher extends BaseObject implements IAnimatable {\r\n\r\n\t/**\r\n\t * An element that will be a subject for morphing.\r\n\t */\r\n\tpublic morphable: IMorphable;\r\n\r\n\t/**\r\n\t * [_morphFromPointsReal description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _morphFromPointsReal: $type.Optional<Array<Array<Array<IPoint>>>>;\r\n\r\n\t/**\r\n\t * [_morphToPointsReal description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _morphToPointsReal: $type.Optional<Array<Array<Array<IPoint>>>>;\r\n\r\n\t/**\r\n\t * [_morphToPoints description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _morphToPoints: $type.Optional<Array<Array<Array<IPoint>>>>;\r\n\r\n\t/**\r\n\t * Morph progress (0-1)\r\n\t */\r\n\tprotected _morphProgress: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * List of animations currently running.\r\n\t */\r\n\tprotected _animations: $type.Optional<Array<Animation>>;\r\n\r\n\t/**\r\n\t * A storage for measurements.\r\n\t */\r\n\tprotected _bboxes: IRectangle[] = [];\r\n\r\n\t/**\r\n\t * Duration of the morphing animation in milliseconds.\r\n\t */\r\n\tpublic morphDuration: number = 800;\r\n\r\n\t/**\r\n\t * An easing function to use for morphing animation.\r\n\t *\r\n\t * @see {@link Ease}\r\n\t */\r\n\tpublic morphEasing: (value: number) => number = $ease.cubicOut;\r\n\r\n\t/**\r\n\t * If set to `true`, all separate parts of the multi-part polygon will\r\n\t * morph into a single circle or polygon when using built-in methods\r\n\t * `morphToCircle()` or `morphToPolygon()`.\r\n\t *\r\n\t * Otherwise each separate part of polygon will morph to individual target\r\n\t * circle or polgyon.\r\n\t */\r\n\tpublic morphToSingle: boolean = true;\r\n\r\n\t/**\r\n\t * A ratio to scale morphed object in relation to the source object.\r\n\t */\r\n\tpublic scaleRatio: number = 1;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param morphable An object to morph\r\n\t */\r\n\tconstructor(morphable: IMorphable) {\r\n\t\tsuper();\r\n\t\tthis.className = \"Morpher\";\r\n\t\tthis.morphable = morphable;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Morphs a polygon to another polygon.\r\n\t *\r\n\t * @param toPoints Corner points of the target shape\r\n\t * @param duration Duration in milliseconds\r\n\t * @param easing Easing function\r\n\t * @return Animation\r\n\t */\r\n\tpublic morphToPolygon(toPoints: Array<Array<Array<IPoint>>>, duration?: number, easing?: (value: number) => number): Animation {\r\n\t\tlet points: Array<Array<Array<IPoint>>> = this.morphable.currentPoints;\r\n\t\tif(points && toPoints){\r\n\t\t\tthis.sortPoints(points);\r\n\t\t\tthis.sortPoints(toPoints);\r\n\r\n\t\t\tthis._morphFromPointsReal = [];\r\n\t\t\tthis._morphToPointsReal = [];\r\n\r\n\t\t\tif (!$type.hasValue(duration)) {\r\n\t\t\t\tduration = this.morphDuration;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.hasValue(easing)) {\r\n\t\t\t\teasing = this.morphEasing;\r\n\t\t\t}\r\n\r\n\t\t\tthis._morphFromPointsReal = this.normalizePoints(toPoints, points);\r\n\t\t\tthis._morphToPointsReal = this.normalizePoints(points, toPoints);\r\n\r\n\t\t\tthis.morphable.currentPoints = this._morphFromPointsReal;\r\n\r\n\t\t\tlet animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n\t\t\tthis._disposers.push(animation);\r\n\t\t\tanimation.start()\r\n\t\t\treturn animation;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [normalizePoints description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param pointsA Point A\r\n\t * @param pointsB Point B\r\n\t * @return Normalized points\r\n\t */\r\n\tpublic normalizePoints(pointsA: Array<Array<Array<IPoint>>>, pointsB: Array<Array<Array<IPoint>>>): Array<Array<Array<IPoint>>> {\r\n\t\tfor (let i = 0, len = pointsA.length; i < len; i++) {\r\n\t\t\tlet surfaceA: Array<IPoint> = pointsA[i][0];\r\n\r\n\t\t\tlet holeA: Array<IPoint> = pointsA[i][1];\r\n\t\t\tlet bboxA: IRectangle = $type.getValue($math.getBBox(surfaceA));\r\n\r\n\t\t\tlet middleX = bboxA.x + bboxA.width;\r\n\t\t\tlet middleY = bboxA.y + bboxA.height;\r\n\r\n\t\t\t// check if we have the same in PointsB\r\n\t\t\tif (!pointsB[i]) {\r\n\t\t\t\tpointsB[i] = [];\r\n\t\t\t}\r\n\r\n\t\t\t// check if we have surface in pointsB\r\n\t\t\tif (surfaceA && !pointsB[i][0]) {\r\n\t\t\t\tpointsB[i][0] = [{ x: middleX, y: middleY }, { x: middleX, y: middleY }];\r\n\t\t\t}\r\n\r\n\t\t\tif (pointsB[i][0]) {\r\n\t\t\t\tpointsB[i][0] = this.addPoints(pointsB[i][0], surfaceA.length);\r\n\r\n\t\t\t\tlet distance = Infinity;\r\n\t\t\t\tlet splitAt = 0;\r\n\r\n\t\t\t\tfor (let a = 0; a < pointsB[i][0].length; a++) {\r\n\t\t\t\t\tlet newDistance = $math.getDistance(pointsB[i][0][a], surfaceA[0]);\r\n\t\t\t\t\tif (newDistance < distance) {\r\n\t\t\t\t\t\tsplitAt = a;\r\n\t\t\t\t\t\tdistance = newDistance;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet partA = pointsB[i][0].slice(0, splitAt);\r\n\t\t\t\tlet partB = pointsB[i][0].slice(splitAt);\r\n\t\t\t\tpointsB[i][0] = partB.concat(partA);\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (holeA) {\r\n\t\t\t\tif (!pointsB[i][1]) {\r\n\t\t\t\t\tpointsB[i][1] = [{ x: middleX, y: middleY }, { x: middleX, y: middleY }];\r\n\t\t\t\t}\r\n\t\t\t\tpointsB[i][1] = this.addPoints(pointsB[i][1], holeA.length);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn pointsB;\r\n\t}\r\n\r\n\t/**\r\n\t * [sortPoints description]\r\n\t *\r\n\t * @ignore Exclude from doc\r\n\t * @todo Description\r\n\t * @param points [description]\r\n\t * @return common bbox of points\r\n\t */\r\n\tpublic sortPoints(points: Array<Array<Array<IPoint>>>): $type.Optional<IRectangle> {\r\n\t\tpoints.sort(function(a, b) {\r\n\t\t\tlet bbox1: IRectangle = $type.getValue($math.getBBox(a[0]));\r\n\t\t\tlet bbox2: IRectangle = $type.getValue($math.getBBox(b[0]));\r\n\r\n\t\t\tif (bbox1.width * bbox1.height > bbox2.width * bbox2.height) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet bboxes: IRectangle[] = [];\r\n\t\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\t\tlet surface: IPoint[] = points[i][0];\r\n\t\t\tif (surface) {\r\n\t\t\t\tbboxes.push($type.getValue($math.getBBox(surface)));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn $math.getCommonRectangle(bboxes);\r\n\t}\r\n\r\n\t/**\r\n\t * Morphs polygon to a circle (it is actually a polygon which makes a circle).\r\n\t *\r\n\t * @param radius Target circle radius (px)\r\n\t * @param duration Duration (ms)\r\n\t * @param easing Easing function\r\n\t * @return Animation\r\n\t */\r\n\tpublic morphToCircle(radius?: number, duration?: number, easing?: (value: number) => number): Animation {\r\n\t\tlet points: Array<Array<Array<IPoint>>> = this.morphable.points;\r\n\r\n\t\tlet commonBBox = this.sortPoints(points);\r\n\r\n\t\tthis._morphFromPointsReal = [];\r\n\t\tthis._morphToPointsReal = [];\r\n\r\n\t\tif (!$type.hasValue(duration)) {\r\n\t\t\tduration = this.morphDuration;\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(easing)) {\r\n\t\t\teasing = this.morphEasing;\r\n\t\t}\r\n\r\n\t\t// surface\r\n\t\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\t\tlet surface: IPoint[] = points[i][0];\r\n\t\t\tlet hole: IPoint[] = points[i][1];\r\n\r\n\t\t\tthis._morphFromPointsReal[i] = [];\r\n\t\t\tthis._morphToPointsReal[i] = [];\r\n\r\n\t\t\tif (surface) {\r\n\r\n\t\t\t\tlet toPoints: IPoint[] = surface;\r\n\t\t\t\tlet fromPoints: IPoint[] = surface;\r\n\t\t\t\tlet bbox: IRectangle = $type.getValue($math.getBBox(fromPoints)) // this._bboxes[i];\r\n\r\n\t\t\t\tif (this.morphToSingle) {\r\n\t\t\t\t\tbbox = $type.getValue(commonBBox);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet middleX: number = bbox.x + bbox.width / 2;\r\n\t\t\t\tlet middleY: number = bbox.y + bbox.height / 2;\r\n\t\t\t\tlet realRadius: $type.Optional<number> = radius;\r\n\t\t\t\tif (!$type.isNumber(realRadius)) {\r\n\t\t\t\t\trealRadius = Math.min(bbox.width / 2, bbox.height / 2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttoPoints = [];\r\n\r\n\t\t\t\t// find angle for the first point\r\n\t\t\t\tlet startAngle: number = $math.getAngle({ x: middleX, y: middleY }, surface[0]);\r\n\t\t\t\tlet count: number = 100;\r\n\r\n\t\t\t\tif (surface.length > count) {\r\n\t\t\t\t\tcount = surface.length;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfromPoints = this.addPoints(surface, count);\r\n\t\t\t\tcount = fromPoints.length; // add Points might increase number a bit\r\n\r\n\t\t\t\tlet angle: number = 360 / (count - 1);\r\n\r\n\t\t\t\tfor (let a: number = 0; a < count; a++) {\r\n\t\t\t\t\tlet realAngle: number = angle * a + startAngle;\r\n\t\t\t\t\tlet pointOnCircle: IPoint = { x: middleX + realRadius * $math.cos(realAngle), y: middleY + realRadius * $math.sin(realAngle) };\r\n\t\t\t\t\ttoPoints[a] = pointOnCircle;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hole && hole.length > 0) {\r\n\t\t\t\t\tfor (let i = 0, hlen = hole.length; i < hlen; i++) {\r\n\t\t\t\t\t\ttoPoints.push({ x: middleX, y: middleY });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._morphFromPointsReal[i][0] = fromPoints;\r\n\t\t\t\tthis._morphToPointsReal[i][0] = toPoints;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.morphable.currentPoints = this._morphFromPointsReal;\r\n\r\n\t\tlet animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n\t\tthis._disposers.push(animation);\r\n\t\tanimation.start()\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * [addPoints description]\r\n\t *\r\n\t * @ignore Exclude from doc\r\n\t * @todo Description\r\n\t * @param points [description]\r\n\t * @param mustHaveCount [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic addPoints(points: IPoint[], mustHaveCount: number): IPoint[] {\r\n\t\tlet addToSegmentCount: number = Math.round(mustHaveCount / points.length);\r\n\t\tlet newPoints: IPoint[] = [];\r\n\t\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\t\tlet point0: IPoint = points[i];\r\n\t\t\tlet point1: IPoint;\r\n\t\t\tif (i == points.length - 1) {\r\n\t\t\t\tpoint1 = points[0];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpoint1 = points[i + 1];\r\n\t\t\t}\r\n\r\n\t\t\tnewPoints.push(point0);\r\n\r\n\t\t\tfor (let p: number = 1; p < addToSegmentCount; p++) {\r\n\t\t\t\tlet percent: number = p / addToSegmentCount;\r\n\t\t\t\tlet extraPoint: IPoint = { x: point0.x + (point1.x - point0.x) * percent, y: point0.y + (point1.y - point0.y) * percent }\r\n\t\t\t\tnewPoints.push(extraPoint);\r\n\t\t\t}\r\n\r\n\t\t\t// stop adding in case we already added more than left in original\r\n\t\t\tif (newPoints.length + points.length - i == mustHaveCount) {\r\n\t\t\t\taddToSegmentCount = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (newPoints.length < mustHaveCount && points.length > 0) {\r\n\t\t\tlet lastPoint: IPoint = points[points.length - 1];\r\n\t\t\tfor (let p: number = newPoints.length; p < mustHaveCount; p++) {\r\n\t\t\t\t// add same as last\r\n\t\t\t\tnewPoints.push({ x: lastPoint.x, y: lastPoint.y });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn newPoints;\r\n\t}\r\n\r\n\t/**\r\n\t * Morphs polygon into a rectangular polygon.\r\n\t *\r\n\t * @param width Width of the target rectangle (px)\r\n\t * @param height Height of the target rectangle (px)\r\n\t * @param duration Duration (ms)\r\n\t * @param easing Easing function\r\n\t * @return Animation\r\n\t */\r\n\tpublic morphToRectangle(width?: number, height?: number, duration?: number, easing?: (value: number) => number): Animation {\r\n\t\tlet points: Array<Array<Array<IPoint>>> = this.morphable.points;\r\n\r\n\t\tthis.sortPoints(points);\r\n\r\n\t\tthis._morphFromPointsReal = [];\r\n\t\tthis._morphToPointsReal = [];\r\n\r\n\t\tif (!$type.hasValue(duration)) {\r\n\t\t\tduration = this.morphDuration;\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(easing)) {\r\n\t\t\teasing = this.morphEasing;\r\n\t\t}\r\n\r\n\t\t//\t\tlet biggestBBox: IRectangle = this._bboxes[this._biggestIndex];\r\n\r\n\t\t// surface\r\n\t\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\t\tlet surface: IPoint[] = points[i][0];\r\n\t\t\tlet hole: IPoint[] = points[i][1];\r\n\r\n\t\t\tthis._morphFromPointsReal[i] = [];\r\n\t\t\tthis._morphToPointsReal[i] = [];\r\n\r\n\t\t\tif (surface) {\r\n\r\n\t\t\t\tlet toPoints: IPoint[] = surface;\r\n\t\t\t\tlet fromPoints: IPoint[] = surface;\r\n\t\t\t\tlet bbox: IRectangle = this._bboxes[i];\r\n\r\n\r\n\t\t\t\t// we only work with first area. TODO: maybe we should find the biggest one?\r\n\t\t\t\tif (this.morphToSingle) {\r\n\t\t\t\t\t//if (i != this._biggestIndex) {\r\n\t\t\t\t\t//\tbbox = { x: biggestBBox.x + biggestBBox.width / 2, y: biggestBBox.y + biggestBBox.height / 2, width: 0, height: 0 };\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet x: number = bbox.x;\r\n\t\t\t\tlet y: number = bbox.y;\r\n\r\n\t\t\t\tlet realWidth: $type.Optional<number> = width;\r\n\t\t\t\tlet realHeight: $type.Optional<number> = height;\r\n\r\n\t\t\t\tif (!$type.isNumber(realWidth)) {\r\n\t\t\t\t\trealWidth = bbox.width;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(realHeight)) {\r\n\t\t\t\t\trealHeight = bbox.height;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttoPoints = [{ x: x, y: y }, { x: x + realWidth, y: y }, { x: x + realWidth, y: y + realHeight }, { x: x, y: y + realHeight }];\r\n\t\t\t\ttoPoints = this.addPoints(toPoints, surface.length);\r\n\r\n\t\t\t\t// if polygon has less points then count, add\r\n\t\t\t\tif (surface.length < 4) {\r\n\t\t\t\t\tfor (let i = surface.length; i < 4; i++) {\r\n\t\t\t\t\t\ttoPoints.push({ x: surface[i].x, y: surface[i].y });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (hole && hole.length > 0) {\r\n\t\t\t\t\tlet middleX: number = bbox.x + bbox.width / 2;\r\n\t\t\t\t\tlet middleY: number = bbox.y + bbox.height / 2;\r\n\r\n\t\t\t\t\tfor (let i = 0, hlen = hole.length; i < hlen; i++) {\r\n\t\t\t\t\t\ttoPoints.push({ x: middleX, y: middleY });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._morphFromPointsReal[i][0] = fromPoints;\r\n\t\t\t\tthis._morphToPointsReal[i][0] = toPoints;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.morphable.currentPoints = this._morphFromPointsReal;\r\n\r\n\t\tlet animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n\t\tthis._disposers.push(animation);\r\n\t\tanimation.start()\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Progress of the morph transition.\r\n\t *\r\n\t * Setting this will also trigger actual transformation.\r\n\t *\r\n\t * @param value Progress (0-1)\r\n\t */\r\n\tpublic set morphProgress(value: $type.Optional<number>) {\r\n\t\tthis._morphProgress = value;\r\n\r\n\t\tlet currentPoints: Array<Array<Array<IPoint>>> = [];\r\n\r\n\t\tif (value != null) {\r\n\t\t\tlet fromPoints: $type.Optional<Array<Array<Array<IPoint>>>> = this._morphFromPointsReal;\r\n\t\t\tlet toPoints: $type.Optional<Array<Array<Array<IPoint>>>> = this._morphToPointsReal;\r\n\r\n\t\t\tif (fromPoints != null && toPoints != null) {\r\n\r\n\t\t\t\tfor (let i = 0, len = fromPoints.length; i < len; i++) {\r\n\r\n\t\t\t\t\tlet currentArea: Array<Array<IPoint>> = [];\r\n\t\t\t\t\tcurrentPoints.push(currentArea);\r\n\r\n\t\t\t\t\tlet surfaceFrom: IPoint[] = fromPoints[i][0];\r\n\t\t\t\t\tlet holeFrom: IPoint[] = fromPoints[i][1];\r\n\r\n\t\t\t\t\tlet surfaceTo: IPoint[] = toPoints[i][0];\r\n\t\t\t\t\tlet holeTo: IPoint[] = toPoints[i][1];\r\n\r\n\t\t\t\t\tif (surfaceFrom && surfaceFrom.length > 0 && surfaceTo && surfaceTo.length > 0) {\r\n\r\n\t\t\t\t\t\tlet currentSurface: IPoint[] = [];\r\n\r\n\t\t\t\t\t\tfor (let i = 0, slen = surfaceFrom.length; i < slen; i++) {\r\n\t\t\t\t\t\t\tlet point0: IPoint = surfaceFrom[i];\r\n\t\t\t\t\t\t\tlet point1: IPoint = surfaceTo[i];\r\n\r\n\t\t\t\t\t\t\tlet currentPoint: IPoint = { x: point0.x + (point1.x * this.scaleRatio - point0.x) * value, y: point0.y + (point1.y * this.scaleRatio - point0.y) * value }\r\n\r\n\t\t\t\t\t\t\tcurrentSurface.push(currentPoint);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurrentArea[0] = currentSurface;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (holeFrom && holeFrom.length > 0 && holeTo && holeTo.length > 0) {\r\n\t\t\t\t\t\tlet currentHole: IPoint[] = [];\r\n\t\t\t\t\t\tfor (let i = 0, hlen = holeFrom.length; i < hlen; i++) {\r\n\t\t\t\t\t\t\tlet point0: IPoint = holeFrom[i];\r\n\t\t\t\t\t\t\tlet point1: IPoint = holeTo[i];\r\n\r\n\t\t\t\t\t\t\tlet currentPoint: IPoint = { x: point0.x + (point1.x * this.scaleRatio - point0.x) * value, y: point0.y + (point1.y * this.scaleRatio - point0.y) * value }\r\n\r\n\t\t\t\t\t\t\tcurrentHole.push(currentPoint);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurrentArea[1] = currentHole;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.morphable.currentPoints = currentPoints;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the progress of morph transition.\r\n\t *\r\n\t * @return Progress (0-1)\r\n\t */\r\n\tpublic get morphProgress(): $type.Optional<number> {\r\n\t\treturn this._morphProgress;\r\n\t}\r\n\r\n\t/**\r\n\t * Restores the polygon to its original appearance.\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param easing Easing function\r\n\t * @return Animation\r\n\t */\r\n\tpublic morphBack(duration?: number, easing?: (value: number) => number): Animation {\r\n\t\tthis._morphToPointsReal = this._morphFromPointsReal;\r\n\t\tthis._morphFromPointsReal = this.morphable.currentPoints;\r\n\r\n\t\tif (!$type.hasValue(duration)) {\r\n\t\t\tduration = this.morphDuration;\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(easing)) {\r\n\t\t\teasing = this.morphEasing;\r\n\t\t}\r\n\r\n\t\tlet animation = new Animation(this, { property: \"morphProgress\", from: 0, to: 1 }, duration, easing);\r\n\t\tthis._disposers.push(animation);\r\n\t\tanimation.start()\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of morph animations currently being played.\r\n\t *\r\n\t * @return List of animations\r\n\t */\r\n\tpublic get animations(): Array<Animation> {\r\n\t\tif (!this._animations) {\r\n\t\t\tthis._animations = [];\r\n\t\t\tthis._disposers.push(new AnimationDisposer(this._animations));\r\n\t\t}\r\n\t\treturn this._animations;\r\n\t}\r\n\r\n}\r\n","/**\r\n * Polygon module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { Morpher } from \"../utils/Morpher\";\r\nimport { IMorphable } from \"../defs/IMorphable\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Polygon]].\r\n */\r\nexport interface IPolygonProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * An array of X/Y coordinates for each elbow of the polygon.\r\n\t */\r\n\tpoints?: Array<Array<Array<IPoint>>>;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Polygon]].\r\n */\r\nexport interface IPolygonEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Polygon]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPolygonAdapters extends ISpriteAdapters, IPolygonProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a polygon.\r\n *\r\n * @see {@link IPolygonEvents} for a list of available events\r\n * @see {@link IPolygonAdapters} for a list of available Adapters\r\n */\r\nexport class Polygon extends Sprite implements IMorphable {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPolygonProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPolygonAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPolygonEvents;\r\n\r\n\t/**\r\n\t * A morpher instance that is used to morph polygon into some other shape.\r\n\t */\r\n\tprotected _morpher: $type.Optional<Morpher>;\r\n\r\n\t/**\r\n\t * Current points that morpher uses. This is needed so that we don't\r\n\t * overwrite polygons original points.\r\n\t */\r\n\tprotected _currentPoints: Array<Array<Array<IPoint>>>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Polygon\";\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\t\tthis.shapeRendering = \"auto\";\r\n\t\tthis._currentPoints = [];\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * An array of X/Y coordinates for each elbow of the polygon.\r\n\t *\r\n\t * @todo Example\r\n\t * @param points Polygon points\r\n\t */\r\n\tpublic set points(points: Array<Array<Array<IPoint>>>) {\r\n\t\tthis.setPropertyValue(\"points\", points, true);\r\n\t\tthis._currentPoints = points;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Polygon points\r\n\t */\r\n\tpublic get points(): Array<Array<Array<IPoint>>> {\r\n\t\tlet points = this.getPropertyValue(\"points\");\r\n\t\tlet path = this.path;\r\n\r\n\t\tif (path && (!points || points.length == 0)) {\r\n\r\n\t\t\tlet valueStr = path.slice(1, path.length - 1);\r\n\r\n\t\t\tlet segments: string[] = valueStr.split(\"ZM\");\r\n\r\n\t\t\tfor (let s = 0; s < segments.length; s++) {\r\n\t\t\t\tlet segment = segments[s];\r\n\t\t\t\tif (segment.length > 0) {\r\n\t\t\t\t\tlet areaHole = segment.split(\"M\");\r\n\r\n\t\t\t\t\tlet areaArr = areaHole[0];\r\n\t\t\t\t\tlet holeArr = areaHole[1];\r\n\r\n\t\t\t\t\tif (areaArr && areaArr.length > 0) {\r\n\r\n\t\t\t\t\t\tlet pointsArr = areaArr.split(\"L\");\r\n\t\t\t\t\t\tif (pointsArr.length > 0) {\r\n\r\n\t\t\t\t\t\t\tlet area: IPoint[] = [];\r\n\r\n\t\t\t\t\t\t\tlet areaAndHole: Array<Array<IPoint>> = [area];\r\n\t\t\t\t\t\t\tpoints.push(areaAndHole);\r\n\r\n\t\t\t\t\t\t\tfor (let p = 0; p < pointsArr.length; p++) {\r\n\t\t\t\t\t\t\t\tlet coords = pointsArr[p].split(\",\");\r\n\t\t\t\t\t\t\t\tarea.push({ x: +coords[0], y: +coords[1] });\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (holeArr && holeArr.length > 0) {\r\n\t\t\t\t\t\t\t\tlet pointsArr = holeArr.split(\"L\");\r\n\t\t\t\t\t\t\t\tif (pointsArr.length > 0) {\r\n\t\t\t\t\t\t\t\t\tlet hole: IPoint[] = [];\r\n\t\t\t\t\t\t\t\t\tareaAndHole.push(hole);\r\n\t\t\t\t\t\t\t\t\tfor (let p = pointsArr.length - 1; p >= 0; p--) {\r\n\t\t\t\t\t\t\t\t\t\tlet coords = pointsArr[p].split(\",\");\r\n\t\t\t\t\t\t\t\t\t\thole.push({ x: +coords[0], y: +coords[1] });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.setPropertyValue(\"points\", points);\r\n\t\t\tthis._currentPoints = points;\r\n\t\t}\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * Current points. Used when morphing the element, so that original `points`\r\n\t * are not overwritten.\r\n\t *\r\n\t * @param points Polygon points\r\n\t */\r\n\tpublic set currentPoints(points: Array<Array<Array<IPoint>>>) {\r\n\t\tif (this._currentPoints != points) {\r\n\t\t\tthis._currentPoints = points;\r\n\t\t\tthis.draw();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Polygon points\r\n\t */\r\n\tpublic get currentPoints(): Array<Array<Array<IPoint>>> {\r\n\t\tif((!this._currentPoints || this._currentPoints.length == 0) && this.path){\r\n\t\t\tthis._currentPoints = this.points;\r\n\t\t}\r\n\t\treturn this._currentPoints;\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tlet path: string = \"\";\r\n\t\tlet points: Array<Array<Array<IPoint>>> = this._currentPoints;\r\n\r\n\t\tlet left: $type.Optional<number>;\r\n\t\tlet right: $type.Optional<number>;\r\n\t\tlet top: $type.Optional<number>;\r\n\t\tlet bottom: $type.Optional<number>;\r\n\r\n\t\tif (points.length > 0) {\r\n\t\t\t// separate areas\r\n\t\t\tfor (let i = 0, len = points.length; i < len; i++) {\r\n\t\t\t\t// surface\r\n\t\t\t\tlet surface: IPoint[] = points[i][0];\r\n\t\t\t\tlet hole: IPoint[] = points[i][1];\r\n\r\n\t\t\t\tif (surface && surface.length > 0) {\r\n\t\t\t\t\tlet point: IPoint = surface[0];\r\n\r\n\t\t\t\t\tpath += $path.moveTo(point);\r\n\r\n\t\t\t\t\tfor (let s: number = 0; s < surface.length; s++) {\r\n\t\t\t\t\t\tpoint = surface[s];\r\n\t\t\t\t\t\tpath += $path.lineTo(point);\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(right) || (right < point.x)) {\r\n\t\t\t\t\t\t\tright = point.x;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!$type.isNumber(left) || (left > point.x)) {\r\n\t\t\t\t\t\t\tleft = point.x;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(top) || (top > point.y)) {\r\n\t\t\t\t\t\t\ttop = point.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!$type.isNumber(bottom) || (bottom < point.y)) {\r\n\t\t\t\t\t\t\tbottom = point.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// hole\r\n\t\t\t\tif (hole && hole.length > 0) {\r\n\t\t\t\t\tlet point: IPoint = hole[0];\r\n\t\t\t\t\tpath += $path.moveTo(point);\r\n\r\n\t\t\t\t\tfor (let h = 0, hlen = hole.length; h < hlen; h++) {\r\n\t\t\t\t\t\tpoint = hole[h];\r\n\t\t\t\t\t\tpath += $path.lineTo(point);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (path) {\r\n\t\t\t\tpath += $path.closePath();\r\n\t\t\t}\r\n\r\n\t\t\tthis.bbox.x = left;\r\n\t\t\tthis.bbox.y = top;\r\n\t\t\tthis.bbox.width = right - left;\r\n\t\t\tthis.bbox.height = bottom - top;\r\n\r\n\t\t\tsuper.setPath(path);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setPath(value: string): boolean {\r\n\t\tif (super.setPath(value)) {\r\n\t\t\tthis.points = [];\r\n\t\t\tthis._bbox = this.group.getBBox();\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Measures element\r\n\t */\r\n\tprotected measureElement(): void {\r\n\r\n\t\t// Overriding to avoid extra measurement.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A calculated center point for the shape.\r\n\t *\r\n\t * @readonly\r\n\t * @return Center\r\n\t */\r\n\tpublic get centerPoint(): IPoint {\r\n\t\treturn { x: this.bbox.x + this.bbox.width / 2, y: this.bbox.y + this.bbox.height / 2 };\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Morpher]] instance that is used to morph polygon into some other\r\n\t * shape.\r\n\t *\r\n\t * @readonly\r\n\t * @return Morpher instance\r\n\t */\r\n\tpublic get morpher(): Morpher {\r\n\t\tif (!this._morpher) {\r\n\t\t\tthis._morpher = new Morpher(this);\r\n\t\t\tthis._disposers.push(this._morpher);\r\n\t\t}\r\n\t\treturn this._morpher;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polygon\"] = Polygon;\r\n","/**\r\n * Preloader module.\r\n *\r\n * Preloader is a progress indicator.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Slice } from \"./Slice\";\r\nimport { Label } from \"./Label\";\r\nimport { registry } from \"../Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Preloader]].\r\n */\r\nexport interface IPreloaderProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Current preload progress. (0-1)\r\n\t *\r\n\t * * 0 - 0%\r\n\t * * 0.5 - 50%\r\n\t * * 1 - 100%\r\n\t */\r\n\tprogress?: number;\r\n\r\n\t/**\r\n\t * Delay display of preloader by X milliseconds.\r\n\t *\r\n\t * When loading starts (`progress` is set to <1) and finishes (`progress` is\r\n\t * set to 1) before `delay` ms, the loader is never shown.\r\n\t *\r\n\t * This is used to avoid brief flashing of the preload for very quick loads.\r\n\t *\r\n\t * @default 1000\r\n\t */\r\n\tdelay?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Preloader]].\r\n */\r\nexport interface IPreloaderEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Preloader]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPreloaderAdapters extends IContainerAdapters, IPreloaderProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A class used to draw and display progress indicator.\r\n *\r\n * @see {@link IPreloaderEvents} for a list of available events\r\n * @see {@link IPreloaderAdapters} for a list of available Adapters\r\n */\r\nexport class Preloader extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPreloaderProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPreloaderAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPreloaderEvents;\r\n\r\n\t/**\r\n\t * A [[Slice]] element that indicates load progress.\r\n\t *\r\n\t * This can be used to modify appearance of the preloader elements.\r\n\t */\r\n\tpublic progressSlice: Slice;\r\n\r\n\t/**\r\n\t * A [[Slice]] element that shows the full ring. (background for the\r\n\t * `progressSlice`)\r\n\t *\r\n\t * This can be used to modify appearance of the preloader elements.\r\n\t */\r\n\tpublic backgroundSlice: Slice;\r\n\r\n\t/**\r\n\t * Label that displays progress in percent.\r\n\t *\r\n\t * This can be used to modify appearance of the preloader elements.\r\n\t */\r\n\tpublic label: Label;\r\n\r\n\t/**\r\n\t * Logs the timestamp of when the loader was initiated. It will be used to\r\n\t * delay showing of the Preloader so for quick operations it does not even\r\n\t * appear on screen.\r\n\t */\r\n\tprotected _started: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Preloader\";\r\n\r\n\t\t// Set dimensions\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create main container\r\n\t\tlet sliceContainer: Container = this.createChild(Container);\r\n\t\tsliceContainer.shouldClone = false;\r\n\r\n\t\t// Add background (100%) slice\r\n\t\tlet backgroundSlice: Slice = sliceContainer.createChild(Slice);\r\n\t\tbackgroundSlice.shouldClone = false;\r\n\t\tbackgroundSlice.radius = 53;\r\n\t\tbackgroundSlice.arc = 360;\r\n\t\tbackgroundSlice.fill = interfaceColors.getFor(\"fill\");\r\n\t\tbackgroundSlice.fillOpacity = 0.8;\r\n\t\tbackgroundSlice.innerRadius = 42;\r\n\t\tbackgroundSlice.isMeasured = false;\r\n\t\tthis.backgroundSlice = backgroundSlice;\r\n\r\n\t\t// Add progress slice\r\n\t\tlet progressSlice: Slice = sliceContainer.createChild(Slice);\r\n\t\tprogressSlice.shouldClone = false;\r\n\t\tprogressSlice.radius = 50;\r\n\t\tprogressSlice.innerRadius = 45;\r\n\t\tprogressSlice.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tprogressSlice.fillOpacity = 0.2;\r\n\t\tprogressSlice.isMeasured = false;\r\n\t\tthis.progressSlice = progressSlice;\r\n\r\n\t\t// Add text label element\r\n\t\tlet label: Label = sliceContainer.createChild(Label);\r\n\t\tlabel.shouldClone = false;\r\n\t\tlabel.horizontalCenter = \"middle\";\r\n\t\tlabel.verticalCenter = \"middle\";\r\n\t\tlabel.isMeasured = false;\r\n\t\tlabel.fill = interfaceColors.getFor(\"text\");\r\n\t\tlabel.align = \"center\";\r\n\t\tlabel.valign = \"middle\";\r\n\t\tlabel.textAlign = \"middle\";\r\n\t\tlabel.fillOpacity = 0.4;\r\n\t\tthis.label = label;\r\n\r\n\t\t// Set defaults\r\n\t\tthis.background.opacity = 1;\r\n\t\tthis.background.fill = interfaceColors.getFor(\"background\");\r\n\t\tthis.contentAlign = \"center\";\r\n\t\tthis.contentValign = \"middle\";\r\n\t\tthis.delay = 300;\r\n\r\n\t\t// Create hidden state\r\n\t\tlet hiddenState = this.states.create(\"hidden\");\r\n\t\thiddenState.properties.opacity = 0;\r\n\r\n\t\t// Hide by default\r\n\t\tthis.visible = false;\r\n\t\tthis.hide(0);\r\n\t\tthis.__disabled = true;\r\n\r\n\t\t// Make it disposable\r\n\t\t// @todo Maybe it's enough to just dispose `sliceContainer`?\r\n\t\tthis._disposers.push(this.backgroundSlice);\r\n\t\tthis._disposers.push(this.progressSlice);\r\n\t\tthis._disposers.push(this.label);\r\n\t\tthis._disposers.push(sliceContainer);\r\n\t}\r\n\r\n\t/**\r\n\t * Current preload progress. (0-1)\r\n\t *\r\n\t * * 0 - 0%\r\n\t * * 0.5 - 50%\r\n\t * * 1 - 100%\r\n\t *\r\n\t * Setting this to a value less than 1, will automatically reveal the\r\n\t * preloader, while setting it to 1 (100%) will hide it.\r\n\t *\r\n\t * @param value Progress (0-1)\r\n\t */\r\n\tpublic set progress(value: number) {\r\n\t\tthis.__disabled = false;\r\n\r\n\t\tthis.validateLayout(); // show not in center without this\r\n\r\n\t\tthis.setPropertyValue(\"progress\", value);\r\n\r\n\t\t/*if (!this.visible && value == 1) {\r\n\t\t\treturn;\r\n\t\t}*/\r\n\r\n\t\tthis.progressSlice.arc = 360 * value;\r\n\r\n\t\tif (this.label) {\r\n\t\t\tthis.label.text = Math.round(value * 100) + \"%\";\r\n\t\t}\r\n\r\n\t\tif (value >= 1) {\r\n\r\n\t\t\t// Cancel the timeout\r\n\t\t\tif (this._started) {\r\n\t\t\t\tthis._started = undefined;\r\n\t\t\t}\r\n\r\n\t\t\t// TODO remove closure ?\r\n\t\t\tregistry.events.once(\"enterframe\", () => {\r\n\t\t\t\tlet animation = this.hide();\r\n\t\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\t\tanimation.events.once(\"animationended\", () => {\r\n\t\t\t\t\t\tthis.__disabled = true;\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.interactionsEnabled = false;\r\n\t\t\tthis.setPropertyValue(\"progress\", 0);\r\n\t\t}\r\n\t\telse if (value > 0) {\r\n\t\t\tif (this.delay) {\r\n\t\t\t\tif (!this._started) {\r\n\t\t\t\t\tthis._started = new Date().getTime();\r\n\t\t\t\t}\r\n\t\t\t\telse if ((this._started + this.delay) <= new Date().getTime()) {\r\n\t\t\t\t\tthis.__disabled = false;\r\n\t\t\t\t\tthis.show();\r\n\t\t\t\t\tthis.interactionsEnabled = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.__disabled = false;\r\n\t\t\t\tthis.show();\r\n\t\t\t\tthis.interactionsEnabled = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @return Progress (0-1)\r\n\t */\r\n\tpublic get progress(): number {\r\n\t\treturn this.getPropertyValue(\"progress\");\r\n\t}\r\n\r\n\t/**\r\n\t * Delay display of preloader by X milliseconds.\r\n\t *\r\n\t * When loading starts (`progress` is set to <1) and finishes (`progress` is\r\n\t * set to 1) before `delay` ms, the loader is never shown.\r\n\t *\r\n\t * This is used to avoid brief flashing of the preload for very quick loads.\r\n\t *\r\n\t * @default 1000\r\n\t * @param value Delay (ms)\r\n\t */\r\n\tpublic set delay(value: number) {\r\n\t\tthis.setPropertyValue(\"delay\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Delay (ms)\r\n\t */\r\n\tpublic get delay(): number {\r\n\t\treturn this.getPropertyValue(\"delay\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Preloader\"] = Preloader;\r\n","/**\r\n * Zoom out button functionality.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button, IButtonProperties, IButtonAdapters, IButtonEvents } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { RoundedRectangle } from \"./RoundedRectangle\";\r\nimport { registry } from \"../Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[CloseButton]].\r\n */\r\nexport interface ICloseButtonProperties extends IButtonProperties { }\r\n\r\n/**\r\n * Defines events for [[CloseButton]].\r\n */\r\nexport interface ICloseButtonEvents extends IButtonEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CloseButton]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICloseButtonAdapters extends IButtonAdapters, ICloseButtonProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a zoom out button.\r\n *\r\n * @see {@link ICloseButtonEvents} for a list of available events\r\n * @see {@link ICloseButtonAdapters} for a list of available Adapters\r\n */\r\nexport class CloseButton extends Button {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICloseButtonProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICloseButtonAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICloseButtonEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"CloseButton\";\r\n\r\n\t\tthis.padding(8, 8, 8, 8);\r\n\t\tthis.showSystemTooltip = true;\r\n\r\n\t\tthis.width = 30;\r\n\t\tthis.height = 30;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.cursorOverStyle = MouseCursorStyle.pointer;\r\n\r\n\t\tlet background: RoundedRectangle = this.background;\r\n\t\tbackground.cornerRadius(20, 20, 20, 20);\r\n\r\n\t\tlet bgc = interfaceColors.getFor(\"background\");\r\n\t\tbackground.fill = bgc;\r\n\t\tbackground.stroke = interfaceColors.getFor(\"primaryButton\");\r\n\t\tbackground.strokeOpacity = 1;\r\n\t\tbackground.strokeWidth = 1;\r\n\r\n\t\tlet downColor = interfaceColors.getFor(\"primaryButtonActive\")\r\n\r\n\t\tlet bhs =background.states.getKey(\"hover\");\r\n\t\tbhs.properties.strokeWidth = 3;\r\n\t\tbhs.properties.fill = bgc;\r\n\r\n\t\tlet bds = background.states.getKey(\"down\");\t\t\t\t\r\n\t\tbds.properties.stroke = downColor;\r\n\t\tbds.properties.fill = bgc;\r\n\r\n\t\t// Create an icon\r\n\t\tlet icon: Sprite = new Sprite();\r\n\t\ticon.element = this.paper.add(\"path\");\r\n\t\ticon.stroke = background.stroke;\r\n\r\n\t\tthis.icon = icon;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\r\n\t\tlet w = this.pixelWidth / 3;\r\n\t\tlet h = this.pixelHeight / 3;\r\n\r\n\t\tlet path = $path.moveTo({ x: -w / 2, y: -h / 2 });\r\n\t\tpath += $path.lineTo({ x: w / 2, y: h / 2 });\r\n\t\tpath += $path.moveTo({ x: w / 2, y: -h / 2 });\r\n\t\tpath += $path.lineTo({ x: -w / 2, y: h / 2 });\r\n\t\tthis.icon.path = path;\r\n\t\tthis.invalidateLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Close\");\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CloseButton\"] = CloseButton;\r\n","/**\r\n * Functionality for drawing simple SwitchButtons.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Label } from \"./Label\";\r\nimport { RoundedRectangle } from \"../elements/RoundedRectangle\";\r\nimport { Button } from \"../elements/Button\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[SwitchButton]].\r\n */\r\nexport interface ISwitchButtonProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[SwitchButton]].\r\n */\r\nexport interface ISwitchButtonEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SwitchButton]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISwitchButtonAdapters extends IContainerAdapters, ISwitchButtonProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * SwitchButton class is capable of drawing a simple rectangular SwitchButton with\r\n * optionally rounded corners and an icon in it.\r\n *\r\n * @see {@link ISwitchButtonEvents} for a list of available events\r\n * @see {@link ISwitchButtonAdapters} for a list of available Adapters\r\n */\r\nexport class SwitchButton extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISwitchButtonProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISwitchButtonAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISwitchButtonEvents;\r\n\r\n\t/**\r\n\t * Icon reference.\r\n\t */\r\n\tprotected _icon: Sprite;\r\n\r\n\t/**\r\n\t * [[Label]] element for SwitchButton content.\r\n\t */\r\n\tprotected _leftLabel: $type.Optional<Label>;\r\n\r\n\t/**\r\n\t * [[Label]] element for SwitchButton content.\r\n\t */\r\n\tprotected _rightLabel: $type.Optional<Label>;\r\n\r\n\t/**\r\n\t * A type for background.\r\n\t */\r\n\tpublic _background: RoundedRectangle;\r\n\r\n\tprotected _switchButton: Button;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"SwitchButton\";\r\n\r\n\t\tthis.tooltipY = 0;\r\n\r\n\t\t// Set defaults\r\n\t\tthis.layout = \"horizontal\";\r\n\t\tthis.contentAlign = \"center\";\r\n\t\tthis.contentValign = \"middle\";\r\n\t\tthis.padding(8, 16, 8, 16);\r\n\t\tthis.setStateOnChildren = true;\r\n\t\tthis.states.create(\"active\");\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create the label element\r\n\t\tlet leftLabel = new Label();\r\n\t\tleftLabel.fillOpacity = 0.3;\r\n\t\tlet llas = leftLabel.states.create(\"active\");\r\n\t\tllas.properties.fillOpacity = 1;\r\n\t\tleftLabel.isActive = true;\r\n\t\tthis.leftLabel = leftLabel;\r\n\r\n\t\tlet button = new Button();\r\n\t\tlet circle = new Circle();\r\n\t\tbutton.contentValign = \"none\";\r\n\t\tbutton.padding(0, 0, 0, 0);\r\n\t\tcircle.radius = 10;\r\n\t\tbutton.icon = circle;\r\n\t\tbutton.icon.valign = \"middle\";\r\n\t\tbutton.label = undefined;\r\n\t\tlet p100 = percent(100);\r\n\t\tbutton.background.cornerRadius(p100, p100, p100, p100);\r\n\t\tbutton.width = circle.radius * 3.5;\r\n\t\tbutton.height = circle.radius * 2.1;\r\n\t\tbutton.marginLeft = 8;\r\n\t\tbutton.marginRight = 8;\r\n\t\tbutton.togglable = true;\r\n\t\tcircle.dx = -circle.radius * 0.7;\r\n\t\tcircle.fill = interfaceColors.getFor(\"primaryButton\");\r\n\r\n\t\tlet hs = circle.states.create(\"hover\");\r\n\t\ths.properties.fill = interfaceColors.getFor(\"primaryButtonHover\");\r\n\r\n\t\tlet as = circle.states.create(\"active\");\r\n\t\tas.properties.fill = interfaceColors.getFor(\"primaryButtonActive\");\r\n\t\tas.properties.dx = circle.radius * 0.7;\r\n\r\n\t\tthis.switchButton = button;\r\n\r\n\t\tthis.events.on(\"toggled\", () => {\r\n\t\t\tthis.leftLabel.isActive = !this.isActive;\r\n\t\t\tthis.rightLabel.isActive = this.isActive;\r\n\t\t})\r\n\r\n\t\t// Create the label element\r\n\t\tlet rightLabel = new Label();\r\n\t\trightLabel.fillOpacity = 0.3;\r\n\t\t\r\n\t\tlet rlas = rightLabel.states.create(\"active\");\r\n\t\trlas.properties.fillOpacity = 1;\r\n\t\tthis.rightLabel = rightLabel;\r\n\r\n\t\t// Set up accessibility\r\n\t\t// A Button should be always focusable\r\n\t\tthis.role = \"button\";\r\n\t\tthis.focusable = true;\r\n\r\n\t\trightLabel.valign = \"middle\";\r\n\t\tleftLabel.valign = \"middle\";\t\r\n\t\tbutton.valign = \"middle\"\t\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * [[Label]] element to be used for left text.\r\n\t *\r\n\t * @param left label element\r\n\t */\r\n\tpublic set leftLabel(label: $type.Optional<Label>) {\r\n\t\tif (this._leftLabel) {\r\n\t\t\tthis.removeDispose(this._leftLabel);\r\n\t\t}\r\n\t\tthis._leftLabel = label;\r\n\t\tif (label) {\r\n\t\t\tlabel.parent = this;\r\n\t\t\tlabel.interactionsEnabled = false;\r\n\t\t\tlabel.shouldClone = false;\r\n\t\t\tthis._disposers.push(this._leftLabel);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Left label element\r\n\t */\r\n\tpublic get leftLabel(): $type.Optional<Label> {\r\n\t\treturn this._leftLabel;\r\n\t}\r\n\r\n\t/**\r\n\t * [[Label]] element to be used for left text.\r\n\t *\r\n\t * @param rigth label element\r\n\t */\r\n\tpublic set rightLabel(label: $type.Optional<Label>) {\r\n\t\tif (this._rightLabel) {\r\n\t\t\tthis.removeDispose(this._rightLabel);\r\n\t\t}\r\n\t\tthis._rightLabel = label;\r\n\t\tif (label) {\r\n\t\t\tlabel.parent = this;\r\n\t\t\tlabel.interactionsEnabled = false;\r\n\t\t\tlabel.shouldClone = false;\r\n\t\t\tthis._disposers.push(this._rightLabel);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rigth label element\r\n\t */\r\n\tpublic get rightLabel(): $type.Optional<Label> {\r\n\t\treturn this._rightLabel;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Left label element\r\n\t */\r\n\tpublic get switch(): $type.Optional<Button> {\r\n\t\treturn this._switchButton;\r\n\t}\r\n\r\n\t/**\r\n\t * [[Label]] element to be used for left text.\r\n\t *\r\n\t * @param rigth label element\r\n\t */\r\n\tpublic set switchButton(button: $type.Optional<Button>) {\r\n\t\tif (this._switchButton) {\r\n\t\t\tthis.removeDispose(this._switchButton);\r\n\t\t}\r\n\t\tthis._switchButton = button;\r\n\t\tif (button) {\r\n\t\t\tbutton.parent = this;\r\n\t\t\tbutton.shouldClone = false;\r\n\t\t\tthis._disposers.push(this._switchButton);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies properties and other attributes.\r\n\t *\r\n\t * @param source Source\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (source.leftLabel) {\r\n\t\t\tthis.leftLabel.copyFrom(source.leftLabel)\r\n\t\t}\r\n\t\tif (source.rightLabel) {\r\n\t\t\tthis.rightLabel.copyFrom(source.rightLabel)\r\n\t\t}\r\n\t\tif (source.switchButton) {\r\n\t\t\tthis.switchButton.copyFrom(source.switchButton)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SwitchButton\"] = SwitchButton;\r\n","/**\r\n * Slider is a scrollbar with just one selection grip.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar, IScrollbarProperties, IScrollbarAdapters, IScrollbarEvents } from \"../../core/elements/Scrollbar\";\r\nimport { registry } from \"../Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Slider]].\r\n */\r\nexport interface ISliderProperties extends IScrollbarProperties { }\r\n\r\n/**\r\n * Defines events for [[Slider]].\r\n */\r\nexport interface ISliderEvents extends IScrollbarEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Slider]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISliderAdapters extends IScrollbarAdapters, ISliderProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a slider - a version of scrollbar with just one grip.\r\n *\r\n * @see {@link ISliderEvents} for a list of available events\r\n * @see {@link ISliderAdapters} for a list of available Adapters\r\n */\r\nexport class Slider extends Scrollbar {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISliderProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISliderAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISliderEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Slider\";\r\n\r\n\t\tthis.thumb.opacity = 0;\r\n\t\tthis.thumb.interactionsEnabled = false;\r\n\t\tthis.endGrip.opacity = 0;\r\n\t\tthis.endGrip.interactionsEnabled = false;\r\n\r\n\t\tthis.startGrip.events.on(\"drag\", () => {\r\n\t\t\tthis.endGrip.x = this.startGrip.x;\r\n\t\t\tthis.endGrip.y = this.startGrip.y;\r\n\t\t})\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tprotected get __end(): number {\r\n\t\treturn this._start;\r\n\t}\r\n\r\n\tprotected set __end(value: number) {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get end(): number {\r\n\t\treturn this._start;\r\n\t}\r\n\r\n\t/**\r\n\t * Relative position (0-1) of the end grip.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t */\r\n\tpublic set end(position: number) {\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Relative position (0-1) of the start grip.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t */\r\n\tpublic set start(position: number) {\r\n\t\tif (!this._isBusy) {\r\n\t\t\tthis.__start = position;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic get start(): number {\r\n\t\treturn this._start;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Slider\"] = Slider;\r\n","/**\r\n * Play button functionality.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button, IButtonProperties, IButtonAdapters, IButtonEvents } from \"./Button\";\r\nimport { RoundedRectangle } from \"./RoundedRectangle\";\r\nimport { registry } from \"../Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Triangle } from \"./Triangle\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[PlayButton]].\r\n */\r\nexport interface IPlayButtonProperties extends IButtonProperties { }\r\n\r\n/**\r\n * Defines events for [[PlayButton]].\r\n */\r\nexport interface IPlayButtonEvents extends IButtonEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PlayButton]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPlayButtonAdapters extends IButtonAdapters, IPlayButtonProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a zoom out button.\r\n *\r\n * @see {@link IPlayButtonEvents} for a list of available events\r\n * @see {@link IPlayButtonAdapters} for a list of available Adapters\r\n */\r\nexport class PlayButton extends Button {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPlayButtonProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPlayButtonAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPlayButtonEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"PlayButton\";\r\n\r\n\t\tthis.padding(12, 12, 12, 12);\r\n\r\n\t\tthis.showSystemTooltip = true;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tlet background: RoundedRectangle = this.background;\r\n\t\tbackground.cornerRadius(25, 25, 25, 25);\r\n\t\tbackground.fill = interfaceColors.getFor(\"primaryButton\");\r\n\t\tbackground.stroke = interfaceColors.getFor(\"primaryButtonStroke\");\r\n\t\tbackground.strokeOpacity = 0;\r\n\r\n\t\tbackground.states.getKey(\"hover\").properties.fill = interfaceColors.getFor(\"primaryButtonHover\");\r\n\t\tbackground.states.getKey(\"down\").properties.fill = interfaceColors.getFor(\"primaryButtonActive\");\r\n\r\n\t\t// Create a play icon\r\n\t\tlet playIcon: Triangle = new Triangle();\r\n\t\tplayIcon.direction = \"right\";\r\n\t\tplayIcon.width = 9;\r\n\t\tplayIcon.height = 11;\r\n\t\tplayIcon.marginLeft = 1;\r\n\t\tplayIcon.marginRight = 1;\r\n\t\tplayIcon.horizontalCenter = \"middle\";\r\n\t\tplayIcon.verticalCenter = \"middle\";\r\n\r\n\t\tplayIcon.stroke = interfaceColors.getFor(\"primaryButtonText\");\r\n\t\tplayIcon.fill = playIcon.stroke;\r\n\t\tthis.icon = playIcon;\r\n\r\n\t\t// Create a play icon\r\n\t\tlet stopIcon: RoundedRectangle = new RoundedRectangle();\r\n\t\tstopIcon.width = 11;\r\n\t\tstopIcon.height = 11;\r\n\t\tstopIcon.horizontalCenter = \"middle\";\r\n\t\tstopIcon.verticalCenter = \"middle\";\r\n\t\tstopIcon.cornerRadius(0, 0, 0, 0);\r\n\r\n\t\tstopIcon.stroke = interfaceColors.getFor(\"primaryButtonText\");\r\n\t\tstopIcon.fill = playIcon.stroke;\r\n\r\n\t\tthis.togglable = true;\r\n\r\n\t\tlet activeState = this.states.create(\"active\");\r\n\t\tactiveState.transitionDuration = 0;\r\n\t\tactiveState.properties.icon = stopIcon;\r\n\r\n\t\tthis.defaultState.transitionDuration = 0;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Play\");\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PlayButton\"] = PlayButton;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadialGradient } from \"./RadialGradient\";\r\nimport { GradientModifier } from \"./GradientModifier\";\r\nimport { registry } from \"../../Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This class can be used to modify radial gradient steps, changing visual\r\n * properties like lightness, brightness, opacity of each set.\r\n *\r\n * It can also set offsets for each gradient step.\r\n *\r\n * E.g. if I want to fill a columns in a column series to be a solid fill from\r\n * top to 80% of height, then gradually fades out, I can use the following\r\n * gradient modifier as a `fillModifier`:\r\n *\r\n * ```TypeScript\r\n * let fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JavaScript\r\n * var fillModifier = new am4core.LinearGradientModifier();\r\n * fillModifier.opacities = [1, 1, 0];\r\n * fillModifier.offsets = [0, 0.8, 1];\r\n * columnSeries.columns.template.fillModifier = fillModifier;\r\n * ```\r\n * ```JSON\r\n * \"series\": [{\r\n * \"type\": \"ColumnSeries\",\r\n * \"columns\": {\r\n * \"fillModifier\": {\r\n * \"type\": \"LinearGradientModifier\",\r\n * \"opacities\": [1, 1, 0],\r\n * \"offsets\": [0, 0.8, 1]\r\n * }\r\n * }\r\n * }]\r\n * ```\r\n */\r\nexport class RadialGradientModifier extends GradientModifier {\r\n\t/**\r\n\t * A reference to the gradient instance that this modifier is used for.\r\n\t */\r\n\tpublic gradient: RadialGradient;\r\n\t/**\r\n\t * Constructor.\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadialGradientModifier\";\r\n\t\tthis.gradient = new RadialGradient();\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.gradient = source.gradient.clone();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradientModifier\"] = RadialGradientModifier;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern, PatternProperties } from \"./Pattern\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $path from \"../../rendering/Path\";\r\n\r\nexport interface LinePatternProperties extends PatternProperties {\r\n\tgap: number;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Line pattern.\r\n */\r\nexport class LinePattern extends Pattern {\r\n\r\n\t/**\r\n\t * SVG `<line>` element used for pattern.\r\n\t */\r\n\tprotected _line: AMElement;\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: LinePatternProperties;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.properties[\"gap\"] = 0;\r\n\t\tthis._line = this.paper.add(\"path\");\r\n\t\tthis.addElement(this._line);\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the pattern.\r\n\t */\r\n\tprotected draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n\t\t\tthis.properties[\"shapeRendering\"] = \"auto\";\r\n\t\t}\r\n\t\tif (this._line) {\r\n\t\t\tlet w = this.width;\r\n\t\t\tlet h = this.height;\r\n\r\n\t\t\tlet path = \"\";\r\n\r\n\t\t\tif (!this.gap) {\r\n\t\t\t\tif (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n\t\t\t\t\tpath = $path.moveTo({ x: -w, y: h / 2 }) + $path.lineTo({ x: w * 2, y: h / 2 });\r\n\r\n\t\t\t\t\tthis.properties[\"rotationX\"] = this.width / 2;\r\n\t\t\t\t\tthis.properties[\"rotationY\"] = this.height / 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpath = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: w, y: 0 });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet step = this.gap + this.strokeWidth;\r\n\t\t\t\tlet count = this.height / step;\r\n\r\n\t\t\t\tfor (let i = -count / 2; i < count * 1.5; i++) {\r\n\t\t\t\t\tif (Math.round(this.rotation / 90) != this.rotation / 90) {\r\n\t\t\t\t\t\tpath += $path.moveTo({ x: -w, y: (i + 0.5) * step }) + $path.lineTo({ x: w * 2, y: (i + 0.5) * step });\r\n\r\n\t\t\t\t\t\tthis.properties[\"rotationX\"] = this.width / 2;\r\n\t\t\t\t\t\tthis.properties[\"rotationY\"] = this.height / 2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpath += $path.moveTo({ x: -w, y: i * step }) + $path.lineTo({ x: w * 2, y: i * step });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._line.attr({ \"d\": path });\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Number of pixels between pattern lines.\r\n\t *\r\n\t * The pattern will automatically draw required number of lines to fill\r\n\t * pattern area maintaining `gap` distance between them.\r\n\t *\r\n\t * 0 (zero) means only single line will be drawn.\r\n\t *\r\n\t * @default 0\r\n\t * @since 4.7.7\r\n\t */\r\n\tpublic set gap(value: number) {\r\n\t\tthis.properties[\"gap\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return gap\r\n\t */\r\n\tpublic get gap(): number {\r\n\t\treturn this.properties[\"gap\"];\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinePattern\"] = LinePattern;\r\n","/**\r\n * Rectangular pattern module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern, PatternProperties } from \"./Pattern\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for circle pattern\r\n */\r\nexport interface CirclePatternProperties extends PatternProperties {\r\n\tradius: number;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Circular pattern\r\n */\r\nexport class CirclePattern extends Pattern {\r\n\r\n\t/**\r\n\t * Reference to `<circle>` element used in pattern.\r\n\t */\r\n\tprotected _circle: $type.Optional<AMElement>;\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: CirclePatternProperties;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.properties[\"radius\"] = 2;\r\n\t\tthis._circle = this.paper.add(\"circle\");\r\n\t\tthis.addElement(this._circle);\r\n\t\tthis.shapeRendering = \"auto\";\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the circle element.\r\n\t */\r\n\tprotected draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (this._circle) {\r\n\t\t\tthis._circle.attr({ \"r\": this.radius, \"cx\": this.width / 2, \"cy\":this.height / 2});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Circle radius in pixels.\r\n\t *\r\n\t * @param value Radius (px)\r\n\t */\r\n\tpublic set radius(value: number) {\r\n\t\tthis.properties[\"radius\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px)\r\n\t */\r\n\tpublic get radius(): number {\r\n\t\treturn this.properties[\"radius\"];\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CirclePattern\"] = CirclePattern;\r\n","/**\r\n * Rectangular pattern module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Pattern, PatternProperties } from \"./Pattern\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for rectangular pattern\r\n */\r\nexport interface RectPatternProperties extends PatternProperties {\r\n\trectWidth: number;\r\n\trectHeight: number;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Rectangular pattern\r\n */\r\nexport class RectPattern extends Pattern {\r\n\r\n\t/**\r\n\t * Reference to `<rect>` element used in pattern.\r\n\t */\r\n\tprotected _rect: $type.Optional<AMElement>;\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: RectPatternProperties;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.rectHeight = 1;\r\n\t\tthis.rectWidth = 1;\r\n\t\tthis._rect = this.paper.add(\"rect\");\r\n\t\tthis.addElement(this._rect);\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the rectangular element.\r\n\t */\r\n\tprotected draw(): void {\r\n\t\tsuper.draw();\r\n\t\tthis.properties[\"rotationX\"] = this.width / 2;\r\n\t\tthis.properties[\"rotationY\"] = this.height / 2;\t\t\r\n\t\tif (this._rect) {\r\n\t\t\tthis._rect.attr({ \"width\": this.rectWidth, \"height\": this.rectHeight, \"x\":(this.width - this.rectWidth) / 2, \"y\":(this.height - this.rectHeight) / 2 });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Rectangle width in pixels.\r\n\t *\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set rectWidth(value: number) {\r\n\t\tthis.properties[\"rectWidth\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get rectWidth(): number {\r\n\t\treturn this.properties[\"rectWidth\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Rectangle height in pixels.\r\n\t *\r\n\t * @param value Height (px)\r\n\t */\r\n\tpublic set rectHeight(value: number) {\r\n\t\tthis.properties[\"rectHeight\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Height (px)\r\n\t */\r\n\tpublic get rectHeight(): number {\r\n\t\treturn this.properties[\"rectHeight\"];\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RectPattern\"] = RectPattern;\r\n","/**\r\n * Module for \"Colorize\" filter.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter, FilterProperties } from \"./Filter\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines additional properties relative to the \"Colorize\" filter.\r\n */\r\nexport interface ColorizeFilterProperties extends FilterProperties {\r\n\r\n\t/**\r\n\t * Color.\r\n\t */\r\n\tcolor?: Color;\r\n\r\n\t/**\r\n\t * Intensity. (0-1)\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\tintensity: number;\r\n\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a \"Colorize\" filter.\r\n */\r\nexport class ColorizeFilter extends Filter {\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: ColorizeFilterProperties;\r\n\r\n\t/**\r\n\t * A storage for Filter property/value pairs.\r\n\t * @see [@link ColorizeFilterProperties]\r\n\t */\r\n\t//public propertyValues: Dictionary<ColorizeFilterProperties, any>;\r\n\r\n\t/**\r\n\t * Reference to the `<feColorMatrix>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feColorMatrix: AMElement;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColorizeFilter\";\r\n\r\n\t\t// Create elements\r\n\t\t// NOTE: we do not need to add each individual element to `_disposers`\r\n\t\t// because `filterPrimitives` has an event handler which automatically adds\r\n\t\t// anything added to it to `_disposers`\r\n\t\tthis.feColorMatrix = this.paper.add(\"feColorMatrix\");\r\n\t\tthis.feColorMatrix.attr({ \"type\": \"matrix\" });\r\n\t\t//this.feColorMatrix.setAttribute(\"in\", \"SourceAlpha\");\r\n\t\tthis.filterPrimitives.push(this.feColorMatrix);\r\n\r\n\t\t// Set default properties\r\n\t\tthis.intensity = 1;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)applies colors to the already existing filter by modifying filyer's\r\n\t * color matrix element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic applyFilter(): void {\r\n\r\n\t\tlet i: number = this.intensity;\r\n\t\tlet ii = 1 - i;\r\n\r\n\t\tlet r: number;\r\n\t\tlet g: number;\r\n\t\tlet b: number;\r\n\r\n\t\tconst color = this.color;\r\n\r\n\t\tif (color && color.rgb) {\r\n\t\t\tr = color.rgb.r / 255 * i;\r\n\t\t\tg = color.rgb.g / 255 * i;\r\n\t\t\tb = color.rgb.b / 255 * i;\r\n\r\n\t\t} else {\r\n\t\t\tr = 0;\r\n\t\t\tg = 0;\r\n\t\t\tb = 0;\r\n\t\t}\r\n\r\n\t\tthis.feColorMatrix.attr({ \"values\": ii + \" 0 0 0 \" + r + \" 0 \" + ii + \" 0 0 \" + g + \" 0 0 \" + ii + \" 0 \" + b + \" 0 0 0 1 0\" });\r\n\t}\r\n\r\n\t/**\r\n\t * Target color to apply to the element.\r\n\t *\r\n\t * Depending on the `intensity`, all colors of the target element will steer\r\n\t * towards this color.\r\n\t *\r\n\t * E.g. setting to `am4core.color(\"greener\")` will make all colors greener.\r\n\t *\r\n\t * @param value Color\r\n\t */\r\n\tpublic set color(value: $type.Optional<Color>) {\r\n\t\tthis.properties[\"color\"] = value;\r\n\t\tthis.applyFilter();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color\r\n\t */\r\n\tpublic get color(): $type.Optional<Color> {\r\n\t\treturn this.properties[\"color\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Intensity of the color (0-1).\r\n\t *\r\n\t * The bigger the number the more of a `color` target's colors will become.\r\n\t *\r\n\t * 0 means the colors will remain as they are.\r\n\t * 1 means all colors will become the target `color`.\r\n\t *\r\n\t * @default 1\r\n\t * @param value Intensity (0-1)\r\n\t */\r\n\tpublic set intensity(value: number) {\r\n\t\tthis.properties.intensity = value;\r\n\t\tthis.applyFilter();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Intensity (0-1)\r\n\t */\r\n\tpublic get intensity(): number {\r\n\t\treturn this.properties.intensity;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorizeFilter\"] = ColorizeFilter;\r\n","/**\r\n * Module for \"Blur\" filter.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Filter, FilterProperties } from \"./Filter\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport { registry } from \"../../Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines additional properties relative to the \"Blur\" filter.\r\n */\r\nexport interface BlurFilterProperties extends FilterProperties {\r\n\r\n\t/**\r\n\t * Horizontal offset in pixels.\r\n\t *\r\n\t * @ignore Deprecated\r\n\t * @deprecated ?\r\n\t * @todo Remove?\r\n\t */\r\n\tdx?: number;\r\n\r\n\t/**\r\n\t * Vertical offset in pixels.\r\n\t *\r\n\t * @ignore Deprecated\r\n\t * @deprecated ?\r\n\t * @todo Remove?\r\n\t */\r\n\tdy?: number;\r\n\r\n\t/**\r\n\t * Blur value.\r\n\t */\r\n\tblur: number;\r\n\r\n\t/**\r\n\t * Opacity. (0-1)\r\n\t *\r\n\t * @ignore Deprecated\r\n\t * @deprecated ?\r\n\t * @todo Remove?\r\n\t */\r\n\topacity?: number;\r\n\r\n\t/**\r\n\t * Color.\r\n\t *\r\n\t * @ignore Deprecated\r\n\t * @deprecated ?\r\n\t * @todo Remove?\r\n\t */\r\n\tcolor?: Color;\r\n\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a \"Blur\" filter.\r\n */\r\nexport class BlurFilter extends Filter {\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: BlurFilterProperties;\r\n\r\n\t/**\r\n\t * A storage for Filter property/value pairs.\r\n\t * @see [@link BlurFilterProperties]\r\n\t */\r\n\t//public propertyValues: Dictionary<BlurFilterProperties, any>;\r\n\r\n\t/**\r\n\t * Reference to the `<feGaussianBlur>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feGaussianBlur: AMElement;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"BlurFilter\";\r\n\r\n\t\t// Create elements\r\n\t\t// NOTE: we do not need to add each individual element to `_disposers`\r\n\t\t// because `filterPrimitives` has an event handler which automatically adds\r\n\t\t// anything added to it to `_disposers`\r\n\r\n\t\tthis.feGaussianBlur = this.paper.add(\"feGaussianBlur\");\r\n\t\tthis.feGaussianBlur.attr({ \"result\": \"blurOut\", \"in\": \"SourceGraphic\" });\r\n\t\tthis.filterPrimitives.push(this.feGaussianBlur);\r\n\r\n\t\t// Set default properties\r\n\t\tthis.width = 200;\r\n\t\tthis.height = 200;\r\n\t\tthis.blur = 1.5;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Blur value.\r\n\t *\r\n\t * The bigger the value, the blurrier the target element will become.\r\n\t *\r\n\t * @default 1.5\r\n\t * @param value Blur\r\n\t */\r\n\tpublic set blur(value: number) {\r\n\t\tthis.properties.blur = value;\r\n\t\tthis.feGaussianBlur.attr({ \"stdDeviation\": value / this.scale });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Blur\r\n\t */\r\n\tpublic get blur(): number {\r\n\t\treturn this.properties.blur;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"BlurFilter\"] = BlurFilter;\r\n","/**\r\n * Module for \"Focus\" filter.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../Sprite\";\r\nimport { Filter, FilterProperties } from \"./Filter\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines additional properties relative to the \"Focus\" filter.\r\n */\r\nexport interface FocusFilterProperties extends FilterProperties {\r\n\r\n\t/**\r\n\t * Opacity of the outline. (0-1)\r\n\t */\r\n\topacity?: number;\r\n\r\n\t/**\r\n\t * Stroke (outline) color.\r\n\t */\r\n\tstroke?: Color;\r\n\r\n\t/**\r\n\t * Stroke (outline) thickness in pixels.\r\n\t */\r\n\tstrokeWidth?: number;\r\n\r\n\t/**\r\n\t * Stroke (outline) opacity. (0-1)\r\n\t */\r\n\tstrokeOpacity?: number;\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a \"Focus\" filter.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/accessibility/} more about accessibility\r\n * @see {@link https://www.amcharts.com/docs/v4/tutorials/changing-appearance-of-focused-items/} cusomizing focus appearance\r\n */\r\nexport class FocusFilter extends Filter {\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: FocusFilterProperties;\r\n\r\n\t/**\r\n\t * A storage for Filter property/value pairs.\r\n\t * @see [@link FocusFilterProperties]\r\n\t */\r\n\t//public propertyValues: Dictionary<FocusFilterProperties, any>;\r\n\r\n\t/**\r\n\t * Reference to the `<feFlood>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feFlood: AMElement;\r\n\r\n\t/**\r\n\t * Reference to the `<feMorphology>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feMorphology: AMElement;\r\n\r\n\t/**\r\n\t * Reference to the `<feFlood>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feColorMatrix: AMElement;\r\n\r\n\t/**\r\n\t * Reference to the `<feComposite>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feComposite: AMElement;\r\n\r\n\t/**\r\n\t * Reference to the `<feFlood>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic feBlend: AMElement;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"FocusFilter\";\r\n\r\n\t\t// Create elements\r\n\t\t// NOTE: we do not need to add each individual element to `_disposers`\r\n\t\t// because `filterPrimitives` has an event handler which automatically adds\r\n\t\t// anything added to it to `_disposers`\r\n\t\tthis.feFlood = this.paper.add(\"feFlood\");\r\n\t\tthis.feFlood.attr({ \"flood-color\": new InterfaceColorSet().getFor(\"primaryButtonHover\"), \"result\": \"base\" });\r\n\t\tthis.filterPrimitives.push(this.feFlood);\r\n\r\n\t\tthis.feMorphology = this.paper.add(\"feMorphology\");\r\n\t\tthis.feMorphology.attr({ \"result\": \"bigger\", \"in\": \"SourceGraphic\", \"operator\": \"dilate\", \"radius\": \"2\" });\r\n\t\tthis.filterPrimitives.push(this.feMorphology);\r\n\r\n\t\tthis.feColorMatrix = this.paper.add(\"feColorMatrix\");\r\n\t\tthis.feColorMatrix.attr({ \"result\": \"mask\", \"in\": \"bigger\", \"type\": \"matrix\", \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\" });\r\n\t\tthis.filterPrimitives.push(this.feColorMatrix);\r\n\r\n\t\tthis.feComposite = this.paper.add(\"feComposite\");\r\n\t\tthis.feComposite.attr({ \"result\": \"drop\", \"in\": \"base\", \"in2\": \"mask\", \"operator\": \"in\" });\r\n\t\tthis.filterPrimitives.push(this.feComposite);\r\n\r\n\t\tthis.feBlend = this.paper.add(\"feBlend\");\r\n\t\tthis.feBlend.attr({ \"in\": \"SourceGraphic\", \"in2\": \"drop\", \"mode\": \"normal\" });\r\n\t\tthis.filterPrimitives.push(this.feBlend);\r\n\r\n\t\t// Set default properties\r\n\t\tthis.width = 130;\r\n\t\tthis.height = 130;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Stroke (outline) color.\r\n\t *\r\n\t * @param value Color\r\n\t */\r\n\tpublic set stroke(value: $type.Optional<Color>) {\r\n\t\tthis.properties[\"stroke\"] = value;\r\n\t\tthis.feFlood.attr({ \"flood-color\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color\r\n\t */\r\n\tpublic get stroke(): $type.Optional<Color> {\r\n\t\treturn this.properties[\"stroke\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Stroke (outline) thickness in pixels.\r\n\t *\r\n\t * @param value Outline thickness (px)\r\n\t */\r\n\tpublic set strokeWidth(value: $type.Optional<number>) {\r\n\t\tthis.properties[\"strokeWidth\"] = value;\r\n\t\tthis.feMorphology.attr({ \"radius\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outline thickness (px)\r\n\t */\r\n\tpublic get strokeWidth(): $type.Optional<number> {\r\n\t\treturn this.properties[\"strokeWidth\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Opacity of the outline. (0-1)\r\n\t *\r\n\t * @param value Outline opacity (0-1)\r\n\t */\r\n\tpublic set opacity(value: $type.Optional<number>) {\r\n\t\tthis.properties[\"opacity\"] = value;\r\n\t\tthis.feColorMatrix.attr({ \"values\": \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \" + value + \" 0\" });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outline opacity (0-1)\r\n\t */\r\n\tpublic get opacity(): $type.Optional<number> {\r\n\t\treturn this.properties[\"opacity\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Sets filter's target element.\r\n\t *\r\n\t * In addition it also disables built-in focus outline on element this\r\n\t * filter is applied to.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Element filter is being attached to\r\n\t */\r\n\tprotected setSprite(value: Sprite): void {\r\n\t\tif (this._sprite && this._sprite != value) {\r\n\t\t\tthis._sprite.group.removeStyle(\"outline\");\r\n\t\t}\r\n\t\tvalue.group.addStyle({\r\n\t\t\t\"outline\": \"none\"\r\n\t\t});\r\n\t\tsuper.setSprite(value);\r\n\t}\r\n\r\n}\r\n","/**\r\n * This module contains PatternSet object definition\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { Color } from \"./Color\";\r\nimport { InterfaceColorSet } from \"./InterfaceColorSet\";\r\nimport { Pattern } from \"../rendering/fills/Pattern\";\r\nimport { LinePattern } from \"../rendering/fills/LinePattern\";\r\nimport { RectPattern } from \"../rendering/fills/RectPattern\";\r\nimport { CirclePattern } from \"../rendering/fills/CirclePattern\";\r\nimport { registry } from \"../Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines an interable list of distinctive patterns that can be used in\r\n * conjunction to colors to generate various fill patterns.\r\n *\r\n * @important\r\n * @since 4.7.5\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nexport class PatternSet extends BaseObject {\r\n\r\n\t/**\r\n\t * Holds the list of the colors in this set. (preset or auto-generated)\r\n\t */\r\n\tprotected _list: Pattern[] = [];\r\n\r\n\t/**\r\n\t * Current step.\r\n\t */\r\n\tprotected _currentStep: number = 0;\r\n\r\n\t/**\r\n\t * If set to non-zero value, the PatternSet will start iterating patterns from\r\n\t * that particular index, not the first pattern in the list.\r\n\t */\r\n\tprotected _startIndex: number = 0;\r\n\r\n\t/**\r\n\t * Current pass in cycle. Once all patterns in the list are iterated,\r\n\t * iteration restarts from beginning and currentPass is incremented.\r\n\t */\r\n\tprotected _currentPass: number = 0;\r\n\r\n\t/**\r\n\t * A base color. If there are no colors pre-set in the color list, ColorSet\r\n\t * will use this color as a base when generating new ones, applying\r\n\t * `stepOptions` and `passOptions` to this base color.\r\n\t */\r\n\tpublic baseColor: Color = new Color({\r\n\t\tr: 103,\r\n\t\tg: 183,\r\n\t\tb: 220\r\n\t});\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PatternSet\";\r\n\r\n\t\t// Set base color to be used for pattern elements\r\n\t\tconst interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Set default patterns\r\n\t\tthis.list = [\r\n\t\t\tthis.getLinePattern(1000, 45, 1, 6),\r\n\t\t\tthis.getRectPattern(10, 0, 4),\r\n\t\t\tthis.getLinePattern(1000, -45, 1, 6),\r\n\t\t\tthis.getCirclePattern(11, 2, true),\r\n\t\t\tthis.getLinePattern(6, 90, 1),\r\n\t\t\tthis.getRectPattern(12, 45, 6, true),\r\n\t\t\tthis.getLinePattern(6, 0, 1),\r\n\t\t\tthis.getRectPattern(7, 0, 4),\r\n\t\t\tthis.getLinePattern(1000, 45, 2, 3, \"4,2\"),\r\n\t\t\tthis.getCirclePattern(9, 3, false),\r\n\t\t\tthis.getLinePattern(1000, -45, 2, 3, \"4,2\"),\r\n\t\t\tthis.getRectPattern(10, 45, Math.sqrt(50)),\r\n\t\t\tthis.getLinePattern(1000, -45, 2, 1),\r\n\t\t\tthis.getRectPattern(10, 0, 9),\r\n\t\t\tthis.getLinePattern(1000, 45, 2, 1),\r\n\t\t\tthis.getLinePattern(1000, 0, 3, 1),\r\n\t\t\tthis.getRectPattern(10, 45, 10),\r\n\t\t\tthis.getLinePattern(1000, 90, 3, 1)\r\n\t\t];\r\n\r\n\t\tthis.baseColor = interfaceColors.getFor(\"stroke\");\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tpublic getLinePattern(size: number, rotation: number, thickness: number, gap?: number, strokeDashArray?: string): LinePattern {\r\n\t\tlet pattern = new LinePattern();\r\n\t\tpattern.width = size;\r\n\t\tpattern.height = size;\r\n\t\tpattern.stroke = this.baseColor;\r\n\t\tpattern.gap = gap;\r\n\t\tpattern.strokeDasharray = strokeDashArray;\r\n\t\tpattern.strokeWidth = thickness;\r\n\t\tpattern.rotation = rotation;\r\n\t\treturn pattern;\r\n\t}\r\n\r\n\tpublic getRectPattern(size: number, rotation: number, thickness: number, outline?:boolean): RectPattern {\r\n\t\tlet pattern = new RectPattern();\r\n\t\tpattern.width = size;\r\n\t\tpattern.height = size;\r\n\t\tpattern.rectWidth = thickness;\r\n\t\tpattern.rectHeight = thickness;\r\n\r\n\t\tif(outline){\r\n\t\t\tpattern.stroke = this.baseColor;\r\n\t\t\tpattern.strokeWidth = 1;\r\n\t\t\tpattern.fillOpacity = 0;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tpattern.fill = this.baseColor;\r\n\t\t\tpattern.strokeWidth = 0;\r\n\t\t}\r\n\r\n\t\tif(rotation != 0){\r\n\t\t\tpattern.shapeRendering = \"auto\";\r\n\t\t}\r\n\r\n\t\tpattern.rotation = rotation;\r\n\t\treturn pattern;\r\n\t}\r\n\r\n\tpublic getCirclePattern(size: number, radius: number, outline:boolean): CirclePattern {\r\n\t\tlet pattern = new CirclePattern();\r\n\t\tpattern.width = size;\r\n\t\tpattern.height = size;\r\n\t\tpattern.shapeRendering = \"auto\";\r\n\t\tpattern.radius = radius;\r\n\t\tif(outline){\r\n\t\t\tpattern.stroke = this.baseColor;\r\n\t\t\tpattern.strokeWidth = 1;\r\n\t\t\tpattern.fillOpacity = 0;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tpattern.fill = this.baseColor;\r\n\t\t\tpattern.strokeWidth = 0;\r\n\t\t}\r\n\t\treturn pattern;\r\n\t}\r\n\r\n\t/**\r\n\t * List of pre-defined patterns to be used in set.\r\n\t *\r\n\t * @param value Pattern list\r\n\t */\r\n\tpublic set list(value: Pattern[]) {\r\n\t\tthis._list = value;\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Pattern list\r\n\t */\r\n\tpublic get list(): Pattern[] {\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the next pattern in list.\r\n\t *\r\n\t * @return Pattern\r\n\t */\r\n\tpublic next(): Pattern {\r\n\t\tconst pattern = this.getIndex(this.currentStep);\r\n\t\tthis._currentStep++;\r\n\t\treturn pattern;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a color at specific index in the list.\r\n\t *\r\n\t * @param i Index\r\n\t * @return Pattern\r\n\t */\r\n\tpublic getIndex(i: number): Pattern {\r\n\t\tlet pattern;\r\n\t\twhile (this.list.length <= i) {\r\n\t\t\tthis.generatePatterns();\r\n\t\t}\r\n\t\tpattern = this.list[i];\r\n\t\treturn pattern.clone();\r\n\t}\r\n\r\n\t/**\r\n\t * Generates a new set of patterns.\r\n\t */\r\n\tprivate generatePatterns(): void {\r\n\t\tconst count = this.list.length / (this._currentPass + 1);\r\n\t\tthis._currentPass++;\r\n\t\tfor (let i = 0; i < count; i++) {\r\n\t\t\tthis.list.push(this.list[i].clone());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Resets internal iterator.\r\n\t *\r\n\t * Calling `next()` after this will return the very first color in the color\r\n\t * list, even if it was already returned before.\r\n\t */\r\n\tpublic reset(): void {\r\n\t\tthis._currentStep = this._startIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current color iteration. You can use this property to skip some\r\n\t * colors from iteration. E.g. setting it to `10` will skip first ten\r\n\t * colors.\r\n\t *\r\n\t * Please note that the number is zero-based.\r\n\t *\r\n\t * @param value Step\r\n\t */\r\n\tpublic set currentStep(value: number) {\r\n\t\tthis._currentStep = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Step\r\n\t */\r\n\tpublic get currentStep(): number {\r\n\t\treturn this._currentStep;\r\n\t}\r\n\r\n\t/**\r\n\t * If set to non-zero value, the ColorSet will start iterating colors from\r\n\t * that particular index, not the first color in the list.\r\n\t *\r\n\t * @default 0\r\n\t * @param value Index\r\n\t */\r\n\tpublic set startIndex(value: number) {\r\n\t\tthis._startIndex = value;\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Index\r\n\t */\r\n\tpublic get startIndex(): number {\r\n\t\treturn this._startIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\t// if (config) {\r\n\r\n\t\t// \t// Set up axis ranges\r\n\t\t// \tif ($type.hasValue(config.list) && $type.isArray(config.list)) {\r\n\t\t// \t\tfor (let i = 0, len = config.list.length; i < len; i++) {\r\n\t\t// \t\t\tif (!(config.list[i] instanceof Color)) {\r\n\t\t// \t\t\t\tconfig.list[i] = color(config.list[i]);\r\n\t\t// \t\t\t}\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\t\t// }\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PatternSet\"] = PatternSet;","/**\r\n * A plugin base class.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Optional } from \"./Type\";\r\nimport { IDisposer } from \"./Disposer\";\r\nimport { Sprite } from \"../Sprite\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\nexport interface IPlugin extends IDisposer {\r\n\ttarget: Optional<Sprite>;\r\n\tinit(): void;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This is a base class that provides core functionality for plugins.\r\n *\r\n * The easiest way to start off with a new plugin is to extend this class.\r\n *\r\n * It will provide all the mandatory functionality, such as disposers.\r\n *\r\n * @since 4.2.2\r\n */\r\nexport class Plugin implements IPlugin {\r\n\r\n\r\n\t/**\r\n\t * A target object plugin is for.\r\n\t */\r\n\tpublic target: Optional<Sprite>;\r\n\r\n\t/**\r\n\t * Is this object disposed?\r\n\t */\r\n\tprotected _disposed: boolean = false;\r\n\r\n\t/**\r\n\t * List of IDisposer which will be disposed when the BaseObject is disposed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _disposers: Array<IDisposer> = [];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\t// Nothing to do here\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates series with required events and adapters used to hijack its\r\n\t * data.\r\n\t */\r\n\tpublic init(): void {\r\n\t\t// Does nothing\r\n\t\t// Override it\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if this element is already disposed.\r\n\t *\r\n\t * @return Is disposed?\r\n\t */\r\n\tpublic isDisposed(): boolean {\r\n\t\treturn this._disposed;\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes this object and related stuff.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this._disposed) {\r\n\t\t\tthis._disposed = true;\r\n\r\n\t\t\tconst a = this._disposers;\r\n\r\n\t\t\tthis._disposers = <any>null;\r\n\r\n\t\t\twhile (a.length !== 0) {\r\n\t\t\t\tconst disposer = a.shift();\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","/**\r\n * AmChartsLogo module.\r\n *\r\n * AmChartsLogo shows amCharts logo for non-commercial users of a library.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { Polyspline } from \"./Polyspline\";\r\nimport { color } from \"../utils/Color\";\r\nimport { LinearGradient } from \"../rendering/fills/LinearGradient\";\r\nimport { DesaturateFilter } from \"../rendering/filters/DesaturateFilter\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AmChartsLogo]].\r\n * @ignore Exclude from docs\r\n */\r\nexport interface IAmChartsLogoProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[AmChartsLogo]].\r\n * @ignore Exclude from docs\r\n */\r\nexport interface IAmChartsLogoEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AmChartsLogo]].\r\n *\r\n * @see {@link Adapter}\r\n * @ignore Exclude from docs\r\n */\r\nexport interface IAmChartsLogoAdapters extends IContainerAdapters, IAmChartsLogoProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A class used to draw and display progress indicator.\r\n *\r\n * @see {@link IAmChartsLogoEvents} for a list of available events\r\n * @see {@link IAmChartsLogoAdapters} for a list of available Adapters\r\n * @ignore Exclude from docs\r\n */\r\nexport class AmChartsLogo extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAmChartsLogoProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAmChartsLogoAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAmChartsLogoEvents;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"AmChartsLogo\";\r\n\r\n\t\tthis.valign = \"bottom\";\r\n\r\n\t\tlet d = 0.3;\r\n\t\tthis.opacity = 0.3;\r\n\t\tthis.defaultState.properties.opacity = 0.4;\r\n\t\tthis.url = \"https://www.amcharts.com/\";\r\n\t\tthis.urlTarget = \"_blank\";\r\n\r\n\t\tthis.showSystemTooltip = true;\r\n\t\tthis.readerTitle = \"Chart created using amCharts library\";\r\n\t\tthis.width = 220 * d;\r\n\t\tthis.height = 70 * d;\r\n\t\tthis.background.opacity = 0;\r\n\r\n\t\tlet aColor = color(\"#474758\");\r\n\t\tif (new InterfaceColorSet().getFor(\"background\").alternative.hex == \"#ffffff\") {\r\n\t\t\taColor = color(\"#ffffff\");\r\n\t\t}\r\n\r\n\t\tlet aGradient = new LinearGradient();\r\n\r\n\t\taGradient.addColor(aColor);\r\n\t\taGradient.addColor(aColor, 1, 0.75);\r\n\t\taGradient.addColor(color(\"#3cabff\"), 1, 0.755);\r\n\t\taGradient.rotation = -10;\r\n\r\n\t\tlet aStroke = aGradient;\r\n\r\n\t\tlet m = this.createChild(Polyspline)\r\n\t\tm.shouldClone = false;\r\n\t\tm.isMeasured = false;\r\n\t\tm.segments = [[{ x: 50 * d, y: 50 * d }, { x: 90 * d, y: 50 * d }, { x: 120 * d, y: 20 * d }, { x: 135 * d, y: 35 * d }, { x: 150 * d, y: 20 * d }, { x: 180 * d, y: 50 * d }, { x: 200 * d, y: 50 * d }]]\r\n\t\tm.strokeWidth = 6 * d;\r\n\t\tm.tensionX = 0.8;\r\n\t\tm.tensionY = 1;\r\n\r\n\t\tm.stroke = color(\"#3cabff\");\r\n\r\n\t\tlet a = this.createChild(Polyspline);\r\n\t\ta.shouldClone = false;\r\n\t\ta.isMeasured = false;\r\n\t\ta.segments = [[{ x: 20 * d, y: 50 * d }, { x: 50 * d, y: 50 * d }, { x: 90 * d, y: 12 * d }, { x: 133 * d, y: 50 * d }, { x: 170 * d, y: 50 * d }, { x: 200 * d, y: 50 * d }]]\r\n\t\ta.strokeWidth = 6 * d;\r\n\t\ta.tensionX = 0.75;\r\n\t\ta.tensionY = 1;\r\n\t\ta.stroke = aStroke;\r\n\r\n\t\tthis._disposers.push(a);\r\n\r\n\t\tlet desaturateFilter = new DesaturateFilter();\r\n\t\tthis.filters.push(desaturateFilter);\r\n\r\n\t\tlet desaturateFilterHover = new DesaturateFilter();\r\n\t\tdesaturateFilterHover.saturation = 1;\r\n\r\n\t\tlet hoverState = this.states.create(\"hover\");\r\n\t\thoverState.properties.opacity = 1;\r\n\t\thoverState.filters.push(desaturateFilterHover);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { system } from \"../System\";\r\nimport { registry } from \"../Registry\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Container } from \"../Container\";\r\nimport { Component } from \"../Component\";\r\nimport { Paper } from \"../rendering/Paper\";\r\nimport { SVGContainer, svgContainers } from \"../rendering/SVGContainer\";\r\nimport { FocusFilter } from \"../rendering/filters/FocusFilter\";\r\nimport { Preloader } from \"../elements/Preloader\";\r\nimport { AmChartsLogo } from \"../elements/AmChartsLogo\";\r\nimport { ITheme } from \"../../themes/ITheme\";\r\nimport { Tooltip } from \"../elements/Tooltip\";\r\nimport { Disposer, MultiDisposer } from \"../utils/Disposer\";\r\nimport { percent } from \"./Percent\";\r\nimport { options } from \"../Options\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\nimport * as $dom from \"./DOM\";\r\nimport * as $utils from \"./Utils\";\r\nimport * as $log from \"./Log\";\r\n\r\n/**\r\n * ============================================================================\r\n * INSTANTIATION FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates all HTML and SVG containers needed for the chart instance, as well\r\n * as the new [[Sprite]] (as specified in `classType` parameter).\r\n *\r\n * @param htmlElement A container to creat elements in\r\n * @param classType A class definition of the new element to create\r\n * @return Newly-created Sprite object\r\n */\r\nfunction createChild<T extends Sprite>(htmlElement: $type.Optional<HTMLElement | string>, classType: { new(): T; }): T {\r\n\tlet htmlContainer = $dom.getElement(htmlElement);\r\n\r\n\t// If there's no container available yet, we create a fake one\r\n\tlet tmpContainer = false;\r\n\tif (!htmlContainer) {\r\n\t\thtmlContainer = document.createElement(\"div\");\r\n\t\thtmlContainer.style.width = \"200px\";\r\n\t\thtmlContainer.style.height = \"200px\";\r\n\t\thtmlContainer.style.visibility = \"hidden\";\r\n\t\thtmlContainer.style.position = \"absolute\";\r\n\t\tdocument.body.appendChild(htmlContainer);\r\n\t\ttmpContainer = true;\r\n\t}\r\n\r\n\tif (htmlContainer) {\r\n\r\n\t\thtmlContainer.innerHTML = \"\";\r\n\t\t//htmlContainer.style.overflow = \"hidden\";\r\n\r\n\t\tlet svgDiv = new SVGContainer(htmlContainer);\r\n\t\tlet paper = new Paper(svgDiv.SVGContainer, \"svg-\" + (svgContainers.length - 1));\r\n\r\n\t\t// the approach with masks is chosen because overflow:visible is set on SVG element in order tooltips could go outside\r\n\t\t// svg area - this is often needed when working with small charts.\r\n\r\n\t\t// main container which holds content container and tooltips container\r\n\t\tlet container = new Container();\r\n\t\tcontainer.htmlContainer = htmlContainer;\r\n\t\tcontainer.svgContainer = svgDiv;\r\n\t\tcontainer.width = percent(100);\r\n\t\tcontainer.height = percent(100);\r\n\t\tcontainer.background.fillOpacity = 0;\r\n\t\tcontainer.paper = paper;\r\n\t\tpaper.append(container.group);\r\n\r\n\t\t// Set up moving to proper element container if it's not yet ready at call time\r\n\t\tif (tmpContainer) {\r\n\t\t\t$dom.ready(() => {\r\n\t\t\t\tcontainer.moveHtmlContainer(htmlElement);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// this is set from parent container, but this one doesn't have, so do it manually.\r\n\t\tcontainer.relativeWidth = 1;\r\n\t\tcontainer.relativeHeight = 1;\r\n\r\n\t\tsvgDiv.container = container;\r\n\r\n\t\t// creating classType instance\r\n\t\tlet sprite = container.createChild(classType);\r\n\t\tsprite.topParent = container;\r\n\t\tlet uid = sprite.uid;\r\n\r\n\t\tregistry.invalidSprites[uid] = [];\r\n\t\tregistry.invalidDatas[uid] = [];\r\n\t\tregistry.invalidPositions[uid] = [];\r\n\t\tregistry.invalidLayouts[uid] = [];\r\n\r\n\t\tcontainer.baseId = uid;\r\n\r\n\t\tsprite.isBaseSprite = true;\r\n\t\tsprite.focusFilter = new FocusFilter();\r\n\t\tregistry.baseSprites.push(sprite);\r\n\t\tregistry.baseSpritesByUid[uid] = sprite;\r\n\r\n\t\tsprite.maskRectangle = { x: 0, y: 0, width: Math.max(svgDiv.width || 0, 0), height: Math.max(svgDiv.height || 0, 0) };\r\n\r\n\t\t// this solves issues with display:none, as all children are measured as 0x0\r\n\t\tcontainer.events.on(\"maxsizechanged\", (event) => {\r\n\t\t\tif (event.previousWidth == 0 || event.previousHeight == 0) {\r\n\t\t\t\tcontainer.deepInvalidate();\r\n\t\t\t}\r\n\t\t\tif (sprite.maskRectangle) {\r\n\t\t\t\tsprite.maskRectangle = { x: 0, y: 0, width: Math.max(svgDiv.width || 0, 0), height: Math.max(svgDiv.height || 0, 0) };\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet loopTimer: number | null = null;\r\n\r\n\t\t// Checks to see whether the chart was properly disposed or not\r\n\t\tconst loop = () => {\r\n\t\t\tif (!sprite.isDisposed()) {\r\n\t\t\t\tif ($dom.getRoot(sprite.dom) == null) {\r\n\t\t\t\t\tif (options.autoDispose) {\r\n\t\t\t\t\t\tcontainer.htmlContainer = undefined;\r\n\t\t\t\t\t\tsvgDiv.htmlElement = undefined;\r\n\t\t\t\t\t\tsprite.dispose();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$log.warn(\"Chart was not disposed\", sprite.uid);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tloopTimer = null;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tloopTimer = window.setTimeout(loop, 1000);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tloopTimer = null;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tloop();\r\n\r\n\t\tsprite.addDisposer(new Disposer(() => {\r\n\t\t\tif (loopTimer !== null) {\r\n\t\t\t\tclearTimeout(loopTimer);\r\n\t\t\t}\r\n\t\t\t$array.remove(registry.baseSprites, sprite);\r\n\t\t\tregistry.baseSpritesByUid[sprite.uid] = undefined;\r\n\t\t}));\r\n\r\n\t\t// TODO figure out a better way of doing this\r\n\t\tsprite.addDisposer(container);\r\n\r\n\t\t// tooltip container\r\n\t\tlet tooltipContainer: Container = container.createChild(Container);\r\n\t\ttooltipContainer.topParent = container;\r\n\t\ttooltipContainer.width = percent(100);\r\n\t\ttooltipContainer.height = percent(100);\r\n\t\ttooltipContainer.isMeasured = false;\r\n\t\tcontainer.tooltipContainer = tooltipContainer;\r\n\r\n\t\tsprite.tooltip = new Tooltip();\r\n\t\tsprite.tooltip.hide(0);\r\n\t\tsprite.tooltip.setBounds({ x: 0, y: 0, width: tooltipContainer.maxWidth, height: tooltipContainer.maxHeight });\r\n\r\n\t\ttooltipContainer.events.on(\"maxsizechanged\", () => {\r\n\t\t\t$type.getValue(sprite.tooltip).setBounds({ x: 0, y: 0, width: tooltipContainer.maxWidth, height: tooltipContainer.maxHeight });\r\n\t\t}, undefined, false)\r\n\r\n\t\t//@todo: maybe we don't need to create one by default but only on request?\r\n\r\n\t\tlet preloader = new Preloader();\r\n\t\tpreloader.events.on(\"inited\", () => {\r\n\t\t\tpreloader.__disabled = true;\r\n\t\t}, undefined, false);\r\n\t\tcontainer.preloader = preloader;\r\n\r\n\t\t//if (!options.commercialLicense) {\r\n\t\tif (sprite instanceof Container && !sprite.hasLicense()) {\r\n\t\t\tlet logo = tooltipContainer.createChild(AmChartsLogo);\r\n\t\t\ttooltipContainer.events.on(\"maxsizechanged\", (ev) => {\r\n\t\t\t\tif ((tooltipContainer.maxWidth <= 100) || (tooltipContainer.maxHeight <= 50)) {\r\n\t\t\t\t\tlogo.hide();\r\n\t\t\t\t}\r\n\t\t\t\telse if (logo.isHidden || logo.isHiding) {\r\n\t\t\t\t\tlogo.show();\r\n\t\t\t\t}\r\n\t\t\t}, undefined, false);\r\n\t\t\tsprite.logo = logo;\r\n\t\t\tlogo.align = \"left\";\r\n\t\t\tlogo.valign = \"bottom\";\r\n\t\t}\r\n\r\n\t\t$utils.used(sprite.numberFormatter); // need to create one.\r\n\r\n\t\t// Set this as an autonomouse instance\r\n\t\t// Controls like Preloader, Export will use this.\r\n\t\tcontainer.isStandaloneInstance = true;\r\n\r\n\t\tif (options.onlyShowOnViewport) {\r\n\t\t\tif (!$dom.isElementInViewport(htmlContainer, options.viewportTarget)) {\r\n\t\t\t\tsprite.__disabled = true;\r\n\t\t\t\tsprite.tooltipContainer.__disabled = true;\r\n\r\n\t\t\t\tlet disposers = [\r\n\t\t\t\t\t$dom.addEventListener(window, \"DOMContentLoaded\", function() { viewPortHandler(sprite); }),\r\n\t\t\t\t\t$dom.addEventListener(window, \"load\", function() { viewPortHandler(sprite); }),\r\n\t\t\t\t\t$dom.addEventListener(window, \"resize\", function() { viewPortHandler(sprite); }),\r\n\t\t\t\t\t$dom.addEventListener(window, \"scroll\", function() { viewPortHandler(sprite); })\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (options.viewportTarget) {\r\n\t\t\t\t\tconst targets = $type.isArray(options.viewportTarget) ? options.viewportTarget : options.viewportTarget ? [options.viewportTarget] : [];\r\n\t\t\t\t\tfor (let i = 0; i < targets.length; i++) {\r\n\t\t\t\t\t\tconst target = targets[i];\r\n\t\t\t\t\t\tdisposers.push($dom.addEventListener(target, \"resize\", function() { viewPortHandler(sprite); }));\r\n\t\t\t\t\t\tdisposers.push($dom.addEventListener(target, \"scroll\", function() { viewPortHandler(sprite); }));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet disposer = new MultiDisposer(disposers);\r\n\r\n\t\t\t\tsprite.addDisposer(disposer);\r\n\t\t\t\tsprite.vpDisposer = disposer;\r\n\t\t\t}\r\n\t\t\telse if (options.queue) {\r\n\t\t\t\taddToQueue(sprite);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (options.queue) {\r\n\t\t\taddToQueue(sprite);\r\n\t\t}\r\n\r\n\t\treturn sprite;\r\n\t}\r\n\telse {\r\n\t\tsystem.log(\"html container not found\");\r\n\t\tthrow new Error(\"html container not found\");\r\n\t}\r\n}\r\n\r\n/**\r\n * Disposes all of the currently active charts.\r\n */\r\nexport function disposeAllCharts(): void {\r\n\twhile (registry.baseSprites.length !== 0) {\r\n\t\tregistry.baseSprites.pop().dispose();\r\n\t}\r\n}\r\n\r\nexport function addToQueue(sprite: Sprite) {\r\n\tif (registry.queue.indexOf(sprite) == -1) {\r\n\t\tsprite.__disabled = true;\r\n\t\tsprite.tooltipContainer.__disabled = true;\r\n\t\tsprite.events.disableType(\"appeared\");\r\n\r\n\t\tif (registry.queue.length == 0) {\r\n\t\t\tregistry.events.once(\"exitframe\", () => {\r\n\t\t\t\tqueueHandler(sprite);\r\n\t\t\t})\r\n\t\t\tsystem.requestFrame();\r\n\t\t}\r\n\r\n\t\tsprite.addDisposer(new Disposer(() => {\r\n\t\t\tremoveFromQueue(sprite);\r\n\t\t}))\r\n\r\n\t\tregistry.queue.push(sprite);\r\n\t}\r\n}\r\n\r\nexport function removeFromQueue(sprite: Sprite) {\r\n\tlet index = registry.queue.indexOf(sprite);\r\n\tif (index >= 0) {\r\n\t\tregistry.queue.splice(registry.queue.indexOf(sprite), 1);\r\n\t\tlet nextSprite = registry.queue[index];\r\n\t\tif (nextSprite) {\r\n\t\t\tqueueHandler(nextSprite);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function viewPortHandler(sprite: Sprite) {\r\n\tif (sprite.__disabled && $dom.isElementInViewport(sprite.htmlContainer, options.viewportTarget)) {\r\n\r\n\t\tif (sprite.vpDisposer) {\r\n\t\t\tsprite.vpDisposer.dispose();\r\n\t\t}\r\n\r\n\t\taddToQueue(sprite);\r\n\t}\r\n}\r\n\r\nexport function queueHandler(sprite: Sprite) {\r\n\tsprite.__disabled = false;\r\n\tsprite.tooltipContainer.__disabled = false;\r\n\tsprite.events.enableType(\"appeared\");\r\n\tsprite.dispatch(\"removedfromqueue\");\r\n\r\n\tif (sprite.showOnInit) {\r\n\t\tsprite.events.on(\"appeared\", () => {\r\n\t\t\tremoveFromQueue(sprite);\r\n\t\t})\r\n\t}\r\n\r\n\tif (sprite.vpDisposer) {\r\n\t\tsprite.vpDisposer.dispose();\r\n\t}\r\n\tif (sprite instanceof Container) {\r\n\t\tsprite.invalidateLabels();\r\n\t}\r\n\r\n\tif (sprite.tooltipContainer) {\r\n\t\tsprite.tooltipContainer.invalidateLayout();\r\n\t}\r\n\tif (sprite instanceof Component) {\r\n\t\tsprite.invalidateData();\r\n\t\tsprite.reinit();\r\n\r\n\t\tsprite.events.once(\"datavalidated\", () => {\r\n\t\t\tif (sprite.showOnInit) {\r\n\t\t\t\tsprite.appear();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tremoveFromQueue(sprite);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\telse {\r\n\t\tsprite.reinit();\r\n\t\tsprite.events.once(\"inited\", () => {\r\n\t\t\tremoveFromQueue(sprite);\r\n\t\t})\r\n\t\tif (sprite.showOnInit) {\r\n\t\t\tsprite.appear();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * A shortcut to creating a chart instance.\r\n *\r\n * The first argument is either a reference to or an id of a DOM element to be\r\n * used as a container for the chart.\r\n *\r\n * The second argument is the type reference of the chart type. (for plain\r\n * JavaScript users this can also be a string indicating chart type)\r\n *\r\n * ```TypeScript\r\n * let chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n * ```\r\n * ```JavaScript\r\n * // Can pass in chart type reference like this:\r\n * var chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // ... or chart class type as a string:\r\n * var chart = am4core.create(\"chartdiv\", \"PieChart\");\r\n * ```\r\n *\r\n * @param htmlElement Reference or id of the target container element\r\n * @param classType Class type of the target chart type\r\n * @return Chart instance\r\n */\r\nexport function create<T extends Sprite>(htmlElement: $type.Optional<HTMLElement | string>, classType: { new(): T; }): T {\r\n\r\n\t// This is a nasty hack for the benefit of vanilla JS users, who do not\r\n\t// enjoy benefits of type-check anyway.\r\n\t// We're allowing passing in a name of the class rather than type reference\r\n\t// itself.\r\n\tlet classError: $type.Optional<Error>;\r\n\tif ($type.isString(classType)) {\r\n\t\tif ($type.hasValue(registry.registeredClasses[classType])) {\r\n\t\t\tclassType = registry.registeredClasses[classType];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tclassType = registry.registeredClasses[\"Container\"];\r\n\t\t\tclassError = new Error(\"Class [\" + classType + \"] is not loaded.\");\r\n\t\t}\r\n\t}\r\n\r\n\t// Create the chart\r\n\tlet chart = createChild(htmlElement, classType);\r\n\r\n\t// Error?\r\n\tif (classError) {\r\n\t\tchart.raiseCriticalError(classError);\r\n\t}\r\n\r\n\treturn chart;\r\n\r\n}\r\n\r\n/**\r\n * A shortcut to creating a chart from a config object.\r\n *\r\n * Example:\r\n *\r\n * ```TypeScript\r\n * let chart am4core.createFromConfig({ ... }, \"chartdiv\", am4charts.XYChart );\r\n * ```\r\n * ```JavaScript\r\n * var chart am4core.createFromConfig({ ... }, \"chartdiv\", \"XYChart\" );\r\n * ```\r\n *\r\n * If `chartType` parameter is not supplied it must be set in a config object,\r\n * via reference to chart type, e.g.:\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": am4charts.XYChart,\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": am4charts.XYChart,\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * Or via string: (if you are using JavaScript)\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * A `container` can either be a reference to an HTML container to put chart\r\n * in, or it's unique id.\r\n *\r\n * If `container` is not specified, it must be included in the config object:\r\n *\r\n * ```TypeScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * \"container\": \"chartdiv\",\r\n * // ...\r\n * }\r\n * ```\r\n * ```JavaScript\r\n * {\r\n * \"type\": \"XYChart\",\r\n * \"container\": \"chartdiv\",\r\n * // ...\r\n * }\r\n * ```\r\n *\r\n * @param config Config object in property/value pairs\r\n * @param htmlElement Container reference or ID\r\n * @param objectType Chart type\r\n * @return A newly created chart instance\r\n * @todo Throw exception if type is not correct\r\n */\r\nexport function createFromConfig(config: { [index: string]: any }, htmlElement?: string | HTMLElement, classType?: { new(): Sprite; } | string): Sprite {\r\n\r\n\t// Extract chart type from config if necessary\r\n\tif (!$type.hasValue(classType)) {\r\n\t\tclassType = config.type;\r\n\t\tdelete config.type;\r\n\t}\r\n\r\n\t// Extract element from config if necessary\r\n\tif (!$type.hasValue(htmlElement)) {\r\n\t\thtmlElement = config.container;\r\n\t\tdelete config.container;\r\n\t}\r\n\r\n\t// Check if we need to extract actual type reference\r\n\tlet finalType;\r\n\tlet classError: $type.Optional<Error>;\r\n\tif ($type.isString(classType) && $type.hasValue(registry.registeredClasses[classType])) {\r\n\t\tfinalType = registry.registeredClasses[classType];\r\n\t}\r\n\telse if (typeof classType !== \"function\") {\r\n\t\tfinalType = Container;\r\n\t\tclassError = new Error(\"Class [\" + classType + \"] is not loaded.\");\r\n\t}\r\n\telse {\r\n\t\tfinalType = classType;\r\n\t}\r\n\r\n\t// Create the chart\r\n\tlet chart = createChild(htmlElement, finalType);\r\n\r\n\t// Set config\r\n\tif (classError) {\r\n\t\tchart.raiseCriticalError(classError);\r\n\t}\r\n\telse {\r\n\t\tchart.config = config;\r\n\t}\r\n\r\n\treturn chart;\r\n\r\n}\r\n\r\n/**\r\n * Applies a theme to System, and subsequently all chart instances created\r\n * from that point forward.\r\n *\r\n * amCharts supports multiple themes. Calling `useTheme` multiple times will\r\n * make the System apply multiple themes, rather than overwrite previously\r\n * set one.\r\n *\r\n * This enables combining features from multiple themes on the same chart.\r\n * E.g.:\r\n *\r\n * ```TypeScript\r\n * am4core.useTheme(am4themes.material);\r\n * am4core.useTheme(am4themes.animated);\r\n * ```\r\n * ```JavaScript\r\n * am4core.useTheme(am4themes.material);\r\n * am4core.useTheme(am4themes.animated);\r\n * ```\r\n *\r\n * The above will apply both the Material color and animation options to all\r\n * charts created.\r\n *\r\n * @param value A reference to a theme\r\n */\r\nexport function useTheme(value: ITheme): void {\r\n\tif (registry.themes.indexOf(value) === -1) {\r\n\t\tregistry.themes.push(value);\r\n\t}\r\n}\r\n\r\n/**\r\n * Removes a theme from \"active themes\" list, so it won't get applied to any\r\n * charts created subsequently.\r\n *\r\n * @param value A reference to a theme\r\n */\r\nexport function unuseTheme(value: ITheme): void {\r\n\t$array.remove(registry.themes, value);\r\n}\r\n\r\n/**\r\n * Removes all \"active\" themes. Any charts created subsequently will not have\r\n * any theme applied to them.\r\n */\r\nexport function unuseAllThemes(): void {\r\n\tregistry.themes = [];\r\n}\r\n\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am4core.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am4core.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @since 4.5.16\r\n * @param license License key\r\n */\r\nexport function addLicense(license: string): void {\r\n\toptions.licenses.push(license);\r\n}\r\n","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","/**\r\n * Grip module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Button, IButtonProperties, IButtonAdapters, IButtonEvents } from \"./Button\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Align } from \"../defs/Align\";\r\nimport { VerticalAlign } from \"../defs/VerticalAlign\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { IDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../Registry\";\r\nimport { Optional } from \"../utils/Type\";\r\nimport { percent } from \"../utils/Percent\";\r\nimport * as $path from \"../rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Grip]].\r\n */\r\nexport interface IGripProperties extends IButtonProperties {\r\n\tposition: Align | VerticalAlign;\r\n\tautoHideDelay: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[Grip]] for [[Grip]].\r\n */\r\nexport interface IGripEvents extends IButtonEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Grip]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IGripAdapters extends IButtonAdapters, IGripProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a grip element that can be used for scrolling or other things.\r\n *\r\n * @see {@link IGripEvents} for a list of available events\r\n * @see {@link IGripAdapters} for a list of available Adapters\r\n * @since 4.4.0\r\n */\r\nexport class Grip extends Button {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IGripProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IGripAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IGripEvents;\r\n\r\n\t\t/**\r\n\t * Disposer for grip autohide timeout.\r\n\t */\r\n\tprotected _autoHideTimeout: Optional<IDisposer>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Grip\";\r\n\r\n\t\tconst cs = new InterfaceColorSet();\r\n\r\n\t\t// Set defaults\r\n\t\tthis.layout = \"absolute\";\r\n\r\n\r\n\t\tthis.padding(10, 10, 10, 10);\r\n\t\tthis.margin(3, 3, 3, 3);\r\n\t\tthis.background.fillOpacity = 0.3;\r\n\t\tthis.background.cornerRadius(10, 10, 10, 10);\r\n\r\n\t\t// Create an icon\r\n\t\tlet icon: Sprite = new Sprite();\r\n\t\ticon.element = this.paper.add(\"path\");\r\n\r\n\t\tlet path = $path.moveTo({ x: -6, y: 0 });\r\n\t\tpath += $path.lineTo({ x: 6, y: 0 });\r\n\t\tpath += $path.moveTo({ x: -8, y: -6 });\r\n\t\tpath += $path.lineTo({ x: 0, y: -12 });\r\n\t\tpath += $path.lineTo({ x: 8, y: -6 });\r\n\t\tpath += $path.moveTo({ x: -8, y: 6 });\r\n\t\tpath += $path.lineTo({ x: 0, y: 12 });\r\n\t\tpath += $path.lineTo({ x: 8, y: 6 });\r\n\t\ticon.path = path;\r\n\t\ticon.strokeWidth = 2;\r\n\t\ticon.fillOpacity = 0;\r\n\r\n\t\ticon.pixelPerfect = true;\r\n\t\ticon.padding(0, 4, 0, 4);\r\n\t\ticon.stroke = cs.getFor(\"text\");\r\n\t\ticon.strokeOpacity = 0.7;\r\n\t\ticon.align = \"center\";\r\n\t\ticon.valign = \"middle\";\r\n\t\tthis.icon = icon;\r\n\r\n\t\tthis.label.dispose();\r\n\t\tthis.label = undefined;\r\n\r\n\t\t// Set default position\r\n\t\tthis.position = \"right\";\r\n\r\n\t\t// Set up autohide\r\n\t\tthis.autoHideDelay = 3000;\r\n\t\tthis.events.on(\"shown\", (ev) => {\r\n\t\t\tif (this._autoHideTimeout) {\r\n\t\t\t\tthis._autoHideTimeout.dispose();\r\n\t\t\t}\r\n\t\t\tif (this.autoHideDelay) {\r\n\t\t\t\tthis._autoHideTimeout = this.setTimeout(() => {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}, this.autoHideDelay);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.events.on(\"down\", (ev) => {\r\n\t\t\tif (this._autoHideTimeout) {\r\n\t\t\t\tthis._autoHideTimeout.dispose();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.events.on(\"out\", (ev) => {\r\n\t\t\tif (this.autoHideDelay) {\r\n\t\t\t\tthis._autoHideTimeout = this.setTimeout(() => {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}, this.autoHideDelay);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets position of the grip.\r\n\t *\r\n\t * Available options: \"left\", \"right\" (default), \"top\", \"bottom\".\r\n\t *\r\n\t * @param value Position\r\n\t */\r\n\tpublic set position(value: Align | VerticalAlign) {\r\n\t\tif (this.setPropertyValue(\"position\", value)) {\r\n\t\t\tswitch(value) {\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tthis.align = \"left\";\r\n\t\t\t\t\tthis.valign = \"middle\";\r\n\t\t\t\t\tthis.horizontalCenter = \"left\";\r\n\t\t\t\t\tthis.verticalCenter = \"middle\";\r\n\t\t\t\t\tthis.icon.rotation = 0;\r\n\t\t\t\t\tthis.width = undefined;\r\n\t\t\t\t\tthis.height = percent(30);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tthis.align = \"right\";\r\n\t\t\t\t\tthis.valign = \"middle\";\r\n\t\t\t\t\tthis.horizontalCenter = \"right\";\r\n\t\t\t\t\tthis.verticalCenter = \"middle\";\r\n\t\t\t\t\tthis.icon.rotation = 0;\r\n\t\t\t\t\tthis.width = undefined;\r\n\t\t\t\t\tthis.height = percent(30);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\tthis.align = \"center\";\r\n\t\t\t\t\tthis.valign = \"top\";\r\n\t\t\t\t\tthis.horizontalCenter = \"middle\";\r\n\t\t\t\t\tthis.verticalCenter = \"top\";\r\n\t\t\t\t\tthis.icon.rotation = 90;\r\n\t\t\t\t\tthis.width = percent(30);\r\n\t\t\t\t\tthis.height = undefined;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\tthis.align = \"center\";\r\n\t\t\t\t\tthis.valign = \"bottom\";\r\n\t\t\t\t\tthis.horizontalCenter = \"middle\";\r\n\t\t\t\t\tthis.verticalCenter = \"bottom\";\r\n\t\t\t\t\tthis.icon.rotation = 90;\r\n\t\t\t\t\tthis.width = percent(30);\r\n\t\t\t\t\tthis.height = undefined;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.align = \"center\";\r\n\t\t\t\t\tthis.valign = \"middle\";\r\n\t\t\t\t\tthis.horizontalCenter = \"middle\";\r\n\t\t\t\t\tthis.verticalCenter = \"middle\";\r\n\t\t\t\t\tthis.icon.rotation = 90;\r\n\t\t\t\t\tthis.width = percent(30);\r\n\t\t\t\t\tthis.height = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @return Position\r\n\t */\r\n\tpublic get position(): Align | VerticalAlign {\r\n\t\treturn this.getPropertyValue(\"position\");\r\n\t}\r\n\r\n\t/**\r\n\t * Number of milliseconds to show grip until it is hidden automatically.\r\n\t *\r\n\t * @default 3000\r\n\t * @param value Delay\r\n\t */\r\n\tpublic set autoHideDelay(value: number) {\r\n\t\tthis.setPropertyValue(\"autoHideDelay\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Delay\r\n\t */\r\n\tpublic get autoHideDelay(): number {\r\n\t\treturn this.getPropertyValue(\"autoHideDelay\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Grip\"] = Grip;\r\n","/**\r\n * [[Chart]] class provides base functionality for all chart types to inherit.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../core/Registry\";\r\nimport { Component, IComponentProperties, IComponentDataFields, IComponentEvents, IComponentAdapters } from \"../core/Component\";\r\nimport { MutableValueDisposer, Disposer } from \"../core/utils/Disposer\";\r\nimport { ListTemplate, IListEvents, ListDisposer } from \"../core/utils/List\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Grip } from \"../core/elements/Grip\";\r\nimport { Legend } from \"../charts/Legend\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport * as $iter from \"../core/utils/Iterator\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[Chart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ChartDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: Chart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[Chart]].\r\n */\r\nexport interface IChartDataFields extends IComponentDataFields { }\r\n\r\n/**\r\n * Defines properties for [[Chart]].\r\n */\r\nexport interface IChartProperties extends IComponentProperties { }\r\n\r\n/**\r\n * Defines events for [[Chart]].\r\n */\r\nexport interface IChartEvents extends IComponentEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Chart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IChartAdapters extends IComponentAdapters, IChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all Charts.\r\n *\r\n * @see {@link IChartEvents} for a list of available Events\r\n * @see {@link IChartAdapters} for a list of available Adapters\r\n */\r\nexport class Chart extends Component {\r\n\r\n\t/**\r\n\t * Available data fields.\r\n\t */\r\n\tpublic _dataFields: IChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IChartEvents;\r\n\r\n\t/**\r\n\t * A List of chart titles.\r\n\t */\r\n\tpublic titles: ListTemplate<Label>;\r\n\r\n\t/**\r\n\t * Container that holds the chart itself.\r\n\t */\r\n\tpublic chartContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to a container that holds both the chart and the legend.\r\n\t */\r\n\tpublic chartAndLegendContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to chart's [[Legend]].\r\n\t * @ignore\r\n\t */\r\n\tprotected _legend = new MutableValueDisposer<Legend>();\r\n\r\n\t/**\r\n\t * Instance of the grip element.\r\n\t */\r\n\tprotected _dragGrip: $type.Optional<Grip>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\tif (this.constructor === Chart) {\r\n\t\t\tthrow new Error(\"'Chart' cannot be instantiated directly. Please use a specific chart type.\");\r\n\t\t}\r\n\t\tthis.className = \"Chart\";\r\n\r\n\t\t// Create a list of titles\r\n\t\tconst template = new Label();\r\n\t\tthis.titles = new ListTemplate<Label>(template);\r\n\t\tthis._disposers.push(new ListDisposer(this.titles));\r\n\t\tthis._disposers.push(template);\r\n\r\n\t\t// Chart component is also a container. it holds _chartAndLegendCont and titles\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.layout = \"vertical\";\r\n\r\n\t\t// Chart and legend\r\n\t\tlet chartAndLegendContainer: Container = this.createChild(Container);\r\n\t\tchartAndLegendContainer.shouldClone = false;\r\n\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\tchartAndLegendContainer.width = percent(100);\r\n\t\tchartAndLegendContainer.height = percent(100);\r\n\t\tthis.chartAndLegendContainer = chartAndLegendContainer;\r\n\r\n\t\t// Chart container holds all the elements of a chart, extept titles and legend\r\n\t\tlet chartContainer = chartAndLegendContainer.createChild(Container);\r\n\t\tchartContainer.shouldClone = false;\r\n\t\tchartContainer.width = percent(100);\r\n\t\tchartContainer.height = percent(100);\r\n\t\tthis.chartContainer = chartContainer;\r\n\r\n\t\tthis.showOnInit = true;\r\n\r\n\t\tthis._disposers.push(this._legend);\r\n\r\n\t\t// Add title list events to apply certain formatting options and to make\r\n\t\t// the chart reference them as accessible screen reader labels\r\n\t\tthis.titles.events.on(\"inserted\", (label) => {\r\n\t\t\tthis.processTitle(label);\r\n\t\t\tthis.updateReaderTitleReferences();\r\n\t\t}, this, false);\r\n\t\tthis.titles.events.on(\"removed\", (label) => {\r\n\t\t\tthis.updateReaderTitleReferences();\r\n\t\t}, this, false);\r\n\r\n\t\t// Accessibility\r\n\t\t// It seems we can't set focusable on the whole chart because it seems to\r\n\t\t// mess up the whole focus event system - getting a focus on an inside\r\n\t\t// object also trigger focus on parent\r\n\t\t//this.focusable = true;\r\n\t\tthis.role = \"region\";\r\n\r\n\t\tthis.defaultState.transitionDuration = 1;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Chart\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates drawing of the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tthis.fixLayout();\r\n\t\tsuper.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates legend's hierarchy based on the position.\r\n\t */\r\n\tprotected fixLayout(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\t\t\tlet chartAndLegendContainer = this.chartAndLegendContainer;\r\n\t\t\tlet chartContainer = this.chartContainer;\r\n\t\t\tchartContainer.x = undefined;\r\n\t\t\tchartContainer.y = undefined;\r\n\t\t\tlegend.x = undefined;\r\n\t\t\tlegend.y = undefined;\r\n\t\t\tswitch (legend.position) {\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"horizontal\";\r\n\t\t\t\t\tlegend.toBack();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"horizontal\";\r\n\t\t\t\t\tlegend.toFront();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\t\t\t\tlegend.toBack();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\tchartAndLegendContainer.layout = \"vertical\";\r\n\t\t\t\t\tlegend.toFront();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t */\r\n\tprotected feedLegend(): void {\r\n\r\n\t\t// Nothing here. This method is provided only as a \"placeholder\" for\r\n\t\t// extending classes to override\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new title to the chart when it is inserted into chart's titles\r\n\t * list.\r\n\t * @param event An event object which is triggered when inserting into titles list\r\n\t * @return Label object\r\n\t */\r\n\tprotected processTitle(event: IListEvents<Label>[\"inserted\"]): Label {\r\n\t\tlet title: Label = event.newValue;\r\n\t\ttitle.parent = this;\r\n\t\ttitle.toBack();\r\n\t\ttitle.shouldClone = false;\r\n\t\ttitle.align = \"center\";\r\n\r\n\t\t// Need to explicitly apply the `id` attribute so it can be referenced by\r\n\t\t// `aria-labelledby`\r\n\t\ttitle.uidAttr();\r\n\t\treturn title;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if chart has any title elements. If it does, we will use them in an\r\n\t * `aria-labelledby` attribute so that screen readers can use them to properly\r\n\t * describe the chart when it is focused or hovered.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateReaderTitleReferences(): void {\r\n\t\tif (this.titles.length) {\r\n\t\t\tlet titleIds: Array<string> = [];\r\n\t\t\t$iter.each(this.titles.iterator(), (title) => {\r\n\t\t\t\ttitleIds.push(title.uid);\r\n\t\t\t});\r\n\t\t\tthis.setSVGAttribute({ \"aria-labelledby\": titleIds.join(\" \") });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.removeSVGAttribute(\"aria-labelledby\");\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Holds the instance of chart's [[Leged]].\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for more information about legends\r\n\t * @param Legend\r\n\t */\r\n\tpublic set legend(legend: Legend) {\r\n\t\tthis.setLegend(legend);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Legend\r\n\t */\r\n\tpublic get legend(): Legend {\r\n\t\treturn this._legend.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares the legend instance for use in this chart.\r\n\t *\r\n\t * @param legend Legend\r\n\t */\r\n\tprotected setLegend(legend: Legend) {\r\n\t\tif (this._legend.get() !== legend) {\r\n\t\t\tif (legend) {\r\n\t\t\t\tlegend.maxWidth = 200;\r\n\t\t\t\t// Set legend options\r\n\t\t\t\tlegend.parent = this.chartAndLegendContainer;\r\n\r\n\t\t\t\tthis._legend.set(legend, legend.events.on(\"propertychanged\", (event) => {\r\n\t\t\t\t\tif (event.property == \"position\") {\r\n\t\t\t\t\t\tthis.fixLayout();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, false));\r\n\r\n\t\t\t\tlegend.addDisposer(new Disposer(() => {\r\n\t\t\t\t\tthis.legend = undefined;\r\n\t\t\t\t}))\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis._legend.reset();\r\n\t\t\t}\r\n\r\n\t\t\tthis.feedLegend();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\t// otherwise there might be some errors when disposing chart which was just inited\r\n\t\tif (this.legend) {\r\n\t\t\tthis.legend.dispose();\r\n\t\t}\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up legend\r\n\t\t\tif ($type.hasValue(config.legend) && !$type.hasValue(config.legend.type)) {\r\n\t\t\t\tconfig.legend.type = \"Legend\";\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[Series]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tthis.titles.copyFrom(source.titles);\r\n\t\tthis.chartContainer.copyFrom(source.chartContainer);\r\n\t\tif (source.legend) {\r\n\t\t\tthis.legend = source.legend.clone();\r\n\t\t\tthis.legend.removeChildren();\r\n\t\t}\r\n\t\tsuper.copyFrom(source);\r\n\t}\r\n\r\n\t/**\r\n\t * An instance of [[Grip]] which serves as a grip point which appears on\r\n\t * touch and allows scrolling whole page even if chart is occupying the\r\n\t * whole of the screen and would otherwise prevent scrolling.\r\n\t *\r\n\t * @since 4.4.0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n\t * @param value Grip\r\n\t */\r\n\tpublic set dragGrip(value: Grip) {\r\n\t\tthis._dragGrip = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Grip\r\n\t */\r\n\tpublic get dragGrip(): Grip {\r\n\t\tif (!this._dragGrip) {\r\n\t\t\tlet grip = this.tooltipContainer.createChild(Grip);\r\n\t\t\tgrip.align = \"right\";\r\n\t\t\tgrip.valign = \"middle\";\r\n\t\t\tgrip.hide(0);\r\n\r\n\t\t\tgrip.events.on(\"down\", (ev) => {\r\n\t\t\t\tif (ev.touch) {\r\n\t\t\t\t\tthis.interactionsEnabled = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tgrip.events.on(\"up\", (ev) => {\r\n\t\t\t\tthis.interactionsEnabled = true;\r\n\t\t\t});\r\n\r\n\t\t\tthis.events.on(\"down\", (ev) => {\r\n\t\t\t\tif (ev.touch) {\r\n\t\t\t\t\tgrip.show();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._dragGrip = grip;\r\n\t\t}\r\n\t\treturn this._dragGrip;\r\n\t}\r\n\r\n\tpublic set focusable(value: boolean) {\r\n\t\tthis.parent.focusable = true;\r\n\t}\r\n\r\n\tpublic get focusable(): boolean {\r\n\t\treturn this.parent.focusable;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Chart\"] = Chart;\r\n\r\n\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Reduce horizontal margins\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tif (target.pixelPaddingLeft > 10) {\r\n\t\t\t\tstate.properties.paddingLeft = 10;\r\n\t\t\t}\r\n\t\t\tif (target.pixelPaddingRight > 10) {\r\n\t\t\t\tstate.properties.paddingRight = 10;\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Reduce vertical margins\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tif (target.pixelPaddingTop > 10) {\r\n\t\t\t\tstate.properties.paddingTop = 10;\r\n\t\t\t}\r\n\t\t\tif (target.pixelPaddingBottom > 10) {\r\n\t\t\t\tstate.properties.paddingBottom = 10;\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Remove horizontal padding\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.paddingLeft = 0;\r\n\t\t\tstate.properties.paddingRight = 0;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Remove vertical padding\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Chart) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.paddingTop = 0;\r\n\t\t\tstate.properties.paddingBottom = 0;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","/**\r\n * Module that defines everything related to building bullets.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Bullet]].\r\n */\r\nexport interface IBulletProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Relative horizontal location within cell. (0-1)\r\n\t */\r\n\tlocationX?: number;\r\n\r\n\t/**\r\n\t * Relative vertical location within cell. (0-1)\r\n\t */\r\n\tlocationY?: number;\r\n\r\n\t/**\r\n\t * Specifies if bullet needs to be redrawn if the underlying data changes.\r\n\t */\r\n\tisDynamic?: boolean;\r\n\r\n\t/**\r\n\t * [string description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\txField?: string;\r\n\r\n\t/**\r\n\t * [string description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tyField?: string;\r\n\r\n\t/**\r\n\t * Defines if this bullet should be copied to legend marker\r\n\t */\r\n\tcopyToLegendMarker?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Bullet]].\r\n */\r\nexport interface IBulletEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Bullet]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IBulletAdapters extends IContainerAdapters, IBulletProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates bullets.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class Bullet extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IBulletProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IBulletAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IBulletEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Bullet\";\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.tooltipX = 0;\r\n\t\tthis.tooltipY = 0;\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.applyOnClones = true;\r\n\r\n\t\tthis.copyToLegendMarker = true;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative horizontal location within cell. (0-1)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set locationX(value: number) {\r\n\t\tif(this.setPropertyValue(\"locationX\", value)){\r\n\t\t\tlet dataItem = this.dataItem\r\n\t\t\tif(dataItem && dataItem.component){\r\n\t\t\t\tdataItem.component.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get locationX(): number {\r\n\t\treturn this.getPropertyValue(\"locationX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative vertical location within cell. (0-1)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set locationY(value: number) {\r\n\t\tif(this.setPropertyValue(\"locationY\", value)){\r\n\t\t\tlet dataItem = this.dataItem\r\n\t\t\tif(dataItem && dataItem.component){\r\n\t\t\t\tdataItem.component.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get locationY(): number {\r\n\t\treturn this.getPropertyValue(\"locationY\");\r\n\t}\r\n\r\n\t/**\r\n\t * [xField description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set xField(value: string) {\r\n\t\tthis.setPropertyValue(\"xField\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get xField(): string {\r\n\t\treturn this.getPropertyValue(\"xField\");\r\n\t}\r\n\r\n\t/**\r\n\t * [yField description]\r\n\t *\r\n\t * Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set yField(value: string) {\r\n\t\tthis.setPropertyValue(\"yField\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get yField(): string {\r\n\t\treturn this.getPropertyValue(\"yField\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if the bullet is \"dynamic\".\r\n\t *\r\n\t * In most cases the bullets remain the same, even if the underlying data\r\n\t * changes.\r\n\t *\r\n\t * However, in cases where bullet also displays a label, or its size depends\r\n\t * on data, it also needs to be redrawn when the underlying data changes.\r\n\t *\r\n\t * Only those bullets that have set `isDynamic = true` will be redrawn each\r\n\t * time data changes. Regular bullets will be reused as they are.\r\n\t *\r\n\t * @default false\r\n\t * @param value Redraw on data change?\r\n\t */\r\n\tpublic set isDynamic(value: boolean) {\r\n\t\tthis.setPropertyValue(\"isDynamic\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Redraw on data change?\r\n\t */\r\n\tpublic get isDynamic(): boolean {\r\n\t\treturn this.getPropertyValue(\"isDynamic\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Indicates if the bullet should be copied to legend marker\r\n\t *\r\n\t * @default false\r\n\t * @param value Redraw on data change?\r\n\t */\r\n\tpublic set copyToLegendMarker(value: boolean) {\r\n\t\tthis.setPropertyValue(\"copyToLegendMarker\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Redraw on data change?\r\n\t */\r\n\tpublic get copyToLegendMarker(): boolean {\r\n\t\treturn this.getPropertyValue(\"copyToLegendMarker\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Bullet\"] = Bullet;\r\n\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Hide bullets\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.isXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Bullet) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","/**\r\n * Legend-related functionality.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component, IComponentProperties, IComponentDataFields, IComponentAdapters, IComponentEvents } from \"../core/Component\";\r\nimport { DataItem, IDataItemEvents } from \"../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { RoundedRectangle } from \"../core/elements/RoundedRectangle\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Optional } from \"../core/utils/Type\";\r\nimport { Preloader } from \"../core/elements/Preloader\";\r\nimport { keyboard } from \"../core/utils/Keyboard\";\r\nimport { registry } from \"../core/Registry\";\r\nimport { getInteraction } from \"../core/interaction/Interaction\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport { Color } from \"../core/utils/Color\";\r\nimport { RadialGradient } from \"../core/rendering/fills/RadialGradient\";\r\nimport { LinearGradient } from \"../core/rendering/fills/LinearGradient\";\r\nimport { Pattern } from \"../core/rendering/fills/Pattern\";\r\nimport * as $utils from \"../core/utils/Utils\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport * as $math from \"../core/utils/Math\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../core/Sprite\";\r\nimport { Disposer, IDisposer } from \"../core/utils/Disposer\";\r\nimport { MouseCursorStyle } from \"../core/interaction/Mouse\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\nimport { Scrollbar } from \"../core/elements/Scrollbar\";\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[Legend]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class LegendDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * A container data item's elements will be placed in.\r\n\t */\r\n\tprotected _itemContainer: Container;\r\n\r\n\t/**\r\n\t * A [[Label]] element for the item label.\r\n\t */\r\n\tprotected _label: Label;\r\n\r\n\t/**\r\n\t * A [[Container]] for legend item marker.\r\n\t */\r\n\tprotected _marker: Container;\r\n\r\n\t/**\r\n\t * A [[Label]] element for the value label.\r\n\t */\r\n\tprotected _valueLabel: Label;\r\n\r\n\t/**\r\n\t * A data context for legend item.\r\n\t */\r\n\tpublic dataContext: any;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: Legend;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic childrenCreated: boolean = false;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic colorOrig: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"LegendDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A legend item's [[Label]] element.\r\n\t *\r\n\t * @return Label\r\n\t */\r\n\tpublic get label(): Label {\r\n\t\tif (!this._label) {\r\n\t\t\tlet label = this.component.labels.create();\r\n\t\t\tthis._label = label;\r\n\t\t\tthis.addSprite(label);\r\n\t\t\tthis._disposers.push(label);\r\n\t\t\tlabel.parent = this.itemContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif ($type.hasValue(this.component)) {\r\n\t\t\t\t\tthis.component.labels.removeValue(label);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n\t * Main color of legend data item.\r\n\t *\r\n\t * This is set by the target element this legend item represents, like\r\n\t * a Series or a Slice.\r\n\t *\r\n\t * It can be used to derive a color in legend's sub-items, like label:\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"legend\": {\r\n\t * // ...\r\n\t * \"labels\": {\r\n\t * \"text\": \"[{color}]{name}[/]\"\r\n\t * }\r\n\t * }\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/#Legend_labels} For more information about configuring legend labels.\r\n\t * @param value Main color\r\n\t */\r\n\tpublic set color(value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>) {\r\n\t\tthis.setProperty(\"color\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Main color\r\n\t */\r\n\tpublic get color(): $type.Optional<Color | Pattern | LinearGradient | RadialGradient> {\r\n\t\treturn this.properties.color;\r\n\t}\r\n\r\n\t/**\r\n\t * A legend item's [[Label]] element for \"value label\".\r\n\t *\r\n\t * @return Label\r\n\t */\r\n\tpublic get valueLabel(): Label {\r\n\t\tif (!this._valueLabel) {\r\n\t\t\tlet valueLabel = this.component.valueLabels.create();\r\n\t\t\tthis._valueLabel = valueLabel;\r\n\r\n\t\t\tthis.addSprite(valueLabel);\r\n\t\t\tthis._disposers.push(valueLabel);\r\n\t\t\tvalueLabel.parent = this.itemContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif ($type.hasValue(this.component)) {\r\n\t\t\t\t\tthis.component.valueLabels.removeValue(valueLabel);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t\treturn this._valueLabel;\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to the main [[Container]] that holds legend item's elements:\r\n\t * marker and labels.\r\n\t *\r\n\t * @return Item container\r\n\t */\r\n\tpublic get itemContainer(): Container {\r\n\t\tif (!this._itemContainer) {\r\n\r\n\t\t\tlet component = this.component;\r\n\r\n\t\t\tlet itemContainer = component.itemContainers.create();\r\n\t\t\titemContainer.parent = component;\r\n\t\t\tthis._itemContainer = itemContainer;\r\n\t\t\tthis.addSprite(itemContainer);\r\n\t\t\tthis._disposers.push(itemContainer);\r\n\r\n\t\t\t// Add click/tap event to toggle item\r\n\t\t\tif (itemContainer.togglable) {\r\n\t\t\t\titemContainer.events.on(\"toggled\", (ev) => {\r\n\t\t\t\t\tcomponent.toggleDataItem(<this>ev.target.dataItem);\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t}\r\n\r\n\t\t\t// Add focus event so that we can track which object is currently in focus\r\n\t\t\t// for keyboard toggling\r\n\t\t\tif (itemContainer.focusable) {\r\n\t\t\t\titemContainer.events.on(\"hit\", (ev) => {\r\n\t\t\t\t\t// We need this here in order to reset focused item when it is clicked\r\n\t\t\t\t\t// normally so that it is not toggled by ENTER afterwards\r\n\t\t\t\t\tcomponent.focusedItem = undefined;\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t\titemContainer.events.on(\"focus\", (ev) => {\r\n\t\t\t\t\tcomponent.focusedItem = <this>ev.target.dataItem;\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t\titemContainer.events.on(\"blur\", (ev) => {\r\n\t\t\t\t\tcomponent.focusedItem = undefined;\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t}\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif ($type.hasValue(this.component)) {\r\n\t\t\t\t\tthis.component.itemContainers.removeValue(itemContainer);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\r\n\t\t\tif (this.dataContext.uidAttr) {\r\n\t\t\t\titemContainer.readerControls = this.dataContext.uidAttr();\r\n\t\t\t\titemContainer.readerLabelledBy = this.dataContext.uidAttr();\r\n\t\t\t}\r\n\r\n\t\t\tlet sprite = <any>this.dataContext;\r\n\t\t\tif ((sprite instanceof DataItem || sprite instanceof Sprite) && !sprite.isDisposed()) {\r\n\t\t\t\tconst visibilitychanged = function(ev: AMEvent<Sprite | DataItem, ISpriteEvents & IDataItemEvents>[\"visibilitychanged\"]) {\r\n\t\t\t\t\titemContainer.readerChecked = ev.visible;\r\n\t\t\t\t\titemContainer.events.disableType(\"toggled\");\r\n\t\t\t\t\titemContainer.isActive = !ev.visible;\r\n\t\t\t\t\titemContainer.events.enableType(\"toggled\");\r\n\t\t\t\t};\r\n\r\n\t\t\t\tsprite.addDisposer(new Disposer(() => {\r\n\t\t\t\t\tif (this.component) {\r\n\t\t\t\t\t\tthis.component.dataItems.remove(this);\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\r\n\t\t\t\tif (sprite instanceof Sprite) {\r\n\t\t\t\t\titemContainer.addDisposer(\r\n\t\t\t\t\t\tsprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false)\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\titemContainer.addDisposer(\r\n\t\t\t\t\t\tsprite.events.on(\"hidden\", (ev) => {\r\n\t\t\t\t\t\t\titemContainer.readerChecked = false;\r\n\t\t\t\t\t\t\titemContainer.events.disableType(\"toggled\");\r\n\t\t\t\t\t\t\titemContainer.isActive = true;\r\n\t\t\t\t\t\t\titemContainer.events.enableType(\"toggled\");\r\n\t\t\t\t\t\t}, undefined, false)\r\n\t\t\t\t\t)\r\n\t\t\t\t\titemContainer.addDisposer(\r\n\t\t\t\t\t\tsprite.events.on(\"shown\", (ev) => {\r\n\t\t\t\t\t\t\titemContainer.readerChecked = true;\r\n\t\t\t\t\t\t\titemContainer.events.disableType(\"toggled\");\r\n\t\t\t\t\t\t\titemContainer.isActive = false;\r\n\t\t\t\t\t\t\titemContainer.events.enableType(\"toggled\");\r\n\t\t\t\t\t\t}, undefined, false)\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\titemContainer.addDisposer(\r\n\t\t\t\t\t\tsprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._itemContainer;\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Container]] that holds legend item's marker element.\r\n\t *\r\n\t * @return Marker\r\n\t */\r\n\tpublic get marker(): Container {\r\n\t\tif (!this._marker) {\r\n\t\t\tlet marker = this.component.markers.create();\r\n\t\t\tthis._marker = marker;\r\n\t\t\tmarker.parent = this.itemContainer;\r\n\t\t\tthis.addSprite(marker);\r\n\t\t\tthis._disposers.push(marker);\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif ($type.hasValue(this.component)) {\r\n\t\t\t\t\tthis.component.markers.removeValue(marker);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t\treturn this._marker;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a class that carries legend settings.\r\n *\r\n * A legend might change its settings dynamically. Legend can also be shared\r\n * by several elements, requiring different settings.\r\n *\r\n * Having legend's settings in a separate object is a good way to \"hot swap\"\r\n * a set of settings for the legend.\r\n */\r\nexport class LegendSettings {\r\n\r\n\t/**\r\n\t * [valueText description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tpublic valueText: string;\r\n\r\n\t/**\r\n\t * [labelText description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tpublic labelText: string;\r\n\r\n\t/**\r\n\t * A text template for the value part of the legend item.\r\n\t */\r\n\tpublic itemValueText: string;\r\n\r\n\t/**\r\n\t * A text template for the label part of the legend item.\r\n\t */\r\n\tpublic itemLabelText: string;\r\n\r\n\t/**\r\n\t * Should marker be created for each legend item.\r\n\t */\r\n\tpublic createMarker: boolean = true;\r\n}\r\n\r\n/**\r\n * Represents types available for Legend position. Not all charts will pay attention to this, like MapChart. You'll need to use legend.align and legend.valign properties to position legend on MapChart.\r\n */\r\nexport type LegendPosition = \"left\" | \"right\" | \"top\" | \"bottom\" | \"absolute\";\r\n\r\n/**\r\n * Defines data fields for [[Legend]].\r\n */\r\nexport interface ILegendDataFields extends IComponentDataFields {\r\n\r\n\t/**\r\n\t * A field name in the data item which holds name of the legend item.\r\n\t */\r\n\tname?: string;\r\n\r\n\t/**\r\n\t * A field name in data item which holds boolean value whether item should\r\n\t * be displayed in legend or not.\r\n\t */\r\n\tvisible?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[Legend]].\r\n */\r\nexport interface ILegendProperties extends IComponentProperties {\r\n\r\n\t/**\r\n\t * Should legend use default marker?\r\n\t *\r\n\t * If set to `false`, the legend will try to mirror the look of the actual\r\n\t * item, like series.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tuseDefaultMarker?: boolean;\r\n\r\n\t/**\r\n\t * Position of the legend.\r\n\t *\r\n\t * Options: \"left\", \"right\", \"top\", \"bottom\" (default), or \"absolute\".\r\n\t *\r\n\t * @default \"bottom\"\r\n\t */\r\n\tposition?: LegendPosition;\r\n\r\n\t/**\r\n\t * If set to `true` the Legend will display a scrollbar if its contents do\r\n\t * not fit into its `maxHeight`.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.8.0\r\n\t */\r\n\tscrollable?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Legend]].\r\n */\r\nexport interface ILegendEvents extends IComponentEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Legend]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILegendAdapters extends IComponentAdapters, ILegendProperties { }\r\n\r\nexport interface ILegendItemEvents {\r\n\tpropertychanged: {\r\n\t\t/**\r\n\t\t * Property key.\r\n\t\t */\r\n\t\tproperty: string;\r\n\t};\r\n}\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * [[Legend]] class is used to create legend for the chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for Legend documentation\r\n * @see {@link ILegendEvents} for a list of available events\r\n * @see {@link ILegendAdapters} for a list of available Adapters\r\n */\r\nexport class Legend extends Component {\r\n\r\n\t/**\r\n\t * Defines the type of the data fields.\r\n\t */\r\n\tpublic _dataFields: ILegendDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILegendProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ILegendAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILegendEvents;\r\n\r\n\t/**\r\n\t * Defines data item type.\r\n\t */\r\n\tpublic _dataItem: LegendDataItem;\r\n\r\n\t/**\r\n\t * List of legend Item containers. Legend item containers contain marker, title label and value label.\r\n\t */\r\n\tpublic itemContainers: ListTemplate<Container>;\r\n\r\n\t/**\r\n\t * List of legend item labels.\r\n\t */\r\n\tpublic labels: ListTemplate<Label>;\r\n\r\n\t/**\r\n\t * List of legend item markers.\r\n\t */\r\n\tpublic markers: ListTemplate<Container>;\r\n\r\n\t/**\r\n\t * List of legend item value labels.\r\n\t */\r\n\tpublic valueLabels: ListTemplate<Label>;\r\n\r\n\t/**\r\n\t * Currently focused legend item (for toggling via keyboard)\r\n\t */\r\n\tpublic focusedItem: Optional<this[\"_dataItem\"]>;\r\n\r\n\r\n\tpublic scrollbar: Scrollbar;\r\n\r\n\tprotected _mouseWheelDisposer: IDisposer;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Legend\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.layout = \"grid\";\r\n\t\tthis.setPropertyValue(\"useDefaultMarker\", false);\r\n\t\tthis.setPropertyValue(\"scrollable\", false);\r\n\t\tthis.setPropertyValue(\"contentAlign\", \"center\");\r\n\r\n\t\t// Create a template container and list for legend items\r\n\t\tlet itemContainer: Container = new Container();\r\n\t\titemContainer.applyOnClones = true;\r\n\t\titemContainer.padding(8, 0, 8, 0);\r\n\t\titemContainer.margin(0, 10, 0, 10);\r\n\t\titemContainer.layout = \"horizontal\";\r\n\t\titemContainer.clickable = true;\r\n\t\titemContainer.focusable = true;\r\n\t\titemContainer.role = \"switch\";\r\n\t\titemContainer.togglable = true;\r\n\t\titemContainer.cursorOverStyle = MouseCursorStyle.pointer;\r\n\t\titemContainer.background.fillOpacity = 0; // creates hit area\r\n\r\n\t\t// Create container list using item template we just created\r\n\t\tthis.itemContainers = new ListTemplate<Container>(itemContainer);\r\n\t\tthis._disposers.push(new ListDisposer(this.itemContainers));\r\n\t\tthis._disposers.push(this.itemContainers.template);\r\n\r\n\t\t// Set up global keyboard events for toggling elements\r\n\t\tthis._disposers.push(getInteraction().body.events.on(\"keyup\", (ev) => {\r\n\t\t\tif (keyboard.isKey(ev.event, \"enter\") && this.focusedItem) {\r\n\t\t\t\tconst focusedItem = this.focusedItem;\r\n\t\t\t\tconst target = focusedItem.itemContainer;\r\n\t\t\t\tif (target.togglable) {\r\n\t\t\t\t\tthis.toggleDataItem(focusedItem);\r\n\t\t\t\t}\r\n\t\t\t\telse if (target.clickable && target.events.isEnabled(\"hit\")) {\r\n\t\t\t\t\ttarget.dispatchImmediately(\"hit\", { event: ev });\r\n\r\n\t\t\t\t\t// We need this here because \"hit\" event resets `this.focusedItem`\r\n\t\t\t\t\t// And we need it here\r\n\t\t\t\t\tthis.focusedItem = focusedItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, this));\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create a template container and list for the a marker\r\n\t\tlet marker: Container = new Container();\r\n\t\tmarker.width = 23;\r\n\t\tmarker.height = 23;\r\n\t\tmarker.interactionsEnabled = false;\r\n\t\tmarker.applyOnClones = true;\r\n\t\tmarker.setStateOnChildren = true;\r\n\t\tmarker.background.fillOpacity = 0;\r\n\t\tmarker.background.strokeOpacity = 0;\r\n\t\tmarker.propertyFields.fill = \"fill\";\r\n\t\tmarker.valign = \"middle\";\r\n\r\n\t\tlet disabledColor = interfaceColors.getFor(\"disabledBackground\");\r\n\r\n\t\tmarker.events.on(\"childadded\", (event) => {\r\n\t\t\tlet child = event.newValue;\r\n\t\t\tlet activeState = child.states.create(\"active\");\r\n\t\t\tactiveState.properties.stroke = disabledColor;\r\n\t\t\tactiveState.properties.fill = disabledColor;\r\n\t\t});\r\n\r\n\t\tthis.markers = new ListTemplate<Container>(marker);\r\n\t\tthis._disposers.push(new ListDisposer(this.markers));\r\n\t\tthis._disposers.push(this.markers.template);\r\n\r\n\t\t// Create a legend background element\r\n\t\tlet rectangle: RoundedRectangle = marker.createChild(RoundedRectangle);\r\n\t\trectangle.width = percent(100);\r\n\t\trectangle.height = percent(100);\r\n\t\trectangle.applyOnClones = true;\r\n\t\trectangle.propertyFields.fill = \"fill\";\r\n\t\trectangle.strokeOpacity = 0;\r\n\r\n\t\t// Create a template container and list for item labels\r\n\t\tlet label: Label = new Label();\r\n\t\tlabel.text = \"{name}\";\r\n\t\tlabel.margin(0, 5, 0, 5);\r\n\t\tlabel.valign = \"middle\";\r\n\t\tlabel.applyOnClones = true;\r\n\t\tlabel.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n\t\tthis.labels = new ListTemplate<Label>(label);\r\n\t\tthis._disposers.push(new ListDisposer(this.labels));\r\n\t\tthis._disposers.push(this.labels.template);\r\n\t\tlabel.interactionsEnabled = false;\r\n\t\tlabel.truncate = true;\r\n\t\tlabel.fullWords = false;\r\n\r\n\t\t// Create a template container and list for item value labels\r\n\t\tlet valueLabel: Label = new Label();\r\n\t\tvalueLabel.margin(0, 5, 0, 0);\r\n\t\tvalueLabel.valign = \"middle\";\r\n\t\tvalueLabel.width = 50; // to avoid rearranging legend entries when value changes.\r\n\t\tvalueLabel.align = \"right\";\r\n\t\tvalueLabel.textAlign = \"end\";\r\n\t\tvalueLabel.applyOnClones = true;\r\n\t\tvalueLabel.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n\t\tvalueLabel.interactionsEnabled = false;\r\n\r\n\t\tthis.valueLabels = new ListTemplate<Label>(valueLabel);\r\n\t\tthis._disposers.push(new ListDisposer(this.valueLabels));\r\n\t\tthis._disposers.push(this.valueLabels.template);\r\n\r\n\t\tthis.position = \"bottom\"; // don't use setPropertyValue here!\r\n\r\n\t\t// Create a state for disabled legend items\r\n\t\titemContainer.states.create(\"active\");\r\n\t\titemContainer.setStateOnChildren = true;\r\n\r\n\t\t// Apply accessibility settings\r\n\t\tthis.role = \"group\";\r\n\r\n\t\tthis.events.on(\"layoutvalidated\", this.handleScrollbar, this, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Legend\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new LegendDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElement description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t * @todo Description\r\n\t * @todo Figure out how to update appearance of legend item without losing focus\r\n\t * @todo Update legend marker appearance as apperance of related series changes\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\t// Get data item (legend item's) container\r\n\t\tlet container = dataItem.itemContainer;\r\n\r\n\t\tlet marker = dataItem.marker;\r\n\r\n\t\t$utils.used(dataItem.label);\r\n\t\tlet valueLabel = dataItem.valueLabel;\r\n\r\n\t\t// Set parent and update current state\r\n\t\tcontainer.readerChecked = dataItem.dataContext.visible;\r\n\r\n\t\t// Tell series its legend data item\r\n\t\tdataItem.dataContext.legendDataItem = dataItem;\r\n\r\n\t\tlet tempMaxWidth = dataItem.label.maxWidth;\r\n\t\tdataItem.label.width = undefined;\r\n\t\tif(tempMaxWidth > 0){\r\n\t\t\tdataItem.label.maxWidth = tempMaxWidth;\r\n\t\t}\r\n\t\tif (valueLabel.align == \"right\") {\r\n\t\t\tvalueLabel.width = undefined;\r\n\t\t}\r\n\r\n\t\tlet legendSettings = dataItem.dataContext.legendSettings;\r\n\r\n\t\t// If we are not using default markers, create a unique legend marker based\r\n\t\t// on the data item type\r\n\t\tlet dataContext = dataItem.dataContext;\r\n\r\n\t\tif (dataContext.createLegendMarker && (!this.useDefaultMarker || !(dataContext instanceof Sprite))) {\r\n\t\t\tif (!dataItem.childrenCreated) {\r\n\t\t\t\tdataContext.createLegendMarker(marker);\r\n\t\t\t\tdataItem.childrenCreated = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataContext.updateLegendValue) {\r\n\t\t\tdataContext.updateLegendValue(); // this solves issue with external legend, as legend is created after chart updates legend values\r\n\t\t}\r\n\r\n\t\tif (dataContext.component && dataContext.component.updateLegendValue) {\r\n\t\t\tdataContext.component.updateLegendValue(dataContext);\r\n\t\t}\r\n\r\n\t\tif (valueLabel.invalid) {\r\n\t\t\tvalueLabel.validate();\r\n\t\t}\r\n\r\n\t\tif (valueLabel.text == \"\" || valueLabel.text == undefined) {\r\n\t\t\tvalueLabel.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvalueLabel.__disabled = false;\r\n\t\t}\r\n\r\n\t\tif (legendSettings && (legendSettings.itemValueText != undefined || legendSettings.valueText != undefined)) {\r\n\t\t\tvalueLabel.__disabled = false;\r\n\t\t}\r\n\r\n\t\tlet visible = dataItem.dataContext.visible;\r\n\r\n\t\tif (visible === undefined) {\r\n\t\t\tvisible = true;\r\n\t\t}\r\n\t\tvisible = $type.toBoolean(visible);\r\n\t\tdataItem.dataContext.visible = visible;\r\n\r\n\t\tcontainer.events.disableType(\"toggled\");\r\n\r\n\t\tcontainer.isActive = !visible;\r\n\t\tif (container.isActive) {\r\n\t\t\tcontainer.setState(\"active\", 0);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcontainer.setState(\"default\", 0);\r\n\t\t}\r\n\t\tcontainer.events.enableType(\"toggled\");\r\n\t}\r\n\r\n\r\n\tpublic afterDraw() {\r\n\t\tlet maxWidth = this.getPropertyValue(\"maxWidth\");\r\n\t\tlet maxLabelWidth = 0;\r\n\t\tthis.labels.each((label) => {\r\n\t\t\tif (label.invalid) {\r\n\t\t\t\tlabel.validate();\r\n\t\t\t}\r\n\t\t\tif (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxLabelWidth) {\r\n\t\t\t\tmaxLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n\t\t\t}\r\n\r\n\t\t})\r\n\r\n\t\tlet maxValueLabelWidth = 0;\r\n\t\tthis.valueLabels.each((label) => {\r\n\t\t\tif (label.invalid) {\r\n\t\t\t\tlabel.validate();\r\n\t\t\t}\r\n\t\t\tif (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxValueLabelWidth) {\r\n\t\t\t\tmaxValueLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tlet maxMarkerWidth = 0;\r\n\t\tthis.markers.each((marker) => {\r\n\t\t\tif (marker.invalid) {\r\n\t\t\t\tmarker.validate();\r\n\t\t\t}\r\n\t\t\tif (marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight > maxMarkerWidth) {\r\n\t\t\t\tmaxMarkerWidth = marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight;\r\n\t\t\t}\r\n\t\t})\r\n\t\tlet itemContainer = this.itemContainers.template;\r\n\t\tlet margin = itemContainer.pixelMarginRight + itemContainer.pixelMarginLeft;\r\n\t\tlet maxAdjustedLabelWidth: number;\r\n\t\tlet trueMaxWidth = maxLabelWidth + maxValueLabelWidth + maxMarkerWidth;\r\n\t\tif (!$type.isNumber(maxWidth)) {\r\n\t\t\tmaxAdjustedLabelWidth = maxLabelWidth;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tmaxWidth = maxWidth - margin;\r\n\t\t\tif (maxWidth > trueMaxWidth) {\r\n\t\t\t\tmaxWidth = trueMaxWidth;\r\n\t\t\t}\r\n\t\t\tmaxAdjustedLabelWidth = maxWidth - maxMarkerWidth - maxValueLabelWidth;\r\n\t\t}\r\n\r\n\t\tthis.labels.each((label) => {\r\n\t\t\tif (this.valueLabels.template.align == \"right\" || label.measuredWidth > maxAdjustedLabelWidth) {\r\n\t\t\t\tlabel.width = Math.min(label.maxWidth, maxAdjustedLabelWidth - label.pixelMarginLeft - label.pixelMarginRight);\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (this.valueLabels.template.align == \"right\") {\r\n\t\t\tthis.valueLabels.each((valueLabel) => {\r\n\t\t\t\tvalueLabel.width = maxValueLabelWidth - valueLabel.pixelMarginRight - valueLabel.pixelMarginLeft;\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tsuper.afterDraw();\r\n\t}\r\n\r\n\r\n\tprotected handleScrollbar() {\r\n\t\tlet scrollbar = this.scrollbar;\r\n\t\tif (this.scrollable && scrollbar) {\r\n\t\t\tscrollbar.height = this.measuredHeight;\r\n\t\t\tscrollbar.x = this.measuredWidth - scrollbar.pixelWidth - scrollbar.pixelMarginLeft;\r\n\r\n\t\t\tif (this.contentHeight > this.measuredHeight) {\r\n\t\t\t\tscrollbar.visible = true;\r\n\t\t\t\tscrollbar.thumb.height = scrollbar.height * this.measuredHeight / this.contentHeight;\r\n\t\t\t\tthis.paddingRight = scrollbar.pixelWidth + scrollbar.pixelMarginLeft + + scrollbar.pixelMarginRight;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tscrollbar.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.updateMasks();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Position of the legend.\r\n\t *\r\n\t * Options: \"left\", \"right\", \"top\", \"bottom\" (default), or \"absolute\".\r\n\t *\r\n\t * IMPORTANT: [[MapChart]] will ignore this setting, as it is using different\r\n\t * layout structure than other charts.\r\n\t *\r\n\t * To position legend in [[MapChart]] set legend's `align` (`\"left\"` or\r\n\t * `\"right\"`) and `valign` (`\"top\"` or `\"bottom\"`) properties instead.\r\n\t *\r\n\t * @default \"bottom\"\r\n\t * @param value Position\r\n\t */\r\n\tpublic set position(value: LegendPosition) {\r\n\t\tif (this.setPropertyValue(\"position\", value)) {\r\n\t\t\tif (value == \"left\" || value == \"right\") {\r\n\t\t\t\tthis.margin(10, 5, 10, 10);\r\n\t\t\t\tthis.valign = \"middle\";\r\n\t\t\t\tthis.contentAlign = \"none\";\r\n\t\t\t\tthis.valueLabels.template.align = \"right\";\r\n\r\n\t\t\t\tif (!$type.isNumber(this.maxColumns)) {\r\n\t\t\t\t\tthis.maxColumns = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.width = undefined;\r\n\t\t\t\tthis.maxWidth = 220;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.maxColumns = undefined;\r\n\t\t\t\tthis.width = percent(100);\r\n\t\t\t\tthis.valueLabels.template.align = \"left\";\r\n\t\t\t}\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Position\r\n\t */\r\n\tpublic get position(): LegendPosition {\r\n\t\treturn this.getPropertyValue(\"position\");\r\n\t}\r\n\r\n\t/**\r\n\t * Should legend try to mirror the look of the related item when building\r\n\t * the marker for legend item?\r\n\t *\r\n\t * If set to `false` it will try to make the marker look like its related\r\n\t * item.\r\n\t *\r\n\t * E.g. if an item is for a Line Series, it will display a line of the\r\n\t * same thickness, color, and will use the same bullets if series have them.\r\n\t *\r\n\t * If set to `true`, all markers will be shown as squares, regardless of te\r\n\t * series type.\r\n\t *\r\n\t * @default false\r\n\t * @param value Use default marker?\r\n\t */\r\n\tpublic set useDefaultMarker(value: boolean) {\r\n\t\tthis.setPropertyValue(\"useDefaultMarker\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use default marker?\r\n\t */\r\n\tpublic get useDefaultMarker(): boolean {\r\n\t\treturn this.getPropertyValue(\"useDefaultMarker\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true` the Legend will display a scrollbar if its contents do\r\n\t * not fit into its `maxHeight`.\r\n\t *\r\n\t * Please note that `maxHeight` is automatically set for Legend when its\r\n\t * `position` is set to `\"left\"` or `\"right\"`.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.8.0\r\n\t * @param value Legend Scrollable?\r\n\t */\r\n\tpublic set scrollable(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"scrollable\", value, true)) {\r\n\t\t\tif (value) {\r\n\t\t\t\tlet scrollbar = this.createChild(Scrollbar);\r\n\t\t\t\tthis.scrollbar = scrollbar;\r\n\t\t\t\tscrollbar.isMeasured = false;\r\n\t\t\t\tscrollbar.orientation = \"vertical\";\r\n\t\t\t\tscrollbar.endGrip.__disabled = true;\r\n\t\t\t\tscrollbar.startGrip.__disabled = true;\r\n\t\t\t\tscrollbar.visible = false;\r\n\t\t\t\tscrollbar.marginLeft = 5;\r\n\r\n\t\t\t\tthis._mouseWheelDisposer = this.events.on(\"wheel\", this.handleWheel, this, false);\r\n\t\t\t\tthis._disposers.push(this._mouseWheelDisposer);\r\n\r\n\t\t\t\tthis._disposers.push(scrollbar.events.on(\"rangechanged\", this.updateMasks, this, false));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._mouseWheelDisposer) {\r\n\t\t\t\t\tthis._mouseWheelDisposer.dispose();\r\n\t\t\t\t\tif (this.scrollbar) {\r\n\t\t\t\t\t\tthis.scrollbar.dispose();\r\n\t\t\t\t\t\tthis.scrollbar = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles mouse wheel scrolling of legend.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleWheel(event: AMEvent<Sprite, ISpriteEvents>[\"wheel\"]): void {\r\n\t\tlet shift = event.shift.y;\r\n\t\tlet scrollbar = this.scrollbar\r\n\t\tif (scrollbar) {\r\n\t\t\tlet ds = (shift / 1000 * this.measuredHeight / this.contentHeight);\r\n\t\t\tlet delta = scrollbar.end - scrollbar.start;\r\n\t\t\tif (shift > 0) {\r\n\t\t\t\tscrollbar.start = $math.max(0, scrollbar.start - ds);\r\n\t\t\t\tscrollbar.end = scrollbar.start + delta;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tscrollbar.end = $math.min(1, scrollbar.end - ds);\r\n\t\t\t\tscrollbar.start = scrollbar.end - delta;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected updateMasks(): void {\r\n\t\tif (this.scrollbar) {\r\n\t\t\tthis.itemContainers.each((itemContainer) => {\r\n\t\t\t\titemContainer.dy = -this.scrollbar.thumb.pixelY * this.contentHeight / this.measuredHeight;\r\n\t\t\t\titemContainer.maskRectangle = { x: 0, y: -itemContainer.dy, width: this.measuredWidth, height: this.measuredHeight }\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Legend Scrollable?\r\n\t */\r\n\tpublic get scrollable(): boolean {\r\n\t\treturn this.getPropertyValue(\"scrollable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles a legend item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param item Legend item\r\n\t * @todo Maybe do it with togglable instead\r\n\t */\r\n\tpublic toggleDataItem(item: this[\"_dataItem\"]): void {\r\n\t\tlet dataContext = item.dataContext;\r\n\r\n\t\tif (!dataContext.visible || dataContext.isHiding || (dataContext instanceof Sprite && dataContext.isHidden)) {\r\n\t\t\titem.color = item.colorOrig;\r\n\r\n\t\t\titem.itemContainer.isActive = false;\r\n\r\n\t\t\tif (dataContext.hidden === true) {\r\n\t\t\t\tdataContext.hidden = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (dataContext.show) {\r\n\t\t\t\tdataContext.show();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdataContext.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.svgContainer.readerAlert(this.language.translate(\"%1 shown\", this.language.locale, item.label.readerTitle));\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\titem.itemContainer.isActive = true;\r\n\r\n\t\t\tif (dataContext.hide) {\r\n\t\t\t\tdataContext.hide();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdataContext.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.svgContainer.readerAlert(this.language.translate(\"%1 hidden\", this.language.locale, item.label.readerTitle));\r\n\t\t\titem.color = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Override preloader method so that legend does not accidentally show its\r\n\t * own preloader.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Always `undefined`\r\n\t */\r\n\tpublic get preloader(): Optional<Preloader> {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemPropertyChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemPropertyChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tdataItem.valueLabel.invalidate();\r\n\t\tdataItem.label.invalidate();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Legend\"] = Legend;\r\n\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Move legend to below the chart if chart is narrow\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Legend && (target.position == \"left\" || target.position == \"right\")) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.position = \"bottom\";\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Move legend to the right if chart is very short\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Legend && (target.position == \"top\" || target.position == \"bottom\")) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.position = \"right\";\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Disable legend altogether on small charts\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.isXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Legend) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","/**\r\n * Functionality for any series-based elements, like Line Series (graphs),\r\n * Pie slice lists, etc.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component, IComponentProperties, IComponentDataFields, IComponentAdapters, IComponentEvents } from \"../../core/Component\";\r\nimport { AxisDataItem } from \"../axes/Axis\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List, ListTemplate, IListEvents, ListDisposer } from \"../../core/utils/List\";\r\nimport { Dictionary, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { SerialChart } from \"../types/SerialChart\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { LegendDataItem, LegendSettings } from \"../Legend\";\r\nimport { options } from \"../../core/Options\";\r\nimport { Ordering } from \"../../core/utils/Order\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $ease from \"../../core/utils/Ease\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\n\r\nexport interface IHeatRule {\r\n\ttarget: Sprite;\r\n\tproperty: string;\r\n\tmin: any;\r\n\tmax: any;\r\n\tdataField?: string;\r\n\tminValue?: number;\r\n\tmaxValue?: number;\r\n\tlogarithmic?: boolean;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[Series]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class SeriesDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * Related item's width in pixels.\r\n\t *\r\n\t * This is passed to bullets so that we'd know if the bullet (LabelBullet)\r\n\t * fits to max width/height.\r\n\t *\r\n\t * At the moment this is only used by column series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic itemWidth: number;\r\n\r\n\t/**\r\n\t * Related item's height in pixels.\r\n\t *\r\n\t * This is passed to bullets so that we'd know if the bullet (LabelBullet)\r\n\t * fits to max width/height.\r\n\t *\r\n\t * At the moment this is only used by column series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic itemHeight: number;\r\n\r\n\t/**\r\n\t * A dictionary of data items bullets, where key is uid of a bullet template.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _bullets: Dictionary<string, Sprite>;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: Series;\r\n\r\n\t/**\r\n\t * A dictionary of data items bullets, where key is uid of a bullet template.\r\n\t */\r\n\tpublic get bullets(): Dictionary<string, Sprite> {\r\n\t\tif (!this._bullets) {\r\n\t\t\tthis._bullets = new Dictionary<string, Sprite>();\r\n\t\t\tthis._disposers.push(new DictionaryDisposer(this._bullets));\r\n\t\t}\r\n\t\treturn this._bullets;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SeriesDataItem\";\r\n\t\t//@todo Should we make `bullets` list disposable?\r\n\t\t//this._disposers.push(new DictionaryDisposer(this.bullets));\r\n\r\n\t\tthis.values.value = {};\r\n\t\tthis.values.value = {};\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\tthis.bullets.clear();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * data items's numeric value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set value(value: number) {\r\n\t\tthis.setValue(\"value\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): number {\r\n\t\treturn this.values.value.value;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[Series]].\r\n */\r\nexport interface ISeriesDataFields extends IComponentDataFields {\r\n\t/**\r\n\t * Name of the field in data that holds numeric value.\r\n\t */\r\n\tvalue?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds boolean flag if item should be hidden.\r\n\t */\r\n\thidden?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[Series]].\r\n */\r\nexport interface ISeriesProperties extends IComponentProperties {\r\n\r\n\t/**\r\n\t * Minimal distance between data points in pixels.\r\n\t *\r\n\t * If distance gets smaller than this, bullets are turned off to avoid\r\n\t * overlapping.\r\n\t *\r\n\t * `0` (zero) disables this behavior.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tminBulletDistance?: number;\r\n\r\n\t/**\r\n\t * Should series be hidden in chart's legend?\r\n\t */\r\n\thiddenInLegend?: boolean;\r\n\r\n\t/**\r\n\t * Series' name.\r\n\t */\r\n\tname?: string;\r\n}\r\n\r\n/**\r\n * Defines events for [[Series]].\r\n */\r\nexport interface ISeriesEvents extends IComponentEvents {\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t */\r\n\tselectionextremeschanged: {};\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t */\r\n\textremeschanged: {};\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t */\r\n\tdataitemchanged: {\r\n\t\tdataItem: DataItem\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Series]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISeriesAdapters extends IComponentAdapters, ISeriesProperties {\r\n\t/**\r\n\t * Applied to the name used by screen readers.\r\n\t */\r\n\titemReaderText: string\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines base class for any kind of serial data.\r\n *\r\n * @see {@link ISeriesEvents} for a list of available Events\r\n * @see {@link ISeriesAdapters} for a list of available Adapters\r\n * @todo Separate axis-related stuff to some other class so that MapSeries would not have unrelated stuff\r\n */\r\nexport class Series extends Component {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: ISeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISeriesEvents;\r\n\r\n\t/**\r\n\t * Defines a type of data item used for the series.\r\n\t */\r\n\tpublic _dataItem: SeriesDataItem;\r\n\r\n\t/**\r\n\t * A reference to the legend data item related to this series.\r\n\t */\r\n\tprotected _legendDataItem: LegendDataItem;\r\n\r\n\t/**\r\n\t * Should this series excluded from the axis scale calculations?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tprotected _ignoreMinMax: boolean = false;\r\n\r\n\t/**\r\n\t * Container series' elements are placed in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic mainContainer: Container;\r\n\r\n\t/**\r\n\t * Should series' bullets?\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tprotected _showBullets: boolean = true;\r\n\r\n\t/**\r\n\t * List of series' bullets.\r\n\t */\r\n\tprotected _bullets: ListTemplate<Sprite>;\r\n\r\n\t/**\r\n\t * Container bullets are placed in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic bulletsContainer: Container;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: SerialChart;\r\n\r\n\t/**\r\n\t * A container axis ranges are placed in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic rangesContainer: Container;\r\n\r\n\t/**\r\n\t * A list of axis ranges for this series.\r\n\t */\r\n\tpublic axisRanges: List<AxisDataItem>;\r\n\r\n\t/**\r\n\t * Settings for the appearance of the related legend items.\r\n\t */\r\n\tpublic legendSettings: LegendSettings = new LegendSettings();\r\n\r\n\t/**\r\n\t * Lowest overal values by type.\r\n\t */\r\n\tprotected _tmin = new Dictionary<string, number>();\r\n\r\n\t/**\r\n\t * Highest overal values by type.\r\n\t */\r\n\tprotected _tmax = new Dictionary<string, number>();\r\n\r\n\t/**\r\n\t * Lowest values in current selection by type.\r\n\t */\r\n\tprotected _smin = new Dictionary<string, number>();\r\n\r\n\t/**\r\n\t * Highest values in current selection by type.\r\n\t */\r\n\tprotected _smax = new Dictionary<string, number>();\r\n\r\n\t/**\r\n\t * [dataItemsByAxis description]\r\n\t *\r\n\t * Both by category and date.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataItemsByAxis = new Dictionary<string, Dictionary<string, this[\"_dataItem\"]>>();\r\n\r\n\t/**\r\n\t * Normally series items are focusable using keyboard, so that people can\r\n\t * select them with a TAB key. However, if there are a lot of data points on\r\n\t * screen it might be long and useless to tab through all o fthem.\r\n\t *\r\n\t * This is where `skipFocusThreshold` comes in. If there are more items than\r\n\t * the value set here, we will not make those focusable and rather let screen\r\n\t * reader software rely on the series summary, or authors provide alternative\r\n\t * detailed information display, such as HTML table.\r\n\t *\r\n\t * Different series might have different threshold defaults.\r\n\t */\r\n\tpublic skipFocusThreshold: number = 20;\r\n\r\n\t/**\r\n\t * Holds a default screen reader text for series data items. It will be used\r\n\t * to generate information for screen readers. If not set, the series will\r\n\t * try to deduce reader text from `tooltipText` or `tooltipHTML`. If those\r\n\t * are not set either, a default reader text will be used which is relevant\r\n\t * for each Series type.\r\n\t */\r\n\tprotected _itemReaderText: string;\r\n\r\n\r\n\t/**\r\n\t * Used to indicate if `itemReaderText` was changed \"from the outside\".\r\n\t */\r\n\tprotected _itemReaderTextChanged: boolean = false;\r\n\r\n\t/*\r\n\t\tpublic heatMapfillRule: (fill:Color, column: Sprite) => any = function(fill:Color, sprite: Sprite) {\r\n\t\t\tlet dataItem: SeriesDataItem = <SeriesDataItem>sprite.dataItem;\r\n\r\n\t\t\tif (dataItem && dataItem.value) {\r\n\t\t\t\tlet series = dataItem.component;\r\n\t\t\t\tif($type.hasValue(series.minColor) && $type.hasValue(series.maxColor) && $type.isNumber(series.minValue) && $type.isNumber(series.maxValue)){\r\n\t\t\t\t\tlet percent = (dataItem.values.value.workingValue - series.minValue) / (series.maxValue - series.minValue);\r\n\t\t\t\t\treturn new Color($colors.interpolate(series.minColor.rgb, series.maxColor.rgb, percent));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t*/\r\n\r\n\tprotected _heatRules: List<IHeatRule>;\r\n\r\n\t/**\r\n\t * Most of the series use absolute values. However sometimes various\r\n\t * calculated percent values are need, e.g. item's percent representation\r\n\t * across all values in series, etc.\r\n\t *\r\n\t * It's a resource-intensive operation, so it is disabled by default.\r\n\t *\r\n\t * If you need percents to be calculated, e.g. for showing them in tooltips,\r\n\t * or creating 100% stacks, this setting needs to be set to `true`.\r\n\t * \r\n\t * NOTE: `PieChart`, which relies on slice percentages, has this\r\n\t * automatically set to `true`.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tpublic calculatePercent: boolean = false;\r\n\r\n\t/**\r\n\t * When `calculatePercent` is enabled and data item's percent value is\r\n\t * calculated, last item's real value is used instead of its working value.\r\n\t * \r\n\t * This is done for the animations when last item in series (e.g. slice in\r\n\t * a `PieSeries`) is hidden or shown. (if we would use real value, the \r\n\t * calculated percent would always be 100%).\r\n\t * \r\n\t * Sometimes there is a need (e.g. for drill-down Sunburst) to disable this\r\n\t * hack by setting `usePercentHack` to `false`.\r\n\t *\r\n\t * @since 4.9.13\r\n\t * @default true\r\n\t */\r\n\tpublic usePercentHack: boolean = true;\r\n\r\n\t/**\r\n\t * Specifies if series should be automatically disposed when removing from\r\n\t * chart's `series` list.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tpublic autoDispose: boolean = true;\r\n\r\n\t/**\r\n\t * When chart/series' data is processed, all kinds of derivative values are\r\n\t * calculated. E.g. sum, min, max, change, etc. This is a potentially\r\n\t * time-consuming operation, especially prominent in data-heavy charts.\r\n\t *\r\n\t * If your chart does not need those values, and you have a lot of data,\r\n\t * setting this to `true` might give a dramatic increase in initial chart\r\n\t * load speed.\r\n\t *\r\n\t * Please note, regular column and line series usage scenarios do not\r\n\t * require derivative values. Those come into play only when you do advanced\r\n\t * functionality like coloring segments of charts in different colors\r\n\t * depending on change between open and close values, have stacked series, or\r\n\t * display any of the derived values, like percent, in tooltips or bullets.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tpublic simplifiedProcessing: boolean = false;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tif (this.constructor === Series) {\r\n\t\t\tthrow new Error(\"'Series' cannot be instantiated directly. Please use a specific series type.\");\r\n\t\t}\r\n\r\n\t\tthis.className = \"Series\";\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.layout = \"none\";\r\n\t\tthis.shouldClone = false;\r\n\t\tthis.setPropertyValue(\"hidden\", false);\r\n\r\n\t\tthis.axisRanges = new List<AxisDataItem>();\r\n\t\tthis.axisRanges.events.on(\"inserted\", this.processAxisRange, this, false);\r\n\r\n\t\tthis.minBulletDistance = 0; // otherwise we'll have a lot of cases when people won't see bullets and think it's a bug\r\n\t\tthis.mainContainer = this.createChild(Container);\r\n\t\tthis.mainContainer.shouldClone = false;\r\n\t\tthis.mainContainer.mask = this.createChild(Sprite);\r\n\r\n\t\tthis._disposers.push(this.mainContainer);\r\n\r\n\t\t// all bullets should go on top of lines/fills. So we add a separate container for bullets and later set it's parent to chart.bulletsContainer\r\n\t\tlet bulletsContainer = this.mainContainer.createChild(Container);\r\n\t\tthis._shouldBeReady.push(bulletsContainer);\r\n\t\tbulletsContainer.shouldClone = false;\r\n\t\tbulletsContainer.layout = \"none\";\r\n\t\tbulletsContainer.virtualParent = this;\r\n\t\tthis._disposers.push(bulletsContainer);\r\n\t\tthis.bulletsContainer = bulletsContainer;\r\n\r\n\t\tthis.tooltip = new Tooltip();\r\n\t\tthis.tooltip.virtualParent = this;\r\n\t\tthis._disposers.push(this.tooltip);\r\n\r\n\t\tthis.hiddenState.transitionEasing = $ease.cubicIn;\r\n\r\n\t\t// this data item holds sums, averages, etc\r\n\t\tthis.dataItem = this.createDataItem();\r\n\t\tthis._disposers.push(this.dataItem);\r\n\t\tthis.dataItem.component = this;\r\n\r\n\t\t// Apply accessibility\r\n\t\tthis.role = \"group\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * We need this here so that class names can be applied to bullets container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic applyTheme(): void {\r\n\t\tsuper.applyTheme();\r\n\t\tif (options.autoSetClassName && this.bulletsContainer) {\r\n\t\t\tthis.bulletsContainer.className = this.className + \"-bullets\";\r\n\t\t\tthis.bulletsContainer.setClassName();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new SeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Chart series is used on.\r\n\t *\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: this[\"_chart\"]) {\r\n\t\tthis._chart = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): this[\"_chart\"] {\r\n\t\treturn this._chart;\r\n\t}\r\n\r\n\t/**\r\n\t * Positions bullet.\r\n\t *\r\n\t * @param bullet Sprite\r\n\t */\r\n\tpublic positionBullet(bullet: Sprite): void {\r\n\r\n\t\t// Placeholder method for extending classes to override.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates newly created bullet after it has been instert into the list.\r\n\t *\r\n\t * @param event List event\r\n\t * @todo investigate why itemReaderText is undefined\r\n\t */\r\n\tprotected processBullet(event: IListEvents<Sprite>[\"inserted\"]) {\r\n\t\tlet bullet: Sprite = event.newValue;\r\n\t\tbullet.isTemplate = true;\r\n\t\t// Add accessibility options to bullet\r\n\t\t// If there are relatively few bullets, make them focusable\r\n\t\tthis.events.once(\"datavalidated\", (ev) => {\r\n\t\t\tif (this.itemsFocusable()) {\r\n\t\t\t\tbullet.focusable = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * removes bullets\r\n\t *\r\n\t * @param event List event\r\n\t */\r\n\tprotected removeBullet(event: IListEvents<Sprite>[\"removed\"]) {\r\n\t\tlet bullet: Sprite = event.oldValue;\r\n\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tlet eachBullet = dataItem.bullets.getKey(bullet.uid);\r\n\t\t\tif (eachBullet) {\r\n\t\t\t\teachBullet.dispose();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems() {\r\n\t\tsuper.validateDataItems();\r\n\t\tthis.processValues(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns first value for the specific key in the series.\r\n\t *\r\n\t * @param key Key\r\n\t * @return Value\r\n\t * @todo Description\r\n\t * @todo Convert to propert object property iterator\r\n\t */\r\n\tprotected getFirstValue(key: string, startIndex: number): number {\r\n\t\t// find first\r\n\t\t/*\r\n\t\treturn $iter.findMap(this.dataItems.iterator(), (dataItem) => {\r\n\t\t\tfor (let key in dataItem.values) {\r\n\t\t\t\tif ($object.hasKey(dataItem.values, key)) {\r\n\t\t\t\t\tlet value: number = dataItem.values[key].workingValue;\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t});*/\r\n\r\n\t\t//if (startIndex > 0 && startIndex < this.dataItems.length - 1) {\r\n\t\t\t//startIndex++;\r\n\t\t//}\r\n\t\tfor (let i = startIndex; i >= 0; i--) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tlet value: number = dataItem.getActualWorkingValue(key);\r\n\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns first value for the specific key in the series.\r\n\t *\r\n\t * @param key Key\r\n\t * @return Value\r\n\t * @todo Description\r\n\t * @todo Convert to propert object property iterator\r\n\t */\r\n\tprotected getAbsoluteFirstValue(key: string): number {\r\n\t\tfor (let i = 0; i < this.dataItems.length; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tlet value: number = dataItem.values[key].value;\r\n\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t * [rangeChangeUpdate description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected rangeChangeUpdate() {\r\n\t\tsuper.rangeChangeUpdate();\r\n\t\tthis.processValues(true);\r\n\t}\r\n\r\n\t/**\r\n\t * [processValues description]\r\n\t *\r\n\t * @todo Description\r\n\t * @todo Convert to propert object property iterator\r\n\t * @param dataItems [description]\r\n\t */\r\n\tprotected processValues(working: boolean) {\r\n\t\tif (!this.simplifiedProcessing) {\r\n\t\t\tlet dataItems = this.dataItems;\r\n\r\n\t\t\tlet count: { [index: string]: number } = {};\r\n\t\t\tlet sum: { [index: string]: number } = {};\r\n\t\t\tlet absoluteSum: { [index: string]: number } = {};\r\n\t\t\tlet low: { [index: string]: number } = {};\r\n\t\t\tlet high: { [index: string]: number } = {};\r\n\t\t\tlet open: { [index: string]: number } = {};\r\n\t\t\tlet close: { [index: string]: number } = {};\r\n\t\t\tlet previous: { [index: string]: number } = {};\r\n\t\t\tlet first: { [index: string]: number } = {};\r\n\t\t\tlet absoluteFirst: { [index: string]: number } = {};\r\n\r\n\t\t\t//let duration: number = 0; // todo: check if series uses selection.change or selection.change.percent and set duration to interpolationduration\r\n\r\n\t\t\tlet startIndex: number = $math.max(0, this.startIndex);\r\n\t\t\tstartIndex = $math.min(startIndex, this.dataItems.length);\r\n\r\n\t\t\tlet endIndex: number = $math.min(this.endIndex, this.dataItems.length);\r\n\r\n\t\t\tif (!$type.isNumber(startIndex)) {\r\n\t\t\t\tstartIndex = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNumber(endIndex)) {\r\n\t\t\t\tendIndex = this.dataItems.length;\r\n\t\t\t}\r\n\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tlet dataItem = dataItems.getIndex(startIndex - 1);\r\n\r\n\t\t\t\t$object.each(dataItem.values, (key, values) => {\r\n\t\t\t\t\tlet value: number = dataItem.getActualWorkingValue(key);\r\n\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t// save previous\r\n\t\t\t\t\t\tprevious[key] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\r\n\t\t\t\t$object.each(dataItem.values, (key, values) => {\r\n\t\t\t\t\tlet value: number = dataItem.getActualWorkingValue(key);\r\n\r\n\t\t\t\t\t//if (i >= startIndex && i <= endIndex) { // do not add to count, sum etc if it is not within start/end index\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\r\n\t\t\t\t\t\t// count values\r\n\t\t\t\t\t\tif (!$type.isNumber(count[key])) {\r\n\t\t\t\t\t\t\tcount[key] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcount[key]++;\r\n\r\n\t\t\t\t\t\t// sum values\r\n\t\t\t\t\t\tif (!$type.isNumber(sum[key])) {\r\n\t\t\t\t\t\t\tsum[key] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsum[key] += value;\r\n\r\n\t\t\t\t\t\t// absolute sum values\r\n\t\t\t\t\t\tif (!$type.isNumber(absoluteSum[key])) {\r\n\t\t\t\t\t\t\tabsoluteSum[key] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tabsoluteSum[key] += Math.abs(value);\r\n\r\n\t\t\t\t\t\t// open\r\n\t\t\t\t\t\tif (!$type.isNumber(open[key])) {\r\n\t\t\t\t\t\t\topen[key] = value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// close\r\n\t\t\t\t\t\tclose[key] = value;\r\n\r\n\t\t\t\t\t\t// low\r\n\t\t\t\t\t\tif (!$type.isNumber(low[key])) {\r\n\t\t\t\t\t\t\tlow[key] = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (low[key] > value) {\r\n\t\t\t\t\t\t\t\tlow[key] = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// high\r\n\t\t\t\t\t\tif (!$type.isNumber(high[key])) {\r\n\t\t\t\t\t\t\thigh[key] = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (high[key] < value) {\r\n\t\t\t\t\t\t\t\thigh[key] = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(first[key])) {\r\n\t\t\t\t\t\t\tfirst[key] = this.getFirstValue(key, startIndex);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(absoluteFirst[key])) {\r\n\t\t\t\t\t\t\tabsoluteFirst[key] = this.getAbsoluteFirstValue(key);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// change\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, value - first[key], \"change\");\r\n\t\t\t\t\t\t// change from start percent\r\n\t\t\t\t\t\t// will fail if first value is 0\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, (value - first[key]) / first[key] * 100, \"changePercent\");\r\n\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, (value - absoluteFirst[key]), \"startChange\");\r\n\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, (value - absoluteFirst[key]) / absoluteFirst[key] * 100, \"startChangePercent\");\r\n\r\n\t\t\t\t\t\t// previous change\r\n\t\t\t\t\t\tlet prevValue: number = previous[key];\r\n\t\t\t\t\t\tif (!$type.isNumber(prevValue)) {\r\n\t\t\t\t\t\t\tprevValue = value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, value - prevValue, \"previousChange\");\r\n\t\t\t\t\t\t// previous change percent\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(key, (value - prevValue) / prevValue * 100, \"previousChangePercent\");\r\n\r\n\t\t\t\t\t\t// save previous\r\n\t\t\t\t\t\tprevious[key] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this.calculatePercent) {\r\n\t\t\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\r\n\t\t\t\t\t$object.each(dataItem.values, (key) => {\r\n\t\t\t\t\t\tlet ksum: number = absoluteSum[key];\r\n\r\n\t\t\t\t\t\tlet value: number = dataItem.getActualWorkingValue(key);\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t\tif (ksum > 0) {\r\n\t\t\t\t\t\t\t\tif (this.usePercentHack) {\r\n\t\t\t\t\t\t\t\t\t// this hack is made in order to make it possible to animate single slice to 0\r\n\t\t\t\t\t\t\t\t\t// if there is only one slice left, percent value is always 100%, so it won't animate\r\n\t\t\t\t\t\t\t\t\t// so we use real value of a slice instead of current value\r\n\t\t\t\t\t\t\t\t\tif (value == ksum) {\r\n\t\t\t\t\t\t\t\t\t\tksum = dataItem.values[key].value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tlet percent = value / ksum * 100;\r\n\r\n\t\t\t\t\t\t\t\tdataItem.setCalculatedValue(key, percent, \"percent\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tdataItem.setCalculatedValue(key, 0, \"percent\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// calculate one before first (cant do that in cycle, as we don't know open yet\r\n\t\t\t// when drawing line chart we should draw line to the invisible data point to the left, otherwise the line will always look like it starts from the selected point\r\n\t\t\t// so we do startIndex - 1\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tlet zeroItem: this[\"_dataItem\"] = dataItems.getIndex(startIndex - 1);\r\n\r\n\t\t\t\t$object.each(zeroItem.values, (key) => {\r\n\t\t\t\t\tlet value = zeroItem.values[key].value;\r\n\t\t\t\t\t// change\r\n\t\t\t\t\tzeroItem.setCalculatedValue(key, value - open[key], \"change\");\r\n\t\t\t\t\t// change percent\r\n\t\t\t\t\tzeroItem.setCalculatedValue(key, (value - open[key]) / open[key] * 100, \"changePercent\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// we save various data like sum, average to dataPoint of the series\r\n\t\t\tlet dataItem: DataItem = this.dataItem;\r\n\t\t\t$object.each(dataItem.values, (key) => {\r\n\t\t\t\tdataItem.setCalculatedValue(key, sum[key], \"sum\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, absoluteSum[key], \"absoluteSum\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, sum[key] / count[key], \"average\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, open[key], \"open\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, close[key], \"close\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, low[key], \"low\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, high[key], \"high\");\r\n\t\t\t\tdataItem.setCalculatedValue(key, count[key], \"count\");\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tif($utils.isIE()){\r\n\t\t\tthis.filters.clear();\r\n\t\t}\r\n\r\n\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t//axisRange.contents.disposeChildren(); // not good for columns, as they are reused\r\n\t\t\t//\t\t\taxisRange.appendChildren();\r\n\t\t\taxisRange.validate();\r\n\t\t});\r\n\r\n\t\tsuper.validate();\r\n\t\tlet bulletsContainer = this.bulletsContainer;\r\n\t\tbulletsContainer.fill = this.fill;\r\n\t\tbulletsContainer.stroke = this.stroke;\r\n\t\tbulletsContainer.x = this.pixelX;\r\n\t\tbulletsContainer.y = this.pixelY;\r\n\r\n\t\tif (this.bulletsContainer.children.length > 0) {\r\n\t\t\tif (this._showBullets) {\r\n\r\n\r\n\t\t\t\tfor (let i = 0; i < this.startIndex; i++) {\r\n\t\t\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tdataItem.bullets.each((key, bullet) => {\r\n\t\t\t\t\t\t\tbullet.__disabled = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let i = this.dataItems.length - 1; i > this.endIndex; i--) {\r\n\t\t\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tdataItem.bullets.each((key, bullet) => {\r\n\t\t\t\t\t\t\tbullet.__disabled = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.bulletsContainer.children.each((bullet) => {\r\n\t\t\t\t\tbullet.__disabled = true;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.updateTooltipBounds();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateTooltipBounds() {\r\n\t\tif (this.topParent) {\r\n\t\t\tlet x = 0;\r\n\t\t\tlet y = 0;\r\n\t\t\tlet w = this.topParent.maxWidth;\r\n\t\t\tlet h = this.topParent.maxHeight;\r\n\t\t\tlet rect = { x: x, y: y, width: w, height: h };\r\n\r\n\t\t\tthis.tooltip.setBounds(rect);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected shouldCreateBullet(dataItem: this[\"_dataItem\"], bulletTemplate: Sprite): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\tif (this._showBullets) {\r\n\t\t\tif (!this.isHidden) {\r\n\t\t\t\tthis.bulletsContainer.visible = true;\r\n\t\t\t}\r\n\t\t\tthis.bullets.each((bulletTemplate) => {\r\n\t\t\t\t// always better to use the same, this helps to avoid redrawing\r\n\t\t\t\tlet bullet: Sprite = <Sprite>dataItem.bullets.getKey(bulletTemplate.uid);\r\n\r\n\t\t\t\tif (this.shouldCreateBullet(dataItem, bulletTemplate)) {\r\n\t\t\t\t\tif (!bullet) {\r\n\r\n\t\t\t\t\t\tlet disabledField = bulletTemplate.propertyFields.disabled;\r\n\t\t\t\t\t\tlet dataContext = <any>dataItem.dataContext;\r\n\t\t\t\t\t\tif (disabledField && dataContext && dataContext[disabledField] === false) {\r\n\t\t\t\t\t\t\tbulletTemplate.applyOnClones = false;\r\n\t\t\t\t\t\t\tbulletTemplate.disabled = false;\r\n\t\t\t\t\t\t\tbullet = bulletTemplate.clone();\r\n\t\t\t\t\t\t\tbulletTemplate.disabled = true;\r\n\t\t\t\t\t\t\tbulletTemplate.applyOnClones = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tbullet = bulletTemplate.clone();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbullet.shouldClone = false;\r\n\t\t\t\t\t\tdataItem.addSprite(bullet);\r\n\r\n\t\t\t\t\t\tif (!this.visible || this.isHiding) {\r\n\t\t\t\t\t\t\tbullet.hide(0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet currentDataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>bullet.dataItem;\r\n\t\t\t\t\tif (currentDataItem != dataItem) {\r\n\t\t\t\t\t\t// set to undefined in order not to reuse\r\n\t\t\t\t\t\tif (currentDataItem) {\r\n\t\t\t\t\t\t\tcurrentDataItem.bullets.setKey(bulletTemplate.uid, undefined);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet readerText = this.itemReaderText;\r\n\r\n\t\t\t\t\t\tif (bullet instanceof Bullet) {\r\n\t\t\t\t\t\t\tif (!readerText) {\r\n\t\t\t\t\t\t\t\treaderText = (\"{\" + bullet.xField + \"}: {\" + bullet.yField + \"}\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (bullet.isDynamic) {\r\n\t\t\t\t\t\t\t\tdataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n\t\t\t\t\t\t\t\t//dataItem.events.on(\"calculatedvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n\t\t\t\t\t\t\t\tthis.dataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbullet.deepInvalidate();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Add accessibility to bullet\r\n\t\t\t\t\t\tif (bullet.focusable) {\r\n\t\t\t\t\t\t\tbullet.events.on(\"focus\", (ev) => {\r\n\t\t\t\t\t\t\t\tbullet.readerTitle = this.populateString(readerText, bullet.dataItem);\r\n\t\t\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\t\t\tbullet.events.on(\"blur\", (ev) => {\r\n\t\t\t\t\t\t\t\tbullet.readerTitle = \"\";\r\n\t\t\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (bullet.hoverable) {\r\n\t\t\t\t\t\t\tbullet.events.on(\"over\", (ev) => {\r\n\t\t\t\t\t\t\t\tbullet.readerTitle = this.populateString(readerText, bullet.dataItem);\r\n\t\t\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\t\t\tbullet.events.on(\"out\", (ev) => {\r\n\t\t\t\t\t\t\t\tbullet.readerTitle = \"\";\r\n\t\t\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbullet.parent = this.bulletsContainer;\r\n\t\t\t\t\tdataItem.bullets.setKey(bulletTemplate.uid, bullet);\r\n\r\n\t\t\t\t\t// pass max w/h so we'd know if we should show/hide somethings\r\n\t\t\t\t\tbullet.maxWidth = dataItem.itemWidth;\r\n\t\t\t\t\tbullet.maxHeight = dataItem.itemHeight;\r\n\t\t\t\t\tbullet.__disabled = false;\r\n\r\n\t\t\t\t\tthis.positionBullet(bullet);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (bullet) {\r\n\t\t\t\t\t\tbullet.__disabled = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.bulletsContainer.visible = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tif (!this.dataRangeInvalid) {\r\n\t\t\tthis.invalidateProcessedData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Should this series excluded from the axis scale calculations?\r\n\t *\r\n\t * @default false\r\n\t * @param value Exclude from calculations?\r\n\t */\r\n\tpublic set ignoreMinMax(value: boolean) {\r\n\t\tthis._ignoreMinMax = value;\r\n\t\tthis.invalidateDataItems();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Exclude from calculations?\r\n\t */\r\n\tpublic get ignoreMinMax(): boolean {\r\n\t\treturn this._ignoreMinMax;\r\n\t}\r\n\r\n\t/**\r\n\t * Create a mask for the series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic createMask(): void {\r\n\r\n\t\t// A placeholder method for extending classes to override.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Process axis range after it has been added to the list.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected processAxisRange(event: IListEvents<AxisDataItem>[\"inserted\"]): void {\r\n\t\t// create container if not existing\r\n\t\tif (!this.rangesContainer) {\r\n\t\t\tthis.rangesContainer = this.createChild(Container);\r\n\t\t\tthis.rangesContainer.shouldClone = false;\r\n\t\t\tthis.rangesContainer.isMeasured = false;\r\n\t\t}\r\n\r\n\t\tlet axisRange: AxisDataItem = event.newValue;\r\n\t\tif (axisRange) {\r\n\t\t\taxisRange.contents.parent = this.rangesContainer;\r\n\t\t\taxisRange.isRange = true;\r\n\t\t\taxisRange.events.on(\"valuechanged\", this.invalidateDataItems, this, false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [getAxisField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param axis [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getAxisField(axis: Axis): string {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows the tooltip at specific position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param xPosition X\r\n\t * @param yPosition Y\r\n\t */\r\n\tpublic showTooltipAtPosition(xPosition: number, yPosition: number): void {\r\n\r\n\t\t// Placeholder method for extending classes to override.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Minimal distance between data points in pixels.\r\n\t *\r\n\t * If distance gets smaller than this, bullets are turned off to avoid\r\n\t * overlapping.\r\n\t *\r\n\t * `0` (zero) disables this behavior.\r\n\t *\r\n\t * IMPORTANT: This setting will work only when Series' base axis\r\n\t * is [[CategoryAxis]] or [[DateAxis]]. If base axis is [[ValueAxis]] the\r\n\t * setting will be ignored, because it would be a huge overhead to measure\r\n\t * distance between each and every bullet.\r\n\t *\r\n\t * @default 0\r\n\t * @param value Distance (px)\r\n\t */\r\n\tpublic set minBulletDistance(value: number) {\r\n\t\tthis.setPropertyValue(\"minBulletDistance\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Distance (px)\r\n\t */\r\n\tpublic get minBulletDistance(): number {\r\n\t\treturn this.getPropertyValue(\"minBulletDistance\");\r\n\t}\r\n\r\n\t/**\r\n\t * A list of bullets that will be added to each and every items in the\r\n\t * series.\r\n\t *\r\n\t * You can push any object that is a descendant of a [[Sprite]] here. All\r\n\t * items added to this list will be copied and used as a bullet on all data\r\n\t * items, including their properties, events, etc.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/bullets/} for more info about the concept of Bullets\r\n\t * @return List of bullets.\r\n\t */\r\n\tpublic get bullets(): ListTemplate<Sprite> {\r\n\t\tif (!this._bullets) {\r\n\t\t\tthis._bullets = new ListTemplate<Sprite>(new Bullet());\r\n\t\t\tthis._bullets.template.virtualParent = this;\r\n\t\t\tthis._bullets.events.on(\"inserted\", this.processBullet, this, false);\r\n\t\t\tthis._bullets.events.on(\"removed\", this.removeBullet, this, false);\r\n\r\n\t\t\tthis._disposers.push(new ListDisposer(this._bullets));\r\n\t\t\tthis._disposers.push(this._bullets.template);\r\n\t\t}\r\n\t\treturn this._bullets;\r\n\t}\r\n\r\n\t/**\r\n\t * Binds related legend data item's visual settings to this series' visual\r\n\t * settings.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container): void {\r\n\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Should the series be hidden in legend?\r\n\t *\r\n\t * @param value Hidden in legend?\r\n\t */\r\n\tpublic set hiddenInLegend(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"hiddenInLegend\", value)) {\r\n\t\t\tif (this.chart) {\r\n\t\t\t\tthis.chart.feedLegend();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hidden in legend?\r\n\t */\r\n\tpublic get hiddenInLegend(): boolean {\r\n\t\treturn this.getPropertyValue(\"hiddenInLegend\");\r\n\t}\r\n\r\n\t/**\r\n\t * Series' name.\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set name(value: string) {\r\n\t\tthis.setPropertyValue(\"name\", value);\r\n\r\n\t\tlet legendDataItem = this.legendDataItem;\r\n\t\tif (legendDataItem) {\r\n\t\t\tlegendDataItem.component.invalidate();\r\n\t\t\tlegendDataItem.component.invalidateRawData();\r\n\t\t}\r\n\r\n\t\tthis.readerTitle = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Name\r\n\t */\r\n\tpublic get name(): string {\r\n\t\treturn this.getPropertyValue(\"name\");\r\n\t}\r\n\r\n\t/**\r\n\t * Screen reader text to be applied to each individual data item, such\r\n\t * as bullets, columns or slices.\r\n\t *\r\n\t * The template can contain field reference meta codes, i.e. `{dateX}`,\r\n\t * `{valueY}`, etc.\r\n\t *\r\n\t * Any text formatting options, e.g. `[bold]` will be ignored.\r\n\t *\r\n\t * @param value Screen reader text template\r\n\t */\r\n\tpublic set itemReaderText(value: string) {\r\n\t\tthis._itemReaderText = value;\r\n\t\tthis._itemReaderTextChanged = true;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Screen reader text template\r\n\t */\r\n\tpublic get itemReaderText(): string {\r\n\r\n\t\t// Get explicitly set reader text\r\n\t\tlet readerText = this._itemReaderText;\r\n\r\n\t\t// Not set? Let's try something else\r\n\t\tif (!readerText) {\r\n\r\n\t\t\t// Tooltip text?\r\n\t\t\tif (this.tooltipText) {\r\n\t\t\t\treaderText = $utils.plainText(this.tooltipText);\r\n\t\t\t}\r\n\t\t\telse if (this.tooltipHTML) {\r\n\t\t\t\treaderText = $utils.plainText(this.tooltipHTML);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn readerText;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"itemReaderText\", readerText);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if number of data items in the series are beyond non-focusable\r\n\t * count and should not be available for TAB-through.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Items focusable?\r\n\t */\r\n\tpublic itemsFocusable(): boolean {\r\n\t\treturn this.dataItems.length >= this.skipFocusThreshold ? false : true;\r\n\t}\r\n\r\n\t/**\r\n\t * Legend data item that corresponds to this series.\r\n\t *\r\n\t * @param value Data item\r\n\t */\r\n\tpublic set legendDataItem(value: LegendDataItem) {\r\n\t\tthis._legendDataItem = value;\r\n\t\tthis._legendDataItem.itemContainer.deepInvalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Data item\r\n\t */\r\n\tpublic get legendDataItem(): LegendDataItem {\r\n\t\treturn this._legendDataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates corresponding legend data item with current values.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic updateLegendValue(dataItem?: this[\"_dataItem\"], notRange?: boolean) {\r\n\t\t// if this series has legend item\r\n\t\tif (this.legendDataItem) {\r\n\r\n\t\t\tlet legendSettings: LegendSettings = this.legendSettings;\r\n\t\t\tlet legendDataItem = this.legendDataItem;\r\n\t\t\tlet label: Label = legendDataItem.label;\r\n\t\t\tlet valueLabel: Label = legendDataItem.valueLabel;\r\n\r\n\t\t\t// update legend\r\n\t\t\tif (dataItem || notRange) {\r\n\t\t\t\tif (valueLabel) {\r\n\t\t\t\t\tif (legendSettings.itemValueText) {\r\n\t\t\t\t\t\tvalueLabel.text = legendSettings.itemValueText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalueLabel.dataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\tif (legendSettings.itemLabelText) {\r\n\t\t\t\t\t\tlabel.text = legendSettings.itemLabelText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlabel.dataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\t// if itemLabelText is set, means we have to reset label even if labelText is not set\r\n\t\t\t\t\tif (legendSettings.labelText || legendSettings.itemLabelText != undefined) {\r\n\t\t\t\t\t\tlabel.text = legendSettings.labelText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlabel.dataItem = this.dataItem;\r\n\t\t\t\t}\r\n\t\t\t\tif (valueLabel) {\r\n\t\t\t\t\tif (legendSettings.valueText || legendSettings.itemValueText != undefined) {\r\n\t\t\t\t\t\tvalueLabel.text = legendSettings.valueText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalueLabel.dataItem = this.dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[Series]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tthis.bullets.copyFrom(source.bullets);\r\n\t\tthis.bulletsContainer.copyFrom(source.bulletsContainer);\r\n\t\tthis.calculatePercent = source.calculatePercent;\r\n\t\tthis.usePercentHack = source.usePercentHack;\r\n\t\tthis.simplifiedProcessing = source.simplifiedProcessing;\r\n\t\tsuper.copyFrom(source);\r\n\t}\r\n\r\n\t/**\r\n\t * Displays a modal or console message with error, and halts any further\r\n\t * processing of this element.\r\n\t *\r\n\t * @param e Error\r\n\t */\r\n\tpublic raiseCriticalError(e: Error) {\r\n\t\tif (this._chart && this._chart.modal) {\r\n\t\t\tthis._chart.modal.content = this._chart.adapter.apply(\"criticalError\", e).message;\r\n\t\t\tthis._chart.modal.closable = false;\r\n\t\t\tif (!options.suppressErrors) {\r\n\t\t\t\tthis._chart.modal.open();\r\n\t\t\t}\r\n\t\t\tthis._chart.disabled = true;\r\n\t\t}\r\n\r\n\t\tif (options.verbose) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Applies filters to the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected applyFilters() {\r\n\t\tsuper.applyFilters();\r\n\t\tthis.bulletsContainer.filters.clear();\r\n\r\n\t\t// copyFrom of a list copies, does not clone\r\n\t\t$iter.each(this.filters.iterator(), (filter) => {\r\n\t\t\tthis.bulletsContainer.filters.push(filter.clone());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * A list of heat rules to apply to series' elements based on the value\r\n\t * of the data item.\r\n\t *\r\n\t * Heat rules can be any \"numeric\" (including `Color`) property, and can also\r\n\t * be applied to child objects of series, like columns, bullets, etc.\r\n\t *\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.heatRules.push({\r\n\t * \"target\": series.columns.template,\r\n\t * \"property\": \"fill\",\r\n\t * \"min\": am4core.color(\"#F5DBCB\"),\r\n\t * \"max\": am4core.color(\"#ED7B84\"),\r\n\t * \"dataField\": \"valueY\"\r\n\t *});\r\n\t *```\r\n\t * ```Javacript\r\n\t * series.heatRules.push({\r\n\t * \"target\": series.columns.template,\r\n\t * \"property\": \"fill\",\r\n\t * \"min\": am4core.color(\"#F5DBCB\"),\r\n\t * \"max\": am4core.color(\"#ED7B84\"),\r\n\t * \"dataField\": \"valueY\"\r\n\t *});\r\n\t *```\r\n\t *```JSON\r\n\t *{\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * \"type\": \"ColumnSeries\",\r\n\t * \"heatRules\": [{\r\n\t * \"target\": \"columns.template\",\r\n\t * \"property\": \"fill\",\r\n\t * \"min\": \"#F5DBCB\",\r\n\t * \"max\": \"#ED7B84\",\r\n\t * \"dataField\": \"valueY\"\r\n\t * }]\r\n\t * }]\r\n\t *}\r\n\t *```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/series/#Heat_maps} for more about heat rules\r\n\t * @return Heat rules\r\n\t */\r\n\r\n\tpublic get heatRules(): List<IHeatRule> {\r\n\t\tif (!this._heatRules) {\r\n\t\t\tthis._heatRules = new List<IHeatRule>();\r\n\t\t\tthis._heatRules.events.on(\"inserted\", (event) => {\r\n\t\t\t\tlet heatRule = event.newValue;\r\n\t\t\t\tlet target = heatRule.target;\r\n\r\n\t\t\t\tif (target) {\r\n\t\t\t\t\tlet dataField = heatRule.dataField;\r\n\r\n\t\t\t\t\tif (!$type.hasValue(dataField)) {\r\n\t\t\t\t\t\tdataField = \"value\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet seriesDataItem = this.dataItem;\r\n\t\t\t\t\tlet property = heatRule.property;\r\n\r\n\t\t\t\t\tlet minValue = $type.toNumber(heatRule.minValue);\r\n\t\t\t\t\tlet maxValue = $type.toNumber(heatRule.maxValue);\r\n\r\n\t\t\t\t\tif (!$type.isNumber(minValue) && !$type.isNumber(maxValue)) {\r\n\t\t\t\t\t\tthis.dataItem.events.on(\"calculatedvaluechanged\", (event) => {\r\n\t\t\t\t\t\t\tif (event.property == dataField) {\r\n\t\t\t\t\t\t\t\t$iter.each(this.dataItems.iterator(), (dataItem) => {\r\n\t\t\t\t\t\t\t\t\tlet foundSprite = false;\r\n\t\t\t\t\t\t\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\t\t\tif (sprite.clonedFrom == target) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet anySprite = <any>sprite;\r\n\t\t\t\t\t\t\t\t\t\t\tanySprite[property] = anySprite[property];\r\n\t\t\t\t\t\t\t\t\t\t\tfoundSprite = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\tif (!foundSprite) {\r\n\t\t\t\t\t\t\t\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (sprite instanceof Container) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$iter.each(sprite.children.iterator(), (child) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (child.className == target.className) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet anyChild = <any>child;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tanyChild[property] = anyChild[property];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// giveup here\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (child instanceof Container) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tchild.deepInvalidate();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.dataItems.template.events.on(\"workingvaluechanged\", (event) => {\r\n\t\t\t\t\t\tif (event.property == dataField) {\r\n\t\t\t\t\t\t\tlet dataItem = event.target;\r\n\t\t\t\t\t\t\tlet foundSprite = false;\r\n\t\t\t\t\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\tif (sprite.clonedFrom == target) {\r\n\t\t\t\t\t\t\t\t\tlet anySprite = <any>sprite;\r\n\t\t\t\t\t\t\t\t\tanySprite[property] = anySprite[property];\r\n\t\t\t\t\t\t\t\t\tfoundSprite = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (!foundSprite) {\r\n\t\t\t\t\t\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\t\tif (sprite instanceof Container) {\r\n\t\t\t\t\t\t\t\t\t\t$iter.each(sprite.children.iterator(), (child) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (child.className == target.className) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet anyChild = <any>child;\r\n\t\t\t\t\t\t\t\t\t\t\t\tanyChild[property] = anyChild[property];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t// givup here\r\n\t\t\t\t\t\t\t\t\t\t\telse if (child instanceof Container) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tchild.deepInvalidate();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\r\n\r\n\t\t\t\t\ttarget.adapter.add(<any>property, (value, ruleTarget, property) => {\r\n\r\n\t\t\t\t\t\tlet minValue = $type.toNumber(heatRule.minValue);\r\n\t\t\t\t\t\tlet maxValue = $type.toNumber(heatRule.maxValue);\r\n\r\n\t\t\t\t\t\tlet min = heatRule.min;\r\n\t\t\t\t\t\tlet max = heatRule.max;\r\n\r\n\t\t\t\t\t\tif (ruleTarget instanceof Sprite) {\r\n\t\t\t\t\t\t\tlet anySprite = <any>ruleTarget;\r\n\t\t\t\t\t\t\tlet propertyField = anySprite.propertyFields[property];\r\n\t\t\t\t\t\t\tif (propertyField && ruleTarget.dataItem) {\r\n\t\t\t\t\t\t\t\tlet dataContext = <any>ruleTarget.dataItem.dataContext;\r\n\t\t\t\t\t\t\t\tif (dataContext && $type.hasValue(dataContext[propertyField])) {\r\n\t\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet dataItem: SeriesDataItem = <SeriesDataItem>ruleTarget.dataItem;\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(minValue)) {\r\n\t\t\t\t\t\t\tminValue = seriesDataItem.values[dataField].low;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!$type.isNumber(maxValue)) {\r\n\t\t\t\t\t\t\tmaxValue = seriesDataItem.values[dataField].high;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tlet fieldValues = dataItem.values[dataField];\r\n\t\t\t\t\t\t\tif (fieldValues) {\r\n\t\t\t\t\t\t\t\tlet workingValue = dataItem.getActualWorkingValue(dataField);\r\n\t\t\t\t\t\t\t\tif ($type.hasValue(min) && $type.hasValue(max) && $type.isNumber(minValue) && $type.isNumber(maxValue) && $type.isNumber(workingValue)) {\r\n\r\n\t\t\t\t\t\t\t\t\tlet percent:number;\r\n\t\t\t\t\t\t\t\t\tif(heatRule.logarithmic){\r\n\t\t\t\t\t\t\t\t\t\tpercent = (Math.log(workingValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E) / ((Math.log(maxValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E));\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tpercent = (workingValue - minValue) / (maxValue - minValue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif ($type.isNumber(workingValue) && !$type.isNumber(percent)) {\r\n\t\t\t\t\t\t\t\t\t\tpercent = 0.5;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// fixes problems if all values are the same\r\n\t\t\t\t\t\t\t\t\tif ($type.isNumber(min)) {\r\n\t\t\t\t\t\t\t\t\t\treturn min + (max - min) * percent;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (min instanceof Color) {\r\n\t\t\t\t\t\t\t\t\t\treturn new Color($colors.interpolate(min.rgb, max.rgb, percent));\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn this._heatRules;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tlet heatRules;\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up bullets\r\n\t\t\tif ($type.hasValue(config.bullets) && $type.isArray(config.bullets)) {\r\n\t\t\t\tfor (let i = 0, len = config.bullets.length; i < len; i++) {\r\n\t\t\t\t\tlet bullets = config.bullets[i];\r\n\t\t\t\t\tif (!$type.hasValue(bullets.type)) {\r\n\t\t\t\t\t\tbullets.type = \"Bullet\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Let's take heatRules out of the config, so that we can process\r\n\t\t\t// them later, when bullets are already there\r\n\t\t\tif ($type.hasValue(config.heatRules) && $type.isArray(config.heatRules)) {\r\n\t\t\t\theatRules = config.heatRules;\r\n\t\t\t\tdelete config.heatRules;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t\t// Process heat rules again, when all other elements are ready\r\n\t\tif (heatRules) {\r\n\t\t\tfor (let i = 0, len = heatRules.length; i < len; i++) {\r\n\t\t\t\tlet rule = heatRules[i];\r\n\r\n\t\t\t\t// Resolve target\r\n\t\t\t\tlet target: any = this;\r\n\t\t\t\tif ($type.hasValue(rule.target) && $type.isString(rule.target)) {\r\n\r\n\r\n\t\t\t\t\t// Check if we can find this element by id\r\n\t\t\t\t\tif (this.map.hasKey(rule.target)) {\r\n\t\t\t\t\t\ttarget = this.map.getKey(rule.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlet parts = rule.target.split(\".\");\r\n\t\t\t\t\t\tfor (let x = 0; x < parts.length; x++) {\r\n\t\t\t\t\t\t\tif (target instanceof List) {\r\n\t\t\t\t\t\t\t\tlet listitem = target.getIndex($type.toNumber(parts[x]));\r\n\t\t\t\t\t\t\t\tif (!listitem) {\r\n\t\t\t\t\t\t\t\t\ttarget = (<any>target)[parts[x]];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\ttarget = listitem;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\ttarget = target[parts[x]];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\trule.target = target;\r\n\r\n\t\t\t\t// Resolve colors and percents\r\n\t\t\t\tif ($type.hasValue(rule.min)) {\r\n\t\t\t\t\trule.min = this.maybeColorOrPercent(rule.min);\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.hasValue(rule.max)) {\r\n\t\t\t\t\trule.max = this.maybeColorOrPercent(rule.max);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsuper.processConfig({\r\n\t\t\t\theatRules: heatRules\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns visibility value\r\n\t * @ignore\r\n\t */\r\n\t/*\r\n\t\tprotected getVisibility(): boolean {\r\n\t\t\tlet hidden = this.getPropertyValue(\"hidden\");\r\n\t\t\tif (hidden) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn super.getVisibility();\r\n\t\t\t}\r\n\t\t}*/\r\n\r\n\t/**\r\n\t * This function is used to sort element's JSON config properties, so that\r\n\t * some properties that absolutely need to be processed last, can be put at\r\n\t * the end.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param a Element 1\r\n\t * @param b Element 2\r\n\t * @return Sorting number\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t// Must come last\r\n\t\telse if (a == \"heatRules\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"heatRules\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.configOrder(a, b);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets `visibility` property:\r\n\t *\r\n\t * * `true` - visible\r\n\t * * `false` - hidden\r\n\t *\r\n\t * @param value true - visible, false - hidden\r\n\t * @return Current visibility\r\n\t */\r\n\tpublic setVisibility(value: boolean) {\r\n\t\tsuper.setVisibility(value);\r\n\t\tthis.bulletsContainer.visible = value;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Series\"] = Series;\r\nregistry.registeredClasses[\"SeriesDataItem\"] = SeriesDataItem;","/**\r\n * Serial chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Chart, IChartProperties, IChartDataFields, IChartAdapters, IChartEvents, ChartDataItem } from \"../Chart\";\r\nimport { IListEvents, ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Series } from \"../series/Series\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { PatternSet } from \"../../core/utils/PatternSet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[SerialChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class SerialChartDataItem extends ChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: SerialChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SerialChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[SerialChart]].\r\n */\r\nexport interface ISerialChartDataFields extends IChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[SerialChart]]\r\n */\r\nexport interface ISerialChartProperties extends IChartProperties {\r\n\r\n\t/**\r\n\t * A set of colors to be used for chart elements, like Series, Slices, etc.\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * A set of patterns to use for fills, like Series, Slices, etc.\r\n\t *\r\n\t * @since 4.7.5\r\n\t */\r\n\tpatterns?: PatternSet;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[SerialChart]].\r\n */\r\nexport interface ISerialChartEvents extends IChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SerialChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISerialChartAdapters extends IChartAdapters, ISerialChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all series-based charts, like XY, Pie, etc.\r\n *\r\n * Is not useful on its own.\r\n *\r\n * @see {@link ISerialChartEvents} for a list of available Events\r\n * @see {@link ISerialChartAdapters} for a list of available Adapters\r\n */\r\nexport class SerialChart extends Chart {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: ISerialChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISerialChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISerialChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISerialChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: Series;\r\n\r\n\t/**\r\n\t * Holds a list of [[Series]] displayed on the chart.\r\n\t */\r\n\tprotected _series: ListTemplate<this[\"_seriesType\"]>\r\n\r\n\t/**\r\n\t * Holds the reference to the container actual series are drawn in.\r\n\t */\r\n\tpublic readonly seriesContainer: Container;\r\n\r\n\t/**\r\n\t * Holds a reference to the container series' bullets are drawn in.\r\n\t */\r\n\tpublic readonly bulletsContainer: Container;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"SerialChart\";\r\n\r\n\t\tthis.colors = new ColorSet();\r\n\r\n\t\tthis._usesData = false;\r\n\r\n\t\t// Create a container for series\r\n\t\tlet seriesContainer: Container = this.chartContainer.createChild(Container);\r\n\t\tseriesContainer.shouldClone = false;\r\n\t\tseriesContainer.width = percent(100);\r\n\t\tseriesContainer.height = percent(100);\r\n\t\tseriesContainer.isMeasured = false;\r\n\t\tseriesContainer.layout = \"none\";\r\n\t\tseriesContainer.zIndex = 2;\r\n\t\tthis.seriesContainer = seriesContainer;\r\n\r\n\t\t// Create a container for bullets\r\n\t\tlet bulletsContainer: Container = this.chartContainer.createChild(Container);\r\n\t\tbulletsContainer.shouldClone = false;\r\n\t\tbulletsContainer.width = percent(100);\r\n\t\tbulletsContainer.height = percent(100);\r\n\t\tbulletsContainer.isMeasured = false;\r\n\t\tbulletsContainer.zIndex = 3;\r\n\t\tbulletsContainer.layout = \"none\";\r\n\t\tthis.bulletsContainer = bulletsContainer;\r\n\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tpublic dispose(): void {\r\n\t\tsuper.dispose();\r\n\r\n\t\tif (this.colors) {\r\n\t\t\tthis.colors.dispose();\r\n\t\t}\r\n\r\n\t\tif (this.patterns) {\r\n\t\t\tthis.patterns.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Serial chart\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A list of chart's series.\r\n\t *\r\n\t * @return Chart's series\r\n\t */\r\n\tpublic get series(): ListTemplate<this[\"_seriesType\"]> {\r\n\t\tif (!this._series) {\r\n\t\t\tthis._series = new ListTemplate<this[\"_seriesType\"]>(this.createSeries());\r\n\t\t\tthis._series.events.on(\"inserted\", this.handleSeriesAdded, this, false);\r\n\t\t\tthis._series.events.on(\"removed\", this.handleSeriesRemoved, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._series, false));\r\n\t\t\tthis._disposers.push(this._series.template);\r\n\t\t}\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\tprotected handleSeriesRemoved(event: IListEvents<Series>[\"removed\"]) {\r\n\t\tlet series = event.oldValue;\r\n\t\tthis.dataUsers.removeValue(series);\r\n\t\tthis.dataUsers.each((dataUser) => {\r\n\t\t\tdataUser.invalidateDataItems();\r\n\t\t})\r\n\r\n\t\tif (series.autoDispose) {\r\n\t\t\tseries.dispose();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tseries.parent = undefined;\r\n\t\t\tseries.bulletsContainer.parent = undefined;\r\n\t\t}\r\n\t\t//this.feedLegend();\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\t\t\tlet dataItems = this.legend.dataItems;\r\n\t\t\tfor (let i = dataItems.length - 1; i >= 0; i--) {\r\n\t\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\t\t\t\tif (dataItem && dataItem.dataContext == series) {\r\n\t\t\t\t\tlegend.dataItems.remove(dataItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = legend.data.length - 1; i >= 0; i--) {\r\n\t\t\t\tlet di = legend.data[i];\r\n\t\t\t\tif (di && di == series) {\r\n\t\t\t\t\t$array.remove(legend.data, di);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a new [[Series]] object with required parameters when it is\r\n\t * added to the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic handleSeriesAdded(event: IListEvents<Series>[\"inserted\"]): void {\r\n\t\tlet series: Series = event.newValue;\r\n\t\tif (series.isDisposed()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tseries.chart = this;\r\n\t\tseries.parent = this.seriesContainer;\r\n\r\n\t\tseries.bulletsContainer.parent = this.bulletsContainer;\r\n\r\n\t\tthis._dataUsers.moveValue(series);\r\n\t\tseries.addDisposer(new Disposer(() => {\r\n\t\t\tthis.dataUsers.removeValue(series);\r\n\t\t}))\r\n\r\n\t\tthis.handleSeriesAdded2(series);\r\n\r\n\t\tif (!series.hiddenInLegend) {\r\n\t\t\tif (this.legend) {\r\n\t\t\t\tthis.legend.addData(series);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleSeriesAdded2(series: Series) {\r\n\t\tif (!this.dataInvalid) {\r\n\t\t\tthis._disposers.push(\r\n\t\t\t\t// on exit only as data is usually passed after push\r\n\t\t\t\tregistry.events.once(\"exitframe\", () => {\r\n\t\t\t\t\tif (!series.data || series.data.length == 0) {\r\n\t\t\t\t\t\tseries.data = this.data;\r\n\t\t\t\t\t\tif (series.showOnInit) {\r\n\t\t\t\t\t\t\tseries.reinit()\r\n\t\t\t\t\t\t\tseries.setPropertyValue(\"showOnInit\", false);\r\n\t\t\t\t\t\t\tseries.showOnInit = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tseries.events.once(\"datavalidated\", () => {\r\n\t\t\t\t\t\t\tif (series.data == this.data) {\r\n\t\t\t\t\t\t\t\t(<any>series)._data = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t * @ignore\r\n\t */\r\n\tpublic feedLegend(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\t\t\tlet legendData: Array<this[\"_seriesType\"]> = [];\r\n\r\n\t\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\t\tif (!series.hiddenInLegend) {\r\n\t\t\t\t\tlegendData.push(series);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tlegend.dataFields.name = \"name\";\r\n\r\n\t\t\tlegend.data = legendData;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new Series, suitable for this chart type.\r\n\t *\r\n\t * @return New series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new Series();\r\n\t}\r\n\r\n\t/**\r\n\t * Chart's color list.\r\n\t *\r\n\t * This list can be used by a number of serial items, like applying a new\r\n\t * color for each Series added. Or, applying a new color for each slice\r\n\t * of a Pie chart.\r\n\t *\r\n\t * Please see [[ColorSet]] for information on how you can set up to generate\r\n\t * unique colors.\r\n\t *\r\n\t * A theme you are using may override default pre-defined colors.\r\n\t *\r\n\t * @param value Color list\r\n\t */\r\n\tpublic set colors(value: ColorSet) {\r\n\t\tthis.setPropertyValue(\"colors\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color list\r\n\t */\r\n\tpublic get colors(): ColorSet {\r\n\t\treturn this.getPropertyValue(\"colors\");\r\n\t}\r\n\r\n\t/**\r\n\t * A [[PatternSet]] to use when creating patterned fills for slices.\r\n\t *\r\n\t * @since 4.7.5\r\n\t * @param value Pattern set\r\n\t */\r\n\tpublic set patterns(value: PatternSet) {\r\n\t\tthis.setPropertyValue(\"patterns\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Pattern set\r\n\t */\r\n\tpublic get patterns(): PatternSet {\r\n\t\treturn this.getPropertyValue(\"patterns\");\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[SerialChart]].\r\n\t *\r\n\t * @param source Source SerialChart\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.series.copyFrom(source.series);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Hides the chart instantly and then shows it. If defaultState.transitionDuration > 0, this will result an animation in which properties of hidden state will animate to properties of visible state.\r\n\t */\r\n\tpublic appear() {\r\n\t\tsuper.appear();\r\n\r\n\t\tthis.series.each((series) => {\r\n\t\t\tif (series.showOnInit && series.inited) {\r\n\t\t\t\tseries.appear();\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SerialChart\"] = SerialChart;\r\n","/**\r\n * Axis break module\r\n */\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Axis, AxisDataItem } from \"./Axis\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { IWavedShape } from \"../../core/defs/IWavedShape\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisBreak]].\r\n */\r\nexport interface IAxisBreakProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * A size of the break relative to the actual size of the scope break spans.\r\n\t *\r\n\t * For example, if `breakSize = 0.1` and unbroken scope of values it spans\r\n\t * would be 100 pixels, the break would be 10 pixels wide.\r\n\t *\r\n\t * 0 means the break will completely collapse and hide the values.\r\n\t * 1 means break would be not collapse at all, which would make it\r\n\t * effectively useless.\r\n\t *\r\n\t * @default 0.01\r\n\t */\r\n\tbreakSize?: number;\r\n\r\n\t/**\r\n\t * Starting value.\r\n\t */\r\n\tstartValue?: number;\r\n\r\n\t/**\r\n\t * End value.\r\n\t */\r\n\tendValue?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisBreak]].\r\n */\r\nexport interface IAxisBreakEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines [[AxisBreak]] adapters.\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisBreakAdapters extends IContainerAdapters, IAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base class to define \"breaks\" on axes.\r\n *\r\n * @see {@link IAxisBreakEvents} for a list of available events\r\n * @see {@link IAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class AxisBreak extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: Axis;\r\n\r\n\t/**\r\n\t * Reference to parent Axis.\r\n\t */\r\n\tprotected _axis = new MutableValueDisposer<this[\"_axisType\"]>();\r\n\r\n\t/**\r\n\t * A reference to starting line element.\r\n\t */\r\n\tprotected _startLine: IWavedShape;\r\n\r\n\t/**\r\n\t * A reference to ending line element.\r\n\t */\r\n\tprotected _endLine: IWavedShape;\r\n\r\n\t/**\r\n\t * A reference to fill shape.\r\n\t */\r\n\tprotected _fillShape: IWavedShape;\r\n\r\n\t/**\r\n\t * A list of axis data items which fall within this break.\r\n\t */\r\n\tpublic dataItems: List<AxisDataItem> = new List<AxisDataItem>();\r\n\r\n\t/**\r\n\t * Adjusted start value.\r\n\t *\r\n\t * Start and end values need to be adjusted so that they do not overlap with\r\n\t * adjacent breaks.\r\n\t */\r\n\tpublic adjustedStartValue: number;\r\n\r\n\t/**\r\n\t * Adjusted end value.\r\n\t *\r\n\t * Start and end values need to be adjusted so that they do not overlap with\r\n\t * adjacent breaks.\r\n\t */\r\n\tpublic adjustedEndValue: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisBreak\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.breakSize = 0.01;\r\n\t\tthis.marginLeft = -5;\r\n\t\tthis.marginRight = -5;\r\n\t\tthis.marginTop = -5;\r\n\t\tthis.marginBottom = -5;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create elements\r\n\t\t// (these won't be used actually, just for setting properties)\r\n\t\tlet fillShape = new WavedLine();\r\n\t\tfillShape.fill = interfaceColors.getFor(\"background\");\r\n\t\tfillShape.stroke = color();\r\n\t\tfillShape.fillOpacity = 0.9;\r\n\t\tfillShape.zIndex = 0;\r\n\t\tthis._fillShape = fillShape;\r\n\r\n\t\tlet startLine = new WavedLine();\r\n\t\tstartLine.fill = color();\r\n\t\tstartLine.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tstartLine.strokeOpacity = 0.3;\r\n\t\tstartLine.zIndex = 1;\r\n\t\tthis._startLine = startLine;\r\n\r\n\t\tlet endLine = new WavedLine();\r\n\t\tendLine.fill = color();\r\n\t\tendLine.stroke = color(\"#000000\");// interfaceColors.getFor(\"grid\");\r\n\t\tendLine.strokeOpacity = 0.3;\r\n\t\tendLine.zIndex = 2;\r\n\t\tthis._endLine = endLine;\r\n\r\n\t\tthis._disposers.push(this._axis);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tpublic dispose(): void {\r\n\t\tsuper.dispose();\r\n\r\n\t\tif (this._fillShape) {\r\n\t\t\tthis._fillShape.dispose();\r\n\t\t}\r\n\r\n\t\tif (this._startLine) {\r\n\t\t\tthis._startLine.dispose();\r\n\t\t}\r\n\r\n\t\tif (this._endLine) {\r\n\t\t\tthis._endLine.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An element used for the starting line of the break.\r\n\t *\r\n\t * @param sprite Element\r\n\t */\r\n\tpublic set startLine(sprite: IWavedShape) {\r\n\t\tif (this._startLine) {\r\n\t\t\tthis._startLine.dispose();\r\n\t\t}\r\n\t\tthis._startLine = sprite;\r\n\t\tthis.addBreakSprite(sprite);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element\r\n\t */\r\n\tpublic get startLine(): IWavedShape {\r\n\t\treturn this._startLine;\r\n\t}\r\n\r\n\t/**\r\n\t * An element used for the end line of the break.\r\n\t *\r\n\t * @param sprite Element\r\n\t */\r\n\tpublic set endLine(sprite: IWavedShape) {\r\n\t\tif (this._endLine) {\r\n\t\t\tthis._endLine.dispose();\r\n\t\t}\r\n\t\tthis._endLine = sprite;\r\n\t\tthis.addBreakSprite(sprite);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element\r\n\t */\r\n\tpublic get endLine(): IWavedShape {\r\n\t\treturn this._endLine;\r\n\t}\r\n\r\n\t/**\r\n\t * An element used for fill of the break.\r\n\t *\r\n\t * @param sprite Element\r\n\t */\r\n\tpublic set fillShape(sprite: IWavedShape) {\r\n\t\tif (this._fillShape) {\r\n\t\t\tthis._fillShape.dispose();\r\n\t\t}\r\n\r\n\t\tthis._fillShape = sprite;\r\n\t\tthis.addBreakSprite(sprite);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Element\r\n\t */\r\n\tpublic get fillShape(): IWavedShape {\r\n\t\treturn this._fillShape;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a break element (e.g. lines, fill) to the break, which is\r\n\t * [[Container]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param sprite Element to add\r\n\t */\r\n\tpublic addBreakSprite(sprite: IWavedShape) {\r\n\t\tsprite.parent = this;\r\n\t\tsprite.isMeasured = false;\r\n\t\tthis._disposers.push(sprite);\r\n\t}\r\n\r\n\t/**\r\n\t * An Axis this Break is associated with.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set axis(axis: this[\"_axisType\"]) {\r\n\t\tif (this._axis.get() !== axis) {\r\n\t\t\tthis._axis.set(axis, axis.renderer.gridContainer.events.on(\"transformed\", this.invalidate, this, false));\r\n\t\t\taxis.renderer.createBreakSprites(this);\r\n\r\n\t\t\t// this can't go to copyFrom, as axis is set later\r\n\t\t\tlet breakTemplate: AxisBreak = axis.axisBreaks.template;\r\n\r\n\t\t\tthis.startLine.copyFrom(breakTemplate.startLine);\r\n\t\t\tthis.endLine.copyFrom(breakTemplate.endLine);\r\n\t\t\tthis.fillShape.copyFrom(breakTemplate.fillShape);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get axis(): this[\"_axisType\"] {\r\n\t\treturn this._axis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A size of the break relative to the actual size of the scope break spans.\r\n\t *\r\n\t * For example, if `breakSize = 0.1` and unbroken scope of values it spans\r\n\t * would be 100 pixels, the break would be 10 pixels wide.\r\n\t *\r\n\t * 0 means the break will completely collapse and hide the values.\r\n\t * 1 means break would be not collapse at all, which would make it\r\n\t * effectively useless.\r\n\t *\r\n\t * @default 0.01\r\n\t * @param value Relative axis break\r\n\t */\r\n\tpublic set breakSize(value: number) {\r\n\t\tif (this.setPropertyValue(\"breakSize\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Relative axis break\r\n\t */\r\n\tpublic get breakSize(): number {\r\n\t\treturn this.getPropertyValue(\"breakSize\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns pixel coordinates of axis break's start.\r\n\t *\r\n\t * @return Start point\r\n\t */\r\n\tpublic get startPoint(): IPoint {\r\n\t\tlet renderer: AxisRenderer = this.axis.renderer;\r\n\t\tif (renderer) {\r\n\t\t\treturn renderer.positionToPoint(this.startPosition);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns pixel coordinates of axis break's end.\r\n\t *\r\n\t * @return End point\r\n\t */\r\n\tpublic get endPoint(): IPoint {\r\n\t\tlet renderer: AxisRenderer = this.axis.renderer;\r\n\t\tif (renderer) {\r\n\t\t\treturn renderer.positionToPoint(this.endPosition);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a relative position at which axis break starts.\r\n\t *\r\n\t * This is a calculated position, meaning it shows relative position of the\r\n\t * break after break is applied.\r\n\t *\r\n\t * @return Start position\r\n\t */\r\n\tpublic get startPosition(): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a relative position at which axis break ends.\r\n\t *\r\n\t * This is a calculated position, meaning it shows relative position of the\r\n\t * break after break is applied.\r\n\t *\r\n\t * @return End position\r\n\t */\r\n\tpublic get endPosition(): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the axis break.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (this.axis) {\r\n\t\t\tlet renderer: AxisRenderer = this.axis.renderer;\r\n\t\t\trenderer.updateBreakElement(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A starting value for the break.\r\n\t *\r\n\t * @param value Starting value\r\n\t */\r\n\tpublic set startValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"startValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Starting value\r\n\t */\r\n\tpublic get startValue(): number {\r\n\t\treturn this.getPropertyValue(\"startValue\");\r\n\t}\r\n\r\n\t/**\r\n\t * An end value for the break.\r\n\t *\r\n\t * @param value End value\r\n\t */\r\n\tpublic set endValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"endValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End value\r\n\t */\r\n\tpublic get endValue(): number {\r\n\t\treturn this.getPropertyValue(\"endValue\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisBreak\"] = AxisBreak;\r\n","/**\r\n * Base class for all Axis\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component, IComponentProperties, IComponentDataFields, IComponentAdapters, IComponentEvents } from \"../../core/Component\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { DataItem, IDataItemAdapters } from \"../../core/DataItem\";\r\n\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\n\r\n// Charts\r\nimport { Chart } from \"../Chart\";\r\n\r\n// Series\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\n\r\n// Elements\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\nimport { Tooltip, PointerOrientation } from \"../../core/elements/Tooltip\";\r\nimport { PointedRectangle } from \"../../core/elements/PointedRectangle\";\r\n\r\n// Types\r\nimport { IRange } from \"../../core/defs/IRange\";\r\n\r\n// Utils\r\nimport { Ordering } from \"../../core/utils/Order\";\r\nimport { SortedListTemplate } from \"../../core/utils/SortedList\";\r\nimport { List, ListTemplate, IListEvents, ListDisposer } from \"../../core/utils/List\";\r\nimport { IDisposer, Disposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[Axis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class AxisDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * Reference to a related [[Grid]] element.\r\n\t */\r\n\tprotected _grid: Grid;\r\n\r\n\t/**\r\n\t * Reference to a related [[AxisTick]] element.\r\n\t */\r\n\tprotected _tick: AxisTick;\r\n\r\n\t/**\r\n\t * Reference to a related [[AxisLabel]] element.\r\n\t */\r\n\tprotected _label: AxisLabel;\r\n\r\n\t/**\r\n\t * Reference to a related [[AxisFill]] element.\r\n\t */\r\n\tprotected _axisFill: AxisFill;\r\n\r\n\t/**\r\n\t * A mask for axis. We're using [[AxisFill]] since the mask, basically, has\r\n\t * the same shape and features.\r\n\t */\r\n\tprotected _mask: AxisFill;\r\n\r\n\t/**\r\n\t * Container which might be used to hold some extra items, like series\r\n\t * segments when data item is used for axis range.\r\n\t */\r\n\tprotected _contents: Container;\r\n\r\n\t/**\r\n\t * A text to be used as label for this data item.\r\n\t */\r\n\tprotected _text: string;\r\n\r\n\t/**\r\n\t * Holds a physical position of the grid line associated with this data item,\r\n\t * so that it can be used when measuring distance between points, and hiding\r\n\t * some of them so they don't overlap.\r\n\t */\r\n\tpublic point: IPoint;\r\n\r\n\t/**\r\n\t * If the data item is within an existing [[AxisBreak]] this property will\r\n\t * hold a reference to that [[AxisBreak]].\r\n\t */\r\n\tpublic _axisBreak: AxisBreak;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: Axis;\r\n\r\n\t/**\r\n\t * Used to distinguish from real data points and those data items that are\r\n\t * used for ranges, like `series.axisRanges` or `axis.axisRanges`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic isRange: boolean;\r\n\r\n\t/**\r\n\t * relative position of data item on axis\r\n\t */\r\n\tpublic position: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _bullet: Sprite;\r\n\r\n\t/**\r\n\t * Allows hiding axis item (tick, label, grid) if it is closer to axis\r\n\t * beginning than this relative position (0-1).\r\n\t *\r\n\t * For axis labels it overrides `minLabelPosition` if set.\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Hide all ticks and labels closer than 20% to axis beginning.\r\n\t * axis.renderer.ticks.template.minPosition = 0.2;\r\n\t * axis.renderer.labels.template.minPosition = 0.2;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * // Hide all ticks and labels closer than 20% to axis beginning.\r\n\t * axis.renderer.ticks.template.minPosition = 0.2;\r\n\t * axis.renderer.labels.template.minPosition = 0.2;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * // Hide all ticks and labels closer than 20% to axis beginning.\r\n\t * \"renderer\": {\r\n\t * \"ticks\": {\r\n\t * \"minPosition\": 0.2\r\n\t * },\r\n\t * \"labels\": {\r\n\t * \"minPosition\": 0.2\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t * \r\n\t * @since 4.5.11\r\n\t */\r\n\tpublic minPosition?: number;\r\n\r\n\t/**\r\n\t * Allows hiding axis item (tick, label, grid) if it is closer to axis\r\n\t * end than this relative position (0-1).\r\n\t *\r\n\t * For axis labels it overrides `maxLabelPosition` if set.\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Hide all ticks and labels closer than 20% to axis end.\r\n\t * axis.renderer.ticks.template.minPosition = 0.8;\r\n\t * axis.renderer.labels.template.minPosition = 0.8;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * // Hide all ticks and labels closer than 20% to axis end.\r\n\t * axis.renderer.ticks.template.minPosition = 0.8;\r\n\t * axis.renderer.labels.template.minPosition = 0.8;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * // Hide all ticks and labels closer than 20% to axis end.\r\n\t * \"renderer\": {\r\n\t * \"ticks\": {\r\n\t * \"minPosition\": 0.8\r\n\t * },\r\n\t * \"labels\": {\r\n\t * \"minPosition\": 0.8\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t * \r\n\t * @since 4.5.11\r\n\t */\r\n\tpublic maxPosition?: number;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Actual index of the axis data item.\r\n\t * \r\n\t * @since 4.7.8\r\n\t */\r\n\tpublic itemIndex: number;\r\n\r\n\t/**\r\n\t * A [[Grid]] element associated with this data item.\r\n\t *\r\n\t * If there is no grid element associated with data item, a new one is\r\n\t * created and returned.\r\n\t *\r\n\t * @param grid Grid element\r\n\t */\r\n\tpublic set grid(grid: Grid) {\r\n\t\tif (this._grid && this._grid != grid) {\r\n\t\t\t$array.remove(this.sprites, this._grid);\r\n\t\t\tthis._grid.dataItem = undefined;\r\n\t\t}\r\n\r\n\t\tif (grid) {\r\n\t\t\tif (grid.dataItem && grid.dataItem != this) {\r\n\t\t\t\t$array.remove(grid.dataItem.sprites, grid);\r\n\t\t\t\tgrid.dataItem.grid = undefined;\r\n\t\t\t}\r\n\t\t\tthis.addSprite(grid);\r\n\t\t}\r\n\t\tthis._grid = grid;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Grid element\r\n\t */\r\n\tpublic get grid(): Grid {\r\n\t\tif (!this._grid) {\r\n\t\t\tlet component = this.component;\r\n\t\t\tif (component) {\r\n\r\n\t\t\t\tlet template: Grid;\r\n\t\t\t\tlet grid: Grid;\r\n\r\n\t\t\t\tif (this.isRange) {\r\n\t\t\t\t\ttemplate = component.axisRanges.template.grid;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tgrid = template.clone();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttemplate = component.renderer.grid.template;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tgrid = component.renderer.grid.create();\r\n\t\t\t\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t\t\t\tcomponent.renderer.grid.removeValue(grid);\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.grid = grid;\r\n\t\t\t\tgrid.shouldClone = false;\r\n\t\t\t\tthis._disposers.push(grid);\r\n\t\t\t\tgrid.axis = this.component;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._grid;\r\n\t}\r\n\r\n\t/**\r\n\t * An [[AxisTick]] element associated with this data item.\r\n\t *\r\n\t * If there is no tick element associated with data item, a new one is\r\n\t * created and returned.\r\n\t *\r\n\t * @param tick Tick element\r\n\t */\r\n\tpublic set tick(tick: AxisTick) {\r\n\t\tif (this._tick && this._tick != tick) {\r\n\t\t\t$array.remove(this.sprites, this._tick);\r\n\t\t\tthis._tick.dataItem = undefined;\r\n\t\t}\r\n\r\n\t\tif (tick) {\r\n\t\t\tif (tick.dataItem && tick.dataItem != this) {\r\n\t\t\t\t$array.remove(tick.dataItem.sprites, tick);\r\n\t\t\t\ttick.dataItem.tick = undefined;\r\n\t\t\t}\r\n\t\t\tthis.addSprite(tick);\r\n\t\t}\r\n\t\tthis._tick = tick;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tick element\r\n\t */\r\n\tpublic get tick(): AxisTick {\r\n\t\tif (!this._tick) {\r\n\t\t\tlet component = this.component;\r\n\t\t\tif (component) {\r\n\r\n\t\t\t\tlet template: AxisTick;\r\n\t\t\t\tlet tick: AxisTick;\r\n\r\n\t\t\t\tif (this.isRange) {\r\n\t\t\t\t\ttemplate = component.axisRanges.template.tick;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttick = template.clone();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttemplate = component.renderer.ticks.template;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttick = component.renderer.ticks.create();\r\n\t\t\t\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t\t\t\tcomponent.renderer.ticks.removeValue(tick);\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.tick = tick;\r\n\t\t\t\ttick.axis = this.component;\r\n\t\t\t\ttick.shouldClone = false;\r\n\t\t\t\tthis._disposers.push(tick);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._tick;\r\n\t}\r\n\r\n\t/**\r\n\t * An [[AxisLabel]] element associated with this data item.\r\n\t *\r\n\t * If there is no label element associated with data item, a new one is\r\n\t * created and returned.\r\n\t *\r\n\t * @param label Label element\r\n\t */\r\n\tpublic set label(label: AxisLabel) {\r\n\t\tif (this._label && this._label != label) {\r\n\t\t\t$array.remove(this.sprites, this._label);\r\n\t\t\tthis._label.dataItem = undefined;\r\n\t\t}\r\n\r\n\t\tif (label) {\r\n\t\t\tif (label.dataItem && label.dataItem != this) {\r\n\t\t\t\t$array.remove(label.dataItem.sprites, label);\r\n\t\t\t\tlabel.dataItem.label = undefined;\r\n\t\t\t}\r\n\t\t\tthis.addSprite(label);\r\n\t\t}\r\n\t\tthis._label = label;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Label element\r\n\t */\r\n\tpublic get label(): AxisLabel {\r\n\t\tif (!this._label) {\r\n\t\t\tlet component = this.component;\r\n\t\t\tif (component) {\r\n\r\n\t\t\t\tlet template: AxisLabel;\r\n\t\t\t\tlet label: AxisLabel;\r\n\r\n\t\t\t\tif (this.isRange) {\r\n\t\t\t\t\ttemplate = component.axisRanges.template.label;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlabel = template.clone();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttemplate = component.renderer.labels.template;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlabel = component.renderer.labels.create();\r\n\t\t\t\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t\t\t\tcomponent.renderer.labels.removeValue(label);\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._disposers.push(label);\r\n\t\t\t\tthis.label = label;\r\n\t\t\t\tlabel.shouldClone = false;\r\n\t\t\t\tlabel.axis = this.component;\r\n\t\t\t\tlabel.virtualParent = component;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n\t * An [[AxisFill]] associated element with this data item.\r\n\t *\r\n\t * If there is no fill element associated with data item, a new one is\r\n\t * created and returned.\r\n\t *\r\n\t * @param label Label element\r\n\t */\r\n\tpublic set axisFill(axisFill: AxisFill) {\r\n\t\tif (this._axisFill && this._axisFill != axisFill) {\r\n\t\t\t$array.remove(this.sprites, this._axisFill);\r\n\t\t\tthis._axisFill.dataItem = undefined;\r\n\t\t}\r\n\r\n\t\tif (axisFill) {\r\n\t\t\tif (axisFill.dataItem && axisFill.dataItem != this) {\r\n\t\t\t\t$array.remove(axisFill.dataItem.sprites, axisFill);\r\n\t\t\t\taxisFill.dataItem.axisFill = undefined;\r\n\t\t\t}\r\n\t\t\taxisFill.axis = this.component;\r\n\t\t\tthis.addSprite(axisFill);\r\n\t\t}\r\n\t\tthis._axisFill = axisFill;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Label element\r\n\t */\r\n\tpublic get axisFill(): AxisFill {\r\n\t\tif (!this._axisFill) {\r\n\t\t\tlet component = this.component;\r\n\t\t\tif (component) {\r\n\r\n\t\t\t\tlet template: AxisFill;\r\n\t\t\t\tlet axisFill: AxisFill;\r\n\r\n\t\t\t\tif (this.isRange) {\r\n\t\t\t\t\ttemplate = component.axisRanges.template.axisFill;\r\n\t\t\t\t\tif (!this.isTemplate && template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\taxisFill = template.clone();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttemplate = component.renderer.axisFills.template;\r\n\t\t\t\t\tif (template.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\taxisFill = component.renderer.axisFills.create();\r\n\t\t\t\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t\t\t\tcomponent.renderer.axisFills.removeValue(axisFill);\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.axisFill = axisFill;\r\n\t\t\t\taxisFill.shouldClone = false;\r\n\t\t\t\tthis._disposers.push(axisFill);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._axisFill;\r\n\t}\r\n\r\n\t/**\r\n\t * Text to be used as data item's label.\r\n\t *\r\n\t * @param text Text label\r\n\t */\r\n\tpublic set text(text: string) {\r\n\t\tthis._text = text;\r\n\t\tif (this._label) { // do not use getter, it will create unwanted instances!\r\n\t\t\tthis._label.text = text;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Text label\r\n\t */\r\n\tpublic get text(): string {\r\n\t\treturn this._text;\r\n\t}\r\n\r\n\t/**\r\n\t * Data item's mask.\r\n\t *\r\n\t * @return Mask\r\n\t */\r\n\tpublic get mask(): AxisFill {\r\n\t\treturn this._mask;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a [[Container]] to place all visual elements, related to data item\r\n\t * in.\r\n\t *\r\n\t * If there is no Container, a new one is created.\r\n\t *\r\n\t * @return Contents container\r\n\t */\r\n\tpublic get contents(): Container {\r\n\t\tif (!this._contents) {\r\n\t\t\tlet contents = new Container();\r\n\t\t\tthis.addSprite(contents);\r\n\t\t\tcontents.isMeasured = false;\r\n\t\t\tthis._contents = contents;\r\n\r\n\t\t\tlet component = this.component;\r\n\t\t\tif (component) {\r\n\t\t\t\tlet mask: AxisFill = component.renderer.createFill(this.component);\r\n\t\t\t\tmask.disabled = false;\r\n\t\t\t\tmask.axis = component;\r\n\t\t\t\tthis.addSprite(mask);\r\n\t\t\t\tthis._mask = mask;\r\n\t\t\t\tcontents.mask = mask;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._contents;\r\n\t}\r\n\r\n\t/**\r\n\t * An [[AxisBreak]] this data item falls within.\r\n\t *\r\n\t * @param axisBreak Axis break\r\n\t */\r\n\tpublic set axisBreak(axisBreak: this[\"_axisBreak\"]) {\r\n\t\tif (this._axisBreak) {\r\n\t\t\tthis._axisBreak.dataItems.removeValue(this);\r\n\t\t}\r\n\t\tif (axisBreak) {\r\n\t\t\taxisBreak.dataItems.push(this);\r\n\t\t}\r\n\t\tthis._axisBreak = axisBreak;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis break\r\n\t */\r\n\tpublic get axisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn this._axisBreak;\r\n\t}\r\n\r\n\t/**\r\n\t * Re-draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.validateDataElement(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Appends data item's elements to the parent [[Container]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic appendChildren() {\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.appendDataItem(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Ordering function used in JSON setup.\r\n\t *\r\n\t * @param a Item A\r\n\t * @param b Item B\r\n\t * @return Order\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\telse if (a == \"language\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (b == \"language\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (a == \"component\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (b == \"component\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if data item has particular property set.\r\n\t *\r\n\t * @param prop Property name\r\n\t * @return Property set?\r\n\t */\r\n\tprotected hasProperty(prop: string): boolean {\r\n\t\treturn prop == \"component\" ? true : super.hasProperty(prop);\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[AxisDataItem]].\r\n\t *\r\n\t * @param source Source AxisDataItem\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.text = source.text;\r\n\t\tif (source.bullet) {\r\n\t\t\tthis.bullet = source.bullet.clone();\r\n\t\t}\r\n\r\n\t\tthis.minPosition = source.minPosition;\r\n\t\tthis.maxPosition = source.maxPosition;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets visibility of the Data Item.\r\n\t *\r\n\t * @param value Data Item\r\n\t */\r\n\tpublic setVisibility(value: boolean, noChangeValues?: boolean): void {\r\n\t\tsuper.setVisibility(value, noChangeValues);\r\n\t\tif (this._contents) {\r\n\t\t\tthis._contents.visible = value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set it to an instance of any [[Sprite]]. It will be displayed as an axis\r\n\t * bullet in the middle of the cell, or specific value.\r\n\t *\r\n\t * If you need position bullet relatively to the cell, use [[AxisBullet]]\r\n\t * instead. It has a `location` property which can be used to indicate\r\n\t * precise relative location within cell/range.\r\n\t *\r\n\t * Also, [[AxisBullet]] is a [[Container]] so you can push any other element\r\n\t * into it.\r\n\t *\r\n\t * NOTE: `location` is relative to the parent axis range's scope, i.e.\r\n\t * between its `date` and `endDate` for [[DateAxis]], or `value`/`endValue`\r\n\t * ([[ValueAxis]]), or `category`/`endCategory` ([[categoryAxis]]).\r\n\t * \r\n\t * ```TypeScript\r\n\t * let range = dateAxis.axisRanges.create();\r\n\t * range.date = new Date(2018, 0, 5);\r\n\t * \r\n\t * let flag = new am4plugins_bullets.FlagBullet();\r\n\t * flag.label.text = \"Hello\";\r\n\t *\r\n\t * range.bullet = flag;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * var range = dateAxis.axisRanges.create();\r\n\t * range.date = new Date(2018, 0, 5);\r\n\t * \r\n\t * var flag = new am4plugins_bullets.FlagBullet();\r\n\t * flag.label.text = \"Hello\";\r\n\t *\r\n\t * range.bullet = flag;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * // ...\r\n\t * \"axisRanges\": [{\r\n\t * \"date\": new Date(2018, 0, 5),\r\n\t * \"bullet: {\r\n\t * \"type\": \"FlagBullet\",\r\n\t * \"label\": {\r\n\t * \"text\": \"Hello\"\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @since 4.5.9\r\n\t * @param value Bullet\r\n\t */\r\n\tpublic set bullet(value: Sprite) {\r\n\t\tif (this._bullet && this._bullet != value) {\r\n\t\t\t$array.remove(this.sprites, this._bullet);\r\n\t\t\tthis._bullet.dataItem = undefined;\r\n\t\t}\r\n\r\n\t\tthis._bullet = value;\r\n\t\tif (value) {\r\n\t\t\tthis.addSprite(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Bullet\r\n\t */\r\n\tpublic get bullet(): Sprite {\r\n\t\treturn this._bullet;\r\n\t}\r\n\r\n\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[AxisDataItem]]\r\n * Includes both the [[DataItemAdapter]] definitions and properties\r\n * @see {@link DataItemAdapter}\r\n */\r\nexport interface IAxisDataItemAdapters extends IDataItemAdapters {\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines named positions for data item's location within [[Axis]].\r\n */\r\nexport enum AxisItemLocation {\r\n\tStart = 0,\r\n\tMiddle = 0.5,\r\n\tEnd = 1\r\n}\r\n\r\n/**\r\n * Defines data fields for [[Axis]].\r\n */\r\nexport interface IAxisDataFields extends IComponentDataFields { }\r\n\r\n/**\r\n * Defines properties for [[Axis]].\r\n */\r\nexport interface IAxisProperties extends IComponentProperties {\r\n\r\n\t/**\r\n\t * Axis start location.\r\n\t *\r\n\t * * 0 - None of the first cell is shown. (don't do that)\r\n\t * * 0.5 - Half of the first cell is shown.\r\n\t * * 1 - Full first cell is shown.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tstartLocation?: number;\r\n\r\n\r\n\t/**\r\n\t * Axis end location.\r\n\t *\r\n\t * * 0 - None of the last cell is shown. (don't do that)\r\n\t * * 0.5 - Half of the last cell is shown.\r\n\t * * 1 - Full last cell is shown.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tendLocation?: number;\r\n\r\n\t/**\r\n\t * Indicates if cusor's tooltip should be shown on this Axis.\r\n\t */\r\n\tcursorTooltipEnabled?: boolean;\r\n\r\n\t/**\r\n\t * Normally, when axis is zoomed in, a zoom out button is shown by a chart,\r\n\t * and vice versa: when axis is zoomed out completely, zoom out button is\r\n\t * hidden.\r\n\t *\r\n\t * Setting this to `false` will disable this behavior. Zooming in our out\r\n\t * this axis will not reveal or hide zoom out button.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\ttoggleZoomOutButton?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if axis' tooltip should be hidden while axis range is animating\r\n\t * (zooming)\r\n\t *\r\n\t * @since 4.7.16\r\n\t * @default true\r\n\t */\r\n\thideTooltipWhileZooming?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[Axis]].\r\n */\r\nexport interface IAxisEvents extends IComponentEvents {\r\n\r\n\t/**\r\n\t * Invoked when available axis lenght changes, e.g. after resizing the whole\r\n\t * chart.\r\n\t */\r\n\tlengthchanged: {}\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Axis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisAdapters extends IComponentAdapters, IAxisProperties {\r\n\t/**\r\n\t * Applied to the tooltip text before it is shown.\r\n\t */\r\n\tgetTooltipText: string;\r\n\r\n}\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all Axis elements.\r\n *\r\n * @see {@link IAxisEvents} for a list of available Events\r\n * @see {@link IAxisAdapters} for a list of available Adapters\r\n */\r\nexport class Axis<T extends AxisRenderer = AxisRenderer> extends Component {\r\n\r\n\t/**\r\n\t * Defines list of data fields.\r\n\t */\r\n\tpublic _dataFields: IAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines the type of the [[DataItem]] used in the class.\r\n\t */\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * A list of Axis Ranges.\r\n\t */\r\n\tprotected _axisRanges: ListTemplate<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: AxisBreak;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisEvents;\r\n\r\n\t/**\r\n\t * A [[Label]] instance that is used for Axis title label.\r\n\t */\r\n\tprotected _title: Label;\r\n\r\n\t/**\r\n\t * \"X\", \"Y\", etc.\r\n\t *\r\n\t * This is needed so that Axis knows which of the values from series' data\r\n\t * items it should use.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic axisLetter: string;\r\n\r\n\t/**\r\n\t * A reference to chart the axis is for.\r\n\t */\r\n\tprotected _chart: Chart;\r\n\r\n\t/**\r\n\t * A type for renderer used for this Axis.\r\n\t */\r\n\tpublic _renderer: T;\r\n\r\n\t/**\r\n\t * Number of Grid elements on the axis.\r\n\t */\r\n\tprotected _gridCount: number = 10;\r\n\r\n\t/**\r\n\t * A list of [[XYSeries]] that are using this Axis.\r\n\t */\r\n\tprotected _series: List<XYSeries> = new List<XYSeries>();\r\n\r\n\t/**\r\n\t * Holds the length of the Axis, so that we can check if it changed after\r\n\t * other changes and we need to update layouts.\r\n\t */\r\n\tprotected _prevLength: number;\r\n\r\n\t/**\r\n\t * A list of Axis Breaks associated with this Axis.\r\n\t */\r\n\tprotected _axisBreaks: SortedListTemplate<this[\"_axisBreak\"]>;\r\n\r\n\t/**\r\n\t * A reference to the Iterator for Axis' data items.\r\n\t */\r\n\tprotected _dataItemsIterator: $iter.ListIterator<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * A name of the data field this Axis looks for its data in, e.g. \"category\".\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic axisFieldName: string;\r\n\r\n\t// we save these values so that cursur could use them if axis line is a fill\r\n\r\n\t/**\r\n\t * [currentItemStartPoint description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic currentItemStartPoint: IPoint;\r\n\r\n\t/**\r\n\t * [currentItemEndPoint description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic currentItemEndPoint: IPoint;\r\n\r\n\tprotected _tooltipPosition: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic relativePositionSprite?: Sprite;\r\n\r\n\t/**\r\n\t * Holds reference to a function that accepts a DataItem and its index as\r\n\t * parameters.\r\n\t *\r\n\t * It can either return a fill opacity for a fill, or manipulate data item\r\n\t * directly, to create various highlighting scenarios.\r\n\t *\r\n\t * For example, you can set it up to highlight only weekends on a\r\n\t * [[DateAxis]].\r\n\t */\r\n\tpublic fillRule(dataItem: this[\"_dataItem\"], index?: number): void {\r\n\t\tif (!$type.isNumber(index)) {\r\n\t\t\tindex = dataItem.index;\r\n\t\t}\r\n\t\tif (index / 2 == Math.round(index / 2)) {\r\n\t\t\tdataItem.axisFill.__disabled = true;\r\n\t\t\tdataItem.axisFill.opacity = 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.axisFill.opacity = 1;\r\n\t\t\tdataItem.axisFill.__disabled = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Full length of the axis, in pixels.\r\n\t *\r\n\t * @readonly\r\n\t */\r\n\tpublic axisFullLength: number;\r\n\r\n\t/**\r\n\t * Ghost label is used to prevent chart shrinking/expanding when zooming or\r\n\t * when data is invalidated. You can set custom text on it so that it would\r\n\t * be bigger/smaller,\r\n\t */\r\n\tpublic ghostLabel: AxisLabel;\r\n\r\n\t/**\r\n\t * Specifies if axis should be automatically disposed when removing from\r\n\t * chart's axis list.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tpublic autoDispose: boolean = true;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _axisItemCount: number = 0;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tif (this.constructor === Axis) {\r\n\t\t\tthrow new Error(\"'Axis' cannot be instantiated directly. Please use a specific axis type.\");\r\n\t\t}\r\n\r\n\t\tthis.hideTooltipWhileZooming = true;\r\n\t\tthis.minWidth = 0.0001;\r\n\t\tthis.minHeight = 0.0001;\r\n\t\tthis.className = \"Axis\";\r\n\t\tthis.shouldClone = false;\r\n\t\tthis.setPropertyValue(\"cursorTooltipEnabled\", true);\r\n\t\tthis.toggleZoomOutButton = true;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create title\r\n\t\tthis.title = new Label();\r\n\t\tthis.title.shouldClone = false;\r\n\t\tthis._disposers.push(this.title);\r\n\t\tthis.setPropertyValue(\"startLocation\", 0);\r\n\t\tthis.setPropertyValue(\"endLocation\", 1);\r\n\r\n\t\t// Data item iterator\r\n\t\tthis._dataItemsIterator = new $iter.ListIterator<this[\"_dataItem\"]>(this.dataItems, () => this.dataItems.create());\r\n\t\tthis._dataItemsIterator.createNewItems = true;\r\n\r\n\t\t// Create tooltip\r\n\t\tlet tooltip: Tooltip = new Tooltip();\r\n\t\tthis._disposers.push(tooltip);\r\n\t\ttooltip.label.padding(5, 10, 5, 10);\r\n\t\ttooltip.background.pointerLength = 5;\r\n\t\ttooltip.fitPointerToBounds = true;\r\n\t\ttooltip.background.filters.clear();\r\n\r\n\t\t// Set virtual parentfor the tooltip so that it can properly inheirt\r\n\t\t// formatters from the axis.\r\n\t\ttooltip.virtualParent = this;\r\n\r\n\t\t// Create background element for the tooltip\r\n\t\tlet background: PointedRectangle = <PointedRectangle>tooltip.background;\r\n\t\tbackground.cornerRadius = 0;\r\n\t\tbackground.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tbackground.stroke = background.fill;\r\n\t\tbackground.strokeWidth = 1;\r\n\t\tbackground.fillOpacity = 1;\r\n\t\ttooltip.label.fill = interfaceColors.getFor(\"alternativeText\");\r\n\r\n\t\tthis.tooltip = tooltip;\r\n\r\n\t\t// Accessibility\r\n\t\tthis.readerHidden = true;\r\n\r\n\t\tthis.events.on(\"rangechangestarted\", () => {\r\n\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (series.hideTooltipWhileZooming) {\r\n\t\t\t\t\tseries.tooltip.hide();\r\n\t\t\t\t\tseries.tooltip.preventShow = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif (this.hideTooltipWhileZooming) {\r\n\t\t\t\tthis.tooltip.hide();\r\n\t\t\t\tthis.tooltip.preventShow = true;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\r\n\t\tthis.events.on(\"rangechangeended\", () => {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (series.hideTooltipWhileZooming) {\r\n\t\t\t\t\tseries.tooltip.hide();\r\n\t\t\t\t\tseries.tooltip.preventShow = false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif (this.hideTooltipWhileZooming) {\r\n\t\t\t\tthis.tooltip.hide();\r\n\t\t\t\tthis.tooltip.preventShow = false;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new AxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates layout.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateLayout(): void {\r\n\t\tsuper.invalidateLayout();\r\n\t\t// this puts series after axis in invalidation order also makes series update it's data items in case widht/height of a series is not 100%\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.invalidateLayout();\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Invalidates series of this axis.\r\n\t */\r\n\tpublic invalidateSeries(): void {\r\n\t\t// this puts series after axis in invalidation order also makes series update it's data items in case widht/height of a series is not 100%\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Override to cancel super call for data element validation.\r\n\t * @ignore\r\n\t */\r\n\tpublic validateDataElements() {\r\n\t\tthis._axisItemCount = 0;\r\n\t\tif (this.ghostLabel) {\r\n\t\t\tthis.renderer.updateLabelElement(this.ghostLabel, this.start, this.end);\r\n\t\t\tthis.ghostLabel.validate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Recalculates the number of grid items on the axis.\r\n\t */\r\n\tprotected updateGridCount() {\t\t\r\n\t\tif (this.renderer) {\r\n\t\t\tlet gridCount = this.axisLength / this.renderer.minGridDistance; \r\n\t\t\tif(gridCount != this._gridCount){\r\n\t\t\t\tthis._gridCount = gridCount;\r\n\t\t\t\tthis.clearCache();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Redraws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateLayout(): void {\r\n\r\n\t\tthis.axisFullLength = this.axisLength / (this.end - this.start);\r\n\r\n\t\tsuper.validateLayout();\r\n\t\tthis.updateGridCount();\r\n\t\tlet renderer = this.renderer;\r\n\t\tif (renderer) {\r\n\t\t\trenderer.updateAxisLine();\r\n\t\t\trenderer.updateTooltip();\r\n\t\t\trenderer.updateBaseGridElement();\r\n\t\t}\r\n\r\n\t\tif (this._prevLength != this.axisLength) {\r\n\t\t\tthis.dispatchImmediately(\"lengthchanged\");\r\n\t\t\tthis._prevLength = this.axisLength;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes Axis' renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic initRenderer(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a data item to the Axis.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic appendDataItem(dataItem: this[\"_dataItem\"]) {\r\n\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\r\n\t\tlet tick = dataItem.tick;\r\n\t\tif (tick) {\r\n\t\t\tif (tick.above) {\r\n\t\t\t\ttick.parent = renderer.bulletsContainer;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttick.parent = renderer.gridContainer;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataItem.label) {\r\n\t\t\tdataItem.label.parent = renderer;\r\n\t\t}\r\n\r\n\t\tlet axisFill = dataItem.axisFill;\r\n\t\tif (axisFill) {\r\n\t\t\tif (axisFill.above) {\r\n\t\t\t\taxisFill.parent = renderer.bulletsContainer;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\taxisFill.parent = renderer.gridContainer;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet grid = dataItem.grid;\r\n\t\tif (grid) {\r\n\t\t\tif (grid.above) {\r\n\t\t\t\tgrid.parent = renderer.bulletsContainer;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tgrid.parent = renderer.gridContainer;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataItem.bullet) {\r\n\t\t\tdataItem.bullet.parent = renderer.bulletsContainer;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Redraws Axis' related items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\t\tthis.validateLayout();\r\n\r\n\t\tthis.renderer.updateGridContainer();\r\n\t}\r\n\r\n\t/**\r\n\t * Redars Axis ranges.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateAxisRanges(): void {\r\n\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\tthis.appendDataItem(axisRange);\r\n\t\t\tthis.validateDataElement(axisRange);\r\n\t\t\tif (axisRange.grid) {\r\n\t\t\t\taxisRange.grid.validate();\r\n\t\t\t}\r\n\t\t\tif (axisRange.tick) {\r\n\t\t\t\taxisRange.tick.validate();\r\n\t\t\t}\r\n\t\t\tif (axisRange.axisFill) {\r\n\t\t\t\taxisRange.axisFill.validate();\r\n\t\t\t}\r\n\t\t\tif (axisRange.label) {\r\n\t\t\t\taxisRange.label.validate();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates all axis breaks, so they are redrawn.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateBreaks(): void {\r\n\t\tif (this._axisBreaks) {\r\n\t\t\t$iter.each(this._axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\taxisBreak.invalidate();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Associates an Axis break with this Axis, after it is inserted into\r\n\t * `axisBreaks`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic processBreak(event: IListEvents<this[\"_axisBreak\"]>[\"inserted\"]) {\r\n\t\tlet axisBreak: this[\"_axisBreak\"] = event.newValue;\r\n\t\taxisBreak.parent = this.renderer.breakContainer;\r\n\t\taxisBreak.axis = this;\r\n\t}\r\n\r\n\t/**\r\n\t * Registers a [[XYSeries]] element with this Axis.\r\n\t *\r\n\t * Returns a [[Disposer]] for all events, added to Series for watching\r\n\t * changes in Axis, and vice versa.\r\n\t * @ignore\r\n\t * @param series Series\r\n\t * @return Event disposer\r\n\t */\r\n\tpublic registerSeries(series: XYSeries): IDisposer {\r\n\t\tthis.series.moveValue(series);\r\n\r\n\t\treturn new MultiDisposer([\r\n\t\t\tnew Disposer(() => {\r\n\t\t\t\tthis.series.removeValue(series);\r\n\t\t\t}),\r\n\r\n\t\t\tthis.events.on(\"lengthchanged\", series.invalidate, series, false),\r\n\t\t\tthis.events.on(\"lengthchanged\", series.createMask, series, false),\r\n\t\t\tthis.events.on(\"startchanged\", series.invalidate, series, false),\r\n\t\t\tthis.events.on(\"endchanged\", series.invalidate, series, false),\r\n\t\t\t//axis.events.on(\"validated\", chart.handleCursorPositionChange, chart, false)\t\t\t\r\n\r\n\t\t\t// TODO should these be disposed of ?\r\n\t\t\t//series.events.on(\"datavalidated\", this.processSeriesDataItems, this),\r\n\t\t\t//series.events.on(\"visibilitychanged\", this.processSeriesDataItems, this),\r\n\t\t\t//series.events.on(\"hidden\", this.processSeriesDataItems, this)\r\n\t\t]);\r\n\t}\r\n\r\n\t/**\r\n\t * An [[AxisRenderer]] to be used to render this Axis.\r\n\t *\r\n\t * Please note that most of the settings, related to Axis' appearance are set\r\n\t * via its renderer. Not directly on the Axis.\r\n\t *\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * axis.renderer.inside = true;\r\n\t * axis.renderer.minLabelPosition = 0.1;\r\n\t * axis.renderer.maxLabelPosition = 0.9;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * axis.renderer.inside = true;\r\n\t * axis.renderer.minLabelPosition = 0.1;\r\n\t * axis.renderer.maxLabelPosition = 0.9;\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/} for more info\r\n\t * @param renderer Renderer\r\n\t */\r\n\tpublic set renderer(renderer: this[\"_renderer\"]) {\r\n\t\tif (renderer != this._renderer) {\r\n\t\t\tthis._renderer = renderer;\r\n\t\t\trenderer.chart = this.chart;\r\n\t\t\trenderer.axis = this;\r\n\t\t\trenderer.parent = this;\r\n\t\t\tthis.title.parent = this; // we add title to axis and set layout in renderer to avoid one extra container, as otherwise axis container would be used for holding renderer only\r\n\t\t\tthis.initRenderer();\r\n\r\n\t\t\tthis._disposers.push(renderer.gridContainer.events.on(\"maxsizechanged\", this.invalidate, this, false));\r\n\r\n\t\t\tlet ghostLabel = this.renderer.labels.create();\r\n\t\t\tthis._disposers.push(ghostLabel);\r\n\t\t\tghostLabel.dataItem = this.dataItems.template.clone(); // just for the adapters not to fail\r\n\t\t\tghostLabel.text = \"L\";\r\n\t\t\tghostLabel.parent = this.renderer;\r\n\t\t\tghostLabel.shouldClone = false;\r\n\t\t\tghostLabel.fillOpacity = 0;\r\n\t\t\tghostLabel.opacity = 0;\r\n\t\t\tghostLabel.strokeOpacity = 0;\r\n\t\t\tghostLabel.interactionsEnabled = false;\r\n\t\t\tghostLabel.validate();\r\n\r\n\t\t\tthis.ghostLabel = ghostLabel;\r\n\r\n\t\t\tthis.events.on(\"beforedatavalidated\", () => {\r\n\t\t\t\tghostLabel.text = \"L\";\r\n\t\t\t}, undefined, false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Renderer\r\n\t */\r\n\tpublic get renderer(): this[\"_renderer\"] {\r\n\t\treturn this._renderer;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to angle. (for circular axes)\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Angle\r\n\t */\r\n\tpublic positionToAngle(position: number): number {\r\n\t\treturn this.renderer.positionToAngle(position);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts pixel coordinates to a relative position. (0-1)\r\n\t *\r\n\t * @param point Coorinates (px)\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint): number {\r\n\t\treturn this.renderer.pointToPosition(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position to coordinate.\r\n\t *\r\n\t * @since 4.7.15\r\n\t * @param position (0-1)\r\n\t * @return coordinate (px)\r\n\t */\r\n\tpublic positionToCoordinate(position: number): number {\r\n\t\treturn this.renderer.positionToCoordinate(position);\r\n\t}\r\n\r\n\t/**\r\n\t * [getAnyRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param start [description]\r\n\t * @param end [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getAnyRangePath(start: any, end: any): string {\r\n\t\treturn this.renderer.getPositionRangePath(start, end);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts any positional parameter to a relative position on axis.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param value Pisition\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic anyToPosition(value: any): number {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts any positional parameter to a relative position on axis.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param value Pisition\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic anyToPoint(value: any): IOrientationPoint {\r\n\t\treturn { x: 0, y: 0, angle: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition [description]\r\n\t * @param endPosition [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number): string {\r\n\t\tif (this.renderer) {\r\n\t\t\treturn this.renderer.getPositionRangePath(startPosition, endPosition);\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Actual axis length in pixels.\r\n\t *\r\n\t * @return Axis length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\tif (this.renderer) {\r\n\t\t\treturn this.renderer.axisLength;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if axis should display a tooltip for chart's cursor.\r\n\t *\r\n\t * @param value Display tooltip?\r\n\t */\r\n\tpublic set cursorTooltipEnabled(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"cursorTooltipEnabled\", value)) {\r\n\t\t\tif (value && this.renderer) {\r\n\t\t\t\tthis.renderer.updateTooltip();\r\n\t\t\t}\r\n\t\t\telse if (this.tooltip) {\r\n\t\t\t\tthis.tooltip.hide(0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Normally, when axis is zoomed in, a zoom out button is shown by a chart,\r\n\t * and vice versa: when axis is zoomed out completely, zoom out button is\r\n\t * hidden.\r\n\t *\r\n\t * Setting this to `false` will disable this behavior. Zooming in our out\r\n\t * this axis will not reveal or hide zoom out button.\r\n\t *\r\n\t * @default true\r\n\t * @since 4.6.2\r\n\t * @param value Toggle zoom out button?\r\n\t */\r\n\tpublic set toggleZoomOutButton(value: boolean) {\r\n\t\tthis.setPropertyValue(\"toggleZoomOutButton\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Toggle zoom out button?\r\n\t */\r\n\tpublic get toggleZoomOutButton(): boolean {\r\n\t\treturn this.getPropertyValue(\"toggleZoomOutButton\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Display tooltip?\r\n\t */\r\n\tpublic get cursorTooltipEnabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"cursorTooltipEnabled\");\r\n\t}\r\n\r\n\t/**\r\n\t * Hides element's [[Tooltip]].\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t */\r\n\tpublic hideTooltip(duration?: number): void {\r\n\t\tsuper.hideTooltip(duration);\r\n\t\tthis._tooltipPosition = undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows Axis tooltip at specific relative position within Axis. (0-1)\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param local or global position\r\n\t */\r\n\tpublic showTooltipAtPosition(position: number, local?: boolean) {\r\n\t\tlet tooltip: Tooltip = this._tooltip;\r\n\r\n\t\tif (!tooltip || this.dataItems.length <= 0) {\r\n\t\t\tthis._tooltipPosition = undefined;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (!local) {\r\n\t\t\t\tposition = this.toAxisPosition(position);\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNumber(position) || position < this.start || position > this.end) {\r\n\t\t\t\ttooltip.hide(0);\r\n\t\t\t\tthis._tooltipPosition = undefined;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet renderer = this.renderer;\r\n\r\n\t\t\t//@todo: think of how to solve this better\r\n\t\t\tif (!tooltip.parent) {\r\n\t\t\t\ttooltip.parent = this.tooltipContainer;\r\n\t\t\t}\r\n\r\n\t\t\tlet tooltipLocation = renderer.tooltipLocation;\r\n\r\n\t\t\tlet startPosition: number = this.getCellStartPosition(position);\r\n\t\t\tlet endPosition: number = this.getCellEndPosition(position);\r\n\r\n\t\t\tif (this.tooltipPosition == \"fixed\") {\r\n\t\t\t\tposition = startPosition + (endPosition - startPosition) * tooltipLocation;\r\n\t\t\t}\r\n\r\n\t\t\tposition = $math.fitToRange(position, this.start, this.end);\r\n\r\n\t\t\tif (this._tooltipPosition != position) {\r\n\t\t\t\tthis._tooltipPosition = position;\r\n\r\n\t\t\t\tlet tooltipLocation2 = renderer.tooltipLocation2;\r\n\r\n\t\t\t\tlet startPoint: IPoint = renderer.positionToPoint(startPosition, tooltipLocation2);\r\n\t\t\t\tlet endPoint: IPoint = renderer.positionToPoint(endPosition, tooltipLocation2);\r\n\r\n\t\t\t\t// save values so cursor could use them\r\n\t\t\t\tthis.currentItemStartPoint = startPoint;\r\n\t\t\t\tthis.currentItemEndPoint = endPoint;\r\n\r\n\t\t\t\tif (renderer.fullWidthTooltip) {\r\n\t\t\t\t\ttooltip.width = endPoint.x - startPoint.x;\r\n\t\t\t\t\ttooltip.height = endPoint.y - startPoint.y;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet point: IPoint = renderer.positionToPoint(position, tooltipLocation2);\r\n\t\t\t\tlet globalPoint: IPoint = $utils.spritePointToSvg(point, this.renderer.line);\r\n\t\t\t\ttooltip.text = this.getTooltipText(position);\r\n\r\n\t\t\t\tif (tooltip.text) {\r\n\t\t\t\t\ttooltip.delayedPointTo(globalPoint);\r\n\t\t\t\t\ttooltip.show();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.cursorTooltipEnabled || this.tooltip.disabled) {\r\n\t\t\t\ttooltip.hide(0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position (0-1) to Axis position with zoom level and\r\n\t * inversed taken into account.\r\n\t *\r\n\t * @param position Global position (0-1)\r\n\t * @return Position within Axis (0-1)\r\n\t */\r\n\tpublic toAxisPosition(position: number): number {\r\n\r\n\t\tposition = this.renderer.toAxisPosition(position);\r\n\r\n\t\tif (position == undefined) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tposition = position * (this.end - this.start);\r\n\t\tif (this.renderer.inversed) {\r\n\t\t\tposition = this.end - position;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tposition = this.start + position;\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts position on the axis with zoom level and\r\n\t * inversed taken into account to global position.\r\n\t *\r\n\t * @param position Axis position (0-1)\r\n\t * @return Global position (0-1)\r\n\t */\r\n\tpublic toGlobalPosition(position: number): number {\r\n\t\tif (this.renderer.inversed) {\r\n\t\t\tposition = this.end - position;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tposition = position - this.start;\r\n\t\t}\r\n\r\n\t\treturn position / (this.end - this.start);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to be used for cursor's Axis tooltip.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position coordinate (px)\r\n\t * @return Label text\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Axis' tooltip's position and possibly size, and pointer (stem)\r\n\t * place.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param pointerOrientation Pointer (stem) orientation\r\n\t * @param boundingRectangle A rectangle for tooltip to fit within\r\n\t */\r\n\tpublic updateTooltip(pointerOrientation: PointerOrientation, boundingRectangle: IRectangle): void {\r\n\t\tlet tooltip: Tooltip = this._tooltip;\r\n\t\tif (tooltip) {\r\n\t\t\ttooltip.pointerOrientation = pointerOrientation;\r\n\t\t\ttooltip.setBounds($utils.spriteRectToSvg(boundingRectangle, this.renderer.line));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [roundPosition description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param position Relative position\r\n\t * @param location Location on axis\r\n\t * @return Rounded position\r\n\t */\r\n\tpublic roundPosition(position: number, location: AxisItemLocation, axisLocation?: number): number {\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * [getCellStartPosition description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param position [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getCellStartPosition(position: number): number {\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * [getCellEndPosition description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param position [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getCellEndPosition(position: number): number {\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of axis ranges for this Axis.\r\n\t *\r\n\t * @return Axis ranges\r\n\t */\r\n\tpublic get axisRanges(): ListTemplate<this[\"_dataItem\"]> {\r\n\t\tif (!this._axisRanges) {\r\n\t\t\tlet dataItem: AxisDataItem = this.createDataItem();\r\n\t\t\tdataItem.isRange = true;\r\n\t\t\tdataItem.axisFill = this.renderer.axisFills.template.clone();\r\n\t\t\tdataItem.grid = this.renderer.grid.template.clone();\r\n\t\t\tdataItem.tick = this.renderer.ticks.template.clone();\r\n\t\t\tdataItem.label = this.renderer.labels.template.clone();\r\n\r\n\t\t\tdataItem.isTemplate = true;\r\n\t\t\tdataItem.component = this;\r\n\t\t\tdataItem.axisFill.disabled = false;\r\n\t\t\tdataItem.tick.disabled = false;\r\n\t\t\tdataItem.grid.disabled = false;\r\n\t\t\tdataItem.label.disabled = false;\r\n\r\n\t\t\tthis._axisRanges = new ListTemplate<this[\"_dataItem\"]>(dataItem);\r\n\t\t\tthis._axisRanges.events.on(\"inserted\", this.processAxisRange, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._axisRanges));\r\n\t\t\tthis._disposers.push(this._axisRanges.template);\r\n\t\t}\r\n\t\treturn this._axisRanges;\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates an axis range after it has been added to the axis range list.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected processAxisRange(event: IListEvents<this[\"_dataItem\"]>[\"inserted\"]) {\r\n\t\tlet axisRange: AxisDataItem = event.newValue;\r\n\t\taxisRange.component = this;\r\n\t\taxisRange.isRange = true;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of axis breaks on this Axis.\r\n\t *\r\n\t * @return Axis breaks.\r\n\t */\r\n\tpublic get axisBreaks(): SortedListTemplate<this[\"_axisBreak\"]> {\r\n\t\tif (!this._axisBreaks) {\r\n\t\t\tthis._axisBreaks = new SortedListTemplate<this[\"_axisBreak\"]>(this.createAxisBreak(), (a, b) => {\r\n\t\t\t\treturn $number.order(a.adjustedStartValue, b.adjustedStartValue);\r\n\t\t\t});\r\n\r\n\t\t\tthis._axisBreaks.events.on(\"inserted\", this.processBreak, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._axisBreaks));\r\n\t\t\tthis._disposers.push(this._axisBreaks.template);\r\n\t\t}\r\n\t\treturn this._axisBreaks;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new axis break.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new AxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of Series currently associated with this Axis.\r\n\t *\r\n\t * @return Series\r\n\t */\r\n\tpublic get series(): List<XYSeries> {\r\n\t\tif (!this._series) {\r\n\t\t\tthis._series = new List<XYSeries>();\r\n\t\t}\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes Series' data items.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processSeriesDataItems(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Processes Series' single data item.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic processSeriesDataItem(dataItem: XYSeriesDataItem, axisLetter?: string): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Post-processes Serie's data items.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic postProcessSeriesDataItems(series?:XYSeries): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Post-processes Serie's single data item.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic postProcessSeriesDataItem(dataItem: XYSeriesDataItem): void {\r\n\r\n\t}\r\n\r\n\t//\r\n\r\n\t/**\r\n\t * Updates Axis based on all Series that might influence it.\r\n\t *\r\n\t * Called by Series after Series data is validated.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisBySeries(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Hides unused data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic hideUnusedDataItems(): void {\r\n\t\t// hide all unused\r\n\t\tlet dataItemsIterator: $iter.ListIterator<this[\"_dataItem\"]> = this._dataItemsIterator;\r\n\r\n\t\tdataItemsIterator.createNewItems = false;\r\n\r\n\t\t$iter.each(dataItemsIterator.iterator(), (dataItem) => {\r\n\t\t\tthis.validateDataElement(dataItem); // solves shrinking\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t});\r\n\r\n\t\tdataItemsIterator.clear();\r\n\t\tdataItemsIterator.createNewItems = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a Series' data item that corresponds to specific position on Axis.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param series Series\r\n\t * @param position Position (0-1)\r\n\t * @param findNearest Should axis try to find nearest tooltip if there is no data item at exact position\r\n\t * @return Data item\r\n\t */\r\n\tpublic getSeriesDataItem(series: XYSeries, position: number, findNearest?: boolean): XYSeriesDataItem {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle that corresponds to specific position on axis.\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key ???\r\n\t * @param location Location\r\n\t * @param stackKey ???\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * [getX description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @param stackKey [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getX(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getX description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @param stackKey [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getPositionX(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getY description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @param stackKey [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getY(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * [getY description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @param stackKey [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getPositionY(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point coordinates\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\treturn { x: 0, y: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * [dataChangeUpdate description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataChangeUpdate(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * [dataChangeUpdate description]\r\n\t *\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic seriesDataChangeUpdate(series: XYSeries): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Removes axis breaks that fall between `min` and `max` (???)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param min Start value\r\n\t * @param max End value\r\n\t * @return Spread o\r\n\t */\r\n\tprotected adjustDifference(min: number, max: number): number {\r\n\t\tlet difference: number = max - min;\r\n\t\tif ($type.isNumber(difference)) {\r\n\t\t\tif (this._axisBreaks) {\r\n\t\t\t\t$iter.eachContinue(this._axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\tlet startValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\t\tlet endValue: number = axisBreak.adjustedEndValue;\r\n\t\t\t\t\tif ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n\t\t\t\t\t\t// breaks are sorted, we don't need go further anymore\r\n\t\t\t\t\t\tif (startValue > max) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (endValue >= min) {\r\n\t\t\t\t\t\t\tif ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n\t\t\t\t\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\t\t\t\t\tlet intersection: IRange = $math.intersection({ start: startValue, end: endValue }, { start: min, end: max });\r\n\r\n\t\t\t\t\t\t\t\tif (intersection) {\r\n\t\t\t\t\t\t\t\t\tdifference -= (intersection.end - intersection.start) * (1 - breakSize);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn difference;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if specific value falls within a break.\r\n\t *\r\n\t * Returns [[AxisBreak]] the value falls into.\r\n\t *\r\n\t * @param value Value to check\r\n\t * @return Axis break\r\n\t */\r\n\tprotected isInBreak(value: number): this[\"_axisBreak\"] {\r\n\t\tif (this._axisBreaks) {\r\n\t\t\treturn $iter.find(this._axisBreaks.iterator(), (axisBreak) =>\r\n\t\t\t\tvalue >= axisBreak.adjustedStartValue &&\r\n\t\t\t\tvalue <= axisBreak.adjustedEndValue);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [fixAxisBreaks description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected fixAxisBreaks(): void {\r\n\t\tif (this._axisBreaks) {\r\n\t\t\tlet axisBreaks: SortedListTemplate<this[\"_axisBreak\"]> = this._axisBreaks;\r\n\t\t\tif (axisBreaks.length > 0) {\r\n\t\t\t\t// first make sure that startValue is <= end value\r\n\t\t\t\t// This needs to make a copy of axisBreaks because it mutates the list while traversing\r\n\t\t\t\t// TODO very inefficient\r\n\t\t\t\t$array.each($iter.toArray(axisBreaks.iterator()), (axisBreak) => {\r\n\t\t\t\t\tlet startValue: number = $math.min(axisBreak.startValue, axisBreak.endValue);\r\n\t\t\t\t\tlet endValue: number = $math.max(axisBreak.startValue, axisBreak.endValue);\r\n\r\n\t\t\t\t\taxisBreak.adjustedStartValue = startValue;\r\n\t\t\t\t\taxisBreak.adjustedEndValue = endValue;\r\n\r\n\t\t\t\t\tthis._axisBreaks.update(axisBreak);\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\tlet firstAxisBreak: this[\"_axisBreak\"] = axisBreaks.first;\r\n\t\t\t\tlet previousEndValue: number = Math.min(firstAxisBreak.startValue, firstAxisBreak.endValue);\r\n\r\n\t\t\t\t// process breaks\r\n\t\t\t\t// TODO does this need to call axisBreaks.update ?\r\n\t\t\t\t$iter.each(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\tlet startValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\t\tlet endValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\t\t// breaks can't overlap\r\n\t\t\t\t\t// if break starts before previous break ends\r\n\t\t\t\t\tif (startValue < previousEndValue) {\r\n\t\t\t\t\t\tstartValue = previousEndValue;\r\n\r\n\t\t\t\t\t\tif (endValue < previousEndValue) {\r\n\t\t\t\t\t\t\tendValue = previousEndValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\taxisBreak.adjustedStartValue = startValue;\r\n\t\t\t\t\taxisBreak.adjustedEndValue = endValue;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * We need start/end indexes of axes to be 0 - `dataItems.length`.\r\n\t *\r\n\t * Yes, also for category axis, this helps to avoid jumping of categories\r\n\t * while scrolling and does not do a lot of extra work as we use\r\n\t * protected `_startIndex` and `_endIndex` when working with items.\r\n\t *\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * [startIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set startIndex(value: number) {\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return [description]\r\n\t */\r\n\tpublic get startIndex(): number {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * [endIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set endIndex(value: number) {\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return [description]\r\n\t */\r\n\tpublic get endIndex(): number {\r\n\t\treturn this.dataItems.length;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a formatted label based on position.\r\n\t *\r\n\t * Individual axis types should override this method to generate a label\r\n\t * that is relevant to axis type.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\treturn Math.round(position * 100) + \"%x\";\r\n\t}\r\n\r\n\t/**\r\n\t * A Chart this Axis belongs to.\r\n\t *\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: Chart) {\r\n\t\tthis._chart = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): Chart {\r\n\t\treturn this._chart;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a data item for a Series range.\r\n\t *\r\n\t * @param series Target Series\r\n\t * @return Range data item\r\n\t */\r\n\tpublic createSeriesRange(series: XYSeries): this[\"_dataItem\"] {\r\n\t\tlet range = this.axisRanges.create();\r\n\t\trange.component = this;\r\n\t\trange.axisFill = this.renderer.axisFills.template.clone();\r\n\t\trange.axisFill.disabled = false;\r\n\t\trange.axisFill.fillOpacity = 0;\r\n\r\n\t\trange.grid = this.renderer.grid.template.clone();\r\n\t\trange.grid.disabled = true;\r\n\r\n\t\trange.tick = this.renderer.ticks.template.clone();\r\n\t\trange.tick.disabled = true;\r\n\r\n\t\trange.label = this.renderer.labels.template.clone();\r\n\t\trange.label.disabled = true;\r\n\r\n\t\trange.addDisposer(new Disposer(()=>{\r\n\t\t\tseries.axisRanges.removeValue(range);\r\n\t\t}))\r\n\r\n\t\tseries.axisRanges.push(range);\r\n\t\treturn range;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from a different instance of Axis.\r\n\t *\r\n\t * @param source Source Axis\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (this.renderer) {\r\n\t\t\tthis.renderer.copyFrom(source.renderer);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (source.renderer) {\r\n\t\t\t\tthis.renderer = source.renderer.clone();\r\n\t\t\t\tthis._disposers.push(this.renderer);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (source.title) {\r\n\t\t\tif (!this.title) {\r\n\t\t\t\tthis.title = source.title.clone();\r\n\t\t\t\tthis.title.parent = this;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.title.copyFrom(source.title);\r\n\t\t\t}\r\n\t\t\tthis._disposers.push(this.title);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Resets internal iterator.\r\n\t */\r\n\tprotected resetIterators(): void {\r\n\t\tthis._dataItemsIterator.reset();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axis ranges\r\n\t\t\tif ($type.hasValue(config.axisRanges) && $type.isArray(config.axisRanges)) {\r\n\t\t\t\tfor (let i = 0, len = config.axisRanges.length; i < len; i++) {\r\n\t\t\t\t\tlet range = config.axisRanges[i];\r\n\r\n\t\t\t\t\t// If `series` is set, we know it's a series range\r\n\t\t\t\t\tif ($type.hasValue(range[\"series\"])) {\r\n\t\t\t\t\t\tif ($type.isString(range[\"series\"])) {\r\n\t\t\t\t\t\t\tif (this.map.hasKey(range[\"series\"])) {\r\n\t\t\t\t\t\t\t\t//range[\"series\"] = this.map.getKey(range[\"series\"]);\r\n\t\t\t\t\t\t\t\tconfig.axisRanges[i] = this.createSeriesRange(this.map.getKey(range[\"series\"]));\r\n\t\t\t\t\t\t\t\tdelete (range[\"series\"]);\r\n\t\t\t\t\t\t\t\tconfig.axisRanges[i].config = range;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Axis start location. Works on Date/Category axis, doesn't work on Value axis.\r\n\t *\r\n\t * * 0 - Full first cell is shown.\r\n\t * * 0.5 - Half of first cell is shown.\r\n\t * * 1 - None of the first cell is visible. (you probably don't want that)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set startLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"startLocation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get startLocation(): number {\r\n\t\treturn this.getPropertyValue(\"startLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Axis end location. Works on Date/Category axis, doesn't work on Value axis.\r\n\t *\r\n\t * * 0 - None of the last cell is shown. (don't do that)\r\n\t * * 0.5 - Half of the last cell is shown.\r\n\t * * 1 - Full last cell is shown.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set endLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"endLocation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get endLocation(): number {\r\n\t\treturn this.getPropertyValue(\"endLocation\");\r\n\t}\r\n\r\n\r\n\tprotected setDisabled(value: boolean) {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (this.renderer) {\r\n\t\t\tthis.renderer.gridContainer.disabled = value;\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to a [[Label]] element which serves as a title to the axis.\r\n\t *\r\n\t * When axis is created it aleready has an element, so you can just modify\r\n\t * it.\r\n\t *\r\n\t * Or you can replace it with your own instance of `Label`.\r\n\t * \r\n\t * @param value Title label\r\n\t */\r\n\tpublic set title(value: Label) {\r\n\t\tif (this._title && this._title != value) {\r\n\t\t\tthis._title.dispose();\r\n\t\t}\r\n\t\tif (value) {\r\n\t\t\tthis._title = value;\r\n\t\t\tvalue.parent = this;\r\n\t\t\tvalue.shouldClone = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Title label\r\n\t */\r\n\tpublic get title(): Label {\r\n\t\treturn this._title;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Indicates if axis' tooltip should be hidden while axis range is animating\r\n\t * (zooming)\r\n\t * \r\n\t * @default true\r\n\t * @since 4.7.16\r\n\t * @param value Hide tooltip while zooming?\r\n\t */\r\n\tpublic set hideTooltipWhileZooming(value: boolean) {\r\n\t\tthis.setPropertyValue(\"hideTooltipWhileZooming\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hide tooltip while zooming?\r\n\t */\r\n\tpublic get hideTooltipWhileZooming(): boolean {\r\n\t\treturn this.getPropertyValue(\"hideTooltipWhileZooming\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Axis\"] = Axis;\r\nregistry.registeredClasses[\"AxisDataItem\"] = AxisDataItem;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Disable axis tooltips.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.maybeXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Axis && target.tooltip) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.cursorTooltipEnabled = false;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});","/**\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisLine]].\r\n */\r\nexport interface IAxisLineProperties extends ISpriteProperties { }\r\n\r\n/**\r\n * Defines events for [[AxisLine]].\r\n */\r\nexport interface IAxisLineEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisLine]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisLineAdapters extends ISpriteAdapters, IAxisLineProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to draw Axis line.\r\n *\r\n * @see {@link IAxisLineEvents} for a list of available events\r\n * @see {@link IAxisLineAdapters} for a list of available Adapters\r\n */\r\nexport class AxisLine extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisLineProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisLineAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisLineEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisLine\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\t\tthis.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tthis.strokeOpacity = 0.15;\r\n\t\tthis.pixelPerfect = true;\r\n\t\tthis.fill = color();\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.interactionsEnabled = false;\r\n\r\n\t\t//this.element.moveTo({ x: 0, y: 0 });\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLine\"] = AxisLine;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { Axis, AxisItemLocation, AxisDataItem } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisFill]].\r\n */\r\nexport interface IAxisFillProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Start position. (0-1)\r\n\t */\r\n\tstartPosition?: number;\r\n\r\n\t/**\r\n\t * End position. (0-1)\r\n\t */\r\n\tendPosition?: number;\r\n\r\n\t/**\r\n\t * Location within the axis.\r\n\t */\r\n\tlocation?: number;\r\n\r\n\t/**\r\n\t * Normally fill goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tabove?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisFill]].\r\n */\r\nexport interface IAxisFillEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisFill]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisFillAdapters extends ISpriteAdapters, IAxisFillProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * AxisFill is a base class used to defines fill shapes for various\r\n * type-specific Axes.\r\n *\r\n * Axis fills are used to add fills to specific ranges of those axes.\r\n *\r\n * @see {@link IAxisFillEvents} for a list of available events\r\n * @see {@link IAxisFillAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class AxisFill extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisFillProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisFillAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisFillEvents;\r\n\r\n\t/**\r\n\t * A referecent to Axis element this fill is applied to.\r\n\t */\r\n\tpublic axis: Axis;\r\n\r\n\t/**\r\n\t * An SVG path, used to draw fill shape.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic fillPath: string;\r\n\r\n\t/**\r\n\t * [_dataItem description]\r\n\t *\r\n\t * Not sure what this is doing here?\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tconstructor(axis: Axis) {\r\n\t\tsuper();\r\n\t\tthis.axis = axis;\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.className = \"AxisFill\";\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.location = 0;\r\n\r\n\t\tthis.above = false;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tthis.fillOpacity = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (this.axis) {\r\n\t\t\tthis.axis.invalidateDataItems();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the fill element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tif (this.__disabled || this.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.axis && $type.isNumber(this.startPosition) && $type.isNumber(this.endPosition)) {\r\n\t\t\tthis.fillPath = this.axis.getPositionRangePath(this.startPosition, this.endPosition);\r\n\t\t\tthis.path = this.fillPath;\r\n\t\t\tif (this.isMeasured) {\r\n\t\t\t\tthis.measure();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An actual starting position of the fill.\r\n\t *\r\n\t * @param value Starting position\r\n\t */\r\n\tpublic set startPosition(value: number) {\r\n\t\tthis.setPropertyValue(\"startPosition\", value);\r\n\t\tthis.invalidate(); // this is needed as relative position might not change when zooming\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start position\r\n\t */\r\n\tpublic get startPosition(): number {\r\n\t\treturn this.getPropertyValue(\"startPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * An actual end position of the fill.\r\n\t *\r\n\t * @param value End position\r\n\t */\r\n\tpublic set endPosition(value: number) {\r\n\t\tthis.setPropertyValue(\"endPosition\", value);\r\n\t\tthis.invalidate(); // this is needed as relative position might not change when zooming\r\n\t}\r\n\r\n\t/**\r\n\t * @return End position\r\n\t */\r\n\tpublic get endPosition(): number {\r\n\t\treturn this.getPropertyValue(\"endPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location of the fill. (0-1)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set location(value: AxisItemLocation) {\r\n\t\tthis.setPropertyValue(\"location\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get location(): AxisItemLocation {\r\n\t\treturn this.getPropertyValue(\"location\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setPath(value: string): boolean {\r\n\t\tif (this.setPropertyValue(\"path\", value)) {\r\n\t\t\tthis.element.attr({ \"d\": value });\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Normally fill goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.5.9\r\n\t * @param value Draw above series?\r\n\t */\r\n\tpublic set above(value: boolean) {\r\n\t\tthis.setPropertyValue(\"above\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Draw above series?\r\n\t */\r\n\tpublic get above(): boolean {\r\n\t\treturn this.getPropertyValue(\"above\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisFill\"] = AxisFill;\r\n","/**\r\n * A module defining functionality for axis grid elements.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteEvents, ISpriteAdapters } from \"../../core/Sprite\";\r\nimport { AxisItemLocation, AxisDataItem, Axis } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Grid]].\r\n */\r\nexport interface IGridProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Location of the grid item within cell. (0-1)\r\n\t */\r\n\tlocation?: AxisItemLocation;\r\n\r\n\t/**\r\n\t * Normally fill goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tabove?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[Grid]].\r\n */\r\nexport interface IGridEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Grid]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IGridAdapters extends ISpriteAdapters, IGridProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Displays an axis grid line.\r\n *\r\n * @see {@link IGridEvents} for a list of available events\r\n * @see {@link IGridAdapters} for a list of available Adapters\r\n * @todo Review: container is better, as we'll be able to attach something to the grid, also with 3d charts we might need some additional elements\r\n * @important\r\n */\r\nexport class Grid extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IGridProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IGridAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IGridEvents;\r\n\r\n\t/**\r\n\t * An axis data item that corresponds to the this grid element.\r\n\t */\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * A referecent to Axis element this fill is applied to.\r\n\t */\r\n\tpublic axis: Axis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Grid\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.location = 0.5;\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.above = false;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\t\tthis.stroke = interfaceColors.getFor(\"grid\");\r\n\r\n\t\tthis.pixelPerfect = true;\r\n\t\tthis.strokeOpacity = 0.15;\r\n\t\tthis.fill = color(); // \"none\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Location within axis cell to place grid line on.\r\n\t *\r\n\t * * 0 - start\r\n\t * * 0.5 - middle\r\n\t * * 1 - end\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set location(value: AxisItemLocation) {\r\n\t\tthis.setPropertyValue(\"location\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get location(): AxisItemLocation {\r\n\t\treturn this.getPropertyValue(\"location\");\r\n\t}\r\n\r\n\t/**\r\n\t * Normally fill goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.5.9\r\n\t * @param value Draw above series?\r\n\t */\r\n\tpublic set above(value: boolean) {\r\n\t\tthis.setPropertyValue(\"above\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Draw above series?\r\n\t */\r\n\tpublic get above(): boolean {\r\n\t\treturn this.getPropertyValue(\"above\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (this.axis) {\r\n\t\t\tthis.axis.invalidateDataItems();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Grid\"] = Grid;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Disable grid on smaller charts\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.maybeXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Grid) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});","/**\r\n * Axis Label module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Label, ILabelProperties, ILabelAdapters, ILabelEvents } from \"../../core/elements/Label\";\r\nimport { AxisItemLocation, AxisDataItem, Axis } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisLabel]].\r\n */\r\nexport interface IAxisLabelProperties extends ILabelProperties {\r\n\r\n\t/**\r\n\t * Relative location of the label. (0-1)\r\n\t */\r\n\tlocation?: number;\r\n\r\n\t/**\r\n\t * Draw the label on the inside of the Axis?\r\n\t */\r\n\tinside?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisLabel]].\r\n */\r\nexport interface IAxisLabelEvents extends ILabelEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisLabel]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisLabelAdapters extends ILabelAdapters, IAxisLabelProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Use to create labels on Axis.\r\n *\r\n * @see {@link IAxisLabelEvents} for a list of available events\r\n * @see {@link IAxisLabelAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class AxisLabel extends Label {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisLabelProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisLabelAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisLabelEvents;\r\n\r\n\t/**\r\n\t * Related data item.\r\n\t */\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * A referecent to Axis element this fill is applied to.\r\n\t */\r\n\tpublic axis: Axis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisLabel\";\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.padding(10, 10, 10, 10);\r\n\t\tthis.location = 0.5;\r\n\t\t//this.nonScaling = true; // not good for perf\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location of the label. (0-1)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set location(value: AxisItemLocation) {\r\n\t\tthis.setPropertyValue(\"location\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get location(): AxisItemLocation {\r\n\t\treturn this.getPropertyValue(\"location\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets if label should be drawn inside axis.\r\n\t *\r\n\t * @param value Inside?\r\n\t */\r\n\tpublic set inside(value: boolean) {\r\n\t\tthis.setPropertyValue(\"inside\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if label is set to be drawn inside axis.\r\n\t *\r\n\t * @return Inside?\r\n\t */\r\n\tpublic get inside(): boolean {\r\n\t\treturn this.getPropertyValue(\"inside\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setDisabled(value: boolean):boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif(this.axis){\r\n\t\t\tthis.axis.invalidateDataItems();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLabel\"] = AxisLabel;\r\n","/**\r\n * Tick module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Tick]].\r\n */\r\nexport interface ITickProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Length of the tick (px).\r\n\t */\r\n\tlength?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[Tick]].\r\n */\r\nexport interface ITickEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Tick]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ITickAdapters extends ISpriteAdapters, ITickProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A basic Tick class.\r\n *\r\n * A tick is a short dash, mainly connecting an object like axis or slice to\r\n * it's textual label.\r\n *\r\n * @see {@link ITickEvents} for a list of available events\r\n * @see {@link ITickAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class Tick extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ITickProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ITickAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ITickEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Tick\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.fillOpacity = 0;\r\n\t\tthis.length = 6;\r\n\t\tthis.strokeOpacity = 0.2;\r\n\t\tthis.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.nonScalingStroke = true;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Length of the tick in pixels.\r\n\t *\r\n\t * @param value Length (px)\r\n\t */\r\n\tpublic set length(value: number) {\r\n\t\tthis.setPropertyValue(\"length\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get length(): number {\r\n\t\tif (this.disabled) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\treturn this.getPropertyValue(\"length\");\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Tick\"] = Tick;\r\n","/**\r\n * Axis Tick module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick, ITickProperties, ITickAdapters, ITickEvents } from \"../elements/Tick\";\r\nimport { AxisItemLocation, AxisDataItem, Axis } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisTick]].\r\n */\r\nexport interface IAxisTickProperties extends ITickProperties {\r\n\t/**\r\n\t * Relative location of the tick. (0-1)\r\n\t */\r\n\tlocation?: number;\r\n\r\n\t/**\r\n\t * Draw the tick on the inside of the Axis?\r\n\t */\r\n\tinside?: boolean;\r\n\r\n\t/**\r\n\t * Normally fill goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tabove?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisTick]].\r\n */\r\nexport interface IAxisTickEvents extends ITickEvents {\r\n\r\n}\r\n\r\n/**\r\n * Defines adapter for [[AxisTick]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisTickAdapters extends ITickAdapters, IAxisTickProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws an axis tick\r\n * @see {@link IAxisTickEvents} for a list of available events\r\n * @see {@link IAxisTickAdapters} for a list of available Adapters\r\n */\r\nexport class AxisTick extends Tick {\r\n\r\n\t/**\r\n\t * Defines available properties\r\n\t */\r\n\tpublic _properties!: IAxisTickProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IAxisTickAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisTickEvents;\r\n\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * A referece to Axis element this tick is placed on.\r\n\t */\r\n\tpublic axis: Axis;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"AxisTick\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.location = 0.5;\r\n\r\n\t\tthis.above = false;\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.pixelPerfect = true;\r\n\r\n\t\tthis.strokeOpacity = 0;\r\n\r\n\t\tthis.length = 5;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location of the tick. (0-1)\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set location(value: AxisItemLocation) {\r\n\t\tthis.setPropertyValue(\"location\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get location(): AxisItemLocation {\r\n\t\treturn this.getPropertyValue(\"location\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets if tick should be drawn inside axis.\r\n\t *\r\n\t * @param value Inside?\r\n\t */\r\n\tpublic set inside(value: boolean) {\r\n\t\tthis.setPropertyValue(\"inside\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if label is set to be drawn inside axis.\r\n\t *\r\n\t * @return Inside?\r\n\t */\r\n\tpublic get inside(): boolean {\r\n\t\treturn this.getPropertyValue(\"inside\");\r\n\t}\r\n\r\n\t/**\r\n\t * Normally tick goes below series. Set this to `true` to go above.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.5.9\r\n\t * @param value Draw above series?\r\n\t */\r\n\tpublic set above(value: boolean) {\r\n\t\tthis.setPropertyValue(\"above\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Draw above series?\r\n\t */\r\n\tpublic get above(): boolean {\r\n\t\treturn this.getPropertyValue(\"above\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (this.axis) {\r\n\t\t\tthis.axis.invalidateDataItems();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisTick\"] = AxisTick;\r\n","/**\r\n * Module, defining base Axis Renderer.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { Axis, AxisDataItem } from \"./Axis\";\r\nimport { AxisLine } from \"./AxisLine\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { Chart } from \"../Chart\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRenderer]].\r\n */\r\nexport interface IAxisRendererProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Minimum distance in pixels between grid elements.\r\n\t */\r\n\tminGridDistance?: number;\r\n\r\n\t/**\r\n\t * Draw axis labels inside axis.\r\n\t */\r\n\tinside?: boolean;\r\n\r\n\t/**\r\n\t * Draw axis on opposite side of the plot area?\r\n\t */\r\n\topposite?: boolean;\r\n\r\n\t/**\r\n\t * Inverse the order of the scale for the Axis.\r\n\t */\r\n\tinversed?: boolean;\r\n\r\n\t/**\r\n\t * Location of the cell start. (0-1)\r\n\t */\r\n\tcellStartLocation?: number;\r\n\r\n\t/**\r\n\t * Location of the cell end. (0-1)\r\n\t */\r\n\tcellEndLocation?: number;\r\n\r\n\t/**\r\n\t * Location of the axis tooltip. (0-1)\r\n\t */\r\n\ttooltipLocation?: number;\r\n\r\n\t/**\r\n\t * Location of the tooltip relative secondary axis cell. (0-1)\r\n\t */\r\n\ttooltipLocation2?: number;\t\r\n\r\n\t/**\r\n\t * Resize axis tooltip to the full width of the cell.\r\n\t */\r\n\tfullWidthTooltip?: boolean;\r\n\r\n\t/**\r\n\t * Labels with position less than this will be hidden.\r\n\t */\r\n\tminLabelPosition?: number;\r\n\r\n\t/**\r\n\t * Labels with position bigger than this will be hidden.\r\n\t */\r\n\tmaxLabelPosition?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisRenderer]].\r\n */\r\nexport interface IAxisRendererEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRenderer]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererAdapters extends IContainerAdapters, IAxisRendererProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all axis renderers.\r\n *\r\n * @see {@link IAxisRendererEvents} for a list of available events\r\n * @see {@link IAxisRendererAdapters} for a list of available Adapters\r\n */\r\nexport class AxisRenderer extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererEvents;\r\n\r\n\t/**\r\n\t * A related Axis.\r\n\t */\r\n\tprotected _axis: Axis;\r\n\r\n\t/**\r\n\t * A line object of the related axis.\r\n\t */\r\n\tpublic line: AxisLine;\r\n\r\n\t/**\r\n\t * Base grid element. ([[Sprite]])\r\n\t *\r\n\t * For value axes base grid is at value 0.\r\n\t *\r\n\t * For category/date axis it is added at the end of the last item/date.\r\n\t *\r\n\t */\r\n\tpublic baseGrid: Sprite;\r\n\r\n\t/**\r\n\t * A [[Container]] holding all of the [[Grid]] elements.\r\n\t */\r\n\tpublic gridContainer: Container;\r\n\r\n\t/**\r\n\t * A [[Container]] holding all of the axis bullets.\r\n\t */\r\n\tpublic bulletsContainer: Container;\r\n\r\n\t/**\r\n\t * A [[Container]] holding all of the [[AxisBreak]] elements.\r\n\t */\r\n\tpublic breakContainer: Container;\r\n\r\n\t/**\r\n\t * A related chart.\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<Chart>();\r\n\r\n\t/**\r\n\t * Defines type of the grid elements.\r\n\t */\r\n\tpublic _gridType: Grid;\r\n\r\n\t/**\r\n\t * Defines type for the fill elements.\r\n\t */\r\n\tpublic _fillType: AxisFill;\r\n\r\n\t/**\r\n\t * Defines type for tick elements.\r\n\t */\r\n\tpublic _tickType: AxisTick;\r\n\r\n\t/**\r\n\t * Defines type for the label elements.\r\n\t */\r\n\tpublic _labelType: AxisLabel;\r\n\r\n\t/**\r\n\t * A list of grid elements.\r\n\t */\r\n\tprotected _grid: ListTemplate<this[\"_gridType\"]>;\r\n\r\n\t/**\r\n\t * A list of tick elements.\r\n\t */\r\n\tprotected _ticks: ListTemplate<this[\"_tickType\"]>;\r\n\r\n\t/**\r\n\t * A list of label elements.\r\n\t */\r\n\tprotected _labels: ListTemplate<this[\"_labelType\"]>;\r\n\r\n\t/**\r\n\t * A list of fill elements.\r\n\t */\r\n\tprotected _axisFills: ListTemplate<this[\"_fillType\"]>;\r\n\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisRenderer\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.minGridDistance = 50;\r\n\t\tthis.inside = false;\r\n\t\tthis.inversed = false;\r\n\t\tthis.tooltipLocation = 0.5;\r\n\t\tthis.fullWidthTooltip = false;\r\n\t\tthis.cellStartLocation = 0;\r\n\t\tthis.cellEndLocation = 1;\r\n\r\n\t\tthis.minLabelPosition = 0;\r\n\t\tthis.maxLabelPosition = 1;\r\n\t\tthis.shouldClone = false;\r\n\r\n\t\tlet gridContainer = this.createChild(Container);\r\n\t\tgridContainer.shouldClone = false;\r\n\t\tgridContainer.layout = \"none\";\r\n\t\t//\tgridContainer.isMeasured = false;\r\n\t\tgridContainer.virtualParent = this;\r\n\t\tgridContainer.width = percent(100);\r\n\t\tgridContainer.height = percent(100);\r\n\r\n\t\tthis.gridContainer = gridContainer;\r\n\t\t// not good without this\r\n\t\tgridContainer.events.on(\"maxsizechanged\", () => {\r\n\t\t\tif (this.inited) {\r\n\t\t\t\tthis.invalidateAxisItems();\r\n\t\t\t}\r\n\t\t}, this, false);\r\n\r\n\t\tlet breakContainer = this.createChild(Container);\r\n\t\tbreakContainer.shouldClone = false;\r\n\t\tbreakContainer.isMeasured = false;\r\n\t\tbreakContainer.layout = \"none\";\r\n\t\tbreakContainer.width = percent(100);\r\n\t\tbreakContainer.height = percent(100);\r\n\t\tthis.breakContainer = breakContainer;\r\n\r\n\t\tlet bulletsContainer = this.createChild(Container);\r\n\t\tbulletsContainer.shouldClone = false;\r\n\t\tbulletsContainer.isMeasured = false;\r\n\t\tbulletsContainer.layout = \"none\";\r\n\t\tbulletsContainer.width = percent(100);\r\n\t\tbulletsContainer.height = percent(100);\r\n\t\tthis.bulletsContainer = bulletsContainer;\r\n\r\n\t\tthis.line = this.createChild(AxisLine);\r\n\t\tthis.line.shouldClone = false;\r\n\t\tthis.line.strokeOpacity = 0;\r\n\r\n\t\tlet baseGrid: Grid = this.createChild(Grid);\r\n\t\tbaseGrid.shouldClone = false;\r\n\t\tthis.baseGrid = baseGrid;\r\n\r\n\t\t// Make elements disposable\r\n\t\tlet disposers = this._disposers;\r\n\t\tdisposers.push(baseGrid);\r\n\t\tdisposers.push(this.line);\r\n\t\tdisposers.push(gridContainer);\r\n\t\tdisposers.push(breakContainer);\r\n\t\tdisposers.push(bulletsContainer);\r\n\t\tdisposers.push(this._chart);\r\n\r\n\t\tthis.ticks.template.disabled = true;\r\n\t\tthis.axisFills.template.disabled = true;\r\n\t\tthis.axisFills.template.interactionsEnabled = false;\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Axis of a renderer\r\n\t * @param axis Axis\r\n\t */\r\n\tset axis(axis: Axis) {\r\n\t\tthis.setAxis(axis);\r\n\t}\r\n\r\n\t/**\r\n\t * Axis of a renderer\r\n\t * @return axis Axis\r\n\t */\r\n\tget axis(): Axis {\r\n\t\treturn this._axis;\r\n\t}\r\n\r\n\t/**\r\n\t* @ignore\r\n\t*/\r\n\tpublic setAxis(axis: Axis) {\r\n\t\tthis._axis = axis;\r\n\t\tthis.baseGrid.parent = axis;\r\n\t\tthis.line.parent = axis;\r\n\t\tthis.gridContainer.bind(\"opacity\", axis);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Called when rendered is attached to an Axis, as well as a property of\r\n\t * Axis that might affect the appearance is updated.\r\n\t *\r\n\t * E.g. `axis.opposite`, `axis.inside`, etc.\r\n\t *\r\n\t * This method is called **before** draw, so that any related setting\r\n\t * changed in this method can be changed.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processRenderer(): void {\r\n\t\tthis.events.on(\"sizechanged\", this.updateTooltip, this, false);\r\n\t\tthis.events.on(\"positionchanged\", this.updateTooltip, this, false);\r\n\t\tthis.labels.template.inside = this.inside;\r\n\t\tthis.ticks.template.inside = this.inside;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Axis' tooltip.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateTooltip(): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Re-positions an element to new coordinates.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param item A target element\r\n\t * @param point New coordinates\r\n\t */\r\n\tpublic positionItem(item: Sprite, point: IPoint): void {\r\n\t\tif (item) {\r\n\t\t\titem.moveTo(point);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Point\r\n\t */\r\n\tpublic positionToPoint(position: number, position2?:number): IPoint {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t\treturn { x: 0, y: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position on axis to angle.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review / units)\r\n\t * @param position Position (0-1)\r\n\t * @return Angle\r\n\t */\r\n\tpublic positionToAngle(position: number): number {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position (0-1) on axis to a pixel coordinate.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinate (px)\r\n\t */\r\n\tpublic positionToCoordinate(position: number): number {\r\n\t\tlet coordinate: number;\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet axisFullLength = axis.axisFullLength;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tcoordinate = (axis.end - position) * axisFullLength;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcoordinate = (position - axis.start) * axisFullLength;\r\n\t\t}\r\n\r\n\t\treturn coordinate;\r\n\t}\r\n\r\n\tpublic updateGridContainer() {\r\n\r\n\t}\r\n\r\n\r\n\tprotected getHeight(): number {\r\n\t\tlet gridContainer = this.gridContainer;\r\n\t\tif(gridContainer.parent){\r\n\t\t\treturn gridContainer.parent.pixelHeight;\r\n\t\t}\r\n\t\treturn this.gridContainer.pixelHeight || 0;\r\n\t}\r\n\r\n\tprotected getWidth(): number {\r\n\t\tlet gridContainer = this.gridContainer;\r\n\t\tif(gridContainer.parent){\r\n\t\t\treturn gridContainer.parent.pixelWidth;\r\n\t\t}\r\n\t\treturn this.gridContainer.pixelWidth || 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a coordinate in pixels to a relative position. (0-1)\r\n\t *\r\n\t * @param coordinate Coordinate (px)\r\n\t * @param coordinate2 Coordinate of a second axis, only needed for complex axes systems, like timeline (px)\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic coordinateToPosition(coordinate: number, coordinate2?:number): number {\r\n\t\tlet position: number;\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet axisFullLength = axis.axisFullLength;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tposition = axis.end - coordinate / axisFullLength;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tposition = coordinate / axisFullLength + axis.start;\r\n\t\t}\r\n\r\n\t\treturn $math.round(position, 5);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param point Point\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint): number {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition Starting position\r\n\t * @param endPosition End position\r\n\t * @return SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number): string {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates all axis data items, effectively causing them re-evaluated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic invalidateAxisItems(): void {\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tif (axis) {\r\n\t\t\taxis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Sprite, position: number, endPosition: number): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param tick Tick element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions axis bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet AxisBullet element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateBullet(bullet: Sprite, position: number, endPosition: number): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param label Label element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: AxisLabel, position: number, endPosition: number, location?: number): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis fill element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fill Fill element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateFillElement(fill: AxisFill, position: number, endPosition: number): void {\r\n\t\tfill.startPosition = position;\r\n\t\tfill.endPosition = endPosition;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine(): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement(): void {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions an axis break element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Break element\r\n\t */\r\n\tpublic updateBreakElement(axisBreak: AxisBreak): void {\r\n\t\tthis.positionItem(axisBreak.startLine, axisBreak.startPoint);\r\n\t\tthis.toggleVisibility(axisBreak.startLine, axisBreak.startPosition, 0, 1);\r\n\t\tthis.positionItem(axisBreak.endLine, axisBreak.endPoint);\r\n\t\tthis.toggleVisibility(axisBreak.endLine, axisBreak.endPosition, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum distance in pixels between grid elements.\r\n\t *\r\n\t * Use it to control density of the grid/labels on the axis.element.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/#Setting_the_density_of_the_the_grid_labels} for more info\r\n\t * @param value Min distance (px)\r\n\t */\r\n\tpublic set minGridDistance(value: number) {\r\n\t\tif (this.setPropertyValue(\"minGridDistance\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Min distance (px)\r\n\t */\r\n\tpublic get minGridDistance(): number {\r\n\t\treturn this.getPropertyValue(\"minGridDistance\");\r\n\t}\r\n\r\n\t/**\r\n\t * A chart, associated with the Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: Chart) {\r\n\t\tthis._chart.set(value, null);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): Chart {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles visibility of an element, based on its current position and\r\n\t * min/max position settings.\r\n\t *\r\n\t * E.g. labels based on `minLabelPosition` and `maxLabelPosition`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param sprite An element to toggle\r\n\t * @param position Elements current position\r\n\t * @param minPosition Min position setting\r\n\t * @param maxPosition Max position setting\r\n\t */\r\n\tprotected toggleVisibility(sprite: Sprite, position: number, minPosition: number, maxPosition: number): void {\r\n\t\tlet axis = this.axis;\r\n\r\n\t\tlet dataItem = sprite.dataItem;\r\n\t\tif(dataItem && dataItem instanceof AxisDataItem){\r\n\t\t\tif($type.isNumber(dataItem.minPosition)){\r\n\t\t\t\tminPosition = dataItem.minPosition;\r\n\t\t\t}\r\n\t\t\tif($type.isNumber(dataItem.maxPosition)){\r\n\t\t\t\tmaxPosition = dataItem.maxPosition;\r\n\t\t\t}\t\t\t\r\n\t\t}\r\n\r\n\t\tlet updatedStart = axis.start + (axis.end - axis.start) * (minPosition - 0.0001);\r\n\t\tlet updatedEnd = axis.start + (axis.end - axis.start) * (maxPosition + 0.0001);\r\n\r\n\t\tif (!sprite.disabled) {\r\n\t\t\tif (position < updatedStart || position > updatedEnd) {\r\n\t\t\t\tsprite.__disabled = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tsprite.__disabled = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates visual elements for and axis break.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Axis break\r\n\t */\r\n\tpublic createBreakSprites(axisBreak: AxisBreak) {\r\n\t\t// This is a placeholder method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * A list of Axis' Fill elements.\r\n\t *\r\n\t * Those are fill elements that cover the space between every second set\r\n\t * of grid lines, and can be configured to create striped charts.\r\n\t *\r\n\t * Please note that these are disabled by default. To enable them, set\r\n\t * template to true.\r\n\t *\r\n\t * ```TypeScript\r\n\t * categoryAxis.renderer.axisFills.template.disabled = false;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * categoryAxis.renderer.axisFills.template.disabled = false;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * \"renderer\": {\r\n\t * \"axisFills\": {\r\n\t * \"disabled\": false\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/alternated-axis-fills/} this tutorial for more info.\r\n\t * @return Fill elements\r\n\t */\r\n\tpublic get axisFills(): ListTemplate<this[\"_fillType\"]> {\r\n\t\tif (!this._axisFills) {\r\n\t\t\tlet fill = this.createFill(this.axis);\r\n\t\t\tthis._axisFills = new ListTemplate<AxisFill>(fill);\r\n\t\t\tfill.applyOnClones = true;\r\n\t\t\tfill.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._axisFills));\r\n\t\t\tthis._disposers.push(this._axisFills.template);\r\n\t\t}\r\n\t\treturn this._axisFills;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new fill element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Fill element\r\n\t */\r\n\tpublic createFill(axis: Axis): this[\"_fillType\"] {\r\n\t\treturn new AxisFill(axis);\r\n\t}\r\n\r\n\t/**\r\n\t * A list of Axis' Grid elements.\r\n\t *\r\n\t * @return Grid elements\r\n\t */\r\n\tpublic get grid(): ListTemplate<this[\"_gridType\"]> {\r\n\t\tif (!this._grid) {\r\n\t\t\tlet grid = this.createGrid();\r\n\t\t\tthis._grid = new ListTemplate<Grid>(grid);\r\n\t\t\tgrid.applyOnClones = true;\r\n\t\t\tgrid.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._grid));\r\n\t\t\tthis._disposers.push(this._grid.template);\r\n\t\t}\r\n\t\treturn this._grid;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new grid element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Grid element\r\n\t */\r\n\tpublic createGrid(): this[\"_gridType\"] {\r\n\t\treturn new Grid();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of Axis' Tick elements.\r\n\t *\r\n\t * Please note that these are disabled by default. To enable them, set\r\n\t * template to true.\r\n\t *\r\n\t * ```TypeScript\r\n\t * categoryAxis.renderer.ticks.template.disabled = false;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * categoryAxis.renderer.ticks.template.disabled = false;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * \"renderer\": {\r\n\t * \"ticks\": {\r\n\t * \"disabled\": false\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @return Tick elements\r\n\t */\r\n\tpublic get ticks(): ListTemplate<this[\"_tickType\"]> {\r\n\t\tif (!this._ticks) {\r\n\t\t\tlet tick: AxisTick = this.createTick();\r\n\t\t\ttick.applyOnClones = true;\r\n\t\t\ttick.isMeasured = false;\r\n\t\t\ttick.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n\t\t\tthis._ticks = new ListTemplate<AxisTick>(tick);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._ticks));\r\n\t\t\tthis._disposers.push(this._ticks.template);\r\n\t\t}\r\n\t\treturn this._ticks;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new tick element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Tick element\r\n\t */\r\n\tpublic createTick(): this[\"_tickType\"] {\r\n\t\treturn new AxisTick();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of Axis' Label elements.\r\n\t *\r\n\t * @return Label elements\r\n\t */\r\n\tpublic get labels(): ListTemplate<this[\"_labelType\"]> {\r\n\t\tif (!this._labels) {\r\n\t\t\tlet label = this.createLabel();\r\n\t\t\tthis._labels = new ListTemplate<AxisLabel>(label);\r\n\t\t\tlabel.applyOnClones = true;\r\n\t\t\tlabel.events.on(\"enabled\", this.invalidateAxisItems, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._labels));\r\n\t\t\tthis._disposers.push(this._labels.template);\r\n\t\t}\r\n\t\treturn this._labels;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new label element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Label element\r\n\t */\r\n\tpublic createLabel(): this[\"_labelType\"] {\r\n\t\treturn new AxisLabel();\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates whether Axis' labels and ticks should be drawn inside Plot area.\r\n\t *\r\n\t * Does not work with all renderers, like AxisRendererRadial.\r\n\t *\r\n\t * @param value Labels inside?\r\n\t */\r\n\tpublic set inside(value: boolean) {\r\n\r\n\t\tif (this.setPropertyValue(\"inside\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (value) {\r\n\t\t\tthis.width = 0;\r\n\t\t\tthis.height = 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.width = undefined;\r\n\t\t\tthis.height = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Labels inside?\r\n\t */\r\n\tpublic get inside(): boolean {\r\n\t\treturn this.getPropertyValue(\"inside\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates whether Axis should be drawn on the opposite side of the plot\r\n\t * area than it would normally be drawn based on chart's settings.\r\n\t *\r\n\t * Does not work with all renderers, like [[AxisRendererRadial]] and\r\n\t * [[AxisRenderer Circular].\r\n\t *\r\n\t * @param value Draw axis on opposite side?\r\n\t */\r\n\tpublic set opposite(value: boolean) {\r\n\t\tthis.setPropertyValue(\"opposite\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Draw axis on opposite side?\r\n\t */\r\n\tpublic get opposite(): boolean {\r\n\t\treturn this.getPropertyValue(\"opposite\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if Axis tooltip should take the whole width of the axis cell.\r\n\t * (between two grid lines)\r\n\t *\r\n\t * NOTE: this setting is ignored on circular axis types.\r\n\t *\r\n\t * @param value Full width tooltip?\r\n\t */\r\n\tpublic set fullWidthTooltip(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWidthTooltip\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width tooltip?\r\n\t */\r\n\tpublic get fullWidthTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWidthTooltip\");\r\n\t}\r\n\r\n\t/**\r\n\t * Location within axis cell to show tooltip on. (0-1)\r\n\t *\r\n\t * 0 - show at the start\r\n\t * 0.5 - show right in the middle\r\n\t * 1 - show at the end\r\n\t *\r\n\t * @param value Tooltip location\r\n\t */\r\n\tpublic set tooltipLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"tooltipLocation\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip location\r\n\t */\r\n\tpublic get tooltipLocation(): number {\r\n\t\treturn this.getPropertyValue(\"tooltipLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Location within secondary axis cell to show tooltip on. (0-1)\r\n\t *\r\n\t * 0 - show at the start\r\n\t * 0.5 - show right in the middle\r\n\t * 1 - show at the end\r\n\t *\r\n\t * @param value Tooltip location\r\n\t */\r\n\tpublic set tooltipLocation2(value: number) {\r\n\t\tthis.setPropertyValue(\"tooltipLocation2\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tooltip location\r\n\t */\r\n\tpublic get tooltipLocation2(): number {\r\n\t\treturn this.getPropertyValue(\"tooltipLocation2\");\r\n\t}\t\r\n\r\n\t/**\r\n\t * Location for the cell start.\r\n\t *\r\n\t * Normally a \"cell\" is the whole available width in a category.\r\n\t *\r\n\t * If there are several clustered column-like series available, the whole\r\n\t * space is divided between each clustered column, or column stacks.\r\n\t *\r\n\t * `cellStartLocation` identifies where, within available space, the actual\r\n\t * cell starts.\r\n\t *\r\n\t * This, together with column series' `width` will affect actual width of\r\n\t * columns, and thus gaps between them.\r\n\t *\r\n\t * This will affect category-like axes only, like [[DateAxis]], or\r\n\t * [[CategoryAxis]].\r\n\t *\r\n\t * This is used to limit a space occupied by series like column.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n\t * @param value Cell start (0-1)\r\n\t */\r\n\tpublic set cellStartLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"cellStartLocation\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Cell start (0-1)\r\n\t */\r\n\tpublic get cellStartLocation(): number {\r\n\t\treturn this.getPropertyValue(\"cellStartLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Location for the cell end.\r\n\t *\r\n\t * Normally a \"cell\" is the whole available width in a category.\r\n\t *\r\n\t * If there are several clustered column-like series available, the whole\r\n\t * space is divided between each clustered column, or column stacks.\r\n\t *\r\n\t * `cellEndLocation` identifies where, within available space, the actual\r\n\t * cell ends.\r\n\t *\r\n\t * This, together with column series' `width` will affect actual width of\r\n\t * columns, and thus gaps between them.\r\n\t *\r\n\t * This will affect category-like axes only, like [[DateAxis]], or\r\n\t * [[CategoryAxis]].\r\n\t *\r\n\t * This is used to limit a space occupied by series like column.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n\t * @param value Cell end (0-1)\r\n\t */\r\n\tpublic set cellEndLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"cellEndLocation\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Cell end (0-1)\r\n\t */\r\n\tpublic get cellEndLocation(): number {\r\n\t\treturn this.getPropertyValue(\"cellEndLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if the scale of the axis should be flipped.\r\n\t *\r\n\t * @param value Flip axis?\r\n\t */\r\n\tpublic set inversed(value: boolean) {\r\n\t\tthis.setPropertyValue(\"inversed\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Flip axis?\r\n\t */\r\n\tpublic get inversed(): boolean {\r\n\t\treturn this.getPropertyValue(\"inversed\");\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum position along the Axis, for labels.\r\n\t *\r\n\t * Labels, which have their position closer to the start of the Axis, will be\r\n\t * automatically hidden.\r\n\t *\r\n\t * E.g., setting this to 0.05 (5% of total axis length) would hide labels,\r\n\t * that would otherwise be drawn very near start of the Axis.\r\n\t *\r\n\t * This is especially usefull with `inside = true`, or if the chart hasn't\r\n\t * got any extra margins.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n\t * @param value Min label position (0-1)\r\n\t */\r\n\tpublic set minLabelPosition(value: number) {\r\n\t\tthis.setPropertyValue(\"minLabelPosition\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Min label position (0-1)\r\n\t */\r\n\tpublic get minLabelPosition(): number {\r\n\t\treturn this.getPropertyValue(\"minLabelPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum position along the Axis, for labels.\r\n\t *\r\n\t * Labels, which have their position closer to the and of the Axis, will be\r\n\t * automatically hidden.\r\n\t *\r\n\t * E.g., setting this to 0.95 (95% of total axis length) would hide labels,\r\n\t * that would otherwise be drawn very near end of the Axis.\r\n\t *\r\n\t * This is especially usefull with `inside = true`, or if the chart hasn't\r\n\t * got any extra margins.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/} for more info.\r\n\t * @param value Max label position (0-1)\r\n\t */\r\n\tpublic set maxLabelPosition(value: number) {\r\n\t\tthis.setPropertyValue(\"maxLabelPosition\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Max label position (0-1)\r\n\t */\r\n\tpublic get maxLabelPosition(): number {\r\n\t\treturn this.getPropertyValue(\"maxLabelPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all settings and related items from another object of the same\r\n\t * type.\r\n\t *\r\n\t * @param source Source object\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.grid.template.copyFrom(source.grid.template);\r\n\t\tthis.ticks.template.copyFrom(source.ticks.template);\r\n\t\tthis.labels.template.copyFrom(source.labels.template);\r\n\t\tthis.axisFills.template.copyFrom(source.axisFills.template);\r\n\t\tthis.line.copyFrom(source.line);\r\n\t\tthis.baseGrid.copyFrom(source.baseGrid);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic toAxisPosition(value: number): number {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets `visibility` property:\r\n\t *\r\n\t * * `true` - visible\r\n\t * * `false` - hidden\r\n\t *\r\n\t * @param value true - visible, false - hidden\r\n\t * @return Current visibility\r\n\t */\r\n\tpublic setVisibility(value: boolean) {\r\n\t\tsuper.setVisibility(value);\r\n\t\tthis.bulletsContainer.visible = value;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRenderer\"] = AxisRenderer;\r\n","/**\r\n * Axis Bullet module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerAdapters, IContainerEvents, IContainerProperties } from \"../../core/Container\";\r\nimport { AxisItemLocation, AxisDataItem, Axis } from \"./Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisBullet]].\r\n */\r\nexport interface IAxisBulletProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Relative position within cell/range.\r\n\t *\r\n\t * Value range is from from `0` (beginning) to `1` (end).\r\n\t *\r\n\t * @default 0.5\r\n\t */\r\n\tlocation?: number;\r\n\r\n\t/**\r\n\t * Draw inside plot area (`true`) or outside it (`false`).\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tinside?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisBullet]].\r\n */\r\nexport interface IAxisBulletEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapter for [[AxisBullet]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisBulletAdapters extends IContainerAdapters, IAxisBulletProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to draw a positioned bullet (element) on an Axis.\r\n *\r\n * ```TypeScript\r\n * let range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n * \r\n * let flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JavaScript\r\n * var range = dateAxis.axisRanges.create();\r\n * range.date = new Date(2018, 0, 5);\r\n * \r\n * var flag = new am4plugins_bullets.FlagBullet();\r\n * flag.label.text = \"Hello\";\r\n *\r\n * range.bullet = flag;\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * // ...\r\n * \"axisRanges\": [{\r\n * \"date\": new Date(2018, 0, 5),\r\n * \"bullet: {\r\n * \"type\": \"FlagBullet\",\r\n * \"label\": {\r\n * \"text\": \"Hello\"\r\n * }\r\n * }\r\n * }]\r\n * }]\r\n * }\r\n * ```\r\n *\r\n * @since 4.5.9\r\n * @see {@link IAxisBulletEvents} for a list of available events\r\n * @see {@link IAxisBulletAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class AxisBullet extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties\r\n\t */\r\n\tpublic _properties!: IAxisBulletProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IAxisBulletAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisBulletEvents;\r\n\r\n\t/**\r\n\t * Data item.\r\n\t */\r\n\tpublic _dataItem: AxisDataItem;\r\n\r\n\t/**\r\n\t * A referecent to Axis element this fill is applied to.\r\n\t */\r\n\tpublic axis: Axis;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"AxisBullet\";\r\n\r\n\t\tthis.location = 0.5;\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative position within cell/range.\r\n\t *\r\n\t * Value range is from from `0` (beginning) to `1` (end).\r\n\t *\r\n\t * NOTE: `location` is relative to the parent axis range's scope, i.e.\r\n\t * between its `date` and `endDate` for [[DateAxis]], or `value`/`endValue`\r\n\t * ([[ValueAxis]]), or `category`/`endCategory` ([[categoryAxis]]).\r\n\t * \r\n\t * ```TypeScript\r\n\t * let range = dateAxis.axisRanges.create();\r\n\t * range.date = new Date(2018, 0, 5);\r\n\t * range.endDate = new Date(2018, 0, 6);\r\n\t * \r\n\t * let bullet = new am4charts.AxisBullet();\r\n\t * bullet.location = 1;\r\n\t * \r\n\t * let flag = bullet.createChild(am4plugins_bullets.FlagBullet);\r\n\t * flag.label.text = \"Hello\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * var range = dateAxis.axisRanges.create();\r\n\t * range.date = new Date(2018, 0, 5);\r\n\t * range.endDate = new Date(2018, 0, 6);\r\n\t * \r\n\t * var bullet = new am4charts.AxisBullet();\r\n\t * bullet.location = 1;\r\n\t * \r\n\t * var flag = bullet.createChild(am4plugins_bullets.FlagBullet);\r\n\t * flag.label.text = \"Hello\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * // ...\r\n\t * \"axisRanges\": [{\r\n\t * \"date\": new Date(2018, 0, 5),\r\n\t * \"endDate\": new Date(2018, 0, 6),\r\n\t * \"bullet: {\r\n\t * \"type\": \"AxisBullet\",\r\n\t * \"location\": 1,\r\n\t * \"children\": [{\r\n\t * \"type\": \"FlagBullet\",\r\n\t * \"label\": {\r\n\t * \"text\": \"Hello\"\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * }]\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default 0.5\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set location(value: AxisItemLocation) {\r\n\t\tthis.setPropertyValue(\"location\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get location(): AxisItemLocation {\r\n\t\treturn this.getPropertyValue(\"location\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (this.axis) {\r\n\t\t\tthis.axis.invalidateDataItems();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisBullet\"] = AxisBullet;","/**\r\n * Module, defining Axis Renderer for vertical axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer, IAxisRendererProperties, IAxisRendererAdapters, IAxisRendererEvents } from \"./AxisRenderer\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { Axis } from \"./Axis\";\r\nimport { HorizontalCenter } from \"../../core/defs/HorizontalCenter\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { WavedRectangle } from \"../../core/elements/WavedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererY]].\r\n */\r\nexport interface IAxisRendererYProperties extends IAxisRendererProperties { }\r\n\r\n/**\r\n * Defines events for [[AxisRendererY]].\r\n */\r\nexport interface IAxisRendererYEvents extends IAxisRendererEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRenderer]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererYAdapters extends IAxisRendererAdapters, IAxisRendererYProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A renderer for vertical axis.\r\n *\r\n * @see {@link IAxisRendererYEvents} for a list of available events\r\n * @see {@link IAxisRendererYAdapters} for a list of available Adapters\r\n */\r\nexport class AxisRendererY extends AxisRenderer {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererYProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererYAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererYEvents;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisRendererY\";\r\n\t\tthis.minGridDistance = 40;\r\n\t\tthis.opposite = false;\r\n\t\tthis.height = percent(100);\r\n\t\tthis.labels.template.verticalCenter = \"middle\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t* @ignore\r\n\t*/\r\n\tpublic setAxis(axis: Axis) {\r\n\t\tsuper.setAxis(axis);\r\n\t\taxis.layout = \"horizontal\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateGridContainer() {\r\n\t\tlet axis = this.axis;\r\n\t\tif (axis) {\r\n\t\t\tlet gridContainer = this.gridContainer;\r\n\t\t\tgridContainer.y = axis.pixelY;\r\n\t\t\tgridContainer.height = axis.axisLength;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic toAxisPosition(value: number): number {\r\n\t\tlet axis = this.axis;\r\n\t\tif (axis) {\r\n\t\t\tlet inversedPosition = 1 - value;\r\n\t\t\tlet relativePositionSprite = axis.relativePositionSprite;\r\n\r\n\t\t\tlet y = axis.pixelY;\r\n\t\t\tif (relativePositionSprite) {\r\n\t\t\t\ty = $utils.spritePointToSprite({ x: 0, y: this.pixelY }, this.parent, relativePositionSprite).y;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trelativePositionSprite = axis.parent;\r\n\t\t\t}\r\n\t\t\tif (relativePositionSprite) {\r\n\t\t\t\tlet relativeY = y / relativePositionSprite.innerHeight;\r\n\t\t\t\tlet relativeHeight = axis.axisLength / relativePositionSprite.innerHeight;\r\n\r\n\t\t\t\treturn 1 - (inversedPosition - relativeY) / relativeHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Called when rendered is attached to an Axis, as well as a property of\r\n\t * Axis that might affect the appearance is updated.\r\n\t *\r\n\t * E.g. `axis.opposite`, `axis.inside`, etc.\r\n\t *\r\n\t * This method is called **before** draw, so that any related setting\r\n\t * changed in this method can be changed.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processRenderer(): void {\r\n\t\tsuper.processRenderer();\r\n\r\n\t\tlet axis = this.axis;\r\n\r\n\t\tif (axis) {\r\n\r\n\t\t\tlet title: Label = axis.title;\r\n\t\t\ttitle.valign = \"middle\";\r\n\r\n\t\t\tif (!(axis.height instanceof Percent)) {\r\n\t\t\t\taxis.height = percent(100);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.opposite) {\r\n\t\t\t\ttitle.rotation = 90;\r\n\t\t\t\tthis.line.toBack();\r\n\t\t\t\ttitle.toFront();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttitle.rotation = -90;\r\n\t\t\t\ttitle.toBack();\r\n\t\t\t\tthis.line.toFront();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates some of the Axis tooltip's visual properties, related to\r\n\t * rendering of the Axis.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateTooltip(): void {\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tif (axis) {\r\n\r\n\t\t\tlet bigNum: number = 2000;\r\n\t\t\tlet bbx: number = 0;\r\n\t\t\tlet bby: number = 0;\r\n\t\t\tlet bbw: number = bigNum;\r\n\t\t\tlet bbh: number = this.axisLength;\r\n\r\n\t\t\t// right\r\n\t\t\tif (this.opposite) {\r\n\t\t\t\tif (this.inside) {\r\n\t\t\t\t\tbbx = - bigNum;\r\n\t\t\t\t\tbbw = bigNum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// left\r\n\t\t\telse {\r\n\t\t\t\tif (!this.inside) {\r\n\t\t\t\t\tbbx = - bigNum;\r\n\t\t\t\t\tbbw = bigNum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.axis.updateTooltip(\"horizontal\", { x: bbx, y: bby, width: bbw, height: bbh });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\tlet axis = this.axis;\r\n\t\treturn (axis.measuredHeight - axis.pixelPaddingTop - axis.pixelPaddingBottom) || 0;\r\n\t}\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param position2 Position (0-1) Position on the second axis\r\n\t * @return Point\r\n\t */\r\n\tpublic positionToPoint(position: number, position2?: number): IPoint {\r\n\t\treturn { x: 0, y: this.positionToCoordinate(position) };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @param point Point\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint) {\r\n\t\treturn this.coordinateToPosition(point.y, point.x);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a coordinate in pixels to a relative position. (0-1)\r\n\t *\r\n\t * @param coordinate Coordinate (px)\r\n\t * @param coordinate2 Coordinate of a second axis, only needed for complex axes systems, like timeline (px)\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic coordinateToPosition(coordinate: number, coordinate2?:number): number {\r\n\t\tlet position: number;\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet axisFullLength = axis.axisFullLength;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tposition = (1 - axis.start) - coordinate / axisFullLength;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tposition = coordinate / axisFullLength + (1 - axis.end);\r\n\t\t}\r\n\t\treturn $math.round(position, 5);\r\n\t}\t\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition Starting position\r\n\t * @param endPosition End position\r\n\t * @return SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number): string {\r\n\t\tlet y1: number = $math.fitToRange(this.positionToCoordinate(startPosition), 0, this.axisLength);\r\n\t\tlet y2: number = $math.fitToRange(this.positionToCoordinate(endPosition), 0, this.axisLength);\r\n\r\n\t\tlet h: number = Math.abs(y2 - y1);\r\n\t\tlet w: number = this.getWidth();\r\n\t\tlet y: number = Math.min(y1, y2);\r\n\t\tlet x: number = 0;\r\n\r\n\t\treturn $path.rectToPath({\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\twidth: w,\r\n\t\t\theight: h\r\n\t\t}, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Grid, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\t//\tpoint.y = $utils.spritePointToSprite({ x: 0, y: point.y }, this, this.gridContainer).y;\r\n\r\n\t\tgrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.getWidth(), y: 0 });\r\n\r\n\t\tthis.positionItem(grid, point);\r\n\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param tick Tick element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * tick.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tlet tickLength = tick.length;\r\n\r\n\t\ttry {\r\n\t\t\t$utils.used(this.axis.title.measuredWidth);\r\n\t\t} catch {\r\n\t\t\t// void\r\n\t\t}\r\n\r\n\t\tpoint.x = $utils.spritePointToSprite({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x;\r\n\r\n\t\tif (!this.opposite) {\r\n\t\t\ttickLength *= (tick.inside ? 1 : -1);\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttickLength *= (tick.inside ? -1 : 1);\r\n\t\t}\r\n\r\n\t\ttick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: tickLength, y: 0 });\r\n\r\n\t\tthis.positionItem(tick, point);\r\n\r\n\t\tthis.toggleVisibility(tick, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine() {\r\n\t\tthis.line.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.axisLength });\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement(): void {\r\n\t\tsuper.updateBaseGridElement();\r\n\r\n\t\tlet axis: Axis = this.axis;\r\n\r\n\t\tlet w: number = this.getWidth();\r\n\t\tlet h: number = this.axisLength;\r\n\t\tlet y: number = axis.basePoint.y;\r\n\r\n\t\tlet baseGrid: Sprite = this.baseGrid;\r\n\r\n\t\tif (y < - 0.2 || y > h + 0.2) {\r\n\t\t\tbaseGrid.hide(0);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet x = $utils.spritePointToSprite({ x: 0, y: 0 }, this.gridContainer, baseGrid.parent).x;\r\n\r\n\t\t\tbaseGrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: w, y: 0 });\r\n\t\t\tbaseGrid.moveTo({ x: x, y: y });\r\n\t\t\tbaseGrid.show(0);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param label Label element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: AxisLabel, position: number, endPosition: number, location?: number) {\r\n\r\n\t\tif (!$type.hasValue(location)) {\r\n\t\t\tlocation = label.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\t\tlabel.isMeasured = !label.inside;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tlet horizontalCenter: HorizontalCenter;\r\n\t\tlet deltaX = 0;\r\n\t\tlet maxWidth = this.gridContainer.maxWidth;\r\n\r\n\t\tif (this.opposite) {\r\n\t\t\tif (label.inside) {\r\n\t\t\t\thorizontalCenter = \"right\";\r\n\t\t\t\tif (label.align == \"left\") {\r\n\t\t\t\t\tdeltaX = -maxWidth;\r\n\t\t\t\t\thorizontalCenter = \"left\";\r\n\t\t\t\t}\r\n\t\t\t\tif (label.align == \"center\") {\r\n\t\t\t\t\tdeltaX = -maxWidth / 2;\r\n\t\t\t\t\thorizontalCenter = \"middle\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\thorizontalCenter = \"left\";\r\n\t\t\t}\r\n\r\n\t\t\tpoint.x = 0 + deltaX;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (label.inside) {\r\n\t\t\t\thorizontalCenter = \"left\";\r\n\t\t\t\tif (label.align == \"right\") {\r\n\t\t\t\t\tdeltaX = maxWidth;\r\n\t\t\t\t\thorizontalCenter = \"right\";\r\n\t\t\t\t}\r\n\t\t\t\tif (label.align == \"center\") {\r\n\t\t\t\t\tdeltaX = maxWidth / 2;\r\n\t\t\t\t\thorizontalCenter = \"middle\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\thorizontalCenter = \"right\";\r\n\t\t\t}\r\n\r\n\t\t\tpoint.x = this.measuredWidth + deltaX;\r\n\t\t}\r\n\r\n\t\tif (label.rotation == 0) {\r\n\t\t\t// Apply fuzzy logic to verticalCenter only if labels are not rotated\r\n\t\t\tlabel.horizontalCenter = horizontalCenter;\r\n\t\t}\r\n\r\n\t\tthis.positionItem(label, point);\r\n\t\tthis.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions an axis break element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Break element\r\n\t */\r\n\tpublic updateBreakElement(axisBreak: AxisBreak) {\r\n\t\tsuper.updateBreakElement(axisBreak);\r\n\r\n\t\tlet startLine = axisBreak.startLine;\r\n\t\tlet endLine = axisBreak.endLine;\r\n\t\tlet fillShape = axisBreak.fillShape;\r\n\r\n\t\tlet startPoint: IPoint = axisBreak.startPoint;\r\n\t\tlet endPoint: IPoint = axisBreak.endPoint;\r\n\r\n\t\tlet x1: number = axisBreak.pixelMarginLeft;\r\n\t\tlet x2: number = this.getWidth() - axisBreak.pixelMarginLeft - axisBreak.pixelMarginRight;\r\n\r\n\t\tstartPoint.y = $math.fitToRange(startPoint.y, -1, this.axisLength + 1);\r\n\t\tendPoint.y = $math.fitToRange(endPoint.y, -1, this.axisLength + 1);\r\n\r\n\t\tif (startPoint.y == endPoint.y && (startPoint.y < 0 || startPoint.y > this.axisLength)) {\r\n\t\t\taxisBreak.fillShape.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\taxisBreak.fillShape.__disabled = false;\r\n\t\t}\r\n\r\n\t\tlet w = Math.abs(x2 - x1);\r\n\r\n\t\tstartLine.x = x1;\r\n\t\tstartLine.height = 0;\r\n\t\tstartLine.width = w;\r\n\r\n\t\tendLine.x = x1;\r\n\t\tendLine.height = 0;\r\n\t\tendLine.width = w;\r\n\r\n\t\tfillShape.width = w;\r\n\t\tfillShape.height = Math.abs(endPoint.y - startPoint.y);\r\n\t\tfillShape.x = x1;\r\n\t\tfillShape.y = endPoint.y;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates visual elements for and axis break.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Axis break\r\n\t */\r\n\tpublic createBreakSprites(axisBreak: AxisBreak) {\r\n\t\taxisBreak.startLine = new WavedLine();\r\n\t\taxisBreak.endLine = new WavedLine();\r\n\t\tlet wavedRectangle: WavedRectangle = new WavedRectangle();\r\n\t\twavedRectangle.setWavedSides(true, false, true, false);\r\n\t\taxisBreak.fillShape = wavedRectangle;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a position on the axis to a coordinate in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinate (px)\r\n\t */\r\n\tpublic positionToCoordinate(position: number): number {\r\n\t\tlet coordinate: number;\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet axisFullLength = axis.axisFullLength;\r\n\r\n\t\tif (!axis.renderer.inversed) {\r\n\t\t\tcoordinate = (axis.end - position) * axisFullLength;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcoordinate = (position - axis.start) * axisFullLength;\r\n\t\t}\r\n\r\n\t\treturn coordinate\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates and positions axis bullets.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet AxisBullet element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateBullet(bullet: Sprite, position: number, endPosition: number): void {\r\n\r\n\t\tlet location = 0.5;\r\n\t\tif (bullet instanceof AxisBullet) {\r\n\t\t\tlocation = bullet.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tpoint.x = $utils.spritePointToSprite({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x;\r\n\r\n\t\tthis.positionItem(bullet, point);\r\n\r\n\t\tthis.toggleVisibility(bullet, position, 0, 1);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererY\"] = AxisRendererY;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Put labels inside plot area.\r\n * Disable first and last labels.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof AxisRendererY) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.inside = true;\r\n\t\t\tstate.properties.maxLabelPosition = 0.9;\r\n\t\t\tstate.properties.minLabelPosition = 0.1;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Disable labels altogather on very small charts\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.widthXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof AxisRendererY) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});","/**\r\n * A module which defines functionality related to Value Axis Break.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { AxisBreak, IAxisBreakProperties, IAxisBreakAdapters, IAxisBreakEvents } from \"./AxisBreak\";\r\nimport { ValueAxis } from \"./ValueAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ValueAxisBreak]].\r\n */\r\nexport interface IValueAxisBreakProperties extends IAxisBreakProperties {\r\n\r\n\t/**\r\n\t * Value break starts on.\r\n\t */\r\n\tstartValue?: number;\r\n\r\n\t/**\r\n\t * Value break ends on.\r\n\t */\r\n\tendValue?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[ValueAxisBreak]].\r\n */\r\nexport interface IValueAxisBreakEvents extends IAxisBreakEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ValueAxisBreak]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IValueAxisBreakAdapters extends IAxisBreakAdapters, IValueAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base class to define \"breaks\" on value axis.\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * when comparing columns with relatively similar values, it would make sense\r\n * to cut out their mid section, so that their tip differences are more\r\n * prominent.\r\n *\r\n * @see {@link IValueAxisBreakEvents} for a list of available events\r\n * @see {@link IValueAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class ValueAxisBreak extends AxisBreak {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IValueAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IValueAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IValueAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: ValueAxis;\r\n\r\n\t/**\r\n\t * [adjustedStep description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic adjustedStep: number;\r\n\r\n\t/**\r\n\t * [adjustedMin description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic adjustedMin: number;\r\n\r\n\t/**\r\n\t * [adjustedMax description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic adjustedMax: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ValueAxisBreak\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's start.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get startPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.valueToPosition(this.adjustedStartValue);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's end.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get endPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.valueToPosition(this.adjustedEndValue);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ValueAxisBreak\"] = ValueAxisBreak;\r\n","/**\r\n * Value Axis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Axis, AxisDataItem, IAxisProperties, IAxisDataFields, IAxisAdapters, IAxisEvents } from \"./Axis\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisRendererY } from \"./AxisRendererY\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { Grid } from \"./Grid\";\r\nimport { IDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { ValueAxisBreak } from \"./ValueAxisBreak\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[ValueAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ValueAxisDataItem extends AxisDataItem {\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: ValueAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ValueAxisDataItem\";\r\n\r\n\t\tthis.values.value = {};\r\n\t\tthis.values.endValue = {};\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A data point's numeric value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set value(value: number) {\r\n\t\tthis.setValue(\"value\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): number {\r\n\t\treturn this.values[\"value\"].value;\r\n\t}\r\n\r\n\t/**\r\n\t * Data point's numeric end value.\r\n\t *\r\n\t * @param value End value\r\n\t */\r\n\tpublic set endValue(value: number) {\r\n\t\tthis.setValue(\"endValue\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get endValue(): number {\r\n\t\treturn this.values[\"endValue\"].value;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n */\r\nexport interface IMinMaxStep {\r\n\tmin: number;\r\n\tmax: number;\r\n\tstep: number;\r\n}\r\n\r\n/**\r\n * Defines data fields for [[ValueAxis]].\r\n */\r\nexport interface IValueAxisDataFields extends IAxisDataFields { }\r\n\r\n/**\r\n * Defines properties for [[ValueAxis]].\r\n */\r\nexport interface IValueAxisProperties extends IAxisProperties {\r\n\tstrictMinMax?: boolean;\r\n\tlogarithmic?: boolean;\r\n\tmaxPrecision?: number;\r\n\tadjustLabelPrecision?: boolean;\r\n\textraTooltipPrecision?: number;\r\n\textraMin?: number;\r\n\textraMax?: number;\r\n\tkeepSelection?: boolean;\r\n\tincludeRangesInMinMax?: boolean;\r\n\tsyncWithAxis?: ValueAxis;\r\n}\r\n\r\n/**\r\n * Defines events for [[ValueAxis]].\r\n */\r\nexport interface IValueAxisEvents extends IAxisEvents {\r\n\r\n\t/**\r\n\t * Invoked when selection/zoom on axis occurs and start/end coordinates\r\n\t * change.\r\n\t */\r\n\tselectionextremeschanged: {};\r\n\r\n\t/**\r\n\t * Invoked when start/end coordinates of the axis change.\r\n\t */\r\n\textremeschanged: {};\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[ValueAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IValueAxisAdapters extends IAxisAdapters, IValueAxisProperties {\r\n\t/**\r\n\t * Applied to the base value of the axis\r\n\t */\r\n\tbaseValue: number,\r\n\r\n\t/**\r\n\t * Applied to the min value of the axis\r\n\t */\r\n\tmin: number\r\n\r\n\t/**\r\n\t * Applied to the max value of the axis\r\n\t */\r\n\tmax: number\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a value axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Monthly Sales\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Monthly Sales\";\r\n * ```\r\n * ```JSON\r\n * \"yAxes\": [{\r\n * \"type\": \"ValueAxis\",\r\n * \"title\": {\r\n * \"text\": \"Monthly Sales\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link IValueAxisEvents} for a list of available Events\r\n * @see {@link IValueAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class ValueAxis<T extends AxisRenderer = AxisRenderer> extends Axis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: IValueAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IValueAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IValueAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: ValueAxisDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: ValueAxisBreak;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IValueAxisEvents;\r\n\r\n\t/**\r\n\t * A reference to chart the axis is for.\r\n\t */\r\n\tpublic chart: XYChart;\r\n\r\n\t/**\r\n\t * A list of Series that are using this Axis.\r\n\t */\r\n\tpublic series: List<XYSeries>;\r\n\r\n\t/**\r\n\t * Minimum value for the axis scale.\r\n\t */\r\n\tprotected _min: number;\r\n\r\n\t/**\r\n\t * Maximum value for the axis scale.\r\n\t */\r\n\tprotected _max: number;\r\n\r\n\t/**\r\n\t * User-defined min value for axis.\r\n\t */\r\n\tprotected _minDefined: number;\r\n\r\n\t/**\r\n\t * User-defined max value for axis.\r\n\t */\r\n\tprotected _maxDefined: number;\r\n\r\n\t/**\r\n\t * [_minAdjusted description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _minAdjusted: number;\r\n\r\n\t/**\r\n\t * [_maxAdjusted description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _maxAdjusted: number;\r\n\r\n\t/**\r\n\t * Min real value. (lowest value of all data points)\r\n\t */\r\n\tprotected _minReal: number;\r\n\r\n\t/**\r\n\t * Max real value. (highest value of all data points)\r\n\t */\r\n\tprotected _maxReal: number;\r\n\r\n\t/**\r\n\t * Min value within current zoom.\r\n\t */\r\n\tprotected _minZoomed: number;\r\n\r\n\t/**\r\n\t * Max value within current zoom.\r\n\t */\r\n\tprotected _maxZoomed: number\r\n\r\n\t/**\r\n\t * [_step description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _step: number;\r\n\r\n\t/**\r\n\t * [_stepDecimalPlaces description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _stepDecimalPlaces: number = 0;\r\n\tprotected _prevStepDecimalPlaces: number = 0;\r\n\tprotected _adjustLabelPrecision: boolean = true;\r\n\r\n\t/**\r\n\t * [_difference description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _difference: number;\r\n\r\n\t/**\r\n\t * Base value for the axis.\r\n\t */\r\n\tprotected _baseValue: number = 0;\r\n\r\n\t/**\r\n\t * [_previousValue description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _previousValue: number;\r\n\r\n\t/**\r\n\t * [_previousPoint description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _previousPoint: IPoint;\r\n\r\n\t/**\r\n\t * Adjusted start in case we have breaks.\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _adjustedStart: number = 0;\r\n\r\n\t/**\r\n\t * Adjusted end in case we have breaks.\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _adjustedEnd: number = 1;\r\n\r\n\tprotected _finalMin: number;\r\n\tprotected _finalMax: number;\r\n\r\n\tprotected _extremesChanged: boolean = false;\r\n\r\n\tprotected _deltaMinMax: number = 1;\r\n\r\n\t/**\r\n\t * Holds reference to a function that accepts a DataItem as parameter.\r\n\t *\r\n\t * It can either return a fill opacity for a fill, or manipulate data item\r\n\t * directly, to create various highlighting scenarios.\r\n\t */\r\n\tpublic fillRule(dataItem: this[\"_dataItem\"]): void {\r\n\t\tlet value = dataItem.value;\r\n\t\tlet axis = dataItem.component;\r\n\t\tif (!dataItem.axisFill.disabled) {\r\n\t\t\t// rounding in left to solve floating point number\r\n\t\t\tif ($math.round(value / axis.step / 2, 5) == Math.round(value / axis.step / 2)) {\r\n\t\t\t\tdataItem.axisFill.__disabled = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdataItem.axisFill.__disabled = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * As calculating totals is expensive operation and not often needed, we\r\n\t * don't do it by default.\r\n\t *\r\n\t * In case you use `totalPercent` or `total` in your charts, this must be set\r\n\t * to `true`.\r\n\t *\r\n\t * @default false\r\n\t * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/#100_stacks} For using `calculateTotals` for 100% stacked series.\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-strings/#Placeholders_for_numeric_values} For using `calculateTotals` in labels.\r\n\t */\r\n\tpublic calculateTotals: boolean = false;\r\n\r\n\r\n\tprotected _minMaxAnimation: Animation;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"ValueAxis\";\r\n\r\n\t\t// Set field name\r\n\t\tthis.axisFieldName = \"value\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.setPropertyValue(\"maxZoomFactor\", 1000);\r\n\t\tthis.setPropertyValue(\"extraMin\", 0);\r\n\t\tthis.setPropertyValue(\"extraMax\", 0);\r\n\t\tthis.setPropertyValue(\"strictMinMax\", false);\r\n\t\tthis.setPropertyValue(\"maxPrecision\", Number.MAX_VALUE);\r\n\t\tthis.setPropertyValue(\"adjustLabelPrecision\", true);\r\n\t\tthis.setPropertyValue(\"extraTooltipPrecision\", 0);\r\n\t\tthis.keepSelection = false;\r\n\t\tthis.includeRangesInMinMax = false;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new ValueAxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new ValueAxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * [dataChangeUpdate description]\r\n\t *\r\n\t * This is a placeholder to override for extending classes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataChangeUpdate(): void {\r\n\t\tthis.clearCache();\r\n\t\tif (!this.keepSelection) {\r\n\t\t\tif (this._start != 0 || this._end != 1) {\r\n\t\t\t\tthis._start = 0;\r\n\t\t\t\tthis._end = 1;\r\n\t\t\t\tthis.dispatchImmediately(\"startendchanged\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._start != 0) {\r\n\t\t\t\tthis.dispatchImmediately(\"startchanged\");\r\n\t\t\t}\r\n\t\t\tif (this._end != 1) {\r\n\t\t\t\tthis.dispatchImmediately(\"endchanged\");\r\n\r\n\t\t\t}\r\n\t\t\tif (this._start != 0 || this._end != 1) {\r\n\t\t\t\tthis.dispatchImmediately(\"startendchanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._maxZoomed = this._maxDefined;\r\n\t\tthis._minZoomed = this._minDefined;\r\n\t\tthis._maxAdjusted = this._maxDefined;\r\n\t\tthis._minAdjusted = this._minDefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes data items of the related Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processSeriesDataItems(): void {\r\n\t\t// @todo: add some boolean (maybe autodedect) if we need these calculations or not. this place uses a lot of cpu\r\n\t\tif (this.calculateTotals) {\r\n\t\t\tlet series: XYSeries = this.series.getIndex(0);\r\n\t\t\tlet startIndex: number = series.startIndex;\r\n\r\n\t\t\tif (series.dataItems.length > 0) {\r\n\r\n\t\t\t\tif (startIndex > 0) {\r\n\t\t\t\t\tstartIndex--;\r\n\t\t\t\t}\r\n\t\t\t\tlet endIndex: number = series.endIndex;\r\n\t\t\t\tif (endIndex < series.dataItems.length) {\r\n\t\t\t\t\tendIndex++;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// This has to be `var` in order to avoid garbage collection\r\n\t\t\t\tfor (let i: number = startIndex; i < endIndex; ++i) {\r\n\t\t\t\t\t// This has to be `var` in order to avoid garbage collection\r\n\t\t\t\t\tconst total: { [index: string]: number } = {};\r\n\t\t\t\t\tconst sum: { [index: string]: number } = {};\r\n\r\n\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\tif (!series.excludeFromTotal) {\r\n\t\t\t\t\t\t\tlet dataItem: XYSeriesDataItem = series.dataItems.getIndex(i);\r\n\t\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\t\t$object.each(dataItem.values, (key) => {\r\n\t\t\t\t\t\t\t\t\tlet value: number = dataItem.values[key].workingValue; // can not use getWorkingValue here!\r\n\r\n\t\t\t\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNumber(total[key])) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotal[key] = Math.abs(value);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\ttotal[key] += Math.abs(value);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNumber(sum[key])) {\r\n\t\t\t\t\t\t\t\t\t\t\tsum[key] = value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tsum[key] += value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\tif (!series.excludeFromTotal) {\r\n\t\t\t\t\t\t\tlet dataItem: XYSeriesDataItem = series.dataItems.getIndex(i);\r\n\t\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\t\t$object.each(dataItem.values, (key) => {\r\n\t\t\t\t\t\t\t\t\tlet value: number = dataItem.values[key].workingValue; // can not use getWorkingValue here!\r\n\t\t\t\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t\t\t\t\tdataItem.setCalculatedValue(key, total[key], \"total\");\r\n\t\t\t\t\t\t\t\t\t\tdataItem.setCalculatedValue(key, 100 * value / total[key], \"totalPercent\");\r\n\t\t\t\t\t\t\t\t\t\tdataItem.setCalculatedValue(key, sum[key], \"sum\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates the whole axis. Causes it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tif (this.axisLength <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tthis.getMinMax();\r\n\r\n\t\tthis.fixAxisBreaks();\r\n\r\n\t\tthis.calculateZoom();\r\n\r\n\t\tthis.validateAxisElements();\r\n\r\n\t\tthis.validateAxisRanges();\r\n\r\n\t\tthis.validateBreaks();\r\n\r\n\t\tthis.hideUnusedDataItems();\r\n\r\n\t\tthis.renderer.invalidateLayout();\r\n\t\t// hide too close\r\n\t\t//this.hideTooCloseDataItems();\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates all positions, related to axis as per current zoom.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic calculateZoom(): void {\r\n\t\tif ($type.isNumber(this.min) && $type.isNumber(this.max)) {\r\n\t\t\tlet min: number = this.positionToValue(this.start);\r\n\t\t\tlet max: number = this.positionToValue(this.end);\r\n\r\n\t\t\tlet differece: number = this.adjustDifference(min, max);\r\n\t\t\tlet minMaxStep: IMinMaxStep = this.adjustMinMax(min, max, differece, this._gridCount, true);\r\n\r\n\t\t\tlet stepDecimalPlaces = $utils.decimalPlaces(minMaxStep.step);\r\n\t\t\tthis._stepDecimalPlaces = stepDecimalPlaces;\r\n\r\n\t\t\tmin = $math.round(min, stepDecimalPlaces);\r\n\t\t\tmax = $math.round(max, stepDecimalPlaces);\r\n\r\n\t\t\tminMaxStep = this.adjustMinMax(min, max, differece, this._gridCount, true);\r\n\t\t\tlet step = minMaxStep.step;\r\n\r\n\t\t\tif (this.syncWithAxis) {\r\n\t\t\t\tlet calculated = this.getCache(min + \"-\" + max);\r\n\t\t\t\tif ($type.isNumber(calculated)) {\r\n\t\t\t\t\tstep = calculated;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmin = minMaxStep.min;\r\n\t\t\t\tmax = minMaxStep.max;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._minZoomed != min || this._maxZoomed != max || this._step != step) {\r\n\t\t\t\tthis._minZoomed = min;\r\n\t\t\t\tthis._maxZoomed = max;\r\n\t\t\t\tthis._step = step;\r\n\t\t\t\tthis.dispatchImmediately(\"selectionextremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic validateAxisElements(): void {\r\n\t\tif ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n\t\t\t// first regular items\r\n\t\t\tlet value: number = this.minZoomed - this._step * 2;\r\n\r\n\t\t\tif (!this.logarithmic) {\r\n\t\t\t\tvalue = Math.floor(value / this._step) * this._step;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet differencePower = Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E;\r\n\t\t\t\tif (differencePower > 1) {\r\n\t\t\t\t\tvalue = Math.pow(10, Math.log(this.min) * Math.LOG10E);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvalue = Math.floor(this.minZoomed / this._step) * this._step;\r\n\t\t\t\t\tif (value == 0) {\r\n\t\t\t\t\t\tvalue = this.minZoomed;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet maxZoomed = this._maxZoomed + this._step;\r\n\r\n\t\t\tthis.resetIterators();\r\n\r\n\t\t\tlet dataItemsIterator = this._dataItemsIterator;\r\n\r\n\t\t\tlet i: number = 0;\r\n\r\n\t\t\tconst precisionChanged = this._prevStepDecimalPlaces != this._stepDecimalPlaces;\r\n\t\t\tthis._prevStepDecimalPlaces = this._stepDecimalPlaces;\r\n\r\n\t\t\twhile (value <= maxZoomed) {\r\n\t\t\t\tlet axisBreak: ValueAxisBreak = <ValueAxisBreak>this.isInBreak(value);\r\n\r\n\t\t\t\tif (!axisBreak) {\r\n\r\n\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = dataItemsIterator.find((x) => x.value === value);\r\n\t\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//this.processDataItem(dataItem);\r\n\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\tdataItem.axisBreak = undefined;\r\n\r\n\t\t\t\t\tif (dataItem.value != value || precisionChanged) {\r\n\t\t\t\t\t\tdataItem.value = value;\r\n\t\t\t\t\t\tdataItem.text = this.formatLabel(value);\r\n\r\n\t\t\t\t\t\tif (dataItem.label && dataItem.label.invalid) {\r\n\t\t\t\t\t\t\tdataItem.label.validate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (dataItem.value >= this.min && dataItem.value <= this.max) {\r\n\t\t\t\t\t\t\tif (dataItem.label) {\r\n\t\t\t\t\t\t\t\tif ((this.axisLetter == \"Y\" && dataItem.label.measuredWidth > this.ghostLabel.measuredWidth) || (this.axisLetter == \"X\" && dataItem.label.measuredHeight > this.ghostLabel.measuredHeight)) {\r\n\t\t\t\t\t\t\t\t\tthis.ghostLabel.text = dataItem.label.currentText;\r\n\t\t\t\t\t\t\t\t\tthis.ghostLabel.validate();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t\t}\r\n\t\t\t\ti++;\r\n\r\n\t\t\t\tif (!this.logarithmic) {\r\n\t\t\t\t\tvalue += this._step;\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet differencePower = Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E;\r\n\t\t\t\t\tif (differencePower > 1) {\r\n\t\t\t\t\t\tvalue = Math.pow(10, Math.log(this.min) * Math.LOG10E + i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue += this._step;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(this._step)) * Math.LOG10E));\r\n\t\t\t\tif (stepPower < 1) {\r\n\t\t\t\t\t// exponent is less then 1 too. Count decimals of exponent\r\n\t\t\t\t\tlet decCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 2;\r\n\t\t\t\t\t// round value to avoid floating point issues\r\n\t\t\t\t\tvalue = $math.round(value, decCount);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tlet axisBreaks = this._axisBreaks;\r\n\t\t\tif (axisBreaks) {\r\n\t\t\t\t// breaks later\r\n\t\t\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\t\t\t\t$iter.each(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\tif (axisBreak.breakSize > 0) {\r\n\t\t\t\t\t\t// only add grid if gap is bigger then minGridDistance\r\n\t\t\t\t\t\tif ($math.getDistance(axisBreak.startPoint, axisBreak.endPoint) > renderer.minGridDistance) {\r\n\t\t\t\t\t\t\tlet breakValue: number = axisBreak.adjustedMin;\r\n\r\n\t\t\t\t\t\t\twhile (breakValue <= axisBreak.adjustedMax) {\r\n\t\t\t\t\t\t\t\tif (breakValue >= axisBreak.adjustedStartValue && breakValue <= axisBreak.adjustedEndValue) {\r\n\t\t\t\t\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = dataItemsIterator.find((x) => x.value === breakValue);\r\n\t\t\t\t\t\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t//this.processDataItem(dataItem);\r\n\t\t\t\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\t\t\t\tdataItem.axisBreak = axisBreak;\r\n\t\t\t\t\t\t\t\t\tif (dataItem.value != breakValue) {\r\n\t\t\t\t\t\t\t\t\t\tdataItem.value = breakValue;\r\n\t\t\t\t\t\t\t\t\t\tdataItem.text = this.formatLabel(breakValue);\r\n\t\t\t\t\t\t\t\t\t\tif (dataItem.label && dataItem.label.invalid) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataItem.label.validate();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreakValue += axisBreak.adjustedStep;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates axis data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\t//dataItem.__disabled = false;\r\n\r\n\t\tdataItem.itemIndex = this._axisItemCount;\r\n\t\tthis._axisItemCount++;\r\n\r\n\t\tlet renderer: AxisRenderer = this.renderer;\r\n\t\tlet value: number = dataItem.value;\r\n\t\tlet endValue: number = dataItem.endValue;\r\n\r\n\t\tlet position: number = this.valueToPosition(value);\r\n\t\tdataItem.position = position;\r\n\r\n\t\tlet endPosition: number = position;\r\n\t\tlet fillEndPosition: number = this.valueToPosition(value + this._step);\r\n\r\n\t\tif ($type.isNumber(endValue)) {\r\n\t\t\tendPosition = this.valueToPosition(endValue);\r\n\t\t\tfillEndPosition = endPosition;\r\n\t\t}\r\n\r\n\t\t// this point is needed to calculate distance to satisfy minGridDistance\r\n\t\tdataItem.point = renderer.positionToPoint(position);\r\n\r\n\t\tlet tick: AxisTick = dataItem.tick;\r\n\t\tif (tick && !tick.disabled) {\r\n\t\t\trenderer.updateTickElement(tick, position, endPosition);\r\n\t\t}\r\n\r\n\t\tlet grid: Grid = dataItem.grid;\r\n\t\tif (grid && !grid.disabled) {\r\n\t\t\trenderer.updateGridElement(grid, position, endPosition);\r\n\t\t}\r\n\r\n\r\n\t\tlet label: AxisLabel = dataItem.label;\r\n\t\tif (label && !label.disabled) {\r\n\t\t\trenderer.updateLabelElement(label, position, endPosition);\r\n\t\t}\r\n\r\n\t\tlet fill: AxisFill = dataItem.axisFill;\r\n\t\tif (fill && !fill.disabled) {\r\n\t\t\trenderer.updateFillElement(fill, position, fillEndPosition);\r\n\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\tthis.fillRule(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataItem.bullet) {\r\n\t\t\trenderer.updateBullet(dataItem.bullet, position, endPosition);\r\n\t\t}\r\n\r\n\t\tlet mask: AxisFill = dataItem.mask;\r\n\t\tif (mask) {\r\n\t\t\trenderer.updateFillElement(mask, position, fillEndPosition);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the value according to axis' own [[NumberFormatter]].\r\n\t *\r\n\t * @param value Source value\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic formatLabel(value: number): string {\r\n\t\tif (this.adjustLabelPrecision && value != 0) {\r\n\t\t\treturn this.numberFormatter.format(value, undefined, this._stepDecimalPlaces);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.numberFormatter.format(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\tlet baseValue: number = this.baseValue;\r\n\t\tlet position: number = this.valueToPosition(baseValue);\r\n\t\tlet basePoint: IPoint = this.renderer.positionToPoint(position);\r\n\r\n\t\treturn basePoint;\r\n\t}\r\n\r\n\t/**\r\n\t * A base value.\r\n\t *\r\n\t * This is a threshold value that will divide \"positive\" and \"negative\"\r\n\t * value ranges.\r\n\t *\r\n\t * Other scale-related functionality also depend on base value. E.g. stacks,\r\n\t * value-dependent coloring, etc.\r\n\t *\r\n\t * @param value Base value\r\n\t */\r\n\tpublic set baseValue(value: number) {\r\n\t\tthis._baseValue = value;\r\n\t\tthis.invalidateLayout();\r\n\t\tthis.invalidateSeries();\r\n\t}\r\n\r\n\t/**\r\n\t * @return base value\r\n\t */\r\n\tpublic get baseValue(): number {\r\n\r\n\t\tlet baseValue = this._baseValue;\r\n\t\tif (this.logarithmic) {\r\n\t\t\tbaseValue = this.min;\r\n\t\t}\r\n\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn baseValue;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"baseValue\", baseValue);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a numeric value to relative position on axis\r\n\t *\r\n\t * An alias to `valueToPosition()`.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Position\r\n\t */\r\n\tpublic anyToPosition(value: number): number {\r\n\t\treturn this.valueToPosition(value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a numeric value to orientation point (x, y, angle) on axis\r\n\t *\r\n\t * @param value Value\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic valueToPoint(value: number): IOrientationPoint {\r\n\t\tlet position = this.valueToPosition(value);\r\n\t\tlet point = this.renderer.positionToPoint(position);\r\n\t\tlet angle = this.renderer.positionToAngle(position);\r\n\t\treturn { x: point.x, y: point.y, angle: angle };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a numeric value to orientation (x, y, angle) point on axis\r\n\t *\r\n\t * @param value Value\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic anyToPoint(value: number): IOrientationPoint {\r\n\t\treturn this.valueToPoint(value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a numeric value to relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tif ($type.isNumber(value)) {\r\n\r\n\t\t\t// todo: think if possible to take previous value and do not go through all previous breaks\r\n\t\t\tlet min: number = this.min;\r\n\t\t\tlet max: number = this.max;\r\n\r\n\t\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\r\n\t\t\t\tlet difference: number = this._difference;\r\n\r\n\t\t\t\tlet axisBreaks = this._axisBreaks;\r\n\t\t\t\tif (axisBreaks && axisBreaks.length > 0) {\r\n\t\t\t\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\t\tlet startValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\t\t\tlet endValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(startValue) && $type.isNumber(endValue)) {\r\n\r\n\t\t\t\t\t\t\tif (value < startValue) {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($math.intersect({ start: startValue, end: endValue }, { start: min, end: max })) { // todo: check this once and set some flag in axisBreak\r\n\t\t\t\t\t\t\t\tstartValue = Math.max(startValue, min);\r\n\t\t\t\t\t\t\t\tendValue = Math.min(endValue, max);\r\n\r\n\t\t\t\t\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\t\t\t\t\t// value to the right of break end\r\n\t\t\t\t\t\t\t\tif (value > endValue) {\r\n\t\t\t\t\t\t\t\t\tmin += (endValue - startValue) * (1 - breakSize); // todo: maybe this can be done differently?\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// value to the left of break start\r\n\t\t\t\t\t\t\t\telse if (value < startValue) {\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// value within break\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tvalue = startValue + (value - startValue) * breakSize;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet position;\r\n\r\n\t\t\t\tif (!this.logarithmic) {\r\n\t\t\t\t\tposition = (value - min) / difference;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tposition = (Math.log(value) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) / ((Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//position = $math.round(position, 10);\r\n\r\n\t\t\t\treturn position;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * When fontSize of fontFamily changes we need to hard-invalidate all Labels of this container to position them properly.\r\n\t */\r\n\tpublic invalidateLabels() {\r\n\t\tsuper.invalidateLabels();\r\n\t\tif (this.dataItems) {\r\n\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\tdataItem.value = undefined;\r\n\t\t\t})\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts an relative position to a corresponding value within\r\n\t * axis' scale.\r\n\t *\r\n\t * @param position Position (px)\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\t\tposition = $math.round(position, 10);\r\n\r\n\t\tlet min: number = this.min;\r\n\t\tlet max: number = this.max;\r\n\r\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\r\n\r\n\t\t\tlet difference: number = max - min; //no need to adjust!\r\n\r\n\t\t\tlet value: number = null;\r\n\r\n\t\t\tlet axisBreaks = this._axisBreaks;\r\n\r\n\t\t\tif (axisBreaks) {\r\n\t\t\t\t// in case we have some axis breaks\r\n\t\t\t\tif (axisBreaks.length > 0) {\r\n\t\t\t\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\t\tlet breakStartPosition: number = axisBreak.startPosition;\r\n\t\t\t\t\t\tlet breakEndPosition: number = axisBreak.endPosition;\r\n\r\n\t\t\t\t\t\tlet breakStartValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\t\t\tlet breakEndValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(breakStartValue) && $type.isNumber(breakEndValue)) {\r\n\r\n\t\t\t\t\t\t\tif (breakStartValue > max) {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($math.intersect({ start: breakStartValue, end: breakEndValue }, { start: min, end: max })) {\r\n\r\n\t\t\t\t\t\t\t\tbreakStartValue = $math.max(breakStartValue, min);\r\n\t\t\t\t\t\t\t\tbreakEndValue = $math.min(breakEndValue, max);\r\n\r\n\t\t\t\t\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\t\t\t\t\tdifference -= (breakEndValue - breakStartValue) * (1 - breakSize);\r\n\r\n\t\t\t\t\t\t\t\t// position to the right of break end\r\n\t\t\t\t\t\t\t\tif (position > breakEndPosition) {\r\n\t\t\t\t\t\t\t\t\tmin += (breakEndValue - breakStartValue) * (1 - breakSize);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// position to the left of break start\r\n\t\t\t\t\t\t\t\telse if (position < breakStartPosition) {\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// value within break\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tlet breakPosition: number = (position - breakStartPosition) / (breakEndPosition - breakStartPosition);\r\n\t\t\t\t\t\t\t\t\tvalue = breakStartValue + breakPosition * (breakEndValue - breakStartValue);\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNumber(value)) {\r\n\t\t\t\tif (this.logarithmic) {\r\n\t\t\t\t\tvalue = Math.pow(Math.E, (position * ((Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E)) + Math.log(this.min) * Math.LOG10E) / Math.LOG10E);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvalue = position * difference + min;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts an X coordinate to a relative value in axis' scale.\r\n\t *\r\n\t * @param x X (px)\r\n\t * @return Value\r\n\t */\r\n\tpublic xToValue(x: number): number {\r\n\t\treturn this.positionToValue(this.pointToPosition({ x: x, y: 0 }));\r\n\t}\r\n\r\n\t/**\r\n\t * Converts an Y coordinate to a relative value in axis' scale.\r\n\t *\r\n\t * @param y Y (px)\r\n\t * @return Value\r\n\t */\r\n\tpublic yToValue(y: number): number {\r\n\t\treturn this.positionToValue(this.pointToPosition({ x: 0, y: y }));\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts pixel coordinates to a relative position. (0-1)\r\n\t *\r\n\t * @param point Coorinates (px)\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint): number {\r\n\t\tif (this.renderer instanceof AxisRendererY) {\r\n\t\t\treturn 1 - this.renderer.pointToPosition(point);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.renderer.pointToPosition(point);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected animateMinMax(min: number, max: number): Animation {\r\n\t\treturn this.animate([{ property: \"_minAdjusted\", from: this._minAdjusted, to: min }, { property: \"_maxAdjusted\", from: this._maxAdjusted, to: max }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Calculates smallest and biggest value for the axis scale.\r\n\t * @ignore\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic getMinMax() {\r\n\r\n\t\tthis.updateGridCount();\r\n\r\n\t\tlet min: number = Number.POSITIVE_INFINITY;\r\n\t\tlet max: number = Number.NEGATIVE_INFINITY;\r\n\r\n\t\t// only if min and max are not set from outside, we go through min and max influencers\r\n\t\tif (!$type.isNumber(this._minDefined) || !$type.isNumber(this._maxDefined)) {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (!series.ignoreMinMax) {\r\n\t\t\t\t\t// check min\r\n\t\t\t\t\tlet seriesMin: number = series.min(this);\r\n\t\t\t\t\tif ($type.isNumber(seriesMin) && (seriesMin < min)) {\r\n\t\t\t\t\t\tmin = seriesMin;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// check max\r\n\t\t\t\t\tlet seriesMax: number = series.max(this);\r\n\r\n\t\t\t\t\tif ($type.isNumber(seriesMax) && (seriesMax > max)) {\r\n\t\t\t\t\t\tmax = seriesMax;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (this.includeRangesInMinMax) {\r\n\t\t\t\tthis.axisRanges.each((range) => {\r\n\t\t\t\t\tif (!range.ignoreMinMax) {\r\n\t\t\t\t\t\tlet minValue = $math.min(range.value, range.endValue);\r\n\t\t\t\t\t\tlet maxValue = $math.max(range.value, range.endValue);\r\n\r\n\t\t\t\t\t\tif (minValue < min || !$type.isNumber(min)) {\r\n\t\t\t\t\t\t\tmin = minValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (maxValue > max || !$type.isNumber(max)) {\r\n\t\t\t\t\t\t\tmax = maxValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.logarithmic) {\r\n\t\t\tif (min <= 0) {\r\n\t\t\t\tthis.raiseCriticalError(new Error(\"Logarithmic value axis can not have values <= 0.\"), true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (min == 0 && max == 0) {\r\n\t\t\tmax = 0.9;\r\n\t\t\tmin = -0.9;\r\n\t\t}\r\n\r\n\t\t// if defined from outside\r\n\t\tif ($type.isNumber(this._minDefined)) {\r\n\t\t\tmin = this._minDefined;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this._maxDefined)) {\r\n\t\t\tmax = this._maxDefined;\r\n\t\t}\r\n\r\n\t\tif (this._adapterO) {\r\n\t\t\tmin = this._adapterO.apply(\"min\", min);\r\n\t\t}\r\n\r\n\t\tif (this._adapterO) {\r\n\t\t\tmax = this._adapterO.apply(\"max\", max);\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(min) || !$type.isNumber(max)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._minReal = min;\r\n\t\tthis._maxReal = max;\r\n\r\n\t\tif (min == Number.POSITIVE_INFINITY) {\r\n\t\t\tmin = undefined;\r\n\t\t}\r\n\t\tif (max == Number.NEGATIVE_INFINITY) {\r\n\t\t\tmax = undefined;\r\n\t\t}\r\n\r\n\t\tlet dif: number = this.adjustDifference(min, max); // previously it was max-min, but not worked well\r\n\r\n\r\n\t\tmin = this.fixMin(min);\r\n\t\tmax = this.fixMax(max);\r\n\r\n\t\t// this happens if starLocation and endLocation are 0.5 and DateAxis has only one date\r\n\t\tif (max - min <= 1 / Math.pow(10, 15)) {\r\n\t\t\tif (max - min != 0) {\r\n\t\t\t\tthis._deltaMinMax = (max - min) / 2;\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// the number by which we need to raise 10 to get difference\r\n\t\t\t\tlet exponent: number = Math.log(Math.abs(max)) * Math.LOG10E;\r\n\r\n\t\t\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\r\n\t\t\t\tlet power = Math.pow(10, Math.floor(exponent));\r\n\r\n\t\t\t\t// reduce this number by 10 times\r\n\t\t\t\tpower = power / 10;\r\n\r\n\t\t\t\tthis._deltaMinMax = power;\r\n\t\t\t}\r\n\t\t\tmin -= this._deltaMinMax;\r\n\t\t\tmax += this._deltaMinMax;\r\n\t\t}\r\n\r\n\t\tmin -= (max - min) * this.extraMin;\r\n\t\tmax += (max - min) * this.extraMax;\r\n\r\n\t\tlet strict = this.strictMinMax;\r\n\t\tif ($type.isNumber(this._maxDefined)) {\r\n\t\t\tstrict = true;\r\n\t\t}\r\n\r\n\t\tlet minMaxStep: IMinMaxStep = this.adjustMinMax(min, max, dif, this._gridCount, strict);\r\n\r\n\t\tmin = minMaxStep.min;\r\n\t\tmax = minMaxStep.max;\r\n\r\n\t\tdif = max - min; //new\r\n\r\n\t\t// do it for the second time (importat!)\r\n\t\tminMaxStep = this.adjustMinMax(min, max, max - min, this._gridCount, true);\r\n\r\n\t\tmin = minMaxStep.min;\r\n\t\tmax = minMaxStep.max;\r\n\r\n\t\t// return min max if strict\r\n\t\tif (this.strictMinMax) {\r\n\t\t\tif ($type.isNumber(this._minDefined)) {\r\n\t\t\t\tmin = this._minDefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmin = this._minReal;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(this._maxDefined)) {\r\n\t\t\t\tmax = this._maxDefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmax = this._maxReal;\r\n\t\t\t}\r\n\r\n\t\t\tif (max - min <= 0.00000001) {\r\n\t\t\t\tmin -= this._deltaMinMax;\r\n\t\t\t\tmax += this._deltaMinMax;\r\n\t\t\t}\r\n\r\n\t\t\tmin -= (max - min) * this.extraMin;\r\n\t\t\tmax += (max - min) * this.extraMax;\r\n\t\t}\r\n\r\n\t\tif (this._adapterO) {\r\n\t\t\tmin = this._adapterO.apply(\"min\", min);\r\n\t\t}\r\n\r\n\t\tif (this._adapterO) {\r\n\t\t\tmax = this._adapterO.apply(\"max\", max);\r\n\t\t}\r\n\r\n\t\tthis._step = minMaxStep.step;\r\n\r\n\t\t// checking isNumber is good when all series are hidden\r\n\t\tif ((this._minAdjusted != min || this._maxAdjusted != max) && $type.isNumber(min) && $type.isNumber(max)) {\r\n\r\n\t\t\tlet animation = this._minMaxAnimation;\r\n\r\n\t\t\tif (this._extremesChanged && $type.isNumber(this._minAdjusted) && $type.isNumber(this._maxAdjusted) && this.inited) {\r\n\t\t\t\tif ((animation && !animation.isFinished()) && this._finalMax == max && this._finalMin == min) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._finalMin = min;\r\n\t\t\t\t\tthis._finalMax = max;\r\n\r\n\t\t\t\t\tanimation = this.animateMinMax(min, max);\r\n\r\n\t\t\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\t\t\tanimation.events.on(\"animationprogress\", this.validateDataItems, this);\r\n\r\n\t\t\t\t\t\tanimation.events.on(\"animationended\", () => {\r\n\t\t\t\t\t\t\t//this.validateDataItems();\r\n\t\t\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\t\t\tseries.validate();\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tthis.validateDataItems();\r\n\t\t\t\t\t\t\tthis.handleSelectionExtremesChange();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis._minMaxAnimation = animation;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\t\tseries.validate();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.validateDataItems();\r\n\t\t\t\t\tthis.dispatchImmediately(\"extremeschanged\");\r\n\t\t\t\t\tthis.handleSelectionExtremesChange();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif ((animation && !animation.isFinished()) && this._finalMax == max && this._finalMin == min) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._minAdjusted = min;\r\n\t\t\t\t\tthis._maxAdjusted = max;\r\n\r\n\t\t\t\t\tthis._finalMin = min;\r\n\t\t\t\t\tthis._finalMax = max;\r\n\r\n\t\t\t\t\tthis.invalidateDataItems();\r\n\t\t\t\t\tthis.dispatchImmediately(\"extremeschanged\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._extremesChanged = false;\r\n\t\tthis._difference = this.adjustDifference(min, max);\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the minimum value.\r\n\t *\r\n\t * This is a placeholder method for extending classes to override.\r\n\t *\r\n\t * For numeric values this does nothing, however for more complex types, like\r\n\t * dates, it may be necessary to adjust.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMin(value: number): number {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the maximum value.\r\n\t *\r\n\t * This is a placeholder method for extending classes to override.\r\n\t *\r\n\t * For numeric values this does nothing, however for more complex types, like\r\n\t * dates, it may be necessary to adjust.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMax(value: number): number {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts actual min and max scale values so that the axis starts and ends\r\n\t * at \"nice\" values, unless `strictMinMax` is set.\r\n\t *\r\n\t * The `difference` can be something else than `max - min`, because of the\r\n\t * axis breaks.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param min [description]\r\n\t * @param max [description]\r\n\t * @param difference [description]\r\n\t * @param gridCount [description]\r\n\t * @param strictMode [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic adjustMinMax(min: number, max: number, difference: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\r\n\r\n\t\t// will fail if 0\r\n\t\tif (gridCount <= 1) {\r\n\t\t\tgridCount = 1;\r\n\t\t}\r\n\r\n\t\tgridCount = Math.round(gridCount);\r\n\r\n\t\tlet initialMin: number = min;\r\n\t\tlet initialMax: number = max;\r\n\r\n\t\t// in case min and max is the same, use max\r\n\t\tif (difference === 0) {\r\n\t\t\tdifference = Math.abs(max);\r\n\t\t}\r\n\r\n\t\t// the number by which we need to raise 10 to get difference\r\n\t\tlet exponent: number = Math.log(Math.abs(difference)) * Math.LOG10E;\r\n\r\n\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\r\n\t\tlet power = Math.pow(10, Math.floor(exponent));\r\n\r\n\t\t// reduce this number by 10 times\r\n\t\tpower = power / 10;\r\n\r\n\t\tlet extra: number = power;\r\n\t\tif (strictMode) {\r\n\t\t\textra = 0;\r\n\t\t}\r\n\r\n\t\tif (!this.logarithmic) {\r\n\r\n\t\t\t// round down min\r\n\t\t\tif (strictMode) {\r\n\t\t\t\tmin = Math.floor(min / power) * power;\r\n\t\t\t\t// round up max\r\n\t\t\t\tmax = Math.ceil(max / power) * power;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmin = Math.ceil(min / power) * power - extra;\r\n\t\t\t\t// round up max\r\n\t\t\t\tmax = Math.floor(max / power) * power + extra;\r\n\t\t\t}\r\n\r\n\t\t\t// don't let min go below 0 if real min is >= 0\r\n\t\t\tif (min < 0 && initialMin >= 0) {\r\n\t\t\t\tmin = 0;\r\n\t\t\t}\r\n\t\t\t// don't let max go above 0 if real max is <= 0\r\n\t\t\tif (max > 0 && initialMax <= 0) {\r\n\t\t\t\tmax = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (min <= 0) {\r\n\t\t\t\t//throw Error(\"Logarithmic value axis can not have values <= 0.\");\r\n\t\t\t\tmin = this.baseValue;\r\n\t\t\t}\r\n\r\n\t\t\t// @todo: think of a better way or to restrict zooming when no series are selected\r\n\t\t\tif (min == Infinity) {\r\n\t\t\t\tmin = 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (max == -Infinity) {\r\n\t\t\t\tmax = 10;\r\n\t\t\t}\r\n\r\n\t\t\tmin = Math.pow(10, Math.floor(Math.log(Math.abs(min)) * Math.LOG10E));\r\n\t\t\tmax = Math.pow(10, Math.ceil(Math.log(Math.abs(max)) * Math.LOG10E));\r\n\r\n\t\t\tif(this.strictMinMax){\r\n\t\t\t\tif(this._minDefined > 0){\r\n\t\t\t\t\tmin = this._minDefined;\r\n\t\t\t\t}\r\n\t\t\t\tif(this._maxDefined > 0){\r\n\t\t\t\t\tmax = this._maxDefined;\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t\t// repeat diff, exponent and power again with rounded values\r\n\t\t//difference = this.adjustDifference(min, max);\r\n\t\t/*\r\n\r\n\t\t\t\tif(min > initialMin){\r\n\t\t\t\t\tmin = initialMin;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(max < initialMax){\r\n\t\t\t\t\tmax = initialMax;\r\n\t\t\t\t}\r\n\t\t*/\r\n\r\n\t\texponent = Math.log(Math.abs(difference)) * Math.LOG10E;\r\n\t\tpower = Math.pow(10, Math.floor(exponent));\r\n\t\tpower = power / 10;\r\n\r\n\t\t// approximate difference between two grid lines\r\n\t\tlet step = Math.ceil((difference / gridCount) / power) * power;\r\n\r\n\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\r\n\r\n\t\t// TODO: in v3 I had fixStepE here, ommiting it for a while, need to think about other solution\r\n\t\t// the step should divide by 2, 5, and 10.\r\n\t\tlet stepDivisor: number = Math.ceil(step / stepPower); // number 0 - 10\r\n\r\n\r\n\t\tif (stepDivisor > 5) {\r\n\t\t\tstepDivisor = 10;\r\n\t\t}\r\n\t\telse if (stepDivisor <= 5 && stepDivisor > 2) {\r\n\t\t\tstepDivisor = 5;\r\n\t\t}\r\n\r\n\t\t// now get real step\r\n\t\tstep = Math.ceil(step / (stepPower * stepDivisor)) * stepPower * stepDivisor;\r\n\r\n\t\tif (this.maxPrecision < Number.MAX_VALUE && step != $math.ceil(step, this.maxPrecision)) {\r\n\t\t\tstep = $math.ceil(step, this.maxPrecision);\r\n\t\t}\r\n\r\n\t\tlet decCount: number = 0;\r\n\t\t// in case numbers are smaller than 1\r\n\t\tif (stepPower < 1) {\r\n\t\t\t// exponent is less then 1 too. Count decimals of exponent\r\n\t\t\tdecCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 1;\r\n\t\t\t// round step\r\n\t\t\tstep = $math.round(step, decCount);\r\n\t\t}\r\n\t\tif (!this.logarithmic) {\r\n\t\t\t// final min and max\r\n\t\t\tlet minCount = Math.floor(min / step);\r\n\r\n\t\t\tmin = $math.round(step * minCount, decCount);\r\n\r\n\t\t\tlet maxCount: number;\r\n\r\n\t\t\tif (!strictMode) {\r\n\t\t\t\tmaxCount = Math.ceil(max / step);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmaxCount = Math.floor(max / step);\r\n\t\t\t}\r\n\r\n\t\t\tif (maxCount == minCount) {\r\n\t\t\t\tmaxCount++;\r\n\t\t\t}\r\n\r\n\t\t\tmax = $math.round(step * maxCount, decCount);\r\n\r\n\t\t\tif (max < initialMax) {\r\n\t\t\t\tmax = max + step;\r\n\t\t\t}\r\n\r\n\t\t\tif (min > initialMin) {\r\n\t\t\t\tmin = min - step;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn { min: min, max: max, step: step };\r\n\t}\r\n\r\n\t/**\r\n\t * A minimum value for the axis scale.\r\n\t *\r\n\t * This value might be auto-adjusted by the Axis in order to accomodate the\r\n\t * grid nicely, i.e. plot area is divided by grid in nice equal cells.\r\n\t *\r\n\t * The above might be overridden by `strictMinMax` which will force exact\r\n\t * user-defined min and max values to be used for scale.\r\n\t *\r\n\t * @param value Min value\r\n\t */\r\n\tpublic set min(value: number | undefined) {\r\n\t\tif (this._minDefined != value) {\r\n\t\t\tthis._minDefined = value;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Min value\r\n\t */\r\n\tpublic get min(): number | undefined {\r\n\t\tlet min = this._minAdjusted;\r\n\t\tif (!$type.isNumber(min)) {\r\n\t\t\tmin = this._minDefined;\r\n\t\t}\r\n\t\treturn min;\r\n\t}\r\n\r\n\t/**\r\n\t * Min value as defined by user's code, not auto-calculated.\r\n\t *\r\n\t * @readonly\r\n\t * @return Min value\r\n\t */\r\n\tpublic get minDefined(): number {\r\n\t\treturn this._minDefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Max value as defined by user's code, not auto-calculated.\r\n\t *\r\n\t * @readonly\r\n\t * @return Man value\r\n\t */\r\n\tpublic get maxDefined(): number {\r\n\t\treturn this._maxDefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Allows relatively adjusting minimum value of the axis' scale.\r\n\t *\r\n\t * The value is relative to the actual range of values currently displayed\r\n\t * on the axis.\r\n\t *\r\n\t * E.g.: 0.5 will mean half of the current range. If we have axis displaying\r\n\t * from 100 to 200, we will now have axis displaying from 50 to 200 because\r\n\t * we asked to expand minimum value by 50% (0.5).\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set extraMin(value: number) {\r\n\t\tif (this.setPropertyValue(\"extraMin\", value)) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number}\r\n\t */\r\n\tpublic get extraMin(): number {\r\n\t\treturn this.getPropertyValue(\"extraMin\");\r\n\t}\r\n\r\n\t/**\r\n\t * Allows relatively adjusting maximum value of the axis' scale.\r\n\t *\r\n\t * The value is relative to the actual range of values currently displayed\r\n\t * on the axis.\r\n\t *\r\n\t * E.g.: 0.5 will mean half of the current range. If we have axis displaying\r\n\t * from 100 to 200, we will now have axis displaying from 100 to 250 because\r\n\t * we asked to expand maximum value by 50% (0.5).\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set extraMax(value: number) {\r\n\t\tif (this.setPropertyValue(\"extraMax\", value)) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Min multiplier\r\n\t */\r\n\tpublic get extraMax(): number {\r\n\t\treturn this.getPropertyValue(\"extraMax\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Current calculated delta in values between two adjacent grid lines (step).\r\n\t *\r\n\t * This is a read-only value and cannot be used to set actual step.\r\n\t *\r\n\t * @readonly\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/positioning-axis-elements/#Setting_the_density_of_the_the_grid_labels} For more information about modifying density of labels\r\n\t * @return [description]\r\n\t */\r\n\tpublic get step(): number {\r\n\t\treturn this._step;\r\n\t}\r\n\r\n\t/**\r\n\t * A maximum value for the axis scale.\r\n\t *\r\n\t * This value might be auto-adjusted by the Axis in order to accomodate the\r\n\t * grid nicely, i.e. plot area is divided by grid in nice equal cells.\r\n\t *\r\n\t * The above might be overridden by `strictMinMax` which will force exact\r\n\t * user-defined min and max values to be used for scale.\r\n\t *\r\n\t * @param value Max value\r\n\t */\r\n\tpublic set max(value: number | undefined) {\r\n\t\tif (this._maxDefined != value) {\r\n\t\t\tthis._maxDefined = value;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Max value\r\n\t */\r\n\tpublic get max(): number | undefined {\r\n\t\tlet max = this._maxAdjusted;\r\n\t\tif (!$type.isNumber(max)) {\r\n\t\t\tmax = this._maxDefined;\r\n\t\t}\r\n\t\treturn max;\r\n\t}\r\n\r\n\t/**\r\n\t * By default the axis will adjust precision of all numbers to match number\r\n\t * of decimals in all its labels, e.g.: `1.0`, `1.5`, `2.0`.\r\n\t *\r\n\t * To disable set `adjustLabelPrecision` to `false`, to use whatever other\r\n\t * precision or number format settings are set.\r\n\t *\r\n\t * IMPORTANT: This setting will be ignored if your number format uses\r\n\t * modifiers, e.g. `\"#a\"`.\r\n\t *\r\n\t * @default true\r\n\t * @since 4.9.14\r\n\t * @param value Adjust precision\r\n\t */\r\n\tpublic set adjustLabelPrecision(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"adjustLabelPrecision\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Adjust precision\r\n\t */\r\n\tpublic get adjustLabelPrecision(): boolean {\r\n\t\treturn this.getPropertyValue(\"adjustLabelPrecision\");\r\n\t}\r\n\r\n\t/**\r\n\t * Used for the Series to register itself as the user of this Axis.\r\n\t *\r\n\t * This will also decorate both the Series and Axis with event handlers, used\r\n\t * to redraw on Axis position/zoom change.\r\n\t *\r\n\t * A disposer for those events is returned, so that they can be disposed\r\n\t * together with Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param series Series\r\n\t * @return Disposer for events\r\n\t */\r\n\tpublic registerSeries(series: XYSeries): IDisposer {\r\n\t\treturn new MultiDisposer([\r\n\t\t\tsuper.registerSeries(series),\r\n\r\n\t\t\tseries.events.on(\"extremeschanged\", this.handleExtremesChange, this, false),\r\n\t\t\tseries.events.on(\"selectionextremeschanged\", this.handleSelectionExtremesChange, this, false),\r\n\t\t\tthis.events.on(\"extremeschanged\", series.invalidate, series, false)\r\n\t\t]);\r\n\t}\r\n\r\n\t/**\r\n\t * Perform tasks after Axis zoom.\r\n\t */\r\n\tprotected handleSelectionExtremesChange(): void {\r\n\r\n\t\tlet selectionMin: number;\r\n\t\tlet selectionMax: number;\r\n\r\n\t\tlet allHidden: boolean = true;\r\n\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (!series.ignoreMinMax && !series.isHidden) {\r\n\r\n\t\t\t\tif (series.visible && !series.isHiding) {\r\n\t\t\t\t\tallHidden = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet seriesSelectionMin: number = series.selectionMin(this);\r\n\t\t\t\tlet seriesSelectionMax: number = series.selectionMax(this);\r\n\r\n\t\t\t\tif ($type.isNumber(seriesSelectionMin)) {\r\n\t\t\t\t\tif (!$type.isNumber(selectionMin) || (seriesSelectionMin < selectionMin)) {\r\n\t\t\t\t\t\tselectionMin = seriesSelectionMin;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// check max\r\n\t\t\t\tif ($type.isNumber(seriesSelectionMax)) {\r\n\t\t\t\t\tif (!$type.isNumber(selectionMax) || (seriesSelectionMax > selectionMax)) {\r\n\t\t\t\t\t\tselectionMax = seriesSelectionMax;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.includeRangesInMinMax) {\r\n\t\t\tthis.axisRanges.each((range) => {\r\n\t\t\t\tif (!range.ignoreMinMax) {\r\n\t\t\t\t\tlet minValue = $math.min(range.value, range.endValue);\r\n\t\t\t\t\tlet maxValue = $math.max(range.value, range.endValue);\r\n\r\n\t\t\t\t\tif (minValue < selectionMax) {\r\n\t\t\t\t\t\tselectionMax = minValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (maxValue > selectionMax) {\r\n\t\t\t\t\t\tselectionMax = maxValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// this is not good, as if date axis is initially zoomed, selection of y axis is reset to 0, 1 at the end of this method\r\n\t\t//$iter.each(this.series.iterator(), (series) => {\r\n\t\t//\tif (!series.appeared) {\r\n\t\t//\t\tallHidden = true;\r\n\t\t//\t}\r\n\t\t//})\r\n\r\n\t\tif ($type.isNumber(this._minDefined)) {\r\n\t\t\tif (this.strictMinMax) {\r\n\t\t\t\tselectionMin = this._minDefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tselectionMin = this.min;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (this.strictMinMax) {\r\n\t\t\tselectionMin = this._minReal;\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this._maxDefined)) {\r\n\t\t\tif (this.strictMinMax) {\r\n\t\t\t\tselectionMax = this._maxDefined;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tselectionMax = this.max;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (this.strictMinMax) {\r\n\t\t\tselectionMax = this._maxReal;\r\n\t\t}\r\n\r\n\t\tif (selectionMin == selectionMax) {\r\n\r\n\t\t\tselectionMin -= this._deltaMinMax;\r\n\t\t\tselectionMax += this._deltaMinMax;\r\n\r\n\t\t\tlet minMaxStep2 = this.adjustMinMax(selectionMin, selectionMax, 0, this._gridCount, this.strictMinMax);\r\n\t\t\tselectionMin = minMaxStep2.min;\r\n\t\t\tselectionMax = minMaxStep2.max;\r\n\t\t}\r\n\r\n\t\tlet dif: number = this.adjustDifference(selectionMin, selectionMax);\r\n\t\tlet minMaxStep: IMinMaxStep = this.adjustMinMax(selectionMin, selectionMax, dif, this._gridCount);\r\n\r\n\t\tselectionMin = minMaxStep.min;\r\n\t\tselectionMax = minMaxStep.max;\r\n\r\n\t\tselectionMin -= (selectionMax - selectionMin) * this.extraMin;\r\n\t\tselectionMax += (selectionMax - selectionMin) * this.extraMax;\r\n\r\n\t\tselectionMin = $math.fitToRange(selectionMin, this.min, this.max);\r\n\t\tselectionMax = $math.fitToRange(selectionMax, this.min, this.max);\r\n\r\n\t\t// do it for the second time !important\r\n\t\tdif = this.adjustDifference(selectionMin, selectionMax);\r\n\t\tminMaxStep = this.adjustMinMax(selectionMin, selectionMax, dif, this._gridCount, true);\r\n\r\n\t\tselectionMin = minMaxStep.min;\r\n\t\tselectionMax = minMaxStep.max;\r\n\r\n\t\tif (this.strictMinMax) {\r\n\t\t\tselectionMin = $math.max(selectionMin, this._minDefined);\r\n\t\t\tselectionMax = $math.min(selectionMax, this._maxDefined);\r\n\t\t}\r\n\t\tlet step = minMaxStep.step;\r\n\t\tif (this.syncWithAxis) {\r\n\t\t\tminMaxStep = this.syncAxes(selectionMin, selectionMax, step)\r\n\t\t\tselectionMin = minMaxStep.min;\r\n\t\t\tselectionMax = minMaxStep.max;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t\tstep = minMaxStep.step;\r\n\r\n\t\t// needed because of grouping\r\n\t\tthis._difference = this.adjustDifference(this.min, this.max);\r\n\r\n\t\tlet start: number = this.valueToPosition(selectionMin);\r\n\t\tlet end: number = this.valueToPosition(selectionMax);\r\n\r\n\t\t// in case all series are hidden or hiding, full zoomout\r\n\t\tif (allHidden && !this.syncWithAxis) {\r\n\t\t\tstart = 0;\r\n\t\t\tend = 1;\r\n\t\t}\r\n\r\n\t\tlet declination = 0;\r\n\t\tif (this.syncWithAxis) {\r\n\t\t\tdeclination = 5;\r\n\t\t\tthis.setCache(selectionMin + \"-\" + selectionMax, step);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._step = step;\r\n\t\t\tthis._minZoomed = selectionMin;\r\n\t\t\tthis._maxZoomed = selectionMax;\r\n\t\t}\r\n\r\n\t\tif (!this.keepSelection) {\r\n\t\t\tthis.zoom({ start: start, end: end }, false, false, declination);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates whether to blindly use exact `min` and `max` values set by user\r\n\t * when generating Axis scale.\r\n\t *\r\n\t * If not set, the Axis might slightly adjust those values to accomodate a\r\n\t * better looking grid.\r\n\t *\r\n\t * NOTE: if `min` and `max` are not set, setting `strictMinMax` to `true`\r\n\t * will result in fixing the scale of the axis to actual lowest and highest\r\n\t * values in the series within currently selected scope.\r\n\t *\r\n\t * @default false\r\n\t * @param value Use exact values?\r\n\t */\r\n\tpublic set strictMinMax(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"strictMinMax\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use exact values?\r\n\t */\r\n\tpublic get strictMinMax(): boolean {\r\n\t\treturn this.getPropertyValue(\"strictMinMax\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if this axis should use a logarithmic scale.\r\n\t *\r\n\t * Please note that logarithmic axis can **only** accommodate values bigger\r\n\t * than zero.\r\n\t *\r\n\t * Having zero or negative values will result in error and failure of the\r\n\t * whole chart.\r\n\t *\r\n\t * @param value Logarithmic scale?\r\n\t */\r\n\tpublic set logarithmic(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"logarithmic\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Logarithmic scale?\r\n\t */\r\n\tpublic get logarithmic(): boolean {\r\n\t\treturn this.getPropertyValue(\"logarithmic\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if a current selection (zoom) should be kept across data updates.\r\n\t *\r\n\t * If your axis is zoomed while chart's data is updated, the axis will try\r\n\t * to retain the same start and end values.\r\n\t *\r\n\t * You can also use this to initially pre-zoom axis:\r\n\t *\r\n\t * ```TypeScript\r\n\t * axis.keepSelection = true;\r\n\t * axis.start = 0.5;\r\n\t * axis.end = 0.7;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * axis.keepSelection = true;\r\n\t * axis.start = 0.5;\r\n\t * axis.end = 0.7;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * \"keepSelection\": true,\r\n\t * \"start\": 0.5,\r\n\t * \"end\": 0.7\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * The above will start the chart zoomed from the middle of the actual scope\r\n\t * to 70%.\r\n\t *\r\n\t * @since 4.1.1\r\n\t * @default flase\r\n\t * @param value Preseve zoom after data update?\r\n\t */\r\n\tpublic set keepSelection(value: boolean) {\r\n\t\tthis.setPropertyValue(\"keepSelection\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Preseve zoom after data update?\r\n\t */\r\n\tpublic get keepSelection(): boolean {\r\n\t\treturn this.getPropertyValue(\"keepSelection\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true`, values of axis ranges will be included when calculating\r\n\t * range of values / scale of the [[ValueAxis]].\r\n\t *\r\n\t * @default false\r\n\t * @since 4.4.9\r\n\t * @param value Include ranges?\r\n\t */\r\n\tpublic set includeRangesInMinMax(value: boolean) {\r\n\t\tthis.setPropertyValue(\"includeRangesInMinMax\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Include ranges?\r\n\t */\r\n\tpublic get includeRangesInMinMax(): boolean {\r\n\t\treturn this.getPropertyValue(\"includeRangesInMinMax\");\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum number of decimals to allow when placing grid lines and labels\r\n\t * on axis.\r\n\t *\r\n\t * Set it to `0` (zero) to force integer-only axis labels.\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set maxPrecision(value: number) {\r\n\t\tif (this.setPropertyValue(\"maxPrecision\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return max precision\r\n\t */\r\n\tpublic get maxPrecision(): number {\r\n\t\treturn this.getPropertyValue(\"maxPrecision\");\r\n\t}\r\n\r\n\t/**\r\n\t * This setting allows using bigger precision for numbers displayed in axis\r\n\t * tooltip.\r\n\t *\r\n\t * Please note that this setting indicates additional decimal places to\r\n\t * automatically-calculated axis number precision.\r\n\t *\r\n\t * So if your axis displays numbers like 0.1, 0.2, etc. (one decimal place),\r\n\t * and you set `extraTooltipPrecision = 1`, tooltips will display numbers\r\n\t * like 0.12, 0.25, etc. (two decimal places).\r\n\t *\r\n\t * @default 0\r\n\t * @since 4.8.3\r\n\t * @param value Extra decimals\r\n\t */\r\n\tpublic set extraTooltipPrecision(value: number) {\r\n\t\tif (this.setPropertyValue(\"extraTooltipPrecision\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Extra decimals\r\n\t */\r\n\tpublic get extraTooltipPrecision(): number {\r\n\t\treturn this.getPropertyValue(\"extraTooltipPrecision\");\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates axis data items when series extremes change\r\n\t */\r\n\tprotected handleExtremesChange() {\r\n\t\tthis._extremesChanged = true;\r\n\t\tthis.getMinMax();\r\n\r\n\t\tif (this.ghostLabel) {\r\n\t\t\tlet mw = 0;\r\n\r\n\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\tif (dataItem.label && dataItem.label.pixelWidth > mw) {\r\n\t\t\t\t\tthis.ghostLabel.text = dataItem.label.currentText;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative position on axis for series' data item's value.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey ?\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic getX(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn this.renderer.positionToPoint(this.getPositionX(dataItem, key, location, stackKey, range)).x;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the X coordinate for series' data item's value.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey ?\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionX(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = dataItem.getWorkingValue(key);\r\n\t\tif (!$type.hasValue(stackKey)) {\r\n\t\t\tstackKey = \"valueX\";\r\n\t\t}\r\n\t\tlet stack: number = dataItem.getValue(stackKey, \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\r\n\t\t\tif (this.logarithmic) {\r\n\t\t\t\tif (stack > 0) {\r\n\t\t\t\t\tvalue = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value + stack);\r\n\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Y coordinate for series' data item's value.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack ID\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic getY(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\treturn this.renderer.positionToPoint(this.getPositionY(dataItem, key, location, stackKey, range)).y;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative position on axis for series' data item's value.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack ID\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionY(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = dataItem.getWorkingValue(key);\r\n\r\n\t\tif (!$type.hasValue(stackKey)) {\r\n\t\t\tstackKey = \"valueY\";\r\n\t\t}\r\n\r\n\t\tlet stack: number = dataItem.getValue(stackKey, \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\r\n\t\t\tif (this.logarithmic) {\r\n\t\t\t\tif (stack > 0) {\r\n\t\t\t\t\tvalue = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value + stack);\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle for series data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack ID\r\n\t * @param range Range to fit in\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = dataItem.getWorkingValue(key);\r\n\t\tlet stack: number = dataItem.getValue(stackKey, \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value + stack);\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn this.positionToAngle(position);\r\n\t}\r\n\r\n\t/**\r\n\t * [getAnyRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param start [description]\r\n\t * @param end [description]\r\n\t * @param location [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getAnyRangePath(start: number, end: number, location?: number): string {\r\n\t\tlet startPosition: number = this.valueToPosition(start);\r\n\t\tlet endPosition: number = this.valueToPosition(end);\r\n\r\n\t\treturn this.getPositionRangePath(startPosition, endPosition); // Base class (Axis) gets range shape from AxisRenderer\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a axis tooltip, based on specific position within\r\n\t * axis.\r\n\t *\r\n\t * The label will be formatted as per [[NumberFormatter]] set for the whole\r\n\t * chart, or explicitly for this Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (px)\r\n\t * @return Label (numeric value)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet value: number = $math.round(this.positionToValue(position), this._stepDecimalPlaces + this.extraTooltipPrecision);\r\n\t\tlet valueStr = this.tooltip.numberFormatter.format(value);\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn valueStr;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"getTooltipText\", valueStr);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms axis to specific values.\r\n\t *\r\n\t * @param startValue Start value\r\n\t * @param endValue End value\r\n\t * @param skipRangeEvent Do not invoke events\r\n\t * @param instantly Do not play zoom animations\r\n\t */\r\n\tpublic zoomToValues(startValue: number, endValue: number, skipRangeEvent?: boolean, instantly?: boolean): void {\r\n\t\tlet start: number = (startValue - this.min) / (this.max - this.min);\r\n\t\tlet end: number = (endValue - this.min) / (this.max - this.min);\r\n\r\n\t\tthis.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n\t}\r\n\r\n\t/**\r\n\t * A smallest value in axis scale within current zoom.\r\n\t *\r\n\t * @return Min zoom value\r\n\t */\r\n\tpublic get minZoomed(): number {\r\n\t\tif (!this.syncWithAxis) {\r\n\t\t\treturn $math.max(this.min, this._minZoomed);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._minZoomed\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A biggest value in axis scale within current zoom.\r\n\t * @return [description]\r\n\t */\r\n\tpublic get maxZoomed(): number {\r\n\t\tif (!this.syncWithAxis) {\r\n\t\t\treturn $math.min(this.max, this._maxZoomed);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._maxZoomed;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates positioning of Axis breaks after something changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic fixAxisBreaks(): void {\r\n\r\n\t\tsuper.fixAxisBreaks();\r\n\t\tlet axisBreaks = this._axisBreaks;\r\n\t\tif (axisBreaks && axisBreaks.length > 0) {\r\n\t\t\t// process breaks\r\n\t\t\taxisBreaks.each((axisBreak) => {\r\n\t\t\t\tlet startValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\tlet endValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\t// break difference\r\n\t\t\t\tlet axisBreakDif: number = endValue - startValue;\r\n\t\t\t\tlet axisBreakGridCount: number = Math.ceil(axisBreakDif * axisBreak.breakSize) * this._gridCount / (this.max - this.min);\r\n\r\n\t\t\t\t// calculate min, max and step for axis break\r\n\t\t\t\tlet breakMinMaxStep = this.adjustMinMax(startValue, endValue, axisBreakDif, axisBreakGridCount, true);\r\n\r\n\t\t\t\taxisBreak.adjustedStep = breakMinMaxStep.step;\r\n\t\t\t\taxisBreak.adjustedMin = breakMinMaxStep.min;\r\n\t\t\t\taxisBreak.adjustedMax = breakMinMaxStep.max;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._difference = this.adjustDifference(this.min, this.max);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns value based on position.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\tlet value: number = this.positionToValue(position);\r\n\t\treturn this.numberFormatter.format(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Shows Axis tooltip at specific value\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic showTooltipAt(value: number) {\r\n\t\tthis.showTooltipAtPosition(this.valueToPosition(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from a different instance of Axis.\r\n\t *\r\n\t * @param source Source Axis\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.min = source.min;\r\n\t\tthis.max = source.max;\r\n\t\tthis.calculateTotals = source.calculateTotals;\r\n\t\tthis._baseValue = source.baseValue;\r\n\t}\r\n\r\n\t/**\r\n\t * Enables syncing of grid with another axis.\r\n\t *\r\n\t * To enable, set to a reference of the other `ValueAxis`. This axis will try\r\n\t * to maintain its scale in such way that its grid matches target axis grid.\r\n\t *\r\n\t * IMPORTANT #1: At this stage it's an experimental feature. Use it at your\r\n\t * own risk, as it may not work in 100% of the scenarios.\r\n\t *\r\n\t * IMPORTANT #2: `syncWithAxis` is not compatible with `strictMinMax` and\r\n\t * `sequencedInterpolation` settings.\r\n\t *\r\n\t * @since 4.8.1\r\n\t * @param axis Target axis\r\n\t */\r\n\tpublic set syncWithAxis(axis: ValueAxis) {\r\n\t\tif (this.setPropertyValue(\"syncWithAxis\", axis, true)) {\r\n\t\t\tif (axis) {\r\n\t\t\t\tthis._disposers.push(axis.events.on(\"extremeschanged\", this.handleSelectionExtremesChange, this, false));\r\n\t\t\t\tthis._disposers.push(axis.events.on(\"selectionextremeschanged\", this.handleSelectionExtremesChange, this, false));\r\n\t\t\t\tthis.events.on(\"shown\", this.handleSelectionExtremesChange, this, false);\r\n\t\t\t\tthis.events.on(\"maxsizechanged\", ()=>{\r\n\t\t\t\t\tthis.clearCache();\r\n\t\t\t\t\tthis._disposers.push(registry.events.once(\"exitframe\", ()=>{\r\n\t\t\t\t\t\tthis.handleSelectionExtremesChange();\r\n\t\t\t\t\t}))\r\n\t\t\t\t}, this, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Target axis\r\n\t */\r\n\tpublic get syncWithAxis(): ValueAxis {\r\n\t\treturn this.getPropertyValue(\"syncWithAxis\");\r\n\t}\r\n\r\n\t/**\r\n\t * Syncs with a target axis.\r\n\t *\r\n\t * @param min Min\r\n\t * @param max Max\r\n\t * @param step Step\r\n\t */\r\n\tprotected syncAxes(min: number, max: number, step: number) {\r\n\t\tlet axis = this.syncWithAxis;\r\n\t\tif (axis) {\r\n\r\n\t\t\tif(!$type.isNumber(min)){\r\n\t\t\t\tmin = this.min;\r\n\t\t\t}\r\n\t\t\tif(!$type.isNumber(max)){\r\n\t\t\t\tmax = this.max;\r\n\t\t\t}\r\n\r\n\t\t\tif(!$type.isNumber(step)){\r\n\t\t\t\tstep = this._step;\r\n\t\t\t}\r\n\r\n\t\t\tlet count: number = Math.round((axis.maxZoomed - axis.minZoomed) / axis.step);\r\n\t\t\tlet currentCount = Math.round((max - min) / step);\r\n\r\n\t\t\tif ($type.isNumber(count) && $type.isNumber(currentCount)) {\r\n\t\t\t\tlet synced = false;\r\n\t\t\t\tlet c = 0\r\n\t\t\t\tlet diff = (max - min) * 0.01;\r\n\t\t\t\tlet omin = min;\r\n\t\t\t\tlet omax = max;\r\n\t\t\t\tlet ostep = step;\r\n\r\n\t\t\t\twhile (synced != true) {\r\n\t\t\t\t\tsynced = this.checkSync(omin, omax, ostep, count);\r\n\t\t\t\t\tc++;\r\n\t\t\t\t\tif (c > 1000) {\r\n\t\t\t\t\t\tsynced = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!synced) {\r\n\t\t\t\t\t\t//omin = min - diff * c;\r\n\r\n\t\t\t\t\t\tif (c / 3 == Math.round(c / 3)) {\r\n\t\t\t\t\t\t\tomin = min - diff * c;\r\n\t\t\t\t\t\t\tif(min >= 0 && omin < 0){\r\n\t\t\t\t\t\t\t\tomin = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tomax = max + diff * c;\r\n\t\t\t\t\t\t\tif(omax <= 0 && omax > 0){\r\n\t\t\t\t\t\t\t\tomax = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet minMaxStep = this.adjustMinMax(omin, omax, omax - omin, this._gridCount, true);\r\n\t\t\t\t\t\tomin = minMaxStep.min;\r\n\t\t\t\t\t\tomax = minMaxStep.max;\r\n\t\t\t\t\t\tostep = minMaxStep.step;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmin = omin;\r\n\t\t\t\t\t\tmax = omax;\r\n\t\t\t\t\t\tstep = ostep;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\treturn { min: min, max: max, step: step };\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if axis needs to be resunced with some other axis.\r\n\t */\r\n\tprotected checkSync(min: number, max: number, step: number, count: number): boolean {\r\n\t\tlet currentCount = (max - min) / step;\r\n\t\tfor (let i = 1; i < count; i++) {\r\n\t\t\tif ($math.round(currentCount / i, 1) == count || currentCount * i == count) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.syncWithAxis) && $type.isString(config.syncWithAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.syncWithAxis)) {\r\n\t\t\t\t\tconfig.syncWithAxis = this.map.getKey(config.syncWithAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[ValueAxis] No axis with id \\\"\" + config.syncWithAxis + \"\\\" found for `syncWithAxis`\");\r\n\t\t\t\t\tdelete config.xAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ValueAxis\"] = ValueAxis;\r\nregistry.registeredClasses[\"ValueAxisDataItem\"] = ValueAxisDataItem;\r\n","/**\r\n * DateAxisBreak includes functionality to add breaks on a [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { ValueAxisBreak, IValueAxisBreakProperties, IValueAxisBreakAdapters, IValueAxisBreakEvents } from \"./ValueAxisBreak\";\r\nimport { DateAxis } from \"./DateAxis\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[DateAxisBreak]].\r\n */\r\nexport interface IDateAxisBreakProperties extends IValueAxisBreakProperties {\r\n\r\n\t/**\r\n\t * A `Date` break starts on.\r\n\t */\r\n\tstartDate?: Date;\r\n\r\n\t/**\r\n\t * A `Date` break ends on.\r\n\t */\r\n\tendDate?: Date;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[DateAxisBreak]]\r\n */\r\nexport interface IDateAxisBreakEvents extends IValueAxisBreakEvents { }\r\n\r\n/**\r\n * Defines adapters for [[DateAxisBreak]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDateAxisBreakAdapters extends IValueAxisBreakAdapters, IDateAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to define breaks for [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n *\r\n * @see {@link IDateAxisBreakEvents} for a list of available events\r\n * @see {@link IDateAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class DateAxisBreak extends ValueAxisBreak {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IDateAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDateAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDateAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: DateAxis;\r\n\r\n\t/**\r\n\t * [gridInterval description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic gridInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * [gridDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic gridDate: Date;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxisBreak\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Starting date for the break.\r\n\t *\r\n\t * @param value Start date\r\n\t */\r\n\tpublic set startDate(value: Date) {\r\n\t\tif (this.setPropertyValue(\"startDate\", value)) {\r\n\t\t\tthis.startValue = value.getTime();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start date\r\n\t */\r\n\tpublic get startDate(): Date {\r\n\t\treturn this.getPropertyValue(\"startDate\");\r\n\t}\r\n\r\n\t/**\r\n\t * Ending date for the break.\r\n\t *\r\n\t * @param value End date\r\n\t */\r\n\tpublic set endDate(value: Date) {\r\n\t\tif (this.setPropertyValue(\"endDate\", value)) {\r\n\t\t\tthis.endValue = value.getTime();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End date\r\n\t */\r\n\tpublic get endDate(): Date {\r\n\t\treturn this.getPropertyValue(\"endDate\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxisBreak\"] = DateAxisBreak;\r\n","/**\r\n * DateAxis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxis, ValueAxisDataItem, IValueAxisProperties, IValueAxisDataFields, IValueAxisAdapters, IValueAxisEvents } from \"./ValueAxis\";\r\nimport { AxisItemLocation } from \"./Axis\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { Grid } from \"./Grid\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { LineSeriesDataItem } from \"../series/LineSeries\";\r\nimport { TimeUnit } from \"../../core/defs/TimeUnit\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\nimport { IMinMaxStep } from \"./ValueAxis\";\r\nimport { DateAxisBreak } from \"./DateAxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $time from \"../../core/utils/Time\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\nimport { DateFormatter } from \"../../core/formatters/DateFormatter\";\r\nimport { OrderedListTemplate } from \"../../core/utils/SortedList\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data item for [[DateAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class DateAxisDataItem extends ValueAxisDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: DateAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxisDataItem\";\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.values.date = {};\r\n\t\tthis.values.endDate = {};\r\n\t}\r\n\r\n\t/**\r\n\t * Date position of the data item.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set date(date: Date) {\r\n\t\tthis.setDate(\"date\", date);\r\n\t\tthis.value = date.getTime();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get date(): Date {\r\n\t\treturn this.dates[\"date\"];\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * End date for data item.\r\n\t *\r\n\t * @param date End date\r\n\t */\r\n\tpublic set endDate(date: Date) {\r\n\t\tthis.setDate(\"endDate\", date);\r\n\t\tthis.endValue = date.getTime();\r\n\t}\r\n\r\n\t/**\r\n\t * @return End date\r\n\t */\r\n\tpublic get endDate(): Date {\r\n\t\treturn this.dates[\"endDate\"];\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[DateAxis]].\r\n */\r\nexport interface IDateAxisDataFields extends IValueAxisDataFields {\r\n\r\n\t/**\r\n\t * Date.\r\n\t */\r\n\tdate?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[DateAxis]].\r\n */\r\nexport interface IDateAxisProperties extends IValueAxisProperties {\r\n\r\n\t/**\r\n\t * If enabled, axis will automatically collapse empty (without data points)\r\n\t * periods of time, i.e. weekends.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tskipEmptyPeriods?: boolean;\r\n\r\n\t/**\r\n\t * Use `periodChangeDateFormats` to apply different formats to the first\r\n\t * label in bigger time unit.\r\n\t *\r\n\t * @default true\r\n\t * @param value Use different format for period beginning?\r\n\t */\r\n\tmarkUnitChange?: boolean;\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tsnapTooltip?: boolean;\r\n\r\n\t/**\r\n\t * A special date format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t */\r\n\ttooltipDateFormat?: string | Intl.DateTimeFormatOptions;\r\n\r\n\t/**\r\n\t * Indicates if data should be aggregated to composide data items if there\r\n\t * are more data items in selected range than `groupCount`.\r\n\t *\r\n\t * @default false\r\n\t * @since 4.7.0\r\n\t */\r\n\tgroupData?: boolean;\r\n\r\n\t/**\r\n\t * Indicates threshold of data items in selected range at which to start\r\n\t * aggregating data items if `groupData = true`.\r\n\t * \r\n\t * @default 200\r\n\t * @since 4.7.0\r\n\t */\r\n\tgroupCount?: number;\r\n\r\n\t/**\r\n\t * Disables automatic selection of data grouping intervals and always uses\r\n\t * `groupInterval` if set. Works only if `groupData = true`.\r\n\t * \r\n\t * @since 4.9.24\r\n\t */\r\n\tgroupInterval?: ITimeInterval;\r\n\r\n\t/**\r\n\t * \r\n\t * Indicates by how many minutes the timestamps in your data are offset from GMT. \r\n\t * This is useful when you have timestamps as your data and you want all the users to see \r\n\t * the same result and not the time which was at users's location at the given timestamp.\r\n\t * Note, you do not need to set timezoneOffset both here and on DateFormatter, as this will \r\n\t * distort the result.\r\n\t *\r\n\t * @default undefined\r\n\t * @since 4.8.5\r\n\t */\r\n\ttimezoneOffset?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[DateAxis]].\r\n */\r\nexport interface IDateAxisEvents extends IValueAxisEvents {\r\n\t/**\r\n\t * Invoked when data grouping is on and grouping period is changed. You can find our the period via dateAxis.currentDataSetId property.\r\n\t */\r\n\tgroupperiodchanged: IDateAxisEvents;\r\n}\r\n\r\n/**\r\n * Defines adapters for [[DateAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDateAxisAdapters extends IValueAxisAdapters, IDateAxisProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a date/time-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Time\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Time\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"title\": {\r\n * \"text\": \"Time\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link IDateAxisEvents} for a list of available Events\r\n * @see {@link IDateAxisAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/} got `DateAxis` documention\r\n * @important\r\n */\r\nexport class DateAxis<T extends AxisRenderer = AxisRenderer> extends ValueAxis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: IDateAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IDateAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDateAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDateAxisEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: DateAxisDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: DateAxisBreak;\r\n\r\n\tprotected _gapBreaks: boolean = false;\r\n\r\n\t/**\r\n\t * A list of date/time intervals for Date axis.\r\n\t *\r\n\t * This define various granularities available for the axis. For example\r\n\t * if you have an axis spanning an hour, and space for 6 grid lines / labels\r\n\t * the axis will choose the granularity of 10 minutes, displaying a label\r\n\t * every 10 minutes.\r\n\t *\r\n\t * Default intervals:\r\n\t *\r\n\t * ```JSON\r\n\t * [\r\n\t * { timeUnit: \"millisecond\", count: 1 },\r\n\t * { timeUnit: \"millisecond\", count: 5 },\r\n\t * { timeUnit: \"millisecond\", count: 10 },\r\n\t * { timeUnit: \"millisecond\", count: 50 },\r\n\t * { timeUnit: \"millisecond\", count: 100 },\r\n\t * { timeUnit: \"millisecond\", count: 500 },\r\n\t * { timeUnit: \"second\", count: 1 },\r\n\t * { timeUnit: \"second\", count: 5 },\r\n\t * { timeUnit: \"second\", count: 10 },\r\n\t * { timeUnit: \"second\", count: 30 },\r\n\t * { timeUnit: \"minute\", count: 1 },\r\n\t * { timeUnit: \"minute\", count: 5 },\r\n\t * { timeUnit: \"minute\", count: 10 },\r\n\t * { timeUnit: \"minute\", count: 30 },\r\n\t * { timeUnit: \"hour\", count: 1 },\r\n\t * { timeUnit: \"hour\", count: 3 },\r\n\t * { timeUnit: \"hour\", count: 6 },\r\n\t * { timeUnit: \"hour\", count: 12 },\r\n\t * { timeUnit: \"day\", count: 1 },\r\n\t * { timeUnit: \"day\", count: 2 },\r\n\t * { timeUnit: \"day\", count: 3 },\r\n\t * { timeUnit: \"day\", count: 4 },\r\n\t * { timeUnit: \"day\", count: 5 },\r\n\t * { timeUnit: \"week\", count: 1 },\r\n\t * { timeUnit: \"month\", count: 1 },\r\n\t * { timeUnit: \"month\", count: 2 },\r\n\t * { timeUnit: \"month\", count: 3 },\r\n\t * { timeUnit: \"month\", count: 6 },\r\n\t * { timeUnit: \"year\", count: 1 },\r\n\t * { timeUnit: \"year\", count: 2 },\r\n\t * { timeUnit: \"year\", count: 5 },\r\n\t * { timeUnit: \"year\", count: 10 },\r\n\t * { timeUnit: \"year\", count: 50 },\r\n\t * { timeUnit: \"year\", count: 100 }\r\n\t * ]\r\n\t * ```\r\n\t */\r\n\tpublic gridIntervals: List<ITimeInterval> = new List<ITimeInterval>();\r\n\r\n\t/**\r\n\t * If data aggregation is enabled by setting Axis' `groupData = true`, the\r\n\t * chart will try to aggregate data items into grouped data items.\r\n\t *\r\n\t * If there are more data items in selected period than `groupCount`, it will\r\n\t * group data items into bigger period.\r\n\t *\r\n\t * For example seconds might be grouped into 10-second aggregate data items.\r\n\t *\r\n\t * This setting indicates what group intervals can the chart group to.\r\n\t *\r\n\t * Default intervals:\r\n\t *\r\n\t * ```JSON\r\n\t * [\r\n\t * { timeUnit: \"millisecond\", count: 1},\r\n\t * { timeUnit: \"millisecond\", count: 10 },\r\n\t * { timeUnit: \"millisecond\", count: 100 },\r\n\t * { timeUnit: \"second\", count: 1 },\r\n\t * { timeUnit: \"second\", count: 10 },\r\n\t * { timeUnit: \"minute\", count: 1 },\r\n\t * { timeUnit: \"minute\", count: 10 },\r\n\t * { timeUnit: \"hour\", count: 1 },\r\n\t * { timeUnit: \"day\", count: 1 },\r\n\t * { timeUnit: \"week\", count: 1 },\r\n\t * { timeUnit: \"month\", count: 1 },\r\n\t * { timeUnit: \"year\", count: 1 }\r\n\t * ]\r\n\t * ```\r\n\t * `groupData = true` does not work in combination with `skipEmptyPeriods = true`.\r\n\t * \r\n\t * @since 4.7.0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n\t */\r\n\tpublic groupIntervals: List<ITimeInterval> = new List<ITimeInterval>();\r\n\r\n\t/**\r\n\t * A collection of date formats to use when formatting different time units\r\n\t * on Date/time axis.\r\n\t *\r\n\t * Actual defaults will depend on the language locale set for the chart.\r\n\t *\r\n\t * To override format for a specific time unit, say days, you need to set\r\n\t * the appropriate key to a format string. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n\t * ```\r\n\t * ```JSON\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * \"dateFormats\": {\r\n\t * \"day\": \"MMMM d, yyyy\"\r\n\t * }\r\n\t * }]\r\n\t * ```\r\n\t *\r\n\t * @see {@link DateFormatter}\r\n\t */\r\n\tpublic dateFormats: Dictionary<TimeUnit, string | Intl.DateTimeFormatOptions> = new Dictionary<TimeUnit, string | Intl.DateTimeFormatOptions>();\r\n\r\n\t/**\r\n\t * These formats are applied to labels that are first in a larger unit.\r\n\t *\r\n\t * For example, if we have a DateAxis with days on it, the first day of month\r\n\t * indicates a break in month - a start of the bigger period.\r\n\t *\r\n\t * For those labels, `periodChangeDateFormats` are applied instead of\r\n\t * `dateFormats`.\r\n\t *\r\n\t * This allows us implement convenient structures, like instead of:\r\n\t *\r\n\t * `Jan 1 - Jan 2 - Jan 3 - ...`\r\n\t *\r\n\t * We can have:\r\n\t *\r\n\t * `Jan - 1 - 2 - 3 - ...`\r\n\t *\r\n\t * This can be disabled by setting `markUnitChange = false`.\r\n\t */\r\n\tpublic periodChangeDateFormats: Dictionary<TimeUnit, string | Intl.DateTimeFormatOptions> = new Dictionary<TimeUnit, string | Intl.DateTimeFormatOptions>();\r\n\r\n\t/**\r\n\t * At which intervals grid elements are displayed.\r\n\t */\r\n\tprotected _gridInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * [_intervalDuration description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _intervalDuration: number;\r\n\r\n\t/**\r\n\t * [_gridDate description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _gridDate: Date;\r\n\r\n\t/**\r\n\t * [_nextGridUnit description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _nextGridUnit: TimeUnit;\r\n\r\n\t/**\r\n\t * User-defined granularity of data.\r\n\t */\r\n\tprotected _baseInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * This is base interval of the main data set.\r\n\t */\r\n\tprotected _mainBaseInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * This is base interval of the currently selected data set.\r\n\t */\r\n\tprotected _groupInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * Actual interval (granularity) derived from the actual data.\r\n\t */\r\n\tprotected _baseIntervalReal: ITimeInterval = { timeUnit: \"day\", count: 1 };\r\n\r\n\t/**\r\n\t */\r\n\tprotected _prevSeriesTime: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * [_minDifference description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _minDifference: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * A function which applies fills to axis cells.\r\n\t *\r\n\t * Default function fills every second fill. You can set this to a function\r\n\t * that follows some other logic.\r\n\t *\r\n\t * Function should accept a [[DateAxisDataItem]] and modify its `axisFill`\r\n\t * property accordingly.\r\n\t */\r\n\tpublic fillRule(dataItem: this[\"_dataItem\"]): void {\r\n\t\tlet value = dataItem.value;\r\n\t\tlet axis = dataItem.component;\r\n\t\tlet gridInterval = axis._gridInterval;\r\n\t\tlet gridDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\r\n\t\tif (Math.round((value - axis.min) / gridDuration) / 2 == Math.round(Math.round((value - axis.min) / gridDuration) / 2)) {\r\n\t\t\tdataItem.axisFill.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.axisFill.__disabled = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _firstWeekDay: number = 1;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _df: DateFormatter;\r\n\r\n\t/**\r\n\t * A collection of start timestamps to use as axis' min timestamp for\r\n\t * particular data item item periods.\r\n\t *\r\n\t * @since 4.7.0\r\n\t * @readonly\r\n\t */\r\n\tpublic groupMin: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * A collection of start timestamps to use as axis' max timestamp for\r\n\t * particular data item item periods.\r\n\t *\r\n\t * @since 4.7.0\r\n\t * @readonly\r\n\t */\r\n\tpublic groupMax: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * Date of the last shown axis tooltip.\r\n\t *\r\n\t * @since 4.9.7\r\n\t * @readonly\r\n\t */\r\n\tpublic tooltipDate: Date;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxis\";\r\n\r\n\t\tthis.setPropertyValue(\"markUnitChange\", true);\r\n\t\tthis.snapTooltip = true;\r\n\t\tthis.tooltipPosition = \"pointer\";\r\n\r\n\t\tthis.setPropertyValue(\"groupData\", false);\r\n\t\tthis.groupCount = 200;\r\n\r\n\t\tthis.events.on(\"parentset\", this.getDFFormatter, this, false);\r\n\r\n\t\t// Translatable defaults are applied in `applyInternalDefaults()`\r\n\t\t// ...\r\n\r\n\t\t// Define default intervals\r\n\t\tthis.gridIntervals.pushAll([\r\n\t\t\t{ timeUnit: \"millisecond\", count: 1 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 5 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 10 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 50 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 100 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 500 },\r\n\t\t\t{ timeUnit: \"second\", count: 1 },\r\n\t\t\t{ timeUnit: \"second\", count: 5 },\r\n\t\t\t{ timeUnit: \"second\", count: 10 },\r\n\t\t\t{ timeUnit: \"second\", count: 30 },\r\n\t\t\t{ timeUnit: \"minute\", count: 1 },\r\n\t\t\t{ timeUnit: \"minute\", count: 5 },\r\n\t\t\t{ timeUnit: \"minute\", count: 10 },\r\n\t\t\t{ timeUnit: \"minute\", count: 15 },\r\n\t\t\t{ timeUnit: \"minute\", count: 30 },\r\n\t\t\t{ timeUnit: \"hour\", count: 1 },\r\n\t\t\t{ timeUnit: \"hour\", count: 3 },\r\n\t\t\t{ timeUnit: \"hour\", count: 6 },\r\n\t\t\t{ timeUnit: \"hour\", count: 12 },\r\n\t\t\t{ timeUnit: \"day\", count: 1 },\r\n\t\t\t{ timeUnit: \"day\", count: 2 },\r\n\t\t\t{ timeUnit: \"day\", count: 3 },\r\n\t\t\t{ timeUnit: \"day\", count: 4 },\r\n\t\t\t{ timeUnit: \"day\", count: 5 },\r\n\t\t\t{ timeUnit: \"week\", count: 1 },\r\n\t\t\t{ timeUnit: \"month\", count: 1 },\r\n\t\t\t{ timeUnit: \"month\", count: 2 },\r\n\t\t\t{ timeUnit: \"month\", count: 3 },\r\n\t\t\t{ timeUnit: \"month\", count: 6 },\r\n\t\t\t{ timeUnit: \"year\", count: 1 },\r\n\t\t\t{ timeUnit: \"year\", count: 2 },\r\n\t\t\t{ timeUnit: \"year\", count: 5 },\r\n\t\t\t{ timeUnit: \"year\", count: 10 },\r\n\t\t\t{ timeUnit: \"year\", count: 50 },\r\n\t\t\t{ timeUnit: \"year\", count: 100 },\r\n\t\t\t{ timeUnit: \"year\", count: 200 },\r\n\t\t\t{ timeUnit: \"year\", count: 500 },\r\n\t\t\t{ timeUnit: \"year\", count: 1000 },\r\n\t\t\t{ timeUnit: \"year\", count: 2000 },\r\n\t\t\t{ timeUnit: \"year\", count: 5000 },\r\n\t\t\t{ timeUnit: \"year\", count: 10000 },\r\n\t\t\t{ timeUnit: \"year\", count: 100000 }\r\n\t\t]);\r\n\r\n\t\tthis.groupIntervals.pushAll([\r\n\t\t\t{ timeUnit: \"millisecond\", count: 1 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 10 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 100 },\r\n\t\t\t{ timeUnit: \"second\", count: 1 },\r\n\t\t\t{ timeUnit: \"second\", count: 10 },\r\n\t\t\t{ timeUnit: \"minute\", count: 1 },\r\n\t\t\t{ timeUnit: \"minute\", count: 10 },\r\n\t\t\t{ timeUnit: \"hour\", count: 1 },\r\n\t\t\t{ timeUnit: \"day\", count: 1 },\r\n\t\t\t{ timeUnit: \"week\", count: 1 },\r\n\t\t\t{ timeUnit: \"month\", count: 1 },\r\n\t\t\t{ timeUnit: \"year\", count: 1 }\r\n\t\t]);\r\n\r\n\t\t// Set field name\r\n\t\tthis.axisFieldName = \"date\";\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Set default date formats\r\n\t\tif (!this.dateFormats.hasKey(\"millisecond\")) {\r\n\t\t\tthis.dateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"second\")) {\r\n\t\t\tthis.dateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"minute\")) {\r\n\t\t\tthis.dateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"hour\")) {\r\n\t\t\tthis.dateFormats.setKey(\"hour\", this.language.translate(\"_date_hour\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"day\")) {\r\n\t\t\tthis.dateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"week\")) {\r\n\t\t\tthis.dateFormats.setKey(\"week\", this.language.translate(\"_date_day\"));\t // not a mistake\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"month\")) {\r\n\t\t\tthis.dateFormats.setKey(\"month\", this.language.translate(\"_date_month\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"year\")) {\r\n\t\t\tthis.dateFormats.setKey(\"year\", this.language.translate(\"_date_year\"));\r\n\t\t}\r\n\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"millisecond\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"second\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"minute\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"hour\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"hour\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"day\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"week\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"week\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"month\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"month\", this.language.translate(\"_date_month\") + \" \" + this.language.translate(\"_date_year\"));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new DateAxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new DateAxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis' data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems(): void {\r\n\t\t// allows to keep selection of the same size\r\n\t\tlet start: number = this.start;\r\n\t\tlet end: number = this.end;\r\n\t\tlet baseDuration = this.baseDuration;\r\n\t\tlet periodCount: number = (this.max - this.min) / baseDuration;\r\n\r\n\t\tthis._firstWeekDay = this.getFirstWeekDay();\r\n\t\tthis.getDFFormatter();\r\n\r\n\t\tsuper.validateDataItems();\r\n\r\n\t\tlet mainBaseDuration = $time.getDuration(this.mainBaseInterval.timeUnit, this.mainBaseInterval.count)\r\n\r\n\t\tthis.maxZoomFactor = (this.max - this.min) / mainBaseDuration;\r\n\r\n\t\tthis._deltaMinMax = this.baseDuration / 2;\r\n\r\n\t\t// allows to keep selection of the same size\r\n\t\tlet newPeriodCount: number = (this.max - this.min) / baseDuration;\r\n\t\tstart = start + (end - start) * (1 - periodCount / newPeriodCount);\r\n\t\tthis.zoom({ start: start, end: end }, false, true); // added instantlyto solve zoomout problem when we have axes gaps. @todo: check how this affects maxZoomFactor\r\n\t}\r\n\r\n\t/**\r\n\t * Handles process after zoom.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Does nothing?\r\n\t */\r\n\tpublic handleSelectionExtremesChange(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates all positions, related to axis as per current zoom.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic calculateZoom(): void {\r\n\t\tsuper.calculateZoom();\r\n\r\n\t\tlet difference = this.adjustDifference(this._minZoomed, this._maxZoomed);\r\n\t\tlet dataSetChanged = false;\r\n\r\n\t\t// if data has to be grouped, choose interval and set dataset\r\n\t\tif (this.groupData && $type.hasValue(difference)) {\r\n\t\t\tlet mainBaseInterval = this.mainBaseInterval;\r\n\r\n\t\t\tlet modifiedDifference = difference + this.startLocation + (1 - this.endLocation) * this.baseDuration;\r\n\t\t\tlet groupInterval: ITimeInterval;\r\n\t\t\tif (this.groupInterval) {\r\n\t\t\t\tgroupInterval = { ...this.groupInterval }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tgroupInterval = this.chooseInterval(0, modifiedDifference, this.groupCount, this.groupIntervals);\r\n\t\t\t\tif ($time.getDuration(groupInterval.timeUnit, groupInterval.count) < $time.getDuration(mainBaseInterval.timeUnit, mainBaseInterval.count)) {\r\n\t\t\t\t\tgroupInterval = { ...mainBaseInterval };\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._groupInterval = groupInterval;\r\n\t\t\tlet newId = groupInterval.timeUnit + groupInterval.count;\r\n\t\t\tif (this._currentDataSetId != newId) {\r\n\t\t\t\tthis._currentDataSetId = newId;\r\n\t\t\t\tthis.dispatch(\"groupperiodchanged\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\t\tif (series.setDataSet(this._currentDataSetId)) {\r\n\t\t\t\t\t\tdataSetChanged = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tlet gridInterval: ITimeInterval = this.chooseInterval(0, difference, this._gridCount);\r\n\r\n\t\tif ($time.getDuration(gridInterval.timeUnit, gridInterval.count) < this.baseDuration) {\r\n\t\t\tgridInterval = { ...this.baseInterval };\r\n\t\t}\r\n\r\n\t\tthis._gridInterval = gridInterval;\r\n\t\tthis._nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t// the following is needed to avoid grid flickering while scrolling\r\n\t\tthis._intervalDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\t\tthis._gridDate = $time.round(new Date(this.minZoomed - $time.getDuration(gridInterval.timeUnit, gridInterval.count)), gridInterval.timeUnit, gridInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min));\r\n\r\n\t\t// tell series start/end\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\tlet field = <keyof XYSeriesDataItem>series.getAxisField(this);\r\n\r\n\t\t\t\tlet minZoomed = $time.round(new Date(this._minZoomed + this.baseDuration * 0.05), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc).getTime();\r\n\t\t\t\tlet minZoomedStr = minZoomed.toString();\r\n\t\t\t\tlet startDataItem = series.dataItemsByAxis.getKey(this.uid).getKey(minZoomedStr + series.currentDataSetId);\r\n\r\n\t\t\t\tlet startIndex: number = 0;\r\n\t\t\t\tif (this.start != 0) {\r\n\t\t\t\t\tif (startDataItem) {\r\n\t\t\t\t\t\tstartDataItem = this.findFirst(startDataItem, minZoomed, field);\r\n\t\t\t\t\t\tstartIndex = startDataItem.index;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstartIndex = series.dataItems.findClosestIndex(this._minZoomed, (x) => <number>x[field], \"left\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// 1 millisecond is removed so that if only first item is selected, it would not count in the second.\r\n\t\t\t\tlet baseInterval = this.baseInterval;\r\n\t\t\t\tlet maxZoomed = $time.add($time.round(new Date(this._maxZoomed), baseInterval.timeUnit, baseInterval.count, this._firstWeekDay, this._df.utc), baseInterval.timeUnit, baseInterval.count, this._df.utc).getTime();\r\n\r\n\t\t\t\tlet maxZoomedStr = maxZoomed.toString();\r\n\t\t\t\tlet endDataItem = series.dataItemsByAxis.getKey(this.uid).getKey(maxZoomedStr + series.currentDataSetId);\r\n\t\t\t\tlet endIndex: number = series.dataItems.length;\r\n\t\t\t\tif (this.end != 1) {\r\n\t\t\t\t\tif (endDataItem) {\r\n\t\t\t\t\t\tendIndex = endDataItem.index;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmaxZoomed -= 1;\r\n\t\t\t\t\t\tendIndex = series.dataItems.findClosestIndex(maxZoomed, (x) => <number>x[field], \"right\");\r\n\r\n\t\t\t\t\t\tif (endIndex < series.dataItems.length) {\r\n\t\t\t\t\t\t\tendIndex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tseries.startIndex = startIndex;\r\n\t\t\t\tseries.endIndex = endIndex;\r\n\r\n\t\t\t\tif (!dataSetChanged && series.dataRangeInvalid) {\r\n\t\t\t\t\tseries.validateDataRange();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected findFirst(dataItem: XYSeriesDataItem, time: number, key: string): XYSeriesDataItem {\r\n\t\tlet index = dataItem.index;\r\n\r\n\t\tif (index > 0) {\r\n\t\t\tlet series = dataItem.component;\r\n\t\t\tlet previousDataItem = series.dataItems.getIndex(index - 1);\r\n\r\n\t\t\tlet previousDate = (<any>previousDataItem)[key];\r\n\r\n\t\t\tif (!previousDate || previousDate.getTime() < time) {\r\n\t\t\t\treturn dataItem;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.findFirst(previousDataItem, time, key);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn dataItem;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * (Re)validates data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tsuper.validateData();\r\n\t\tif (!$type.isNumber(this.baseInterval.count)) {\r\n\t\t\tthis.baseInterval.count = 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get minDifference(): number {\r\n\t\tlet minDifference = Number.MAX_VALUE;\r\n\r\n\t\tthis.series.each((series) => {\r\n\t\t\tif (minDifference > this._minDifference[series.uid]) {\r\n\t\t\t\tminDifference = this._minDifference[series.uid];\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (minDifference == Number.MAX_VALUE || minDifference == 0) {\r\n\t\t\tminDifference = $time.getDuration(\"day\");\r\n\t\t}\r\n\r\n\t\treturn minDifference;\r\n\t}\r\n\r\n\t/**\r\n\t * [dataChangeUpdate description]\r\n\t *\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic seriesDataChangeUpdate(series: XYSeries): void {\r\n\t\tthis._minDifference[series.uid] = Number.MAX_VALUE;\r\n\t}\r\n\r\n\t/**\r\n\t * [postProcessSeriesDataItems description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic postProcessSeriesDataItems(series?: XYSeries): void {\r\n\t\tif (series) {\r\n\t\t\tthis.seriesGroupUpdate(series);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tthis.seriesGroupUpdate(series);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.addEmptyUnitsBreaks();\r\n\t}\r\n\r\n\tprotected seriesGroupUpdate(series: XYSeries) {\r\n\t\tif (JSON.stringify(series._baseInterval[this.uid]) != JSON.stringify(this.mainBaseInterval)) {\r\n\r\n\t\t\tseries._baseInterval[this.uid] = this.mainBaseInterval;\r\n\r\n\t\t\tseries.mainDataSet.each((dataItem) => {\r\n\t\t\t\tthis.postProcessSeriesDataItem(dataItem);\r\n\t\t\t});\r\n\r\n\t\t\tif (this.groupData) {\r\n\t\t\t\tthis.groupSeriesData(series);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates series group data.\r\n\t * \r\n\t * @param series Series\r\n\t * @ignore\r\n\t */\r\n\tpublic groupSeriesData(series: XYSeries): void {\r\n\t\tif (series.baseAxis == this && series.dataItems.length > 0 && !series.dataGrouped) {\r\n\t\t\t// make array of intervals which will be used;\r\n\t\t\tlet intervals: ITimeInterval[] = [];\r\n\t\t\tlet mainBaseInterval = this.mainBaseInterval;\r\n\t\t\tlet mainIntervalDuration = $time.getDuration(mainBaseInterval.timeUnit, mainBaseInterval.count);\r\n\r\n\t\t\tthis.groupIntervals.each((interval) => {\r\n\t\t\t\tlet intervalDuration = $time.getDuration(interval.timeUnit, interval.count);\r\n\t\t\t\tif (intervalDuration > mainIntervalDuration && intervalDuration < (this.max - this.min)) {\r\n\t\t\t\t\tintervals.push(interval);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (series._dataSets) {\r\n\t\t\t\tseries._dataSets.each((key, dataItems) => {\r\n\t\t\t\t\tdataItems.each((dataItem) => {\r\n\t\t\t\t\t\tdataItem.dispose();\r\n\t\t\t\t\t})\r\n\t\t\t\t\tdataItems.clear();\r\n\t\t\t\t})\r\n\t\t\t\tseries._dataSets.clear();\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(intervals, (interval) => {\r\n\t\t\t\t//let mainBaseInterval = this._mainBaseInterval;\r\n\t\t\t\tlet key = \"date\" + this.axisLetter;\r\n\r\n\t\t\t\t// create data set\r\n\t\t\t\tlet dataSetId = interval.timeUnit + interval.count;\r\n\t\t\t\t// todo: check where this clone goes\r\n\t\t\t\tlet dataSet = new OrderedListTemplate(series.mainDataSet.template.clone());\r\n\r\n\t\t\t\tseries.dataSets.setKey(dataSetId, dataSet);\r\n\t\t\t\tseries.dataGrouped = true;\r\n\r\n\t\t\t\tlet dataItems = series.mainDataSet;\r\n\t\t\t\tlet previousTime: number = Number.NEGATIVE_INFINITY;\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet newDataItem: XYSeriesDataItem;\r\n\r\n\t\t\t\tlet dataFields: string[] = [];\r\n\r\n\t\t\t\t$object.each(series.dataFields, (dfkey, df) => {\r\n\t\t\t\t\tlet dfk = <string>dfkey;\r\n\t\t\t\t\tif (dfk != key && dfk.indexOf(\"Show\") == -1) {\r\n\t\t\t\t\t\tdataFields.push(dfk);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\r\n\t\t\t\tdataItems.each((dataItem) => {\r\n\t\t\t\t\tlet date = dataItem.getDate(key);\r\n\t\t\t\t\tif (date) {\r\n\t\t\t\t\t\tlet time = date.getTime();\r\n\t\t\t\t\t\tlet roundedDate = $time.round(new Date(time), interval.timeUnit, interval.count, this._df.firstDayOfWeek, this._df.utc);\r\n\t\t\t\t\t\tlet currentTime = roundedDate.getTime();\r\n\t\t\t\t\t\t// changed period\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (previousTime < currentTime) {\r\n\t\t\t\t\t\t\tnewDataItem = dataSet.create();\r\n\r\n\t\t\t\t\t\t\tnewDataItem.dataContext = {};\r\n\r\n\t\t\t\t\t\t\tnewDataItem.setWorkingLocation(\"dateX\", series.dataItems.template.locations.dateX, 0);\r\n\t\t\t\t\t\t\tnewDataItem.setWorkingLocation(\"openDateX\", series.dataItems.template.locations.openDateX, 0);\r\n\t\t\t\t\t\t\tnewDataItem.setWorkingLocation(\"dateY\", series.dataItems.template.locations.dateY, 0);\r\n\t\t\t\t\t\t\tnewDataItem.setWorkingLocation(\"openDateY\", series.dataItems.template.locations.openDateY, 0);\r\n\r\n\t\t\t\t\t\t\tnewDataItem.component = series;\r\n\t\t\t\t\t\t\t// other Dates?\r\n\t\t\t\t\t\t\tnewDataItem.setDate(key, roundedDate);\r\n\t\t\t\t\t\t\tnewDataItem._index = i;\r\n\t\t\t\t\t\t\ti++;\r\n\r\n\t\t\t\t\t\t\t$array.each(dataFields, (vkey) => {\r\n\t\t\t\t\t\t\t\t//let groupFieldName = vkey + \"Group\";\r\n\t\t\t\t\t\t\t\tlet dvalues = dataItem.values[vkey];\r\n\t\t\t\t\t\t\t\tif (dvalues) {\r\n\t\t\t\t\t\t\t\t\tlet value = dvalues.value;\r\n\t\t\t\t\t\t\t\t\tlet values = newDataItem.values[vkey];\r\n\t\t\t\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tvalues.value = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.workingValue = value;\r\n\r\n\t\t\t\t\t\t\t\t\t\tvalues.open = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.close = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.low = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.high = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.sum = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.average = value;\r\n\t\t\t\t\t\t\t\t\t\tvalues.count = 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tvalues.count = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\t\tthis.postProcessSeriesDataItem(newDataItem, interval);\r\n\r\n\t\t\t\t\t\t\t$object.each(series.propertyFields, (key, fieldValue) => {\r\n\t\t\t\t\t\t\t\tconst f: string = <string>key;\r\n\t\t\t\t\t\t\t\tlet value: any = (<any>dataItem.properties)[key];\r\n\r\n\t\t\t\t\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\t\t\t\t\tnewDataItem.hasProperties = true;\r\n\t\t\t\t\t\t\t\t\tnewDataItem.setProperty(f, value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tnewDataItem.groupDataItems = [dataItem];\r\n\t\t\t\t\t\t\tpreviousTime = currentTime;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (newDataItem) {\r\n\t\t\t\t\t\t\t\t$array.each(dataFields, (vkey) => {\r\n\t\t\t\t\t\t\t\t\tlet groupFieldName = (<any>series.groupFields)[vkey];\r\n\t\t\t\t\t\t\t\t\tlet dvalues = dataItem.values[vkey];\r\n\t\t\t\t\t\t\t\t\tif (dvalues) {\r\n\t\t\t\t\t\t\t\t\t\tlet value = dvalues.value;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet values = newDataItem.values[vkey];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (!$type.isNumber(values.open)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.open = value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalues.close = value;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (values.low > value || !$type.isNumber(values.low)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.low = value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (values.high < value || !$type.isNumber(values.high)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.high = value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif ($type.isNumber(values.sum)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.sum += value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.sum = value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tvalues.count++;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalues.average = values.sum / values.count;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif ($type.isNumber(values[groupFieldName])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.value = values[groupFieldName];\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalues.workingValue = values.value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t$utils.copyProperties(dataItem.properties, newDataItem.properties);\r\n\r\n\t\t\t\t\t\t\t\t$object.each(series.propertyFields, (key, fieldValue) => {\r\n\t\t\t\t\t\t\t\t\tconst f: string = <string>key;\r\n\t\t\t\t\t\t\t\t\tlet value: any = (<any>dataItem.properties)[key];\r\n\t\t\t\t\t\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\t\t\t\t\t\tnewDataItem.hasProperties = true;\r\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setProperty(f, value);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tnewDataItem.groupDataItems.push(dataItem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newDataItem) {\r\n\t\t\t\t\t\t$utils.copyProperties(dataItem.dataContext, newDataItem.dataContext);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})\r\n\r\n\t\t\tthis.calculateZoom();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected getDFFormatter() {\r\n\t\tthis._df = this.dateFormatter;\r\n\t}\r\n\r\n\t/**\r\n\t * [postProcessSeriesDataItem description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic postProcessSeriesDataItem(dataItem: XYSeriesDataItem, interval?: ITimeInterval): void {\r\n\t\t// we need to do this for all series data items not only added recently, as baseInterval might change\r\n\t\tlet intervalID = \"\";\r\n\t\tif (interval) {\r\n\t\t\tintervalID = interval.timeUnit + interval.count;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tinterval = this.mainBaseInterval;\r\n\t\t}\r\n\r\n\t\tlet series: XYSeries = dataItem.component;\r\n\t\tlet dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n\r\n\t\t$object.each(dataItem.dates, (key) => {\r\n\t\t\tlet date: Date = dataItem.getDate(key);\r\n\t\t\tlet time = date.getTime();\r\n\r\n\t\t\tlet startDate: Date = $time.round(new Date(time), interval.timeUnit, interval.count, this._firstWeekDay, this._df.utc);\r\n\t\t\tlet startTime = startDate.getTime();\r\n\t\t\tlet endDate: Date = $time.add(new Date(startTime), interval.timeUnit, interval.count, this._df.utc);\r\n\r\n\t\t\tdataItem.setCalculatedValue(key, startTime, \"open\");\r\n\t\t\tdataItem.setCalculatedValue(key, endDate.getTime(), \"close\");\r\n\r\n\t\t\tdataItemsByAxis.setKey(startTime + intervalID, dataItem);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses empty stretches of date/time scale by creating [[AxisBreak]]\r\n\t * elements for them.\r\n\t *\r\n\t * Can be used to automatically remove strethes without data, like weekends.\r\n\t *\r\n\t * No, need to call this manually. It will automatically be done if\r\n\t * `skipEmptyPeriods = true`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected addEmptyUnitsBreaks(): void {\r\n\r\n\t\tif (this.skipEmptyPeriods && $type.isNumber(this.min) && $type.isNumber(this.max)) {\r\n\t\t\tlet timeUnit: TimeUnit = this.baseInterval.timeUnit;\r\n\t\t\tlet count: number = this.baseInterval.count;\r\n\r\n\t\t\tif (this._axisBreaks) {\r\n\t\t\t\tthis._axisBreaks.clear(); // TODO: what about breaks added by user?\r\n\t\t\t}\r\n\r\n\t\t\tlet date: Date = $time.round(new Date(this.min), timeUnit, count, this._firstWeekDay, this._df.utc);\r\n\t\t\tlet axisBreak: DateAxisBreak;\r\n\r\n\t\t\twhile (date.getTime() < this.max - this.baseDuration) {\r\n\t\t\t\t$time.add(date, timeUnit, count, this._df.utc);\r\n\r\n\t\t\t\tlet startTime: number = date.getTime();\r\n\t\t\t\tlet startTimeStr: string = startTime.toString();\r\n\r\n\t\t\t\tlet hasData = $iter.contains(this.series.iterator(), (series) => {\r\n\t\t\t\t\treturn !!series.dataItemsByAxis.getKey(this.uid).getKey(startTimeStr + series.currentDataSetId);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// open break if not yet opened\r\n\t\t\t\tif (!hasData) {\r\n\t\t\t\t\tif (!axisBreak) {\r\n\t\t\t\t\t\taxisBreak = <DateAxisBreak>this.axisBreaks.create();\r\n\t\t\t\t\t\taxisBreak.startDate = new Date(startTime);\r\n\t\t\t\t\t\tthis._gapBreaks = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// close if already opened\r\n\t\t\t\t\tif (axisBreak) {\r\n\t\t\t\t\t\t// close at end time minus one millisecond\r\n\t\t\t\t\t\taxisBreak.endDate = new Date(startTime - 1);\r\n\t\t\t\t\t\taxisBreak = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates positioning of Axis breaks after something changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic fixAxisBreaks(): void {\r\n\t\tsuper.fixAxisBreaks();\r\n\t\tlet axisBreaks = this._axisBreaks;\r\n\t\tif (axisBreaks) {\r\n\t\t\tif (axisBreaks.length > 0) {\r\n\t\t\t\t// process breaks\r\n\t\t\t\taxisBreaks.each((axisBreak) => {\r\n\t\t\t\t\tlet breakGridCount: number = Math.ceil(this._gridCount * (Math.min(this.end, axisBreak.endPosition) - Math.max(this.start, axisBreak.startPosition)) / (this.end - this.start));\r\n\t\t\t\t\taxisBreak.gridInterval = this.chooseInterval(0, axisBreak.adjustedEndValue - axisBreak.adjustedStartValue, breakGridCount);\r\n\t\t\t\t\tlet gridDate = $time.round(new Date(axisBreak.adjustedStartValue), axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, this._firstWeekDay, this._df.utc);\r\n\t\t\t\t\tif (gridDate.getTime() > axisBreak.startDate.getTime()) {\r\n\t\t\t\t\t\t$time.add(gridDate, axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, this._df.utc);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\taxisBreak.gridDate = gridDate;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected getFirstWeekDay(): number {\r\n\t\tif (this._df) {\r\n\t\t\treturn this._df.firstDayOfWeek;\r\n\t\t}\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t/**\r\n\t * [getGridDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param date [description]\r\n\t * @param intervalCount [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getGridDate(date: Date, intervalCount: number): Date {\r\n\t\tlet timeUnit: TimeUnit = this._gridInterval.timeUnit;\r\n\t\tlet realIntervalCount: number = this._gridInterval.count;\r\n\t\t// round date\r\n\t\t$time.round(date, timeUnit, 1, this._firstWeekDay, this._df.utc);\r\n\r\n\t\tlet prevTimestamp: number = date.getTime();\r\n\r\n\t\tlet newDate: Date = $time.copy(date);\r\n\t\t// modify date by adding intervalcount\r\n\t\tlet timestamp: number = $time.add(newDate, timeUnit, intervalCount, this._df.utc).getTime();\r\n\r\n\t\t// if it's axis break, get first rounded date which is not in a break\r\n\t\tlet axisBreak: DateAxisBreak = <DateAxisBreak>this.isInBreak(timestamp);\r\n\t\tif (axisBreak && axisBreak.endDate) {\r\n\t\t\tnewDate = new Date(axisBreak.endDate.getTime());\r\n\t\t\t$time.round(newDate, timeUnit, realIntervalCount, this._firstWeekDay, this._df.utc);\r\n\t\t\tif (newDate.getTime() < axisBreak.endDate.getTime()) {\r\n\t\t\t\t$time.add(newDate, timeUnit, realIntervalCount, this._df.utc);\r\n\t\t\t}\r\n\t\t\ttimestamp = newDate.getTime();\r\n\t\t}\r\n\r\n\t\t// get duration between grid lines with break duration removed\r\n\t\tlet durationBreaksRemoved: number = this.adjustDifference(prevTimestamp, timestamp);\r\n\t\t// calculate how many time units fit to this duration\r\n\t\tlet countBreaksRemoved: number = Math.round(durationBreaksRemoved / $time.getDuration(timeUnit));\r\n\r\n\t\t// if less units fit, add one and repeat\r\n\t\tif (countBreaksRemoved < realIntervalCount) {\r\n\t\t\treturn this.getGridDate(date, intervalCount + realIntervalCount);\r\n\t\t}\r\n\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\t/**\r\n\t * [getBreaklessDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param axisBreak [description]\r\n\t * @param timeUnit [description]\r\n\t * @param count [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getBreaklessDate(axisBreak: DateAxisBreak, timeUnit: TimeUnit, count: number): Date {\r\n\t\tlet date = new Date(axisBreak.endValue);\r\n\t\t$time.round(date, timeUnit, count, this._firstWeekDay, this._df.utc);\r\n\t\t$time.add(date, timeUnit, count, this._df.utc);\r\n\r\n\t\tlet timestamp = date.getTime();\r\n\r\n\t\taxisBreak = <DateAxisBreak>this.isInBreak(timestamp);\r\n\t\tif (axisBreak) {\r\n\t\t\treturn this.getBreaklessDate(axisBreak, timeUnit, count);\r\n\t\t}\r\n\t\treturn date;\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates all Axis elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validateAxisElements(): void {\r\n\t\tif ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n\r\n\t\t\tthis.calculateZoom();\r\n\r\n\t\t\t// first regular items\r\n\t\t\tlet timestamp = this._gridDate.getTime();\r\n\t\t\tlet timeUnit = this._gridInterval.timeUnit;\r\n\t\t\tlet intervalCount = this._gridInterval.count;\r\n\t\t\tlet prevGridDate = $time.copy(this._gridDate);\r\n\r\n\t\t\tlet dataItemsIterator = this._dataItemsIterator;\r\n\t\t\tthis.resetIterators();\r\n\r\n\t\t\twhile (timestamp <= this._maxZoomed) {\r\n\t\t\t\tlet date = this.getGridDate($time.copy(prevGridDate), intervalCount);\r\n\t\t\t\ttimestamp = date.getTime();\r\n\r\n\t\t\t\tlet endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n\t\t\t\tendDate = $time.add(endDate, timeUnit, intervalCount, this._df.utc);\r\n\r\n\t\t\t\tlet format = this.dateFormats.getKey(timeUnit);\r\n\r\n\t\t\t\tif (this.markUnitChange && prevGridDate) {\r\n\t\t\t\t\tif ($time.checkChange(date, prevGridDate, this._nextGridUnit, this._df.utc)) {\r\n\t\t\t\t\t\tif (timeUnit !== \"year\") {\r\n\t\t\t\t\t\t\tformat = this.periodChangeDateFormats.getKey(timeUnit);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet text = this._df.format(date, format);\r\n\r\n\t\t\t\tlet dataItem = dataItemsIterator.find((x) => x.text === text);\r\n\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.appendDataItem(dataItem);\r\n\r\n\t\t\t\tdataItem.axisBreak = undefined;\r\n\t\t\t\tdataItem.date = date;\r\n\t\t\t\tdataItem.endDate = endDate;\r\n\r\n\t\t\t\tdataItem.text = text;\r\n\r\n\t\t\t\tthis.validateDataElement(dataItem);\r\n\r\n\t\t\t\tprevGridDate = date;\r\n\t\t\t}\r\n\r\n\t\t\t// breaks later\r\n\t\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\t\t\tif (this._axisBreaks) {\r\n\t\t\t\t$iter.each(this._axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\t\tif (axisBreak.breakSize > 0) {\r\n\t\t\t\t\t\tlet timeUnit: TimeUnit = axisBreak.gridInterval.timeUnit;\r\n\t\t\t\t\t\tlet intervalCount: number = axisBreak.gridInterval.count;\r\n\r\n\t\t\t\t\t\t// only add grid if gap is bigger then minGridDistance\r\n\t\t\t\t\t\tif ($math.getDistance(axisBreak.startPoint, axisBreak.endPoint) > renderer.minGridDistance * 4) {\r\n\t\t\t\t\t\t\tlet timestamp: number = axisBreak.gridDate.getTime();\r\n\r\n\t\t\t\t\t\t\tlet prevGridDate;\r\n\t\t\t\t\t\t\tlet count: number = 0;\r\n\t\t\t\t\t\t\twhile (timestamp <= axisBreak.adjustedMax) {\r\n\t\t\t\t\t\t\t\tlet date: Date = $time.copy(axisBreak.gridDate);\r\n\t\t\t\t\t\t\t\ttimestamp = $time.add(date, timeUnit, intervalCount * count, this._df.utc).getTime();\r\n\t\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\t\tif (timestamp > axisBreak.adjustedStartValue && timestamp < axisBreak.adjustedEndValue) {\r\n\t\t\t\t\t\t\t\t\tlet endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n\t\t\t\t\t\t\t\t\tendDate = $time.add(endDate, timeUnit, intervalCount, this._df.utc);\r\n\r\n\t\t\t\t\t\t\t\t\tlet format = this.dateFormats.getKey(timeUnit);\r\n\r\n\t\t\t\t\t\t\t\t\tif (this.markUnitChange && prevGridDate) {\r\n\t\t\t\t\t\t\t\t\t\tif ($time.checkChange(date, prevGridDate, this._nextGridUnit, this._df.utc)) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (timeUnit !== \"year\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tformat = this.periodChangeDateFormats.getKey(timeUnit);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tlet text: string = this._df.format(date, format);\r\n\r\n\t\t\t\t\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = dataItemsIterator.find((x) => x.text === text);\r\n\t\t\t\t\t\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t//this.processDataItem(dataItem);\r\n\t\t\t\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\t\t\t\tdataItem.axisBreak = axisBreak;\r\n\t\t\t\t\t\t\t\t\taxisBreak.dataItems.moveValue(dataItem);\r\n\r\n\t\t\t\t\t\t\t\t\tdataItem.date = date;\r\n\t\t\t\t\t\t\t\t\tdataItem.endDate = endDate;\r\n\t\t\t\t\t\t\t\t\tdataItem.text = text;\r\n\t\t\t\t\t\t\t\t\tprevGridDate = date;\r\n\t\t\t\t\t\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\r\n\t\tdataItem.itemIndex = this._axisItemCount;\r\n\t\tthis._axisItemCount++;\r\n\r\n\t\tif ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n\t\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\t\t\tlet timestamp = dataItem.value;\r\n\t\t\tlet endTimestamp = dataItem.endValue;\r\n\r\n\t\t\tif (!$type.isNumber(endTimestamp)) {\r\n\t\t\t\tendTimestamp = timestamp;\r\n\t\t\t}\r\n\r\n\t\t\tlet position: number = this.valueToPosition(timestamp);\r\n\t\t\tlet endPosition: number = this.valueToPosition(endTimestamp);\r\n\t\t\tlet fillEndPosition = endPosition;\r\n\r\n\t\t\tif (!dataItem.isRange && this._gridInterval.count > this.baseInterval.count) {\r\n\t\t\t\tendPosition = position + (endPosition - position) / (this._gridInterval.count / this.baseInterval.count);\r\n\t\t\t}\r\n\r\n\t\t\tdataItem.position = position;\r\n\r\n\t\t\tlet tick: AxisTick = dataItem.tick;\r\n\t\t\tif (tick && !tick.disabled) {\r\n\t\t\t\trenderer.updateTickElement(tick, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet grid: Grid = dataItem.grid;\r\n\t\t\tif (grid && !grid.disabled) {\r\n\t\t\t\trenderer.updateGridElement(grid, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet fill: AxisFill = dataItem.axisFill;\r\n\t\t\tif (fill && !fill.disabled) {\r\n\t\t\t\trenderer.updateFillElement(fill, position, fillEndPosition);\r\n\t\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\t\tthis.fillRule(dataItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet mask: AxisFill = dataItem.mask;\r\n\t\t\tif (mask) {\r\n\t\t\t\trenderer.updateFillElement(mask, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tif (dataItem.bullet) {\r\n\t\t\t\trenderer.updateBullet(dataItem.bullet, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet label: AxisLabel = dataItem.label;\r\n\t\t\tif (label && !label.disabled) {\r\n\t\t\t\tlet location = label.location;\r\n\r\n\r\n\r\n\t\t\t\tif (location == 0) {\r\n\t\t\t\t\tif (this._gridInterval.count == 1 && this._gridInterval.timeUnit != \"week\" && !dataItem.isRange) {\r\n\t\t\t\t\t\tlocation = 0.5;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlocation = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\trenderer.updateLabelElement(label, position, endPosition, location);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A duration in milliseconds of the `baseInterval`.\r\n\t *\r\n\t * @return Duration (ms)\r\n\t */\r\n\tpublic get baseDuration(): number {\r\n\t\treturn $time.getDuration(this.baseInterval.timeUnit, this.baseInterval.count);\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts min/max values.\r\n\t *\r\n\t * @ignore Exclude from docs.\r\n\t * @todo Description (review)\r\n\t * @param min Min timestamp\r\n\t * @param max Max timestamp\r\n\t * @return Adjusted min/max step\r\n\t */\r\n\tpublic adjustMinMax(min: number, max: number): IMinMaxStep {\r\n\t\treturn { min: min, max: max, step: this.baseDuration };\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the minimum timestamp as per cell start location.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMin(value: number) {\r\n\t\t// like this because months are not equal\r\n\t\tlet interval = this.baseInterval;\r\n\r\n\t\tlet startTime = $time.round(new Date(value), interval.timeUnit, interval.count, this._firstWeekDay, this._df.utc).getTime();\r\n\t\tlet endTime = $time.add(new Date(startTime), interval.timeUnit, interval.count, this._df.utc).getTime();\r\n\r\n\t\treturn startTime + (endTime - startTime) * this.startLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the maximum timestamp as per cell start location.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMax(value: number) {\r\n\t\t// like this because months are not equal\r\n\t\tlet interval = this.baseInterval;\r\n\r\n\t\tlet startTime = $time.round(new Date(value), interval.timeUnit, interval.count, this._firstWeekDay, this._df.utc).getTime();\r\n\t\tlet endTime = $time.add(new Date(startTime), interval.timeUnit, interval.count, this._df.utc).getTime();\r\n\r\n\t\treturn startTime + (endTime - startTime) * this.endLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * [chooseInterval description]\r\n\t *\r\n\t * @ignore Exclude from docs.\r\n\t * @todo Description\r\n\t * @param index [description]\r\n\t * @param duration [description]\r\n\t * @param gridCount [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic chooseInterval(index: number, duration: number, gridCount: number, intervals?: List<ITimeInterval>): ITimeInterval {\r\n\t\tif (!intervals) {\r\n\t\t\tintervals = this.gridIntervals;\r\n\t\t}\r\n\r\n\t\tlet gridInterval: ITimeInterval = intervals.getIndex(index);\r\n\r\n\t\tlet intervalDuration: number = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\r\n\t\tlet lastIndex: number = intervals.length - 1;\r\n\t\tif (index >= lastIndex) {\r\n\t\t\treturn { ...intervals.getIndex(lastIndex) };\r\n\t\t}\r\n\r\n\t\tlet count: number = Math.ceil(duration / intervalDuration);\r\n\r\n\t\tif (duration < intervalDuration && index > 0) {\r\n\t\t\treturn { ...intervals.getIndex(index - 1) };\r\n\t\t}\r\n\t\tif (count <= gridCount) {\r\n\t\t\treturn { ...intervals.getIndex(index) };\r\n\t\t} else {\r\n\t\t\tif (index + 1 < intervals.length) {\r\n\t\t\t\treturn this.chooseInterval(index + 1, duration, gridCount, intervals);\r\n\t\t\t} else {\r\n\t\t\t\treturn { ...intervals.getIndex(index) };\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the value according to axis' own [[DateFormatter]].\r\n\t *\r\n\t * @param value Source value\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic formatLabel(value: number): string {\r\n\t\treturn this._df.format(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a Date to an asbolute pixel position within Axis.\r\n\t *\r\n\t * @param date Date\r\n\t * @return Position (px)\r\n\t */\r\n\tpublic dateToPosition(date: Date): number {\r\n\t\treturn this.valueToPosition(date.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a numeric timestamp or a `Date` to a relative position on axis.\r\n\t *\r\n\t * @param date Date or a timestamp\r\n\t * @return Relative position\r\n\t */\r\n\tpublic anyToPosition(date: Date | number): number {\r\n\t\tif (date instanceof Date) {\r\n\t\t\treturn this.dateToPosition(date);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.valueToPosition(date);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts date to orientation point (x, y, angle) on axis\r\n\t *\r\n\t * @param date Date\r\n\t * @return IOrientationPoint\r\n\t */\r\n\tpublic dateToPoint(date: Date): IOrientationPoint {\r\n\t\tlet position = this.dateToPosition(date);\r\n\t\tlet point = this.renderer.positionToPoint(position);\r\n\t\tlet angle = this.renderer.positionToAngle(position);\r\n\t\treturn { x: point.x, y: point.y, angle: angle };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a numeric value to orientation (x, y, angle) point on axis\r\n\t *\r\n\t * @param value Value\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic anyToPoint(date: Date | number): IOrientationPoint {\r\n\t\tif (date instanceof Date) {\r\n\t\t\treturn this.dateToPoint(date);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.valueToPoint(date);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts pixel position within Axis to a corresponding Date.\r\n\t *\r\n\t * @param position Position (px)\r\n\t * @return Date\r\n\t */\r\n\tpublic positionToDate(position: number): Date {\r\n\t\treturn new Date(this.positionToValue(position));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the relative position on axis for series' data item's value.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionX(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\t//let stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value);\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns relative position on axis for series' data item's value.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionY(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\tlet stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value + stack);\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle for series data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack ID\r\n\t * @param range Range to fit in\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\tlet stack: number = dataItem.getValue(stackKey, \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\tlet position = this.valueToPosition(value + stack);\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn this.positionToAngle(position);\r\n\t}\r\n\r\n\t/**\r\n\t * [getTimeByLocation description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected getTimeByLocation(dataItem: XYSeriesDataItem, key: string, location: number): number {\r\n\r\n\t\tif (!$type.hasValue(key)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = dataItem.workingLocations[key];\r\n\r\n\t\t\tif (!$type.isNumber(location)) {\r\n\t\t\t\tlocation = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet startTime: number = dataItem.values[key][\"open\"];\r\n\t\tlet endTime: number = dataItem.values[key][\"close\"];\r\n\r\n\t\tlet workingValue = dataItem.values[key].workingValue;\r\n\t\tlet value = dataItem.values[key].value;\r\n\r\n\t\tlet difference = value - workingValue;\r\n\t\tstartTime -= difference;\r\n\t\tendTime -= difference;\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\t\t\treturn startTime + (endTime - startTime) * location;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes a related series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic processSeriesDataItem(dataItem: XYSeriesDataItem, axisLetter?: string): void {\r\n\t\tlet series = dataItem.component;\r\n\t\tlet time: number;\r\n\r\n\t\tlet date: Date = (<any>dataItem)[\"date\" + axisLetter];\r\n\r\n\t\tif ($type.isNumber(this.timezoneOffset)) {\r\n\t\t\tdate.setTime(date.getTime() + (date.getTimezoneOffset() - this.timezoneOffset) * 60000)\r\n\t\t\tdataItem.setValue(\"date\" + axisLetter, date.getTime(), 0);\r\n\t\t}\r\n\r\n\t\tif (date) {\r\n\t\t\ttime = date.getTime();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet openDate: Date = (<any>dataItem)[\"openDate\" + axisLetter];\r\n\t\tlet prevSeriesTime: number = this._prevSeriesTime[series.uid];\r\n\r\n\r\n\t\tlet openTime: number;\r\n\t\tif (openDate) {\r\n\t\t\topenTime = openDate.getTime();\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(openTime)) {\r\n\t\t\tlet difference = Math.abs(time - openTime);\r\n\r\n\t\t\tif (this._minDifference[series.uid] > difference) {\r\n\t\t\t\tthis._minDifference[series.uid] = difference;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet differece: number = time - prevSeriesTime;\r\n\r\n\t\tif (differece > 0) {\r\n\t\t\tif (this._minDifference[series.uid] > differece) {\r\n\t\t\t\tthis._minDifference[series.uid] = differece;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._prevSeriesTime[series.uid] = time;\r\n\r\n\t\tif (series._baseInterval[this.uid]) {\r\n\t\t\tthis.postProcessSeriesDataItem(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [updateAxisBySeries description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic updateAxisBySeries() {\r\n\t\tsuper.updateAxisBySeries();\r\n\r\n\t\tlet baseInterval: ITimeInterval = this.chooseInterval(0, this.minDifference, 1);\r\n\r\n\t\t// handle short months\r\n\r\n\t\tif (this.minDifference >= $time.getDuration(\"day\", 27) && baseInterval.timeUnit == \"week\") {\r\n\t\t\tbaseInterval.timeUnit = \"month\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\t\tif (baseInterval.timeUnit == \"month\") {\r\n\t\t\tif (this.minDifference >= $time.getDuration(\"day\", 29 * 2) && baseInterval.count == 1) {\r\n\t\t\t\tbaseInterval.count = 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.minDifference >= $time.getDuration(\"day\", 29 * 3) && baseInterval.count == 2) {\r\n\t\t\t\tbaseInterval.count = 3;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.minDifference >= $time.getDuration(\"day\", 29 * 6) && baseInterval.count == 5) {\r\n\t\t\t\tbaseInterval.count = 6;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// handle daylight saving\r\n\t\tif (this.minDifference >= $time.getDuration(\"hour\", 23) && baseInterval.timeUnit == \"hour\") {\r\n\t\t\tbaseInterval.timeUnit = \"day\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tif (this.minDifference >= $time.getDuration(\"week\", 1) - $time.getDuration(\"hour\", 1) && baseInterval.timeUnit == \"day\") {\r\n\t\t\tbaseInterval.timeUnit = \"week\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tif (this.minDifference >= $time.getDuration(\"year\", 1) - $time.getDuration(\"day\", 1.01) && baseInterval.timeUnit == \"month\") {\r\n\t\t\tbaseInterval.timeUnit = \"year\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tthis._baseIntervalReal = baseInterval;\r\n\t\tthis._mainBaseInterval = baseInterval;\r\n\r\n\t\t// no need to invalidate\r\n\t}\r\n\r\n\t/**\r\n\t * A base interval (granularity) of data.\r\n\t *\r\n\t * Used to indicate what are the base units of your data.\r\n\t *\r\n\t * For example, if you have a data set that has a data point every 5 minutes,\r\n\t * you may want to set this to `{ timeUnit: \"minute\", count: 5 }`.\r\n\t *\r\n\t * If not set, the Axis will try to determine the setting by its own, looking\r\n\t * at actual data.\r\n\t *\r\n\t * For best results, try to follow these values for `count`:\r\n\t *\r\n\t * When unit is \"month\", use 12 / count = round number\r\n\t * When unit is \"hour\", use 24 / count = round number\r\n\t * When unit is \"second\" and \"minute\", use 60 / count = round number\r\n\t *\r\n\t * @param timeInterval base interval\r\n\t */\r\n\tpublic set baseInterval(timeInterval: ITimeInterval) {\r\n\t\tif (JSON.stringify(this._baseInterval) != JSON.stringify(timeInterval)) {\r\n\t\t\tthis._baseInterval = timeInterval;\r\n\t\t\tthis._mainBaseInterval = timeInterval;\r\n\t\t\tif (!$type.isNumber(timeInterval.count)) {\r\n\t\t\t\ttimeInterval.count = 1;\r\n\t\t\t}\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.postProcessSeriesDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Base interval\r\n\t */\r\n\tpublic get baseInterval(): ITimeInterval {\r\n\t\tif (this._groupInterval) {\r\n\t\t\treturn this._groupInterval;\r\n\t\t}\r\n\t\telse if (this._baseInterval) {\r\n\t\t\treturn this._baseInterval;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._baseIntervalReal;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates granularity of the data of source (unaggregated) data.\r\n\t *\r\n\t * @since 4.7.0\r\n\t * @return Granularity of the main data set\r\n\t */\r\n\tpublic get mainBaseInterval(): ITimeInterval {\r\n\t\tif (this._baseInterval) {\r\n\t\t\treturn this._baseInterval;\r\n\t\t}\r\n\t\telse if (this._mainBaseInterval) {\r\n\t\t\treturn this._mainBaseInterval;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._baseIntervalReal;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * If enabled, axis will automatically collapse empty (without data points)\r\n\t * periods of time, i.e. weekends.\r\n\t *\r\n\t * An \"empty\" period is considered a stretch of time in the length of current\r\n\t * `baseInterval` without a single data point in it.\r\n\t *\r\n\t * For each such empty period, axis will automatically create an\r\n\t * [[AxisBreak]]. By default they will be invisible. You can still configure\r\n\t * them by accessing `axis.breaks.template`.\r\n\t *\r\n\t * [More info about breaks](https://www.amcharts.com/docs/v4/concepts/axes/#Breaks).\r\n\t *\r\n\t * Important notes:\r\n\t * * If you set this property to `true`, you can not add your custom axis breaks to this axis anymore.\r\n\t * * Using this feature affects performance. Use only if you need it.\r\n\t * * Setting this to `true` will reset appearance of breaks. If you want to modify appearance, do it *after* you set `skipEmptyPeriods`.\r\n\t * * Some axis label overlapping might happen.\r\n\t * * This setting is not compatible with `groupData = true`.\r\n\t *\r\n\t * @default false\r\n\t * @param value Remove empty stretches of time?\r\n\t */\r\n\tpublic set skipEmptyPeriods(value: boolean) {\r\n\r\n\t\tif (value) {\r\n\t\t\tlet breakTemplate = this.axisBreaks.template;\r\n\t\t\tbreakTemplate.startLine.disabled = true;\r\n\t\t\tbreakTemplate.endLine.disabled = true;\r\n\t\t\tbreakTemplate.fillShape.disabled = true;\r\n\t\t\tbreakTemplate.breakSize = 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._gapBreaks) {\r\n\t\t\t\tthis.axisBreaks.clear();\r\n\t\t\t\tthis._gapBreaks = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.setPropertyValue(\"skipEmptyPeriods\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.postProcessSeriesDataItems();\r\n\t\t\tthis.invalidateSeries();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Remove empty stretches of time?\r\n\t */\r\n\tpublic get skipEmptyPeriods(): boolean {\r\n\t\treturn this.getPropertyValue(\"skipEmptyPeriods\");\r\n\t}\r\n\r\n\t/**\r\n\t * A special date format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t *\r\n\t * @param value Date format\r\n\t */\r\n\tpublic set tooltipDateFormat(value: string | Intl.DateTimeFormatOptions) {\r\n\t\tthis.setPropertyValue(\"tooltipDateFormat\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date format\r\n\t */\r\n\tpublic get tooltipDateFormat(): string | Intl.DateTimeFormatOptions {\r\n\t\treturn this.getPropertyValue(\"tooltipDateFormat\");\r\n\t}\r\n\r\n\t/**\r\n\t * Use `periodChangeDateFormats` to apply different formats to the first\r\n\t * label in bigger time unit.\r\n\t *\r\n\t * @default true\r\n\t * @param value Use different format for period beginning?\r\n\t */\r\n\tpublic set markUnitChange(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"markUnitChange\", value)) {\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use different format for period beginning?\r\n\t */\r\n\tpublic get markUnitChange(): boolean {\r\n\t\treturn this.getPropertyValue(\"markUnitChange\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a tooltip, based on specific relative position\r\n\t * within axis.\r\n\t *\r\n\t * The label will be formatted as per [[DateFormatter]] set for the whole\r\n\t * chart, or explicitly for this Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position\r\n\t * @return Label (formatted date)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet text: string;\r\n\t\tlet date = this.positionToDate(position);\r\n\t\tdate = $time.round(date, this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min));\r\n\r\n\t\tthis.tooltipDate = date;\r\n\r\n\t\tif ($type.hasValue(this.tooltipDateFormat)) {\r\n\t\t\ttext = this._df.format(date, this.tooltipDateFormat);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet dateFormat = this.dateFormats.getKey(this.baseInterval.timeUnit);\r\n\t\t\tif (dateFormat) {\r\n\t\t\t\ttext = this._df.format(date, dateFormat);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttext = this.getPositionLabel(position);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn text;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"getTooltipText\", text);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an absolute position within axis and adjust it to a specific position within base interval. (cell)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Source position\r\n\t * @param location Location in the cell\r\n\t * @return Adjusted position\r\n\t */\r\n\tpublic roundPosition(position: number, location?: AxisItemLocation, axisLocation?: number): number {\r\n\t\tlet baseInterval = this.baseInterval;\r\n\t\tlet timeUnit = baseInterval.timeUnit;\r\n\t\tlet count = baseInterval.count;\r\n\r\n\t\tlet date: Date = this.positionToDate(position);\r\n\r\n\t\t$time.round(date, timeUnit, count, this._firstWeekDay, this._df.utc);\r\n\r\n\t\tif (location > 0) {\r\n\t\t\t$time.add(date, timeUnit, location * count, this._df.utc);\r\n\t\t}\r\n\r\n\t\tif (axisLocation > 0 && axisLocation < 1) {\r\n\t\t\tdate.setTime(date.getTime() + this.baseDuration * axisLocation);\r\n\t\t}\r\n\r\n\t\tif (this.isInBreak(date.getTime())) {\r\n\t\t\twhile (date.getTime() < this.max) {\r\n\t\t\t\t$time.add(date, timeUnit, count, this._df.utc);\r\n\t\t\t\tif (!this.isInBreak(date.getTime())) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.dateToPosition(date);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an relative position of the start of the cell (period), that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Relative position\r\n\t * @return Cell start relative position\r\n\t */\r\n\tpublic getCellStartPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an relative position of the end of the cell (period), that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Relative position\r\n\t * @return Cell end relative position\r\n\t */\r\n\tpublic getCellEndPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 1);\r\n\t\t//return this.dateToPosition($time.add(this.positionToDate(this.roundPosition(position, 1)), this.baseInterval.timeUnit, this.baseInterval.count));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a Series data item that corresponds to the specific pixel position\r\n\t * of the Axis.\r\n\t *\r\n\t * If `findNearest` (third parameter) is set to `true`, the method will try\r\n\t * to locate nearest available data item if none is found directly under\r\n\t * `position`.\r\n\t *\r\n\t * @param series Series\r\n\t * @param position Position (px)\r\n\t * @param findNearest Should axis try to find nearest tooltip if there is no data item at exact position\r\n\t * @return Data item\r\n\t */\r\n\tpublic getSeriesDataItem(series: XYSeries, position: number, findNearest?: boolean): XYSeriesDataItem {\r\n\r\n\t\tlet value: number = this.positionToValue(position);\r\n\t\tlet date: Date = $time.round(new Date(value), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc);\r\n\r\n\r\n\t\tlet dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n\r\n\t\tlet dataItem = dataItemsByAxis.getKey(date.getTime().toString());\r\n\r\n\t\t// todo: alternatively we can find closiest here\r\n\t\tif (!dataItem && findNearest) {\r\n\r\n\t\t\tlet key: \"dateX\" | \"dateY\";\r\n\r\n\t\t\tif (this.axisLetter == \"Y\") {\r\n\t\t\t\tkey = \"dateY\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tkey = \"dateX\";\r\n\t\t\t}\r\n\r\n\t\t\tdataItem = series.dataItems.getIndex(series.dataItems.findClosestIndex(date.getTime(), (x) => {\r\n\t\t\t\tif (x[key]) {\r\n\t\t\t\t\treturn <number>x[key].getTime();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn -Infinity;\r\n\t\t\t\t}\r\n\t\t\t}, \"any\"));\r\n\t\t}\r\n\r\n\t\treturn dataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a formatted date based on position in axis scale.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\t// @todo Better format recognition\r\n\t\tlet date = this.positionToDate(position);\r\n\t\treturn this._df.format(date, this.getCurrentLabelFormat());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns label date format based on currently used time units\r\n\t *\r\n\t * @return Format\r\n\t */\r\n\tprotected getCurrentLabelFormat(): string | Intl.DateTimeFormatOptions {\r\n\t\treturn this.dateFormats.getKey(this._gridInterval ? this._gridInterval.timeUnit : \"day\");\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes an Axis renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic initRenderer(): void {\r\n\t\tsuper.initRenderer();\r\n\t\tlet renderer = this.renderer;\r\n\t\tif (renderer) {\r\n\t\t\t// Set defaults\r\n\t\t\trenderer.ticks.template.location = 0;\r\n\t\t\trenderer.grid.template.location = 0;\r\n\t\t\trenderer.labels.template.location = 0;\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\treturn { x: 0, y: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected animateMinMax(min: number, max: number): Animation {\r\n\t\tlet animation = this.animate([{ property: \"_minAdjusted\", from: this._minAdjusted, to: min }, { property: \"_maxAdjusted\", from: this._maxAdjusted, to: max }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n\t\tanimation.events.on(\"animationprogress\", () => {\r\n\t\t\tthis.dispatch(\"extremeschanged\");\r\n\t\t})\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates axis data items when series extremes change\r\n\t */\r\n\tprotected handleExtremesChange() {\r\n\t\tsuper.handleExtremesChange();\r\n\r\n\t\tif (this.groupData) {\r\n\t\t\tlet id = this.baseInterval.timeUnit + this.baseInterval.count;\r\n\t\t\tthis.groupMin[id] = this._finalMin;\r\n\t\t\tthis.groupMax[id] = this._finalMax;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Zooms axis to specific Dates.\r\n\t *\r\n\t * @param startDate Start date\r\n\t * @param endValue End date\r\n\t * @param skipRangeEvent Do not invoke events\r\n\t * @param instantly Do not play zoom animations\r\n\t */\r\n\tpublic zoomToDates(startDate: Date, endDate: Date, skipRangeEvent?: boolean, instantly?: boolean, adjust?: boolean): void {\r\n\t\tstartDate = this._df.parse(startDate);\r\n\t\tendDate = this._df.parse(endDate);\r\n\t\tthis.zoomToValues(startDate.getTime(), endDate.getTime(), skipRangeEvent, instantly, adjust);\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms axis to specific values.\r\n\t *\r\n\t * @param startValue Start value\r\n\t * @param endValue End value\r\n\t * @param skipRangeEvent Do not invoke events\r\n\t * @param instantly Do not play zoom animations\r\n\t */\r\n\tpublic zoomToValues(startValue: number, endValue: number, skipRangeEvent?: boolean, instantly?: boolean, adjust?: boolean): void {\r\n\t\tif (!this.groupData) {\r\n\t\t\tlet start: number = (startValue - this.min) / (this.max - this.min);\r\n\t\t\tlet end: number = (endValue - this.min) / (this.max - this.min);\r\n\r\n\t\t\tthis.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet difference = this.adjustDifference(startValue, endValue);\r\n\t\t\tlet isEnd = false;\r\n\t\t\tif (endValue == this.max) {\r\n\t\t\t\tisEnd = true;\r\n\t\t\t}\r\n\t\t\tlet isStart = false;\r\n\t\t\tif (startValue == this.min) {\r\n\t\t\t\tisStart = true;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.hasValue(difference)) {\r\n\t\t\t\tlet mainBaseInterval = this.mainBaseInterval;\r\n\t\t\t\tlet groupInterval = this.chooseInterval(0, difference, this.groupCount, this.groupIntervals);\r\n\r\n\t\t\t\tif ((groupInterval.timeUnit == mainBaseInterval.timeUnit && groupInterval.count < mainBaseInterval.count) || $time.getDuration(groupInterval.timeUnit, 1) < $time.getDuration(mainBaseInterval.timeUnit, 1)) {\r\n\t\t\t\t\tgroupInterval = { ...mainBaseInterval };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet id = groupInterval.timeUnit + groupInterval.count;\r\n\t\t\t\tlet min = this.groupMin[id];\r\n\t\t\t\tlet max = this.groupMax[id];\r\n\r\n\t\t\t\tif (!$type.isNumber(min) || !$type.isNumber(max)) {\r\n\t\t\t\t\tmin = Number.POSITIVE_INFINITY;\r\n\t\t\t\t\tmax = Number.NEGATIVE_INFINITY;\r\n\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\tlet seriesMin = series.min(this);\r\n\t\t\t\t\t\tlet seriesMax = series.max(this);\r\n\r\n\t\t\t\t\t\tif (series._dataSets) {\r\n\t\t\t\t\t\t\tlet ds = series._dataSets.getKey(groupInterval.timeUnit + groupInterval.count);\r\n\r\n\t\t\t\t\t\t\tif (ds) {\r\n\t\t\t\t\t\t\t\tlet mindi = ds.getIndex(0);\r\n\t\t\t\t\t\t\t\tlet maxdi = ds.getIndex(ds.length - 1);\r\n\r\n\t\t\t\t\t\t\t\tif (mindi) {\r\n\t\t\t\t\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\t\t\t\t\tseriesMin = mindi.dateX.getTime();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (series.yAxis == this) {\r\n\t\t\t\t\t\t\t\t\t\tseriesMin = mindi.dateY.getTime();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (maxdi) {\r\n\t\t\t\t\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\t\t\t\t\tseriesMax = maxdi.dateX.getTime();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (series.yAxis == this) {\r\n\t\t\t\t\t\t\t\t\t\tseriesMax = maxdi.dateY.getTime();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tseriesMax = $time.round($time.add(new Date(seriesMax), groupInterval.timeUnit, 1, this._df.utc), groupInterval.timeUnit, 1, this._df.firstDayOfWeek, this._df.utc).getTime();\r\n\r\n\t\t\t\t\t\tif (seriesMin < min) {\r\n\t\t\t\t\t\t\tmin = seriesMin;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (seriesMax > max) {\r\n\t\t\t\t\t\t\tmax = seriesMax;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tthis.groupMin[id] = min;\r\n\t\t\t\t\tthis.groupMax[id] = max;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstartValue = $math.fitToRange(startValue, min, max);\r\n\t\t\t\tendValue = $math.fitToRange(endValue, min, max);\r\n\r\n\t\t\t\tif (adjust) {\r\n\t\t\t\t\tif (isEnd) {\r\n\t\t\t\t\t\tstartValue = endValue - difference;\r\n\t\t\t\t\t\tstartValue = $math.fitToRange(startValue, min, max);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (isStart) {\r\n\t\t\t\t\t\tendValue = startValue + difference;\r\n\t\t\t\t\t\tendValue = $math.fitToRange(endValue, min, max);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet start: number = (startValue - min) / (max - min);\r\n\t\t\t\tlet end: number = (endValue - min) / (max - min);\r\n\r\n\t\t\t\tthis.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds `baseInterval` to \"as is\" fields.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as is?\r\n\t */\r\n\tprotected asIs(field: string): boolean {\r\n\t\treturn field == \"baseInterval\" || super.asIs(field);\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from a different instance of Axis.\r\n\t *\r\n\t * @param source Source Axis\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.dateFormats = source.dateFormats;\r\n\t\tthis.periodChangeDateFormats = source.periodChangeDateFormats;\r\n\t\tthis.groupIntervals.clear();\r\n\t\tsource.groupIntervals.each((interval) => {\r\n\t\t\tthis.groupIntervals.push({ ...interval });\r\n\t\t})\r\n\r\n\t\tthis.gridIntervals.clear();\r\n\t\tsource.gridIntervals.each((interval) => {\r\n\t\t\tthis.gridIntervals.push({ ...interval });\r\n\t\t})\r\n\r\n\t\tif (source._baseInterval) {\r\n\t\t\tthis.baseInterval = source._baseInterval;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows Axis tooltip at specific relative position within Axis. (0-1)\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param local or global position\r\n\t */\r\n\tpublic showTooltipAtPosition(position: number, local?: boolean) {\r\n\r\n\t\tif (!local) {\r\n\t\t\tposition = this.toAxisPosition(position);\r\n\t\t}\r\n\r\n\t\tif (this.snapTooltip) {\r\n\t\t\t// rounding is not good, pen/aac4e7f66f019d36b2447f050c600c13 (no last tootltip shown)\r\n\t\t\tlet actualDate = this.positionToDate(position) //$time.round(this.positionToDate(position), this.baseInterval.timeUnit, 1, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\t\tlet actualTime = actualDate.getTime();\r\n\t\t\tlet closestDate: Date;\r\n\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\t\tlet dataItem = this.getSeriesDataItem(series, position, true);\r\n\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tlet date: Date;\r\n\t\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\t\tdate = dataItem.dateX;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\t\tdate = dataItem.dateY;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!closestDate) {\r\n\t\t\t\t\t\t\tclosestDate = date;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (Math.abs(closestDate.getTime() - actualTime) > Math.abs(date.getTime() - actualTime)) {\r\n\t\t\t\t\t\t\t\tclosestDate = date;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (closestDate) {\r\n\t\t\t\tlet closestTime = closestDate.getTime();\r\n\t\t\t\tclosestDate = $time.round(new Date(closestTime), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc);\r\n\t\t\t\tclosestTime = closestDate.getTime();\r\n\r\n\t\t\t\tlet tooltipLocation = this.renderer.tooltipLocation;\r\n\t\t\t\tif (tooltipLocation == 0) {\r\n\t\t\t\t\ttooltipLocation = 0.0001;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclosestDate = new Date(closestDate.getTime() + this.baseDuration * tooltipLocation);\r\n\t\t\t\tposition = this.dateToPosition(closestDate);\r\n\r\n\t\t\t\tif (this.chart.cursor && this.chart.cursor.snapToSeries) {\r\n\t\t\t\t\t//void\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.series.each((series) => {\r\n\r\n\t\t\t\t\t\tlet dataItem = series.dataItemsByAxis.getKey(this.uid).getKey(closestTime + series.currentDataSetId);\r\n\t\t\t\t\t\tlet point = series.showTooltipAtDataItem(dataItem);\r\n\t\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\t\tthis.chart._seriesPoints.push({ series: series, point: point });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// check, otherwise column tooltip will be hidden\r\n\t\t\t\t\t\t\tif (series.tooltipText || series.tooltipHTML) {\r\n\t\t\t\t\t\t\t\tseries.hideTooltip();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//this.chart.sortSeriesTooltips(seriesPoints);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.showTooltipAtPosition(position, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position.\r\n\t *\r\n\t * @default true\r\n\t * @param value Should snap?\r\n\t */\r\n\tpublic set snapTooltip(value: boolean) {\r\n\t\tthis.setPropertyValue(\"snapTooltip\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should snap?\r\n\t */\r\n\tpublic get snapTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"snapTooltip\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if data should be aggregated to composide data items if there\r\n\t * are more data items in selected range than `groupCount`.\r\n\t *\r\n\t * Grouping will occur automatically, based on current selection range, and\r\n\t * will change dynamically when user zooms in/out the chart.\r\n\t *\r\n\t * NOTE: This works only if [[DateAxis]] is base axis of an [[XYSeries]].\r\n\t *\r\n\t * The related [[XYSeries]] also needs to be set up to take advantage of, by\r\n\t * setting its [`groupFields`](https://www.amcharts.com/docs/v4/reference/xyseries/#groupFields_property).\r\n\t *\r\n\t * The group intervals to aggregate data to is defined by `groupIntervals`\r\n\t * property.\r\n\t *\r\n\t * ```TypeScript\r\n\t * let dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n\t * dateAxis.groupData = true;\r\n\t * \r\n\t * let valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n\t * \r\n\t * let series = chart.series.push(new am4charts.LineSeries());\r\n\t * series.dataFields.dateX = \"date\";\r\n\t * series.dataFields.valueY = \"value\";\r\n\t * series.groupFields.valueY = \"average\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * var dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n\t * dateAxis.groupData = true;\r\n\t * \r\n\t * var valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n\t * \r\n\t * var series = chart.series.push(new am4charts.LineSeries());\r\n\t * series.dataFields.dateX = \"date\";\r\n\t * series.dataFields.valueY = \"value\";\r\n\t * series.groupFields.valueY = \"average\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * \"groupData\": true\r\n\t * }],\r\n\t * \"yAxes\": [{\r\n\t * \"type\": \"ValueAxis\"\r\n\t * }],\r\n\t * \"series\": [{\r\n\t * \"type\": \"LineSeries\",\r\n\t * \"dataFields\": {\r\n\t * \"dateX\": \"date\",\r\n\t * \"valueY\": \"value\"\r\n\t * },\r\n\t * \"groupFields\": {\r\n\t * \"valueY\": \"average\"\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default false\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n\t * @since 4.7.0\r\n\t * @param value Group data points?\r\n\t */\r\n\tpublic set groupData(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"groupData\", value)) {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tseries.setDataSet(\"\");\r\n\r\n\t\t\t\tif (value && !series.dataGrouped && series.inited) {\r\n\t\t\t\t\tseries._baseInterval[this.uid] = this.mainBaseInterval;\r\n\t\t\t\t\tthis.groupSeriesData(series);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis._currentDataSetId = \"\"\r\n\t\t\tthis._groupInterval = undefined;\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.invalidateSeries();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Group data points?\r\n\t */\r\n\tpublic get groupData(): boolean {\r\n\t\treturn this.getPropertyValue(\"groupData\");\r\n\t}\r\n\r\n\t/**\r\n\t * Disables automatic selection of data grouping intervals and always uses\r\n\t * `groupInterval` if set. Works only if `groupData = true`.\r\n\t * \r\n\t * @since 4.9.24\r\n\t * @param value Interval\r\n\t */\r\n\tpublic set groupInterval(value: ITimeInterval) {\r\n\t\tif (this.setPropertyValue(\"groupInterval\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.invalidateSeries();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Interval\r\n\t */\r\n\tpublic get groupInterval(): ITimeInterval {\r\n\t\treturn this.getPropertyValue(\"groupInterval\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates threshold of data items in selected range at which to start\r\n\t * aggregating data items if `groupData = true`.\r\n\t * \r\n\t * @default 200\r\n\t * @since 4.7.0\r\n\t * @param value Number of data items\r\n\t */\r\n\tpublic set groupCount(value: number) {\r\n\t\tthis.setPropertyValue(\"groupCount\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Number of data items\r\n\t */\r\n\tpublic get groupCount(): number {\r\n\t\treturn this.getPropertyValue(\"groupCount\");\r\n\t}\r\n\r\n\t/**\r\n\t * \r\n\t * Indicates by how many minutes the timestamps in your data are offset from GMT. \r\n\t * This is useful when you have timestamps as your data and you want all the users to see \r\n\t * the same result and not the time which was at users's location at the given timestamp.\r\n\t * Note, you do not need to set timezoneOffset both here and on DateFormatter, as this will \r\n\t * distort the result.\r\n\t *\r\n\t * @default undefined\r\n\t * @since 4.8.5\r\n\t * @param value Time zone offset in minutes\r\n\t */\r\n\tpublic set timezoneOffset(value: number) {\r\n\t\tthis.setPropertyValue(\"timezoneOffset\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @todo Timezone offset in minutes\r\n\t */\r\n\tpublic get timezoneOffset(): number {\r\n\t\treturn this.getPropertyValue(\"timezoneOffset\");\r\n\t}\r\n\r\n\t/**\r\n\t * Current grid interval.\r\n\t *\r\n\t * @return Grid interval\r\n\t */\r\n\tpublic get gridInterval(): ITimeInterval {\r\n\t\treturn this._gridInterval;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeGap(dataItem: LineSeriesDataItem, previous: LineSeriesDataItem): boolean {\r\n\t\tlet series = dataItem.component;\r\n\t\tif (dataItem && previous) {\r\n\t\t\tif (!series.connect && $type.isNumber(series.autoGapCount)) {\r\n\t\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\t\tlet date = dataItem.dates[\"date\" + this.axisLetter];\r\n\t\t\t\t\tlet prevDate = previous.dates[\"date\" + this.axisLetter];\r\n\r\n\t\t\t\t\tif (date && prevDate) {\r\n\t\t\t\t\t\tlet time = date.getTime();\r\n\t\t\t\t\t\tlet prevTime = prevDate.getTime();\r\n\r\n\t\t\t\t\t\tif (time - prevTime > series.autoGapCount * this.baseDuration) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * @return base value\r\n\t */\r\n\tpublic get baseValue(): number {\r\n\t\treturn this.min;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxis\"] = DateAxis;\r\nregistry.registeredClasses[\"DateAxisDataItem\"] = DateAxisDataItem;\r\n","/**\r\n * Module, defining Axis Renderer for vertical axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer, IAxisRendererProperties, IAxisRendererAdapters, IAxisRendererEvents } from \"./AxisRenderer\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { Axis } from \"./Axis\";\r\nimport { Grid } from \"./Grid\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\nimport { WavedLine } from \"../../core/elements/WavedLine\";\r\nimport { WavedRectangle } from \"../../core/elements/WavedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { VerticalCenter } from \"../../core/defs/VerticalCenter\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererX]].\r\n */\r\nexport interface IAxisRendererXProperties extends IAxisRendererProperties { }\r\n\r\n/**\r\n * Defines events for [[AxisRendererX]].\r\n */\r\nexport interface IAxisRendererXEvents extends IAxisRendererEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRendererX]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererXAdapters extends IAxisRendererAdapters, IAxisRendererXProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A renderer for horizontal axis.\r\n *\r\n * @see {@link IAxisRendererEvents} for a list of available events\r\n * @see {@link IAxisRendererAdapters} for a list of available Adapters\r\n */\r\nexport class AxisRendererX extends AxisRenderer {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererXProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererXAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererXEvents;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"AxisRendererX\";\r\n\r\n\t\tthis.minGridDistance = 120;\r\n\r\n\t\tthis.opposite = false;\r\n\r\n\t\tthis.rotation = 0;\r\n\r\n\t\tthis.width = percent(100);\r\n\r\n\t\tthis.labels.template.horizontalCenter = \"middle\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t* @ignore\r\n\t*/\r\n\tpublic setAxis(axis: Axis) {\r\n\t\tsuper.setAxis(axis);\r\n\t\taxis.layout = \"vertical\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateGridContainer() {\r\n\t\tlet axis = this.axis;\r\n\t\tif (axis) {\r\n\t\t\tlet gridContainer = this.gridContainer;\r\n\t\t\tgridContainer.x = axis.pixelX;\r\n\t\t\tgridContainer.width = axis.axisLength;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Called when rendered is attached to an Axis, as well as a property of\r\n\t * Axis that might affect the appearance is updated.\r\n\t *\r\n\t * E.g. `axis.opposite`, `axis.inside`, etc.\r\n\t *\r\n\t * This method is called **before** draw, so that any related setting\r\n\t * changed in this method can be changed.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processRenderer(): void {\r\n\t\tsuper.processRenderer();\r\n\r\n\t\t// can not do this in init, as axis is set later\r\n\t\tlet axis = this.axis;\r\n\r\n\t\tif (axis) {\r\n\t\t\tif (!(axis.width instanceof Percent)) {\r\n\t\t\t\taxis.width = percent(100);\r\n\t\t\t}\r\n\r\n\t\t\t// @todo Is thi sneeded?\r\n\t\t\t$utils.used(this.line);\r\n\r\n\t\t\tlet title: Label = axis.title;\r\n\t\t\ttitle.rotation = 0;\r\n\t\t\ttitle.align = \"center\";\r\n\r\n\t\t\tif (this.opposite) {\r\n\t\t\t\tthis.line.toFront();\r\n\t\t\t\ttitle.toBack();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttitle.toFront();\r\n\t\t\t\tthis.toBack();\r\n\t\t\t\tthis.line.toBack();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates some of the Axis tooltip's visual properties, related to\r\n\t * rendering of the Axis.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateTooltip() {\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tif (axis) {\r\n\t\t\tlet bigNum: number = 1000;\r\n\t\t\tlet bbx: number = this.line.pixelX;\r\n\t\t\tlet bby: number = this.line.pixelY;\r\n\t\t\tlet bbw: number = this.axisLength;\r\n\r\n\t\t\tlet bbh: number = bigNum;\r\n\r\n\t\t\t// top\r\n\t\t\tif (this.opposite) {\r\n\t\t\t\tif (!this.inside) {\r\n\t\t\t\t\tbby = - bigNum;\r\n\t\t\t\t\tbbh = bigNum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// bottom\r\n\t\t\telse {\r\n\t\t\t\tif (this.inside) {\r\n\t\t\t\t\tbby = - bigNum;\r\n\t\t\t\t\tbbh = bigNum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.axis.updateTooltip(\"vertical\", { x: bbx, y: bby, width: bbw, height: bbh });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param label Label element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: AxisLabel, position: number, endPosition: number, location?: number) {\r\n\r\n\t\tif (!$type.hasValue(location)) {\r\n\t\t\tlocation = label.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tlabel.isMeasured = !label.inside;\r\n\r\n\t\tlet deltaY = 0;\r\n\t\tlet verticalCenter: VerticalCenter;\r\n\t\tlet maxHeight = this.gridContainer.maxHeight;\r\n\t\tif (this.opposite) {\r\n\t\t\tif (label.inside) {\r\n\t\t\t\tverticalCenter = \"top\";\r\n\t\t\t\tif (label.valign == \"bottom\") {\r\n\t\t\t\t\tdeltaY = maxHeight;\r\n\t\t\t\t\tverticalCenter = \"bottom\";\r\n\t\t\t\t}\r\n\t\t\t\tif (label.valign == \"middle\") {\r\n\t\t\t\t\tdeltaY = maxHeight / 2;\r\n\t\t\t\t\tverticalCenter = \"middle\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tverticalCenter = \"bottom\";\r\n\t\t\t}\r\n\r\n\t\t\tpoint.y = deltaY;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (label.inside) {\r\n\t\t\t\tverticalCenter = \"bottom\";\r\n\t\t\t\tif (label.valign == \"top\") {\r\n\t\t\t\t\tdeltaY = -maxHeight;\r\n\t\t\t\t\tverticalCenter = \"top\";\r\n\t\t\t\t}\r\n\t\t\t\tif (label.valign == \"middle\") {\r\n\t\t\t\t\tdeltaY = -maxHeight / 2;\r\n\t\t\t\t\tverticalCenter = \"middle\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tverticalCenter = \"top\";\r\n\t\t\t}\r\n\r\n\t\t\tpoint.y += deltaY;\r\n\t\t}\r\n\r\n\t\tif (label.rotation == 0) {\r\n\t\t\t// Apply fuzzy logic to verticalCenter only if labels are not rotated\r\n\t\t\tlabel.verticalCenter = verticalCenter;\r\n\t\t}\r\n\r\n\t\tthis.positionItem(label, point);\r\n\r\n\t\tthis.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\tlet axis = this.axis;\r\n\t\treturn (axis.measuredWidth - axis.pixelPaddingRight - axis.pixelPaddingLeft) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param position2 Position (0-1) Position on the second axis\r\n\t * @return Point\r\n\t */\r\n\tpublic positionToPoint(position: number, position2?: number): IPoint {\r\n\t\treturn { x: this.positionToCoordinate(position), y: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @param point Point\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint) {\r\n\t\treturn this.coordinateToPosition(point.x, point.y);\r\n\t}\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition Starting position\r\n\t * @param endPosition End position\r\n\t * @return SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number): string {\r\n\t\tlet x1: number = $math.fitToRange(this.positionToCoordinate(startPosition), 0, this.axisLength);\r\n\t\tlet x2: number = $math.fitToRange(this.positionToCoordinate(endPosition), 0, this.axisLength);\r\n\r\n\t\tlet w: number = Math.abs(x2 - x1);\r\n\t\tlet h: number = this.getHeight();\r\n\t\tlet x: number = Math.min(x1, x2);\r\n\t\tlet y: number = 0;\r\n\r\n\t\treturn $path.rectToPath({\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\twidth: w,\r\n\t\t\theight: h\r\n\t\t}, true);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates and positions an axis break element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Break element\r\n\t */\r\n\tpublic updateBreakElement(axisBreak: AxisBreak): void {\r\n\t\tsuper.updateBreakElement(axisBreak);\r\n\r\n\t\tlet startLine = axisBreak.startLine;\r\n\t\tlet endLine = axisBreak.endLine;\r\n\t\tlet fillShape = axisBreak.fillShape;\r\n\r\n\t\tlet startPoint: IPoint = axisBreak.startPoint;\r\n\t\tlet endPoint: IPoint = axisBreak.endPoint;\r\n\r\n\t\tlet y1: number = axisBreak.pixelMarginLeft;\r\n\t\tlet y2: number = this.getHeight() - axisBreak.pixelMarginTop - axisBreak.pixelMarginBottom;\r\n\r\n\t\tstartPoint.x = $math.fitToRange(startPoint.x, -1, this.axisLength + 1);\r\n\t\tendPoint.x = $math.fitToRange(endPoint.x, -1, this.axisLength + 1);\r\n\r\n\t\tif (startPoint.x == endPoint.x && (startPoint.x < 0 || startPoint.x > this.axisLength)) {\r\n\t\t\taxisBreak.fillShape.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\taxisBreak.fillShape.__disabled = false;\r\n\t\t}\r\n\r\n\t\tstartLine.y = y1;\r\n\t\tstartLine.width = 0;\r\n\t\tstartLine.height = y2;\r\n\r\n\t\tendLine.y = y1;\r\n\t\tendLine.width = 0;\r\n\t\tendLine.height = y2;\r\n\r\n\t\tfillShape.height = y2;\r\n\t\tfillShape.width = Math.abs(endPoint.x - startPoint.x);\r\n\t\tfillShape.y = y1;\r\n\t\tfillShape.x = startPoint.x;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Grid, position: number, endPosition: number): void {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\t//point.x = $utils.spritePointToSprite({x:point.x, y:0}, this, this.gridContainer).x;\r\n\r\n\t\tgrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.getHeight() });\r\n\r\n\t\tthis.positionItem(grid, point);\r\n\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param tick Tick element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number): void {\r\n\t\tposition = position + (endPosition - position) * tick.location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tlet tickLength = tick.length;\r\n\r\n\t\tpoint.y = $utils.spritePointToSprite({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y;\r\n\r\n\t\tif (this.opposite) {\r\n\t\t\ttickLength *= (tick.inside ? 1 : -1);\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttickLength *= (tick.inside ? -1 : 1);\r\n\t\t}\r\n\r\n\t\ttick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: tickLength });\r\n\r\n\t\tthis.positionItem(tick, point);\r\n\r\n\t\tthis.toggleVisibility(tick, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine(): void {\r\n\t\tthis.line.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.axisLength, y: 0 });\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement(): void {\r\n\t\tsuper.updateBaseGridElement();\r\n\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet h: number = this.getHeight();\r\n\t\tlet w: number = this.axisLength;\r\n\t\tlet baseGrid: Sprite = this.baseGrid;\r\n\r\n\t\tlet x: number = axis.basePoint.x;\r\n\t\tif (x < -0.2 || x > w + 0.2) {\r\n\t\t\tbaseGrid.hide(0);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet y = $utils.spritePointToSprite({ x: 0, y: 0 }, this.gridContainer, baseGrid.parent).y;\r\n\t\t\tbaseGrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: h });\r\n\t\t\tbaseGrid.moveTo({ x: x, y: y });\r\n\t\t\tbaseGrid.show(0);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates visual elements for and axis break.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Axis break\r\n\t */\r\n\tpublic createBreakSprites(axisBreak: AxisBreak): void {\r\n\t\taxisBreak.startLine = new WavedLine();\r\n\t\taxisBreak.endLine = new WavedLine();\r\n\t\tlet wavedRectangle: WavedRectangle = new WavedRectangle();\r\n\t\twavedRectangle.setWavedSides(false, true, false, true);\r\n\t\taxisBreak.fillShape = wavedRectangle;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic toAxisPosition(value: number): number {\r\n\t\tlet inversedPosition = value;\r\n\t\tlet axis = this.axis;\r\n\r\n\t\tif (axis) {\r\n\t\t\tlet relativePositionSprite = axis.relativePositionSprite;\r\n\r\n\t\t\tlet x = axis.pixelX;\r\n\t\t\tif (relativePositionSprite) {\r\n\t\t\t\tx = $utils.spritePointToSprite({ x: this.pixelX, y: 0 }, this.parent, relativePositionSprite).x;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trelativePositionSprite = axis.parent;\r\n\t\t\t}\r\n\r\n\t\t\tif(relativePositionSprite){\r\n\t\t\t\tlet relativeX = x / relativePositionSprite.innerWidth;\r\n\t\t\t\tlet relativeWidth = axis.axisLength / relativePositionSprite.innerWidth;\r\n\r\n\t\t\t\treturn (inversedPosition - relativeX) / relativeWidth;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions axis bullets.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet AxisBullet element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateBullet(bullet: Sprite, position: number, endPosition: number): void {\r\n\t\tlet location = 0.5;\r\n\t\tif (bullet instanceof AxisBullet) {\r\n\t\t\tlocation = bullet.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tpoint.y = $utils.spritePointToSprite({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y;\r\n\r\n\t\tthis.positionItem(bullet, point);\r\n\r\n\t\tthis.toggleVisibility(bullet, position, 0, 1);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererX\"] = AxisRendererX;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Put labels inside plot area.\r\n * Disable first and last labels.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof AxisRendererX) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.inside = true;\r\n\t\t\tstate.properties.maxLabelPosition = 0.9;\r\n\t\t\tstate.properties.minLabelPosition = 0.1;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Disable labels altogather on very small charts\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof AxisRendererX) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});","/**\r\n * A module which defines functionality related to Category Axis Break.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { AxisBreak, IAxisBreakProperties, IAxisBreakAdapters, IAxisBreakEvents } from \"./AxisBreak\";\r\nimport { CategoryAxis } from \"./CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[CategoryAxisBreak]].\r\n */\r\nexport interface ICategoryAxisBreakProperties extends IAxisBreakProperties {\r\n\r\n\t/**\r\n\t * Category break starts on.\r\n\t */\r\n\tstartCategory?: string;\r\n\r\n\t/**\r\n\t * Category break ends on.\r\n\t */\r\n\tendCategory?: string;\r\n\r\n\t/**\r\n\t * Location where break starts within cell (0-1).\r\n\t */\r\n\tstartLocation?: number;\r\n\r\n\t/**\r\n\t * Location where break ends within cell (0-1).\r\n\t */\r\n\tendLocation?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[CategoryAxisBreak]].\r\n */\r\nexport interface ICategoryAxisBreakEvents extends IAxisBreakEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CategoryAxisBreak]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisBreakAdapters extends IAxisBreakAdapters, ICategoryAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base class to define \"breaks\" in axes\r\n * @see {@link ICategoryAxisBreakEvents} for a list of available events\r\n * @see {@link ICategoryAxisBreakAdapters} for a list of available Adapters\r\n */\r\nexport class CategoryAxisBreak extends AxisBreak {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICategoryAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICategoryAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICategoryAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: CategoryAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxisBreak\";\r\n\t\tthis.properties.startLocation = 0.5;\r\n\t\tthis.properties.endLocation = 0.5;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's start.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get startPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.indexToPosition(this.adjustedStartValue, this.startLocation);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's end.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get endPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.indexToPosition(this.adjustedEndValue, this.endLocation);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A category break starts on.\r\n\t *\r\n\t * @param value Start category\r\n\t */\r\n\tpublic set startCategory(value: string) {\r\n\t\tif (this.setPropertyValue(\"startCategory\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start category\r\n\t */\r\n\tpublic get startCategory(): string {\r\n\t\treturn this.getPropertyValue(\"startCategory\");\r\n\t}\r\n\r\n\t/**\r\n\t * A category break ends on.\r\n\t *\r\n\t * @param value End category\r\n\t */\r\n\tpublic set endCategory(value: string) {\r\n\t\tif (this.setPropertyValue(\"endCategory\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End category\r\n\t */\r\n\tpublic get endCategory(): string {\r\n\t\treturn this.getPropertyValue(\"endCategory\");\r\n\t}\r\n\r\n\t/**\r\n\t * An index of start category.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set startValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"startValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get startValue(): number {\r\n\t\tlet category: string = this.getPropertyValue(\"startCategory\");\r\n\t\tif (category) {\r\n\t\t\treturn this.axis.categoryToIndex(category);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.getPropertyValue(\"startValue\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * An index of end category or a end value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set endValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"endValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get endValue(): number {\r\n\t\tlet category: string = this.getPropertyValue(\"endCategory\");\r\n\t\tif (category) {\r\n\t\t\treturn this.axis.categoryToIndex(category);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.getPropertyValue(\"endValue\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates where within starting category break should begin.\r\n\t *\r\n\t * Values range from `0` (start) to `1` (end), with default being `0.5` (middle).\r\n\t *\r\n\t * E.g. if you want to a break to fully encompass start and end categories,\r\n\t * you should set `startLocation = 0` and `endLocation = 1`.\r\n\t *\r\n\t * @since 4.9.17\r\n\t * @default 0.5\r\n\t * @param value Break start location\r\n\t */\r\n\tpublic set startLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"startLocation\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Break start location\r\n\t */\r\n\tpublic get startLocation(): number {\r\n\t\treturn this.getPropertyValue(\"startLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates where within ending category break should end.\r\n\t *\r\n\t * Values range from `0` (start) to `1` (end), with default being `0.5` (middle).\r\n\t *\r\n\t * E.g. if you want to a break to fully encompass start and end categories,\r\n\t * you should set `startLocation = 0` and `endLocation = 1`.\r\n\t *\r\n\t * @since 4.9.17\r\n\t * @default 0.5\r\n\t * @param value Break end location\r\n\t */\r\n\tpublic set endLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"endLocation\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Break end location\r\n\t */\r\n\tpublic get endLocation(): number {\r\n\t\treturn this.getPropertyValue(\"endLocation\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxisBreak\"] = CategoryAxisBreak;\r\n","/**\r\n * Category axis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Axis, AxisItemLocation, AxisDataItem, IAxisProperties, IAxisDataFields, IAxisAdapters, IAxisEvents, IAxisDataItemAdapters } from \"./Axis\";\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisRendererX } from \"./AxisRendererX\";\r\nimport { AxisRendererY } from \"./AxisRendererY\";\r\nimport { SerialChart } from \"../types/SerialChart\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { ColumnSeries } from \"../series/ColumnSeries\";\r\nimport { CategoryAxisBreak } from \"./CategoryAxisBreak\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[CategoryAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class CategoryAxisDataItem extends AxisDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: CategoryAxis;\r\n\r\n\tpublic seriesDataItems: { [index: string]: XYSeriesDataItem[] } = {};\r\n\r\n\tpublic deltaAnimation: Animation;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICategoryAxisDataItemAdapters;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxisDataItem\";\r\n\t\tthis.text = \"{category}\";\r\n\r\n\t\tthis.locations.category = 0;\r\n\t\tthis.locations.endCategory = 1;\r\n\r\n\t\tthis.deltaPosition = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Category.\r\n\t *\r\n\t * @param value Category\r\n\t */\r\n\tpublic set category(value: string) {\r\n\t\tlet oldCategory = this.properties.category;\r\n\t\tthis.setProperty(\"category\", value);\r\n\t\tif ($type.hasValue(oldCategory) && oldCategory != value) {\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.validateDataElement(this);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get category(): string {\r\n\t\tif (this._adapterO) {\r\n\t\t\tif (this._adapterO.isEnabled(\"category\")) {\r\n\t\t\t\treturn this._adapterO.apply(\"category\", this.properties.category);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.properties.category;\r\n\t}\r\n\r\n\t/**\r\n\t * End category.\r\n\t *\r\n\t * Used for items that span several categories, like [[CategoryAxisBreak]].\r\n\t *\r\n\t * @param value End category\r\n\t */\r\n\tpublic set endCategory(value: string) {\r\n\t\tthis.setProperty(\"endCategory\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End category\r\n\t */\r\n\tpublic get endCategory(): string {\r\n\t\treturn this.properties.endCategory;\r\n\t}\r\n\r\n\tpublic set deltaPosition(value: number) {\r\n\t\tif (value != this.properties.deltaCoordinate) {\r\n\t\t\tthis.setProperty(\"deltaCoordinate\", value);\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.invalidateDataItems();\r\n\t\t\t\tthis.component.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get deltaPosition(): number {\r\n\t\treturn this.properties.deltaCoordinate;\r\n\t}\r\n}\r\n\r\n/**\r\n * Defines adapters for [[DataItem]]\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisDataItemAdapters extends IAxisDataItemAdapters {\r\n\tcategory: string;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisDataFields extends IAxisDataFields {\r\n\r\n\t/**\r\n\t * A field that holds category information.\r\n\t */\r\n\tcategory?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisProperties extends IAxisProperties {\r\n\tsortBySeries?: ColumnSeries;\r\n}\r\n\r\n/**\r\n * Defines events for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisEvents extends IAxisEvents { }\r\n\r\n/**\r\n * Defines adapter for [[CategoryAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisAdapters extends IAxisAdapters, ICategoryAxisProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a category-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"CategoryAxis\",\r\n * \"title\": {\r\n * \"text\": \"Clients\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link ICategoryAxisEvents} for a list of available Events\r\n * @see {@link ICategoryAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class CategoryAxis<T extends AxisRenderer = AxisRenderer> extends Axis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: ICategoryAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICategoryAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICategoryAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICategoryAxisEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: CategoryAxisDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: CategoryAxisBreak;\r\n\r\n\t/**\r\n\t * A reference to chart the axis is for.\r\n\t */\r\n\tpublic chart: SerialChart;\r\n\r\n\t/**\r\n\t * Frequency of the labels on axis.\r\n\t */\r\n\tprotected _frequency: number;\r\n\r\n\t/**\r\n\t * A collection that holds Axis' data items sorted by each category.\r\n\t */\r\n\tpublic dataItemsByCategory: Dictionary<string, this[\"_dataItem\"]> = new Dictionary<string, this[\"_dataItem\"]>();\r\n\r\n\t/**\r\n\t * last data item is used for the closing grid\r\n\t */\r\n\tprotected _lastDataItem: CategoryAxisDataItem;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxis\";\r\n\r\n\t\t// Set field name\r\n\t\tthis.axisFieldName = \"category\";\r\n\r\n\t\tthis._lastDataItem = this.createDataItem();\r\n\t\tthis._lastDataItem.component = this;\r\n\t\tthis._disposers.push(this._lastDataItem);\r\n\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new CategoryAxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new CategoryAxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes a related series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic processSeriesDataItem(dataItem: XYSeriesDataItem, axisLetter?: string): void {\r\n\t\tsuper.processSeriesDataItem(dataItem, axisLetter);\r\n\t\tlet category: string = (<any>dataItem)[\"category\" + this.axisLetter];\r\n\t\tif ($type.hasValue(category)) {\r\n\t\t\tlet categoryAxisDataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\t\t\tif (categoryAxisDataItem) {\r\n\t\t\t\tlet seriesId = dataItem.component.uid;\r\n\t\t\t\tlet seriesDataItems = categoryAxisDataItem.seriesDataItems[seriesId];\r\n\t\t\t\tif (!seriesDataItems) {\r\n\t\t\t\t\tseriesDataItems = [];\r\n\t\t\t\t\tcategoryAxisDataItem.seriesDataItems[seriesId] = seriesDataItems;\r\n\t\t\t\t}\r\n\t\t\t\tseriesDataItems.push(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.component.dataItems.remove(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates the data range.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validateDataRange(): void {\r\n\r\n\t\tsuper.validateDataRange();\r\n\r\n\t\t$iter.each(this._series.iterator(), (series) => {\r\n\t\t\tif ((series.xAxis instanceof CategoryAxis) && (series.yAxis instanceof CategoryAxis)) {\r\n\t\t\t\tseries.invalidateDataRange();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet startIndex = this.positionToIndex(this.start);\r\n\t\t\t\tlet endIndex = this.positionToIndex(this.end);\r\n\r\n\t\t\t\tif (endIndex >= this.dataItems.length) {\r\n\t\t\t\t\tendIndex--;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet seriesId = series.uid;\r\n\t\t\t\tlet minIndex: number;\r\n\t\t\t\tlet maxIndex: number;\r\n\r\n\t\t\t\tfor (let i = startIndex; i <= endIndex; i++) {\r\n\t\t\t\t\tlet axisDataItem = this.dataItems.getIndex(i);\r\n\t\t\t\t\tif (axisDataItem) {\r\n\t\t\t\t\t\tlet seriesDataItems = axisDataItem.seriesDataItems[seriesId];\r\n\r\n\t\t\t\t\t\tif (seriesDataItems) {\r\n\t\t\t\t\t\t\tfor (let i = 0; i < seriesDataItems.length; i++) {\r\n\t\t\t\t\t\t\t\tlet seriesDataItem = seriesDataItems[i];\r\n\t\t\t\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\t\t\t\tlet index = seriesDataItem.index;\r\n\t\t\t\t\t\t\t\t\tif (!$type.isNumber(minIndex) || index < minIndex) {\r\n\t\t\t\t\t\t\t\t\t\tminIndex = index;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (!$type.isNumber(maxIndex) || index > maxIndex) {\r\n\t\t\t\t\t\t\t\t\t\tmaxIndex = index;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($type.isNumber(minIndex)) {\r\n\t\t\t\t\tseries.startIndex = minIndex;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tseries.start = this.start;\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.isNumber(maxIndex)) {\r\n\t\t\t\t\tseries.endIndex = maxIndex + 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tseries.end = this.end;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// range might not change, but axis breaks might.\r\n\t\t\t\tif (this._axisBreaks && this._axisBreaks.length > 0) {\r\n\t\t\t\t\tseries.invalidateDataRange();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Validates the whole axis. Causes it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tlet dataCount: number = this.dataItems.length;\r\n\r\n\t\tlet startIndex = $math.fitToRange(Math.floor(this.start * dataCount - 1), 0, dataCount);\r\n\t\tlet endIndex = $math.fitToRange(Math.ceil(this.end * dataCount), 0, dataCount);\r\n\r\n\t\tif (this.renderer.invalid) {\r\n\t\t\tthis.renderer.validate();\r\n\t\t}\r\n\r\n\t\t// find frequency at which we'll show items\r\n\t\tlet maxCount: number = this.renderer.axisLength / this.renderer.minGridDistance;\r\n\t\tlet frequency: number = Math.min(this.dataItems.length, Math.ceil((endIndex - startIndex) / maxCount));\r\n\r\n\t\tthis._startIndex = Math.floor(startIndex / frequency) * frequency;\r\n\t\tthis._endIndex = Math.ceil(this.end * dataCount);\r\n\r\n\t\tthis.fixAxisBreaks();\r\n\r\n\t\tif (this._startIndex == this._endIndex) {\r\n\t\t\tthis._endIndex++;\r\n\t\t}\r\n\r\n\t\tthis._frequency = frequency;\r\n\r\n\t\tif (this.axisLength <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.maxZoomFactor = this.dataItems.length;\r\n\t\tif (this.dataItems.length <= 0) {\r\n\t\t\tthis.maxZoomFactor = 1;\r\n\t\t}\r\n\r\n\t\tthis.resetIterators();\r\n\r\n\t\t// it's important to use protected variables here, as getters will return 0 - length\r\n\t\t// TODO use iterator instead\r\n\t\t// @ todo: not solved cat axis item fading\r\n\t\tstartIndex = $math.max(0, this._startIndex - this._frequency);\r\n\t\tendIndex = $math.min(this.dataItems.length, this._endIndex + this._frequency);\r\n\r\n\t\tlet itemIndex = 0;\r\n\r\n\t\tfor (let i = 0; i < startIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\r\n\t\tfor (let i = endIndex, len = this.dataItems.length; i < len; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tif (i < this.dataItems.length) {\r\n\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(i);\r\n\t\t\t\tif (i / this._frequency == Math.round(i / this._frequency)) {\r\n\t\t\t\t\tlet axisBreak: CategoryAxisBreak = this.isInBreak(i);\r\n\t\t\t\t\tif (!axisBreak) {\r\n\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\tthis.validateDataElement(dataItem, itemIndex);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titemIndex++;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//previously we disabled all before, but this is better for cpu\r\n\t\t\t\t\t//this.validateDataElement(dataItem, itemIndex); // helps to solve shrinking // not good - creates all items\r\n\t\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.appendDataItem(this._lastDataItem);\r\n\t\tthis.validateDataElement(this._lastDataItem, itemIndex + 1, this.dataItems.length);\r\n\r\n\t\tif (this._axisBreaks) {\r\n\t\t\tlet axisBreaks = this._axisBreaks;\r\n\r\n\t\t\taxisBreaks.each((axisBreak) => {\r\n\t\t\t\tlet adjustedStartValue: number = axisBreak.adjustedStartValue;\r\n\t\t\t\tlet adjustedEndValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\tif ($math.intersect({ start: adjustedStartValue, end: adjustedEndValue }, { start: this._startIndex, end: this._endIndex })) {\r\n\r\n\t\t\t\t\tfor (let b = adjustedStartValue; b <= adjustedEndValue; b++) {\r\n\t\t\t\t\t\tlet dataItem = this.dataItems.getIndex(b);\r\n\t\t\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet frequency: number = $math.fitToRange(Math.ceil(this._frequency / axisBreak.breakSize), 1, adjustedEndValue - adjustedStartValue);\r\n\t\t\t\t\tlet itemIndex = 0;\r\n\t\t\t\t\tif (axisBreak.breakSize > 0) {\r\n\t\t\t\t\t\t// TODO use iterator instead\r\n\t\t\t\t\t\tfor (let b = adjustedStartValue; b <= adjustedEndValue; b = b + frequency) {\r\n\t\t\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(b);\r\n\t\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\t\tthis.validateDataElement(dataItem, itemIndex);\r\n\t\t\t\t\t\t\titemIndex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.validateBreaks();\r\n\t\tthis.validateAxisRanges();\r\n\r\n\t\tthis.ghostLabel.invalidate(); // solves font issue\r\n\t\tthis.renderer.invalidateLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElement description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @param itemIndex [description]\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"], itemIndex?: number, index?: number): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\tdataItem.itemIndex = this._axisItemCount;\r\n\t\tthis._axisItemCount++;\r\n\r\n\t\t//dataItem.__disabled = false;\r\n\r\n\t\tlet renderer: AxisRenderer = this.renderer;\r\n\t\tif (!$type.isNumber(index)) {\r\n\t\t\tindex = this.categoryToIndex(dataItem.category);\r\n\t\t}\r\n\r\n\t\tlet endIndex = this.categoryToIndex(dataItem.endCategory);\r\n\r\n\t\tif (!$type.isNumber(endIndex)) {\r\n\t\t\tendIndex = index;\r\n\t\t}\r\n\r\n\t\tlet position: number = this.indexToPosition(index, dataItem.locations.category);\r\n\t\tlet endPosition: number = this.indexToPosition(endIndex, dataItem.locations.endCategory);\r\n\r\n\t\tdataItem.position = position;\r\n\r\n\t\tlet fillEndIndex: number;\r\n\t\tlet fillPosition: number;\r\n\t\tlet fillEndPosition: number;\r\n\r\n\t\tif (dataItem.isRange) {\r\n\t\t\tfillEndIndex = endIndex;\r\n\t\t\tfillPosition = this.indexToPosition(index, dataItem.locations.category);\r\n\t\t\tfillEndPosition = this.indexToPosition(fillEndIndex, dataItem.locations.endCategory);\r\n\t\t}\r\n\r\n\t\tdataItem.point = renderer.positionToPoint(position);\r\n\r\n\t\tlet tick: AxisTick = dataItem.tick;\r\n\t\tif (tick && !tick.disabled) {\r\n\t\t\trenderer.updateTickElement(tick, position, endPosition);\r\n\t\t}\r\n\r\n\t\tlet grid: Grid = dataItem.grid;\r\n\t\tif (grid && !grid.disabled) {\r\n\t\t\trenderer.updateGridElement(grid, position, endPosition);\r\n\t\t}\r\n\r\n\r\n\t\tlet label: AxisLabel = dataItem.label;\r\n\t\tif (label && !label.disabled) {\r\n\t\t\t// theorethically this might result problems if category text changes, the range text won't change. But otherwise range.label.text = \"custom text\" wont' work, which is not intuitive.\r\n\t\t\tif (!dataItem.isRange || label.text == undefined) {\r\n\t\t\t\tdataItem.text = dataItem.text;\r\n\t\t\t}\r\n\r\n\t\t\trenderer.updateLabelElement(label, position, endPosition);\r\n\r\n\t\t\tif ((renderer instanceof AxisRendererY && dataItem.label.measuredWidth > this.ghostLabel.measuredWidth) || (renderer instanceof AxisRendererX && dataItem.label.measuredHeight > this.ghostLabel.measuredHeight)) {\r\n\t\t\t\tif (dataItem.label.html) {\r\n\t\t\t\t\tthis.ghostLabel.html = dataItem.label.currentText;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.ghostLabel.text = dataItem.label.currentText;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet fill: AxisFill = dataItem.axisFill;\r\n\t\tif (fill && !fill.disabled) {\r\n\r\n\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\tfillEndIndex = index + this._frequency;\r\n\t\t\t\tfillPosition = this.indexToPosition(index, fill.location);\r\n\t\t\t\tfillEndPosition = this.indexToPosition(fillEndIndex, fill.location);\r\n\t\t\t}\r\n\r\n\t\t\trenderer.updateFillElement(fill, fillPosition, fillEndPosition);\r\n\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\tthis.fillRule(dataItem, itemIndex);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataItem.bullet) {\r\n\t\t\trenderer.updateBullet(dataItem.bullet, position, endPosition);\r\n\t\t}\r\n\r\n\r\n\t\tlet mask: AxisFill = dataItem.mask;\r\n\t\tif (mask) {\r\n\t\t\trenderer.updateFillElement(mask, fillPosition, fillEndPosition);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tthis.dataItemsByCategory.clear();\r\n\t\tsuper.disposeData();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes the axis data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t * @param dataContext The raw data that corresponds to this data item\r\n\t */\r\n\tpublic processDataItem(dataItem: this[\"_dataItem\"], dataContext: Object): void {\r\n\t\tif (dataItem) {\r\n\t\t\t// creat a collection for fast access\r\n\t\t\tsuper.processDataItem(dataItem, dataContext);\r\n\t\t\t// check if such category already exists\r\n\t\t\t//let existingDataItem: CategoryAxisDataItem = this.dataItemsByCategory.getKey(dataItem.category);\r\n\t\t\t//if (existingDataItem && existingDataItem != dataItem) {\r\n\t\t\t//\tthis.dataItems.remove(existingDataItem);\r\n\t\t\t//}\r\n\r\n\t\t\tif ($type.hasValue(dataItem.category)) {\r\n\t\t\t\tthis.dataItemsByCategory.setKey(dataItem.category, dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected getDataItem(dataContext?: any): this[\"_dataItem\"] {\r\n\t\tlet category: string = <string>(dataContext[this.dataFields.category]);\r\n\t\tif ($type.hasValue(category)) {\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\treturn dataItem;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.dataItems.create();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a category index to an actual screen coordinate on the axis.\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t *\r\n\t * @param index Index\r\n\t * @param location Location (0-1)\r\n\t * @return Position (px)\r\n\t */\r\n\tpublic indexToPosition(index: number, location?: AxisItemLocation | number): number {\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = 0.5;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet difference: number = this.adjustDifference(startIndex, endIndex);\r\n\r\n\t\tlet startLocation = this.startLocation;\r\n\t\tlet endLocation = this.endLocation;\r\n\r\n\t\tdifference -= startLocation;\r\n\t\tdifference -= (1 - endLocation);\r\n\r\n\t\tif (this._axisBreaks) {\r\n\t\t\tlet axisBreaks = this._axisBreaks;\r\n\r\n\t\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\tlet breakStartIndex: number = axisBreak.adjustedStartValue;\r\n\t\t\t\tlet breakEndIndex: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\tif (index < startIndex || !$type.isNumber(breakStartIndex) || !$type.isNumber(breakEndIndex)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($math.intersect({ start: breakStartIndex, end: breakEndIndex }, { start: startIndex, end: endIndex })) {\r\n\t\t\t\t\tbreakStartIndex = Math.max(startIndex, breakStartIndex);\r\n\t\t\t\t\tbreakEndIndex = Math.min(endIndex, breakEndIndex);\r\n\r\n\t\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\t\t// value to the right of break end\r\n\t\t\t\t\tif (index > breakEndIndex) {\r\n\t\t\t\t\t\tstartIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// value to the left of break start\r\n\t\t\t\t\telse if (index < breakStartIndex) {\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// value within break\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tindex = breakStartIndex + (index - breakStartIndex) * breakSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet deltaPosition = 0;\r\n\t\tlet dataItem = this.dataItems.getIndex(index);\r\n\t\tif (dataItem) {\r\n\t\t\tdeltaPosition = dataItem.deltaPosition;\r\n\t\t}\r\n\r\n\t\treturn $math.round(deltaPosition + (index + location - startLocation - startIndex) / difference, 5);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a string category name to relative position on axis.\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t *\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Position\r\n\t */\r\n\tpublic categoryToPosition(category: string, location?: AxisItemLocation): number {\r\n\t\tlet index: number = this.categoryToIndex(category);\r\n\t\treturn this.indexToPosition(index, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a string category name to a orientation point (x, y, angle) on axis\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic categoryToPoint(category: string, location?: AxisItemLocation): IOrientationPoint {\r\n\t\tlet position = this.categoryToPosition(category, location);\r\n\t\tlet point = this.renderer.positionToPoint(position);\r\n\t\tlet angle = this.renderer.positionToAngle(position);\r\n\t\treturn { x: point.x, y: point.y, angle: angle };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a string category name to a orientation point (x, y, angle) on axis\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Orientation point\r\n\t */\r\n\tanyToPoint(category: string, location?: AxisItemLocation): IOrientationPoint {\r\n\t\treturn this.categoryToPoint(category, location);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a string category name to relative position on axis.\r\n\t *\r\n\t * An alias to `categoryToPosition()`.\r\n\t *\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic anyToPosition(category: string, location?: AxisItemLocation): number {\r\n\t\treturn this.categoryToPosition(category, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts named category to an index of data item it corresponds to.\r\n\t *\r\n\t * @param category Category\r\n\t * @return Data item index\r\n\t */\r\n\tpublic categoryToIndex(category: string): number {\r\n\t\tif ($type.hasValue(category)) {\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\t\t\tif (dataItem) {\r\n\t\t\t\treturn dataItem.index;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific named ctaegories.\r\n\t *\r\n\t * @param startCategory Start category\r\n\t * @param endCategory End category\r\n\t */\r\n\tpublic zoomToCategories(startCategory: string, endCategory: string): void {\r\n\t\tthis.zoomToIndexes(this.categoryToIndex(startCategory), this.categoryToIndex(endCategory) + 1);\r\n\t}\r\n\r\n\t/**\r\n\t * [getAnyRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param start [description]\r\n\t * @param end [description]\r\n\t * @param startLocation [description]\r\n\t * @param endLocation [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getAnyRangePath(start: string, end: string, startLocation?: AxisItemLocation, endLocation?: AxisItemLocation): string {\r\n\t\tlet startPos: number = this.categoryToPosition(start, startLocation);\r\n\t\tlet endPos: number = this.categoryToPosition(end, endLocation);\r\n\t\treturn this.getPositionRangePath(startPos, endPos); // Base class (Axis) gets range shape from AxisRenderer\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an absolute position (px) within axis and adjust it to a specific\r\n\t * `location` within category it corresponds to.\r\n\t *\r\n\t * @param position Source position (px)\r\n\t * @param location Location within category (0-1)\r\n\t * @return Adjusted position (px)\r\n\t */\r\n\tpublic roundPosition(position: number, location?: AxisItemLocation): number {\r\n\t\tlet index: number = this.positionToIndex(position);\r\n\t\treturn this.indexToPosition(index, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Finds and returns first series data item with specific category\r\n\t * @param series Target series\r\n\t * @param category Category\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getFirstSeriesDataItem(series: XYSeries, category: string): XYSeriesDataItem {\r\n\r\n\t\tfor (let i = 0; i < series.dataItems.length; i++) {\r\n\t\t\tlet dataItem = series.dataItems.getIndex(i);\r\n\t\t\tif (series.xAxis == this) {\r\n\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (series.yAxis == this) {\r\n\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Finds and returns last series data item with specific category.\r\n\t * @param series Target series\r\n\t * @param category Category\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getLastSeriesDataItem(series: XYSeries, category: string): XYSeriesDataItem {\r\n\r\n\t\tfor (let i = series.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\tlet dataItem = series.dataItems.getIndex(i);\r\n\t\t\tif (series.xAxis == this) {\r\n\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (series.yAxis == this) {\r\n\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t// todo: optimize\r\n\tpublic getSeriesDataItemByCategory(category: string, series: XYSeries): XYSeriesDataItem {\r\n\t\tlet seriesDataItem: XYSeriesDataItem;\r\n\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\tif (series.xAxis == this) {\r\n\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\tseriesDataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (series.yAxis == this) {\r\n\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\tseriesDataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn seriesDataItem;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a data item from Series that corresponds to a specific absolute\r\n\t * position on the Axis.\r\n\t *\r\n\t * @param series Target series\r\n\t * @param position Position (px)\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getSeriesDataItem(series: XYSeries, position: number, findNearest?: boolean): XYSeriesDataItem {\r\n\r\n\t\tif ($type.isNumber(position)) {\r\n\r\n\t\t\tlet index = this.positionToIndex(position);\r\n\r\n\t\t\tif (index >= this.dataItems.length) {\r\n\t\t\t\tindex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet dataItem = this.dataItems.getIndex(index);\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tlet category = dataItem.category;\r\n\t\t\t\tlet sdi: XYSeriesDataItem;\r\n\r\n\t\t\t\tlet seriesDataItem = series.dataItems.getIndex(index);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\tif (seriesDataItem.categoryX == category) {\r\n\t\t\t\t\t\t\treturn seriesDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\tif (seriesDataItem.categoryY == category) {\r\n\t\t\t\t\t\t\treturn seriesDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\t\t\tif (!sdi) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (Math.abs(index - sdi.index) > Math.abs(index - dataItem.index)) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\t\t\tif (!sdi) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (Math.abs(index - sdi.index) > Math.abs(index - dataItem.index)) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\t//@todo\r\n\t\t\t\tif (findNearest) {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn sdi;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the X coordinate for series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic getX(dataItem: XYSeriesDataItem, key?: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet position = this.getPositionX(dataItem, key, location, stackKey, range);\r\n\r\n\t\tif ($type.isNaN(position)) {\r\n\t\t\treturn this.basePoint.x;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.renderer.positionToPoint(position).x;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative position on axis for series' data item.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionX(dataItem: XYSeriesDataItem, key?: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet position;\r\n\t\tif ($type.hasValue(key)) {\r\n\t\t\tposition = this.categoryToPosition(dataItem.categories[key], location);\r\n\t\t}\r\n\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Y coordinate for series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic getY(dataItem: XYSeriesDataItem, key?: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\r\n\t\tlet position = this.getPositionY(dataItem, key, location, stackKey, range);\r\n\r\n\t\tif ($type.isNaN(position)) {\r\n\t\t\treturn this.basePoint.y;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.renderer.positionToPoint(position).y;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative position on axis for series' data item.\r\n\t *\r\n\t * @since 4.5.14\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic getPositionY(dataItem: XYSeriesDataItem, key?: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet position;\r\n\t\tif ($type.hasValue(key)) {\r\n\t\t\tposition = this.categoryToPosition(dataItem.categories[key], location);\r\n\t\t}\r\n\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle for series data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack key (?)\r\n\t * @param range Range to fit in\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string, range?: IRange): number {\r\n\t\tlet position = this.categoryToPosition(dataItem.categories[key], location);\r\n\r\n\t\tif (range) {\r\n\t\t\tposition = $math.fitToRange(position, range.start, range.end);\r\n\t\t}\r\n\r\n\t\treturn this.positionToAngle(position);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an absolute pixel coordinate of the start of the cell (category),\r\n\t * that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Position (px)\r\n\t * @return Cell start position (px)\r\n\t */\r\n\tpublic getCellStartPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an absolute pixel coordinate of the end of the cell (category),\r\n\t * that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Position (px)\r\n\t * @return Cell end position (px)\r\n\t */\r\n\tpublic getCellEndPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a category tooltip, based on specific position\r\n\t * within axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (px)\r\n\t * @return Label (category)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(this.positionToIndex(position));\r\n\r\n\t\tif (dataItem) {\r\n\t\t\tthis.tooltipDataItem = dataItem;\r\n\t\t\tthis.tooltip.dataItem = dataItem;\r\n\t\t\tif (this.tooltipText) {\r\n\t\t\t\treturn this.tooltipText;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this._adapterO) {\r\n\t\t\t\treturn dataItem.category;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this._adapterO.apply(\"getTooltipText\", dataItem.category);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an index of the category that corresponds to specific pixel\r\n\t * position within axis.\r\n\t *\r\n\t * @param position Position (px)\r\n\t * @return Category index\r\n\t */\r\n\tpublic positionToIndex(position: number): number {\r\n\t\tposition = $math.round(position, 10);\r\n\t\tif (position < 0) {\r\n\t\t\tposition = 0;\r\n\t\t}\r\n\r\n\t\tif (position > 1) {\r\n\t\t\tposition = 1;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\t\tlet difference: number = endIndex - startIndex - this.startLocation - (1 - this.endLocation);\r\n\r\n\t\tposition += 1 / difference * this.startLocation;\r\n\t\tlet index: number = null;\r\n\r\n\t\tif (this._axisBreaks) {\r\n\t\t\tlet axisBreaks = this._axisBreaks;\r\n\r\n\t\t\t// in case we have some axis breaks\r\n\t\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\tlet breakStartPosition: number = axisBreak.startPosition;\r\n\t\t\t\tlet breakEndPosition: number = axisBreak.endPosition;\r\n\r\n\t\t\t\tlet breakStartIndex: number = axisBreak.adjustedStartValue;\r\n\t\t\t\tlet breakEndIndex: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\t\tbreakStartIndex = $math.max(breakStartIndex, startIndex);\r\n\t\t\t\tbreakEndIndex = $math.min(breakEndIndex, endIndex);\r\n\r\n\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\tdifference -= (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\r\n\t\t\t\t// position to the right of break end\r\n\t\t\t\tif (position > breakEndPosition) {\r\n\t\t\t\t\tstartIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\t\t\t\t}\r\n\t\t\t\t// position to the left of break start\r\n\t\t\t\telse if (position < breakStartPosition) {\r\n\r\n\t\t\t\t}\r\n\t\t\t\t// value within break\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet breakPosition = (position - breakStartPosition) / (breakEndPosition - breakStartPosition);\r\n\t\t\t\t\tindex = breakStartIndex + Math.round(breakPosition * (breakEndIndex - breakStartIndex));\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(index)) {\r\n\t\t\tindex = Math.floor(position * difference + startIndex);\r\n\t\t}\r\n\t\tif (index >= this.dataItems.length) {\r\n\t\t\tindex = this.dataItems.length - 1;\r\n\t\t}\r\n\t\t// not good, when panning out of bounds, each time one less item gets selected\r\n\t\t//if (index >= endIndex) {\r\n\t\t//\tindex--;\r\n\t\t//}\r\n\r\n\t\treturn index;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns category based on position.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * This is a synonim of `getPositionLabel()` implemented here for consistentcy.\r\n\t *\r\n\t * @since 4.3.8\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic positionToCategory(position: number): string {\r\n\t\treturn this.getPositionLabel(position);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns category based on position.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(this.positionToIndex(position));\r\n\t\tif (dataItem) {\r\n\t\t\treturn dataItem.category;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\t// This makes base grid to be drawn at the end of the axis and adds extra\r\n\t\t// grid which we need to nicely close the chart.\r\n\t\treturn this.renderer.positionToPoint(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes Axis' renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic initRenderer(): void {\r\n\t\tsuper.initRenderer();\r\n\r\n\t\tlet renderer = this.renderer;\r\n\t\trenderer.baseGrid.disabled = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Current frequency of labels of the axis.\r\n\t *\r\n\t * Normally it would be 1, but when labels start to be hidden due\r\n\t * to `minGridDistance` this read-only property will increase.\r\n\t *\r\n\t * @readonly\r\n\t * @since 4.2.0\r\n\t * @return Label frequency\r\n\t */\r\n\tpublic get frequency(): number {\r\n\t\treturn this._frequency;\r\n\t}\r\n\r\n\t/**\r\n\t * If set to a reference of [[ColumnSeries]] the categories will be sorted\r\n\t * by actual values.\r\n\t *\r\n\t * The categories are ordered in descending order (from highest values to\r\n\t * lowest). To reverse the order, use axis renderer's `inversed` setting.\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * categoryAxis.sortBySeries = series;\r\n\t * categoryAxis.renderer.inversed = true;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * categoryAxis.sortBySeries = series;\r\n\t * categoryAxis.renderer.inversed = true;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * // ...\r\n\t * \"sortBySeries\": \"s1\",\r\n\t * \"renderer\": {\r\n\t * // ...\r\n\t * \"inversed\": true\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @since 4.8.7\r\n\t * @param value Sort categories?\r\n\t */\r\n\tpublic set sortBySeries(value: ColumnSeries) {\r\n\t\tthis.setPropertyValue(\"sortBySeries\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Sort categories?\r\n\t */\r\n\tpublic get sortBySeries(): ColumnSeries {\r\n\t\treturn this.getPropertyValue(\"sortBySeries\");\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\tif ($type.hasValue(config.sortBySeries) && $type.isString(config.sortBySeries)) {\r\n\t\t\t\tif (this.map.hasKey(config.sortBySeries)) {\r\n\t\t\t\t\tconfig.sortBySeries = this.map.getKey(config.sortBySeries);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.addDelayedMap(\"sortBySeries\", config.sortBySeries);\r\n\t\t\t\t\tdelete config.sortBySeries;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxis\"] = CategoryAxis;\r\nregistry.registeredClasses[\"CategoryAxisDataItem\"] = CategoryAxisDataItem;\r\n","/**\r\n * XY series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Series, SeriesDataItem, ISeriesProperties, ISeriesDataFields, ISeriesAdapters, ISeriesEvents } from \"./Series\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { XYCursor } from \"../cursors/XYCursor\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { CalculatedValue } from \"../../core/Component\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $time from \"../../core/utils/Time\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\nimport { options } from \"../../core/Options\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[XYSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class XYSeriesDataItem extends SeriesDataItem {\r\n\r\n\t/**\r\n\t * [_minX description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _minX: number;\r\n\r\n\t/**\r\n\t * [_maxX description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _maxX: number;\r\n\r\n\t/**\r\n\t * [_minY description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _minY: number;\r\n\r\n\t/**\r\n\t * [_maxY description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _maxY: number;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t * \r\n\t * @ignore\r\n\t */\r\n\tpublic _component!: XYSeries;\r\n\r\n\t/**\r\n\t * References to any aggregate data items this data item is part of.\r\n\t *\r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t */\r\n\tpublic groupDataItems: this[];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"XYSeriesDataItem\";\r\n\r\n\t\tthis.values.customValue = {};\r\n\r\n\t\tthis.values.valueX = { stack: 0 };\r\n\t\tthis.values.valueY = { stack: 0 };\r\n\t\tthis.values.openValueX = {};\r\n\t\tthis.values.openValueY = {};\r\n\r\n\t\tthis.values.dateX = {};\r\n\t\tthis.values.dateY = {};\r\n\t\tthis.values.openDateX = {};\r\n\t\tthis.values.openDateY = {};\r\n\r\n\t\tthis.setLocation(\"dateX\", 0.5, 0);\r\n\t\tthis.setLocation(\"dateY\", 0.5, 0);\r\n\r\n\t\tthis.setLocation(\"categoryX\", 0.5, 0);\r\n\t\tthis.setLocation(\"categoryY\", 0.5, 0);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Item's numeric value on X value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set valueX(value: number) {\r\n\t\tthis.setValue(\"valueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get valueX(): number {\r\n\t\treturn this.values.valueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's custom numeric value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set customValue(value: number) {\r\n\t\tthis.setValue(\"customValue\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get customValue(): number {\r\n\t\treturn this.values.customValue.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's numeric value on Y value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set valueY(value: number) {\r\n\t\tthis.setValue(\"valueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get valueY(): number {\r\n\t\treturn this.values.valueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's date value on X date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set dateX(date: Date) {\r\n\t\tthis.setDate(\"dateX\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get dateX(): Date {\r\n\t\treturn this.getDate(\"dateX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's date value on Y date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set dateY(date: Date) {\r\n\t\tthis.setDate(\"dateY\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get dateY(): Date {\r\n\t\treturn this.getDate(\"dateY\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's category on X category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set categoryX(category: string) {\r\n\t\tthis.setCategory(\"categoryX\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get categoryX(): string {\r\n\t\treturn this.categories.categoryX;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's category on Y category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set categoryY(category: string) {\r\n\t\tthis.setCategory(\"categoryY\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get categoryY(): string {\r\n\t\treturn this.categories.categoryY;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open numeric value on X value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set openValueX(value: number) {\r\n\t\tthis.setValue(\"openValueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get openValueX(): number {\r\n\t\treturn this.values.openValueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open numeric value on Y value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set openValueY(value: number) {\r\n\t\tthis.setValue(\"openValueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get openValueY(): number {\r\n\t\treturn this.values.openValueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open date value on X date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set openDateX(date: Date) {\r\n\t\tthis.setDate(\"openDateX\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get openDateX(): Date {\r\n\t\treturn this.getDate(\"openDateX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open date value on Y date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set openDateY(date: Date) {\r\n\t\tthis.setDate(\"openDateY\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get openDateY(): Date {\r\n\t\treturn this.getDate(\"openDateY\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open category on X category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set openCategoryX(category: string) {\r\n\t\tthis.setCategory(\"openCategoryX\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get openCategoryX(): string {\r\n\t\treturn this.categories.openCategoryX;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open category on Y category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set openCategoryY(category: string) {\r\n\t\tthis.setCategory(\"openCategoryY\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get openCategoryY(): string {\r\n\t\treturn this.categories.openCategoryY;\r\n\t}\r\n\r\n\t/**\r\n\t * Return smallest value out of all item's value fields.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fields Fields to check in\r\n\t * @param working Include working (temporary) values\r\n\t * @param stackValue If item is in a stack, the value item starts as\r\n\t * @return Value\r\n\t */\r\n\tpublic getMin(fields: string[], working?: boolean, stackValue?: number): number {\r\n\t\t//if (this.visible) { // dumped because of non smooth zooming\r\n\t\tlet min: number;\r\n\r\n\t\tif (!$type.isNumber(stackValue)) {\r\n\t\t\tstackValue = 0;\r\n\t\t}\r\n\r\n\t\t$array.each(fields, (field) => {\r\n\t\t\tlet value: number;\r\n\r\n\t\t\tif (working) {\r\n\t\t\t\tvalue = this.getWorkingValue(field);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = this.getValue(field);\r\n\t\t\t}\r\n\r\n\t\t\tvalue += stackValue;\r\n\r\n\t\t\tif (value < min || !$type.isNumber(min)) {\r\n\t\t\t\tmin = value;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn min;\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Return biggest value out of all item's value fields.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fields Fields to check in\r\n\t * @param working Include working (temporary) values\r\n\t * @param stackValue If item is in a stack, the value item starts as\r\n\t * @return Value\r\n\t */\r\n\tpublic getMax(fields: string[], working?: boolean, stackValue?: number): number {\r\n\t\t//if (this.visible) { // dumped because of non smooth zooming\r\n\t\tlet max: number;\r\n\r\n\t\tif (!$type.isNumber(stackValue)) {\r\n\t\t\tstackValue = 0;\r\n\t\t}\r\n\r\n\t\t$array.each(fields, (field) => {\r\n\t\t\tlet value: number;\r\n\r\n\t\t\tif (working) {\r\n\t\t\t\tvalue = this.getWorkingValue(field);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = this.getValue(field);\r\n\t\t\t}\r\n\r\n\t\t\tvalue += stackValue;\r\n\r\n\t\t\tif (value > max || !$type.isNumber(max)) {\r\n\t\t\t\tmax = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn max;\r\n\t\t//}\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * Defines property set for a [[XYSeries]] tooltip event that contains information about dataItem\r\n */\r\nexport type XYSeriesTooltipEvent = {\r\n\r\n\t/**\r\n\t * Shift in coordinates after dragging.\r\n\t */\r\n\tdataItem: XYSeriesDataItem;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesDataFields extends ISeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value for horizontal axis.\r\n\t */\r\n\tvalueX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value for vertical axis.\r\n\t */\r\n\tvalueY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds category for horizontal axis.\r\n\t */\r\n\tcategoryX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds category for vertical axis.\r\n\t */\r\n\tcategoryY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds date for horizontal axis.\r\n\t */\r\n\tdateX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds date for vertical axis.\r\n\t */\r\n\tdateY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open numeric value for horizontal\r\n\t * axis.\r\n\t */\r\n\topenValueX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open numeric value for vertical\r\n\t * axis.\r\n\t */\r\n\topenValueY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open category for horizontal axis.\r\n\t */\r\n\topenCategoryX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open category for vertical axis.\r\n\t */\r\n\topenCategoryY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open date for horizontal axis.\r\n\t */\r\n\topenDateX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open date for vertical axis.\r\n\t */\r\n\topenDateY?: string;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis value for the\r\n\t * item.\r\n\t */\r\n\tvalueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis value for the\r\n\t * item.\r\n\t */\r\n\tvalueYShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis open value for\r\n\t * the item.\r\n\t */\r\n\topenValueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis open value for\r\n\t * the item.\r\n\t */\r\n\topenValueYShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value for some custom data.\r\n\t */\r\n\tcustomValue?: string;\r\n}\r\n\r\n\r\n/**\r\n * Defines types of the aggregate value.\r\n *\r\n * @since 4.7.0\r\n */\r\nexport type GroupField = \"open\" | \"close\" | \"low\" | \"high\" | \"average\" | \"sum\";\r\n\r\n/**\r\n * Defines data fields that can be calculated for aggregate values.\r\n * \r\n * @since 4.7.0\r\n */\r\nexport interface IXYSeriesGroupFields {\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `valueX` data field.\r\n\t *\r\n\t * @default \"close\"\r\n\t */\r\n\tvalueX?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `valueY` data field.\r\n\t * \r\n\t * @default \"close\"\r\n\t */\r\n\tvalueY?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `customValue` value data field.\r\n\t * \r\n\t * @default \"close\"\r\n\t */\r\n\tcustomValue?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `openValueX` data field.\r\n\t * \r\n\t * @default \"open\"\r\n\t */\r\n\topenValueX?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `openValueY` data field.\r\n\t * \r\n\t * @default \"open\"\r\n\t */\r\n\topenValueY?: GroupField;\r\n}\r\n\r\n/**\r\n * Defines properties for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesProperties extends ISeriesProperties {\r\n\r\n\t/**\r\n\t * Can items from this series be included into stacks?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tstacked?: boolean;\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tsnapTooltip?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if series should display a tooltip for chart's cursor.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tcursorTooltipEnabled?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if series should apply hover state on bullets/columns/etc when\r\n\t * cursor is over the data item.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tcursorHoverEnabled?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if series' values should be excluded when calculating totals.\r\n\t * \r\n\t * @default false\r\n\t */\r\n\texcludeFromTotal?: boolean;\r\n\r\n\r\n\t/**\r\n\t * Indicates if series' tooltip should be hidden while series axis range is\r\n\t * animating (zooming)\r\n\t *\r\n\t * @since 4.7.16\r\n\t * @default true\r\n\t */\r\n\thideTooltipWhileZooming?: boolean;\r\n\r\n\t/**\r\n\t * Should series bullets be masked?\r\n\t * @default true\r\n\t * @since 4.7.17\r\n\t */\r\n\tmaskBullets?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesEvents extends ISeriesEvents {\r\n\t/**\r\n\t * Invoked when series tooltip was shown on some particular data item\r\n\t */\r\n\ttooltipshownat: XYSeriesTooltipEvent;\r\n}\r\n\r\n/**\r\n * Defines adapters for [[XYSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYSeriesAdapters extends ISeriesAdapters, IXYSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines Series for [[XYChart]].\r\n *\r\n * @see {@link IXYSeriesEvents} for a list of available Events\r\n * @see {@link IXYSeriesAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class XYSeries extends Series {\r\n\r\n\t/**\r\n\t * Defines type of the group fields.\r\n\t * \r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t */\r\n\tpublic _groupFields: IXYSeriesGroupFields;\r\n\r\n\t/**\r\n\t * Indicates which of the series' `dataFields` to calculate aggregate values\r\n\t * for.\r\n\t *\r\n\t * Available data fields for all [[XYSeries]] are:\r\n\t * `valueX`, `valueY`, `openValueX`, and `openValueY`.\r\n\t *\r\n\t * [[CandlestickSeries]] adds:\r\n\t * `lowValueX`, `lowValueY`, `highValueX`, and `highValueY`.\r\n\t *\r\n\t * Available options:\r\n\t * `\"open\"`, `\"close\"`, `\"low\"`, `\"high\"`, `\"average\"`, `\"sum\"`.\r\n\t *\r\n\t * Defaults are as follows:\r\n\t * * `valueX`: `\"close\"`\r\n\t * * `valueY`: `\"close\"`\r\n\t * * `openValueX`: `\"open\"`\r\n\t * * `openValueY`: `\"open\"`\r\n\t * * `lowValueX`: `\"low\"`\r\n\t * * `lowValueY`: `\"low\"`\r\n\t * * `highValueX`: `\"high\"`\r\n\t * * `highValueY`: `\"high\"`\r\n\t *\r\n\t * Is required only if data being plotted on a `DateAxis` and\r\n\t * its `groupData` is set to `true`.\r\n\t *\r\n\t * ```TypeScript\r\n\t * let dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n\t * dateAxis.groupData = true;\r\n\t *\r\n\t * let valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n\t *\r\n\t * let series = chart.series.push(new am4charts.LineSeries());\r\n\t * series.dataFields.dateX = \"date\";\r\n\t * series.dataFields.valueY = \"value\";\r\n\t * series.groupFields.valueY = \"average\";\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * var dateAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n\t * dateAxis.groupData = true;\r\n\t *\r\n\t * var valueAxis = chart.xAxes.push(new am4charts.valueAxis());\r\n\t *\r\n\t * var series = chart.series.push(new am4charts.LineSeries());\r\n\t * series.dataFields.dateX = \"date\";\r\n\t * series.dataFields.valueY = \"value\";\r\n\t * series.groupFields.valueY = \"average\";\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * \"groupData\": true\r\n\t * }],\r\n\t * \"yAxes\": [{\r\n\t * \"type\": \"ValueAxis\"\r\n\t * }],\r\n\t * \"series\": [{\r\n\t * \"type\": \"LineSeries\",\r\n\t * \"dataFields\": {\r\n\t * \"dateX\": \"date\",\r\n\t * \"valueY\": \"value\"\r\n\t * },\r\n\t * \"groupFields\": {\r\n\t * \"valueY\": \"average\"\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * The above setup will ensure, that if there are many data items within\r\n\t * selected range, they will be grouped into aggregated data points, using\r\n\t * average value of all the values.\r\n\t *\r\n\t * For example if we have 2 years worth of daily data (~700 data items), when\r\n\t * fully zoomed out, the chart would show ~100 data items instead: one for\r\n\t * each week in those two years.\r\n\t *\r\n\t * Grouping will occur automatically, based on current selection range, and\r\n\t * will change dynamically when user zooms in/out the chart.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Dynamic_data_item_grouping} for more information about dynamic data item grouping.\r\n\t * @since 4.7.0\r\n\t */\r\n\tpublic groupFields: this[\"_groupFields\"] = {};\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IXYSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: XYSeriesDataItem;\r\n\r\n\t/**\r\n\t * X axis the series is attached to.\r\n\t */\r\n\tprotected _xAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * Y axis the series is attached to.\r\n\t */\r\n\tprotected _yAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: XYChart;\r\n\r\n\t/**\r\n\t * The main (base) axis.\r\n\t *\r\n\t * This is the axis that series fills will go to, or grow animations will\r\n\t * happen from.\r\n\t */\r\n\tprotected _baseAxis: Axis;\r\n\r\n\t/**\r\n\t * Total data item count.\r\n\t */\r\n\tprotected _count: Dictionary<string, number>;\r\n\r\n\t/**\r\n\t * Data item count in current selection.\r\n\t */\r\n\tprotected _scount: Dictionary<string, number>;\r\n\r\n\t/**\r\n\t * [_xField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xField: string;\r\n\r\n\t/**\r\n\t * [_yField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yField: string;\r\n\r\n\t/**\r\n\t * [_xOpenField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xOpenField: string;\r\n\r\n\t/**\r\n\t * [_yOpenField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yOpenField: string;\r\n\r\n\t/**\r\n\t * [_tooltipXField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _tooltipXField: string;\r\n\r\n\t/**\r\n\t * [_tooltipYField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _tooltipYField: string;\r\n\r\n\t/**\r\n\t * [_xValueFields description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xValueFields: Array<string> = [];\r\n\r\n\t/**\r\n\t * [_yValueFields description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yValueFields: Array<string> = [];\r\n\r\n\t/**\r\n\t * Series which is stacked on top of this series, if any.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic stackedSeries: XYSeries;\r\n\r\n\t/**\r\n\t * Dataitem of previously shown tooltip, used to avoid multiple\r\n\t * tooltipshownat dispatches.\r\n\t */\r\n\tprotected _prevTooltipDataItem: XYSeriesDataItem;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _baseInterval: { [index: string]: ITimeInterval } = {};\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic dataGrouped = false;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic usesShowFields: boolean = false;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected _dataSetChanged: boolean = false;\r\n\r\n\r\n\tprotected _maxxX: number = 100000;\r\n\tprotected _maxxY: number = 100000;\r\n\r\n\tprotected _propertiesChanged: boolean = false;\r\n\r\n\t/**\r\n\t * If this series was used to create a series for scrollbar, this is a reference to it.\r\n\t */\r\n\tpublic scrollbarSeries: this;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYSeries\";\r\n\t\tthis.isMeasured = false;\r\n\r\n\r\n\t\tthis.groupFields.valueX = \"close\";\r\n\t\tthis.groupFields.valueY = \"close\";\r\n\t\tthis.groupFields.customValue = \"close\";\r\n\r\n\t\tthis.groupFields.openValueX = \"open\";\r\n\t\tthis.groupFields.openValueY = \"open\";\r\n\r\n\t\tthis.cursorTooltipEnabled = true;\r\n\r\n\t\tthis.cursorHoverEnabled = true;\r\n\t\tthis.excludeFromTotal = false;\r\n\r\n\t\tthis.mainContainer.mask = new Sprite();\r\n\t\tthis.mainContainer.mask.setElement(this.paper.add(\"path\"));\r\n\r\n\t\tthis.stacked = false;\r\n\t\tthis.snapTooltip = false;\r\n\r\n\t\tthis._showBullets = false;\r\n\r\n\t\tthis.tooltip.pointerOrientation = \"horizontal\";\r\n\r\n\t\tthis.hideTooltipWhileZooming = true;\r\n\t\tthis.setPropertyValue(\"maskBullets\", true);\r\n\r\n\t\tthis.tooltip.events.on(\"hidden\", () => {\r\n\t\t\tthis.returnBulletDefaultState();\r\n\t\t}, undefined, false)\r\n\r\n\t\tthis._disposers.push(this._xAxis);\r\n\t\tthis._disposers.push(this._yAxis);\r\n\r\n\t\tthis.observe(visualProperties, () => {\r\n\t\t\tif (this.inited) {\r\n\t\t\t\tthis._propertiesChanged = true;\r\n\t\t\t\tif (this.legendDataItem) {\r\n\t\t\t\t\tthis.legendDataItem.childrenCreated = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.chart && this.chart.legend) {\r\n\t\t\t\t\tthis.chart.legend.invalidateDataItems();\r\n\t\t\t\t}\r\n\t\t\t\tthis.invalidate();\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"X/Y Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new XYSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic resetExtremes() {\r\n\t\tthis._tmin.clear();\r\n\t\tthis._tmax.clear();\r\n\r\n\t\tthis._smin.clear();\r\n\t\tthis._smax.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic dataChangeUpdate() {\r\n\t\tthis.dataGrouped = false;\r\n\t\tthis._baseInterval = {};\r\n\t\tthis._currentDataSetId = \"\";\r\n\r\n\t\tthis.resetExtremes();\r\n\r\n\t\tif (this.xAxis) {\r\n\t\t\tthis.xAxis.seriesDataChangeUpdate(this);\r\n\t\t}\r\n\r\n\t\tif (this.yAxis) {\r\n\t\t\tthis.yAxis.seriesDataChangeUpdate(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the series' data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tthis._baseInterval = {};\r\n\t\tlet dataFields = this.dataFields;\r\n\t\tif (dataFields.valueYShow || dataFields.openValueXShow || dataFields.openValueXShow || dataFields.openValueYShow) {\r\n\t\t\tthis.usesShowFields = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.usesShowFields = false;\r\n\t\t}\r\n\r\n\t\tthis.defineFields();\r\n\r\n\t\tif (this.data.length > 0) {\r\n\t\t\tthis.dataChangeUpdate();\r\n\t\t}\r\n\r\n\t\tsuper.validateData();\r\n\r\n\t\tthis.updateItemReaderText();\r\n\t\tif (this.chart) {\r\n\t\t\tif (!$type.hasValue(this.dataFields[<keyof this[\"_dataFields\"]>this._xField]) || !$type.hasValue(this.dataFields[<keyof this[\"_dataFields\"]>this._yField])) {\r\n\t\t\t\tthrow Error(\"Data fields for series \\\"\" + (this.name ? this.name : this.uid) + \"\\\" are not properly defined.\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 4.7.21 solves 51540\r\n\t\tif (this.inited && this.isHidden) {\r\n\t\t\tthis.hide(0);\r\n\t\t}\r\n\r\n\t\tthis.dataGrouped = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param dataContext Raw data\r\n\t * @param index Index of the data item\r\n\t */\r\n\tprotected processDataItem(dataItem: this[\"_dataItem\"], dataContext?: Object): void {\r\n\t\ttry {\r\n\t\t\tsuper.processDataItem(dataItem, dataContext);\r\n\r\n\t\t\tthis.xAxis.processSeriesDataItem(dataItem, \"X\");\r\n\t\t\tthis.yAxis.processSeriesDataItem(dataItem, \"Y\");\r\n\r\n\t\t\tthis.setInitialWorkingValues(dataItem);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tif (this._chart) {\r\n\t\t\t\tthis._chart.raiseCriticalError(e);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * When validating raw data, instead of processing data item, we update it\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param item\r\n\t */\r\n\tprotected updateDataItem(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.updateDataItem(dataItem);\r\n\r\n\t\t//dataItem.events.disable();\r\n\t\tthis.xAxis.processSeriesDataItem(dataItem, \"X\");\r\n\t\tthis.yAxis.processSeriesDataItem(dataItem, \"Y\");\r\n\t\t//dataItem.events.enable();\t\t\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Inits data item's working values.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param index Data item's index\r\n\t */\r\n\r\n\tprotected setInitialWorkingValues(dataItem: this[\"_dataItem\"]): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (xAxis) {\r\n\t\t\tlet dataItemsX = this.dataItemsByAxis.getKey(xAxis.uid);\r\n\t\t\tif (dataItemsX) {\r\n\t\t\t\tdataItemsX.clear();\r\n\t\t\t}\r\n\t\t\tif (xAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis.clearCatAxis(xAxis);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (yAxis) {\r\n\t\t\tlet dataItemsY = this.dataItemsByAxis.getKey(yAxis.uid);\r\n\t\t\tif (dataItemsY) {\r\n\t\t\t\tdataItemsY.clear();\r\n\t\t\t}\r\n\t\t\tif (yAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis.clearCatAxis(yAxis);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected clearCatAxis(axis: CategoryAxis) {\r\n\t\tlet uid = this.uid;\r\n\t\taxis.dataItems.each((dataItem) => {\r\n\t\t\tif (dataItem.seriesDataItems[uid]) {\r\n\t\t\t\tdataItem.seriesDataItems[uid] = [];\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets up which data fields to use for data access.\r\n\t */\r\n\tprotected defineFields() {\r\n\t\tlet xAxis: Axis = this.xAxis;\r\n\t\tlet yAxis: Axis = this.yAxis;\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\tlet xAxisFieldName: string = xAxis.axisFieldName;\r\n\t\t\tlet xField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(xAxisFieldName + \"X\");\r\n\t\t\tlet xOpenField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(\"open\" + $utils.capitalize(xAxisFieldName) + \"X\");\r\n\r\n\t\t\tlet yAxisFieldName: string = yAxis.axisFieldName;\r\n\t\t\tlet yField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(yAxisFieldName + \"Y\");\r\n\t\t\tlet yOpenField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(\"open\" + $utils.capitalize(yAxisFieldName) + \"Y\");\r\n\r\n\t\t\tthis._xField = xField;\r\n\t\t\tthis._yField = yField;\r\n\r\n\t\t\tif (this.dataFields[xOpenField]) {\r\n\t\t\t\tthis._xOpenField = xOpenField;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.dataFields[yOpenField]) {\r\n\t\t\t\tthis._yOpenField = yOpenField;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.dataFields[yOpenField] && this.baseAxis == yAxis) {\r\n\t\t\t\tthis._yOpenField = yField;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.dataFields[xOpenField] && this.baseAxis == xAxis) {\r\n\t\t\t\tthis._xOpenField = xField;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.stacked && this.baseAxis == xAxis) {\r\n\t\t\t\tthis._xOpenField = xField;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.stacked && this.baseAxis == yAxis) {\r\n\t\t\t\tthis._yOpenField = yField;\r\n\t\t\t}\r\n\r\n\t\t\tif ((xAxis instanceof CategoryAxis) && (yAxis instanceof CategoryAxis)) {\r\n\t\t\t\tif (!this._yOpenField) {\r\n\t\t\t\t\tthis._yOpenField = yField;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._xValueFields = [];\r\n\t\t\tthis._yValueFields = [];\r\n\r\n\t\t\tthis.addValueField(xAxis, <any>this._xValueFields, <any>this._xField);\r\n\t\t\tthis.addValueField(xAxis, <any>this._xValueFields, <any>this._xOpenField);\r\n\r\n\t\t\tthis.addValueField(yAxis, <any>this._yValueFields, <any>this._yField);\r\n\t\t\tthis.addValueField(yAxis, <any>this._yValueFields, <any>this._yOpenField);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [axis description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param axis Axis\r\n\t * @param fields Fields (?)\r\n\t * @param field Field\r\n\t */\r\n\tprotected addValueField<Key extends keyof this[\"_dataFields\"]>(axis: Axis, fields: Array<Key>, field: Key): void {\r\n\t\tif (axis instanceof ValueAxis) {\r\n\t\t\tif ($type.hasValue(this.dataFields[field]) && fields.indexOf(field) == -1) {\r\n\t\t\t\tfields.push(field);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets category field from the category axis.\r\n\t *\r\n\t * User might set field for category axis only, but not for series. In such\r\n\t * case, we take field value from axis and set it for series.\r\n\t *\r\n\t * @param field Field\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected setCategoryAxisField<Key extends keyof this[\"_dataFields\"]>(field: Key, axis: CategoryAxis): void {\r\n\t\tif (!$type.hasValue(this.dataFields[field])) {\r\n\t\t\tthis.dataFields[field] = <any>axis.dataFields.category;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets date field from the date axis.\r\n\t *\r\n\t * User might set field for category axis only, but not for series. In such\r\n\t * case, we take field value from axis and set it for series.\r\n\t *\r\n\t * @param field Field\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected setDateAxisField<Key extends keyof this[\"_dataFields\"]>(field: Key, axis: DateAxis): void {\r\n\t\tif (!$type.hasValue(this.dataFields[field])) {\r\n\t\t\tthis.dataFields[field] = <any>axis.dataFields.date;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Performs after-draw tasks, e.g. creates masks.\r\n\t */\r\n\tprotected afterDraw(): void {\r\n\t\tsuper.afterDraw();\r\n\t\tthis.createMask();\r\n\t}\r\n\r\n\t/**\r\n\t * Create a mask for the series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic createMask(): void {\r\n\t\t// this mask from which we cut out ranges. does not work well if ranges overlap.\r\n\t\tif (this.mainContainer.mask) {\r\n\t\t\tlet path: string = this.getMaskPath();\r\n\r\n\t\t\t// @todo: this approach won't work well on circluar or other non x/y axes\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (range) => {\r\n\t\t\t\tif (range.axisFill.fillPath) {\r\n\t\t\t\t\trange.axisFill.validate();\r\n\t\t\t\t\tpath += range.axisFill.fillPath;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.mainContainer.mask.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an SVG path to use as series mask.\r\n\t *\r\n\t * @return SVG path\r\n\t */\r\n\tprotected getMaskPath(): string {\r\n\t\tif (this.xAxis && this.yAxis) {\r\n\t\t\treturn $path.rectToPath({\r\n\t\t\t\tx: 0,\r\n\t\t\t\ty: 0,\r\n\t\t\t\twidth: this.xAxis.axisLength,\r\n\t\t\t\theight: this.yAxis.axisLength\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Returns axis data field to use.\r\n\t *\r\n\t * @param axis Axis\r\n\t * @return Field name\r\n\t */\r\n\tpublic getAxisField(axis: Axis): string {\r\n\t\tif (axis == this.xAxis) {\r\n\t\t\treturn this.xField;\r\n\t\t}\r\n\t\tif (axis == this.yAxis) {\r\n\t\t\treturn this.yField;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems() {\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tthis._maxxX = $math.max(100000, chart.plotContainer.maxWidth * 2);\r\n\t\t\tthis._maxxY = $math.max(100000, chart.plotContainer.maxHeight * 2);\r\n\t\t}\r\n\r\n\t\t// this helps date axis to check which baseInterval we should use\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\txAxis.updateAxisBySeries();\r\n\t\t\tyAxis.updateAxisBySeries();\r\n\t\t}\r\n\r\n\t\tsuper.validateDataItems();\r\n\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\txAxis.postProcessSeriesDataItems(this);\r\n\t\t\tyAxis.postProcessSeriesDataItems(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data range.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataRange() {\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\tif (xAxis.dataRangeInvalid) {\r\n\t\t\t\txAxis.validateDataRange();\r\n\t\t\t}\r\n\r\n\t\t\tif (yAxis.dataRangeInvalid) {\r\n\t\t\t\tyAxis.validateDataRange();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.validateDataRange();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\tif (xAxis.invalid) {\r\n\t\t\t\txAxis.validate();\r\n\t\t\t}\r\n\r\n\t\t\tif (yAxis.invalid) {\r\n\t\t\t\tyAxis.validate();\r\n\t\t\t}\r\n\r\n\t\t\tthis.y = yAxis.pixelY;\r\n\t\t\tthis.x = xAxis.pixelX;\r\n\r\n\r\n\t\t\tthis._showBullets = true;\r\n\t\t\tlet minBulletDistance: number = this.minBulletDistance;\r\n\t\t\tif ($type.isNumber(minBulletDistance)) {\r\n\t\t\t\tif (this.baseAxis.axisLength / (this.endIndex - this.startIndex) < minBulletDistance) {\r\n\t\t\t\t\tthis._showBullets = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.updateTooltip();\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tlet chart = this.chart;\r\n\t\tlet maskBullets = this.maskBullets;\r\n\t\tif (chart && maskBullets) {\r\n\t\t\tif (chart.className == \"XYChart\") {\r\n\t\t\t\tif (chart.leftAxesContainer.layout == \"vertical\" || chart.rightAxesContainer.layout == \"vertical\") {\r\n\t\t\t\t\tif (this.yAxis) {\r\n\t\t\t\t\t\tthis.bulletsContainer.mask = this.yAxis.renderer.gridContainer;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.bulletsContainer.mask = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (chart.topAxesContainer.layout == \"horizontal\" || chart.bottomAxesContainer.layout == \"horizontal\") {\r\n\t\t\t\t\tif (this.xAxis) {\r\n\t\t\t\t\t\tthis.bulletsContainer.mask = this.xAxis.renderer.gridContainer;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.bulletsContainer.mask = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * X axis the series is attached to.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set xAxis(axis: Axis) {\r\n\t\tthis.setXAxis(axis);\r\n\t}\r\n\r\n\tprotected setXAxis(axis: Axis) {\r\n\t\tlet oldAxis = this._xAxis.get();\r\n\t\tif (oldAxis != axis) {\r\n\t\t\tif (oldAxis) {\r\n\t\t\t\tthis.dataItemsByAxis.removeKey(oldAxis.uid);\r\n\t\t\t\t// TODO why is this here ?\r\n\t\t\t\tthis._xAxis.dispose();\r\n\t\t\t\t// temp @todo: why it is not disposed?\r\n\t\t\t\toldAxis.series.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis._xAxis.set(axis, axis.registerSeries(this));\r\n\r\n\t\t\tthis.dataItemsByAxis.setKey(axis.uid, new Dictionary<string, this[\"_dataItem\"]>());\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get xAxis(): Axis {\r\n\t\tif (this.chart) {\r\n\t\t\tif (!this._xAxis.get()) {\r\n\t\t\t\tconst axis = this.chart.xAxes.getIndex(0);\r\n\r\n\t\t\t\tif (!axis) {\r\n\t\t\t\t\tthrow Error(\"There are no X axes on chart.\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.xAxis = axis;\r\n\t\t\t}\r\n\t\t\treturn this._xAxis.get();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Y axis the series is attached to.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set yAxis(axis: Axis) {\r\n\t\tthis.setYAxis(axis);\r\n\t}\r\n\r\n\tprotected setYAxis(axis: Axis) {\r\n\t\tlet oldAxis = this._yAxis.get();\r\n\t\tif (oldAxis != axis) {\r\n\t\t\tif (oldAxis) {\r\n\t\t\t\tthis.dataItemsByAxis.removeKey(oldAxis.uid);\r\n\t\t\t\t// TODO why is this here ?\r\n\t\t\t\tthis._yAxis.dispose();\r\n\t\t\t\t// temp @todo: why it is not disposed?\r\n\t\t\t\toldAxis.series.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis._yAxis.set(axis, axis.registerSeries(this));\r\n\r\n\t\t\tif (axis.chart instanceof XYChart) {\r\n\t\t\t\taxis.chart.handleYAxisSet(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dataItemsByAxis.setKey(axis.uid, new Dictionary<string, this[\"_dataItem\"]>());\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get yAxis(): Axis {\r\n\t\tif (this.chart) {\r\n\t\t\tif (!this._yAxis.get()) {\r\n\t\t\t\tconst axis = this.chart.yAxes.getIndex(0);\r\n\r\n\t\t\t\tif (!axis) {\r\n\t\t\t\t\tthrow Error(\"There are no Y axes on chart.\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.yAxis = axis;\r\n\t\t\t}\r\n\r\n\t\t\treturn this._yAxis.get();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The main (base) axis.\r\n\t *\r\n\t * This is the axis that series fills will go to, or grow animations will\r\n\t * happen from.\r\n\t *\r\n\t * @param value Axis\r\n\t */\r\n\tpublic set baseAxis(value: Axis) {\r\n\t\tif (this._baseAxis != value) {\r\n\t\t\tthis._baseAxis = value;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get baseAxis(): Axis {\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (!this._baseAxis && xAxis && yAxis) {\r\n\t\t\tif (yAxis instanceof DateAxis) {\r\n\t\t\t\tthis._baseAxis = yAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (xAxis instanceof DateAxis) {\r\n\t\t\t\tthis._baseAxis = xAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (yAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis._baseAxis = yAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (xAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis._baseAxis = xAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this._baseAxis) {\r\n\t\t\t\tthis._baseAxis = xAxis;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._baseAxis;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds one or several (array) of data items to the existing data.\r\n\t *\r\n\t * @param rawDataItem One or many raw data item objects\r\n\t */\r\n\tpublic addData(rawDataItem: Object | Object[], removeCount?: number, skipRaw?:boolean): void {\r\n\t\tsuper.addData(rawDataItem, removeCount, skipRaw);\r\n\t\tconst scrollbarSeries = this.scrollbarSeries;\r\n\t\tif (scrollbarSeries) {\r\n\t\t\tthis.scrollbarSeries.addData(rawDataItem, removeCount, true);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected setData(value: any[]) {\r\n\t\tsuper.setData(value);\r\n\t\tif (this.scrollbarSeries) {\r\n\t\t\tthis.scrollbarSeries.setData(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Makes the chart use particular data set.\r\n\t *\r\n\t * If `id` is not provided or there is no such data set, main data will be\r\n\t * used.\r\n\t *\r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t * @param id Data set id\r\n\t */\r\n\tpublic setDataSet(id: string): boolean {\r\n\t\tlet changed = super.setDataSet(id);\r\n\r\n\t\tif (changed) {\r\n\r\n\t\t\tthis._dataSetChanged = true;\r\n\t\t\tlet dataItems = this.dataItems;\r\n\r\n\t\t\tthis.resetExtremes();\r\n\r\n\t\t\tlet xAxis = this.xAxis;\r\n\t\t\tlet yAxis = this.yAxis;\r\n\r\n\t\t\tthis._prevStartIndex = undefined;\r\n\t\t\tthis._prevEndIndex = undefined;\r\n\t\t\tthis._startIndex = undefined;\r\n\t\t\tthis._endIndex = undefined;\r\n\r\n\t\t\tif (!this.appeared) {\r\n\t\t\t\tthis.processValues(false); // this will slow down!\r\n\t\t\t}\r\n\r\n\t\t\tif (xAxis instanceof DateAxis && xAxis == this.baseAxis) {\r\n\t\t\t\tthis._tmin.setKey(xAxis.uid, dataItems.getIndex(0).dateX.getTime());\r\n\t\t\t\tthis._tmax.setKey(xAxis.uid, dataItems.getIndex(dataItems.length - 1).dateX.getTime());\r\n\t\t\t\tthis.dispatch(\"extremeschanged\");\r\n\t\t\t}\r\n\r\n\t\t\tif (yAxis instanceof DateAxis && yAxis == this.baseAxis) {\r\n\t\t\t\tthis._tmin.setKey(yAxis.uid, dataItems.getIndex(0).dateY.getTime());\r\n\t\t\t\tthis._tmax.setKey(yAxis.uid, dataItems.getIndex(dataItems.length - 1).dateY.getTime());\r\n\t\t\t\tthis.dispatch(\"extremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn changed;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Processes values after data items' were added.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItems Data items\r\n\t */\r\n\tpublic processValues(working: boolean): void {\r\n\t\tsuper.processValues(working);\r\n\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (!xAxis || !yAxis) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet dataItems = this.dataItems;\r\n\r\n\t\tlet minX = Infinity;\r\n\t\tlet maxX = - Infinity;\r\n\r\n\t\tlet minY = Infinity;\r\n\t\tlet maxY = - Infinity;\r\n\r\n\t\tlet startIndex = this.startIndex;\r\n\t\tlet endIndex = this.endIndex;\r\n\r\n\t\tlet workingStartIndex = startIndex;\r\n\t\tlet workingEndIndex = endIndex;\r\n\r\n\t\tif (!working) {\r\n\t\t\tstartIndex = 0;\r\n\t\t\tendIndex = this.dataItems.length;\r\n\t\t}\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\r\n\t\t\tthis.getStackValue(dataItem, working);\r\n\r\n\t\t\tlet stackX = dataItem.getValue(\"valueX\", \"stack\");\r\n\t\t\tlet stackY = dataItem.getValue(\"valueY\", \"stack\");\r\n\r\n\t\t\tminX = $math.min(dataItem.getMin(this._xValueFields, working, stackX), minX);\r\n\t\t\tminY = $math.min(dataItem.getMin(this._yValueFields, working, stackY), minY);\r\n\r\n\t\t\tmaxX = $math.max(dataItem.getMax(this._xValueFields, working, stackX), maxX);\r\n\t\t\tmaxY = $math.max(dataItem.getMax(this._yValueFields, working, stackY), maxY);\r\n\r\n\t\t\t// if it's stacked, pay attention to stack value\r\n\t\t\tif (this.stacked) {\r\n\t\t\t\tif (this.baseAxis == xAxis) {\r\n\t\t\t\t\tif (stackY < minY) {\r\n\t\t\t\t\t\tminY = stackY\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (stackY > maxY) {\r\n\t\t\t\t\t\tmaxY = stackY;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.baseAxis == yAxis) {\r\n\t\t\t\t\tif (stackX < minX) {\r\n\t\t\t\t\t\tminX = stackX;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (stackX > maxX) {\r\n\t\t\t\t\t\tmaxX = stackX;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// this is mainly for value axis to calculate total and perecent.total of each series category\r\n\t\txAxis.processSeriesDataItems();\r\n\t\tyAxis.processSeriesDataItems();\r\n\r\n\t\tlet xAxisId: string = xAxis.uid;\r\n\t\tlet yAxisId: string = yAxis.uid;\r\n\r\n\t\tif (this.xAxis instanceof ValueAxis && (minX == Infinity || maxX == -Infinity)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.yAxis instanceof ValueAxis && (minY == Infinity || maxY == -Infinity)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!working) {\r\n\t\t\tif (this._tmin.getKey(xAxisId) != minX || this._tmax.getKey(xAxisId) != maxX || this._tmin.getKey(yAxisId) != minY || this._tmax.getKey(yAxisId) != maxY) {\r\n\t\t\t\tthis._tmin.setKey(xAxisId, minX);\r\n\t\t\t\tthis._tmax.setKey(xAxisId, maxX);\r\n\t\t\t\tthis._tmin.setKey(yAxisId, minY);\r\n\t\t\t\tthis._tmax.setKey(yAxisId, maxY);\r\n\r\n\t\t\t\tlet stackedSeries = this.stackedSeries;\r\n\t\t\t\tif (stackedSeries) {\r\n\t\t\t\t\tif (stackedSeries.isDisposed()) {\r\n\t\t\t\t\t\tthis.stackedSeries = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstackedSeries.processValues(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.dispatchImmediately(\"extremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (startIndex != workingStartIndex || endIndex != workingEndIndex) {\r\n\t\t\tminX = Infinity;\r\n\t\t\tmaxX = - Infinity;\r\n\r\n\t\t\tminY = Infinity;\r\n\t\t\tmaxY = - Infinity;\r\n\r\n\t\t\tfor (let i = workingStartIndex; i < workingEndIndex; i++) {\r\n\t\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\r\n\t\t\t\tthis.getStackValue(dataItem, working);\r\n\r\n\t\t\t\tlet stackX = dataItem.getValue(\"valueX\", \"stack\");\r\n\t\t\t\tlet stackY = dataItem.getValue(\"valueY\", \"stack\");\r\n\r\n\t\t\t\tminX = $math.min(dataItem.getMin(this._xValueFields, working, stackX), minX);\r\n\r\n\t\t\t\tminY = $math.min(dataItem.getMin(this._yValueFields, working, stackY), minY);\r\n\r\n\t\t\t\tmaxX = $math.max(dataItem.getMax(this._xValueFields, working, stackX), maxX);\r\n\t\t\t\tmaxY = $math.max(dataItem.getMax(this._yValueFields, working, stackY), maxY);\r\n\r\n\t\t\t\t// if it's stacked, pay attention to stack value\r\n\t\t\t\tif (this.stacked) {\r\n\t\t\t\t\tif (this.baseAxis == xAxis) {\r\n\t\t\t\t\t\tif (stackY < minY) {\r\n\t\t\t\t\t\t\tminY = stackY\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (stackY > maxY) {\r\n\t\t\t\t\t\t\tmaxY = stackY;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.baseAxis == yAxis) {\r\n\t\t\t\t\t\tif (stackX < minX) {\r\n\t\t\t\t\t\t\tminX = stackX;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (stackX > maxX) {\r\n\t\t\t\t\t\t\tmaxX = stackX;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.xAxis instanceof ValueAxis && (minX == Infinity || maxX == -Infinity)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.yAxis instanceof ValueAxis && (minY == Infinity || maxY == -Infinity)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this._smin.getKey(xAxisId) != minX || this._smax.getKey(xAxisId) != maxX || this._smin.getKey(yAxisId) != minY || this._smax.getKey(yAxisId) != maxY) {\r\n\r\n\t\t\tthis._smin.setKey(xAxisId, minX);\r\n\t\t\tthis._smax.setKey(xAxisId, maxX);\r\n\t\t\tthis._smin.setKey(yAxisId, minY);\r\n\t\t\tthis._smax.setKey(yAxisId, maxY);\r\n\r\n\t\t\tif (this.appeared || this.start != 0 || this.end != 1 || this.dataItems != this.mainDataSet) {\r\n\t\t\t\t/// new, helps to handle issues with change percent\r\n\t\t\t\tlet changed = false;\r\n\r\n\t\t\t\tif (yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n\t\t\t\t\tlet tmin = this._tmin.getKey(yAxisId);\r\n\r\n\t\t\t\t\tif (!$type.isNumber(tmin) || ((this.usesShowFields || this._dataSetChanged) && minY < tmin) || (this.stackedSeries && !this.isHidden)) {\r\n\t\t\t\t\t\tthis._tmin.setKey(yAxisId, minY);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet tmax = this._tmax.getKey(yAxisId);\r\n\t\t\t\t\tif (!$type.isNumber(tmax) || ((this.usesShowFields || this._dataSetChanged) && maxY > tmax) || (this.stackedSeries && !this.isHidden)) {\r\n\t\t\t\t\t\tthis._tmax.setKey(yAxisId, maxY);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis)) {\r\n\t\t\t\t\tlet tmin = this._tmin.getKey(xAxisId);\r\n\t\t\t\t\tif (!$type.isNumber(tmin) || ((this.usesShowFields || this._dataSetChanged) && minX < tmin) || (this.stackedSeries && !this.isHidden)) {\r\n\t\t\t\t\t\tthis._tmin.setKey(xAxisId, minX);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet tmax = this._tmax.getKey(xAxisId);\r\n\t\t\t\t\tif (!$type.isNumber(tmax) || ((this.usesShowFields || this._dataSetChanged) && maxX > tmax) || (this.stackedSeries && !this.isHidden)) {\r\n\t\t\t\t\t\tthis._tmax.setKey(xAxisId, maxX);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (changed) {\r\n\t\t\t\t\tthis.dispatchImmediately(\"extremeschanged\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.start == 0 && this.end == 1) {\r\n\t\t\t\t\t// yes, its ok. otherwise min/max won't be updated when zooming out\r\n\t\t\t\t\tthis._dataSetChanged = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dispatchImmediately(\"selectionextremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!working && this.stacked) {\r\n\t\t\tthis.processValues(true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides element's [[Tooltip]].\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t */\r\n\tpublic hideTooltip() {\r\n\t\tsuper.hideTooltip();\r\n\t\tthis.returnBulletDefaultState();\r\n\t\tthis._prevTooltipDataItem = undefined;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows series tooltip at specific position.\r\n\t *\r\n\t * @param xPosition X\r\n\t * @param yPosition Y\r\n\t */\r\n\tpublic showTooltipAtPosition(xPosition: number, yPosition: number): IPoint {\r\n\r\n\t\tlet dataItem: this[\"_dataItem\"];\r\n\r\n\t\tif (this.visible && !this.isHiding && !this.isShowing) {\r\n\r\n\t\t\tlet xAxis: Axis = this._xAxis.get();\r\n\t\t\tlet yAxis: Axis = this._yAxis.get();\r\n\r\n\t\t\tif (xAxis == this.baseAxis) {\r\n\t\t\t\tdataItem = <this[\"_dataItem\"]>xAxis.getSeriesDataItem(this, xAxis.toAxisPosition(xPosition), this.snapTooltip);\r\n\t\t\t}\r\n\t\t\tif (yAxis == this.baseAxis) {\r\n\t\t\t\tdataItem = <this[\"_dataItem\"]>yAxis.getSeriesDataItem(this, yAxis.toAxisPosition(yPosition), this.snapTooltip);\r\n\t\t\t}\r\n\r\n\t\t\tlet point = this.showTooltipAtDataItem(dataItem);\r\n\r\n\t\t\tif (point) {\r\n\t\t\t\treturn point;\r\n\t\t\t}\r\n\r\n\t\t\t// so that if tooltip is shown on columns or bullets for it not to be hidden\r\n\t\t\tif (!this.tooltipText) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.hideTooltip();\r\n\t}\r\n\r\n\tprotected getAdjustedXLocation(dataItem: this[\"_dataItem\"], field: string, bulletLocationX?:number) {\r\n\t\treturn dataItem.locations[field];\r\n\t}\r\n\r\n\tprotected getAdjustedYLocation(dataItem: this[\"_dataItem\"], field: string, bulletLocationY?:number) {\r\n\t\treturn dataItem.locations[field];\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows series tooltip at specific dataItem.\r\n\t *\r\n\t * @param dataItem\r\n\t */\r\n\tpublic showTooltipAtDataItem(dataItem: this[\"_dataItem\"]): IPoint {\r\n\r\n\t\tlet cursor = <XYCursor>this.chart.cursor;\r\n\t\tif (cursor && cursor.hideSeriesTooltipsOnSelection && cursor.selection.visible && cursor.downPoint) {\r\n\t\t\tthis.hideTooltip();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.returnBulletDefaultState(dataItem);\r\n\t\tif (dataItem && dataItem.visible) {\r\n\r\n\t\t\tthis.updateLegendValue(dataItem);\r\n\t\t\tif (this.cursorTooltipEnabled) {\r\n\t\t\t\tthis.tooltipDataItem = dataItem;\r\n\r\n\t\t\t\t// todo: add tooltipXField and tooltipYField.\r\n\t\t\t\tlet tooltipXField = this.tooltipXField;\r\n\t\t\t\tlet tooltipYField = this.tooltipYField;\r\n\r\n\t\t\t\tif ($type.hasValue((<any>dataItem)[tooltipXField]) && $type.hasValue((<any>dataItem)[tooltipYField])) {\r\n\r\n\t\t\t\t\tlet tooltipPoint = this.getPoint(dataItem, tooltipXField, tooltipYField, this.getAdjustedXLocation(dataItem, tooltipXField), this.getAdjustedYLocation(dataItem, tooltipYField));\r\n\r\n\t\t\t\t\tif (tooltipPoint) {\r\n\r\n\t\t\t\t\t\tif (this.chart.className == \"XYChart\" && (tooltipPoint.y < -1 || tooltipPoint.y > this.yAxis.pixelHeight + 1 || tooltipPoint.x < -1 || tooltipPoint.x > this.xAxis.pixelWidth + 1)) {\r\n\t\t\t\t\t\t\t// void\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.tooltipX = tooltipPoint.x;\r\n\t\t\t\t\t\t\tthis.tooltipY = tooltipPoint.y;\r\n\r\n\t\t\t\t\t\t\tif (this._prevTooltipDataItem != dataItem) {\r\n\t\t\t\t\t\t\t\tthis.dispatchImmediately(\"tooltipshownat\", {\r\n\t\t\t\t\t\t\t\t\ttype: \"tooltipshownat\",\r\n\t\t\t\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\t\t\t\tdataItem: dataItem\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tthis._prevTooltipDataItem = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (this.cursorHoverEnabled) {\r\n\t\t\t\t\t\t\t\tfor (let sprite of dataItem.sprites) {\r\n\t\t\t\t\t\t\t\t\tif (!sprite.parent.visible || sprite.isHidden || sprite.__disabled || sprite.disabled || sprite.isHiding) {\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tif (!sprite.interactions.isRealHover) {\r\n\t\t\t\t\t\t\t\t\t\t\tsprite.dispatchImmediately(\"over\");\r\n\t\t\t\t\t\t\t\t\t\t\tsprite.interactions.isRealHover = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tsprite.isHover = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (this.showTooltip()) {\r\n\t\t\t\t\t\t\t\treturn $utils.spritePointToSvg({ x: tooltipPoint.x, y: tooltipPoint.y }, this);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.updateLegendValue(dataItem, true);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Returns default state to bullets when tooltip is shown at some other data\r\n\t * item or hidden\r\n\t */\r\n\tprotected returnBulletDefaultState(dataItem?: XYSeriesDataItem) {\r\n\t\tif (this._prevTooltipDataItem && this._prevTooltipDataItem != dataItem) {\r\n\t\t\tfor (let sprite of this._prevTooltipDataItem.sprites) {\r\n\t\t\t\tif (!sprite.isDisposed()) {\r\n\t\t\t\t\tconst fireEvent = sprite.interactions.isRealHover;\r\n\t\t\t\t\tsprite.isHover = false;\r\n\t\t\t\t\tif (fireEvent) {\r\n\t\t\t\t\t\tsprite.dispatchImmediately(\"out\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._prevTooltipDataItem = undefined;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected shouldCreateBullet(dataItem: this[\"_dataItem\"], bulletTemplate: Bullet): boolean {\r\n\t\t// use series xField/yField if bullet doesn't have fields set\r\n\t\tlet xField: string = bulletTemplate.xField;\r\n\t\tif (!$type.hasValue(xField)) {\r\n\t\t\txField = this.xField;\r\n\t\t}\r\n\r\n\t\tlet yField: string = bulletTemplate.yField;\r\n\t\tif (!$type.hasValue(yField)) {\r\n\t\t\tyField = this.yField;\r\n\t\t}\r\n\r\n\t\tif ((this.xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (this.yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (bulletTemplate.disabled) {\r\n\t\t\tlet disabledField = bulletTemplate.propertyFields.disabled;\r\n\t\t\tlet dataContext = <any>dataItem.dataContext;\r\n\t\t\tif (dataContext && dataContext[disabledField] === false) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateTooltip() {\r\n\t\tif (!this.hideTooltipWhileZooming && this.tooltip && !this.tooltip.isHidden && !this.isHiding && !this.isHidden && this.tooltipDataItem) {\r\n\t\t\tthis.showTooltipAtDataItem(<this[\"_dataItem\"]>this.tooltipDataItem);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic positionBullet(bullet: Bullet) {\r\n\t\tsuper.positionBullet(bullet);\r\n\r\n\t\tlet dataItem: XYSeriesDataItem = <XYSeriesDataItem>bullet.dataItem;\r\n\r\n\t\t// use series xField/yField if bullet doesn't have fields set\r\n\t\tlet xField: string = bullet.xField;\r\n\t\tif (!$type.hasValue(xField)) {\r\n\t\t\txField = this.xField;\r\n\t\t}\r\n\r\n\t\tlet yField: string = bullet.yField;\r\n\t\tif (!$type.hasValue(yField)) {\r\n\t\t\tyField = this.yField;\r\n\t\t}\r\n\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif ((xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n\t\t\tbullet.visible = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet bulletLocationX: number = this.getBulletLocationX(bullet, xField);\r\n\t\t\tlet bulletLocationY: number = this.getBulletLocationY(bullet, yField);\r\n\r\n\t\t\tlet point = this.getPoint(dataItem, xField, yField, bulletLocationX, bulletLocationY);\r\n\t\t\tif (point) {\r\n\t\t\t\tlet xOpenField = this.xOpenField;\r\n\t\t\t\tlet yOpenField = this.yOpenField;\r\n\r\n\t\t\t\tlet positionX: number;\r\n\t\t\t\tlet positionY: number;\r\n\r\n\r\n\t\t\t\tif (xAxis instanceof DateAxis) {\r\n\r\n\t\t\t\t\tif (!$type.isNumber(bulletLocationX)) {\r\n\t\t\t\t\t\tbulletLocationX = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet openValue: number;\r\n\t\t\t\t\tlet closeValue: number = dataItem.getWorkingValue(xField);\r\n\r\n\t\t\t\t\tif (!xOpenField) {\r\n\t\t\t\t\t\tif (xAxis == this.baseAxis) {\r\n\t\t\t\t\t\t\topenValue = xAxis.baseValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\topenValue = dataItem.getWorkingValue(xOpenField);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!$type.isNumber(openValue)) {\r\n\t\t\t\t\t\topenValue = closeValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\t\t\t\t\topenValue += stack;\r\n\t\t\t\t\tcloseValue += stack;\r\n\r\n\t\t\t\t\tif (openValue == closeValue) {\r\n\t\t\t\t\t\tlet baseInterval = xAxis.baseInterval;\r\n\t\t\t\t\t\tlet dateFormatter = xAxis.dateFormatter;\r\n\t\t\t\t\t\topenValue = $time.round(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.firstDayOfWeek, dateFormatter.utc).getTime();\r\n\t\t\t\t\t\tcloseValue = $time.add(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.utc).getTime();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet middleValue: number;\r\n\t\t\t\t\tif (xAxis == this.baseAxis) {\r\n\t\t\t\t\t\tmiddleValue = openValue + (closeValue - openValue) * bulletLocationX;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmiddleValue = openValue + (closeValue - openValue) * (1 - bulletLocationX);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpositionX = xAxis.valueToPosition(middleValue);\r\n\t\t\t\t}\r\n\t\t\t\telse if (xAxis instanceof ValueAxis) {\r\n\r\n\t\t\t\t\tif (!$type.isNumber(bulletLocationX)) {\r\n\t\t\t\t\t\tbulletLocationX = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet openValue: number;\r\n\t\t\t\t\tlet closeValue: number = dataItem.getWorkingValue(xField);\r\n\r\n\t\t\t\t\tif (!xOpenField) {\r\n\t\t\t\t\t\topenValue = xAxis.baseValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\topenValue = dataItem.getWorkingValue(xOpenField);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\t\t\t\t\topenValue += stack;\r\n\t\t\t\t\tcloseValue += stack;\r\n\r\n\t\t\t\t\tlet middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationX);\r\n\r\n\t\t\t\t\tpositionX = xAxis.valueToPosition(middleValue);\r\n\t\t\t\t}\r\n\t\t\t\telse if (xAxis instanceof CategoryAxis) {\r\n\r\n\t\t\t\t\tlet rightLocation = this.getAdjustedXLocation(dataItem, xField, bullet.locationX);\r\n\t\t\t\t\tlet leftLocation = this.getAdjustedXLocation(dataItem, xOpenField, bullet.locationX);\r\n\r\n\t\t\t\t\tpositionX = xAxis.categoryToPosition((<any>dataItem)[xField], rightLocation);\r\n\t\t\t\t\tlet openPositionX: number;\r\n\r\n\r\n\t\t\t\t\tif (xOpenField) {\r\n\t\t\t\t\t\topenPositionX = xAxis.categoryToPosition((<any>dataItem)[xOpenField], leftLocation);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!$type.isNumber(openPositionX)) {\r\n\t\t\t\t\t\topenPositionX = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpositionX = openPositionX + (positionX - openPositionX) * bulletLocationX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (yAxis instanceof DateAxis) {\r\n\t\t\t\t\tif (!$type.isNumber(bulletLocationY)) {\r\n\t\t\t\t\t\tbulletLocationY = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet openValue: number;\r\n\t\t\t\t\tlet closeValue: number = dataItem.getWorkingValue(yField);\r\n\r\n\t\t\t\t\tif (!yOpenField) {\r\n\t\t\t\t\t\tif (yAxis == this.baseAxis) {\r\n\t\t\t\t\t\t\topenValue = yAxis.baseValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\topenValue = dataItem.getWorkingValue(yOpenField);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!$type.isNumber(openValue)) {\r\n\t\t\t\t\t\topenValue = closeValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet stack: number = dataItem.getValue(\"valueY\", \"stack\");\r\n\t\t\t\t\topenValue += stack;\r\n\t\t\t\t\tcloseValue += stack;\r\n\r\n\t\t\t\t\tif (openValue == closeValue) {\r\n\t\t\t\t\t\tlet baseInterval = yAxis.baseInterval;\r\n\t\t\t\t\t\tlet dateFormatter = yAxis.dateFormatter;\r\n\t\t\t\t\t\topenValue = $time.round(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.firstDayOfWeek, dateFormatter.utc).getTime();\r\n\t\t\t\t\t\tcloseValue = $time.add(new Date(openValue), baseInterval.timeUnit, baseInterval.count, dateFormatter.utc).getTime();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet middleValue: number;\r\n\r\n\t\t\t\t\tif (yAxis == this.baseAxis) {\r\n\t\t\t\t\t\tmiddleValue = openValue + (closeValue - openValue) * bulletLocationY;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmiddleValue = openValue + (closeValue - openValue) * (1 - bulletLocationY);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpositionY = yAxis.valueToPosition(middleValue);\r\n\t\t\t\t}\r\n\t\t\t\telse if (yAxis instanceof ValueAxis) {\r\n\r\n\t\t\t\t\tif (!$type.isNumber(bulletLocationY)) {\r\n\t\t\t\t\t\tbulletLocationY = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet openValue: number;\r\n\t\t\t\t\tlet closeValue: number = dataItem.getWorkingValue(yField);\r\n\r\n\t\t\t\t\tif (!yOpenField) {\r\n\t\t\t\t\t\topenValue = yAxis.baseValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\topenValue = dataItem.getWorkingValue(yOpenField);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet stack: number = dataItem.getValue(\"valueY\", \"stack\");\r\n\t\t\t\t\topenValue += stack;\r\n\t\t\t\t\tcloseValue += stack;\r\n\r\n\t\t\t\t\tlet middleValue = openValue + (closeValue - openValue) * (1 - bulletLocationY);\r\n\r\n\t\t\t\t\tpositionY = yAxis.valueToPosition(middleValue);\r\n\t\t\t\t}\r\n\t\t\t\telse if (yAxis instanceof CategoryAxis) {\r\n\t\t\t\t\tpositionY = yAxis.categoryToPosition((<any>dataItem)[yField], bulletLocationY);\r\n\r\n\t\t\t\t\tlet topLocation = this.getAdjustedYLocation(dataItem, yField, bullet.locationY);\r\n\t\t\t\t\tlet bottomLocation = this.getAdjustedYLocation(dataItem, yOpenField, bullet.locationY);\r\n\r\n\t\t\t\t\tpositionY = yAxis.categoryToPosition((<any>dataItem)[yField], topLocation);\r\n\t\t\t\t\tlet openPositionY: number;\r\n\r\n\t\t\t\t\tif (yOpenField) {\r\n\t\t\t\t\t\topenPositionY = yAxis.categoryToPosition((<any>dataItem)[yOpenField], bottomLocation);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!$type.isNumber(openPositionY)) {\r\n\t\t\t\t\t\topenPositionY = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpositionY = openPositionY + (positionY - openPositionY) * bulletLocationY;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbullet.visible = true;\r\n\t\t\t\tthis.positionBulletReal(bullet, positionX, positionY);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbullet.visible = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected positionBulletReal(bullet: Sprite, positionX: number, positionY: number) {\r\n\t\tbullet.x = this.xAxis.renderer.positionToPoint(positionX, positionY).x;\r\n\t\tbullet.y = this.yAxis.renderer.positionToPoint(positionY, positionX).y;\r\n\t}\r\n\r\n\t/**\r\n\t * returns bullet x location\r\n\t * @ignore\r\n\t */\r\n\tprotected getBulletLocationX(bullet: Bullet, field: string): number {\r\n\t\tlet bulletLocation: number = bullet.locationX;\r\n\t\tlet dataItem = bullet.dataItem;\r\n\t\tif (!$type.isNumber(bulletLocation)) {\r\n\t\t\tbulletLocation = dataItem.workingLocations[field];\r\n\t\t}\r\n\t\treturn bulletLocation;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns bullet x location\r\n\t * @ignore\r\n\t */\r\n\tprotected getBulletLocationY(bullet: Bullet, field: string): number {\r\n\t\tlet bulletLocation: number = bullet.locationY;\r\n\t\tlet dataItem = bullet.dataItem;\r\n\t\tif (!$type.isNumber(bulletLocation)) {\r\n\t\t\tbulletLocation = dataItem.workingLocations[field];\r\n\t\t}\r\n\t\treturn bulletLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * This method must be called if you update Series' data fields that might\r\n\t * affect stacking of the series.\r\n\t *\r\n\t * Since individual `dataField` changes are not being monitored, you need\r\n\t * todo it manually for changes to take affect.\r\n\t *\r\n\t * @since 4.7.21\r\n\t */\r\n\tpublic updateStacking(): void {\r\n\t\tthis.invalidateDataItems();\r\n\t\tif (this.chart) {\r\n\t\t\tthis.chart.series.each((series) => {\r\n\t\t\t\tif (series.baseAxis == this.baseAxis) {\r\n\t\t\t\t\tseries.stackedSeries = undefined;\r\n\t\t\t\t\tseries.invalidateDataItems();\r\n\t\t\t\t\tseries.invalidateProcessedData();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Can items from this series be included into stacks?\r\n\t * \r\n\t * Note: proper stacking is only possible if series have the same number\r\n\t * of data items. To ensure this, don't set data directly on series\r\n\t * but do this on chart instead.\r\n\t *\r\n\t * @default false\r\n\t * @param stacked Can be stacked?\r\n\t */\r\n\tpublic set stacked(stacked: boolean) {\r\n\t\tif (this.setPropertyValue(\"stacked\", stacked, true)) {\r\n\t\t\tthis.updateStacking();\r\n\r\n\t\t\tlet xAxis = this.xAxis;\r\n\t\t\tlet yAxis = this.yAxis;\r\n\r\n\t\t\tif (!stacked) {\r\n\t\t\t\tlet field: string;\r\n\r\n\t\t\t\tif (xAxis != this.baseAxis && xAxis instanceof ValueAxis) {\r\n\t\t\t\t\tfield = this.xField;\r\n\t\t\t\t}\r\n\t\t\t\tif (yAxis != this.baseAxis && yAxis instanceof ValueAxis) {\r\n\t\t\t\t\tfield = this.yField;\r\n\t\t\t\t}\r\n\t\t\t\tif (field) {\r\n\t\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\t\tdataItem.setCalculatedValue(field, 0, \"stack\");\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Can be stacked?\r\n\t */\r\n\tpublic get stacked(): boolean {\r\n\t\treturn this.getPropertyValue(\"stacked\");\r\n\t}\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position? In order this to work, you should set snapTooltip = false on the series baseAxis.\r\n\t *\r\n\t * @default false\r\n\t * @param value Should snap?\r\n\t */\r\n\tpublic set snapTooltip(value: boolean) {\r\n\t\tthis.setPropertyValue(\"snapTooltip\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should snap?\r\n\t */\r\n\tpublic get snapTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"snapTooltip\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows hidden series.\r\n\t *\r\n\t * @param duration Duration of reveal animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic show(duration?: number): Animation {\r\n\r\n\t\tlet fields: string[];\r\n\t\tif (this.xAxis instanceof ValueAxis && this.xAxis != this.baseAxis) {\r\n\t\t\tfields = this._xValueFields;\r\n\t\t}\r\n\r\n\t\tif (this.yAxis instanceof ValueAxis && this.yAxis != this.baseAxis) {\r\n\t\t\tfields = this._yValueFields;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\t\tlet delay: number = 0;\r\n\r\n\t\tlet interpolationDuration = this.defaultState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\t\tif (!options.animationsEnabled) {\r\n\t\t\tinterpolationDuration = 0;\r\n\t\t}\r\n\r\n\t\tlet anim: Animation;\r\n\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\t\t\tlet realDuration = interpolationDuration;\r\n\t\t\tif (i < this.startIndex - 10 || i > this.endIndex + 10) {\r\n\t\t\t\trealDuration = 0;\r\n\t\t\t\tdelay = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.sequencedInterpolation && realDuration > 0) {\r\n\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t}\r\n\t\t\tanim = dataItem.show(realDuration, delay, fields);\r\n\t\t});\r\n\r\n\t\t// other data sets\r\n\t\tthis.dataSets.each((key, dataSet) => {\r\n\t\t\tif (dataSet != this.dataItems) {\r\n\t\t\t\tdataSet.each((dataItem) => {\r\n\t\t\t\t\tdataItem.events.disable();\r\n\t\t\t\t\tdataItem.show(0, 0, fields);\r\n\t\t\t\t\tdataItem.events.enable();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (this.mainDataSet != this.dataItems) {\r\n\t\t\tthis.mainDataSet.each((dataItem) => {\r\n\t\t\t\tdataItem.events.disable();\r\n\t\t\t\tdataItem.show(0, 0, fields);\r\n\t\t\t\tdataItem.events.enable();\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tlet animation = super.show(duration);\r\n\r\n\t\tif (anim && !anim.isFinished()) {\r\n\t\t\tanimation = anim;\r\n\t\t}\r\n\r\n\t\tif (this.hidden) {\r\n\t\t\tthis.dispatchImmediately(\"selectionextremeschanged\");\r\n\t\t\tthis.hidden = false;\r\n\t\t}\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides series.\r\n\t *\r\n\t * @param duration Duration of hiding animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic hide(duration?: number): Animation {\r\n\t\tlet fields: string[];\r\n\t\tlet value: number;\r\n\t\tlet xAxis: Axis = this.xAxis;\r\n\r\n\t\tif (xAxis instanceof ValueAxis && xAxis != this.baseAxis) {\r\n\t\t\tfields = this._xValueFields;\r\n\t\t\t// animate to zero if 0 is within zoomMin/zoomMax\r\n\t\t\tif (this.stacked || (xAxis.minZoomed < xAxis.baseValue && xAxis.maxZoomed > xAxis.baseValue) || this.stackedSeries) {\r\n\t\t\t\tvalue = xAxis.baseValue;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = xAxis.min;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet yAxis: Axis = this.yAxis;\r\n\t\tif (yAxis instanceof ValueAxis && yAxis != this.baseAxis) {\r\n\t\t\tfields = this._yValueFields;\r\n\t\t\t// animate to zero if 0 is within zoomMin/zoomMax\r\n\t\t\tif (this.stacked || (yAxis.minZoomed < yAxis.baseValue && yAxis.maxZoomed > yAxis.baseValue) || this.stackedSeries) {\r\n\t\t\t\tvalue = yAxis.baseValue;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = yAxis.min;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//if ($type.hasValue(fields)) {\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet interpolationDuration = this.hiddenState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tif (!options.animationsEnabled) {\r\n\t\t\tinterpolationDuration = 0;\r\n\t\t}\r\n\r\n\t\tlet delay: number = 0;\r\n\t\tlet anim: Animation;\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\t\t\tlet realDuration = interpolationDuration;\r\n\r\n\t\t\tif (i < this.startIndex - 10 || i > this.endIndex + 10) {\r\n\t\t\t\trealDuration = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (realDuration == 0) {\r\n\t\t\t\tdataItem.hide(0, 0, value, fields);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this.sequencedInterpolation && realDuration > 0) {\r\n\t\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t\t}\r\n\t\t\t\tanim = dataItem.hide(realDuration, delay, value, fields);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet animation = super.hide(interpolationDuration);\r\n\t\tif (animation && !animation.isFinished()) {\r\n\t\t\tanimation.delay(delay);\r\n\t\t}\r\n\r\n\t\tif (anim && !anim.isFinished()) {\r\n\t\t\tanimation = anim;\r\n\t\t}\r\n\r\n\t\t// helps to avoid flicker. otherwise columns will show up at full size and only on next frame will animate from 0\r\n\t\tthis.validateDataElements();\r\n\t\t//}\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tsuper.handleDataItemWorkingValueChange(dataItem, name);\r\n\r\n\t\t// to calculate stack values\r\n\t\tlet axisSeries: List<XYSeries> = <List<XYSeries>>this.baseAxis.series;\r\n\r\n\t\t$iter.each(axisSeries.iterator(), (series) => {\r\n\t\t\tif (series.stacked || series.stackedSeries) {\r\n\t\t\t\tseries.invalidateProcessedData();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * [getStackValue description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic getStackValue(dataItem: this[\"_dataItem\"], working?: boolean): void {\r\n\t\t// todo: here wer stack x and y values only. question is - what should we do with other values, like openX, openY?\r\n\t\t// if this series is not stacked or new stack begins, return.\r\n\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif (!this.stacked || !xAxis || !yAxis) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// it might seem that it's better to go through base axis series, but we do not maintain the same order as in chart.series there.\r\n\t\t\tlet chart: XYChart = this.chart;\r\n\t\t\tlet index: number = chart.series.indexOf(this);\r\n\r\n\t\t\tlet field: string;\r\n\r\n\t\t\tif (xAxis != this.baseAxis && xAxis instanceof ValueAxis) {\r\n\t\t\t\tfield = this.xField;\r\n\t\t\t}\r\n\t\t\tif (yAxis != this.baseAxis && yAxis instanceof ValueAxis) {\r\n\t\t\t\tfield = this.yField;\r\n\t\t\t}\r\n\r\n\t\t\tif (!field) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//this is good for removing series, otherwise stack values will remain the same and chart won't pay atention when adding/removing series\t\t\t\r\n\t\t\tdataItem.setCalculatedValue(field, 0, \"stack\");\r\n\r\n\t\t\t$iter.eachContinue(chart.series.range(0, index).backwards().iterator(), (prevSeries) => {\r\n\t\t\t\t// stacking is only possible if both axes are the same\r\n\t\t\t\tif (prevSeries.xAxis == xAxis && prevSeries.yAxis == yAxis) {\r\n\t\t\t\t\t// saving value\r\n\t\t\t\t\tprevSeries.stackedSeries = this;\r\n\r\n\t\t\t\t\tlet prevDataItem = prevSeries.dataItems.getIndex(dataItem.index); // indexes should match\r\n\r\n\t\t\t\t\tif (prevDataItem && prevDataItem.hasValue(this._xValueFields) && prevDataItem.hasValue(this._yValueFields)) {\r\n\r\n\t\t\t\t\t\tlet value = dataItem.getValue(field);\r\n\t\t\t\t\t\tlet prevValue: number;\r\n\t\t\t\t\t\tlet prevRealValue = prevDataItem.getValue(field) + prevDataItem.getValue(field, \"stack\");\r\n\r\n\t\t\t\t\t\tif (working) {\r\n\t\t\t\t\t\t\tprevValue = prevDataItem.getWorkingValue(field) + prevDataItem.getValue(field, \"stack\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tprevValue = prevDataItem.getValue(field) + prevDataItem.getValue(field, \"stack\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ((value >= 0 && prevRealValue >= 0) || (value < 0 && prevRealValue < 0)) {\r\n\t\t\t\t\t\t\t//dataItem.events.disable();\r\n\t\t\t\t\t\t\tdataItem.setCalculatedValue(field, prevValue, \"stack\");\r\n\t\t\t\t\t\t\t//dataItem.events.enable();\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (!prevSeries.stacked) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [xField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get xField(): string {\r\n\t\treturn this._xField;\r\n\t}\r\n\r\n\t/**\r\n\t * [yField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get yField(): string {\r\n\t\treturn this._yField;\r\n\t}\r\n\r\n\t/**\r\n\t * [xOpenField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get xOpenField(): string {\r\n\t\treturn this._xOpenField;\r\n\t}\r\n\r\n\t/**\r\n\t * [yOpenField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get yOpenField(): string {\r\n\t\treturn this._yOpenField;\r\n\t}\r\n\r\n\t/**\r\n\t * [tooltipXField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set tooltipXField(value: string) {\r\n\t\tthis._tooltipXField = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get tooltipXField(): string {\r\n\t\tif (this._tooltipXField) {\r\n\t\t\treturn this._tooltipXField;\r\n\t\t}\r\n\t\treturn this._xField;\r\n\t}\r\n\r\n\t/**\r\n\t * [tooltipYField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set tooltipYField(value: string) {\r\n\t\tthis._tooltipYField = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get tooltipYField(): string {\r\n\t\tif (this._tooltipYField) {\r\n\t\t\treturn this._tooltipYField;\r\n\t\t}\r\n\t\treturn this._yField;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns lowest value in the series for the specific axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic min(axis: ValueAxis): number {\r\n\t\treturn this._tmin.getKey(axis.uid);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns highest value in the series for the specific axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic max(axis: ValueAxis): number {\r\n\t\treturn this._tmax.getKey(axis.uid);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns lowest value in the series for the specific axis within current\r\n\t * selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic selectionMin(axis: ValueAxis): number {\r\n\t\tlet value = this._smin.getKey(axis.uid);\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.min(axis);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns highest value in the series for the specific axis within current\r\n\t * selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic selectionMax(axis: ValueAxis): number {\r\n\t\tlet value = this._smax.getKey(axis.uid);\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.max(axis);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up base axes\r\n\t\t\tif ($type.hasValue(config.baseAxis) && $type.isString(config.baseAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.baseAxis)) {\r\n\t\t\t\t\tconfig.baseAxis = this.map.getKey(config.baseAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.baseAxis + \"\\\" found for `baseAxis`.\");\r\n\t\t\t\t\tdelete config.baseAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.xAxis)) {\r\n\t\t\t\t\tconfig.xAxis = this.map.getKey(config.xAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`.\");\r\n\t\t\t\t\tdelete config.xAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.yAxis)) {\r\n\t\t\t\t\tconfig.yAxis = this.map.getKey(config.yAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`.\");\r\n\t\t\t\t\tdelete config.yAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up axis ranges\r\n\t\t\tif ($type.hasValue(config.axisRanges) && $type.isArray(config.axisRanges)) {\r\n\t\t\t\tfor (let i = 0, len = config.axisRanges.length; i < len; i++) {\r\n\t\t\t\t\tlet range = config.axisRanges[i];\r\n\t\t\t\t\tif (!$type.hasValue(range.type)) {\r\n\t\t\t\t\t\trange.type = \"AxisDataItem\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.hasValue(range.axis) && $type.isString(range.axis) && this.map.hasKey(range.axis)) {\r\n\t\t\t\t\t\trange.component = this.map.getKey(range.axis);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.hasValue(range.component) && $type.isString(range.component) && this.map.hasKey(range.component)) {\r\n\t\t\t\t\t\trange.component = this.map.getKey(range.component);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Parse date fields based on the series fields\r\n\t\t\tif (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n\t\t\t\tthis.processingErrors.push(\"`dataFields` is not set for series [\" + (this.name || \"unnamed\") + \"]\");\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param xKey Name of X data field\r\n\t * @param yKey Name of Y data field\r\n\t * @param locationX X location\r\n\t * @param locationY Y location\r\n\t * @param stackKeyX ?\r\n\t * @param stackKeyY ?\r\n\t * @returns Coordinates\r\n\t */\r\n\tpublic getPoint(dataItem: XYSeriesDataItem, xKey: string, yKey: string, locationX?: number, locationY?: number, stackKeyX?: string, stackKeyY?: string): IPoint {\r\n\t\tif (this.xAxis && this.yAxis) {\r\n\t\t\tlet x: number = this.xAxis.getX(dataItem, xKey, locationX);\r\n\t\t\tlet y: number = this.yAxis.getY(dataItem, yKey, locationY);\r\n\r\n\t\t\tx = $math.fitToRange(x, -this._maxxX, this._maxxX); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\t\t\ty = $math.fitToRange(y, -this._maxxY, this._maxxY); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\r\n\t\t\treturn { x: x, y: y };\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates item reader text based on the type and set up of axis.\r\n\t */\r\n\tprotected updateItemReaderText(): void {\r\n\r\n\t\t// We do not want to overwrite this if `itemReaderText` was changed by\r\n\t\t// user code.\r\n\t\tif (this._itemReaderTextChanged) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet text = \"\"\r\n\t\t$object.each(this.dataFields, (key, val) => {\r\n\t\t\ttext += \"{\" + key + \"} \";\r\n\t\t});\r\n\t\tthis.itemReaderText = text;\r\n\t\tthis._itemReaderTextChanged = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series should display a tooltip for chart's cursor.\r\n\t *\r\n\t * If set to `true` (default), the tooltips set for all series item's\r\n\t * elements like columns and bullets will be automatically shown\r\n\t * when [[XYCursor]] passes over category/date, even if its not hovered\r\n\t * directly over the item.\r\n\t *\r\n\t * Set this to `false` to disable such behavior and display item-specific\r\n\t * tooltips only when hovered directly over them\r\n\t *\r\n\t * @default true\r\n\t * @param value Display tooltip?\r\n\t */\r\n\tpublic set cursorTooltipEnabled(value: boolean) {\r\n\t\tthis.setPropertyValue(\"cursorTooltipEnabled\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Display tooltip?\r\n\t */\r\n\tpublic get cursorTooltipEnabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"cursorTooltipEnabled\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series should apply hover state on bullets/columns/etc when\r\n\t * cursor is over the data item.\r\n\t *\r\n\t * If set to `true` (default) and chart cursor is enabled on th chart,\r\n\t * hovering over date/category will trigger hover states on related Series\r\n\t * items like bullets and columns.\r\n\t *\r\n\t * @default true\r\n\t * @since 4.2.2\r\n\t * @param value Hover enabled?\r\n\t */\r\n\tpublic set cursorHoverEnabled(value: boolean) {\r\n\t\tthis.setPropertyValue(\"cursorHoverEnabled\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hover enabled?\r\n\t */\r\n\tpublic get cursorHoverEnabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"cursorHoverEnabled\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series' values should be excluded when calculating totals.\r\n\t * \r\n\t * @default false\r\n\t * @since 4.4.9\r\n\t * @param value Exclude from totals?\r\n\t */\r\n\tpublic set excludeFromTotal(value: boolean) {\r\n\t\tthis.setPropertyValue(\"excludeFromTotal\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Exclude from totals?\r\n\t */\r\n\tpublic get excludeFromTotal(): boolean {\r\n\t\treturn this.getPropertyValue(\"excludeFromTotal\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series' tooltip should be hidden while series axis range is\r\n\t * animating (zooming).\r\n\t * \r\n\t * @default true\r\n\t * @since 4.7.16\r\n\t * @param value Hide tooltip while zooming?\r\n\t */\r\n\tpublic set hideTooltipWhileZooming(value: boolean) {\r\n\t\tthis.setPropertyValue(\"hideTooltipWhileZooming\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hide tooltip while zooming?\r\n\t */\r\n\tpublic get hideTooltipWhileZooming(): boolean {\r\n\t\treturn this.getPropertyValue(\"hideTooltipWhileZooming\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Indicates if series' bullets should be masked.\r\n\t * \r\n\t * @default true\r\n\t * @since 4.7.17\r\n\t * @param value Mask bullets?\r\n\t */\r\n\tpublic set maskBullets(value: boolean) {\r\n\t\tthis.setPropertyValue(\"maskBullets\", value)\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.bulletsContainer.parent = chart.bulletsContainer;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.bulletsContainer.parent = chart.axisBulletsContainer;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Mask bullets?\r\n\t */\r\n\tpublic get maskBullets(): boolean {\r\n\t\treturn this.getPropertyValue(\"maskBullets\");\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[Series]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tthis.groupFields = $utils.copyProperties(source.groupFields, {});\r\n\t\tsuper.copyFrom(source);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\tif (this.scrollbarSeries) {\r\n\t\t\tthis.scrollbarSeries.dispose();\r\n\t\t}\r\n\t\tsuper.dispose();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYSeries\"] = XYSeries;\r\nregistry.registeredClasses[\"XYSeriesDataItem\"] = XYSeriesDataItem;\r\n","/**\r\n * A module with functionality for buildin a scrollbar with an XY graph in it.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar, IScrollbarProperties, IScrollbarAdapters, IScrollbarEvents } from \"../../core/elements/Scrollbar\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List, IListEvents } from \"../../core/utils/List\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { DesaturateFilter } from \"../../core/rendering/filters/DesaturateFilter\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { color } from \"../../core/utils/Color\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[XYChartScrollbar]].\r\n */\r\nexport interface IXYChartScrollbarProperties extends IScrollbarProperties { }\r\n\r\n/**\r\n * Defines events for [[XYChartScrollbar]].\r\n */\r\nexport interface IXYChartScrollbarEvents extends IScrollbarEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYChartScrollbar]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYChartScrollbarAdapters extends IScrollbarAdapters, IXYChartScrollbarProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A special version of the Scrollbar that has an XY chart in it.\r\n *\r\n * Used mainly as an advanced scrollbar with a preview for other XY charts.\r\n *\r\n * However, can be used as standalone element.\r\n *\r\n * @see {@link IXYChartScrollbarEvents} for a list of available events\r\n * @see {@link IXYChartScrollbarAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class XYChartScrollbar extends Scrollbar {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYChartScrollbarProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYChartScrollbarAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYChartScrollbarEvents;\r\n\r\n\t/**\r\n\t * An [[XYSeries]] used to draw a graph on the Scrollbar.\r\n\t */\r\n\tprotected _series: List<XYSeries>;\r\n\r\n\t/**\r\n\t * A chart element Scrollbar is for.\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<XYChart>();\r\n\r\n\t/**\r\n\t * A chart instance that shows mini-chart within Scrollbar.\r\n\t */\r\n\tprotected _scrollbarChart: XYChart;\r\n\r\n\t/**\r\n\t * [_unselectedOverlay description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _unselectedOverlay: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChartScrollbar\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\t\tthis.padding(0, 0, 0, 0);\r\n\r\n\t\tlet scrollbarChart: XYChart = this.createChild(XYChart);\r\n\t\tscrollbarChart.shouldClone = false;\r\n\t\tscrollbarChart.margin(0, 0, 0, 0);\r\n\t\tscrollbarChart.padding(0, 0, 0, 0);\r\n\t\tscrollbarChart.interactionsEnabled = false;\r\n\r\n\t\tthis._scrollbarChart = scrollbarChart;\r\n\t\tif (!$utils.isIE()) {\r\n\t\t\tlet filter = new DesaturateFilter();\r\n\t\t\tfilter.filterUnits = \"userSpaceOnUse\";\r\n\t\t\tscrollbarChart.plotContainer.filters.push(filter);\r\n\t\t}\r\n\t\tthis._disposers.push(this._scrollbarChart);\r\n\r\n\t\tthis.minHeight = 60;\r\n\t\tthis.minWidth = 60;\r\n\r\n\t\tlet unselectedOverlay: Sprite = this.createChild(Sprite);\r\n\t\tunselectedOverlay.shouldClone = false;\r\n\t\tunselectedOverlay.setElement(this.paper.add(\"path\"));\r\n\t\tunselectedOverlay.fill = interfaceColors.getFor(\"background\");\r\n\t\tunselectedOverlay.fillOpacity = 0.8;\r\n\t\tunselectedOverlay.interactionsEnabled = false;\r\n\t\tunselectedOverlay.isMeasured = false;\r\n\t\tunselectedOverlay.toBack();\r\n\t\tthis._unselectedOverlay = unselectedOverlay;\r\n\t\tthis._disposers.push(this._unselectedOverlay);\r\n\r\n\t\tscrollbarChart.toBack();\r\n\r\n\t\tthis.background.cornerRadius(0, 0, 0, 0);\r\n\r\n\t\tlet thumbBackground = this.thumb.background;\r\n\t\tthumbBackground.cornerRadius(0, 0, 0, 0);\r\n\t\tthumbBackground.fillOpacity = 0;\r\n\t\tthumbBackground.fill = interfaceColors.getFor(\"background\");\r\n\r\n\t\tlet hoverState = thumbBackground.states.getKey(\"hover\");\r\n\t\tif (hoverState) {\r\n\t\t\thoverState.properties.fillOpacity = 0.2;\r\n\t\t}\r\n\r\n\t\tlet downState = thumbBackground.states.getKey(\"down\");\r\n\t\tif (downState) {\r\n\t\t\tdownState.properties.fillOpacity = 0.4;\r\n\t\t}\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of series that are used to draw graph(s) on the scrollbar.\r\n\t *\r\n\t * @readonly\r\n\t * @return Series\r\n\t */\r\n\tpublic get series(): List<XYSeries> {\r\n\t\tif (!this._series) {\r\n\t\t\tthis._series = new List<XYSeries>();\r\n\t\t\tthis._disposers.push(this._series.events.on(\"inserted\", this.handleSeriesAdded, this, false));\r\n\t\t\tthis._disposers.push(this._series.events.on(\"removed\", this.handleSeriesRemoved, this, false));\r\n\t\t}\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a new series when they are pushed into a `series` list.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSeriesAdded(event: IListEvents<XYSeries>[\"inserted\"]) {\r\n\t\tlet sourceSeries: XYSeries = event.newValue;\r\n\t\tif (!sourceSeries.xAxis || !sourceSeries.yAxis) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet scrollbarChart: XYChart = this.scrollbarChart;\r\n\t\tscrollbarChart.zoomOutButton.disabled = true;\r\n\r\n\t\tthis.chart = sourceSeries.chart;\r\n\r\n\t\t// Ensure that scrollbar chart shares the same locale as parent chart\r\n\t\tscrollbarChart.language.locale = this.chart.language.locale;\r\n\r\n\t\tlet addXAxis: boolean = true;\r\n\t\tlet addYAxis: boolean = true;\r\n\r\n\t\t// check if we haven't added clone of x or y axis before\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series != sourceSeries) {\r\n\t\t\t\tif (series.xAxis == sourceSeries.xAxis && this.scrollbarChart.xAxes.length > 0) {\r\n\t\t\t\t\taddXAxis = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (series.yAxis == sourceSeries.yAxis && this.scrollbarChart.yAxes.length > 0) {\r\n\t\t\t\t\taddYAxis = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsourceSeries.events.on(\"beforedisposed\", () => {\r\n\t\t\tthis.series.removeValue(sourceSeries)\r\n\t\t})\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tlet series: XYSeries = <XYSeries>sourceSeries.clone();\r\n\t\tif($utils.isIE()){\r\n\t\t\tseries.stroke = color(\"#aaaaaa\");\r\n\t\t\tseries.fill = series.stroke;\r\n\t\t\tseries.propertyFields.fill = undefined;\r\n\t\t\tseries.propertyFields.stroke = undefined;\r\n\t\t}\r\n\t\tsourceSeries.scrollbarSeries = series;\r\n\r\n\t\tif (addXAxis) {\r\n\r\n\t\t\tlet xAxis = sourceSeries.xAxis.clone();\r\n\t\t\tscrollbarChart.xAxes.moveValue(xAxis);\r\n\t\t\txAxis.title.disabled = true;\r\n\t\t\txAxis.rangeChangeDuration = 0;\r\n\t\t\t//xAxis.id = sourceSeries.uid;\r\n\t\t\tlet renderer = xAxis.renderer;\r\n\t\t\trenderer.ticks.template.disabled = true;\r\n\t\t\trenderer.inside = true;\r\n\t\t\trenderer.labels.template.inside = true;\r\n\t\t\trenderer.line.strokeOpacity = 0;\r\n\t\t\trenderer.minLabelPosition = 0.02;\r\n\t\t\trenderer.maxLabelPosition = 0.98;\r\n\t\t\trenderer.line.disabled = true;\r\n\t\t\trenderer.axisFills.template.disabled = true;\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t\trenderer.grid.template.strokeOpacity = 0.05;\r\n\t\t\trenderer.minWidth = undefined;\r\n\t\t\trenderer.minHeight = undefined;\r\n\t\t\trenderer.padding(0, 0, 0, 0);\r\n\t\t\trenderer.chart = scrollbarChart;\r\n\t\t\trenderer.margin(0, 0, 0, 0);\r\n\r\n\t\t\txAxis.width = percent(100);\r\n\r\n\t\t\tlet labelsTemplate = renderer.labels.template;\r\n\t\t\tlabelsTemplate.fillOpacity = 0.5;\r\n\t\t\txAxis.maxZoomCount = undefined;\r\n\t\t\txAxis.minZoomCount = undefined;\r\n\r\n\t\t\tif (xAxis instanceof DateAxis) {\r\n\t\t\t\tlet vAxis = <DateAxis>xAxis;\r\n\t\t\t\tlet sourceAxis = <DateAxis>sourceSeries.xAxis;\r\n\t\t\t\tvAxis.groupCount = sourceAxis.groupCount * 5;\r\n\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\tvAxis.max = undefined;\r\n\t\t\t\tthis._disposers.push(vAxis.clonedFrom.events.on(\"extremeschanged\", () => {\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\t\tvAxis.min = vAxis.clonedFrom.minDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\t\tvAxis.max = vAxis.clonedFrom.maxDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, false))\r\n\t\t\t}\r\n\t\t\telse if (xAxis instanceof ValueAxis) {\r\n\t\t\t\tlet vAxis = <ValueAxis>xAxis;\r\n\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\tvAxis.max = undefined;\r\n\t\t\t\tif (!$type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\tvAxis.max = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tthis._disposers.push(vAxis.clonedFrom.events.on(\"extremeschanged\", () => {\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\t\tvAxis.min = vAxis.clonedFrom.min;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\t\tvAxis.max = vAxis.clonedFrom.max;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, false))\r\n\t\t\t}\r\n\r\n\r\n\t\t\tseries.xAxis = xAxis;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.scrollbarChart.xAxes.each((xAxis) => {\r\n\t\t\t\tif (xAxis.clonedFrom == sourceSeries.xAxis) {\r\n\t\t\t\t\tseries.xAxis = xAxis;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tif (addYAxis) {\r\n\t\t\tlet yAxis: Axis = <Axis>sourceSeries.yAxis.clone();\r\n\t\t\tscrollbarChart.yAxes.moveValue(yAxis);\r\n\t\t\tyAxis.title.disabled = true;\r\n\t\t\tyAxis.rangeChangeDuration = 0;\r\n\r\n\t\t\tlet renderer = yAxis.renderer;\r\n\t\t\trenderer.ticks.template.disabled = true;\r\n\t\t\trenderer.inside = true;\r\n\t\t\trenderer.labels.template.inside = true;\r\n\t\t\trenderer.line.strokeOpacity = 0;\r\n\t\t\trenderer.minLabelPosition = 0.02;\r\n\t\t\trenderer.maxLabelPosition = 0.98;\r\n\t\t\trenderer.line.disabled = true;\r\n\t\t\trenderer.axisFills.template.disabled = true;\r\n\t\t\trenderer.grid.template.stroke = interfaceColors.getFor(\"background\");\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t\trenderer.grid.template.strokeOpacity = 0.05;\r\n\t\t\trenderer.minWidth = undefined;\r\n\t\t\trenderer.minHeight = undefined;\r\n\t\t\trenderer.chart = scrollbarChart;\r\n\t\t\trenderer.padding(0, 0, 0, 0);\r\n\t\t\trenderer.margin(0, 0, 0, 0);\r\n\t\t\tyAxis.height = percent(100);\r\n\r\n\t\t\tlet labelsTemplate = renderer.labels.template;\r\n\t\t\tlabelsTemplate.fillOpacity = 0.5;\r\n\r\n\t\t\tseries.yAxis = yAxis;\r\n\r\n\t\t\tyAxis.maxZoomCount = undefined;\r\n\t\t\tyAxis.minZoomCount = undefined;\r\n\r\n\t\t\tif (yAxis instanceof DateAxis) {\r\n\t\t\t\tlet vAxis = <ValueAxis>yAxis;\r\n\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\tvAxis.max = undefined;\r\n\t\t\t\tlet sourceAxis = <DateAxis>sourceSeries.yAxis;\r\n\t\t\t\tyAxis.groupCount = sourceAxis.groupCount * 5;\r\n\r\n\t\t\t\tthis._disposers.push(vAxis.clonedFrom.events.on(\"extremeschanged\", () => {\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\t\tvAxis.min = vAxis.clonedFrom.minDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\t\tvAxis.max = vAxis.clonedFrom.maxDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t\telse if (yAxis instanceof ValueAxis) {\r\n\t\t\t\tlet vAxis = <ValueAxis>yAxis;\r\n\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\tvAxis.max = undefined;\r\n\r\n\t\t\t\tif (!$type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\tvAxis.min = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\tvAxis.max = undefined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._disposers.push(vAxis.clonedFrom.events.on(\"extremeschanged\", () => {\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.minDefined)) {\r\n\t\t\t\t\t\tvAxis.min = vAxis.clonedFrom.minDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.isNumber(vAxis.clonedFrom.maxDefined)) {\r\n\t\t\t\t\t\tvAxis.max = vAxis.clonedFrom.maxDefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.scrollbarChart.yAxes.each((yAxis) => {\r\n\t\t\t\tif (yAxis.clonedFrom == sourceSeries.yAxis) {\r\n\t\t\t\t\tseries.yAxis = yAxis;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tseries.rangeChangeDuration = 0;\r\n\t\tseries.interpolationDuration = 0;\r\n\t\tseries.defaultState.transitionDuration = 0;\r\n\t\tseries.showOnInit = false;\r\n\r\n\t\tthis._disposers.push(series.events.on(\"validated\", this.zoomOutAxes, this, false));\r\n\r\n\t\t// data might be set drectly on series\r\n\t\tthis._disposers.push(sourceSeries.events.on(\"datavalidated\", () => {\r\n\t\t\tif (series.data != sourceSeries.data) { // data setter doesn't check this\r\n\t\t\t\tseries.data = sourceSeries.data;\r\n\t\t\t}\r\n\t\t}, undefined, false));\r\n\t\tseries.defaultState.properties.visible = true;\r\n\r\n\t\tscrollbarChart.series.push(series);\r\n\r\n\t\tthis.updateByOrientation();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected updateByOrientation() {\r\n\t\tif (this._scrollbarChart) {\r\n\t\t\t$iter.each(this._scrollbarChart.xAxes.iterator(), (xAxis) => {\r\n\t\t\t\tlet renderer = xAxis.renderer;\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\trenderer.grid.template.disabled = true;\r\n\t\t\t\t\trenderer.labels.template.disabled = true;\r\n\t\t\t\t\trenderer.minGridDistance = 10;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trenderer.grid.template.disabled = false;\r\n\t\t\t\t\trenderer.labels.template.disabled = false;\r\n\t\t\t\t\trenderer.minGridDistance = xAxis.clonedFrom.renderer.minGridDistance;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t$iter.each(this._scrollbarChart.yAxes.iterator(), (yAxis) => {\r\n\t\t\t\tlet renderer = yAxis.renderer;\r\n\t\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\t\trenderer.grid.template.disabled = true;\r\n\t\t\t\t\trenderer.labels.template.disabled = true;\r\n\t\t\t\t\trenderer.minGridDistance = 10;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trenderer.grid.template.disabled = false;\r\n\t\t\t\t\trenderer.labels.template.disabled = false;\r\n\t\t\t\t\trenderer.minGridDistance = yAxis.clonedFrom.renderer.minGridDistance;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Cleans up after series are removed from Scrollbar.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSeriesRemoved(event: IListEvents<XYSeries>[\"removed\"]) {\r\n\t\tlet sourceSeries: XYSeries = event.oldValue;\r\n\t\tlet scrollbarChart = this.scrollbarChart;\r\n\r\n\t\tscrollbarChart.series.each((series) => {\r\n\t\t\tif (series && series.clonedFrom == sourceSeries) {\r\n\t\t\t\tscrollbarChart.series.removeValue(series);\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (scrollbarChart.series.length == 0) {\r\n\t\t\tscrollbarChart.xAxes.clear();\r\n\t\t\tscrollbarChart.yAxes.clear();\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tsourceSeries.events.off(\"validated\", this.zoomOutAxes, this);\r\n\t\t}\r\n\t\tcatch (err) {\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A chart element that is used to display graphs in the Scrollbar.\r\n\t *\r\n\t * This is not the same as `chart`. It's a totally independent instance of\r\n\t * [[XYChart]] with separate config, series, etc.\r\n\t *\r\n\t * It can be configured just like any other [[XYChart]].\r\n\t *\r\n\t * @readonly\r\n\t * @return Scrollbar's internal chart\r\n\t */\r\n\tpublic get scrollbarChart(): XYChart {\r\n\t\treturn this._scrollbarChart;\r\n\t}\r\n\r\n\t/**\r\n\t * A chart that Scrollbar belongs to.\r\n\t *\r\n\t * @param chart Chart\r\n\t */\r\n\tpublic set chart(chart: XYChart) {\r\n\t\tif (this._chart.get() !== chart) {\r\n\t\t\tthis._chart.set(chart, chart.events.on(\"datavalidated\", this.handleDataChanged, this, false));\r\n\t\t\tthis.handleDataChanged();\r\n\t\t\tthis._scrollbarChart.dataProvider = chart; // this makes scrollbar chart do not validate data untill charts' data is validated\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): XYChart {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Sprite]] object representing overlay that is used to dim area of the\r\n\t * scrollbar that is currently not selected.\r\n\t *\r\n\t * Use its `fillOpacity` to set opacity of the fill, with `0` (zero)\r\n\t * completely disabling the dimming, and `1` making unselected area completely\r\n\t * blank.\r\n\t *\r\n\t * @since 4.6.1\r\n\t * @readonly\r\n\t * @return Unselected area curtain element\r\n\t */\r\n\tpublic get unselectedOverlay(): Sprite {\r\n\t\treturn this._unselectedOverlay;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Scrollbar's internal chart's data when the main chart's data\r\n\t * changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataChanged() {\r\n\t\tif (this.chart.data != this.scrollbarChart.data) {\r\n\t\t\tthis.scrollbarChart.data = this.chart.data;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// add data is handled in XYChart\r\n\t\t\t// invalidating all data caused the problem: https://github.com/amcharts/amcharts4/issues/2096\r\n\t\t\tthis.scrollbarChart.invalidateRawData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms out all axes on the internal chart.\r\n\t */\r\n\tprotected zoomOutAxes() {\r\n\t\tlet scrollbarChart: XYChart = this.scrollbarChart;\r\n\t\t$iter.each(scrollbarChart.xAxes.iterator(), (x) => {\r\n\t\t\tx.zoom({ start: 0, end: 1 }, true, true);\r\n\t\t});\r\n\t\t$iter.each(scrollbarChart.yAxes.iterator(), (y) => {\r\n\t\t\ty.zoom({ start: 0, end: 1 }, true, true);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Updates scrollbar thumb.\r\n\t */\r\n\tprotected updateThumb() {\r\n\t\tsuper.updateThumb();\r\n\t\tif (this._unselectedOverlay) {\r\n\t\t\tlet thumb = this.thumb;\r\n\t\t\tlet x: number = thumb.pixelX || 0;\r\n\t\t\tlet y: number = thumb.pixelY || 0;\r\n\t\t\tlet w: number = thumb.pixelWidth || 0;\r\n\t\t\tlet h: number = thumb.pixelHeight || 0;\r\n\r\n\t\t\tlet path: string = \"\";\r\n\r\n\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\tpath = $path.rectToPath({\r\n\t\t\t\t\tx: -1,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: x,\r\n\t\t\t\t\theight: h\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpath += $path.rectToPath({\r\n\t\t\t\t\tx: x + w,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: (this.pixelWidth || 0) - x - w,\r\n\t\t\t\t\theight: h\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpath = $path.rectToPath({\r\n\t\t\t\t\tx: 0,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: y\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpath += $path.rectToPath({\r\n\t\t\t\t\tx: 0,\r\n\t\t\t\t\ty: y + h,\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: (this.pixelHeight || 0) - y - h\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._unselectedOverlay.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tlet series = config.series[i];\r\n\t\t\t\t\tif ($type.hasValue(series) && $type.isString(series)) {\r\n\t\t\t\t\t\tif (this.map.hasKey(series)) {\r\n\t\t\t\t\t\t\tconfig.series[i] = this.map.getKey(series);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthrow Error(\"XYChartScrollbar error: Series with id `\" + series + \"` does not exist.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChartScrollbar\"] = XYChartScrollbar;\r\n","/**\r\n * XY Chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SerialChart, ISerialChartProperties, ISerialChartDataFields, ISerialChartAdapters, ISerialChartEvents, SerialChartDataItem } from \"./SerialChart\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { List, IListEvents, ListDisposer } from \"../../core/utils/List\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { Optional } from \"../../core/utils/Type\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { AxisRendererX } from \"../axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../axes/AxisRendererY\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { Scrollbar, IScrollbarEvents } from \"../../core/elements/Scrollbar\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\nimport { XYCursor, IXYCursorEvents } from \"../cursors/XYCursor\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { IDisposer, Disposer } from \"../../core/utils/Disposer\";\r\nimport { Button } from \"../../core/elements/Button\";\r\nimport { ZoomOutButton } from \"../../core/elements/ZoomOutButton\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Ordering } from \"../../core/utils/Order\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { XYChartScrollbar } from \"../elements/XYChartScrollbar\";\r\n\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $number from \"../../core/utils/Number\";\r\n\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[XYChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class XYChartDataItem extends SerialChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: XYChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYChart]].\r\n */\r\nexport interface IXYChartDataFields extends ISerialChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[XYChart]].\r\n */\r\nexport interface IXYChartProperties extends ISerialChartProperties {\r\n\r\n\t/**\r\n\t * A container that is used as a maske for bullets so that they can't\r\n\t * \"spill\" outside of the plot area.\r\n\t */\r\n\tmaskBullets?: boolean;\r\n\r\n\t/**\r\n\t * Specifies what should chart do if when mouse wheel is rotated.\r\n\t *\r\n\t * @default \"none\"\r\n\t */\r\n\tmouseWheelBehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\";\r\n\r\n\t/**\r\n\t * Specifies what should chart do if when horizontal mouse wheel is rotated.\r\n\t *\r\n\t * @default \"none\"\r\n\t */\r\n\thorizontalMouseWheelBehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\";\r\n\r\n\t/**\r\n\t * Specifies if chart should arrange series tooltips so that they won't\r\n\t * overlap.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tarrangeTooltips?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYChart]].\r\n */\r\nexport interface IXYChartEvents extends ISerialChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYChartAdapters extends ISerialChartAdapters, IXYChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates an XY chart, and any derivative chart, like Serial, Date-based, etc.\r\n *\r\n * Basically this is a chart type, that is used to display any chart\r\n * information in a square plot area.\r\n *\r\n * The horizontal and vertical scale is determined by the type of Axis.\r\n *\r\n * The plot types are determined by type of Series.\r\n *\r\n * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * let series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"XYChart\");\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * var series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Category axis\r\n * \t\"xAxes\": [{\r\n * \t\t\"type\": \"CategoryAxis\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Value axis\r\n * \t\"yAxes\": [{\r\n * \t\t\"type\": \"ValueAxis\"\r\n * \t}],\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"ColumnSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"categoryX\": \"country\",\r\n * \t\t\t\"valueY\": \"visits\"\r\n * \t\t},\r\n * \t\t\"name\": \"Web Traffic\"\r\n * \t}],\r\n *\r\n * \t// Cursor\r\n * \t\"cursor\": {},\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"USA\",\r\n * \t\t\"visits\": 3025\r\n * \t}, {\r\n * \t\t\"country\": \"China\",\r\n * \t\t\"visits\": 1882\r\n * \t}, {\r\n * \t\t\"country\": \"Japan\",\r\n * \t\t\"visits\": 1809\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"XYChart\");\r\n * ```\r\n *\r\n *\r\n * @see {@link IXYChartEvents} for a list of available Events\r\n * @see {@link IXYChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/} for documentation\r\n * @important\r\n */\r\nexport class XYChart extends SerialChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IXYChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: XYSeries;\r\n\r\n\t/**\r\n\t * A list of horizontal axes.\r\n\t */\r\n\tprotected _xAxes: List<Axis<this[\"_xAxisRendererType\"]>>;\r\n\r\n\t/**\r\n\t * A list of vertical axes.\r\n\t */\r\n\tprotected _yAxes: List<Axis<this[\"_yAxisRendererType\"]>>;\r\n\r\n\t/**\r\n\t * A container that holds vertical axes and plot area.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic yAxesAndPlotContainer: Container\r\n\r\n\t/**\r\n\t * A container that holds top axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic topAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds bottom axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic bottomAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds left axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic leftAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds right axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic rightAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container for plot area.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic plotContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to horizontal [[Scrollbar]].\r\n\t */\r\n\tprotected _scrollbarX: Scrollbar;\r\n\r\n\t/**\r\n\t * A reference to vertical [[Scrollbar]].\r\n\t */\r\n\tprotected _scrollbarY: Scrollbar;\r\n\r\n\t/**\r\n\t * A reference to chart's cursor.\r\n\t */\r\n\tpublic _cursor: XYCursor;\r\n\r\n\t/**\r\n\t * A container that chart's cursor is placed in.\r\n\t */\r\n\tprotected _cursorContainer: Container;\r\n\r\n\t/**\r\n\t * Defines the type of horizontal axis rederer.\r\n\t */\r\n\tprotected _axisRendererX: typeof AxisRendererX = AxisRendererX;\r\n\r\n\t/**\r\n\t * Defines the type of vertical axis rederer.\r\n\t */\r\n\tprotected _axisRendererY: typeof AxisRendererY = AxisRendererY;\r\n\r\n\t/**\r\n\t * Defines the type horizontal axis renderer.\r\n\t */\r\n\tpublic _xAxisRendererType: AxisRendererX;\r\n\r\n\t/**\r\n\t * Defines the type of vertical axis renderer.\r\n\t */\r\n\tpublic _yAxisRendererType: AxisRendererY;\r\n\r\n\t/**\r\n\t * A button which is used to zoom out the chart.\r\n\t */\r\n\tprotected _zoomOutButton: Button;\r\n\r\n\t/**\r\n\t * An element that is used as a mask to contain bullets from spilling out of\r\n\t * the plot area.\r\n\t */\r\n\tprotected _bulletMask: Sprite;\r\n\r\n\r\n\tprotected _panStartXRange: IRange;\r\n\r\n\tprotected _panStartYRange: IRange;\r\n\r\n\tprotected _panEndXRange: IRange;\r\n\r\n\tprotected _panEndYRange: IRange;\r\n\r\n\tprotected _mouseWheelDisposer: IDisposer;\r\n\r\n\tprotected _mouseWheelDisposer2: IDisposer;\r\n\r\n\tprotected _cursorXPosition: number;\r\n\r\n\tprotected _cursorYPosition: number;\r\n\r\n\t/**\r\n\t * Holds a reference to the container axis bullets are drawn in.\r\n\t */\r\n\tpublic axisBulletsContainer: Container;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _seriesPoints: { point: IPoint, series: XYSeries }[] = [];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"XYChart\";\r\n\r\n\t\t// Set defaults\r\n\t\t//this.margin(10, 10, 10, 10);\r\n\t\tthis.maskBullets = true;\r\n\t\tthis.arrangeTooltips = true;\r\n\r\n\t\t// Create main chart container\r\n\t\tlet chartContainer = this.chartContainer;\r\n\t\tchartContainer.layout = \"vertical\";\r\n\t\tthis.padding(15, 15, 15, 15);\r\n\r\n\t\t// Create top axes container\r\n\t\tlet topAxesCont = chartContainer.createChild(Container);\r\n\t\ttopAxesCont.shouldClone = false;\r\n\t\ttopAxesCont.layout = \"vertical\";\r\n\t\ttopAxesCont.width = percent(100);\r\n\t\ttopAxesCont.zIndex = 1;\r\n\t\tthis.topAxesContainer = topAxesCont;\r\n\r\n\t\t// Create vertical axes and plot area container\r\n\t\t// Plot area and vertical axes share the whole width of the chart,\r\n\t\t// so we need to put then into a separate container so that layouting\r\n\t\t// engine takes care of the positioning\r\n\t\tlet yAxesAndPlotCont = chartContainer.createChild(Container);\r\n\t\tyAxesAndPlotCont.shouldClone = false;\r\n\t\tyAxesAndPlotCont.layout = \"horizontal\";\r\n\t\tyAxesAndPlotCont.width = percent(100);\r\n\t\tyAxesAndPlotCont.height = percent(100);\r\n\t\tyAxesAndPlotCont.zIndex = 0;\r\n\t\tthis.yAxesAndPlotContainer = yAxesAndPlotCont;\r\n\r\n\t\t// Create a container for bottom axes\r\n\t\tlet bottomAxesCont = chartContainer.createChild(Container);\r\n\t\tbottomAxesCont.shouldClone = false;\r\n\t\tbottomAxesCont.width = percent(100);\r\n\t\tbottomAxesCont.layout = \"vertical\";\r\n\t\tbottomAxesCont.zIndex = 1;\r\n\t\tthis.bottomAxesContainer = bottomAxesCont;\r\n\r\n\t\t// Create a container for left-side axes\r\n\t\tlet leftAxesCont = yAxesAndPlotCont.createChild(Container);\r\n\t\tleftAxesCont.shouldClone = false;\r\n\t\tleftAxesCont.layout = \"horizontal\";\r\n\t\tleftAxesCont.height = percent(100);\r\n\t\tleftAxesCont.contentAlign = \"right\";\r\n\t\tleftAxesCont.events.on(\"transformed\", this.updateXAxesMargins, this, false);\r\n\t\tleftAxesCont.zIndex = 1;\r\n\t\tthis.leftAxesContainer = leftAxesCont;\r\n\r\n\t\t// Create a container for plot area\r\n\t\tlet plotCont = yAxesAndPlotCont.createChild(Container);\r\n\t\tplotCont.shouldClone = false;\r\n\t\tplotCont.height = percent(100);\r\n\t\tplotCont.width = percent(100);\r\n\t\t// Create transparend background for plot container so that hover works\r\n\t\t// on all of it\r\n\t\tplotCont.background.fillOpacity = 0;\r\n\t\tthis.plotContainer = plotCont;\r\n\r\n\t\t// must go below plot container\r\n\t\tthis.mouseWheelBehavior = \"none\";\r\n\r\n\t\tthis._cursorContainer = plotCont;\r\n\r\n\t\t// Create a container for right-side axes\r\n\t\tlet rightAxesCont = yAxesAndPlotCont.createChild(Container);\r\n\t\trightAxesCont.shouldClone = false;\r\n\t\trightAxesCont.layout = \"horizontal\";\r\n\t\trightAxesCont.height = percent(100);\r\n\t\trightAxesCont.zIndex = 1;\r\n\t\trightAxesCont.events.on(\"transformed\", this.updateXAxesMargins, this, false);\r\n\t\tthis.rightAxesContainer = rightAxesCont;\r\n\r\n\t\tthis.seriesContainer.parent = plotCont;\r\n\t\tthis.bulletsContainer.parent = plotCont;\r\n\r\n\t\tlet zoomOutButton = plotCont.createChild(ZoomOutButton);\r\n\t\tzoomOutButton.shouldClone = false;\r\n\t\tzoomOutButton.align = \"right\";\r\n\t\tzoomOutButton.valign = \"top\";\r\n\t\tzoomOutButton.zIndex = Number.MAX_SAFE_INTEGER;\r\n\t\tzoomOutButton.marginTop = 5;\r\n\t\tzoomOutButton.marginRight = 5;\r\n\r\n\t\tzoomOutButton.hide(0);\r\n\t\tthis.zoomOutButton = zoomOutButton;\r\n\r\n\t\t// Create a container for bullets\r\n\t\tlet axisBulletsContainer: Container = this.plotContainer.createChild(Container);\r\n\t\taxisBulletsContainer.shouldClone = false;\r\n\t\taxisBulletsContainer.width = percent(100);\r\n\t\taxisBulletsContainer.height = percent(100);\r\n\t\taxisBulletsContainer.isMeasured = false;\r\n\t\taxisBulletsContainer.zIndex = 4;\r\n\t\taxisBulletsContainer.layout = \"none\";\r\n\t\tthis.axisBulletsContainer = axisBulletsContainer;\r\n\r\n\t\tthis._bulletMask = this.plotContainer;\r\n\r\n\t\tthis.events.on(\"beforedatavalidated\", () => {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tseries.dataGrouped = false;\r\n\t\t\t\tseries._baseInterval = {};\r\n\t\t\t})\r\n\t\t}, this, false);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tthis.zoomOutButton.exportable = false;\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"X/Y chart\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tthis.seriesContainer.toFront();\r\n\t\tthis.bulletsContainer.toFront();\r\n\r\n\t\tif (this.maskBullets) {\r\n\t\t\tthis.bulletsContainer.mask = this._bulletMask;\r\n\t\t}\r\n\r\n\t\tthis.updateSeriesLegend();\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers a redrawing of all chart's series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updatePlotElements(): void {\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers data (re)validation which in turn can cause a redraw of the\r\n\t * whole chart or just aprticular series / elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\r\n\t\t// tell axes that data changed\r\n\t\tif (this._parseDataFrom == 0) {\r\n\t\t\t$iter.each(this.xAxes.iterator(), (axis) => {\r\n\t\t\t\taxis.dataChangeUpdate();\r\n\t\t\t});\r\n\r\n\t\t\t$iter.each(this.yAxes.iterator(), (axis) => {\r\n\t\t\t\taxis.dataChangeUpdate();\r\n\t\t\t});\r\n\r\n\t\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\t\tseries.dataChangeUpdate();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tsuper.validateData();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates margins for horizontal axes based on settings and available space.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateXAxesMargins(): void {\r\n\r\n\t\tlet leftAxesWidth = this.leftAxesContainer.measuredWidth;\r\n\t\tlet rightAxesWidth = this.rightAxesContainer.measuredWidth;\r\n\t\tlet bottomAxesCont = this.bottomAxesContainer;\r\n\r\n\t\tif (bottomAxesCont.paddingLeft != leftAxesWidth || bottomAxesCont.paddingRight != rightAxesWidth) {\r\n\t\t\tbottomAxesCont.paddingLeft = leftAxesWidth;\r\n\t\t\tbottomAxesCont.paddingRight = rightAxesWidth;\r\n\t\t}\r\n\r\n\t\tlet topAxesCont = this.topAxesContainer;\r\n\r\n\t\tif (topAxesCont.paddingLeft != leftAxesWidth || topAxesCont.paddingRight != rightAxesWidth) {\r\n\t\t\ttopAxesCont.paddingLeft = leftAxesWidth;\r\n\t\t\ttopAxesCont.paddingRight = rightAxesWidth;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers a re-initialization of this element.\r\n\t *\r\n\t * Will result in complete redrawing of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic reinit(): void {\r\n\t\tsuper.reinit();\r\n\r\n\t\tthis.series.each((series) => {\r\n\t\t\tseries.appeared = false;\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers an update on the horizontal axis when one of its properties\r\n\t * change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event An event object\r\n\t */\r\n\tpublic handleXAxisChange(event: AMEvent<AxisRenderer, ISpriteEvents>[\"propertychanged\"]) {\r\n\t\tthis.updateXAxis(event.target);\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers an update on the vertical axis when one of its properties\r\n\t * change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event An event object\r\n\t */\r\n\tpublic handleYAxisChange(event: AMEvent<AxisRenderer, ISpriteEvents>[\"propertychanged\"]) {\r\n\t\tthis.updateYAxis(event.target);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up a new horizontal (X) axis when it is added to the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Axis insert event\r\n\t */\r\n\tpublic processXAxis(event: IListEvents<Axis>[\"inserted\"]): void {\r\n\r\n\t\tlet axis: Axis = event.newValue;\r\n\t\taxis.chart = this;\r\n\r\n\t\tif (!axis.renderer) {\r\n\t\t\taxis.renderer = new this._axisRendererX();\r\n\t\t\taxis.renderer.observe([\"opposite\", \"inside\", \"inversed\", \"minGridDistance\"], this.handleXAxisChange, this, false);\r\n\t\t}\r\n\t\taxis.axisLetter = \"X\";\r\n\r\n\t\taxis.events.on(\"startendchanged\", this.handleXAxisRangeChange, this, false);\r\n\t\t//axis.events.on(\"endchanged\", this.handleXAxisRangeChange, this, false);\r\n\r\n\t\t// Although axis does not use data directly, we set dataProvider here\r\n\t\t// (but not add to chart data users) to hold up rendering before data\r\n\t\t// is parsed (system handles this)\r\n\t\taxis.dataProvider = this;\r\n\r\n\t\tthis.updateXAxis(axis.renderer);\r\n\t\tthis.processAxis(axis);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up a new vertical (Y) axis when it is added to the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Axis insert event\r\n\t */\r\n\tpublic processYAxis(event: IListEvents<Axis>[\"inserted\"]): void {\r\n\r\n\t\tlet axis: Axis = event.newValue;\r\n\t\taxis.chart = this;\r\n\t\tif (!axis.renderer) {\r\n\t\t\taxis.renderer = new this._axisRendererY();\r\n\t\t\taxis.renderer.observe([\"opposite\", \"inside\", \"inversed\", \"minGridDistance\"], this.handleYAxisChange, this, false);\r\n\t\t}\r\n\t\taxis.axisLetter = \"Y\";\r\n\r\n\t\taxis.events.on(\"startendchanged\", this.handleYAxisRangeChange, this, false);\r\n\t\t//axis.events.on(\"endchanged\", this.handleYAxisRangeChange, this, false);\r\n\r\n\t\t// Although axis does not use data directly, we set dataProvider here\r\n\t\t// (but not add to chart data users) to hold up rendering before data\r\n\t\t// is parsed (system handles this)\r\n\t\taxis.dataProvider = this;\r\n\r\n\t\tthis.updateYAxis(axis.renderer);\r\n\t\tthis.processAxis(axis);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates horizontal (X) scrollbar and other horizontal axis whenever axis'\r\n\t * value range changes.\r\n\t */\r\n\tprotected handleXAxisRangeChange() {\r\n\t\tlet range: IRange = this.getCommonAxisRange(this.xAxes);\r\n\t\tif (this.scrollbarX) {\r\n\t\t\tthis.zoomAxes(this.xAxes, range, true);\r\n\t\t}\r\n\t\tthis.toggleZoomOutButton();\r\n\t\tthis.updateScrollbar(this.scrollbarX, range);\r\n\t}\r\n\r\n\t/**\r\n\t * Shows or hides the Zoom Out button depending on whether the chart is fully\r\n\t * zoomed out or not.\r\n\t */\r\n\tpublic toggleZoomOutButton() {\r\n\t\tif (this.zoomOutButton) {\r\n\t\t\tlet show = false;\r\n\r\n\t\t\t$iter.eachContinue(this.xAxes.iterator(), (axis): boolean => {\r\n\t\t\t\tif (axis.toggleZoomOutButton) {\r\n\t\t\t\t\tif (axis.maxZoomCount > 0) {\r\n\t\t\t\t\t\tlet minZoomFactor: number = axis.maxZoomFactor / axis.maxZoomCount;\r\n\t\t\t\t\t\tif ($math.round(axis.end - axis.start, 3) < 1 / minZoomFactor) {\r\n\t\t\t\t\t\t\tshow = true;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif ($math.round(axis.start, 3) > 0 || $math.round(axis.end, 3) < 1) {\r\n\t\t\t\t\t\t\tshow = true;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t\t$iter.eachContinue(this.yAxes.iterator(), (axis): boolean => {\r\n\t\t\t\tif (axis.toggleZoomOutButton) {\r\n\t\t\t\t\tif (axis.maxZoomCount > 0) {\r\n\t\t\t\t\t\tlet minZoomFactor: number = axis.maxZoomFactor / axis.maxZoomCount;\r\n\t\t\t\t\t\tif ($math.round(axis.end - axis.start, 3) < 1 / minZoomFactor) {\r\n\t\t\t\t\t\t\tshow = true;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif ($math.round(axis.start, 3) > 0 || $math.round(axis.end, 3) < 1) {\r\n\t\t\t\t\t\t\tshow = true;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (!this.seriesAppeared) {\r\n\t\t\t\tshow = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (show) {\r\n\t\t\t\tthis.zoomOutButton.show();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.zoomOutButton.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * moved this check to a separate method so that we could override it in TreeMapSeries\r\n\t */\r\n\tprotected seriesAppeared(): boolean {\r\n\t\tlet appeared: boolean = false;\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (!series.appeared) {\r\n\t\t\t\tappeared = false;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn appeared;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates vertical (Y) scrollbar and other horizontal axis whenever axis'\r\n\t * value range changes.\r\n\t */\r\n\tprotected handleYAxisRangeChange() {\r\n\t\tlet range: IRange = this.getCommonAxisRange(this.yAxes);\r\n\r\n\t\tif (this.scrollbarY) {\r\n\t\t\tthis.zoomAxes(this.yAxes, range, true);\r\n\t\t}\r\n\t\tthis.toggleZoomOutButton();\r\n\t\tthis.updateScrollbar(this.scrollbarY, range);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a relative scrollbar whenever data range of the axis changes.\r\n\t *\r\n\t * @param scrollbar Scrollbar instance\r\n\t * @param range New data (values) range of the axis\r\n\t */\r\n\tprotected updateScrollbar(scrollbar: Scrollbar, range: IRange): void {\r\n\t\tif (scrollbar) {\r\n\t\t\tscrollbar.skipRangeEvents();\r\n\t\t\tscrollbar.start = range.start;\r\n\t\t\tscrollbar.end = range.end;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a common range of values between a list of axes.\r\n\t *\r\n\t * This is used to synchronize the zoom between multiple axes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axes A list of axes\r\n\t * @return Common value range\r\n\t */\r\n\tpublic getCommonAxisRange(axes: List<Axis>): IRange {\r\n\t\tlet start: Optional<number>;\r\n\t\tlet end: Optional<number>;\r\n\r\n\t\taxes.each((axis) => {\r\n\t\t\tif (axis instanceof ValueAxis && axis.syncWithAxis) {\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet axisStart = axis.start;\r\n\t\t\t\tlet axisEnd = axis.end;\r\n\r\n\t\t\t\tif (axis.renderer.inversed) {\r\n\t\t\t\t\taxisStart = 1 - axis.end;\r\n\t\t\t\t\taxisEnd = 1 - axis.start;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$type.isNumber(start) || (axisStart < start)) {\r\n\t\t\t\t\tstart = axisStart;\r\n\t\t\t\t}\r\n\t\t\t\tif (!$type.isNumber(end) || (axisEnd > end)) {\r\n\t\t\t\t\tend = axisEnd;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn { start: start, end: end };\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers (re)rendering of the horizontal (X) axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic updateXAxis(renderer: AxisRenderer) {\r\n\t\tlet axis = renderer.axis;\r\n\t\tif (renderer.opposite) {\r\n\t\t\taxis.parent = this.topAxesContainer;\r\n\t\t\taxis.toFront();\r\n\t\t}\r\n\t\telse {\r\n\t\t\taxis.parent = this.bottomAxesContainer;\r\n\t\t\taxis.toBack();\r\n\t\t}\r\n\t\tif (axis.renderer) {\r\n\t\t\taxis.renderer.processRenderer();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers (re)rendering of the vertical (Y) axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic updateYAxis(renderer: AxisRenderer) {\r\n\t\tlet axis = renderer.axis;\r\n\t\tif (renderer.opposite) {\r\n\t\t\taxis.parent = this.rightAxesContainer;\r\n\t\t\taxis.toBack();\r\n\t\t}\r\n\t\telse {\r\n\t\t\taxis.parent = this.leftAxesContainer;\r\n\t\t\taxis.toFront();\r\n\t\t}\r\n\t\tif (axis.renderer) {\r\n\t\t\taxis.renderer.processRenderer();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates an Axis for use with this chart, e.g. sets proper renderer\r\n\t * and containers for placement.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected processAxis(axis: Axis): void {\r\n\t\t// Value axis does not use data directly, only category axis does\r\n\t\tif (axis instanceof CategoryAxis) {\r\n\t\t\tthis._dataUsers.moveValue(axis);\r\n\t\t}\r\n\r\n\t\tlet renderer: AxisRenderer = axis.renderer;\r\n\r\n\t\trenderer.gridContainer.parent = this.plotContainer;\r\n\t\trenderer.gridContainer.toBack();\r\n\r\n\t\trenderer.breakContainer.parent = this.plotContainer;\r\n\t\trenderer.breakContainer.toFront();\r\n\t\trenderer.breakContainer.zIndex = 10;\r\n\r\n\t\taxis.addDisposer(new Disposer(() => {\r\n\t\t\tthis.dataUsers.removeValue(axis);\r\n\t\t}))\r\n\r\n\t\trenderer.bulletsContainer.parent = this.axisBulletsContainer;\r\n\r\n\t\tthis._disposers.push(axis.events.on(\"positionchanged\", () => {\r\n\t\t\tlet point = $utils.spritePointToSprite({ x: 0, y: 0 }, axis, this.axisBulletsContainer);\r\n\t\t\tif (axis.renderer instanceof AxisRendererY) {\r\n\t\t\t\trenderer.bulletsContainer.y = point.y;\r\n\t\t\t}\r\n\t\t\tif (axis.renderer instanceof AxisRendererX) {\r\n\t\t\t\trenderer.bulletsContainer.x = point.x;\r\n\t\t\t}\r\n\t\t}, undefined, false));\r\n\r\n\t\tthis.plotContainer.events.on(\"maxsizechanged\", () => {\r\n\t\t\tif (this.inited) {\r\n\t\t\t\taxis.invalidateDataItems();\r\n\t\t\t\tthis.updateSeriesMasks();\r\n\t\t\t}\r\n\t\t}, axis, false);\r\n\t}\r\n\r\n\t/**\r\n\t * This is done because for some reason IE doesn't change mask if path of a\r\n\t * mask changes.\r\n\t */\r\n\tprotected updateSeriesMasks(): void {\r\n\t\tif ($utils.isIE()) {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tlet mask = series.mainContainer.mask;\r\n\t\t\t\tseries.mainContainer.mask = undefined;\r\n\t\t\t\tseries.mainContainer.mask = mask;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleSeriesRemoved(event: IListEvents<XYSeries>[\"removed\"]) {\r\n\t\tlet series = event.oldValue;\r\n\r\n\t\tif (series) {\r\n\t\t\tif (series.xAxis) {\r\n\t\t\t\tseries.xAxis.series.removeValue(series);\r\n\t\t\t\tseries.xAxis.invalidateProcessedData();\r\n\t\t\t}\r\n\t\t\tif (series.yAxis) {\r\n\t\t\t\tseries.yAxis.series.removeValue(series);\r\n\t\t\t\tseries.yAxis.invalidateProcessedData();\r\n\t\t\t}\r\n\t\t\t// otherwise extremes won't change\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tseries.resetExtremes();\r\n\t\t\t})\r\n\t\t}\r\n\t\tsuper.handleSeriesRemoved(event);\r\n\t}\r\n\r\n\t/**\r\n\t * A list of horizontal (X) axes.\r\n\t *\r\n\t * @return List of axes\r\n\t */\r\n\tpublic get xAxes(): List<Axis<this[\"_xAxisRendererType\"]>> {\r\n\t\tif (!this._xAxes) {\r\n\t\t\tthis._xAxes = new List<Axis<this[\"_xAxisRendererType\"]>>();\r\n\t\t\tthis._xAxes.events.on(\"inserted\", this.processXAxis, this, false);\r\n\t\t\tthis._xAxes.events.on(\"removed\", this.handleAxisRemoval, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._xAxes, false));\r\n\t\t}\r\n\r\n\t\treturn this._xAxes;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic handleAxisRemoval(event: IListEvents<Axis>[\"removed\"]) {\r\n\t\tlet axis = event.oldValue;\r\n\t\tthis.dataUsers.removeValue(axis); // need to remove, as it might not be disposed\r\n\t\tif (axis.autoDispose) {\r\n\t\t\taxis.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A list of vertical (Y) axes.\r\n\t *\r\n\t * @return List of axes\r\n\t */\r\n\tpublic get yAxes(): List<Axis<this[\"_yAxisRendererType\"]>> {\r\n\t\tif (!this._yAxes) {\r\n\t\t\tthis._yAxes = new List<Axis<this[\"_yAxisRendererType\"]>>();\r\n\t\t\tthis._yAxes.events.on(\"inserted\", this.processYAxis, this, false);\r\n\t\t\tthis._yAxes.events.on(\"removed\", this.handleAxisRemoval, this, false);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._yAxes, false));\r\n\t\t}\r\n\r\n\t\treturn this._yAxes;\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a new [[XYSeries]] object with required parameters when it is\r\n\t * added to the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic handleSeriesAdded(event: IListEvents<XYSeries>[\"inserted\"]): void {\r\n\t\ttry {\r\n\t\t\tsuper.handleSeriesAdded(event);\r\n\t\t\tlet series: XYSeries = event.newValue;\r\n\r\n\t\t\tif (this.xAxes.length == 0 || this.yAxes.length == 0) {\r\n\t\t\t\tregistry.removeFromInvalidComponents(series);\r\n\t\t\t\tseries.dataInvalid = false;\r\n\t\t\t}\r\n\r\n\t\t\t$utils.used(series.xAxis); // this is enough to get axis, handled in getter\r\n\t\t\t$utils.used(series.yAxis); // this is enough to get axis, handled in getter\r\n\r\n\t\t\tseries.maskBullets = series.maskBullets;\r\n\r\n\t\t\tif (series.fill == undefined) {\r\n\t\t\t\tif (this.patterns) {\r\n\t\t\t\t\tif (!$type.hasValue(series.stroke)) {\r\n\t\t\t\t\t\tseries.stroke = this.colors.next();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tseries.fill = this.patterns.next();\r\n\t\t\t\t\tif ($type.hasValue(series.fillOpacity)) {\r\n\t\t\t\t\t\tseries.fill.backgroundOpacity = series.fillOpacity;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (series.stroke instanceof Color) {\r\n\t\t\t\t\t\tseries.fill.stroke = series.stroke;\r\n\t\t\t\t\t\tseries.fill.fill = series.stroke;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tseries.fill = this.colors.next();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.hasValue(series.stroke)) {\r\n\t\t\t\tseries.stroke = series.fill;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.raiseCriticalError(e);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Chart's [[Cursor]].\r\n\t *\r\n\t * @param cursor Cursor\r\n\t */\r\n\tpublic set cursor(cursor: this[\"_cursor\"]) {\r\n\t\tif (this._cursor != cursor) {\r\n\t\t\tif (this._cursor) {\r\n\t\t\t\tthis.removeDispose(this._cursor);\r\n\t\t\t}\r\n\r\n\t\t\tthis._cursor = cursor;\r\n\r\n\t\t\tif (cursor) {\r\n\t\t\t\t// TODO this is wrong, fix it\r\n\t\t\t\tthis._disposers.push(cursor);\r\n\t\t\t\tcursor.chart = this;\r\n\t\t\t\tcursor.shouldClone = false;\r\n\t\t\t\tcursor.parent = this._cursorContainer;\r\n\t\t\t\tcursor.events.on(\"cursorpositionchanged\", this.handleCursorPositionChange, this, false);\r\n\t\t\t\tcursor.events.on(\"zoomstarted\", this.handleCursorZoomStart, this, false);\r\n\t\t\t\tcursor.events.on(\"zoomended\", this.handleCursorZoomEnd, this, false);\r\n\t\t\t\tcursor.events.on(\"panstarted\", this.handleCursorPanStart, this, false);\r\n\t\t\t\tcursor.events.on(\"panning\", this.handleCursorPanning, this, false);\r\n\t\t\t\tcursor.events.on(\"panended\", this.handleCursorPanEnd, this, false);\r\n\t\t\t\tcursor.events.on(\"behaviorcanceled\", this.handleCursorCanceled, this, false);\r\n\t\t\t\tcursor.events.on(\"hidden\", this.handleHideCursor, this, false);\r\n\t\t\t\tcursor.zIndex = Number.MAX_SAFE_INTEGER - 1;\r\n\r\n\t\t\t\tif (this.tapToActivate) {\r\n\t\t\t\t\t// We need this in order to setup cursor properly\r\n\t\t\t\t\tthis.setTapToActivate(this.tapToActivate);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Cursor\r\n\t */\r\n\tpublic get cursor(): this[\"_cursor\"] {\r\n\t\treturn this._cursor;\r\n\t}\r\n\r\n\t/**\r\n\t * Performs tasks when the cursor's position changes, e.g. shows proper\r\n\t * tooltips on axes and series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleCursorPositionChange(): void {\r\n\r\n\t\tlet cursor = this.cursor;\r\n\r\n\t\tif (cursor.visible && !cursor.isHiding) {\r\n\t\t\tlet xPosition: number = this.cursor.xPosition;\r\n\t\t\tlet yPosition: number = this.cursor.yPosition;\r\n\r\n\t\t\tthis.showSeriesTooltip({\r\n\t\t\t\tx: xPosition,\r\n\t\t\t\ty: yPosition\r\n\t\t\t});\r\n\r\n\t\t\tlet exceptAxes: Axis[] = [];\r\n\t\t\tlet snapToSeries = cursor.snapToSeries;\r\n\r\n\t\t\tif (snapToSeries && !cursor.downPoint) {\r\n\t\t\t\tif (snapToSeries instanceof XYSeries) {\r\n\t\t\t\t\tsnapToSeries = [snapToSeries];\r\n\t\t\t\t}\r\n\t\t\t\tlet dataItems: XYSeriesDataItem[] = [];\r\n\r\n\t\t\t\t$array.each(snapToSeries, (snpSeries) => {\r\n\r\n\t\t\t\t\tlet xAxis = snpSeries.xAxis;\r\n\t\t\t\t\tlet yAxis = snpSeries.yAxis;\r\n\r\n\t\t\t\t\tif (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis) && yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n\r\n\t\t\t\t\t\tsnpSeries.dataItems.each((dataItem) => {\r\n\t\t\t\t\t\t\tdataItems.push(dataItem);\r\n\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\t$array.move(exceptAxes, snpSeries.yAxis);\r\n\t\t\t\t\t\t$array.move(exceptAxes, snpSeries.xAxis);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (snpSeries.baseAxis == snpSeries.xAxis) {\r\n\t\t\t\t\t\t\t$array.move(exceptAxes, snpSeries.yAxis);\r\n\t\t\t\t\t\t\tdataItems.push(xAxis.getSeriesDataItem(snpSeries, xAxis.toAxisPosition(xPosition), true));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (snpSeries.baseAxis == snpSeries.yAxis) {\r\n\t\t\t\t\t\t\t$array.move(exceptAxes, snpSeries.xAxis);\r\n\t\t\t\t\t\t\tdataItems.push(yAxis.getSeriesDataItem(snpSeries, yAxis.toAxisPosition(yPosition), true));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tlet closestDataItem = this.getClosest(dataItems, xPosition, yPosition);\r\n\r\n\t\t\t\tif (closestDataItem) {\r\n\t\t\t\t\tthis.series.each((series) => {\r\n\t\t\t\t\t\tlet closestSeries = closestDataItem.component;\r\n\t\t\t\t\t\tif (series != closestSeries) {\r\n\t\t\t\t\t\t\tseries.hideTooltip();\r\n\t\t\t\t\t\t\tif (series.xAxis != closestSeries.xAxis) {\r\n\t\t\t\t\t\t\t\tseries.xAxis.hideTooltip();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (series.yAxis != closestSeries.yAxis) {\r\n\t\t\t\t\t\t\t\tseries.yAxis.hideTooltip();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tclosestDataItem.component.showTooltipAtDataItem(closestDataItem);\r\n\t\t\t\t\tcursor.handleSnap(closestDataItem.component);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//}\r\n\t\t\tthis._seriesPoints = [];\r\n\r\n\t\t\tif (this._cursorXPosition != xPosition) {\r\n\t\t\t\tthis.showAxisTooltip(this.xAxes, xPosition, exceptAxes);\r\n\t\t\t}\r\n\t\t\tif (this._cursorYPosition != yPosition) {\r\n\t\t\t\tthis.showAxisTooltip(this.yAxes, yPosition, exceptAxes);\r\n\t\t\t}\r\n\t\t\tif (this.arrangeTooltips) {\r\n\t\t\t\tthis.sortSeriesTooltips(this._seriesPoints);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.legend) {\r\n\t\t\t\tthis.legend.afterDraw();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected getClosest(dataItems: XYSeriesDataItem[], xPosition: number, yPosition: number): XYSeriesDataItem {\r\n\t\tlet minDistance = Infinity;\r\n\t\tlet closestDataItem: XYSeriesDataItem\r\n\r\n\t\t$array.eachContinue(dataItems, (dataItem) => {\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tlet xAxis = dataItem.component.xAxis;\r\n\t\t\t\tlet yAxis = dataItem.component.yAxis;\r\n\r\n\t\t\t\tlet xPos = xAxis.positionToCoordinate(xAxis.toGlobalPosition(xAxis.toAxisPosition(xPosition)));\r\n\t\t\t\tlet yPos = yAxis.positionToCoordinate(yAxis.toGlobalPosition(yAxis.toAxisPosition(yPosition)));\r\n\r\n\t\t\t\tlet xField = dataItem.component.xField;\r\n\t\t\t\tlet yField = dataItem.component.yField;\r\n\r\n\t\t\t\tif (xAxis instanceof ValueAxis && !$type.isNumber(dataItem.getValue(xField))) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tif (yAxis instanceof ValueAxis && !$type.isNumber(dataItem.getValue(yField))) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet dxPosition = xAxis.positionToCoordinate(xAxis.toGlobalPosition(xAxis.getPositionX(dataItem, xField, dataItem.locations[xField], \"valueX\")));\r\n\t\t\t\tlet dyPosition = yAxis.positionToCoordinate(yAxis.toGlobalPosition(yAxis.getPositionY(dataItem, yField, dataItem.locations[yField], \"valueY\")));\r\n\r\n\t\t\t\tlet distance = Math.sqrt(Math.pow(xPos - dxPosition, 2) + Math.pow(yPos - dyPosition, 2));\r\n\r\n\t\t\t\tif (distance < minDistance) {\r\n\t\t\t\t\tminDistance = distance;\r\n\t\t\t\t\tclosestDataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn closestDataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides all cursor-related tooltips when the cursor itself is hidden.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleHideCursor(): void {\r\n\t\tthis.hideObjectTooltip(this.xAxes);\r\n\t\tthis.hideObjectTooltip(this.yAxes);\r\n\t\tthis.hideObjectTooltip(this.series);\r\n\t\tthis._cursorXPosition = undefined;\r\n\t\tthis._cursorYPosition = undefined;\r\n\r\n\t\tthis.updateSeriesLegend();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates values for each series' legend item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSeriesLegend(): void {\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.updateLegendValue();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Hides a tooltip for a list of objects.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param sprites A list of sprites to hide tooltip for\r\n\t */\r\n\tpublic hideObjectTooltip(sprites: List<Sprite>): void {\r\n\t\t$iter.each(sprites.iterator(), (sprite) => {\r\n\t\t\tsprite.hideTooltip(0);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Shows a tooltip for all chart's series, using specific coordinates as a\r\n\t * reference point.\r\n\t *\r\n\t * The tooltip might be shown at different coordinates depending on the\r\n\t * actual data point's position, overlapping with other tooltips, etc.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Reference point\r\n\t */\r\n\tpublic showSeriesTooltip(position?: IPoint): void {\r\n\r\n\t\tif (!position) {\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tseries.hideTooltip();\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet seriesPoints: { point: IPoint, series: XYSeries }[] = [];\r\n\r\n\t\tthis.series.each((series) => {\r\n\t\t\t//if (series.tooltipText || series.tooltipHTML) { // not good, bullets are not hovered then\r\n\r\n\t\t\tif ((series.xAxis instanceof DateAxis && series.xAxis.snapTooltip) || (series.yAxis instanceof DateAxis && series.yAxis.snapTooltip)) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet point = series.showTooltipAtPosition(position.x, position.y);\r\n\t\t\t\tif (point) {\r\n\t\t\t\t\tseries.tooltip.setBounds($utils.spriteRectToSvg({ x: 0, y: 0, width: this.pixelWidth, height: this.pixelHeight }, this));\r\n\t\t\t\t\tseriesPoints.push({ series: series, point: point });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//}\r\n\t\t});\r\n\r\n\t\tif (this.arrangeTooltips) {\r\n\t\t\tthis.sortSeriesTooltips(seriesPoints);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic sortSeriesTooltips(seriesPoints: { point: IPoint, series: XYSeries }[]) {\r\n\t\tif (seriesPoints.length > 0) {\r\n\t\t\tlet cursor = this.cursor;\r\n\r\n\t\t\tif (cursor && $type.isNumber(cursor.maxTooltipDistance)) {\r\n\r\n\t\t\t\tlet cursorPoint = $utils.spritePointToSvg({ x: cursor.point.x, y: cursor.point.y }, cursor);\r\n\r\n\t\t\t\tlet nearestSeries: XYSeries;\r\n\t\t\t\tlet nearestPoint: IPoint;\r\n\t\t\t\tlet smallestDistance: number = Infinity;\r\n\r\n\t\t\t\t$array.each(seriesPoints, (seriesPoint) => {\r\n\t\t\t\t\tlet series = seriesPoint.series;\r\n\t\t\t\t\tlet fixedPoint = seriesPoint.point;\r\n\t\t\t\t\tif (fixedPoint) {\r\n\t\t\t\t\t\tlet point = { x: fixedPoint.x, y: fixedPoint.y };\r\n\r\n\t\t\t\t\t\tlet distance = Math.abs($math.getDistance(point, cursorPoint));\r\n\t\t\t\t\t\tif (distance < smallestDistance) {\r\n\t\t\t\t\t\t\tnearestPoint = point;\r\n\t\t\t\t\t\t\tsmallestDistance = distance;\r\n\t\t\t\t\t\t\tnearestSeries = series;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tlet newSeriesPoints: { point: IPoint, series: XYSeries }[] = [];\r\n\t\t\t\tif (nearestSeries) {\r\n\r\n\t\t\t\t\t$array.each(seriesPoints, (seriesPoint) => {\r\n\t\t\t\t\t\tif (Math.abs($math.getDistance(seriesPoint.point, nearestPoint)) <= Math.abs(cursor.maxTooltipDistance)) {\r\n\t\t\t\t\t\t\tnewSeriesPoints.push({ series: seriesPoint.series, point: seriesPoint.point });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlet tooltipDataItem = seriesPoint.series.tooltipDataItem;\r\n\t\t\t\t\t\t\tif (tooltipDataItem) {\r\n\t\t\t\t\t\t\t\t$array.each(tooltipDataItem.sprites, (sprite) => {\r\n\t\t\t\t\t\t\t\t\tsprite.isHover = false;\r\n\t\t\t\t\t\t\t\t\tsprite.handleOutReal(); // to avoid flicker\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tseriesPoint.series.tooltip.hide(0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tif (cursor.maxTooltipDistance < 0) {\r\n\t\t\t\t\t\tif (newSeriesPoints.length > 0) {\r\n\t\t\t\t\t\t\t$array.each(newSeriesPoints, (np) => {\r\n\t\t\t\t\t\t\t\tif (nearestSeries != np.series) {\r\n\t\t\t\t\t\t\t\t\tnp.series.tooltip.hide(0);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewSeriesPoints = [{ series: nearestSeries, point: nearestPoint }];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tseriesPoints = newSeriesPoints;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tlet topLeft = $utils.spritePointToSvg({ x: -0.5, y: -0.5 }, this.plotContainer);\r\n\t\t\tlet bottomRight = $utils.spritePointToSvg({ x: this.plotContainer.pixelWidth + 0.5, y: this.plotContainer.pixelHeight + 0.5 }, this.plotContainer);\r\n\r\n\t\t\tlet sum = 0;\r\n\t\t\tlet filteredSeriesPoints: { point: IPoint, series: XYSeries }[] = [];\r\n\t\t\t$array.each(seriesPoints, (seriesPoint) => {\r\n\t\t\t\tlet point = seriesPoint.point;\r\n\t\t\t\tif (point && $math.isInRectangle(point, { x: topLeft.x, y: topLeft.y, width: bottomRight.x - topLeft.x, height: bottomRight.y - topLeft.y })) {\r\n\t\t\t\t\tfilteredSeriesPoints.push({ point: point, series: seriesPoint.series });\r\n\t\t\t\t\tsum += point.y;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tseriesPoints = filteredSeriesPoints;\r\n\r\n\t\t\tlet firstSeries = this.series.getIndex(0);\r\n\t\t\tlet inversed = false;\r\n\t\t\tif (firstSeries && firstSeries.yAxis && firstSeries.yAxis.renderer.inversed) {\r\n\t\t\t\tinversed = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (inversed) {\r\n\t\t\t\tseriesPoints.sort((a, b) => $number.order(a.point.y, b.point.y))\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tseriesPoints.sort((a, b) => $number.order(b.point.y, a.point.y))\r\n\t\t\t\tseriesPoints.reverse();\r\n\t\t\t}\r\n\r\n\t\t\tlet averageY = sum / seriesPoints.length;\r\n\t\t\tlet maxY = $utils.svgPointToDocument({ x: 0, y: 0 }, this.svgContainer.SVGContainer).y;\r\n\r\n\t\t\tif (seriesPoints.length > 0) {\r\n\t\t\t\tlet top = topLeft.y;\r\n\t\t\t\tlet bottom = bottomRight.y;\r\n\r\n\t\t\t\t// TODO is this needed ?\r\n\t\t\t\t$utils.spritePointToDocument({ x: 0, y: top }, this);\r\n\r\n\t\t\t\tlet dropped = false;\r\n\r\n\t\t\t\tif (averageY > top + (bottom - top) / 2) {\r\n\t\t\t\t\tlet nextHeight = bottom;\r\n\t\t\t\t\tfor (let i = seriesPoints.length - 1; i >= 0; i--) {\r\n\t\t\t\t\t\tlet series = seriesPoints[i].series;\r\n\r\n\t\t\t\t\t\tlet tooltip = series.tooltip;\r\n\t\t\t\t\t\tlet pointY = seriesPoints[i].point.y;\r\n\r\n\t\t\t\t\t\ttooltip.setBounds({ x: 0, y: -maxY, width: this.pixelWidth, height: nextHeight + maxY });\r\n\r\n\t\t\t\t\t\tif (tooltip.invalid) {\r\n\t\t\t\t\t\t\ttooltip.validate();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttooltip.toBack();\r\n\t\t\t\t\t\tnextHeight = $utils.spritePointToSvg({ x: 0, y: tooltip.label.pixelY - tooltip.pixelY + pointY - tooltip.pixelMarginTop }, tooltip).y;\r\n\r\n\t\t\t\t\t\tif (nextHeight < -maxY) {\r\n\t\t\t\t\t\t\tdropped = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (averageY <= top + (bottom - top) / 2 || dropped) {\r\n\t\t\t\t\tlet nextY = top;\r\n\t\t\t\t\tfor (let i = 0, len = seriesPoints.length; i < len; i++) {\r\n\t\t\t\t\t\tlet series = seriesPoints[i].series;\r\n\t\t\t\t\t\tlet pointY = seriesPoints[i].point.y;\r\n\t\t\t\t\t\tlet tooltip = series.tooltip;\r\n\t\t\t\t\t\ttooltip.setBounds({ x: 0, y: nextY, width: this.pixelWidth, height: bottom });\r\n\r\n\t\t\t\t\t\tif (tooltip.invalid) {\r\n\t\t\t\t\t\t\ttooltip.validate();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttooltip.toBack();\r\n\r\n\t\t\t\t\t\tnextY = $utils.spritePointToSvg({ x: 0, y: tooltip.label.pixelY + tooltip.label.measuredHeight - tooltip.pixelY + pointY + tooltip.pixelMarginBottom }, tooltip).y;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Shows tooltips for a list of axes at specific position.\r\n\t *\r\n\t * Position might be X coordinate for horizontal axes, and Y coordinate for\r\n\t * vertical axes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axes List of axes to show tooltip on\r\n\t * @param position Position (px)\r\n\t */\r\n\tpublic showAxisTooltip(axes: List<Axis>, position: number, except?: Axis[]): void {\r\n\t\t$iter.each(axes.iterator(), (axis) => {\r\n\t\t\tif (!except || except.indexOf(axis) == -1) {\r\n\t\t\t\tif (this.dataItems.length > 0 || axis.dataItems.length > 0) {\r\n\t\t\t\t\taxis.showTooltipAtPosition(position);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Recalculates the value range for the axis taking into account zoom level & inversed.\r\n\t *\r\n\t * @param axis Axis\r\n\t * @param range Range\r\n\t * @return Modified range\r\n\t */\r\n\tpublic getUpdatedRange(axis: Axis<this[\"_xAxisRendererType\"]>, range: IRange): IRange {\r\n\r\n\t\tif (!axis) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet start: number;\r\n\t\tlet end: number;\r\n\t\tlet inversed = axis.renderer.inversed;\r\n\r\n\t\tif (inversed) {\r\n\t\t\t$math.invertRange(range);\r\n\r\n\t\t\tstart = 1 - axis.end;\r\n\t\t\tend = 1 - axis.start;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstart = axis.start;\r\n\t\t\tend = axis.end;\r\n\t\t}\r\n\r\n\t\tlet difference: number = end - start;\r\n\r\n\t\treturn {\r\n\t\t\tstart: start + range.start * difference,\r\n\t\t\tend: start + range.end * difference\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Performs zoom and other operations when user finishes zooming using chart\r\n\t * cursor, e.g. zooms axes.\r\n\t *\r\n\t * @param event Cursor's event\r\n\t */\r\n\tprotected handleCursorZoomEnd(event: IXYCursorEvents[\"zoomended\"]): void {\r\n\t\tlet cursor: XYCursor = this.cursor;\r\n\t\tlet behavior = cursor.behavior;\r\n\t\tif (behavior == \"zoomX\" || behavior == \"zoomXY\") {\r\n\t\t\tlet xRange: IRange = cursor.xRange;\r\n\t\t\tif (xRange && this.xAxes.length > 0) {\r\n\t\t\t\txRange = this.getUpdatedRange(this.xAxes.getIndex(0), xRange);\r\n\t\t\t\txRange.priority = \"start\";\r\n\t\t\t\tthis.zoomAxes(this.xAxes, xRange);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (behavior == \"zoomY\" || behavior == \"zoomXY\") {\r\n\t\t\tlet yRange: IRange = cursor.yRange;\r\n\t\t\tif (yRange && this.yAxes.length > 0) {\r\n\t\t\t\tyRange = this.getUpdatedRange(this.yAxes.getIndex(0), yRange);\r\n\t\t\t\tyRange.priority = \"start\";\r\n\t\t\t\tthis.zoomAxes(this.yAxes, yRange);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.handleHideCursor();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Performs zoom and other operations when user is panning chart plot using chart cursor.\r\n\t *\r\n\t * @param event Cursor's event\r\n\t */\r\n\tprotected handleCursorPanStart(event: IXYCursorEvents[\"panning\"]): void {\r\n\t\tlet xAxis = this.xAxes.getIndex(0);\r\n\t\tif (xAxis) {\r\n\t\t\tthis._panStartXRange = { start: xAxis.start, end: xAxis.end };\r\n\t\t}\r\n\r\n\t\tlet yAxis = this.yAxes.getIndex(0);\r\n\t\tif (yAxis) {\r\n\t\t\tthis._panStartYRange = { start: yAxis.start, end: yAxis.end };\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Performs zoom and other operations when user ends panning\r\n\t *\r\n\t * @param event Cursor's event\r\n\t */\r\n\tprotected handleCursorPanEnd(event: IXYCursorEvents[\"panning\"]): void {\r\n\t\tlet cursor: XYCursor = this.cursor;\r\n\t\tlet behavior = cursor.behavior;\r\n\r\n\t\tif (this._panEndXRange && (behavior == \"panX\" || behavior == \"panXY\")) {\r\n\t\t\tlet panEndRange = this._panEndXRange;\r\n\t\t\tlet delta = 0;\r\n\r\n\t\t\tif (panEndRange.start < 0) {\r\n\t\t\t\tdelta = panEndRange.start;\r\n\t\t\t}\r\n\t\t\tif (panEndRange.end > 1) {\r\n\t\t\t\tdelta = panEndRange.end - 1;\r\n\t\t\t}\r\n\t\t\tthis.zoomAxes(this.xAxes, { start: panEndRange.start - delta, end: panEndRange.end - delta }, false, true);\r\n\t\t\tthis._panEndXRange = undefined;\r\n\t\t\tthis._panStartXRange = undefined;\r\n\t\t}\r\n\t\tif (this._panEndYRange && (behavior == \"panY\" || behavior == \"panXY\")) {\r\n\t\t\tlet panEndRange = this._panEndYRange;\r\n\r\n\t\t\tlet delta = 0;\r\n\t\t\tif (panEndRange.start < 0) {\r\n\t\t\t\tdelta = panEndRange.start;\r\n\t\t\t}\r\n\t\t\tif (panEndRange.end > 1) {\r\n\t\t\t\tdelta = panEndRange.end - 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.zoomAxes(this.yAxes, { start: panEndRange.start - delta, end: panEndRange.end - delta }, false, true);\r\n\t\t\tthis._panEndYRange = undefined;\r\n\t\t\tthis._panStartYRange = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleCursorCanceled(): void {\r\n\t\tthis._panEndXRange = undefined;\r\n\t\tthis._panStartXRange = undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Performs zoom and other operations when user is panning chart plot using chart cursor.\r\n\t *\r\n\t * @param event Cursor's event\r\n\t */\r\n\tprotected handleCursorPanning(event: IXYCursorEvents[\"panning\"]): void {\r\n\t\tlet cursor: XYCursor = this.cursor;\r\n\t\tlet behavior = cursor.behavior;\r\n\t\tlet maxPanOut = cursor.maxPanOut;\r\n\t\tif (this._panStartXRange && (behavior == \"panX\" || behavior == \"panXY\")) {\r\n\t\t\tlet panStartRange = this._panStartXRange;\r\n\t\t\tlet range = cursor.xRange;\r\n\r\n\t\t\tlet axisRange = this.getCommonAxisRange(this.xAxes);\r\n\r\n\t\t\tlet difference = (panStartRange.end - panStartRange.start);\r\n\t\t\tlet delta = range.start * (axisRange.end - axisRange.start);\r\n\r\n\t\t\tlet newStart = Math.max(-maxPanOut, delta + panStartRange.start);\r\n\t\t\tlet newEnd = Math.min(delta + panStartRange.end, 1 + maxPanOut);\r\n\r\n\t\t\tif (newStart <= 0) {\r\n\t\t\t\tnewEnd = newStart + difference;\r\n\t\t\t}\r\n\r\n\t\t\tif (newEnd >= 1) {\r\n\t\t\t\tnewStart = newEnd - difference;\r\n\t\t\t}\r\n\r\n\t\t\tlet newRange = {\r\n\t\t\t\tstart: newStart,\r\n\t\t\t\tend: newEnd\r\n\t\t\t}\r\n\t\t\tthis._panEndXRange = newRange;\r\n\r\n\t\t\tthis.zoomAxes(this.xAxes, newRange, false, false, cursor.maxPanOut);\r\n\t\t}\r\n\r\n\t\tif (this._panStartYRange && (behavior == \"panY\" || behavior == \"panXY\")) {\r\n\t\t\tlet panStartRange = this._panStartYRange;\r\n\t\t\tlet range = cursor.yRange;\r\n\r\n\t\t\tlet axisRange = this.getCommonAxisRange(this.yAxes);\r\n\r\n\t\t\tlet difference = panStartRange.end - panStartRange.start;\r\n\t\t\tlet delta = range.start * (axisRange.end - axisRange.start);\r\n\r\n\t\t\tlet newStart = Math.max(-maxPanOut, delta + panStartRange.start);\r\n\t\t\tlet newEnd = Math.min(delta + panStartRange.end, 1 + maxPanOut);\r\n\r\n\t\t\tif (newStart <= 0) {\r\n\t\t\t\tnewEnd = newStart + difference;\r\n\t\t\t}\r\n\r\n\t\t\tif (newEnd >= 1) {\r\n\t\t\t\tnewStart = newEnd - difference;\r\n\t\t\t}\r\n\r\n\t\t\tlet newRange = {\r\n\t\t\t\tstart: newStart,\r\n\t\t\t\tend: newEnd\r\n\t\t\t}\r\n\t\t\tthis._panEndYRange = newRange;\r\n\t\t\tthis.zoomAxes(this.yAxes, newRange, false, false, cursor.maxPanOut);\r\n\t\t}\r\n\r\n\t\tthis.handleHideCursor();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic handleYAxisSet(series: XYSeries) {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Performs zoom and other operations when user starts zooming using chart\r\n\t * cursor, e.g. zooms axes.\r\n\t *\r\n\t * @param event Cursor's event\r\n\t */\r\n\tprotected handleCursorZoomStart(event: IXYCursorEvents[\"zoomstarted\"]): void {\r\n\r\n\t\t// Nothing here\r\n\t\t// This method is here only as a \"placeholder\" for extending classes to\r\n\t\t// override if necessary\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Horizontal (X) scrollbar.\r\n\t *\r\n\t * @param scrollbar Scrollbar\r\n\t */\r\n\tpublic set scrollbarX(scrollbar: Scrollbar) {\r\n\t\tif (this._scrollbarX) {\r\n\t\t\tthis.removeDispose(this._scrollbarX);\r\n\t\t}\r\n\t\tthis._scrollbarX = scrollbar;\r\n\r\n\t\tif (scrollbar) {\r\n\t\t\tthis._disposers.push(scrollbar);\r\n\t\t\tscrollbar.parent = this.topAxesContainer;\r\n\t\t\tscrollbar.shouldClone = false;\r\n\t\t\tscrollbar.startGrip.exportable = false;\r\n\t\t\tscrollbar.endGrip.exportable = false;\r\n\t\t\tscrollbar.toBack();\r\n\t\t\tscrollbar.orientation = \"horizontal\";\r\n\t\t\tscrollbar.events.on(\"rangechanged\", this.handleXScrollbarChange, this, false);\r\n\t\t\t// accessibility related\r\n\t\t\tscrollbar.adapter.add(\"positionValue\", (arg) => {\r\n\t\t\t\tlet xAxis = this.xAxes.getIndex(0);\r\n\t\t\t\tif (xAxis) {\r\n\t\t\t\t\targ.value = xAxis.getPositionLabel(\r\n\t\t\t\t\t\txAxis.renderer.inversed\r\n\t\t\t\t\t\t\t? 1 - arg.position\r\n\t\t\t\t\t\t\t: arg.position\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\treturn arg;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Scrollbar\r\n\t */\r\n\tpublic get scrollbarX(): Scrollbar {\r\n\t\treturn this._scrollbarX;\r\n\t}\r\n\r\n\t/**\r\n\t * Vertical (Y) scrollbar.\r\n\t *\r\n\t * @param scrollbar Scrollbar\r\n\t */\r\n\tpublic set scrollbarY(scrollbar: Scrollbar) {\r\n\t\tif (this._scrollbarY) {\r\n\t\t\tthis.removeDispose(this._scrollbarY);\r\n\t\t}\r\n\t\tthis._scrollbarY = scrollbar;\r\n\r\n\t\tif (scrollbar) {\r\n\t\t\tthis._disposers.push(scrollbar);\r\n\t\t\tscrollbar.parent = this.rightAxesContainer;\r\n\t\t\tscrollbar.startGrip.exportable = false;\r\n\t\t\tscrollbar.shouldClone = false;\r\n\t\t\tscrollbar.endGrip.exportable = false;\r\n\t\t\tscrollbar.toFront();\r\n\t\t\tscrollbar.orientation = \"vertical\";\r\n\t\t\tscrollbar.events.on(\"rangechanged\", this.handleYScrollbarChange, this, false);\r\n\t\t\t// accessibility related\r\n\t\t\tscrollbar.adapter.add(\"positionValue\", (arg) => {\r\n\t\t\t\tlet yAxis = this.yAxes.getIndex(0);\r\n\t\t\t\tif (yAxis) {\r\n\t\t\t\t\targ.value = yAxis.getPositionLabel(arg.position);\r\n\t\t\t\t}\r\n\t\t\t\treturn arg;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Scrollbar\r\n\t */\r\n\tpublic get scrollbarY(): Scrollbar {\r\n\t\treturn this._scrollbarY;\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms axes affected by the horizontal (X) scrollbar when the selection\r\n\t * on it changes.\r\n\t *\r\n\t * @param event Scrollbar range change event\r\n\t */\r\n\tprotected handleXScrollbarChange(event: AMEvent<Scrollbar, IScrollbarEvents>[\"rangechanged\"]): void {\r\n\r\n\t\tif (this.inited) {\r\n\t\t\tlet scrollbar: Scrollbar = event.target;\r\n\t\t\tlet range = scrollbar.range;\r\n\r\n\t\t\tif (range.start == 0) {\r\n\t\t\t\trange.priority = \"start\";\r\n\t\t\t}\r\n\r\n\t\t\tif (range.end == 1) {\r\n\t\t\t\trange.priority = \"end\";\r\n\t\t\t}\r\n\r\n\t\t\trange = this.zoomAxes(this.xAxes, range);\r\n\r\n\t\t\tscrollbar.fixRange(range);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms axes affected by the vertical (Y) scrollbar when the selection\r\n\t * on it changes.\r\n\t *\r\n\t * @param event Scrollbar range change event\r\n\t */\r\n\tprotected handleYScrollbarChange(event: AMEvent<Scrollbar, IScrollbarEvents>[\"rangechanged\"]): void {\r\n\t\tif (this.inited) {\r\n\t\t\tlet scrollbar: Scrollbar = event.target;\r\n\t\t\tlet range = scrollbar.range;\r\n\t\t\tif (range.end == 1) {\r\n\t\t\t\trange.priority = \"end\";\r\n\t\t\t}\r\n\t\t\tif (range.start == 0) {\r\n\t\t\t\trange.priority = \"start\";\r\n\t\t\t}\r\n\t\t\trange = this.zoomAxes(this.yAxes, range);\r\n\t\t\tscrollbar.fixRange(range);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms axes that are affected by to specific relative range.\r\n\t *\r\n\t * @param axes List of axes to zoom\r\n\t * @param range Range of values to zoom to (0-1)\r\n\t * @param instantly If set to `true` will skip zooming animation\r\n\t * @return Recalculated range that is common to all involved axes\r\n\t */\r\n\tprotected zoomAxes(axes: List<Axis<this[\"_xAxisRendererType\"]>>, range: IRange, instantly?: boolean, round?: boolean, declination?: number): IRange {\r\n\t\tlet realRange: IRange = { start: 0, end: 1 };\r\n\r\n\t\tthis.showSeriesTooltip(); // hides\r\n\r\n\t\tif (!this.dataInvalid) {\r\n\t\t\t$iter.each(axes.iterator(), (axis) => {\r\n\t\t\t\tif (axis.renderer.inversed) {\r\n\t\t\t\t\trange = $math.invertRange(range);\r\n\t\t\t\t}\r\n\r\n\t\t\t\taxis.hideTooltip(0);\r\n\r\n\t\t\t\tif (round) {\r\n\t\t\t\t\t//let diff = range.end - range.start;\r\n\t\t\t\t\tif (axis instanceof CategoryAxis) {\r\n\t\t\t\t\t\tlet cellWidth = axis.getCellEndPosition(0) - axis.getCellStartPosition(0);\r\n\r\n\t\t\t\t\t\trange.start = axis.roundPosition(range.start + cellWidth / 2 - (axis.startLocation) * cellWidth, axis.startLocation);\r\n\t\t\t\t\t\trange.end = axis.roundPosition(range.end - cellWidth / 2 + (1 - axis.endLocation) * cellWidth, axis.endLocation);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\trange.start = axis.roundPosition(range.start + 0.0001, 0, axis.startLocation);\r\n\t\t\t\t\t\trange.end = axis.roundPosition(range.end + 0.0001, 0, axis.endLocation);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet axisRange: IRange = axis.zoom(range, instantly, instantly, declination);\r\n\r\n\t\t\t\tif (axis.renderer.inversed) {\r\n\t\t\t\t\taxisRange = $math.invertRange(axisRange);\r\n\t\t\t\t}\r\n\r\n\t\t\t\trealRange = axisRange;\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn realRange;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if bullet container is masked.\r\n\t *\r\n\t * If it is set to `true`, any bullets that do not fit into bullet container\r\n\t * will be clipped off. Settting to `false` will allow bullets to \"spill out\"\r\n\t * of the plot area so they are not cut off.\r\n\t *\r\n\t * @param value Mask bullet container?\r\n\t */\r\n\tpublic set maskBullets(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"maskBullets\", value, true) && this.bulletsContainer) {\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.bulletsContainer.mask = this._bulletMask;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.bulletsContainer.mask = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Mask bullet container?\r\n\t */\r\n\tpublic get maskBullets(): boolean {\r\n\t\treturn this.getPropertyValue(\"maskBullets\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if chart should arrange series tooltips so that they would not\r\n\t * overlap.\r\n\t *\r\n\t * If set to `true` (default), the chart will adjust vertical positions of\r\n\t * all simultaneously shown tooltips to avoid overlapping.\r\n\t *\r\n\t * However, if you have a vertically-arranged chart, it might not make sense,\r\n\t * because tooltips would most probably not be aligned horizontally. In this\r\n\t * case it would probably be a good idea to set this setting to `false`.\r\n\t *\r\n\t * @default true\r\n\t * @param value Arrange tooltips?\r\n\t */\r\n\tpublic set arrangeTooltips(value: boolean) {\r\n\t\tthis.setPropertyValue(\"arrangeTooltips\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Arrange tooltips?\r\n\t */\r\n\tpublic get arrangeTooltips(): boolean {\r\n\t\treturn this.getPropertyValue(\"arrangeTooltips\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Handles mouse wheel event.\r\n\t *\r\n\t * @param event Original event\r\n\t */\r\n\tprotected handleWheel(event: AMEvent<Sprite, ISpriteEvents>[\"wheel\"]) {\r\n\t\tlet plotContainer = this.plotContainer;\r\n\t\tlet svgPoint: IPoint = $utils.documentPointToSvg(event.point, this.htmlContainer, this.svgContainer.cssScale);\r\n\t\tlet plotPoint = $utils.svgPointToSprite(svgPoint, plotContainer);\r\n\t\tlet shift = event.shift.y;\r\n\r\n\t\tthis.handleWheelReal(shift, this.mouseWheelBehavior, plotPoint);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Handles mouse wheel event.\r\n\t *\r\n\t * @param event Original event\r\n\t */\r\n\tprotected handleHorizontalWheel(event: AMEvent<Sprite, ISpriteEvents>[\"wheel\"]) {\r\n\t\tlet plotContainer = this.plotContainer;\r\n\t\tlet svgPoint: IPoint = $utils.documentPointToSvg(event.point, this.htmlContainer, this.svgContainer.cssScale);\r\n\t\tlet plotPoint = $utils.svgPointToSprite(svgPoint, plotContainer);\r\n\r\n\t\tthis.handleWheelReal(event.shift.x, this.horizontalMouseWheelBehavior, plotPoint)\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleWheelReal(shift: number, mouseWheelBehavior: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\", plotPoint: IPoint) {\r\n\t\tif (shift != 0) {\r\n\t\t\tlet plotContainer = this.plotContainer;\r\n\r\n\t\t\tlet rangeX: IRange = this.getCommonAxisRange(this.xAxes);\r\n\t\t\tlet rangeY: IRange = this.getCommonAxisRange(this.yAxes);\r\n\r\n\t\t\tlet shiftStep = 0.1;\r\n\r\n\t\t\tlet maxPanOut = 0;\r\n\r\n\t\t\tif (mouseWheelBehavior == \"panX\" || mouseWheelBehavior == \"panXY\") {\r\n\r\n\t\t\t\tlet differenceX = rangeX.end - rangeX.start;\r\n\r\n\t\t\t\tlet newStartX = Math.max(-maxPanOut, rangeX.start + shiftStep * shift / 100 * (rangeX.end - rangeX.start));\r\n\t\t\t\tlet newEndX = Math.min(rangeX.end + shiftStep * shift / 100 * (rangeX.end - rangeX.start), 1 + maxPanOut);\r\n\r\n\t\t\t\tif (newStartX <= 0) {\r\n\t\t\t\t\tnewEndX = newStartX + differenceX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (newEndX >= 1) {\r\n\t\t\t\t\tnewStartX = newEndX - differenceX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.zoomAxes(this.xAxes, { start: newStartX, end: newEndX });\r\n\t\t\t}\r\n\r\n\t\t\tif (mouseWheelBehavior == \"panY\" || mouseWheelBehavior == \"panXY\") {\r\n\t\t\t\tshift *= -1;\r\n\t\t\t\tlet differenceY = rangeY.end - rangeY.start;\r\n\r\n\t\t\t\tlet newStartY = Math.max(-maxPanOut, rangeY.start + shiftStep * shift / 100 * (rangeY.end - rangeY.start));\r\n\t\t\t\tlet newEndY = Math.min(rangeY.end + shiftStep * shift / 100 * (rangeY.end - rangeY.start), 1 + maxPanOut);\r\n\r\n\t\t\t\tif (newStartY <= 0) {\r\n\t\t\t\t\tnewEndY = newStartY + differenceY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (newEndY >= 1) {\r\n\t\t\t\t\tnewStartY = newEndY - differenceY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.zoomAxes(this.yAxes, { start: newStartY, end: newEndY });\r\n\t\t\t}\r\n\r\n\t\t\tif (mouseWheelBehavior == \"zoomX\" || mouseWheelBehavior == \"zoomXY\") {\r\n\t\t\t\tlet locationX = plotPoint.x / plotContainer.maxWidth;\r\n\r\n\t\t\t\tlet location2X = this.xAxes.getIndex(0).toAxisPosition(locationX);\r\n\r\n\t\t\t\tlet newStartX = Math.max(-maxPanOut, rangeX.start - shiftStep * (rangeX.end - rangeX.start) * shift / 100 * locationX);\r\n\t\t\t\tnewStartX = Math.min(newStartX, location2X);\r\n\r\n\t\t\t\tlet newEndX = Math.min(rangeX.end + shiftStep * (rangeX.end - rangeX.start) * shift / 100 * (1 - locationX), 1 + maxPanOut);\r\n\t\t\t\tnewEndX = Math.max(newEndX, location2X);\r\n\r\n\t\t\t\tthis.zoomAxes(this.xAxes, { start: newStartX, end: newEndX });\r\n\t\t\t}\r\n\r\n\t\t\tif (mouseWheelBehavior == \"zoomY\" || mouseWheelBehavior == \"zoomXY\") {\r\n\t\t\t\tlet locationY = plotPoint.y / plotContainer.maxHeight;\r\n\r\n\t\t\t\tlet location2Y = this.yAxes.getIndex(0).toAxisPosition(locationY);\r\n\r\n\t\t\t\tlet newStartY = Math.max(-maxPanOut, rangeY.start - shiftStep * (rangeY.end - rangeY.start) * shift / 100 * (1 - locationY));\r\n\t\t\t\tnewStartY = Math.min(newStartY, location2Y);\r\n\r\n\t\t\t\tlet newEndY = Math.min(rangeY.end + shiftStep * shift / 100 * locationY * (rangeY.end - rangeY.start), 1 + maxPanOut);\r\n\t\t\t\tnewEndY = Math.max(newEndY, location2Y);\r\n\r\n\t\t\t\tthis.zoomAxes(this.yAxes, { start: newStartY, end: newEndY });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies action for when mouse wheel is used when over the chart.\r\n\t *\r\n\t * Options: Options: `\"zoomX\"`, `\"zoomY\"`, `\"zoomXY\"`, `\"panX\"`, `\"panY\"`,`\"panXY\"`, `\"none\"` (default).\r\n\t *\r\n\t * You can control sensitivity of wheel zooming via `mouseOptions`.\r\n\t *\r\n\t * @default \"none\"\r\n\t * @see {@link https://www.amcharts.com/docs/v4/reference/sprite/#mouseOptions_property} More information about `mouseOptions`\r\n\t * @param mouse wheel behavior\r\n\t */\r\n\tpublic set mouseWheelBehavior(value: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\") {\r\n\r\n\t\tif (this.setPropertyValue(\"mouseWheelBehavior\", value)) {\r\n\t\t\tif (value != \"none\") {\r\n\t\t\t\tthis._mouseWheelDisposer = this.plotContainer.events.on(\"wheel\", this.handleWheel, this, false);\r\n\t\t\t\tthis._disposers.push(this._mouseWheelDisposer);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._mouseWheelDisposer) {\r\n\t\t\t\t\tthis.plotContainer.wheelable = false;\r\n\t\t\t\t\tthis.plotContainer.hoverable = false;\r\n\t\t\t\t\tthis._mouseWheelDisposer.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Mouse wheel behavior\r\n\t */\r\n\tpublic get mouseWheelBehavior(): \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\" {\r\n\t\treturn this.getPropertyValue(\"mouseWheelBehavior\");\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies action for when horizontal mouse wheel is used when over the chart.\r\n\t *\r\n\t * Options: Options: `\"zoomX\"`, `\"zoomY\"`, `\"zoomXY\"`, `\"panX\"`, `\"panY\"`, `\"panXY\"`, `\"none\"` (default).\r\n\t *\r\n\t * @default \"none\"\r\n\t * @see {@link https://www.amcharts.com/docs/v4/reference/sprite/#mouseOptions_property} More information about `mouseOptions`\r\n\t * @param mouse wheel behavior\r\n\t */\r\n\tpublic set horizontalMouseWheelBehavior(value: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\") {\r\n\r\n\t\tif (this.setPropertyValue(\"horizontalMouseWheelBehavior\", value)) {\r\n\t\t\tif (value != \"none\") {\r\n\t\t\t\tthis._mouseWheelDisposer2 = this.plotContainer.events.on(\"wheel\", this.handleHorizontalWheel, this, false);\r\n\t\t\t\tthis._disposers.push(this._mouseWheelDisposer2);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._mouseWheelDisposer2) {\r\n\t\t\t\t\tthis.plotContainer.wheelable = false;\r\n\t\t\t\t\tthis.plotContainer.hoverable = false;\r\n\t\t\t\t\tthis._mouseWheelDisposer2.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal mouse wheel behavior\r\n\t */\r\n\tpublic get horizontalMouseWheelBehavior(): \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\" {\r\n\t\treturn this.getPropertyValue(\"horizontalMouseWheelBehavior\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function is called by the [[DataSource]]'s `dateFields` adapater\r\n\t * so that particular chart types can popuplate this setting with their\r\n\t * own type-specific data fields so they are parsed properly.\r\n\t *\r\n\t * @param fields Array of date fields\r\n\t * @return Array of date fields populated with chart's date fields\r\n\t */\r\n\tprotected dataSourceDateFields(fields: string[]): string[] {\r\n\t\t// Process parent\r\n\t\tfields = super.dataSourceDateFields(fields);\r\n\r\n\t\t// Check if we have any series with date-fields\r\n\t\t$iter.each(this.series.iterator(), (series: this[\"_seriesType\"]) => {\r\n\t\t\tfields = this.populateDataSourceFields(\r\n\t\t\t\tfields,\r\n\t\t\t\t<any>series.dataFields,\r\n\t\t\t\t[\"dateX\", \"dateY\", \"openDateX\", \"openDateY\"]\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\t/**\r\n\t * This function is called by the [[DataSource]]'s `numberFields` adapater\r\n\t * so that particular chart types can popuplate this setting with their\r\n\t * own type-specific data fields so they are parsed properly.\r\n\t *\r\n\t * @param value Array of number fields\r\n\t * @return Array of number fields populated with chart's number fields\r\n\t */\r\n\tprotected dataSourceNumberFields(fields: string[]): string[] {\r\n\t\tfields = super.dataSourceDateFields(fields);\r\n\r\n\t\t// Check if we have any series with date-fields\r\n\t\t$iter.each(this.series.iterator(), (series: this[\"_seriesType\"]) => {\r\n\t\t\tfields = this.populateDataSourceFields(\r\n\t\t\t\tfields,\r\n\t\t\t\t<any>series.dataFields,\r\n\t\t\t\t[\"valueX\", \"valueY\", \"openValueX\", \"openValueY\"]\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Save axis ranges for later processing\r\n\t\t\tlet xAxes: any[] = [];\r\n\t\t\tlet yAxes: any[] = [];\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.xAxes) && $type.isArray(config.xAxes)) {\r\n\t\t\t\tfor (let i = 0, len = config.xAxes.length; i < len; i++) {\r\n\t\t\t\t\tif (!config.xAxes[i].type) {\r\n\t\t\t\t\t\tthrow Error(\"[XYChart error] No type set for xAxes[\" + i + \"].\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.hasValue(config.xAxes[i][\"axisRanges\"])) {\r\n\r\n\t\t\t\t\t\t// Maybe convert string dates?\r\n\t\t\t\t\t\tfor (let x = 0, len = config.xAxes[i][\"axisRanges\"].length; x < len; x++) {\r\n\t\t\t\t\t\t\tlet range = config.xAxes[i][\"axisRanges\"][x];\r\n\t\t\t\t\t\t\tif ($type.hasValue(range.date) && $type.isString(range.date)) {\r\n\t\t\t\t\t\t\t\trange.date = this.dateFormatter.parse(range.date);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($type.hasValue(range.endDate) && $type.isString(range.endDate)) {\r\n\t\t\t\t\t\t\t\trange.endDate = this.dateFormatter.parse(range.endDate);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\txAxes.push({\r\n\t\t\t\t\t\t\taxisRanges: config.xAxes[i][\"axisRanges\"],\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdelete (config.xAxes[i][\"axisRanges\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxes) && $type.isArray(config.yAxes)) {\r\n\t\t\t\tfor (let i = 0, len = config.yAxes.length; i < len; i++) {\r\n\t\t\t\t\tif (!config.yAxes[i].type) {\r\n\t\t\t\t\t\tthrow Error(\"[XYChart error] No type set for yAxes[\" + i + \"].\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.hasValue(config.yAxes[i][\"axisRanges\"])) {\r\n\r\n\t\t\t\t\t\t// Maybe convert string dates?\r\n\t\t\t\t\t\tfor (let x = 0, len = config.yAxes[i][\"axisRanges\"].length; x < len; x++) {\r\n\t\t\t\t\t\t\tlet range = config.yAxes[i][\"axisRanges\"][x];\r\n\t\t\t\t\t\t\tif ($type.hasValue(range.date) && $type.isString(range.date)) {\r\n\t\t\t\t\t\t\t\trange.date = this.dateFormatter.parse(range.date);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($type.hasValue(range.endDate) && $type.isString(range.endDate)) {\r\n\t\t\t\t\t\t\t\trange.endDate = this.dateFormatter.parse(range.endDate);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tyAxes.push({\r\n\t\t\t\t\t\t\taxisRanges: config.yAxes[i][\"axisRanges\"],\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdelete (config.yAxes[i][\"axisRanges\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tconfig.series[i].type = config.series[i].type || \"LineSeries\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up cursor\r\n\t\t\tif ($type.hasValue(config.cursor) && !$type.hasValue(config.cursor.type)) {\r\n\t\t\t\tconfig.cursor.type = \"XYCursor\";\r\n\t\t\t}\r\n\r\n\t\t\t// Set up scrollbars\r\n\t\t\tif ($type.hasValue(config.scrollbarX) && !$type.hasValue(config.scrollbarX.type)) {\r\n\t\t\t\tconfig.scrollbarX.type = \"Scrollbar\";\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.hasValue(config.scrollbarY) && !$type.hasValue(config.scrollbarY.type)) {\r\n\t\t\t\tconfig.scrollbarY.type = \"Scrollbar\";\r\n\t\t\t}\r\n\r\n\t\t\tsuper.processConfig(config);\r\n\r\n\t\t\t// Finish up with ranges.\r\n\t\t\t// We need to do this here because series are processed last in JSON\r\n\t\t\t// config. Therefore their respective objects are not yet are available\r\n\t\t\t// when axis (and respectively their ranges) are being processed.\r\n\t\t\tif (yAxes.length) {\r\n\t\t\t\tfor (let i = 0, len = yAxes.length; i < len; i++) {\r\n\t\t\t\t\tthis.yAxes.getIndex(yAxes[i].index).config = {\r\n\t\t\t\t\t\taxisRanges: yAxes[i].axisRanges\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (xAxes.length) {\r\n\t\t\t\tfor (let i = 0, len = xAxes.length; i < len; i++) {\r\n\t\t\t\t\tthis.xAxes.getIndex(xAxes[i].index).config = {\r\n\t\t\t\t\t\taxisRanges: xAxes[i].axisRanges\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * This function is used to sort element's JSON config properties, so that\r\n\t * some properties that absolutely need to be processed last, can be put at\r\n\t * the end.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param a Element 1\r\n\t * @param b Element 2\r\n\t * @return Sorting number\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t// Must come last\r\n\t\telse if (a == \"scrollbarX\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"scrollbarX\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (a == \"scrollbarY\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"scrollbarY\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (a == \"cursor\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"cursor\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (a == \"series\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"series\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.configOrder(a, b);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new Series of type suitable for this chart.\r\n\t *\r\n\t * @return New series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new XYSeries();\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Button]] element that is used for zooming out the chart.\r\n\t *\r\n\t * This button appears only when chart is zoomed in, and disappears\r\n\t * autoamatically when it is zoome dout.\r\n\t *\r\n\t * @param button Zoom out button\r\n\t */\r\n\tpublic set zoomOutButton(button: Button) {\r\n\t\tthis._zoomOutButton = button;\r\n\t\tif (button) {\r\n\t\t\tbutton.events.on(\"hit\", () => {\r\n\t\t\t\tthis.zoomAxes(this.xAxes, { start: 0, end: 1 });\r\n\t\t\t\tthis.zoomAxes(this.yAxes, { start: 0, end: 1 });\r\n\t\t\t}, undefined, false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Zoom out button\r\n\t */\r\n\tpublic get zoomOutButton(): Button {\r\n\t\treturn this._zoomOutButton;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[XYChart]].\r\n\t *\r\n\t * @param source Source XYChart\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\r\n\t\tsource.xAxes.each((axis) => {\r\n\t\t\tthis.xAxes.push(axis.clone());\r\n\t\t})\r\n\r\n\t\tsource.yAxes.each((axis) => {\r\n\t\t\tthis.yAxes.push(axis.clone());\r\n\t\t})\r\n\r\n\t\t//this.xAxes.copyFrom(source.xAxes);\r\n\t\t//this.yAxes.copyFrom(source.yAxes);\r\n\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\t//this.zoomOutButton.copyFrom(source.zoomOutButton);\r\n\r\n\t\tif (source.cursor) {\r\n\t\t\tthis.cursor = source.cursor.clone();\r\n\t\t}\r\n\r\n\t\tif (source.scrollbarX) {\r\n\t\t\tthis.scrollbarX = source.scrollbarX.clone();\r\n\t\t}\r\n\r\n\t\tif (source.scrollbarY) {\r\n\t\t\tthis.scrollbarY = source.scrollbarY.clone();\r\n\t\t}\r\n\t\t//@todo copy all container properties\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\r\n\t\tlet scrollbarX = this.scrollbarX;\r\n\t\tif (scrollbarX && scrollbarX instanceof XYChartScrollbar) {\r\n\t\t\tscrollbarX.scrollbarChart.disposeData();\r\n\t\t}\r\n\r\n\t\tlet scrollbarY = this.scrollbarY;\r\n\t\tif (scrollbarY && scrollbarY instanceof XYChartScrollbar) {\r\n\t\t\tscrollbarY.scrollbarChart.disposeData();\r\n\t\t}\r\n\r\n\t\tthis.xAxes.each((axis) => {\r\n\t\t\taxis.disposeData();\r\n\t\t})\r\n\r\n\t\tthis.yAxes.each((axis) => {\r\n\t\t\taxis.disposeData();\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Adds one or several (array) of data items to the existing data.\r\n\t *\r\n\t * @param rawDataItem One or many raw data item objects\r\n\t */\r\n\tpublic addData(rawDataItem: Object | Object[], removeCount?: number): void {\r\n\t\tif (this.scrollbarX instanceof XYChartScrollbar) {\r\n\t\t\tthis.addScrollbarData(this.scrollbarX, removeCount);\r\n\t\t}\r\n\t\tif (this.scrollbarY instanceof XYChartScrollbar) {\r\n\t\t\tthis.addScrollbarData(this.scrollbarY, removeCount);\r\n\t\t}\r\n\r\n\t\tsuper.addData(rawDataItem, removeCount);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected addScrollbarData(scrollbar: XYChartScrollbar, removeCount: number) {\r\n\t\tlet chart = scrollbar.scrollbarChart;\r\n\t\tchart._parseDataFrom = chart.data.length;\r\n\t\tchart.invalidateData();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected removeScrollbarData(scrollbar: XYChartScrollbar, removeCount: number) {\r\n\t\tlet chart = scrollbar.scrollbarChart;\r\n\t\tif ($type.isNumber(removeCount)) {\r\n\t\t\twhile (removeCount > 0) {\r\n\t\t\t\tlet dataItem = this.dataItems.getIndex(0);\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tchart.dataItems.remove(dataItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tchart.dataUsers.each((dataUser) => {\r\n\t\t\t\t\tlet dataItem = dataUser.dataItems.getIndex(0);\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tdataUser.dataItems.remove(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tchart._parseDataFrom--;\r\n\r\n\t\t\t\tremoveCount--;\r\n\t\t\t}\r\n\r\n\t\t\tchart.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes elements from the beginning of data\r\n\t *\r\n\t * @param count number of elements to remove\r\n\t */\r\n\tpublic removeData(count: $type.Optional<number>) {\r\n\t\tif (this.scrollbarX instanceof XYChartScrollbar) {\r\n\t\t\tthis.removeScrollbarData(this.scrollbarX, count);\r\n\t\t}\r\n\t\tif (this.scrollbarY instanceof XYChartScrollbar) {\r\n\t\t\tthis.removeScrollbarData(this.scrollbarY, count);\r\n\t\t}\r\n\r\n\t\tsuper.removeData(count);\r\n\t}\r\n\r\n\t/**\r\n\t * @param value Tap to activate?\r\n\t */\r\n\tprotected setTapToActivate(value: boolean): void {\r\n\t\tsuper.setTapToActivate(value);\r\n\t\tif (this.cursor) {\r\n\t\t\tthis.cursor.interactions.isTouchProtected = value;\r\n\t\t\tthis.plotContainer.interactions.isTouchProtected = value;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleTapToActivate(): void {\r\n\t\tsuper.handleTapToActivate();\r\n\t\tif (this.cursor) {\r\n\t\t\tthis.cursor.interactions.isTouchProtected = false;\r\n\t\t\tthis.plotContainer.interactions.isTouchProtected = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleTapToActivateDeactivation(): void {\r\n\t\tsuper.handleTapToActivateDeactivation();\r\n\t\tif (this.cursor) {\r\n\t\t\tthis.cursor.interactions.isTouchProtected = true;\r\n\t\t\tthis.plotContainer.interactions.isTouchProtected = true;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChart\"] = XYChart;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Remove horizontal scrollbar on narrow charts.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.maybeXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof XYChart && target.scrollbarX) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tlet sbstate = target.scrollbarX.states.create(stateId);\r\n\t\t\tsbstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\n/**\r\n * Remove vertical scrollbar on short charts.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.maybeXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof XYChart && target.scrollbarY) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tlet sbstate = target.scrollbarY.states.create(stateId);\r\n\t\t\tsbstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","/**\r\n * Line series segment module.\r\n * @todo Add description about what this is\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[LineSeriesSegment]].\r\n */\r\nexport interface ILineSeriesSegmentProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[LineSeriesSegment]].\r\n */\r\nexport interface ILineSeriesSegmentEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[LineSeriesSegment]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILineSeriesSegmentAdapters extends IContainerAdapters, ILineSeriesSegmentProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents a line series segment.\r\n *\r\n * A line segment can be used to apply different properties to a part of the\r\n * line series, between two data points.\r\n *\r\n * @see {@link ILineSeriesSegmentEvents} for a list of available events\r\n * @see {@link ILineSeriesSegmentAdapters} for a list of available Adapters\r\n * @todo Example\r\n */\r\nexport class LineSeriesSegment extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILineSeriesSegmentProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ILineSeriesSegmentAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILineSeriesSegmentEvents;\r\n\r\n\t/**\r\n\t * Segment's line element.\r\n\t */\r\n\tpublic strokeSprite: Sprite;\r\n\r\n\t/**\r\n\t * Segment's fill element.\r\n\t */\r\n\tpublic fillSprite: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"LineSeriesSegment\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.interactionsEnabled = false;\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\t// Create fill element\r\n\t\tlet fillSprite = this.createChild(Sprite);\r\n\t\tthis.fillSprite = fillSprite;\r\n\t\tfillSprite.shouldClone = false;\r\n\t\tfillSprite.setElement(this.paper.add(\"path\"));\r\n\t\tfillSprite.isMeasured = false;\r\n\t\tthis._disposers.push(fillSprite);\r\n\r\n\r\n\t\t// Create line element\r\n\t\tlet strokeSprite = this.createChild(Sprite);\r\n\t\tthis.strokeSprite = strokeSprite;\r\n\t\tstrokeSprite.shouldClone = false;\r\n\t\tstrokeSprite.fill = color();\r\n\t\tstrokeSprite.setElement(this.paper.add(\"path\"));\r\n\t\tstrokeSprite.isMeasured = false;\r\n\t\tthis._disposers.push(strokeSprite);\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the series segment.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param points Points to connect\r\n\t * @param closePoints ?\r\n\t * @param smoothnessX Horizontal bezier setting (?)\r\n\t * @param smoothnessY Vertical bezier setting (?)\r\n\t */\r\n\tpublic drawSegment(points: IPoint[], closePoints: IPoint[], smoothnessX: number, smoothnessY: number): void {\r\n\t\tif (!this.disabled) {\r\n\t\t\tif (points.length > 0 && closePoints.length > 0) {\r\n\t\t\t\t// first moveTo helps to avoid Chrome straight line in the mask bug.\r\n\t\t\t\tlet path: string = $path.moveTo({ x: points[0].x - 0.2, y: points[0].y - 0.2 }) + $path.moveTo(points[0]) + new $smoothing.Tension(smoothnessX, smoothnessY).smooth(points);\r\n\r\n\t\t\t\tif (this.strokeOpacity == 0 || this.strokeSprite.strokeOpacity == 0) {\r\n\t\t\t\t\t// like this and not if != 0, otherwise ranges stroke won't be drawn.\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.strokeSprite.path = path;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n\t\t\t\t\tpath += $path.lineTo(closePoints[0]) + new $smoothing.Tension(smoothnessX, smoothnessY).smooth(closePoints);\r\n\t\t\t\t\tpath += $path.lineTo(points[0]);\r\n\t\t\t\t\tpath += $path.closePath();\r\n\r\n\t\t\t\t\tthis.fillSprite.path = path;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fillSprite.path = \"\";\r\n\t\t\t\tthis.strokeSprite.path = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies properties from a [[Sprite]] to both line and fill elements.\r\n\t *\r\n\t * @param source Source [[Sprite]] to copy properties from\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\tlet lineElement = this.strokeSprite;\r\n\t\t$object.copyProperties(source, lineElement.properties, visualProperties);\r\n\t\tlineElement.events.copyFrom(source.strokeSprite.events);\r\n\t\tlineElement.fillOpacity = 0;\r\n\r\n\t\tlet fillElement = this.fillSprite;\r\n\t\t$object.copyProperties(source, fillElement.properties, visualProperties);\r\n\t\tfillElement.events.copyFrom(source.fillSprite.events);\r\n\t\tfillElement.strokeOpacity = 0;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LineSeriesSegment\"] = LineSeriesSegment;\r\n","/**\r\n * DurationAxis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxis, ValueAxisDataItem, IValueAxisProperties, IValueAxisDataFields, IValueAxisAdapters, IValueAxisEvents } from \"./ValueAxis\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { TimeUnit } from \"../../core/defs/TimeUnit\";\r\nimport { IMinMaxStep } from \"./ValueAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data item for [[DurationAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class DurationAxisDataItem extends ValueAxisDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: DurationAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DurationAxisDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[DurationAxis]].\r\n */\r\nexport interface IDurationAxisDataFields extends IValueAxisDataFields { }\r\n\r\n/**\r\n * Defines properties for [[DurationAxis]].\r\n */\r\nexport interface IDurationAxisProperties extends IValueAxisProperties { }\r\n\r\n/**\r\n * Defines events for [[DurationAxis]].\r\n */\r\nexport interface IDurationAxisEvents extends IValueAxisEvents { }\r\n\r\n/**\r\n * Defines adapters for [[DurationAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDurationAxisAdapters extends IValueAxisAdapters, IDurationAxisProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create an axis that shows time durations.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.DurationAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Time\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.DurationAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Time\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DurationAxis\",\r\n * \"title\": {\r\n * \"text\": \"Time\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} for mor information about duration formatters.\r\n * @see {@link IDurationAxisEvents} for a list of available Events\r\n * @see {@link IDurationAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class DurationAxis<T extends AxisRenderer = AxisRenderer> extends ValueAxis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: IDurationAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IDurationAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDurationAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDurationAxisEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: DurationAxisDataItem;\r\n\r\n\t/**\r\n\t * A base unit (granularity) of data.\r\n\t *\r\n\t * Used to indicate what are the base units of your data.\r\n\t */\r\n\tprotected _baseUnit: TimeUnit = \"second\";\r\n\r\n\t/**\r\n\t * A special duration format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t */\r\n\tprotected _tooltipDurationFormat: string;\r\n\r\n\t/**\r\n\t * Axis date format chosen dynamically based on min/max and baseUnit.\r\n\t *\r\n\t * @readonly\r\n\t */\r\n\tpublic axisDurationFormat: string;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"DurationAxis\";\r\n\r\n\t\tthis.setPropertyValue(\"maxZoomFactor\", 1000000);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Formats the value according to axis' own [[DurationFormatter]].\r\n\t *\r\n\t * @param value Source value\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic formatLabel(value: number, format?: string): string {\r\n\t\treturn this.durationFormatter.format(value, format || this.axisDurationFormat);\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts actual min and max scale values so that the axis starts and ends\r\n\t * at \"nice\" values, unless `strictMinMax` is set.\r\n\t *\r\n\t * The `difference` can be something else than `max - min`, because of the\r\n\t * axis breaks.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param min [description]\r\n\t * @param max [description]\r\n\t * @param difference [description]\r\n\t * @param gridCount [description]\r\n\t * @param strictMode [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic adjustMinMax(min: number, max: number, difference: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\r\n\r\n\t\tlet minMaxStep: IMinMaxStep;\r\n\r\n\t\tlet timeUnit = this.baseUnit;\r\n\t\t// we don't allow to go to smaller units, setting so to avoid invalidation\r\n\t\tthis.setPropertyValue(\"maxPrecision\", 0);\r\n\r\n\t\tif (timeUnit == \"millisecond\" || timeUnit == \"second\" || timeUnit == \"minute\" || timeUnit == \"hour\") {\r\n\t\t\t// will fail if 0\r\n\t\t\tif (gridCount <= 1) {\r\n\t\t\t\tgridCount = 1;\r\n\t\t\t}\r\n\r\n\t\t\tgridCount = Math.round(gridCount);\r\n\r\n\t\t\tlet initialMin: number = min;\r\n\t\t\tlet initialMax: number = max;\r\n\r\n\t\t\t// in case min and max is the same, use max\r\n\t\t\tif (difference === 0) {\r\n\t\t\t\tdifference = Math.abs(max);\r\n\t\t\t}\r\n\r\n\t\t\tlet step = difference / gridCount;\r\n\r\n\t\t\tlet divisors = [60, 30, 20, 15, 10, 2, 1];\r\n\t\t\tlet realDivisor = 1;\r\n\r\n\t\t\tif (timeUnit == \"hour\") {\r\n\t\t\t\tdivisors = [24, 12, 6, 4, 2, 1];\r\n\t\t\t}\r\n\r\n\t\t\tfor (let divisor of divisors) {\r\n\t\t\t\tif (difference / divisor > gridCount) {\r\n\t\t\t\t\trealDivisor = divisor;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet count = Math.ceil(((max - min) / realDivisor) / gridCount);\r\n\r\n\t\t\tlet exponent: number = Math.log(Math.abs(count)) * Math.LOG10E;\r\n\t\t\tlet power = Math.pow(10, Math.floor(exponent)) / 10;\r\n\t\t\tlet reducedCount = count / power;\r\n\r\n\t\t\t// find closest to divisor\r\n\t\t\tlet closest = $math.closest(divisors, reducedCount);\r\n\t\t\tcount = closest * power;\r\n\r\n\t\t\tstep = realDivisor * count;\r\n\r\n\t\t\t// TODO can this be removed ?\r\n\t\t\tthis.durationFormatter.getValueUnit(step, this.baseUnit);\r\n\r\n\t\t\tmin = Math.floor(min / step) * step;\r\n\t\t\tmax = Math.ceil(max / step) * step;\r\n\r\n\t\t\tif (strictMode) {\r\n\t\t\t\tmin -= step;\r\n\t\t\t\tif (min < 0 && initialMin >= 0) {\r\n\t\t\t\t\tmin = 0;\r\n\t\t\t\t}\r\n\t\t\t\tmax += step;\r\n\r\n\t\t\t\tif (max > 0 && initialMax <= 0) {\r\n\t\t\t\t\tmax = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tminMaxStep = { min: min, max: max, step: step };\r\n\t\t}\r\n\t\telse {\r\n\t\t\tminMaxStep = super.adjustMinMax(min, max, difference, gridCount, strictMode);\r\n\t\t}\r\n\r\n\t\t// choose duration formatter based on step\r\n\t\tthis.axisDurationFormat = this.durationFormatter.getFormat(minMaxStep.step, minMaxStep.max, this.baseUnit);\r\n\r\n\t\treturn minMaxStep;\r\n\t}\r\n\r\n\t/**\r\n\t * A special duration format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/} for mor information.\r\n\t * @param value Duration format for axis labels\r\n\t */\r\n\tpublic set tooltipDurationFormat(value: string) {\r\n\t\tthis._tooltipDurationFormat = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Duration format for axis labels\r\n\t */\r\n\tpublic get tooltipDurationFormat(): string {\r\n\t\treturn this._tooltipDurationFormat;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a axis tooltip, based on specific position within\r\n\t * axis.\r\n\t *\r\n\t * The label will be formatted as per [[NumberFormatter]] set for the whole\r\n\t * chart, or explicitly for this Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (px)\r\n\t * @return Label (numeric value)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet value: number = $math.round(this.positionToValue(position), this._stepDecimalPlaces);\r\n\t\tlet valueStr = this.formatLabel(value, this.tooltipDurationFormat)\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn valueStr;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"getTooltipText\", valueStr);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A base unit (granularity) of data.\r\n\t *\r\n\t * Used to indicate what are the base units of your data.\r\n\t *\r\n\t * Available options: \"millisecond\", \"second\" (default), \"minute\", \"hour\",\r\n\t * \"day\", \"week\", \"month\", \"year\".\r\n\t *\r\n\t * @default \"second\"\r\n\t * @param timeUnit\r\n\t */\r\n\tpublic set baseUnit(timeUnit: TimeUnit) {\r\n\t\tif (this._baseUnit != timeUnit) {\r\n\t\t\tthis._baseUnit = timeUnit;\r\n\t\t\tthis.durationFormatter.baseUnit = timeUnit;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Base unit\r\n\t */\r\n\tpublic get baseUnit(): TimeUnit {\r\n\t\treturn this._baseUnit;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from a different instance of Axis.\r\n\t *\r\n\t * @param source Source Axis\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.baseUnit = source.baseUnit;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DurationAxis\"] = DurationAxis;\r\nregistry.registeredClasses[\"DurationAxisDataItem\"] = DurationAxisDataItem;\r\n","/**\r\n * Line series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYSeries, XYSeriesDataItem, IXYSeriesProperties, IXYSeriesDataFields, IXYSeriesAdapters, IXYSeriesEvents } from \"./XYSeries\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { Axis, AxisDataItem } from \"../axes/Axis\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { DurationAxis } from \"../axes/DurationAxis\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Rectangle } from \"../../core/elements/Rectangle\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { LegendDataItem } from \"../Legend\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[LineSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class LineSeriesDataItem extends XYSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: LineSeries;\r\n\r\n\t/**\r\n\t * Point of line series data item\r\n\t */\r\n\tpublic point: IPoint;\r\n\r\n\t/**\r\n\t * A reference to a segment object, used for getting proper colors for tooltips\r\n\t */\r\n\tpublic segment: LineSeriesSegment;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"LineSeriesDataItem\";\r\n\t}\r\n\r\n\t// @todo: minimums/maximums\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[LineSeries]].\r\n */\r\nexport interface ILineSeriesDataFields extends IXYSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[LineSeries]].\r\n */\r\nexport interface ILineSeriesProperties extends IXYSeriesProperties {\r\n\r\n\t/**\r\n\t * Horizontal tension setting of the line (0-1).\r\n\t *\r\n\t * Used for smoothed lines.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\ttensionX?: number;\r\n\r\n\t/**\r\n\t * Vertical tension setting of the line (0-1).\r\n\t *\r\n\t * Used for smoothed lines.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\ttensionY?: number;\r\n\r\n\t/**\r\n\t * Connect the lines over empty data points?\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tconnect?: boolean;\r\n\r\n\t/**\r\n\t * If `connect = false` and distance between two data points is bigger\r\n\t * than `baseInterval * autoGapCount`, a line will break automatically.\r\n\t *\r\n\t * @default 1.1\r\n\t */\r\n\tautoGapCount?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[LineSeries]].\r\n */\r\nexport interface ILineSeriesEvents extends IXYSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[LineSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILineSeriesAdapters extends IXYSeriesAdapters, ILineSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a line graph.\r\n *\r\n * @see {@link ILineSeriesEvents} for a list of available Events\r\n * @see {@link ILineSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class LineSeries extends XYSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: ILineSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILineSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ILineSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILineSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: LineSeriesDataItem;\r\n\r\n\t/**\r\n\t * A list of line series segments.\r\n\t *\r\n\t * Segments are used in two cases:\r\n\t *\r\n\t * * When we want to change the appearance of a part of the line series;\r\n\t * * When we have an axis range.\r\n\t */\r\n\tpublic segments: ListTemplate<this[\"_segment\"]>;\r\n\r\n\t/**\r\n\t * Defines type for segment.\r\n\t */\r\n\tpublic _segment: LineSeriesSegment;\r\n\r\n\t/**\r\n\t * A container for segment elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic segmentsContainer: Container;\r\n\r\n\t/**\r\n\t * Minimum distance in pixels between two adjacent points.\r\n\t *\r\n\t * If the distance is less than this setting, a point is skipped.\r\n\t *\r\n\t * This allows acceptable performance with huge amounts of data points.\r\n\t *\r\n\t * @default 0.5\r\n\t */\r\n\tpublic minDistance: number = 0.5;\r\n\r\n\t/**\r\n\t * Iterator for segments.\r\n\t */\r\n\tprotected _segmentsIterator: $iter.ListIterator<this[\"_segment\"]>;\r\n\r\n\tprotected _adjustedStartIndex: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.segments = new ListTemplate<LineSeriesSegment>(this.createSegment());\r\n\t\tthis.segments.template.applyOnClones = true;\r\n\r\n\t\tthis._disposers.push(new ListDisposer(this.segments));\r\n\t\tthis._disposers.push(this.segments.template);\r\n\r\n\t\tthis._segmentsIterator = new $iter.ListIterator<LineSeriesSegment>(this.segments, () => this.segments.create());\r\n\t\tthis._segmentsIterator.createNewItems = true;\r\n\r\n\t\tthis.className = \"LineSeries\";\r\n\r\n\t\tthis.strokeOpacity = 1;\r\n\t\tthis.fillOpacity = 0;\r\n\r\n\t\tthis.connect = true;\r\n\r\n\t\tthis.tensionX = 1;\r\n\t\tthis.tensionY = 1;\r\n\r\n\t\tthis.autoGapCount = 1.1;\r\n\r\n\t\tthis.segmentsContainer = this.mainContainer.createChild(Container);\r\n\t\tthis.segmentsContainer.isMeasured = false;\r\n\r\n\t\t// line series might have multiple segments and it has a separate sprite for fill and stroke for each segment. So we need to observe all the changes on series and set them on the segments\r\n\t\t// todo: we need list here, otherwise everything will be redrawn event on change of properties like tooltipX or similar.\r\n\t\t// this.addEventListener(SpriteEvent.PROPERTY_CHANGED, this.validateDataElements, false, this);\r\n\r\n\t\tthis.bulletsContainer.toFront();\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Line Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createSegment(): this[\"_segment\"] {\r\n\t\treturn new LineSeriesSegment();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new LineSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Inits data item's working values.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param index Data item's index\r\n\t */\r\n\r\n\tprotected setInitialWorkingValues(dataItem: this[\"_dataItem\"]): void {\r\n\t\t// this makes data items animate when added\r\n\r\n\t\tlet yAxis: Axis = this._yAxis.get();\r\n\t\tlet xAxis: Axis = this._xAxis.get();\r\n\r\n\t\tif (this.appeared && this.visible) {\r\n\r\n\t\t\tlet previousDataItem: XYSeriesDataItem = this.dataItems.getIndex(dataItem.index - 1);\r\n\r\n\t\t\tdataItem.component = this; // as these values are set before, we don't know component yet\r\n\r\n\t\t\tif (this.baseAxis == xAxis) {\r\n\t\t\t\tif (yAxis instanceof ValueAxis) {\r\n\t\t\t\t\tlet initialY: number = yAxis.minZoomed;\r\n\t\t\t\t\tif (previousDataItem) {\r\n\t\t\t\t\t\tinitialY = previousDataItem.values[\"valueY\"].workingValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// this makes line animate from previous point to newly added point\r\n\t\t\t\t\tdataItem.setWorkingValue(\"valueY\", initialY, 0);\r\n\t\t\t\t\tdataItem.setWorkingValue(\"valueY\", dataItem.values.valueY.value);\r\n\r\n\t\t\t\t\tif (xAxis instanceof DateAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX - 1, 0); // instantly move it to previous\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX); // animate to it's location\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(xAxis instanceof DurationAxis){\r\n\t\t\t\t\t\tif(previousDataItem){\r\n\t\t\t\t\t\t\tlet value = dataItem.valueX;\r\n\t\t\t\t\t\t\tdataItem.setWorkingValue(\"valueX\", previousDataItem.valueX, 0); // instantly move it to previous\r\n\t\t\t\t\t\t\tdataItem.setWorkingValue(\"valueX\", value); // animate to new value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.baseAxis == yAxis) {\r\n\t\t\t\tif (xAxis instanceof ValueAxis) {\r\n\t\t\t\t\tlet initialX: number = xAxis.minZoomed;\r\n\t\t\t\t\tif (previousDataItem) {\r\n\t\t\t\t\t\tinitialX = previousDataItem.values[\"valueX\"].workingValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.setWorkingValue(\"valueX\", initialX, 0);\r\n\t\t\t\t\tdataItem.setWorkingValue(\"valueX\", dataItem.values.valueX.value);\r\n\r\n\t\t\t\t\tif (yAxis instanceof DateAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateX - 1, 0); // instantly move it to previous\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateY); // animate to it's location\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(yAxis instanceof DurationAxis){\r\n\t\t\t\t\t\tif(previousDataItem){\r\n\t\t\t\t\t\t\tlet value = dataItem.valueY;\r\n\t\t\t\t\t\t\tdataItem.setWorkingValue(\"valueY\", previousDataItem.valueY, 0); // instantly move it to previous\r\n\t\t\t\t\t\t\tdataItem.setWorkingValue(\"valueY\", value); // animate to new value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.baseAxis == xAxis) {\r\n\t\t\t\tif (yAxis instanceof ValueAxis) {\r\n\t\t\t\t\tif (xAxis instanceof DateAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateX\", dataItem.locations.dateX);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (xAxis instanceof CategoryAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"categoryX\", dataItem.locations.categoryX);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.baseAxis == yAxis) {\r\n\t\t\t\tif (xAxis instanceof ValueAxis) {\r\n\t\t\t\t\tif (yAxis instanceof DateAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"dateY\", dataItem.locations.dateY);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (yAxis instanceof CategoryAxis) {\r\n\t\t\t\t\t\tdataItem.setWorkingLocation(\"categoryY\", dataItem.locations.categoryY);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates corresponding legend data item with current values.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic updateLegendValue(dataItem?: this[\"_dataItem\"], notRange?: boolean) {\r\n\t\tsuper.updateLegendValue(dataItem, notRange);\r\n\t\t//This is hack to save some methos, used to set tooltip color source only\r\n\t\tif (dataItem && dataItem.segment) {\r\n\t\t\tthis.tooltipColorSource = dataItem.segment;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tif (this.xAxis && this.yAxis) {\r\n\t\t\tthis._segmentsIterator.reset();\r\n\r\n\t\t\tthis.openSegmentWrapper(this._adjustedStartIndex);\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (range) => {\r\n\t\t\t\tthis.openSegmentWrapper(this._adjustedStartIndex, range);\r\n\t\t\t});\r\n\r\n\t\t\t$iter.each(this._segmentsIterator.iterator(), (segment) => {\r\n\t\t\t\tsegment.__disabled = true;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [sliceData description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected sliceData(): void {\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\t// we need extra one item to both sides with values for line series, otherwise the line will not continue out of bounds of the chart while scrolling\r\n\t\t// find first to the left\r\n\t\t// TODO use iterator instead\r\n\t\tfor (let i = this.startIndex - 1; i >= 0; i--) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tif (dataItem && dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n\t\t\t\tstartIndex = i;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._adjustedStartIndex = this.findAdjustedIndex(startIndex, [\"stroke\", \"strokeWidth\", \"strokeDasharray\", \"strokeOpacity\", \"fill\", \"fillOpacity\", \"opacity\"]);\r\n\r\n\t\t// find first to the right\r\n\t\t// TODO use iterator instead\r\n\t\tfor (let i = this.endIndex, len = this.dataItems.length; i < len; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tif (dataItem && dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n\t\t\t\tendIndex = i + 1;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._workingStartIndex = startIndex;\r\n\t\tthis._workingEndIndex = endIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected findAdjustedIndex(adjustedIndex: number, properties: string[]): number {\r\n\t\tlet propertyFields: any = this.propertyFields;\r\n\t\tlet startIndex = adjustedIndex;\r\n\r\n\t\t$array.each(properties, (property) => {\r\n\t\t\tif ($type.hasValue(propertyFields[property])) {\r\n\t\t\t\tfor (let i = startIndex; i >= 0; i--) {\r\n\t\t\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tif ($type.hasValue(dataItem.properties[property])) {\r\n\t\t\t\t\t\t\tif (adjustedIndex > i) {\r\n\t\t\t\t\t\t\t\tadjustedIndex = i;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn adjustedIndex;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Wraps openSegment call with iterative solution to prevent stack overflow\r\n\t *\r\n\t * @param openIndex Index\r\n\t * @param axisRange Range\r\n\t */\r\n\tprotected openSegmentWrapper(openIndex: number, axisRange?: AxisDataItem): void {\r\n\t\tlet params = {\r\n\t\t\t\"index\": openIndex,\r\n\t\t\t\"axisRange\": axisRange\r\n\t\t};\r\n\t\tdo {\r\n\t\t\tparams = this.openSegment(params.index, params.axisRange);\r\n\t\t} while (params)\r\n\t}\r\n\r\n\r\n\tprotected getSegment():LineSeriesSegment{\r\n\t\t\tlet segment = this._segmentsIterator.getFirst();\r\n\t\t\tif(segment.isDisposed()){\r\n\t\t\t\tthis.segments.removeValue(segment);\r\n\t\t\t\treturn this.getSegment();\r\n\t\t\t}\r\n\t\t\treturn segment;\r\n\t}\r\n\r\n\t/**\r\n\t * [openSegment description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param openIndex [description]\r\n\t * @param axisRange [description]\r\n\t */\r\n\tprotected openSegment(openIndex: number, axisRange?: AxisDataItem): { \"index\": number, \"axisRange\": AxisDataItem } {\r\n\t\tlet addToClose = false;\r\n\t\tlet points: IPoint[] = [];\r\n\t\topenIndex = Math.min(openIndex, this.dataItems.length);\r\n\t\tlet endIndex: number = Math.min(this._workingEndIndex, this.dataItems.length);\r\n\t\tthis._workingEndIndex = Math.min(this._workingEndIndex, this.dataItems.length);\r\n\r\n\t\tlet closeIndex: number;\r\n\t\tlet propertiesChanged: boolean = false;\r\n\r\n\t\tlet segment: LineSeriesSegment = this.getSegment();\r\n\r\n\t\tsegment.__disabled = false;\r\n\r\n\t\tif (axisRange) {\r\n\t\t\tsegment.parent = axisRange.contents;\r\n\t\t\t$object.copyProperties(axisRange.contents, segment, visualProperties);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$object.copyProperties(this, segment, visualProperties);\r\n\t\t\tsegment.filters.clear();\r\n\t\t\tsegment.parent = this.segmentsContainer;\r\n\t\t}\r\n\r\n\t\tthis.group.node.removeAttribute(\"fill\");\r\n\r\n\t\tlet connect: boolean = this.connect;\r\n\t\tlet valuesFound: boolean = false; // some flag to avoid multiple closes if no values found\r\n\r\n\t\tfor (let i: number = openIndex; i < endIndex; i++) {\r\n\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.segment = segment;\r\n\r\n\t\t\tif (dataItem.hasProperties) {\r\n\t\t\t\t// if this is first item of segment\r\n\t\t\t\tif (i == openIndex) {\r\n\t\t\t\t\tthis.updateSegmentProperties(dataItem.properties, segment);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// this time we only need to know if properties changed, so we don't pass segment\r\n\t\t\t\t\tpropertiesChanged = this.updateSegmentProperties(dataItem.properties, segment, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) {\r\n\t\t\t\tthis.addPoints(points, dataItem, this.xField, this.yField);\r\n\t\t\t\tvaluesFound = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// if no values in first data item, go to next\r\n\t\t\t\tif (i == openIndex) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// stop cycle\r\n\t\t\t\t\tif (!connect && valuesFound) {\r\n\t\t\t\t\t\tcloseIndex = i;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcloseIndex = i;\r\n\r\n\t\t\tif (this.baseAxis instanceof DateAxis) {\r\n\t\t\t\tlet next = this.dataItems.getIndex(i + 1)\r\n\t\t\t\tif (next && this.baseAxis.makeGap(next, dataItem)) {\r\n\t\t\t\t\taddToClose = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (propertiesChanged) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.closeSegment(segment, points, openIndex, closeIndex, axisRange, addToClose);\r\n\t}\r\n\r\n\t/**\r\n\t * [addPoints description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param points [description]\r\n\t * @param dataItem [description]\r\n\t * @param xField [description]\r\n\t * @param yField [description]\r\n\t * @param backwards [description]\r\n\t */\r\n\tprotected addPoints(points: IPoint[], dataItem: this[\"_dataItem\"], xField: string, yField: string, backwards?: boolean) {\r\n\t\tlet point = this.getPoint(dataItem, xField, yField, dataItem.workingLocations[xField], dataItem.workingLocations[yField]);\r\n\t\tif (!backwards) {\r\n\t\t\tdataItem.point = point;\r\n\t\t}\r\n\t\tpoints.push(point);\r\n\t}\r\n\r\n\t/**\r\n\t * [closeSegment description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param segment [description]\r\n\t * @param points [description]\r\n\t * @param openIndex [description]\r\n\t * @param closeIndex [description]\r\n\t * @param axisRange [description]\r\n\t */\r\n\tprotected closeSegment(segment: LineSeriesSegment, points: IPoint[], openIndex: number, closeIndex: number, axisRange?: AxisDataItem, add?: boolean) {\r\n\t\tlet closePoints: IPoint[] = [];\r\n\r\n\t\tif (this.dataFields[<keyof this[\"_dataFields\"]>this._xOpenField] ||\r\n\t\t\tthis.dataFields[<keyof this[\"_dataFields\"]>this._yOpenField] ||\r\n\t\t\tthis.stacked) {\r\n\t\t\tfor (let i: number = closeIndex; i >= openIndex; i--) {\r\n\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(i);\r\n\t\t\t\tif (dataItem.hasValue(this._xValueFields) && dataItem.hasValue(this._yValueFields)) { // not sure, this means that open point will only be added if value is also set for this point, but maybe it's ok.\r\n\t\t\t\t\tthis.addPoints(closePoints, dataItem, this.xOpenField, this.yOpenField, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet baseAxis: Axis = this.baseAxis;\r\n\t\t\tlet count: number = points.length;\r\n\t\t\tlet xAxis: Axis = this.xAxis;\r\n\t\t\tlet yAxis: Axis = this.yAxis;\r\n\t\t\tif (count > 0) {\r\n\t\t\t\tif (baseAxis == xAxis) {\r\n\t\t\t\t\tclosePoints.push({ x: points[count - 1].x, y: yAxis.basePoint.y }); // last x\r\n\t\t\t\t\tclosePoints.push({ x: points[0].x, y: yAxis.basePoint.y }); // first x\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tclosePoints.push({ x: xAxis.basePoint.x, y: points[count - 1].y }); // last y\r\n\t\t\t\t\tclosePoints.push({ x: xAxis.basePoint.x, y: points[0].y }); // first y\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.drawSegment(segment, points, closePoints);\r\n\r\n\t\tif (add) {\r\n\t\t\tcloseIndex++;\r\n\t\t}\r\n\r\n\t\tif (closeIndex < this._workingEndIndex - 1) {\r\n\t\t\treturn { \"index\": closeIndex, \"axisRange\": axisRange };\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the line segment.\r\n\t *\r\n\t * @param segment Segment\r\n\t * @param points Segment points\r\n\t * @param closePoints Segment close points\r\n\t */\r\n\tprotected drawSegment(segment: LineSeriesSegment, points: IPoint[], closePoints: IPoint[]): void {\r\n\t\tsegment.drawSegment(points, closePoints, this.tensionX, this.tensionY);\r\n\t}\r\n\r\n\t/**\r\n\t * Segement will get its colors from `this.dataItem`, as thats how\r\n\t * `getPropertyValue()` method works.\r\n\t *\r\n\t * We pass `lineSeriesDataItem.properties` as item here each time when a flag\r\n\t * `hasProperties` is set to `true` on data item (this means it can contain\r\n\t * some properties set).\r\n\t *\r\n\t * @param itemProperties Item properties\r\n\t * @param segment Segment\r\n\t * @return Properties changed?\r\n\t */\r\n\tprotected updateSegmentProperties(itemProperties: { [index: string]: any }, segment: LineSeriesSegment, checkOnly?: boolean): boolean {\r\n\t\tlet changed: boolean = false;\r\n\r\n\t\t$object.each(itemProperties, (propertyName, value) => {\r\n\t\t\t// some value must be defined\r\n\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\tlet currentValue = (<any>segment)[propertyName];\r\n\t\t\t\tlet currentValueStr: string;\r\n\t\t\t\t// current value can be Color, number, anything. So we check if it has toString, otherwise just do String().\r\n\t\t\t\t// toString() will return hex if it's color. The only problem is that it will return lowercased hex and if we have uppercase in data, it will think that it changed\r\n\t\t\t\tif (currentValue) {\r\n\t\t\t\t\tif (currentValue.toString) {\r\n\t\t\t\t\t\tcurrentValueStr = currentValue.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcurrentValueStr = currentValue; // not doing String(currentValue) as this will make all Objects the same\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tlet valueStr: string;\r\n\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tif (value.toString) {\r\n\t\t\t\t\t\tvalueStr = value.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalueStr = value; // not doing String(currentValue) as this will make all Objects the same\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (currentValue == value || (currentValueStr != undefined && valueStr != undefined && currentValueStr == valueStr)) {\r\n\t\t\t\t\t// void\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (!checkOnly) {\r\n\t\t\t\t\t\t(<any>segment)[propertyName] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchanged = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * Connect the lines over empty data points?\r\n\t *\r\n\t * If set to `true` the line will connect two adjacent data points by a\r\n\t * straight line. Even if there are data points with missing values\r\n\t * in-between.\r\n\t *\r\n\t * If you set this to `false`, the line will break when there are missing\r\n\t * values.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/#Line_series_with_gaps} for more information about this feature\r\n\t * @default true\r\n\t * @param value Connect?\r\n\t */\r\n\tpublic set connect(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"connect\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Connect?\r\n\t */\r\n\tpublic get connect(): boolean {\r\n\t\treturn this.getPropertyValue(\"connect\");\r\n\t}\r\n\r\n\t/**\r\n\t * Horizontal tension setting of the line (0-1).\r\n\t *\r\n\t * Can be used to create smoothed lines. It works like this:\r\n\t *\r\n\t * Accepted values are in the range between 0 and 1. The biggest value (1)\r\n\t * will mean that the \"tension\" is very high, so the line is maximally\r\n\t * attracted to the points it connects, hence the straight line.\r\n\t *\r\n\t * Using smaller numbers will \"relax\" the tension, creating some curving.\r\n\t *\r\n\t * The smaller the tension setting, the more relaxed the line and the more\r\n\t * wide the curve.\r\n\t *\r\n\t * This setting is for horizontal tension, meaning the curve will bend in\r\n\t * such way that it never goes below or above connecting points. To enable\r\n\t * vertical bending as well, use `tensionY`.\r\n\t *\r\n\t * IMPORTANT: line smoothing works best when data items are placed at regular\r\n\t * intervals. For setups where data items are spaced erratically, enabling\r\n\t * smoothing might result in awkwardly looking lines.\r\n\t *\r\n\t * @default 1\r\n\t * @param value Horizontal tension (0-1)\r\n\t */\r\n\tpublic set tensionX(value: number) {\r\n\t\tthis.setPropertyValue(\"tensionX\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Horizontal tension (0-1)\r\n\t */\r\n\tpublic get tensionX(): number {\r\n\t\treturn this.getPropertyValue(\"tensionX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Can be used to create smoothed lines. It works like this:\r\n\t *\r\n\t * Accepted values are in the range between 0 and 1. The biggest value (1)\r\n\t * will mean that the \"tension\" is very high, so the line is maximally\r\n\t * attracted to the points it connects, hence the straight line.\r\n\t *\r\n\t * Using smaller numbers will \"relax\" the tension, creating some curving.\r\n\t *\r\n\t * The smaller the tension setting, the more relaxed the line and the more\r\n\t * wide the curve.\r\n\t *\r\n\t * This setting is for vertical tension, meaning the curve might bend in\r\n\t * such way that it will go below or above connected points.\r\n\t *\r\n\t * Combine this setting with `tensionX` to create beautifully looking\r\n\t * smoothed line series.\r\n\t *\r\n\t * @default 1\r\n\t * @param value Vertical tension (0-1)\r\n\t */\r\n\tpublic set tensionY(value: number) {\r\n\t\tthis.setPropertyValue(\"tensionY\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical tension (0-1)\r\n\t */\r\n\tpublic get tensionY(): number {\r\n\t\treturn this.getPropertyValue(\"tensionY\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container): void {\r\n\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.disposeChildren();\r\n\r\n\t\tlet line: Line = marker.createChild(Line);\r\n\t\tline.shouldClone = false;\r\n\t\t//line.copyFrom(<any>this); coppies events which is not good\r\n\t\t$object.copyProperties(this, line, visualProperties);\r\n\r\n\t\tline.x2 = w;\r\n\t\tline.y = h / 2;\r\n\t\tline.y2 = 0.00001;\r\n\t\tline.visible = true;\r\n\r\n\t\tif (this.fillOpacity > 0) {\r\n\t\t\tlet fill: Rectangle = marker.createChild(Rectangle);\r\n\t\t\t//fill.copyFrom(<any>this); coppies events which is not good\r\n\t\t\t$object.copyProperties(this, fill, visualProperties);\r\n\t\t\tfill.width = w;\r\n\t\t\tfill.height = h;\r\n\t\t\tfill.y = 0;\r\n\t\t\tfill.strokeOpacity = 0;\r\n\t\t\tfill.visible = true;\r\n\r\n\t\t\tline.y = 0;\r\n\t\t}\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = this.stroke;\r\n\t\tlegendDataItem.colorOrig = this.fill;\r\n\r\n\t\t$iter.eachContinue(this.bullets.iterator(), (bullet) => {\r\n\r\n\t\t\tif ((bullet instanceof Bullet) && !bullet.copyToLegendMarker) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tlet hasLabels: boolean = false;\r\n\r\n\t\t\tif (bullet instanceof Container) {\r\n\t\t\t\t// do not copy bullets with labels\r\n\r\n\t\t\t\t$iter.each(bullet.children.iterator(), (child) => {\r\n\t\t\t\t\tif (child instanceof Label) {\r\n\t\t\t\t\t\thasLabels = true;\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (!hasLabels) {\r\n\t\t\t\tlet clone: Sprite = <Sprite>bullet.clone();\r\n\t\t\t\tclone.parent = marker;\r\n\t\t\t\tclone.isMeasured = true;\r\n\t\t\t\tclone.tooltipText = undefined;\r\n\t\t\t\tclone.x = w / 2;\r\n\t\t\t\tif (this.fillOpacity > 0) {\r\n\t\t\t\t\tclone.y = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tclone.y = h / 2;\r\n\t\t\t\t}\r\n\t\t\t\tclone.visible = true;\r\n\r\n\t\t\t\t// otherwise will not transit to color after hiding\r\n\t\t\t\tif (!$type.hasValue(clone.fill)) {\r\n\t\t\t\t\tclone.fill = this.fill;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$type.hasValue(clone.stroke)) {\r\n\t\t\t\t\tclone.stroke = this.stroke;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tthis.segments.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * If `connect = false` and distance between two data points is bigger\r\n\t * than `baseInterval * autoGapCount`, a line will break automatically.\r\n\t *\r\n\t * @since 4.2.4\r\n\t * @param value Gap count\r\n\t */\r\n\tpublic set autoGapCount(value: number) {\r\n\t\tthis.setPropertyValue(\"autoGapCount\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Gap count\r\n\t */\r\n\tpublic get autoGapCount(): number {\r\n\t\treturn this.getPropertyValue(\"autoGapCount\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LineSeries\"] = LineSeries;\r\nregistry.registeredClasses[\"LineSeriesDataItem\"] = LineSeriesDataItem;\r\n","/**\r\n * Radar series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeries, LineSeriesDataItem, ILineSeriesDataFields, ILineSeriesProperties, ILineSeriesAdapters, ILineSeriesEvents } from \"./LineSeries\";\r\nimport { LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { AxisRendererRadial } from \"../axes/AxisRendererRadial\";\r\nimport { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { RadarChart } from \"../types/RadarChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n//import { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\n//import { Sprite } from \"../../core/Sprite\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[RadarSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class RadarSeriesDataItem extends LineSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: RadarSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarSeriesDataItem\";\r\n\r\n\t\tthis.setLocation(\"dateX\", 0, 0);\r\n\t\tthis.setLocation(\"dateY\", 0, 0);\r\n\r\n\t\tthis.setLocation(\"categoryX\", 0, 0);\r\n\t\tthis.setLocation(\"categoryY\", 0, 0);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[RadarSeries]].\r\n */\r\nexport interface IRadarSeriesDataFields extends ILineSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[RadarSeries]].\r\n */\r\nexport interface IRadarSeriesProperties extends ILineSeriesProperties {\r\n\r\n\t/**\r\n\t * Should the last and and first data points be connected, forming a complete\r\n\t * closed circle?\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tconnectEnds?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[RadarSeries]].\r\n */\r\nexport interface IRadarSeriesEvents extends ILineSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RadarSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRadarSeriesAdapters extends ILineSeriesAdapters, IRadarSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a radar graph.\r\n *\r\n * @see {@link IRadarSeriesEvents} for a list of available Events\r\n * @see {@link IRadarSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class RadarSeries extends LineSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IRadarSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRadarSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRadarSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRadarSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: RadarSeriesDataItem;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: RadarChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarSeries\";\r\n\t\tthis.connectEnds = true;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\t// so that radius would be updated\r\n\t\tif (this.chart.invalid) {\r\n\t\t\tthis.chart.validate();\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new RadarSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param xKey Name of X data field\r\n\t * @param yKey Name of Y data field\r\n\t * @param locationX X location\r\n\t * @param locationY Y location\r\n\t * @param stackKeyX ?\r\n\t * @param stackKeyY ?\r\n\t * @returns Coordinates\r\n\t */\r\n\tpublic getPoint(dataItem: RadarSeriesDataItem, xKey: string, yKey: string, locationX?: number, locationY?: number, stackKeyX?: string, stackKeyY?: string) {\r\n\t\tif (!stackKeyX) {\r\n\t\t\tstackKeyX = \"valueX\";\r\n\t\t}\r\n\t\tif (!stackKeyY) {\r\n\t\t\tstackKeyY = \"valueY\";\r\n\t\t}\r\n\r\n\t\tlet x: number = this.yAxis.getX(dataItem, yKey, locationY, stackKeyY);\r\n\t\tlet y: number = this.yAxis.getY(dataItem, yKey, locationY, stackKeyY);\r\n\r\n\t\tlet radius: number = $math.getDistance({ x: x, y: y });\r\n\r\n\t\t// hack to be able to determine angle later\r\n\t\tif (radius == 0) {\r\n\t\t\tradius = 0.00001;\r\n\t\t}\r\n\r\n\t\tlet angle: number = this.xAxis.getAngle(dataItem, xKey, locationX, stackKeyX);\r\n\r\n\t\tlet startAngle = this.chart.startAngle;\r\n\t\tlet endAngle = this.chart.endAngle;\r\n\r\n\t\t//\t\tangle = $math.fitToRange(angle, startAngle, endAngle);\r\n\t\tif (angle < startAngle || angle > endAngle) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn { x: radius * $math.cos(angle), y: radius * $math.sin(angle) };\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [addPoints description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param points [description]\r\n\t * @param dataItem [description]\r\n\t * @param xField [description]\r\n\t * @param yField [description]\r\n\t * @param backwards [description]\r\n\t */\r\n\tprotected addPoints(points: IPoint[], dataItem: this[\"_dataItem\"], xField: string, yField: string, backwards?: boolean): void {\r\n\t\tlet point = this.getPoint(dataItem, xField, yField, dataItem.locations[xField], dataItem.locations[yField]);\r\n\t\tif (point) {\r\n\t\t\tpoints.push(point);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an SVG path to be used as a mask for the series.\r\n\t *\r\n\t * @return SVG path\r\n\t */\r\n\tprotected getMaskPath(): string {\r\n\t\tlet renderer: AxisRendererRadial = <AxisRendererRadial>this.yAxis.renderer;\r\n\t\treturn $path.arc(renderer.startAngle, renderer.endAngle - renderer.startAngle, renderer.pixelRadius, renderer.pixelInnerRadius);\r\n\t}\r\n\r\n\t/**\r\n\t * [drawSegment description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param segment [description]\r\n\t * @param points [description]\r\n\t * @param closePoints [description]\r\n\t */\r\n\tprotected drawSegment(segment: LineSeriesSegment, points: IPoint[], closePoints: IPoint[]): void {\r\n\t\tlet axis: Axis = this.yAxis;\r\n\t\tlet renderer: AxisRendererRadial = <AxisRendererRadial>axis.renderer;\r\n\r\n\t\tif (this.connectEnds && Math.abs(renderer.endAngle - renderer.startAngle) == 360) {\r\n\t\t\t// adds one point to the beginning of closePoints array, if needed\r\n\t\t\tif (this.dataFields[<keyof this[\"_dataFields\"]>this._xOpenField] ||\r\n\t\t\t\tthis.dataFields[<keyof this[\"_dataFields\"]>this._yOpenField] ||\r\n\t\t\t\tthis.stacked) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t\tif (closePoints.length > 0) {\r\n\t\t\t\t\tclosePoints.unshift(closePoints[closePoints.length - 1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper.drawSegment(segment, points, closePoints);\r\n\t}\r\n\r\n\t/**\r\n\t * Should the last and and first data points be connected, forming a complete\r\n\t * closed circle?\r\n\t *\r\n\t * @default true\r\n\t * @param value Connect?\r\n\t */\r\n\tpublic set connectEnds(value: boolean) {\r\n\t\tthis.setPropertyValue(\"connectEnds\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Connect?\r\n\t */\r\n\tpublic get connectEnds(): boolean {\r\n\t\treturn this.getPropertyValue(\"connectEnds\");\r\n\t}\r\n\r\n\tprotected positionBulletReal(bullet:Sprite, positionX:number, positionY:number){\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif(positionX < xAxis.start || positionX > xAxis.end || positionY < yAxis.start || positionY > yAxis.end){\r\n\t\t\tbullet.visible = false;\r\n\t\t}\r\n\t\t\r\n\t\tbullet.moveTo(this.xAxis.renderer.positionToPoint(positionX, positionY));\t\t\r\n\t}\r\n\r\n\r\n\tprotected setXAxis(axis: Axis) {\r\n\t\tsuper.setXAxis(axis);\r\n\t\tthis.updateRendererRefs();\r\n\t}\r\n\r\n\tprotected setYAxis(axis: Axis) {\r\n\t\tsuper.setYAxis(axis);\r\n\t\tthis.updateRendererRefs();\r\n\t}\r\n\r\n\tprotected updateRendererRefs() {\r\n\t\tlet rendererX = <AxisRendererCircular>this.xAxis.renderer;\r\n\t\tlet rendererY = <AxisRendererRadial>this.yAxis.renderer;\r\n\r\n\t\trendererX.axisRendererY = rendererY;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarSeries\"] = RadarSeries;\r\nregistry.registeredClasses[\"RadarSeriesDataItem\"] = RadarSeriesDataItem;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisFill, IAxisFillProperties, IAxisFillAdapters, IAxisFillEvents } from \"./AxisFill\";\r\nimport { Axis } from \"./Axis\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { AxisRendererCircular } from \"./AxisRendererCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisFillCircular]].\r\n */\r\nexport interface IAxisFillCircularProperties extends IAxisFillProperties {\r\n\r\n\t/**\r\n\t * Inner radius. Relative ir absolute.\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * Outer radius. Relative or absolute.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Corner radius for the fill. In pixels.\r\n\t */\r\n\tcornerRadius?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisFillCircular]].\r\n */\r\nexport interface IAxisFillCircularEvents extends IAxisFillEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisFillCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisFillCircularAdapters extends IAxisFillAdapters, IAxisFillCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Provides fill element functionality for circular Axes.\r\n *\r\n * @see {@link IAxisFillCircularEvents} for a list of available events\r\n * @see {@link IAxisFillCircularAdapters} for a list of available Adapters\r\n * @todo Needs description\r\n */\r\nexport class AxisFillCircular extends AxisFill {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisFillCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisFillCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisFillCircularEvents;\r\n\r\n\t/**\r\n\t * An SVG path, used to draw fill shape.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic fillPath: string;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tconstructor(axis: Axis) {\r\n\t\tsuper(axis);\r\n\r\n\t\tthis.className = \"AxisFillCircular\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.radius = percent(100);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the fill element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tif(this.__disabled || this.disabled){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif (this.axis) {\r\n\t\t\tlet renderer: AxisRendererCircular = <AxisRendererCircular>this.axis.renderer;\r\n\t\t\tthis.fillPath = renderer.getPositionRangePath(this.startPosition, this.endPosition, this.radius, $type.hasValue(this.innerRadius) ? this.innerRadius : renderer.innerRadius, this.cornerRadius);\r\n\t\t\tthis.path = this.fillPath;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n\t *\r\n\t * @param value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the fill. Relative ([[Percent]]) or absolute (pixels).\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Corner radius for the fill. In pixels.\r\n\t *\r\n\t * @param value Corner radius (px)\r\n\t */\r\n\tpublic set cornerRadius(value: number) {\r\n\t\tthis.setPropertyValue(\"cornerRadius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Corner radius (px)\r\n\t */\r\n\tpublic get cornerRadius(): number {\r\n\t\treturn this.getPropertyValue(\"cornerRadius\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisFillCircular\"] = AxisFillCircular;\r\n","/**\r\n * A module defining functionality for circular axis grid elements.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Grid, IGridProperties, IGridAdapters, IGridEvents } from \"./Grid\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[GridCircular]].\r\n */\r\nexport interface IGridCircularProperties extends IGridProperties {\r\n\r\n\t/**\r\n\t * Inner radius of the circular grid. (absolute or relative)\r\n\t */\r\n\tinnerRadius: number | Percent;\r\n\r\n\t/**\r\n\t * Outer radius of the circular grid. (absolute or relative)\r\n\t */\r\n\tradius: number | Percent;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[GridCircular]].\r\n */\r\nexport interface IGridCircularEvents extends IGridEvents { }\r\n\r\n/**\r\n * Defines adapters for [[GridCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IGridCircularAdapters extends IGridAdapters, IGridCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a circular grid element for circular-type axis.\r\n *\r\n * @see {@link IGridCircularEvents} for a list of available events\r\n * @see {@link IGridCircularAdapters} for a list of available Adapters\r\n * @todo Review: container is better, as we'll be able to attach something to the GridCircular, also with 3d charts we might need some additional elements\r\n */\r\nexport class GridCircular extends Grid {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IGridCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IGridCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IGridCircularEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"GridCircular\";\r\n\t\tthis.pixelPerfect = false;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @param value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the circular grid. (absolute or relative)\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GridCircular\"] = GridCircular;\r\n","/**\r\n * Axis Label module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisLabel, IAxisLabelProperties, IAxisLabelAdapters, IAxisLabelEvents } from \"./AxisLabel\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisLabelCircular]].\r\n */\r\nexport interface IAxisLabelCircularProperties extends IAxisLabelProperties {\r\n\r\n\t/**\r\n\t * Rotation angle of the label in relation to circle line.\r\n\t */\r\n\trelativeRotation?: number;\r\n\r\n\t/**\r\n\t * Distance of the label from circle line.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Specifies if label should be bent along the circle\r\n\t *\r\n\t * @type {boolean}\r\n\t */\r\n\tbent?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisLabelCircular]].\r\n */\r\nexport interface IAxisLabelCircularEvents extends IAxisLabelEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisLabelCircular]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisLabelCircularAdapters extends IAxisLabelAdapters, IAxisLabelCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Use to create labels on circular axis.\r\n *\r\n * @see {@link IAxisLabelCircularEvents} for a list of available events\r\n * @see {@link IAxisLabelCircularAdapters} for a list of available Adapters\r\n */\r\nexport class AxisLabelCircular extends AxisLabel {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisLabelCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisLabelCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisLabelCircularEvents;\r\n\r\n\t/**\r\n\t * Related data item.\r\n\t */\r\n\tpublic _dataItem: any;\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic fdx: number = 0;\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic fdy: number = 0;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisLabelCircular\";\r\n\t\tthis.padding(0, 0, 0, 0);\r\n\t\tthis.location = 0.5;\r\n\t\tthis.locationOnPath = 0.5;\r\n\t\tthis.radius = 0;\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Relative rotation of the label.\r\n\t *\r\n\t * It is an angle to circle. In case 90, labels will be positioned like rays\r\n\t * of light, if 0 - positioned along the circle.\r\n\t *\r\n\t * @param value Rotation angle\r\n\t */\r\n\tpublic set relativeRotation(value: number) {\r\n\t\tthis.setPropertyValue(\"relativeRotation\", value, true);\r\n\t\tif (!$type.hasValue(value)) {\r\n\t\t\tthis.rotation = undefined;\r\n\r\n\t\t\tlet dataItem = this.dataItem;\r\n\t\t\tif (dataItem && dataItem.component) {\r\n\t\t\t\tdataItem.component.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rotation angle\r\n\t */\r\n\tpublic get relativeRotation(): number {\r\n\t\treturn this.getPropertyValue(\"relativeRotation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Distance from axis circle to label in pixels or percent.\r\n\t *\r\n\t * @param value Distance (px or percent)\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Distance (px)\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if label should be bent along the circle.\r\n\t *\r\n\t * IMPORTANT: Use this with caution, since it is quite CPU-greedy.\r\n\t *\r\n\t * @since 4.1.2\r\n\t * @default false\r\n\t * @param value Bent?\r\n\t */\r\n\tpublic set bent(value: boolean) {\r\n\t\tthis.setPropertyValue(\"bent\", value, true);\r\n\t\tthis.setPropertyValue(\"wrap\", false);\r\n\t\tthis.setPropertyValue(\"horizontalCenter\", \"none\");\r\n\t\tthis.setPropertyValue(\"verticalCenter\", \"none\");\r\n\r\n\t\tif (value) {\r\n\t\t\tthis.setPropertyValue(\"dx\", 0);\r\n\t\t\tthis.setPropertyValue(\"dy\", 0);\r\n\t\t\tthis.setPropertyValue(\"x\", 0);\r\n\t\t\tthis.setPropertyValue(\"y\", 0);\r\n\t\t\tthis.setPropertyValue(\"rotation\", 0)\r\n\t\t\t//this.setPropertyValue(\"relativeRotation\", undefined);\r\n\t\t\tthis.fdx = 0;\r\n\t\t\tthis.fdy = 0;\r\n\t\t\tthis.textAlign = \"middle\";\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif(this.textPathElement){\r\n\t\t\t\tthis.textPathElement.dispose();\r\n\t\t\t\tthis.textPathElement = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Bent?\r\n\t */\r\n\tpublic get bent(): boolean {\r\n\t\treturn this.getPropertyValue(\"bent\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns label radius in pixels.\r\n\t * \r\n\t * @param axisRadius Radius\r\n\t * @return Pixel radius\r\n\t */\r\n\tpublic pixelRadius(axisRadius: number): number {\r\n\t\tlet sign: number = 1;\r\n\t\tif (this.inside) {\r\n\t\t\tsign = -1;\r\n\t\t}\r\n\r\n\t\treturn $utils.relativeToValue(this.radius, axisRadius) * sign;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns label horizontal radius in pixels.\r\n\t * \r\n\t * @param axisRadius Radius\r\n\t * @param axisRadiusY Vertical radius\r\n\t * @return Radius\r\n\t */\r\n\tpublic pixelRadiusY(axisRadius: number, axisRadiusY: number): number {\r\n\t\tlet sign: number = 1;\r\n\t\tif (this.inside) {\r\n\t\t\tsign = -1;\r\n\t\t}\r\n\r\n\t\tlet radius = this.radius;\r\n\r\n\t\tif ($type.isNumber(radius)) {\r\n\t\t\tradius *= axisRadiusY / axisRadius;\r\n\t\t\treturn $utils.relativeToValue(radius, axisRadius) * sign;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn $utils.relativeToValue(radius, axisRadiusY) * sign;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [fixPosition description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param point Label affixation point\r\n\t * @param axisRadius Distance from point (px)\r\n\t */\r\n\tpublic fixPosition(angle: number, axisRadius: number, axisRadiusY?: number, dx?: number, dy?: number) {\r\n\t\tif (!$type.isNumber(axisRadiusY)) {\r\n\t\t\taxisRadiusY = axisRadius;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(dx)) {\r\n\t\t\tdx = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(dy)) {\r\n\t\t\tdy = 0;\r\n\t\t}\r\n\r\n\t\tlet point = { x: axisRadius * $math.cos(angle), y: axisRadiusY * $math.sin(angle) };\r\n\r\n\t\tif (this.invalid) {\r\n\t\t\tthis.validate(); //@todo\" check if we need this\r\n\t\t}\r\n\r\n\t\tlet isNegative = false;\r\n\t\tlet realRadius = this.radius;\r\n\r\n\t\tif (realRadius instanceof Percent && realRadius.value < 0) {\r\n\t\t\tisNegative = true;\r\n\t\t}\r\n\t\telse if (realRadius < 0) {\r\n\t\t\tisNegative = true;\r\n\t\t}\r\n\r\n\t\tlet relativeRotation = this.relativeRotation;\r\n\t\tlet labelRadius = this.pixelRadius(axisRadius);\r\n\r\n\t\tif (this.bent) {\r\n\t\t\tlet point = { x: (axisRadius + labelRadius )* $math.cos(angle + 180), y: (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle + 180) };\r\n\t\t\tthis.path = $path.moveTo(point) + $path.arcTo(angle + 180, 360, axisRadius + labelRadius, axisRadiusY + labelRadius * axisRadiusY / axisRadius);\r\n\t\t\t\r\n\t\t\tif (this.textPathElement) {\r\n\t\t\t\tthis.textPathElement.attr({ \"startOffset\": (this.locationOnPath * 100) + \"%\" })\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// WHEN ROTATED\r\n\t\tif ($type.isNumber(relativeRotation)) {\r\n\r\n\t\t\tthis.horizontalCenter = \"none\";\r\n\t\t\tthis.verticalCenter = \"none\";\r\n\r\n\t\t\tangle = $math.fitAngleToRange(angle, -180, 180);\r\n\r\n\t\t\tlet pixelWidth = this.bbox.width;\r\n\t\t\tlet pixelHeight = this.bbox.height;\r\n\r\n\t\t\tlet pixelPaddingBottom = this.pixelPaddingBottom;\r\n\t\t\tlet pixelPaddingTop = this.pixelPaddingTop;\r\n\t\t\tlet pixelPaddingLeft = this.pixelPaddingLeft;\r\n\t\t\tlet pixelPaddingRight = this.pixelPaddingRight;\r\n\r\n\t\t\tif (angle > 90 || angle < -90) {\r\n\t\t\t\tif (relativeRotation == -90) {\r\n\t\t\t\t\trelativeRotation = 90;\r\n\t\t\t\t\tpixelWidth = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (relativeRotation == -90) {\r\n\t\t\t\t\tpixelHeight = - pixelHeight;\r\n\t\t\t\t}\r\n\t\t\t\tif (relativeRotation == 90) {\r\n\t\t\t\t\trelativeRotation = -90;\r\n\t\t\t\t\tpixelWidth = -pixelPaddingLeft - pixelPaddingRight;\r\n\t\t\t\t\tpixelHeight = - pixelHeight - pixelPaddingTop - pixelPaddingBottom;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.rotation = relativeRotation + angle + 90;\r\n\r\n\t\t\tlet dH = $math.sin(relativeRotation) / 2;\r\n\t\t\tlet dW = $math.cos(relativeRotation) / 2;\r\n\r\n\t\t\tlet rotation = this.rotation;\r\n\r\n\t\t\tthis.dx = pixelHeight * dH * $math.sin(rotation) - pixelWidth * dW * $math.cos(rotation);\r\n\t\t\tthis.dy = -pixelHeight * dH * $math.cos(rotation) - pixelWidth * dW * $math.sin(rotation);\r\n\r\n\t\t\tif (!this.inside) {\r\n\t\t\t\tlabelRadius += (pixelHeight + pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelWidth + pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (angle > 90 || angle < -90) {\r\n\t\t\t\t\tlabelRadius -= (pixelPaddingBottom + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight) * $math.sin(relativeRotation);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlabelRadius += (pixelPaddingBottom + this.bbox.height + pixelPaddingTop) * $math.cos(relativeRotation) + (pixelPaddingLeft + pixelPaddingRight + this.bbox.width) * $math.sin(relativeRotation);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tpoint.x += $math.cos(angle) * labelRadius;\r\n\t\t\tpoint.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// END OF ROTATED\r\n\t\t\tthis.horizontalCenter = \"middle\";\r\n\t\t\tthis.verticalCenter = \"middle\";\r\n\r\n\t\t\tif (isNegative) {\r\n\t\t\t\tthis.dx = 0;\r\n\t\t\t\tthis.dy = 0;\r\n\t\t\t\tpoint.x = (axisRadius + labelRadius) * $math.cos(angle);\r\n\t\t\t\tpoint.y = (axisRadiusY + labelRadius * axisRadiusY / axisRadius) * $math.sin(angle);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// we don't use valign for labels because then they would jump while animating. instead we modify dy depending on a y position\r\n\t\t\t\t// this math makes dy to be 1 at the top of the circle, 0.5 at the middle and 1 at the bottom\r\n\t\t\t\t// @todo with this math doesn't work well with inside = true\r\n\t\t\t\tthis.dy = this._measuredHeight / 2 * $math.sin(angle) //(1 - (point.y + axisRadiusY) / (2 * axisRadiusY));\r\n\t\t\t\t// simmilar with dx\r\n\t\t\t\tthis.dx = this._measuredWidth / 2 * $math.cos(angle) //(1 - (point.x + axisRadius) / (2 * axisRadius));\r\n\r\n\t\t\t\tpoint.x += $math.cos(angle) * labelRadius;\r\n\t\t\t\tpoint.y += $math.sin(angle) * labelRadius * axisRadiusY / axisRadius;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpoint.x += dx;\r\n\t\tpoint.y += dy;\r\n\r\n\t\tthis.fdx = this.dx;\r\n\t\tthis.fdy = this.dy;\r\n\r\n\t\tthis.moveTo(point);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisLabelCircular\"] = AxisLabelCircular;\r\n","/**\r\n * Module, defining Axis Renderer for circular axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRenderer, IAxisRendererProperties, IAxisRendererAdapters, IAxisRendererEvents } from \"./AxisRenderer\";\r\nimport { Axis } from \"./Axis\";\r\nimport { RadarChart } from \"../types/RadarChart\";\r\nimport { AxisFillCircular } from \"./AxisFillCircular\";\r\nimport { AxisRendererRadial } from \"./AxisRendererRadial\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { GridCircular } from \"./GridCircular\";\r\nimport { AxisLabelCircular } from \"./AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererCircular]].\r\n */\r\nexport interface IAxisRendererCircularProperties extends IAxisRendererProperties {\r\n\r\n\t/**\r\n\t * Start angle of the circular axis in degrees (0-360).\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * End angle of the circular axis in degrees (0-360).\r\n\t */\r\n\tendAngle?: number;\r\n\r\n\t/**\r\n\t * Outer radius of the circular axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius of the circular axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * Specifies if axis should use it's own start/end angles or the ones set on chart.\r\n\t */\r\n\tuseChartAngles?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisRendererCircular]].\r\n */\r\nexport interface IAxisRendererCircularEvents extends IAxisRendererEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRenderer]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererCircularAdapters extends IAxisRendererAdapters, IAxisRendererCircularProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A renderer for circular axis.\r\n */\r\nexport class AxisRendererCircular extends AxisRenderer {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererCircularProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererCircularAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererCircularEvents;\r\n\r\n\t/**\r\n\t * Defines type of the grid elements.\r\n\t */\r\n\tpublic _gridType: GridCircular;\r\n\r\n\t/**\r\n\t * Defines type for the fill elements.\r\n\t */\r\n\tpublic _fillType: AxisFillCircular;\r\n\r\n\t/**\r\n\t * Defines type for the label elements.\r\n\t */\r\n\tpublic _labelType: AxisLabelCircular;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic pixelRadiusReal: number = 0;\r\n\r\n\r\n\t/**\r\n\t * Y axis renderer\r\n\t */\r\n\tpublic axisRendererY: AxisRendererRadial;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\t// axis.layout = \"none\"; // does not trigger redraw when size changes\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.className = \"AxisRendererCircular\";\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\r\n\t\tthis.useChartAngles = true;\r\n\t\tthis.radius = percent(100);\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.grid.template.location = 0;\r\n\r\n\t\tthis.labels.template.location = 0;\r\n\t\tthis.labels.template.radius = 15;\r\n\r\n\t\tthis.ticks.template.location = 0;\r\n\t\tthis.ticks.template.pixelPerfect = false;\r\n\t\tthis.tooltipLocation = 0;\r\n\r\n\t\tthis.line.strokeOpacity = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t* @ignore\r\n\t*/\r\n\tpublic setAxis(axis: Axis) {\r\n\t\tsuper.setAxis(axis);\r\n\t\taxis.isMeasured = false;\r\n\r\n\t\t// modify x and y so that tooltip would always be on circle\r\n\t\tlet tooltip = axis.tooltip;\r\n\r\n\t\ttooltip.adapter.add(\"dx\", (x, target) => {\r\n\t\t\tlet point: IPoint = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, this);\r\n\t\t\treturn this.pixelRadius * Math.cos(Math.atan2(point.y, point.x)) - point.x;\r\n\t\t});\r\n\r\n\t\ttooltip.adapter.add(\"dy\", (y, target) => {\r\n\t\t\tlet point: IPoint = $utils.svgPointToSprite({ x: target.pixelX, y: target.pixelY }, this);\r\n\t\t\treturn this.pixelRadius * Math.sin(Math.atan2(point.y, point.x)) - point.y;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\t// so that radius would be updated\r\n\t\tif (this.chart && this.chart.invalid) {\r\n\t\t\tthis.chart.validate();\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\treturn 2 * Math.PI * this.pixelRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"radius\", value, false, false, 10, false)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius in pixels.\r\n\t *\r\n\t * @return Outer radius (px)\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.radius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"innerRadius\", value, false, false, 10, false)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\tlet chart = <RadarChart>this.chart;\t\t\r\n\t\tlet innerRadius = this.getPropertyValue(\"innerRadius\");\r\n\t\tif(chart){\r\n\t\t\tif (!$type.hasValue(innerRadius)) {\r\n\t\t\t\tinnerRadius = chart.innerRadius;\r\n\r\n\t\t\t\tif (innerRadius instanceof Percent && chart) {\r\n\t\t\t\t\tinnerRadius = percent(innerRadius.value * chart.innerRadiusModifyer * 100)\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (innerRadius instanceof Percent && chart) {\r\n\t\t\t\t\tlet mr = chart.mr;\r\n\t\t\t\t\tlet value = innerRadius.value;\r\n\t\t\t\t\tvalue = Math.max(mr * value, mr - Math.min(chart.plotContainer.innerHeight, chart.plotContainer.innerWidth)) / mr;\r\n\t\t\t\t\tinnerRadius = percent(value * 100);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn innerRadius;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if axis should use its own `startAngle` and `endAngle` or\r\n\t * inherit them from relative properties from chart.\r\n\t *\r\n\t * @default false\r\n\t * @param value Use chart's angles\r\n\t */\r\n\tpublic set useChartAngles(value: boolean) {\r\n\t\tthis.setPropertyValue(\"useChartAngles\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use chart angles\r\n\t */\r\n\tpublic get useChartAngles(): boolean {\r\n\t\treturn this.getPropertyValue(\"useChartAngles\");\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius in pixels.\r\n\t *\r\n\t * @return Inner radius (px)\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.innerRadius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param position2 Position (0-1) Position on the second axis\r\n\t * @return Point\r\n\t */\r\n\tpublic positionToPoint(position: number, position2?: number): IPoint {\r\n\r\n\t\tif (!$type.isNumber(position2)) {\r\n\t\t\tposition2 = 1;\r\n\t\t}\r\n\r\n\t\tlet coordinate: number = this.positionToCoordinate(position);\r\n\t\tlet angle: number = this.startAngle + (this.endAngle - this.startAngle) * coordinate / this.axisLength;\r\n\t\tlet radius = this.pixelRadius;\r\n\t\tlet innerRadius = this.pixelInnerRadius;\r\n\r\n\t\tif (this.axisRendererY) {\r\n\t\t\tlet realRadius = $math.fitToRange(this.axisRendererY.positionToCoordinate(position2), 0, Infinity)\r\n\t\t\tlet point = { x: realRadius * $math.cos(angle), y: realRadius * $math.sin(angle) };\r\n\t\t\treturn point;\r\n\t\t}\r\n\r\n\t\treturn { x: $math.cos(angle) * innerRadius + (radius - innerRadius) * $math.cos(angle) * position2, y: $math.sin(angle) * innerRadius + (radius - innerRadius) * $math.sin(angle) * position2 };\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position (0-1) on axis to angle in degrees (0-360).\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Angle (0-360)\r\n\t */\r\n\tpublic positionToAngle(position: number): number {\r\n\t\tlet axis: Axis = this.axis;\r\n\r\n\t\tlet arc: number = (this.endAngle - this.startAngle) / (axis.end - axis.start);\r\n\r\n\t\tlet angle: number;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tangle = this.startAngle + (axis.end - position) * arc;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tangle = this.startAngle + (position - axis.start) * arc;\r\n\t\t}\r\n\r\n\t\treturn $math.round(angle, 3);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts angle on axis to relative position(0-1).\r\n\t *\r\n\t * @param angle Angle in degrees\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic angleToPosition(angle: number): number {\r\n\t\tlet axis: Axis = this.axis;\r\n\r\n\t\tlet arc: number = (this.endAngle - this.startAngle) / (axis.end - axis.start);\r\n\t\tlet position: number\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tposition = axis.end - (angle - this.startAngle) / arc;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tposition = (angle - this.startAngle) / arc + axis.start;\r\n\t\t}\r\n\r\n\t\treturn $math.round(position, 5);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine() {\r\n\t\tlet radius: number = this.pixelRadius;\r\n\t\tlet startAngle: number = this.startAngle;\r\n\t\tlet endAngle: number = this.endAngle;\r\n\r\n\t\tlet arc: number = endAngle - startAngle;\r\n\t\tthis.line.path = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, arc, radius, radius);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: GridCircular, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tif ($type.isNumber(point.x) && $type.isNumber(point.y) && grid.element) {\r\n\t\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\t\t\tlet radius: number = $utils.relativeRadiusToValue($type.hasValue(grid.radius) ? grid.radius : percent(100), this.pixelRadius);\r\n\r\n\t\t\tlet gridInnerRadius = $utils.relativeRadiusToValue(grid.innerRadius, this.pixelRadius);\r\n\t\t\tgrid.zIndex = 0;\r\n\r\n\t\t\tlet innerRadius: number = $utils.relativeRadiusToValue($type.isNumber(gridInnerRadius) ? gridInnerRadius : this.innerRadius, this.pixelRadiusReal, true);\r\n\r\n\t\t\tgrid.path = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) }) + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t}\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param tick Tick element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number) {\r\n\r\n\t\tposition = position + (endPosition - position) * tick.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tif (tick.element) {\r\n\t\t\tlet radius: number = this.pixelRadius;\r\n\t\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\t\t\tlet tickLength: number = tick.length;\r\n\t\t\tif (tick.inside) {\r\n\t\t\t\ttickLength = -tickLength;\r\n\t\t\t}\r\n\t\t\ttick.zIndex = 1;\r\n\t\t\ttick.path = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) }) + $path.lineTo({ x: (radius + tickLength) * $math.cos(angle), y: (radius + tickLength) * $math.sin(angle) });\r\n\t\t}\r\n\r\n\t\tthis.toggleVisibility(tick, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions axis bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet AxisBullet element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateBullet(bullet: Sprite, position: number, endPosition: number): void {\r\n\t\tlet location = 0.5;\r\n\t\tif (bullet instanceof AxisBullet) {\r\n\t\t\tlocation = bullet.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\tlet radius: number = this.pixelRadius;\r\n\t\tlet angle: number = $math.DEGREES * Math.atan2(point.y, point.x);\r\n\r\n\t\tpoint = { x: radius * $math.cos(angle), y: radius * $math.sin(angle) }\r\n\r\n\t\tthis.positionItem(bullet, point);\r\n\r\n\t\tthis.toggleVisibility(bullet, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param label Label element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: this[\"_labelType\"], position: number, endPosition: number, location?: number) {\r\n\r\n\t\tif (!$type.hasValue(location)) {\r\n\t\t\tlocation = label.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\r\n\t\tlabel.fixPosition(this.positionToAngle(position), this.pixelRadius);\r\n\t\tlabel.zIndex = 2;\r\n\r\n\t\tthis.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if point is within bounds of a container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param point Point coordinates\r\n\t * @return Fits?\r\n\t */\r\n\tpublic fitsToBounds(point: IPoint): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Start angle of the axis in degrees (0-360).\r\n\t *\r\n\t * @param value Start angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\t// do not normalize angel here!\r\n\t\tif (this.setPropertyValue(\"startAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * End angle of the axis in degrees (0-360).\r\n\t *\r\n\t * @param value End angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\t// do not normalize angel here!\r\n\t\tif (this.setPropertyValue(\"endAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition Starting position\r\n\t * @param endPosition End position\r\n\t * @return SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number, radius?: number | Percent, innerRadius?: number | Percent, cornerRadius?: number): string {\r\n\t\tlet path: string = \"\";\r\n\t\tif ($type.isNumber(startPosition) && $type.isNumber(endPosition)) {\r\n\r\n\t\t\tif (!$type.hasValue(radius)) {\r\n\t\t\t\tradius = this.radius;\r\n\t\t\t}\r\n\r\n\t\t\tstartPosition = $math.max(startPosition, this.axis.start);\r\n\t\t\tendPosition = $math.min(endPosition, this.axis.end);\r\n\r\n\t\t\tif (endPosition < startPosition) {\r\n\t\t\t\tendPosition = startPosition;\r\n\t\t\t}\r\n\r\n\t\t\tlet pixelRadius: number = $utils.relativeRadiusToValue(radius, this.pixelRadius);\r\n\t\t\tlet pixelInnerRadius: number = $utils.relativeRadiusToValue(innerRadius, this.pixelRadius, true);\r\n\r\n\t\t\tlet startAngle: number = this.positionToAngle(startPosition);\r\n\t\t\tlet endAngle: number = this.positionToAngle(endPosition);\r\n\r\n\t\t\tlet arc: number = endAngle - startAngle;\r\n\r\n\t\t\tpath = $path.arc(startAngle, arc, pixelRadius, pixelInnerRadius, pixelRadius, cornerRadius);\r\n\t\t}\r\n\r\n\t\treturn path;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new grid element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Grid element\r\n\t */\r\n\tpublic createGrid(): this[\"_gridType\"] {\r\n\t\treturn new GridCircular();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new fill element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Fill element\r\n\t */\r\n\tpublic createFill(axis: Axis): this[\"_fillType\"] {\r\n\t\treturn new AxisFillCircular(axis);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new label element, suitable for this Axis Renderer type.\r\n\t *\r\n\t * @return Label element\r\n\t */\r\n\tpublic createLabel(): this[\"_labelType\"] {\r\n\t\treturn new AxisLabelCircular();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @param point Point\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint) {\r\n\t\tlet angle = $math.fitAngleToRange($math.getAngle(point), this.startAngle, this.endAngle);\r\n\t\treturn this.coordinateToPosition((angle - this.startAngle) / 360 * this.axisLength);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererCircular\"] = AxisRendererCircular;\r\n","/**\r\n * Module, defining Axis Renderer for radial axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererY, IAxisRendererYProperties, IAxisRendererYAdapters, IAxisRendererYEvents } from \"./AxisRendererY\";\r\nimport { Axis } from \"./Axis\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { CategoryAxis } from \"./CategoryAxis\";\r\nimport { RadarChart } from \"../types/RadarChart\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisBreak } from \"./AxisBreak\";\r\nimport { WavedCircle } from \"../../core/elements/WavedCircle\";\r\nimport { PointerOrientation } from \"../../core/elements/Tooltip\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { AxisBullet } from \"./AxisBullet\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererRadial]].\r\n */\r\nexport interface IAxisRendererRadialProperties extends IAxisRendererYProperties {\r\n\r\n\t/**\r\n\t * Start angle of the radial axis in degrees. (0-360)\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * End angle of the radial axis in degrees. (0-360)\r\n\t */\r\n\tendAngle?: number;\r\n\r\n\t/**\r\n\t * A grid type to display: \"circles\" or \"polygons\".\r\n\t *\r\n\t * @default \"circles\"\r\n\t */\r\n\tgridType?: \"circles\" | \"polygons\"; //@todo: move it to GridRadial?\r\n\r\n\t/**\r\n\t * An angle of the axis in degrees. (0-360)\r\n\t */\r\n\taxisAngle?: number;\r\n\r\n\r\n\t/**\r\n\t * Outer radius of the radial axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius of the radial axis.\r\n\t *\r\n\t * Can either be absolute (pixels) or relative ([[Percent]]).\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[AxisRendererRadial]].\r\n */\r\nexport interface IAxisRendererRadialEvents extends IAxisRendererYEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRenderer]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererRadialAdapters extends IAxisRendererYAdapters, IAxisRendererRadialProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A renderer for radial axis.\r\n */\r\nexport class AxisRendererRadial extends AxisRendererY {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererRadialProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererRadialAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererRadialEvents;\r\n\r\n\t/**\r\n\t * A related chart.\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<RadarChart>();\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic pixelRadiusReal: number = 0;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _chartType: RadarChart;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisRendererRadial\";\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\t\tthis.minGridDistance = 30;\r\n\t\tthis.gridType = \"circles\";\r\n\t\tthis.axisAngle = -90;\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.radius = percent(100);\r\n\r\n\t\tthis.line.strokeOpacity = 0;\r\n\r\n\t\tthis.labels.template.horizontalCenter = \"middle\";\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\t// so that radius would be updated\r\n\t\tif (this.chart && this.chart.invalid) {\r\n\t\t\tthis.chart.validate();\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns actual length of the Axis, in pixels.\r\n\t *\r\n\t * @return Length (px)\r\n\t */\r\n\tpublic get axisLength(): number {\r\n\t\treturn this.pixelRadius - this.pixelInnerRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, false, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius in pixels.\r\n\t *\r\n\t * @return Outer radius (px)\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.radius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the axis.\r\n\t *\r\n\t * Can be absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, false, false, 10, false)\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\tlet chart = this.chart;\r\n\t\tlet innerRadius = this.getPropertyValue(\"innerRadius\");\r\n\t\tif(chart){\r\n\t\t\tif (!$type.hasValue(innerRadius)) {\r\n\t\t\t\tinnerRadius = chart.innerRadius;\r\n\r\n\t\t\t\tif (innerRadius instanceof Percent && chart) {\r\n\t\t\t\t\tinnerRadius = percent(innerRadius.value * chart.innerRadiusModifyer * 100)\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (innerRadius instanceof Percent && chart) {\r\n\t\t\t\t\tlet mr = chart.mr;\r\n\t\t\t\t\tlet value = innerRadius.value;\r\n\t\t\t\t\tvalue = Math.max(mr * value, mr - Math.min(chart.plotContainer.innerHeight, chart.plotContainer.innerWidth)) / mr;\r\n\t\t\t\t\tinnerRadius = percent(value * 100);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn innerRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius in pixels.\r\n\t *\r\n\t * @return Inner radius (px)\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.innerRadius, this.pixelRadiusReal) || 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts relative position on axis to point coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param position2 Position (0-1) Position on the second axis\r\n\t * @return Point\r\n\t */\r\n\tpublic positionToPoint(position: number, position2?: number): IPoint {\r\n\t\tlet radius: number = $math.fitToRange(this.positionToCoordinate(position), 0, Infinity);\r\n\t\treturn { x: radius * $math.cos(this.axisAngle), y: radius * $math.sin(this.axisAngle) };\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the axis line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateAxisLine() {\r\n\t\tthis.line.path = $path.moveTo({ x: this.pixelInnerRadius * $math.cos(this.axisAngle), y: this.pixelInnerRadius * $math.sin(this.axisAngle) }) + $path.lineTo({ x: this.pixelRadius * $math.cos(this.axisAngle), y: this.pixelRadius * $math.sin(this.axisAngle) });\r\n\r\n\t\tlet title = this.axis.title;\r\n\t\ttitle.valign = \"none\";\r\n\t\ttitle.horizontalCenter = \"middle\";\r\n\t\ttitle.verticalCenter = \"bottom\";\r\n\t\ttitle.y = - this.axisLength / 2;\r\n\t\tlet rotation: number = 90;\r\n\t\tif (this.opposite) {\r\n\t\t\tif (!this.inside) {\r\n\t\t\t\trotation = -90;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.inside) {\r\n\t\t\t\trotation = -90;\r\n\t\t\t}\r\n\t\t}\r\n\t\ttitle.rotation = rotation;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Grid, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\tlet path: string;\r\n\t\tlet radius: number = $math.getDistance(point);\r\n\t\tlet startAngle: number = this.startAngle;\r\n\t\tlet endAngle: number = this.endAngle;\r\n\r\n\t\tif ($type.isNumber(radius) && grid.element) {\r\n\t\t\tlet chart = this.chart;\r\n\t\t\tlet xAxis = chart.xAxes.getIndex(0);\r\n\t\t\tlet count = 0;\r\n\r\n\t\t\tlet series = chart.series.getIndex(0);\r\n\r\n\t\t\tif (series) {\r\n\t\t\t\tcount = series.dataItems.length;\r\n\t\t\t}\r\n\r\n\t\t\t// polygons are only possible if x axis is present\r\n\t\t\t// @todo: review this\r\n\t\t\tif (this.gridType == \"polygons\" && count > 0 && series && xAxis && xAxis instanceof CategoryAxis) {\r\n\t\t\t\tlet gridLocation = xAxis.renderer.grid.template.location;\r\n\r\n\t\t\t\tlet angle: number = xAxis.getAngle(series.dataItems.getIndex(0), \"categoryX\", gridLocation);\r\n\t\t\t\tpath = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\r\n\t\t\t\tfor (let i = 1; i < count; i++) {\r\n\t\t\t\t\tangle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n\t\t\t\t\tpath += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tangle = xAxis.getAngle(series.dataItems.getIndex(count - 1), \"categoryX\", xAxis.renderer.cellEndLocation);\r\n\t\t\t\tpath += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpath = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, radius, radius);\r\n\t\t\t}\r\n\t\t\tgrid.path = path;\r\n\t\t}\r\n\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param label Label element\r\n\t * @param position Starting position\r\n\t * @param endPosition Ending position\r\n\t */\r\n\tpublic updateLabelElement(label: this[\"_labelType\"], position: number, endPosition: number, location?: number) {\r\n\r\n\t\tif (!$type.hasValue(location)) {\r\n\t\t\tlocation = label.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tthis.positionItem(label, point);\r\n\t\tthis.toggleVisibility(label, position, this.minLabelPosition, this.maxLabelPosition);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement(): void {\r\n\t\t// @todo? zero grid for radar chart, is it needed?\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if point is within bounds of a container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param point Point coordinates\r\n\t * @return Fits?\r\n\t */\r\n\tpublic fitsToBounds(point: IPoint): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Start angle of the axis in degrees. (0-360)\r\n\t *\r\n\t * @param value Start angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\t// do not normalize angle here!\r\n\t\tif (this.setPropertyValue(\"startAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * End angle of the axis in degrees. (0-360)\r\n\t *\r\n\t * @param value End angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\t// do not normalize angel here!\r\n\t\tif (this.setPropertyValue(\"endAngle\", value)) {\r\n\t\t\tthis.invalidateAxisItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Angle of the radial axis in degrees. (0-360)\r\n\t *\r\n\t * @param value Axis angle\r\n\t */\r\n\tpublic set axisAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"axisAngle\", $math.normalizeAngle(value));\r\n\t\tthis.invalidateAxisItems();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis angle\r\n\t */\r\n\tpublic get axisAngle(): number {\r\n\t\treturn this.getPropertyValue(\"axisAngle\");\r\n\t\t//return $math.fitToRange(this.getPropertyValue(\"axisAngle\"), this.startAngle, this.endAngle); // no good, as less flexible\r\n\t}\r\n\r\n\t// polygons grid type is only possible under these conditions: xAxis is available and it is CategoryAxis, also at least one series should be added to a chart\r\n\r\n\t/**\r\n\t * Grid type for radial axis.\r\n\t *\r\n\t * A grid on radia axis can either be perfect circles (\"circles\"), or\r\n\t * straight lines (\"polygons\").\r\n\t *\r\n\t * @default \"circles\"\r\n\t * @param value Grid type\r\n\t */\r\n\tpublic set gridType(value: \"circles\" | \"polygons\") {\r\n\t\tthis.setPropertyValue(\"gridType\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Grid type\r\n\t */\r\n\tpublic get gridType(): \"circles\" | \"polygons\" {\r\n\t\tlet axis: Axis = this.chart.xAxes.getIndex(0);\r\n\t\tif (axis instanceof CategoryAxis) {\r\n\t\t\treturn this.getPropertyValue(\"gridType\");\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn \"circles\";\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * [getPositionRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param startPosition Starting position\r\n\t * @param endPosition End position\r\n\t * @return SVG path\r\n\t */\r\n\tpublic getPositionRangePath(startPosition: number, endPosition: number): string {\r\n\t\tlet pixelInnerRadius = this.pixelInnerRadius;\r\n\t\tlet pixelRadius = this.axisLength + pixelInnerRadius;\r\n\t\tlet innerRadius: number = $math.fitToRange(this.positionToCoordinate(startPosition), pixelInnerRadius, pixelRadius);\r\n\t\tlet radius: number = $math.fitToRange(this.positionToCoordinate(endPosition), pixelInnerRadius, pixelRadius);\r\n\r\n\t\t//let angleCount: number = this.angleCount;\r\n\t\tlet startAngle: number = this.startAngle;\r\n\t\tlet endAngle: number = this.endAngle;\r\n\t\tlet arc: number = endAngle - startAngle;\r\n\r\n\t\tlet path: string;\r\n\r\n\t\tlet chart = this.chart;\r\n\t\tlet xAxis = chart.xAxes.getIndex(0);\r\n\t\tlet series = chart.series.getIndex(0);\r\n\r\n\t\tlet count = 0;\r\n\t\tif (series) {\r\n\t\t\tcount = series.dataItems.length;\r\n\t\t}\r\n\r\n\t\t// polygons are only possible if x axis is present\r\n\t\t// @todo: review this\r\n\t\tif (this.gridType == \"polygons\" && count > 0 && series && xAxis && xAxis instanceof CategoryAxis) {\r\n\t\t\tlet gridLocation = xAxis.renderer.grid.template.location;\r\n\r\n\t\t\tlet angle: number = xAxis.getAngle(series.dataItems.getIndex(0), \"categoryX\", gridLocation);\r\n\t\t\tpath = $path.moveTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\r\n\t\t\tfor (let i = 1; i < count; i++) {\r\n\t\t\t\tangle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n\t\t\t\tpath += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t\t}\r\n\r\n\t\t\tangle = xAxis.getAngle(series.dataItems.getIndex(count - 1), \"categoryX\", xAxis.renderer.cellEndLocation);\r\n\t\t\tpath += $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\r\n\t\t\tpath += $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) })\r\n\r\n\t\t\tfor (let i = count - 1; i >= 0; i--) {\r\n\t\t\t\tangle = xAxis.getAngle(series.dataItems.getIndex(i), \"categoryX\", gridLocation);\r\n\t\t\t\tpath += $path.lineTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) });\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tpath = $path.arc(startAngle, arc, radius, innerRadius);\r\n\t\t}\r\n\t\treturn path;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions an axis break element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Break element\r\n\t */\r\n\tpublic updateBreakElement(axisBreak: AxisBreak) {\r\n\t\t// @todo: someday we might need axis break when gridType is polygons\r\n\r\n\t\tlet startLine: WavedCircle = <WavedCircle>axisBreak.startLine;\r\n\t\tlet endLine: WavedCircle = <WavedCircle>axisBreak.endLine;\r\n\t\tlet fillShape: WavedCircle = <WavedCircle>axisBreak.fillShape;\r\n\r\n\t\tlet startPoint: IPoint = axisBreak.startPoint;\r\n\t\tlet endPoint: IPoint = axisBreak.endPoint;\r\n\r\n\t\tstartLine.radius = Math.abs(startPoint.y);\r\n\t\tendLine.radius = Math.abs(endPoint.y);\r\n\t\tfillShape.radius = Math.abs(endPoint.y);\r\n\t\tfillShape.innerRadius = Math.abs(startPoint.y);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates visual elements for and axis break.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axisBreak Axis break\r\n\t */\r\n\tpublic createBreakSprites(axisBreak: AxisBreak): void {\r\n\t\taxisBreak.startLine = new WavedCircle();\r\n\t\taxisBreak.endLine = new WavedCircle();\r\n\t\taxisBreak.fillShape = new WavedCircle();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates some of the Axis tooltip's visual properties, related to\r\n\t * rendering of the Axis.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateTooltip(): void {\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tif (axis) {\r\n\r\n\t\t\tlet bigNum: number = 4000;\r\n\t\t\tlet bbx: number = -4000;\r\n\t\t\tlet bby: number = -4000;\r\n\t\t\tlet bbw: number = bigNum * 2;\r\n\t\t\tlet bbh: number = bigNum * 2;\r\n\t\t\tlet axisAngle: number = this.axisAngle;\r\n\t\t\tif (axisAngle < 0) {\r\n\t\t\t\taxisAngle += 360;\r\n\t\t\t}\r\n\t\t\tlet tooltipOrientation: PointerOrientation = \"vertical\";\r\n\t\t\tif ((axisAngle > 45 && axisAngle < 135) || (axisAngle > 225 && axisAngle < 315)) {\r\n\t\t\t\ttooltipOrientation = \"horizontal\";\r\n\t\t\t}\r\n\t\t\tthis.axis.updateTooltip(tooltipOrientation, { x: bbx, y: bby, width: bbw, height: bbh });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param tick Tick element\r\n\t * @param position Position\r\n\t */\r\n\tpublic updateTickElement(tick: AxisTick, position: number, endPosition: number): void {\r\n\t\tposition = position + (endPosition - position) * tick.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tif (tick.element) {\r\n\t\t\tlet angle: number = $math.normalizeAngle(this.axisAngle + 90);\r\n\t\t\tif (angle / 90 != Math.round(angle / 90)) {\r\n\t\t\t\ttick.pixelPerfect = false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttick.pixelPerfect = true;\r\n\t\t\t}\r\n\t\t\tlet tickLength = -tick.length;\r\n\t\t\tif (tick.inside) {\r\n\t\t\t\ttickLength *= -1;\r\n\t\t\t}\r\n\t\t\ttick.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: tickLength * $math.cos(angle), y: tickLength * $math.sin(angle) });\r\n\t\t}\r\n\t\tthis.positionItem(tick, point);\r\n\r\n\t\tthis.toggleVisibility(tick, position, 0, 1);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates and positions axis bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet AxisBullet element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateBullet(bullet: Sprite, position: number, endPosition: number): void {\r\n\t\tlet location = 0.5;\r\n\t\tif (bullet instanceof AxisBullet) {\r\n\t\t\tlocation = bullet.location;\r\n\t\t}\r\n\r\n\t\tposition = position + (endPosition - position) * location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tthis.positionItem(bullet, point);\r\n\r\n\t\tthis.toggleVisibility(bullet, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a position on the axis to a coordinate in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinate (px)\r\n\t */\r\n\tpublic positionToCoordinate(position: number): number {\r\n\t\tlet coordinate: number;\r\n\t\tlet axis: Axis = this.axis;\r\n\t\tlet axisFullLength = axis.axisFullLength;\r\n\t\tlet innerRadius = this.pixelInnerRadius;\r\n\r\n\t\tif (axis.renderer.inversed) {\r\n\t\t\tcoordinate = (axis.end - position) * axisFullLength + innerRadius;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcoordinate = (position - axis.start) * axisFullLength + innerRadius;\r\n\t\t}\r\n\r\n\t\treturn $math.round(coordinate, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a point at specific coordinates to a relative position (0-1)\r\n\t * on the axis.\r\n\t *\r\n\t * @param point Point\r\n\t * @return Position (0-1)\r\n\t */\r\n\tpublic pointToPosition(point: IPoint) {\r\n\t\tlet coordinate = ($math.getDistance(point) - this.pixelInnerRadius);\r\n\t\treturn this.coordinateToPosition(coordinate);\r\n\t}\r\n\r\n\t/**\r\n\t * A chart, associated with the Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: RadarChart) {\r\n\t\tthis._chart.set(value, null);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): RadarChart {\r\n\t\treturn this._chart.get();\r\n\t}\t\r\n\t\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererRadial\"] = AxisRendererRadial;\r\n","/**\r\n * Radar chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, IXYChartProperties, IXYChartDataFields, IXYChartAdapters, IXYChartEvents, XYChartDataItem } from \"./XYChart\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { RadarSeries } from \"../series/RadarSeries\";\r\nimport { RadarColumnSeries } from \"../series/RadarColumnSeries\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { RadarCursor } from \"../cursors/RadarCursor\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\nimport { AxisRendererRadial } from \"../axes/AxisRendererRadial\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[RadarChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class RadarChartDataItem extends XYChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: RadarChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[RadarChart]].\r\n */\r\nexport interface IRadarChartDataFields extends IXYChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[RadarChart]].\r\n */\r\nexport interface IRadarChartProperties extends IXYChartProperties {\r\n\r\n\t/**\r\n\t * Radius of the Radar face. Absolute or relative.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius of the Radar face. Percent value is relative to radius.\r\n\t *\r\n\t * @todo review desc\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * An angle radar face starts on. (degrees)\r\n\t *\r\n\t * @default -90\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * An angle radar face ends on. (degrees)\r\n\t *\r\n\t * @default 270\r\n\t */\r\n\tendAngle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[RadarChart]].\r\n */\r\nexport interface IRadarChartEvents extends IXYChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RadarChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRadarChartAdapters extends IXYChartAdapters, IRadarChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Radar chart.\r\n *\r\n * @see {@link IRadarChartEvents} for a list of available Events\r\n * @see {@link IRadarChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/radar-chart/} for documentation\r\n * @important\r\n */\r\nexport class RadarChart extends XYChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IRadarChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRadarChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRadarChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRadarChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: RadarSeries | RadarColumnSeries;\r\n\r\n\t/**\r\n\t * Defines X axis renderer type.\r\n\t */\r\n\tpublic _xAxisRendererType: AxisRendererCircular;\r\n\r\n\t/**\r\n\t * Defines Y axis renderer type.\r\n\t */\r\n\tpublic _yAxisRendererType: AxisRendererRadial;\r\n\r\n\t/**\r\n\t * Defines X axis renderer type.\r\n\t */\r\n\tprotected _axisRendererX: typeof AxisRendererCircular = AxisRendererCircular;\r\n\r\n\t/**\r\n\t * Defines Y axis renderer type.\r\n\t */\r\n\tprotected _axisRendererY: typeof AxisRendererRadial = AxisRendererRadial;\r\n\r\n\t/**\r\n\t * [_cursor description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tpublic _cursor: RadarCursor;\r\n\r\n\t/**\r\n\t * A container that holds Radar visual elements.\r\n\t */\r\n\tpublic radarContainer: Container;\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _pixelInnerRadius: number;\r\n\r\n\r\n\t/**\r\n\t * used by cursor. We adjust innerradius if start and end angle are close to each other\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic innerRadiusModifyer: number = 1;\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic mr: number = 1;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarChart\";\r\n\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\r\n\t\tthis.radius = percent(80);\r\n\t\tthis.innerRadius = 0;\r\n\r\n\t\tlet radarContainer = this.plotContainer.createChild(Container);\r\n\t\tradarContainer.shouldClone = false;\r\n\t\tradarContainer.layout = \"absolute\";\r\n\t\tradarContainer.align = \"center\";\r\n\t\tradarContainer.valign = \"middle\";\r\n\r\n\t\tthis.seriesContainer.parent = radarContainer;\r\n\t\tthis.radarContainer = radarContainer;\r\n\t\tthis.bulletsContainer.parent = radarContainer;\r\n\t\tthis.axisBulletsContainer = radarContainer;\r\n\r\n\t\tthis._cursorContainer = radarContainer;\r\n\r\n\t\tthis.chartContainer.events.on(\"maxsizechanged\", this.invalidate, this, false); // need this for the chart to change radius if legend is removed/disabled\r\n\r\n\t\tthis._bulletMask = radarContainer.createChild(Circle);\r\n\t\tthis._bulletMask.shouldClone = false;\r\n\t\tthis._bulletMask.element = this.paper.add(\"path\");\r\n\t\tthis._bulletMask.opacity = 0;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Radar chart\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates Axis with required properties for this chart.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected processAxis(axis: Axis): void {\r\n\t\tsuper.processAxis(axis);\r\n\t\tlet renderer: AxisRenderer = axis.renderer;\r\n\t\trenderer.gridContainer.parent = renderer;\r\n\t\trenderer.breakContainer.parent = renderer;\r\n\t\taxis.parent = this.radarContainer;\r\n\t\trenderer.toBack();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates all X axes after range change event.\r\n\t */\r\n\tprotected handleXAxisRangeChange() {\r\n\t\tsuper.handleXAxisRangeChange();\r\n\t\t$iter.each(this.yAxes.iterator(), (axis) => {\r\n\t\t\taxis.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Updates all Y axes after range change event.\r\n\t */\r\n\tprotected handleYAxisRangeChange() {\r\n\t\tsuper.handleYAxisRangeChange();\r\n\t\t$iter.each(this.xAxes.iterator(), (axis) => {\r\n\t\t\taxis.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up cursor\r\n\t\t\tif ($type.hasValue(config.cursor) && !$type.hasValue(config.cursor.type)) {\r\n\t\t\t\tconfig.cursor.type = \"RadarCursor\";\r\n\t\t\t}\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tconfig.series[i].type = config.series[i].type || \"RadarSeries\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up axes\r\n\t\t\t/*if ($type.hasValue(config.xAxes) && $type.isArray(config.xAxes)) {\r\n\t\t\t\tfor (let i = 0, len = config.xAxes.length; i < len; i++) {\r\n\t\t\t\t\tconfig.xAxes[i].type = config.xAxes[i].type || \"AxisRendererCircular\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxes) && $type.isArray(config.yAxes)) {\r\n\t\t\t\tfor (let i = 0, len = config.yAxes.length; i < len; i++) {\r\n\t\t\t\t\tconfig.yAxes[i].type = config.yAxes[i].type || \"AxisRendererRadial\";\r\n\t\t\t\t}\r\n\t\t\t}*/\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n\t/**\r\n\t * Does calculations before drawing the chart.\r\n\t */\r\n\tprotected beforeDraw(): void {\r\n\t\tsuper.beforeDraw();\r\n\r\n\t\tlet plotContainer = this.plotContainer;\r\n\r\n\t\tlet rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n\t\tlet innerRect: IRectangle = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n\t\tlet wr = plotContainer.innerWidth / rect.width;\r\n\t\tlet hr = plotContainer.innerHeight / rect.height;\r\n\r\n\t\tlet innerRadius = this.innerRadius;\r\n\r\n\t\tif (innerRadius instanceof Percent) {\r\n\t\t\tlet value = innerRadius.value;\r\n\t\t\tlet mr = Math.min(wr, hr);\r\n\r\n\t\t\tthis.mr = mr;\r\n\r\n\t\t\tvalue = Math.max(mr * value, mr - Math.min(plotContainer.innerHeight, plotContainer.innerWidth)) / mr;\r\n\t\t\tinnerRect = $math.getArcRect(this.startAngle, this.endAngle, value);\r\n\r\n\t\t\tthis.innerRadiusModifyer = value / innerRadius.value;\r\n\r\n\t\t\tinnerRadius = percent(value * 100);\r\n\t\t}\r\n\r\n\t\t// @todo handle this when innerRadius set in pixels (do it for pie also)\r\n\t\trect = $math.getCommonRectangle([rect, innerRect]);\r\n\r\n\t\tlet maxRadius = Math.min(plotContainer.innerWidth / rect.width, plotContainer.innerHeight / rect.height);\r\n\r\n\t\tlet diameter = $utils.relativeRadiusToValue(this.radius, maxRadius) * 2 || 0;\r\n\t\tlet radius = diameter / 2;\r\n\t\tlet startAngle = this.startAngle;\r\n\t\tlet endAngle = this.endAngle;\r\n\r\n\t\tthis._pixelInnerRadius = $utils.relativeRadiusToValue(innerRadius, radius);\r\n\r\n\t\tthis._bulletMask.path = $path.arc(startAngle, endAngle - startAngle, radius, this._pixelInnerRadius);\r\n\r\n\t\t$iter.each(this.xAxes.iterator(), (axis) => {\r\n\t\t\tif (axis.renderer.useChartAngles) {\r\n\t\t\t\taxis.renderer.startAngle = startAngle;\r\n\t\t\t\taxis.renderer.endAngle = endAngle;\r\n\t\t\t}\r\n\r\n\t\t\taxis.width = diameter;\r\n\t\t\taxis.height = diameter;\r\n\t\t\t//axis.renderer.width = diameter;\r\n\t\t\t//axis.renderer.height = diameter;\r\n\t\t\taxis.renderer.pixelRadiusReal = radius;\r\n\t\t\t//axis.renderer.innerRadius = innerRadius;\r\n\t\t});\r\n\r\n\t\t$iter.each(this.yAxes.iterator(), (axis) => {\r\n\t\t\taxis.renderer.startAngle = startAngle;\r\n\t\t\taxis.renderer.endAngle = endAngle;\r\n\r\n\t\t\taxis.width = diameter;\r\n\t\t\taxis.height = diameter;\r\n\t\t\t//axis.renderer.width = diameter;\r\n\t\t\t//axis.renderer.height = diameter;\r\n\t\t\taxis.renderer.pixelRadiusReal = radius;\r\n\t\t\t//axis.renderer.innerRadius = innerRadius;\r\n\t\t});\r\n\r\n\r\n\r\n\t\tlet cursor = this.cursor;\r\n\t\tif (cursor) {\r\n\t\t\tcursor.width = diameter;\r\n\t\t\tcursor.height = diameter;\r\n\t\t\tcursor.startAngle = startAngle;\r\n\t\t\tcursor.endAngle = endAngle;\r\n\t\t}\r\n\r\n\t\tthis.radarContainer.definedBBox = { x: radius * rect.x, y: radius * rect.y, width: radius * rect.width, height: radius * rect.height };\r\n\t\tthis.radarContainer.validatePosition();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new Series, suitable for RadarChart.\r\n\t *\r\n\t * @return New Series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new RadarSeries();\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the Radar face. (degrees)\r\n\t *\r\n\t * Normally, a circular radar face begins (the radial axis is drawn) at the\r\n\t * top center. (at -90 degrees)\r\n\t *\r\n\t * You can use `startAngle` to change this setting.\r\n\t *\r\n\t * E.g. setting this to 0 will make the radial axis start horizontally to\r\n\t * the right, as opposed to vertical.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set those to lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * @default -90\r\n\t * @param value Start angle (degrees)\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle (degrees)\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the Radar face. (degrees)\r\n\t *\r\n\t * Normally, a circular radar face ends (the radial axis is drawn) exactly\r\n\t * where it has started, forming a full 360 circle. (at 270 degrees)\r\n\t *\r\n\t * You can use `endAngle` to end the circle somewhere else.\r\n\t *\r\n\t * E.g. setting this to 180 will make the radar face end at horizontal line\r\n\t * to the left off the center.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set those to lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * @default -90\r\n\t * @param value End angle (degrees)\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"endAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle (degrees)\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the Radar face.\r\n\t *\r\n\t * This can either be in absolute pixel value, or relative [[Percent]].\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius in pixels\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn this._pixelInnerRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the radar face.\r\n\t *\r\n\t * This can either be in absolute pixel value, or relative [[Percent]].\r\n\t *\r\n\t * If set in Percent, it will be relative to `radius`. (outer radius)\r\n\t *\r\n\t * @param value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers (re)rendering of the horizontal (X) axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic updateXAxis(renderer: AxisRenderer) {\r\n\t\t//do not call super!\r\n\t\tif (renderer) {\r\n\t\t\trenderer.processRenderer();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers (re)rendering of the vertical (Y) axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic updateYAxis(renderer: AxisRenderer) {\r\n\t\t// do not call super!\r\n\t\tif (renderer) {\r\n\t\t\trenderer.processRenderer();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarChart\"] = RadarChart;\r\n","/**\r\n * Functionality for drawing simple ClockHands\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { Trapezoid } from \"../../core/elements/Trapezoid\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { GaugeChart } from \"../types/GaugeChart\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ClockHand]].\r\n */\r\nexport interface IClockHandProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Radius of the hand's outer end. (tip)\r\n\t *\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @default Percent(100)\r\n\t */\r\n\tradius: number | Percent;\r\n\r\n\t/**\r\n\t * Radius of the hand's inner end. (base)\r\n\t *\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @default Percent(0)\r\n\t */\r\n\tinnerRadius: number | Percent;\r\n\r\n\t/**\r\n\t * Width, in pixels, of the clock hand's tip.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\tendWidth: number;\r\n\r\n\t/**\r\n\t * Width, in pixels, of the clock hand's base.\r\n\t *\r\n\t * @default 5\r\n\t */\r\n\tstartWidth: number;\r\n\r\n\t/**\r\n\t * rotation direction\r\n\t * @default \"any\"\r\n\t */\r\n\trotationDirection: \"any\" | \"clockWise\" | \"counterClockWise\";\r\n}\r\n\r\n/**\r\n * Defines events for [[ClockHand]].\r\n */\r\nexport interface IClockHandEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ClockHand]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IClockHandAdapters extends IContainerAdapters, IClockHandProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * ClockHand class is capable of drawing a simple pointy shape with optionally\r\n * rounderd corners and an icon.\r\n *\r\n * @see {@link IClockHandEvents} for a list of available events\r\n * @see {@link IClockHandAdapters} for a list of available Adapters\r\n * @todo Improve\r\n * @important\r\n */\r\nexport class ClockHand extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IClockHandProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IClockHandAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IClockHandEvents;\r\n\r\n\t/**\r\n\t * A circle element used as hand's base.\r\n\t */\r\n\tprotected _pin: Circle;\r\n\r\n\t/**\r\n\t * A trapezoid shape used for hand itself.\r\n\t */\r\n\tprotected _hand: Trapezoid;\r\n\r\n\t/**\r\n\t * An Axis hand is related to.\r\n\t */\r\n\tprotected _axis: MutableValueDisposer<Axis> = new MutableValueDisposer<Axis>();\r\n\r\n\t/**\r\n\t * Hand's current value.\r\n\t */\r\n\tprotected _value: any;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"ClockHand\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tthis.stroke = this.fill;\r\n\r\n\t\tlet pin: Circle = new Circle();\r\n\t\tpin.radius = 5;\r\n\t\tthis.pin = pin;\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.startWidth = 5;\r\n\t\tthis.endWidth = 1;\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\r\n\t\tthis.radius = percent(100);\r\n\t\tthis.innerRadius = percent(0);\r\n\r\n\t\tlet hand: Trapezoid = new Trapezoid();\r\n\t\tthis.hand = hand;\r\n\r\n\t\tthis._disposers.push(this._axis);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Re(validates) the clock hand, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\t\tlet hand = this.hand;\r\n\t\thand.width = this.pixelWidth;\r\n\t\tlet h: number = Math.max(this.startWidth, this.endWidth);\r\n\t\thand.height = h;\r\n\t\thand.leftSide = percent(this.startWidth / h * 100);\r\n\t\thand.rightSide = percent(this.endWidth / h * 100);\r\n\r\n\t\tif (this.axis) {\r\n\t\t\tlet renderer: AxisRendererCircular = <AxisRendererCircular>this.axis.renderer;\r\n\r\n\t\t\tlet x0: number = $utils.relativeRadiusToValue(this.innerRadius, renderer.pixelRadius);\r\n\t\t\tlet x1: number = $utils.relativeRadiusToValue(this.radius, renderer.pixelRadius);\r\n\r\n\t\t\thand.x = x0;\r\n\t\t\thand.y = - h / 2;\r\n\r\n\t\t\thand.width = x1 - x0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A circle element used as hand's base. (pin)\r\n\t *\r\n\t * @param pin Pin element\r\n\t */\r\n\tpublic set pin(pin: Circle) {\r\n\t\tif (this._pin) {\r\n\t\t\tthis.removeDispose(this._pin);\r\n\t\t}\r\n\t\tif (pin) {\r\n\t\t\tthis._pin = pin;\r\n\t\t\tpin.parent = this;\r\n\t\t\tthis._disposers.push(pin);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Pin element\r\n\t */\r\n\tpublic get pin(): Circle {\r\n\t\treturn this._pin;\r\n\t}\r\n\r\n\t/**\r\n\t * A trapezoid shape used for hand itself.\r\n\t *\r\n\t * The shape of the trapezoid is controlled by ClockHand's `startWidth` and\r\n\t * `endWidth` properties.\r\n\t *\r\n\t * Set `endWidth` to 1 (px) to make it pointy.\r\n\t *\r\n\t * @param hand Hand element\r\n\t */\r\n\tpublic set hand(hand: Trapezoid) {\r\n\t\tif (this._hand) {\r\n\t\t\tthis.removeDispose(this._hand);\r\n\t\t}\r\n\t\tif (hand) {\r\n\t\t\tthis._hand = hand;\r\n\t\t\thand.parent = this;\r\n\t\t\tthis._disposers.push(hand);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hand element\r\n\t */\r\n\tpublic get hand(): Trapezoid {\r\n\t\treturn this._hand;\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the hand's outer end. (tip)\r\n\t *\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @default Percent(0)\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the hand's inner end. (base)\r\n\t *\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @default Percent(0)\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Width, in pixels, of the clock hand's inner end. (base)\r\n\t *\r\n\t * @default 5\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set startWidth(value: number) {\r\n\t\tthis.setPropertyValue(\"startWidth\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get startWidth(): number {\r\n\t\treturn this.getPropertyValue(\"startWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Width, in pixels, of the clock hand's outer end. (tip)\r\n\t *\r\n\t * @default 1\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set endWidth(value: number) {\r\n\t\tthis.setPropertyValue(\"endWidth\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get endWidth(): number {\r\n\t\treturn this.getPropertyValue(\"endWidth\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Rotation direction\r\n\t *\r\n\t * @default any\r\n\t * @param value\r\n\t */\r\n\tpublic set rotationDirection(value: \"any\" | \"clockWise\" | \"counterClockWise\") {\r\n\t\tthis.setPropertyValue(\"rotationDirection\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return rotationDirection\r\n\t */\r\n\tpublic get rotationDirection(): \"any\" | \"clockWise\" | \"counterClockWise\" {\r\n\t\treturn this.getPropertyValue(\"rotationDirection\");\r\n\t}\r\n\r\n\t/**\r\n\t * Moves clock hand to particular value.\r\n\t *\r\n\t * If `duration` is set to a number in milliseconds, the hand will move\r\n\t * to the new position gracefully, rather than jumping rigth to it.\r\n\t *\r\n\t * Alternatively, you can also set `value` directly.\r\n\t *\r\n\t * @param value New value\r\n\t * @param duration Animation duration (ms)\r\n\t * @param easing Animation easing function\r\n\t */\r\n\tpublic showValue(value: any, duration?: number, easing?: (value: number) => number): void {\r\n\t\tthis._value = value;\r\n\t\tif (value != undefined) {\r\n\t\t\tif (!$type.isNumber(duration)) {\r\n\t\t\t\tduration = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tlet renderer = <AxisRendererCircular>this.axis.renderer;\r\n\t\t\t\tlet newAngle = renderer.positionToAngle(this.axis.anyToPosition(value));\r\n\t\t\t\tlet currentAngle = this.rotation;\r\n\r\n\t\t\t\tif (this.rotationDirection == \"clockWise\") {\r\n\t\t\t\t\tif (newAngle < currentAngle) {\r\n\t\t\t\t\t\tthis.rotation = currentAngle - 360;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.rotationDirection == \"counterClockWise\") {\r\n\t\t\t\t\tif (newAngle > currentAngle) {\r\n\t\t\t\t\t\tthis.rotation = currentAngle + 360;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.animate({ property: \"rotation\", to: newAngle }, duration, easing);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns hand's relative position on axis\r\n\t */\r\n\tpublic get currentPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\tlet renderer = <AxisRendererCircular>this.axis.renderer;\r\n\t\t\treturn renderer.angleToPosition(this.rotation);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A current value clock hand is pointing to.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set value(value: any) {\r\n\t\tthis.showValue(value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): any {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t/**\r\n\t * An Axis clock hand is associated with.\r\n\t *\r\n\t * Hand's `value` relates to values on the Axis.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set axis(axis: Axis) {\r\n\t\tif (this.axis != axis) {\r\n\t\t\tthis._axis.set(axis, new MultiDisposer([\r\n\t\t\t\taxis.events.on(\"datavalidated\", this.updateValue, this, false),\r\n\t\t\t\taxis.events.on(\"datarangechanged\", this.updateValue, this, false),\r\n\t\t\t\taxis.events.on(\"dataitemsvalidated\", this.updateValue, this, false),\r\n\t\t\t\taxis.events.on(\"propertychanged\", this.invalidate, this, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t\tif (axis) {\r\n\t\t\tlet chart: GaugeChart = <GaugeChart>axis.chart;\r\n\t\t\tif (chart) {\r\n\t\t\t\tthis.rotation = chart.startAngle;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.parent = axis.renderer;\r\n\t\tthis.zIndex = 5;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get axis(): Axis {\r\n\t\treturn this._axis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers `value` accessor, so that Hand animates to new position, in case\r\n\t * value has changed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateValue() {\r\n\t\tthis.value = this.value;\r\n\t}\r\n\r\n\t/**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Connect clock hands with axes\r\n\t\t\tif ($type.hasValue(config.axis) && $type.isString(config.axis) && this.map.hasKey(config.axis)) {\r\n\t\t\t\tconfig.axis = this.map.getKey(config.axis);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ClockHand\"] = ClockHand;\r\n","/**\r\n * Module for building Gauge charts.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadarChart, IRadarChartProperties, IRadarChartDataFields, IRadarChartAdapters, IRadarChartEvents, RadarChartDataItem } from \"./RadarChart\";\r\nimport { ListTemplate, IListEvents, ListDisposer } from \"../../core/utils/List\";\r\nimport { ClockHand } from \"../elements/ClockHand\";\r\nimport { Ordering } from \"../../core/utils/Order\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[GaugeChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class GaugeChartDataItem extends RadarChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: GaugeChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"GaugeChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[GaugeChart]].\r\n */\r\nexport interface IGaugeChartDataFields extends IRadarChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[GaugeChart]].\r\n */\r\nexport interface IGaugeChartProperties extends IRadarChartProperties { }\r\n\r\n/**\r\n * Defines events for [[GaugeChart]].\r\n */\r\nexport interface IGaugeChartEvents extends IRadarChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[GaugeChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IGaugeChartAdapters extends IRadarChartAdapters, IGaugeChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Gauge chart.\r\n *\r\n * @see {@link IGaugeChartEvents} for a list of available Events\r\n * @see {@link IGaugeChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/gauge-chart/} for documentation\r\n * @important\r\n */\r\nexport class GaugeChart extends RadarChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IGaugeChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IGaugeChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IGaugeChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IGaugeChartEvents;\r\n\r\n\t/**\r\n\t * A list of [[ClockHand]] items displayed on this Gauge chart.\r\n\t */\r\n\tpublic hands: ListTemplate<ClockHand>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"GaugeChart\";\r\n\r\n\t\tthis.startAngle = 180;\r\n\t\tthis.endAngle = 360;\r\n\r\n\t\tthis.hands = new ListTemplate<ClockHand>(new ClockHand());\r\n\t\tthis.hands.events.on(\"inserted\", this.processHand, this, false);\r\n\r\n\t\tthis._disposers.push(new ListDisposer(this.hands));\r\n\t\tthis._disposers.push(this.hands.template);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Gauge chart\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a [[ClockHand]] when it is added to the chart.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected processHand(event: IListEvents<ClockHand>[\"inserted\"]): void {\r\n\t\tlet hand: ClockHand = event.newValue;\r\n\t\tif (!hand.axis) {\r\n\t\t\thand.axis = this.xAxes.getIndex(0);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function is used to sort element's JSON config properties, so that\r\n\t * some properties that absolutely need to be processed last, can be put at\r\n\t * the end.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param a Element 1\r\n\t * @param b Element 2\r\n\t * @return Sorting number\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t// Must come last\r\n\t\telse if (a == \"hands\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\telse if (b == \"hands\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.configOrder(a, b);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"GaugeChart\"] = GaugeChart;\r\n","/**\r\n * Defines Percent Chart Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Series, SeriesDataItem, ISeriesProperties, ISeriesDataFields, ISeriesAdapters, ISeriesEvents } from \"./Series\";\r\nimport { ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { Tick } from \"../elements/Tick\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { LegendDataItem, LegendSettings } from \"../../charts/Legend\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { PatternSet } from \"../../core/utils/PatternSet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { PercentChart } from \"../types/PercentChart\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $ease from \"../../core/utils/Ease\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo: sequenced?\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PercentSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PercentSeriesDataItem extends SeriesDataItem {\r\n\r\n\t/**\r\n\t * A type of slice used for this series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * A reference to a slice label element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to a slice tick element.\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _tick: Tick;\r\n\r\n\t/**\r\n\t * A reference to a corresponding legend data item.\r\n\t */\r\n\tprotected _legendDataItem: LegendDataItem;\r\n\r\n\t/**\r\n\t * Custom settings for the legend item.\r\n\t * Not used, only added to sattisfy LegendDataItem\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic legendSettings: LegendSettings;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PercentSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PercentSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Adds an `id` attribute the the slice element and returns its id.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic uidAttr(): string {\r\n\t\treturn this.slice.uidAttr();\r\n\t}\r\n\r\n\t/**\r\n\t * Hide the data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param toValue Target value for animation\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tif (!fields) {\r\n\t\t\tfields = [\"value\"];\r\n\t\t}\r\n\r\n\t\treturn super.hide(duration, delay, 0, fields);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets visibility of the Data Item.\r\n\t *\r\n\t * @param value Data Item\r\n\t */\r\n\tpublic setVisibility(value: boolean, noChangeValues?: boolean): void {\r\n\t\tif (!noChangeValues) {\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.setWorkingValue(\"value\", this.values[\"value\"].value, 0, 0);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.setWorkingValue(\"value\", 0, 0, 0);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.setVisibility(value, noChangeValues);\r\n\t}\r\n\r\n\t/**\r\n\t * Show hidden data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tif (!fields) {\r\n\t\t\tfields = [\"value\"];\r\n\t\t}\r\n\t\treturn super.show(duration, delay, fields);\r\n\t}\r\n\r\n\t/**\r\n\t * Category.\r\n\t *\r\n\t * @param value Category\r\n\t */\r\n\tpublic set category(value: string) {\r\n\t\tthis.setProperty(\"category\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get category(): string {\r\n\t\treturn this.properties.category;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Creates a marker used in the legend for this slice.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Marker container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container) {\r\n\t\tthis.component.createLegendMarker(marker, this);\r\n\t}\r\n\r\n\t/**\r\n\t * A legend's data item, that corresponds to this data item.\r\n\t *\r\n\t * @param value Legend data item\r\n\t */\r\n\tpublic set legendDataItem(value: LegendDataItem) {\r\n\t\tthis._legendDataItem = value;\r\n\t\tif (value.label) {\r\n\t\t\tvalue.label.dataItem = this;\r\n\t\t}\r\n\t\tif (value.valueLabel) {\r\n\t\t\tvalue.valueLabel.dataItem = this;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Legend data item\r\n\t */\r\n\tpublic get legendDataItem(): LegendDataItem {\r\n\t\treturn this._legendDataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * A Tick element, related to this data item. (slice)\r\n\t *\r\n\t * @readonly\r\n\t * @return Tick element\r\n\t */\r\n\tpublic get tick(): this[\"_tick\"] {\r\n\t\tif (!this._tick) {\r\n\t\t\tlet tick = this.component.ticks.create();\r\n\t\t\tthis._tick = tick;\r\n\t\t\tthis.addSprite(tick);\r\n\t\t\tthis._disposers.push(tick);\r\n\t\t\ttick.parent = this.component.ticksContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.ticks.removeValue(tick);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\r\n\r\n\t\t\ttick.visible = this.visible;\r\n\t\t}\r\n\t\treturn this._tick;\r\n\t}\r\n\r\n\t/**\r\n\t * A Label element, related to this data item. (slice)\r\n\t *\r\n\t * @readonly\r\n\t * @return Label element\r\n\t */\r\n\tpublic get label(): this[\"_label\"] {\r\n\t\tif (!this._label) {\r\n\t\t\tlet label = this.component.labels.create();\r\n\t\t\tthis.addSprite(label);\r\n\t\t\tthis._label = label;\r\n\r\n\t\t\tthis._disposers.push(label);\r\n\t\t\tlabel.parent = this.component.labelsContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.labels.removeValue(label);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\r\n\t\t\tlabel.visible = this.visible;\r\n\t\t}\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n\t * An element, related to this data item. (slice)\r\n\t *\r\n\t * @readonly\r\n\t * @return Slice element\r\n\t */\r\n\tpublic get slice(): this[\"_slice\"] {\r\n\t\tif (!this._slice) {\r\n\r\n\t\t\tlet component = this.component;\r\n\r\n\t\t\tlet slice = component.slices.create();\r\n\t\t\tthis.addSprite(slice);\r\n\r\n\t\t\tthis._slice = slice;\r\n\t\t\tthis._disposers.push(slice);\r\n\t\t\tslice.parent = component.slicesContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tcomponent.slices.removeValue(slice);\r\n\t\t\t}));\r\n\r\n\r\n\t\t\tslice.visible = this.visible;\r\n\r\n\t\t\t// Apply accessibility\r\n\t\t\tif (component.itemsFocusable()) {\r\n\t\t\t\tthis.component.role = \"menu\";\r\n\t\t\t\tslice.role = \"menuitem\";\r\n\t\t\t\tslice.focusable = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.component.role = \"list\";\r\n\t\t\t\tslice.role = \"listitem\";\r\n\t\t\t\tslice.focusable = false;\r\n\t\t\t}\r\n\r\n\t\t\t// Apply screen reader label\r\n\t\t\tif (slice.focusable) {\r\n\t\t\t\tslice.events.on(\"focus\", (ev) => {\r\n\t\t\t\t\tslice.readerTitle = component.populateString(component.itemReaderText, this);\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t\tslice.events.on(\"blur\", (ev) => {\r\n\t\t\t\t\tslice.readerTitle = \"\";\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t}\r\n\t\t\tif (slice.hoverable) {\r\n\t\t\t\tslice.events.on(\"over\", (ev) => {\r\n\t\t\t\t\tslice.readerTitle = component.populateString(component.itemReaderText, this);\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t\tslice.events.on(\"out\", (ev) => {\r\n\t\t\t\t\tslice.readerTitle = \"\";\r\n\t\t\t\t}, undefined, false);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._slice;\r\n\t}\r\n\r\n\t/**\r\n\t * Should dataItem (slice) be hidden in legend?\r\n\t *\r\n\t * @param value Visible in legend?\r\n\t */\r\n\tpublic set hiddenInLegend(value: boolean) {\r\n\t\tthis.setProperty(\"hiddenInLegend\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Disabled in legend?\r\n\t */\r\n\tpublic get hiddenInLegend(): boolean {\r\n\t\treturn this.properties.hiddenInLegend;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PercentSeries]].\r\n */\r\nexport interface IPercentSeriesDataFields extends ISeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds category.\r\n\t */\r\n\tcategory?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds boolean flag if item should be\r\n\t * hidden in legend.\r\n\t */\r\n\thiddenInLegend?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[PercentSeries]].\r\n */\r\nexport interface IPercentSeriesProperties extends ISeriesProperties {\r\n\t/**\r\n\t * A color set to be used for slices.\r\n\t *\r\n\t * For each new subsequent slice, the chart will assign the next color in\r\n\t * this set.\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * Pattern set to apply to fills.\r\n\t * \r\n\t * @since 4.7.5\r\n\t */\r\n\tpatterns?: PatternSet;\r\n\r\n\t/**\r\n\t * Align labels into nice vertical columns?\r\n\t *\r\n\t * @default true\r\n\t */\r\n\talignLabels?: boolean;\r\n\r\n\t/**\r\n\t * If set to `true` the chart will not show slices with zero values.\r\n\t * \r\n\t * @default false\r\n\t * @since 4.7.9\r\n\t */\r\n\tignoreZeroValues?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[PercentSeries]].\r\n */\r\nexport interface IPercentSeriesEvents extends ISeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PercentSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPercentSeriesAdapters extends ISeriesAdapters, IPercentSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[PercentSeries]] which is a base class for [[PieSeries]],\r\n * [[FunnelSeries]], and [[PyramidSeries]].\r\n *\r\n * @see {@link IPercentSeriesEvents} for a list of available Events\r\n * @see {@link IPercentSeriesAdapters} for a list of available Adapters\r\n */\r\nexport class PercentSeries extends Series {\r\n\r\n\t/**\r\n\t * Defines type of the slice elements for the series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * Defines type of the tick elements for the series.\r\n\t */\r\n\tpublic _tick: Tick;\r\n\r\n\t/**\r\n\t * Defines type of the label elements for the series.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to chart this series is for.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _chart: PercentChart;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IPercentSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPercentSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPercentSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPercentSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: PercentSeriesDataItem;\r\n\r\n\t/**\r\n\t * Container slice elements are put in.\r\n\t */\r\n\tpublic slicesContainer: Container;\r\n\r\n\t/**\r\n\t * Container tick elements are put in.\r\n\t */\r\n\tpublic ticksContainer: Container;\r\n\r\n\t/**\r\n\t * Container label elements are put in.\r\n\t */\r\n\tpublic labelsContainer: Container;\r\n\r\n\t/**\r\n\t * List of slice elements.\r\n\t */\r\n\tprotected _slices: ListTemplate<this[\"_slice\"]>;\r\n\r\n\t/**\r\n\t * List of tick elements.\r\n\t */\r\n\tprotected _ticks: ListTemplate<this[\"_tick\"]>;\r\n\r\n\t/**\r\n\t * List of label elements.\r\n\t */\r\n\tprotected _labels: ListTemplate<this[\"_label\"]>;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"PercentSeries\";\r\n\r\n\t\tthis._addAllDataItems = false;\r\n\r\n\t\tthis.colors = new ColorSet();\r\n\t\tthis.colors.step = 1;\r\n\t\tthis.isMeasured = true;\r\n\t\tthis.calculatePercent = true;\r\n\r\n\t\tlet slicesContainer = this.createChild(Container);\r\n\t\tslicesContainer.shouldClone = false;\r\n\t\tslicesContainer.isMeasured = false;\r\n\t\tthis.slicesContainer = slicesContainer;\r\n\r\n\t\tlet ticksContainer = this.createChild(Container);\r\n\t\tticksContainer.shouldClone = false;\r\n\t\tticksContainer.isMeasured = false;\r\n\t\tticksContainer.layout = \"none\";\r\n\t\tthis.ticksContainer = ticksContainer;\r\n\r\n\t\tlet labelsContainer = this.createChild(Container);\r\n\t\tlabelsContainer.shouldClone = false;\r\n\t\tlabelsContainer.isMeasured = false;\r\n\t\tlabelsContainer.layout = \"none\";\r\n\t\tthis.labelsContainer = labelsContainer;\r\n\r\n\t\tthis.alignLabels = false;\r\n\r\n\t\tthis.bulletsContainer.toFront();\r\n\r\n\t\t// Make all slices focusable\r\n\t\tthis.skipFocusThreshold = 50;\r\n\r\n\t\tlet defaultState = this.defaultState;\r\n\t\tdefaultState.transitionEasing = $ease.sinOut;\r\n\r\n\t\t// Accessibility\r\n\t\tthis.itemReaderText = \"{category}: {value.percent.formatNumber('#.#')}%\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a slice element.\r\n\t *\r\n\t * @return Slice\r\n\t */\r\n\tprotected createSlice(): this[\"_slice\"] {\r\n\t\treturn new Sprite();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a tick element.\r\n\t *\r\n\t * @return Tick\r\n\t */\r\n\tprotected createTick(): this[\"_tick\"] {\r\n\t\treturn new Tick();\r\n\t}\r\n\r\n\t/**\r\n\t * Sreates label element.\r\n\t *\r\n\t * @return label\r\n\t */\r\n\tprotected createLabel(): this[\"_label\"] {\r\n\t\treturn new Label();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of slice elements for the series.\r\n\t *\r\n\t * Use its `template` to configure look and behavior of the slices. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.slices.template.stroke = am4core.color(\"#fff\");\r\n\t * series.slices.template.strokeWidth = 2;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.slices.template.stroke = am4core.color(\"#fff\");\r\n\t * series.slices.template.strokeWidth = 2;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"slices\": {\r\n\t * \"stroke\": \"#fff\",\r\n\t * \"strokeWidth\": 2\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n\t * @return Slices\r\n\t */\r\n\tpublic get slices(): ListTemplate<this[\"_slice\"]> {\r\n\t\tif (!this._slices) {\r\n\t\t\tlet slice = this.createSlice();\r\n\r\n\t\t\tslice.applyOnClones = true;\r\n\t\t\tthis._disposers.push(slice);\r\n\t\t\tthis.initSlice(slice);\r\n\r\n\t\t\tthis._slices = new ListTemplate(slice);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._slices));\r\n\t\t}\r\n\t\treturn this._slices;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of tick elements for the series. Ticks connect slice to its label.\r\n\t *\r\n\t * Use its `template` to configure look and behavior of the ticks. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.ticks.template.strokeWidth = 2;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.ticks.template.strokeWidth = 2;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"ticks\": {\r\n\t * \"strokeWidth\": 2\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n\t * @return Ticks\r\n\t */\r\n\tpublic get ticks(): ListTemplate<this[\"_tick\"]> {\r\n\t\tif (!this._ticks) {\r\n\t\t\tlet tick = this.createTick();\r\n\t\t\ttick.applyOnClones = true;\r\n\t\t\tthis._disposers.push(tick);\r\n\t\t\tthis.initTick(tick);\r\n\r\n\t\t\tthis._ticks = new ListTemplate(tick);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._ticks));\r\n\t\t}\r\n\t\treturn this._ticks;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of slice label elements for the series.\r\n\t *\r\n\t * Use its `template` to configure look and behavior of the labels. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.labels.template.fill = am4core.color(\"#c00\");\r\n\t * series.labels.template.fontSize = 20;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.labels.template.fill = am4core.color(\"#c00\");\r\n\t * series.labels.template.fontSize = 20;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"labels\": {\r\n\t * \"stroke\": \"#c00\",\r\n\t * \"fontSize\": 20\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/list-templates/} for more information about list templates\r\n\t * @return Labels\r\n\t */\r\n\tpublic get labels(): ListTemplate<this[\"_label\"]> {\r\n\t\tif (!this._labels) {\r\n\t\t\tlet label = this.createLabel();\r\n\t\t\tlabel.applyOnClones = true;\r\n\t\t\tthis._disposers.push(label);\r\n\t\t\tthis.initLabel(label);\r\n\r\n\t\t\tthis._labels = new ListTemplate(label);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._labels));\r\n\t\t}\r\n\t\treturn this._labels;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new PercentSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new slice element.\r\n\t *\r\n\t * @param sliceType Type of the slice element\r\n\t * @return Slice\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\r\n\t}\r\n\r\n\tprotected initLabel(label: this[\"_label\"]) {\r\n\t\tlabel.text = \"{category}: {value.percent.formatNumber('#.0')}%\";\r\n\t\tlabel.isMeasured = false;\r\n\t\tlabel.padding(5, 5, 5, 5);\r\n\t}\r\n\r\n\tprotected initTick(label: this[\"_tick\"]) {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Validates (processes) data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems(): void {\r\n\t\tthis.colors.reset();\r\n\t\tif (this.patterns) {\r\n\t\t\tthis.patterns.reset();\r\n\t\t}\r\n\t\tsuper.validateDataItems();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\r\n\t\tlet slice = dataItem.slice;\r\n\r\n\t\tif (slice) {\r\n\t\t\tif (slice.fill == undefined) {\r\n\t\t\t\tif (this.patterns) {\r\n\t\t\t\t\tif (!$type.hasValue(slice.stroke)) {\r\n\t\t\t\t\t\tslice.stroke = this.colors.next();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tslice.fill = this.patterns.next();\r\n\t\t\t\t\tif ($type.hasValue(slice.fillOpacity)) {\r\n\t\t\t\t\t\tslice.fill.backgroundOpacity = slice.fillOpacity;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (slice.stroke instanceof Color) {\r\n\t\t\t\t\t\tslice.fill.stroke = slice.stroke;\r\n\t\t\t\t\t\tslice.fill.fill = slice.stroke;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tslice.fill = this.colors.next();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.colors.currentStep += this.colors.step;\r\n\t\t\t}\r\n\r\n\t\t\tif (slice.stroke == undefined) {\r\n\t\t\t\tslice.stroke = slice.fill;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// do this at the end, otherwise bullets won't be positioned properly\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\tif (slice) {\r\n\t\t\tdataItem.bullets.each((key, bullet) => {\r\n\t\t\t\tif (bullet.fill == undefined) {\r\n\t\t\t\t\tbullet.fill = slice.fill;\r\n\t\t\t\t}\r\n\t\t\t\tif (bullet.stroke == undefined) {\r\n\t\t\t\t\tbullet.stroke = slice.stroke;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis.updateLegendValue(dataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Validates (processes) data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tsuper.validateData();\r\n\t\tif (this.chart) {\r\n\t\t\tthis.chart.feedLegend();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Arranges slice labels according to position settings.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItems Data items\r\n\t */\r\n\tprotected arrangeLabels(dataItems: this[\"_dataItem\"][]): void {\r\n\t\tfor (let i = 0, len = dataItems.length; i < len; i++) {\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = dataItems[i];\r\n\r\n\t\t\tlet label = dataItem.label;\r\n\r\n\t\t\tif (label) {\r\n\r\n\t\t\t\tif (label.invalid) {\r\n\t\t\t\t\tlabel.validate();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tlet lh = label.measuredHeight;\r\n\t\t\t\tif (!label.visible) {\r\n\t\t\t\t\tlh = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (label.pixelY - lh / 2 < -this.maxHeight / 2) {\r\n\t\t\t\t\tlabel.y = -this.maxHeight / 2 + lh / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet nextLabel = this.getNextLabel(i + 1, dataItems);\r\n\r\n\t\t\t\tlet bottom: number = label.pixelY + lh;\r\n\r\n\t\t\t\tif (nextLabel) {\r\n\t\t\t\t\tif (nextLabel.y < bottom) {\r\n\t\t\t\t\t\tnextLabel.y = bottom;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected arrangeLabels2(dataItems: this[\"_dataItem\"][]): void {\r\n\r\n\t\tlet previousTop = this.maxHeight / 2;\r\n\r\n\t\tfor (let i = dataItems.length - 1; i >= 0; i--) {\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = dataItems[i];\r\n\r\n\t\t\tlet label = dataItem.label;\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tif (label.invalid) {\r\n\t\t\t\t\tlabel.validate();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet lh = label.measuredHeight;\r\n\t\t\t\tif (!label.visible) {\r\n\t\t\t\t\tlh = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (i == dataItems.length - 1) {\r\n\t\t\t\t\tpreviousTop += lh / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (label.pixelY + lh > previousTop) {\r\n\t\t\t\t\tlabel.y = previousTop - lh;\r\n\t\t\t\t\tpreviousTop = label.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the next label according to `index`.\r\n\t *\r\n\t * @param index Current index\r\n\t * @param dataItems Data items\r\n\t * @return Label element\r\n\t */\r\n\tprotected getNextLabel(index: number, dataItems: this[\"_dataItem\"][]): this[\"_label\"] {\r\n\t\tif (dataItems.length >= index) {\r\n\t\t\tlet nextDataItem: this[\"_dataItem\"] = dataItems[index];\r\n\t\t\tif (nextDataItem) {\r\n\t\t\t\tif (nextDataItem.label) {\r\n\t\t\t\t\tif (nextDataItem.visible) {\r\n\t\t\t\t\t\treturn nextDataItem.label;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treturn this.getNextLabel(index + 1, dataItems);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn this.getNextLabel(index + 1, dataItems);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A color set to be used for slices.\r\n\t *\r\n\t * For each new subsequent slice, the chart will assign the next color in\r\n\t * this set.\r\n\t *\r\n\t * @param value Color set\r\n\t */\r\n\tpublic set colors(value: ColorSet) {\r\n\t\tthis.setPropertyValue(\"colors\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color set\r\n\t */\r\n\tpublic get colors(): ColorSet {\r\n\t\treturn this.getPropertyValue(\"colors\");\r\n\t}\r\n\r\n\t/**\r\n\t * A [[PatternSet]] to use when creating patterned fills for slices.\r\n\t *\r\n\t * @since 4.7.5\r\n\t * @param value Pattern set\r\n\t */\r\n\tpublic set patterns(value: PatternSet) {\r\n\t\tthis.setPropertyValue(\"patterns\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Pattern set\r\n\t */\r\n\tpublic get patterns(): PatternSet {\r\n\t\treturn this.getPropertyValue(\"patterns\");\r\n\t}\r\n\r\n\t/**\r\n\t * Binds related legend data item's visual settings to this series' visual\r\n\t * settings.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Container\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic createLegendMarker(marker: Container, dataItem?: this[\"_dataItem\"]): void {\r\n\t\t$iter.each(marker.children.iterator(), (child) => {\r\n\t\t\tlet slice: this[\"_slice\"] = dataItem.slice;\r\n\r\n\t\t\tchild.defaultState.properties.fill = slice.fill;\r\n\t\t\tchild.defaultState.properties.stroke = slice.stroke;\r\n\t\t\tchild.defaultState.properties.fillOpacity = slice.fillOpacity;\r\n\t\t\tchild.defaultState.properties.strokeOpacity = slice.strokeOpacity;\r\n\r\n\t\t\tchild.fill = slice.fill;\r\n\t\t\tchild.stroke = slice.stroke;\r\n\t\t\tchild.fillOpacity = slice.fillOpacity;\r\n\t\t\tchild.strokeOpacity = slice.strokeOpacity;\r\n\r\n\t\t\tif (child.fill == undefined) {\r\n\t\t\t\tchild.__disabled = true;\r\n\t\t\t}\r\n\r\n\t\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\t\tlegendDataItem.color = slice.fill;\r\n\t\t\tlegendDataItem.colorOrig = slice.fill;\r\n\r\n\t\t\tchild.addDisposer(slice.events.on(\"propertychanged\", (ev) => {\r\n\t\t\t\tif (ev.property == \"fill\") {\r\n\r\n\t\t\t\t\tchild.__disabled = false;\r\n\r\n\t\t\t\t\tif (!child.isActive) {\r\n\t\t\t\t\t\tchild.fill = slice.fill;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchild.defaultState.properties.fill = slice.fill;\r\n\t\t\t\t\tlegendDataItem.color = slice.fill;\r\n\t\t\t\t\tlegendDataItem.colorOrig = slice.fill;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (ev.property == \"stroke\") {\r\n\t\t\t\t\tif (!child.isActive) {\r\n\t\t\t\t\t\tchild.stroke = slice.stroke;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchild.defaultState.properties.stroke = slice.stroke;\r\n\t\t\t\t}\r\n\t\t\t}, undefined, false));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Repositions bullets when slice's size changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSliceScale(event: AMEvent<this[\"_slice\"], ISpriteEvents>[\"propertychanged\"]): void {\r\n\t\tlet slice: this[\"_slice\"] = event.target;\r\n\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>slice.dataItem;\r\n\t\t$iter.each(dataItem.bullets.iterator(), (a) => {\r\n\t\t\tlet value = a[1];\r\n\t\t\tthis.positionBullet(value);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Repositions bullet and labels when slice moves.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSliceMove(event: AMEvent<this[\"_slice\"], ISpriteEvents>[\"propertychanged\"]): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[PercentSeries]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.slices.template.copyFrom(source.slices.template);\r\n\t\tthis.labels.template.copyFrom(source.labels.template);\r\n\t\tthis.ticks.template.copyFrom(source.ticks.template);\r\n\t\tthis.colors = source.colors.clone();\r\n\t}\r\n\r\n\t/**\r\n\t * Align labels into nice vertical columns?\r\n\t *\r\n\t * This will ensure that labels never overlap with each other.\r\n\t *\r\n\t * Arranging labels into columns makes them more readble, and better user\r\n\t * experience.\r\n\t *\r\n\t * If set to `false` labels will be positioned at `label.radius` distance,\r\n\t * and may, in some cases, overlap.\r\n\t *\r\n\t * @default true\r\n\t * @param value Align labels?\r\n\t */\r\n\tpublic set alignLabels(value: boolean) {\r\n\t\tthis.setAlignLabels(value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Align labels?\r\n\t */\r\n\tpublic get alignLabels(): boolean {\r\n\t\treturn this.getPropertyValue(\"alignLabels\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setAlignLabels(value: boolean) {\r\n\t\tthis.setPropertyValue(\"alignLabels\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true` the chart will not show slices with zero values.\r\n\t * \r\n\t * @default false\r\n\t * @since 4.7.9\r\n\t * @param value Ignore zero values\r\n\t */\r\n\tpublic set ignoreZeroValues(value: boolean) {\r\n\t\tthis.setPropertyValue(\"ignoreZeroValues\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Ignore zero values\r\n\t */\r\n\tpublic get ignoreZeroValues(): boolean {\r\n\t\treturn this.getPropertyValue(\"ignoreZeroValues\");\r\n\t}\r\n\r\n\t/**\r\n\t * Updates corresponding legend data item with current values.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic updateLegendValue(dataItem?: this[\"_dataItem\"]) {\r\n\t\tif (dataItem) {\r\n\t\t\tlet legendDataItem = dataItem.legendDataItem;\r\n\t\t\tlet legendSettings = dataItem.legendSettings;\r\n\r\n\t\t\tif (legendDataItem && legendSettings) {\r\n\r\n\t\t\t\tif (legendSettings) {\r\n\t\t\t\t\tif (legendSettings.labelText) {\r\n\t\t\t\t\t\tlegendDataItem.label.text = legendSettings.labelText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (legendSettings.itemLabelText) {\r\n\t\t\t\t\t\tlegendDataItem.label.text = legendSettings.itemLabelText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (legendSettings.valueText) {\r\n\t\t\t\t\t\tlegendDataItem.valueLabel.text = legendSettings.valueText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (legendSettings.itemValueText) {\r\n\t\t\t\t\t\tlegendDataItem.valueLabel.text = legendSettings.itemValueText;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PercentSeries\"] = PercentSeries;\r\nregistry.registeredClasses[\"PercentSeriesDataItem\"] = PercentSeriesDataItem;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Disable labels and ticks.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.maybeXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof PercentSeries) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\r\n\t\t\tlet labelState = target.labels.template.states.create(stateId);\r\n\t\t\tlabelState.properties.disabled = true;\r\n\r\n\t\t\tlet tickState = target.ticks.template.states.create(stateId);\r\n\t\t\ttickState.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","/**\r\n * Percent chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SerialChart, ISerialChartProperties, ISerialChartDataFields, ISerialChartAdapters, ISerialChartEvents, SerialChartDataItem } from \"./SerialChart\";\r\nimport { PercentSeries, PercentSeriesDataItem } from \"../series/PercentSeries\";\r\nimport { Legend } from \"../Legend\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PercentChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PercentChartDataItem extends SerialChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PercentChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PercentChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PercentChart]].\r\n */\r\nexport interface IPercentChartDataFields extends ISerialChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[PercentChart]]\r\n */\r\nexport interface IPercentChartProperties extends ISerialChartProperties { }\r\n\r\n/**\r\n * Defines events for [[PercentChart]].\r\n */\r\nexport interface IPercentChartEvents extends ISerialChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PercentChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPercentChartAdapters extends ISerialChartAdapters, IPercentChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This is a base class for \"percent-based\" chart types like Pie and Funnel.\r\n *\r\n * @see {@link IPercentChartEvents} for a list of available Events\r\n * @see {@link IPercentChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for Pie chart documentation\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for Sliced chart documentation\r\n */\r\nexport class PercentChart extends SerialChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IPercentChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPercentChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPercentChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPercentChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: PercentSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"PercentChart\";\r\n\r\n\t\tthis.align = \"none\";\r\n\t\tthis.valign = \"none\";\r\n\r\n\t\t// so that the chart is always drawn, even the legend wants all the space\r\n\t\tthis.chartContainer.minHeight = 50;\r\n\t\tthis.chartContainer.minWidth = 50;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates chart data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tsuper.validateData();\r\n\t\tthis.feedLegend();\r\n\t}\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t * @ignore\r\n\t */\r\n\tpublic feedLegend(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\r\n\t\t\tlet legendData: any[] = [];\r\n\r\n\t\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\t\tif (!series.hiddenInLegend) {\r\n\t\t\t\t\t$iter.each(series.dataItems.iterator(), (dataItem) => {\r\n\t\t\t\t\t\tif (!dataItem.hiddenInLegend) {\r\n\t\t\t\t\t\t\tlegendData.push(<PercentSeriesDataItem>dataItem);\r\n\t\t\t\t\t\t\tif(!dataItem.legendSettings){\r\n\t\t\t\t\t\t\t\tdataItem.legendSettings = series.legendSettings;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tlegend.data = legendData;\r\n\t\t\tlegend.dataFields.name = \"category\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new [[PercentSeries]].\r\n\t *\r\n\t * @return New series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new PercentSeries();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setLegend(legend: Legend) {\r\n\t\tsuper.setLegend(legend);\r\n\t\tif (legend) {\r\n\t\t\tlegend.labels.template.text = \"{category}\";\r\n\t\t\tlegend.valueLabels.template.text = \"{value.percent.formatNumber('#.0')}%\";\r\n\r\n\t\t\tlegend.itemContainers.template.events.on(\"over\", (event) => {\r\n\t\t\t\tlet percentSeriesDataItem: PercentSeriesDataItem = <PercentSeriesDataItem>event.target.dataItem.dataContext;\r\n\t\t\t\tif (percentSeriesDataItem.visible && !percentSeriesDataItem.isHiding) {\r\n\t\t\t\t\tlet slice = percentSeriesDataItem.slice;\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tslice.dispatchImmediately(\"over\");\t\t\t\t\t\r\n\t\t\t\t\tslice.isHover = true;\t\t\t\t\r\n\t\t\t\t\tslice.interactions.isRealHover = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tlegend.itemContainers.template.events.on(\"out\", (event) => {\r\n\t\t\t\tlet percentSeriesDataItem: PercentSeriesDataItem = <PercentSeriesDataItem>event.target.dataItem.dataContext;\r\n\t\t\t\tlet slice = percentSeriesDataItem.slice;\r\n\t\t\t\tslice.dispatchImmediately(\"out\");\r\n\t\t\t\tslice.isHover = false;\t\t\t\t\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @hidden\r\n */\r\nregistry.registeredClasses[\"PercentChart\"] = PercentChart;\r\nregistry.registeredClasses[\"PercentChartDataItem\"] = PercentChartDataItem;\r\n","/**\r\n * Pie tick module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick, ITickProperties, ITickAdapters, ITickEvents } from \"../elements/Tick\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { PieSeries } from \"../series/PieSeries\"\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[PieTick]].\r\n */\r\nexport interface IPieTickProperties extends ITickProperties { }\r\n\r\n/**\r\n * Defines events for [[PieTick]].\r\n */\r\nexport interface IPieTickEvents extends ITickEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PieTick]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPieTickAdapters extends ITickAdapters, IPieTickProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws an tick line for a pie slice connecting it to a related label.\r\n *\r\n * @see {@link IPieTickEvents} for a list of available events\r\n * @see {@link IPieTickAdapters} for a list of available Adapters\r\n */\r\nexport class PieTick extends Tick {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPieTickProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPieTickAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPieTickEvents;\r\n\r\n\t/**\r\n\t * A label element this tick is attached to.\r\n\t */\r\n\tprotected _label = new MutableValueDisposer<AxisLabelCircular>();\r\n\r\n\t/**\r\n\t * A slice element this tick is attached to.\r\n\t */\r\n\tprotected _slice = new MutableValueDisposer<Slice>();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieTick\";\r\n\t\tthis.element = this.paper.add(\"polyline\");\r\n\t\tthis._disposers.push(this._label);\r\n\t\tthis._disposers.push(this._slice);\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tlet slice: Slice = this.slice;\r\n\t\tlet label = this.label;\r\n\r\n\t\tlet series = <PieSeries>slice.dataItem.component;\r\n\r\n\t\tif (slice && slice.radius > 0 && label && label.text) {\r\n\t\t\tlet x0 = slice.dx + slice.slice.dx + slice.pixelX + slice.ix * slice.radius * slice.scale;\r\n\t\t\tlet y0 = slice.dy + slice.slice.dy + slice.pixelY + slice.iy * slice.radiusY * slice.scale;\r\n\r\n\t\t\tlet x1: number;\r\n\t\t\tlet y1: number;\r\n\r\n\t\t\tlet x2: number;\r\n\t\t\tlet y2: number;\r\n\r\n\t\t\tif (series.alignLabels) {\r\n\t\t\t\tx1 = label.pixelX - this.length;\r\n\t\t\t\ty1 = label.pixelY;\r\n\r\n\t\t\t\tx2 = label.pixelX;\r\n\t\t\t\ty2 = y1;\r\n\r\n\t\t\t\tif (label.horizontalCenter == \"right\") {\r\n\t\t\t\t\tx1 += 2 * this.length;\r\n\t\t\t\t\tx2 = x1 - this.length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst r = label.pixelRadius(slice.radius);\r\n\r\n\t\t\t\tx1 = x0 + r * slice.ix;\r\n\t\t\t\ty1 = y0 + r * slice.iy;\r\n\r\n\t\t\t\tx2 = x1;\r\n\t\t\t\ty2 = y1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.element.attr({ \"points\": [x0, y0, x1, y1, x2, y2] });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Slice element tick is attached to.\r\n\t *\r\n\t * @param slice Slice\r\n\t */\r\n\tpublic set slice(slice: Slice) {\r\n\t\tthis._slice.set(slice, new MultiDisposer([\r\n\t\t\tslice.events.on(\"transformed\", this.invalidate, this),\r\n\t\t\tslice.events.on(\"validated\", this.invalidate, this)\r\n\t\t]));\r\n\t}\r\n\r\n\t/**\r\n\t * @return Slice\r\n\t */\r\n\tpublic get slice(): Slice {\r\n\t\treturn this._slice.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Label element tick is attached to.\r\n\t *\r\n\t * @param label Label\r\n\t */\r\n\tpublic set label(label: AxisLabelCircular) {\r\n\t\tthis._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n\t}\r\n\r\n\t/**\r\n\t * @return Label\r\n\t */\r\n\tpublic get label(): AxisLabelCircular {\r\n\t\treturn this._label.get();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieTick\"] = PieTick;\r\n","/**\r\n * Defines Pie Chart Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPercentSeriesAdapters, IPercentSeriesDataFields, IPercentSeriesEvents, IPercentSeriesProperties, PercentSeries, PercentSeriesDataItem } from \"./PercentSeries\";\r\nimport { ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\n//import { Slice3D } from \"../../core/elements/3D/Slice3D\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { PieTick } from \"../elements/PieTick\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { PieChart } from \"../types/PieChart\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo: sequenced?\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PieSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PieSeriesDataItem extends PercentSeriesDataItem {\r\n\r\n\t/**\r\n\t * A type of slice used for this series.\r\n\t */\r\n\tpublic _slice: Slice;\r\n\r\n\t/**\r\n\t * A reference to a slice label element.\r\n\t */\r\n\tpublic _label: AxisLabelCircular;\r\n\r\n\t/**\r\n\t * A reference to a slice tick element.\r\n\t */\r\n\tpublic _tick: PieTick;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PieSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieSeriesDataItem\";\r\n\r\n\t\tthis.values.radiusValue = {};\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Slice's radius, if other than default.\r\n\t *\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set radiusValue(value: number) {\r\n\t\tthis.setValue(\"radiusValue\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t */\r\n\tpublic get radiusValue(): number {\r\n\t\treturn this.values.radiusValue.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Hide the data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param toValue Target value for animation\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\treturn super.hide(duration, delay, 0, [\"value\", \"radiusValue\"]);\r\n\t}\r\n\r\n\t/**\r\n\t * Show hidden data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\treturn super.show(duration, delay, [\"value\", \"radiusValue\"]);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PieSeries]].\r\n */\r\nexport interface IPieSeriesDataFields extends IPercentSeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds item's radius value.\r\n\t */\r\n\tradiusValue?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[PieSeries]].\r\n */\r\nexport interface IPieSeriesProperties extends IPercentSeriesProperties {\r\n\r\n\t/**\r\n\t * Outer radius for the series' slices in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius for the series' slices in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * Start angle for the series' slices in degrees. (0-360)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Redo so that users can set it\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * End angle for the series' slices in degrees. (0-360)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Redo so that users can set it\r\n\t */\r\n\tendAngle?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[PieSeries]].\r\n */\r\nexport interface IPieSeriesEvents extends IPercentSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PieSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPieSeriesAdapters extends IPercentSeriesAdapters, IPieSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a slice series on a Pie chart.\r\n *\r\n * @see {@link IPieSeriesEvents} for a list of available Events\r\n * @see {@link IPieSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class PieSeries extends PercentSeries {\r\n\r\n\tpublic _slice: Slice;\r\n\r\n\tpublic _tick: PieTick;\r\n\r\n\tpublic _label: AxisLabelCircular;\r\n\r\n\tpublic _chart: PieChart;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IPieSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPieSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPieSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPieSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: PieSeriesDataItem;\r\n\r\n\t/**\r\n\t * Holds current angle for the next slice to start on.\r\n\t */\r\n\tprotected _currentStartAngle: number;\r\n\r\n\t/**\r\n\t * Data items that fall to the left side of the pie.\r\n\t */\r\n\tprotected _leftItems: this[\"_dataItem\"][];\r\n\r\n\t/**\r\n\t * Data items that fall to the right side of the pie.\r\n\t */\r\n\tprotected _rightItems: this[\"_dataItem\"][];\r\n\r\n\t/**\r\n\t * [_arcRect description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _arcRect: IRectangle;\r\n\r\n\t/**\r\n\t * [_maxRadiusPercent description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _maxRadiusPercent: number;\r\n\r\n\t/**\r\n\t * [_pixelRadius description]\r\n\t *\r\n\t * @ignore this is set by pie chart, not by user\r\n\t */\r\n\tprotected _pixelRadius: number;\r\n\r\n\t/**\r\n\t * [_pixelInnerRadius description]\r\n\t *\r\n\t * @ignore this is set by pie chart, not by user\r\n\t */\r\n\tprotected _pixelInnerRadius: number;\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _startAngleInternal: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _endAngleInternal: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"PieSeries\";\r\n\r\n\t\tthis.alignLabels = true;\r\n\t\t//this.startAngle = -90;\r\n\t\t//this.endAngle = 270;\r\n\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.labels.template.radius = percent(5);\r\n\r\n\t\tthis.addDisposer(this.labels.template.events.on(\"enabled\", this.invalidate, this, false));\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * creates slice\r\n\t */\r\n\tprotected createSlice(): this[\"_slice\"] {\r\n\t\treturn new Slice();\r\n\t}\r\n\r\n\t/**\r\n\t * creates tick\r\n\t */\r\n\tprotected createTick(): this[\"_tick\"] {\r\n\t\treturn new PieTick();\r\n\t}\r\n\r\n\t/**\r\n\t * creates label\r\n\t */\r\n\tprotected createLabel(): this[\"_label\"] {\r\n\t\treturn new AxisLabelCircular();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Pie Slice Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new PieSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Inits slice.\r\n\t *\r\n\t * @param slice to init\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\t\tslice.isMeasured = false;\r\n\t\tslice.defaultState.properties.scale = 1;\r\n\t\tslice.observe(\"scale\", this.handleSliceScale, this);\r\n\t\tslice.observe([\"dx\", \"dy\", \"x\", \"y\", \"shiftRadius\"], this.handleSliceMove, this);\r\n\t\tslice.tooltipText = \"{category}: {value.percent.formatNumber('#.#')}% ({value.value})\";\r\n\r\n\t\tlet hoverState = slice.states.create(\"hover\");\r\n\t\thoverState.properties.scale = 1.05;\r\n\r\n\t\tlet defaultState = slice.defaultState;\r\n\t\tdefaultState.properties.shiftRadius = 0;\r\n\r\n\t\tslice.togglable = true;\r\n\r\n\t\tslice.events.on(\"toggled\", (event) => {\r\n\t\t\tevent.target.hideTooltip();\r\n\t\t});\r\n\r\n\t\tlet activeState = slice.states.create(\"active\");\r\n\t\tactiveState.properties.shiftRadius = 0.10;\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tthis._leftItems = [];\r\n\t\tthis._rightItems = [];\r\n\r\n\t\tthis._currentStartAngle = this.startAngle;\r\n\t\tthis._arcRect = $math.getArcRect(this.startAngle, this.endAngle);\r\n\r\n\t\tthis._maxRadiusPercent = 0;\r\n\t\tfor (let i = this.startIndex; i < this.endIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tlet radiusValuePercent = dataItem.values.radiusValue.percent;\r\n\t\t\tif (radiusValuePercent > this._maxRadiusPercent) {\r\n\t\t\t\tthis._maxRadiusPercent = radiusValuePercent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tif (this.alignLabels) {\r\n\t\t\tif (this.startAngle > this.endAngle) {\r\n\t\t\t\tthis._rightItems.reverse();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._leftItems.reverse()\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._rightItems.sort((a, b) => {\r\n\t\t\t\tlet aAngle = (a.slice.middleAngle + 360) % 360;\r\n\t\t\t\tlet bAngle = (b.slice.middleAngle + 360) % 360;\r\n\r\n\t\t\t\tif (aAngle > 270) {\r\n\t\t\t\t\taAngle -= 360;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (bAngle > 270) {\r\n\t\t\t\t\tbAngle -= 360;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (aAngle < bAngle) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t}\r\n\t\t\t\telse if (aAngle > bAngle) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis._leftItems.sort((a, b) => {\r\n\r\n\t\t\t\tlet aAngle = (a.slice.middleAngle + 360) % 360;\r\n\t\t\t\tlet bAngle = (b.slice.middleAngle + 360) % 360;\r\n\r\n\t\t\t\tif (aAngle < bAngle) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\telse if (aAngle > bAngle) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.arrangeLabels(this._rightItems);\r\n\t\t\tthis.arrangeLabels2(this._rightItems);\r\n\t\t\tthis.arrangeLabels(this._leftItems);\r\n\t\t\tthis.arrangeLabels2(this._leftItems);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\tif (this.pixelRadius > 0) {\r\n\r\n\t\t\tif (this.ignoreZeroValues && dataItem.value == 0) {\r\n\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t}\r\n\r\n\t\t\t// SLICE\r\n\t\t\tlet slice: Slice = dataItem.slice;\r\n\t\t\tslice.radius = this.pixelRadius;\r\n\r\n\t\t\tif ($type.isNumber(dataItem.radiusValue)) {\r\n\t\t\t\tslice.radius = this.pixelInnerRadius + (this.pixelRadius - this.pixelInnerRadius) * dataItem.values.radiusValue.percent / this._maxRadiusPercent;\r\n\t\t\t}\r\n\t\t\tif (!(slice.innerRadius instanceof Percent)) {\r\n\t\t\t\tslice.innerRadius = this.pixelInnerRadius;\r\n\t\t\t}\r\n\t\t\tslice.startAngle = this._currentStartAngle;\r\n\r\n\t\t\tslice.arc = Math.abs(dataItem.values.value.percent) * (this.endAngle - this.startAngle) / 100;\r\n\r\n\t\t\t// LABEL\r\n\t\t\tif (!this.labels.template.disabled) {\r\n\t\t\t\tlet label = dataItem.label;\r\n\r\n\t\t\t\tlet tick = dataItem.tick;\r\n\t\t\t\ttick.slice = slice;\r\n\t\t\t\ttick.label = label;\r\n\r\n\t\t\t\tlet normalizedMiddleAngle: number = (slice.middleAngle + 360) % 360; // force angle to be 0 - 360;\r\n\r\n\t\t\t\tlet point: IPoint;\r\n\r\n\t\t\t\tif (this.alignLabels) {\r\n\t\t\t\t\tlet labelRadius = label.pixelRadius(slice.radius);\r\n\t\t\t\t\tlet x: number = tick.length + labelRadius;\r\n\t\t\t\t\tlabel.dx = 0;\r\n\t\t\t\t\tlabel.dy = 0;\r\n\t\t\t\t\tlabel.verticalCenter = \"middle\";\r\n\t\t\t\t\tlet arcRect = this._arcRect;\r\n\t\t\t\t\t// right half\r\n\t\t\t\t\tif (normalizedMiddleAngle > 270 || normalizedMiddleAngle <= 90) {\r\n\t\t\t\t\t\tx += (arcRect.width + arcRect.x) * this.pixelRadius;\r\n\t\t\t\t\t\tlabel.horizontalCenter = \"left\";\r\n\t\t\t\t\t\tthis._rightItems.push(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// left half\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tx -= arcRect.x * this.pixelRadius;\r\n\t\t\t\t\t\tlabel.horizontalCenter = \"right\";\r\n\t\t\t\t\t\tthis._leftItems.push(dataItem);\r\n\t\t\t\t\t\tx *= -1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet distance = slice.radius + tick.length + labelRadius;\r\n\t\t\t\t\tpoint = { x: x, y: slice.iy * distance };\r\n\t\t\t\t\tlabel.moveTo(point);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet depth = (<any>slice)[\"depth\"];\r\n\t\t\t\t\tif (!$type.isNumber(depth)) {\r\n\t\t\t\t\t\tdepth = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlabel.fixPosition(slice.middleAngle, slice.radius, slice.radiusY, 0, -depth);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis._currentStartAngle += slice.arc;\r\n\r\n\t\t\t// do this at the end, otherwise bullets won't be positioned properly\r\n\t\t\tsuper.validateDataElement(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius for the series' slices in pixels or [[Percent]].\r\n\t *\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"radius\", value, true, false, 10, false)) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t * @ignore\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn this._pixelRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic set pixelRadius(value: number) {\r\n\t\tif (this._pixelRadius != value) {\r\n\t\t\tthis._pixelRadius = value;\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Pixel inner radius\r\n\t * @ignore\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn this._pixelInnerRadius;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic set pixelInnerRadius(value: number) {\r\n\t\tif (this._pixelInnerRadius != value) {\r\n\t\t\tthis._pixelInnerRadius = value;\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius for the series' slices in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Redo so that users can set it\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Start angle for the series' slices in degrees. (0-360)\r\n\t *\r\n\t * @param value Angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", $math.normalizeAngle(value), true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\tlet startAngle = this.getPropertyValue(\"startAngle\");\r\n\t\tif ($type.isNumber(startAngle)) {\r\n\t\t\treturn startAngle;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._startAngleInternal;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * End angle for the series' slices in degrees. (0-360)\r\n\t *\r\n\t * @param value Angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"endAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\tlet endAngle = this.getPropertyValue(\"endAngle\");\r\n\t\tif ($type.isNumber(endAngle)) {\r\n\t\t\treturn endAngle;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._endAngleInternal;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Positions series bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet Bullet\r\n\t */\r\n\tpublic positionBullet(bullet: Bullet): void {\r\n\t\tsuper.positionBullet(bullet);\r\n\r\n\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>bullet.dataItem;\r\n\t\tlet slice: Slice = dataItem.slice;\r\n\r\n\t\tlet locationX = bullet.locationX;\r\n\t\tif (!$type.isNumber(locationX)) {\r\n\t\t\tlocationX = 0.5;\r\n\t\t}\r\n\t\tlet locationY = bullet.locationY;\r\n\t\tif (!$type.isNumber(locationY)) {\r\n\t\t\tlocationY = 1;\r\n\t\t}\r\n\r\n\t\tlet angle = slice.startAngle + slice.arc * locationX;\r\n\r\n\t\tbullet.x = locationY * slice.radius * $math.cos(angle);\r\n\t\tbullet.y = locationY * slice.radiusY * $math.sin(angle);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Repositions bullet and labels when slice moves.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSliceMove(event: AMEvent<this[\"_slice\"], ISpriteEvents>[\"propertychanged\"]): void {\r\n\t\tif (!this.alignLabels) {\r\n\r\n\t\t\tlet slice = event.target;\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>slice.dataItem;\r\n\t\t\t// moving textelement, as label dx and dy are already employed for aligning\r\n\t\t\t//@labeltodo\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tlet label = dataItem.label;\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\tlabel.dx = label.fdx + slice.dx + slice.pixelX;\r\n\t\t\t\t\tlabel.dy = label.fdy + slice.dy + slice.pixelY;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\treturn $math.getArcRect(chart.startAngle, chart.endAngle, this.pixelRadius);\r\n\t\t}\r\n\r\n\t\treturn $math.getArcRect(this.startAngle, this.endAngle, this.pixelRadius);\r\n\t}\r\n}\r\n\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieSeries\"] = PieSeries;\r\nregistry.registeredClasses[\"PieSeriesDataItem\"] = PieSeriesDataItem;\r\n","/**\r\n * Pie chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, IPercentChartProperties, IPercentChartDataFields, IPercentChartAdapters, IPercentChartEvents, PercentChartDataItem } from \"./PercentChart\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { PieSeries } from \"../series/PieSeries\";\r\nimport { IListEvents } from \"../../core/utils/List\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PieChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PieChartDataItem extends PercentChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PieChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PieChart]].\r\n */\r\nexport interface IPieChartDataFields extends IPercentChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[PieChart]]\r\n */\r\nexport interface IPieChartProperties extends IPercentChartProperties {\r\n\r\n\t/**\r\n\t * Outer radius of the pie.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Relative inner radius (0-1).\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * An angle pie starts on. (degrees)\r\n\t *\r\n\t * @default -90\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * An angle pie ends on. (degrees)\r\n\t *\r\n\t * @default 270\r\n\t */\r\n\tendAngle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[PieChart]].\r\n */\r\nexport interface IPieChartEvents extends IPercentChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PieChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPieChartAdapters extends IPercentChartAdapters, IPieChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Pie chart.\r\n *\r\n * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * let series = chart.series.push(new am4charts.PieSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.PieChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"PieChart\");\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * var series = chart.series.push(new am4charts.PieSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"PieSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"value\": \"litres\",\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"Lithuania\",\r\n * \t\t\"litres\": 501.9\r\n * \t}, {\r\n * \t\t\"country\": \"Czechia\",\r\n * \t\t\"litres\": 301.9\r\n * \t}, {\r\n * \t\t\"country\": \"Ireland\",\r\n * \t\t\"litres\": 201.1\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"PieChart\");\r\n * ```\r\n *\r\n * @see {@link IPieChartEvents} for a list of available Events\r\n * @see {@link IPieChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for documentation\r\n * @important\r\n */\r\nexport class PieChart extends PercentChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IPieChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPieChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPieChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPieChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: PieSeries;\r\n\r\n\tprotected _chartPixelRadius:number;\r\n\r\n\tprotected _chartPixelInnerRadius:number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"PieChart\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.innerRadius = 0;\r\n\t\tthis.radius = percent(80);\r\n\t\tthis.align = \"none\";\r\n\t\tthis.valign = \"none\";\r\n\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\r\n\t\tlet seriesContainer = this.seriesContainer;\r\n\t\tseriesContainer.isMeasured = true;\r\n\t\tseriesContainer.valign = \"middle\";\r\n\t\tseriesContainer.align = \"center\";\r\n\t\tseriesContainer.layout = \"absolute\";\r\n\t\tseriesContainer.width = undefined;\r\n\t\tseriesContainer.height = undefined;\r\n\r\n\t\t// so that the pie is always drawn, even the legend wants all the space\r\n\t\tthis.chartContainer.minHeight = 50;\r\n\t\tthis.chartContainer.minWidth = 50;\r\n\r\n\t\tthis.chartContainer.events.on(\"maxsizechanged\", this.updateRadius, this, false); // need this for the chart to change radius if legend is removed/disabled\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Pie chart\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the chart, causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateLayout(): void {\r\n\t\tsuper.validateLayout();\r\n\t\tthis.updateRadius();\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a new [[Series]] object with required parameters when it is\r\n\t * added to the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic handleSeriesAdded(event: IListEvents<PieSeries>[\"inserted\"]): void {\r\n\t\tsuper.handleSeriesAdded(event);\r\n\t\tthis._chartPixelRadius = undefined;\r\n\t\tthis.updateSeriesAngles();\r\n\t}\r\n\r\n\tprotected updateSeriesAngles(){\r\n\t\tthis.series.each((series)=>{\r\n\t\t\tseries._startAngleInternal = this.startAngle;\r\n\t\t\tseries._endAngleInternal = this.endAngle;\r\n\t\t\t//series.defaultState.properties.startAngle = this.startAngle;\r\n\t\t\t//series.defaultState.properties.endAngle = this.endAngle;\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Recalculates pie's radius, based on a number of criteria.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateRadius(): void {\r\n\r\n\t\tlet chartCont = this.chartContainer;\r\n\r\n\t\tlet rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n\t\tlet innerRect: IRectangle = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n\t\tlet innerRadius = this.innerRadius;\r\n\r\n\t\tif (innerRadius instanceof Percent) {\r\n\t\t\tinnerRect = $math.getArcRect(this.startAngle, this.endAngle, innerRadius.value);\r\n\t\t}\r\n\t\t// @todo handle this when innerRadius set in pixels (do it for radar also)\r\n\r\n\t\trect = $math.getCommonRectangle([rect, innerRect]);\r\n\r\n\t\tlet maxRadius = Math.min(chartCont.innerWidth / rect.width, chartCont.innerHeight / rect.height);\r\n\r\n\t\tif(!$type.isNumber(maxRadius)){\r\n\t\t\tmaxRadius = 0;\r\n\t\t}\r\n\r\n\t\tlet chartRadius = $utils.relativeRadiusToValue(this.radius, maxRadius);\r\n\r\n\t\tlet chartPixelInnerRadius = $utils.relativeRadiusToValue(this.innerRadius, maxRadius);\r\n\r\n\t\tlet seriesRadius = (chartRadius - chartPixelInnerRadius) / this.series.length;\r\n\r\n\t\tif(chartRadius != this._chartPixelRadius || chartPixelInnerRadius != this._chartPixelInnerRadius){\r\n\t\t\tthis._chartPixelRadius = chartRadius;\r\n\t\t\tthis._chartPixelInnerRadius = chartPixelInnerRadius;\r\n\r\n\t\t\t//@todo: make it possible to set series radius in percent\r\n\t\t\t$iter.each($iter.indexed(this.series.iterator()), (a) => {\r\n\t\t\t\tlet i = a[0];\r\n\t\t\t\tlet series = a[1];\r\n\r\n\t\t\t\tlet radius = chartPixelInnerRadius + $utils.relativeRadiusToValue(series.radius, chartRadius - chartPixelInnerRadius);\r\n\t\t\t\tlet innerRadius = chartPixelInnerRadius + $utils.relativeRadiusToValue(series.innerRadius, chartRadius - chartPixelInnerRadius);\r\n\r\n\t\t\t\tif(!$type.isNumber(radius)){\r\n\t\t\t\t\tradius = chartPixelInnerRadius + seriesRadius * (i + 1);\r\n\t\t\t\t}\r\n\t\t\t\tif(!$type.isNumber(innerRadius)){\r\n\t\t\t\t\tinnerRadius = chartPixelInnerRadius + seriesRadius * i;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tseries.pixelRadius = radius;\r\n\t\t\t\tseries.pixelInnerRadius = innerRadius;\r\n\t\t\t});\r\n\r\n\r\n\t\t\tthis.seriesContainer.definedBBox = { x: chartRadius * rect.x, y: chartRadius * rect.y, width: chartRadius * rect.width, height: chartRadius * rect.height };\r\n\t\t\tthis.seriesContainer.invalidateLayout();\r\n\r\n\t\t\tthis.bulletsContainer.x = this.seriesContainer.x;\r\n\t\t\tthis.bulletsContainer.y = this.seriesContainer.y;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets radius of the pie chart.\r\n\t *\r\n\t * Setting to a number will mean a fixed pixel radius.\r\n\t *\r\n\t * Setting to an instance of [[Percent]] will mean a relative radius to\r\n\t * available space.\r\n\t *\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * pieChart.radius = am4core.percent.percent(50);\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * pieChart.radius = am4core.percent.percent(50);\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * \"radius\": \"50%\"\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default 80%\r\n\t * @param value Radius (px or relative)\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tif(this.setPercentProperty(\"radius\", value, true, false, 10, false)){\r\n\t\t\tthis.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or relative)\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets relative inner radius (to create a donut chart).\r\n\t *\r\n\t * Setting to a number will mean a fixed pixel radius.\r\n\t *\r\n\t * Setting to an instance of [[Percent]] will mean a relative radius to\r\n\t * available space.\r\n\t *\r\n\t * NOTE: it's not related to `radius`.\r\n\t *\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * pieChart.innerRadius = am4core.percent.percent(50);\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * pieChart.innerRadius = am4core.percent.percent(50);\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // Set pie chart to be at 50% of the available space\r\n\t * \"innerRadius\": \"50%\"\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default 0\r\n\t * @param value Relative inner radius (0-1)\r\n\t * @todo Setting things like `innerRadius` modifies `slice.radius` and it then looks like it is not the same value as in default state\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Relative inner radius (0-1)\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new [[PieSeries]].\r\n\t *\r\n\t * @return New series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new PieSeries();\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the Pie circle. (degrees)\r\n\t *\r\n\t * Normally, a pie chart begins (the left side of the first slice is drawn)\r\n\t * at the top center. (at -90 degrees)\r\n\t *\r\n\t * You can use `startAngle` to change this setting.\r\n\t *\r\n\t * E.g. setting this to 0 will make the first slice be drawn to the right.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set to those lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a Pie chart that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * NOTE: This setting is not supported in a 3D pie chart.\r\n\t *\r\n\t * @default -90\r\n\t * @param value Start angle (degrees)\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tif(this.setPropertyValue(\"startAngle\", value)){\r\n\t\t\tthis.updateRadius();\r\n\t\t\tthis.updateSeriesAngles()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle (degrees)\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * End angle of the Pie circle. (degrees)\r\n\t *\r\n\t * Normally, a pie chart ends (the right side of the last slice is drawn)\r\n\t * at the top center. (at 270 degrees)\r\n\t *\r\n\t * You can use `endAngle` to change this setting.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set to those lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a Pie chart that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * NOTE: This setting is not supported in a 3D pie chart.\r\n\t *\r\n\t * @default 270\r\n\t * @param value End angle (degrees)\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tif(this.setPropertyValue(\"endAngle\", value)){\r\n\t\t\tthis.updateRadius();\r\n\t\t\tthis.updateSeriesAngles()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle (degrees)\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieChart\"] = PieChart;\r\nregistry.registeredClasses[\"PieChartDataItem\"] = PieChartDataItem;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { PieSeries, PieSeriesDataItem, IPieSeriesDataFields, IPieSeriesProperties, IPieSeriesAdapters, IPieSeriesEvents } from \"../series/PieSeries\";\r\nimport { PieChart3D } from \"../types/PieChart3D\";\r\nimport { Slice3D } from \"../../core/elements/3d/Slice3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PieSeries3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PieSeries3DDataItem extends PieSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines type of the slice represented by this data item.\r\n\t */\r\n\tpublic _slice: Slice3D;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PieSeries3D;\r\n\r\n\t/**\r\n\t * @todo Remove?\r\n\t * @deprecated\r\n\t */\r\n\tpublic component: PieSeries3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieSeries3DDataItem\";\r\n\r\n\t\tthis.values.depthValue = {};\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Slice depth (height).\r\n\t *\r\n\t * @param value Depth\r\n\t */\r\n\tpublic set depthValue(value: number) {\r\n\t\tthis.setValue(\"depthValue\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Depth\r\n\t */\r\n\tpublic get depthValue(): number {\r\n\t\treturn this.values[\"depthValue\"].value;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PieSeries3D]].\r\n */\r\nexport interface IPieSeries3DDataFields extends IPieSeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds 3D slice depth (height).\r\n\t */\r\n\tdepthValue?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[PieSeries3D]].\r\n */\r\nexport interface IPieSeries3DProperties extends IPieSeriesProperties {\r\n\r\n\t/**\r\n\t * Depth (height) of the pie slice in pixels.\r\n\t */\r\n\tdepth?: number;\r\n\r\n\t/**\r\n\t * Angle of the view point of the 3D pie.\r\n\t */\r\n\tangle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[PieSeries3D]].\r\n */\r\nexport interface IPieSeries3DEvents extends IPieSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PieSeries3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPieSeries3DAdapters extends IPieSeriesAdapters, IPieSeries3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a slice series on a 3D pie chart.\r\n *\r\n * @see {@link IPieSeries3DEvents} for a list of available Events\r\n * @see {@link IPieSeries3DAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class PieSeries3D extends PieSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IPieSeries3DDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPieSeries3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPieSeries3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPieSeries3DEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: PieSeries3DDataItem;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: PieChart3D;\r\n\r\n\tpublic _slice: Slice3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieSeries3D\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new PieSeries3DDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * creates slice\r\n\t */\r\n\tprotected createSlice(): this[\"_slice\"] {\r\n\t\treturn new Slice3D();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: PieSeries3DDataItem): void {\r\n\r\n\t\tlet slice: Slice3D = <Slice3D>dataItem.slice;\r\n\r\n\t\tlet depth: number = this.depth;\r\n\t\tif (!$type.isNumber(depth)) {\r\n\t\t\tdepth = this.chart.depth;\r\n\t\t}\r\n\r\n\t\tlet depthPercent: number = dataItem.values.depthValue.percent;\r\n\t\tif (!$type.isNumber(depthPercent)) {\r\n\t\t\tdepthPercent = 100;\r\n\t\t}\r\n\r\n\t\tslice.depth = depthPercent * depth / 100;\r\n\r\n\t\tlet angle: number = this.angle;\r\n\t\tif (!$type.isNumber(angle)) {\r\n\t\t\tangle = this.chart.angle;\r\n\t\t}\r\n\r\n\t\tslice.angle = angle;\r\n\r\n\t\tsuper.validateDataElement(dataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\r\n\t\tfor (let i = this._workingStartIndex; i < this._workingEndIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tlet slice: Slice3D = dataItem.slice;\r\n\r\n\t\t\tconst startAngle = slice.startAngle;\r\n\t\t\t// find quarter\r\n\t\t\t//q0 || q1\r\n\t\t\tif ((startAngle >= -90 && startAngle < 90)) {\r\n\t\t\t\tslice.toFront();\r\n\t\t\t}\r\n\t\t\t//q2 || q3\r\n\t\t\telse if ((startAngle >= 90)) {\r\n\t\t\t\tslice.toBack();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Depth (height) of the pie slice in pixels.\r\n\t *\r\n\t * @param value Depth (px)\r\n\t */\r\n\tpublic set depth(value: number) {\r\n\t\tthis.setPropertyValue(\"depth\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Depth (px)\r\n\t */\r\n\tpublic get depth(): number {\r\n\t\treturn this.getPropertyValue(\"depth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Angle of the view point of the 3D pie. (0-360)\r\n\t *\r\n\t * @param value Angle\r\n\t */\r\n\tpublic set angle(value: number) {\r\n\t\tthis.setPropertyValue(\"angle\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle\r\n\t */\r\n\tpublic get angle(): number {\r\n\t\treturn this.getPropertyValue(\"angle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Positions series bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet Bullet\r\n\t */\r\n\tpublic positionBullet(bullet: Bullet): void {\r\n\t\tsuper.positionBullet(bullet);\r\n\r\n\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>bullet.dataItem;\r\n\t\tlet slice = dataItem.slice;\r\n\r\n\t\tbullet.y = bullet.pixelY - slice.depth;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieSeries3D\"] = PieSeries3D;\r\nregistry.registeredClasses[\"PieSeries3DDataItem\"] = PieSeries3DDataItem;\r\n","/**\r\n * 3D Pie chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * Imports\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { PieChart, IPieChartProperties, IPieChartDataFields, IPieChartAdapters, IPieChartEvents, PieChartDataItem } from \"./PieChart\";\r\nimport { PieSeries3D } from \"../series/PieSeries3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PieChart3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PieChart3DDataItem extends PieChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PieChart3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PieChart3DDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PieChart3D]].\r\n */\r\nexport interface IPieChart3DDataFields extends IPieChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[PieChart3D]].\r\n */\r\nexport interface IPieChart3DProperties extends IPieChartProperties {\r\n\r\n\t/**\r\n\t * Pie's \"depth\" or \"height\" in pixels.\r\n\t */\r\n\tdepth?: number;\r\n\r\n\t/**\r\n\t * Pie's angle at which we are looking at it. (degrees)\r\n\t */\r\n\tangle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[PieChart3D]].\r\n */\r\nexport interface IPieChart3DEvents extends IPieChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PieChart3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPieChart3DAdapters extends IPieChartAdapters, IPieChart3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a 3D Pie chart.\r\n *\r\n * * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.Pie3DChart);\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * let series = chart.series.push(new am4charts.Pie3DSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.Pie3DChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"Pie3DChart\");\r\n *\r\n * // Set data\r\n * chart.data = [{\r\n * \t\"country\": \"Lithuania\",\r\n * \t\"litres\": 501.9\r\n * }, {\r\n * \t\"country\": \"Czechia\",\r\n * \t\"litres\": 301.9\r\n * }, {\r\n * \t\"country\": \"Ireland\",\r\n * \t\"litres\": 201.1\r\n * }];\r\n *\r\n * // Create series\r\n * var series = chart.series.push(new am4charts.Pie3DSeries());\r\n * series.dataFields.value = \"litres\";\r\n * series.dataFields.category = \"country\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"Pie3DSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"value\": \"litres\",\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"Lithuania\",\r\n * \t\t\"litres\": 501.9\r\n * \t}, {\r\n * \t\t\"country\": \"Czechia\",\r\n * \t\t\"litres\": 301.9\r\n * \t}, {\r\n * \t\t\"country\": \"Ireland\",\r\n * \t\t\"litres\": 201.1\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"Pie3DChart\");\r\n * ```\r\n *\r\n * @see {@link IPieChart3DEvents} for a list of available Events\r\n * @see {@link IPieChart3DAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/pie-chart/} for documentation\r\n * @important\r\n */\r\nexport class PieChart3D extends PieChart {\r\n\r\n\t/**\r\n\t * Available data fields.\r\n\t */\r\n\tpublic _dataFields: IPieChart3DDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPieChart3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPieChart3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPieChart3DEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: PieSeries3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"PieChart3D\";\r\n\r\n\t\tthis.depth = 20;\r\n\t\tthis.angle = 10;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Depth of the 3D pie in pixels.\r\n\t *\r\n\t * This will determine \"height\" of the pie.\r\n\t *\r\n\t * @default 20\r\n\t * @param value Depth (px)\r\n\t */\r\n\tpublic set depth(value: number) {\r\n\t\tif (this.setPropertyValue(\"depth\", value)) {\r\n\t\t\tthis.invalidateDataUsers();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Depth (px)\r\n\t */\r\n\tpublic get depth(): number {\r\n\t\treturn this.getPropertyValue(\"depth\");\r\n\t}\r\n\r\n\t/**\r\n\t * An angle of a \"point of view\" in degrees. Possible range 0 - 90.\r\n\t *\r\n\t * @default 10\r\n\t * @param value Angle (degrees)\r\n\t */\r\n\tpublic set angle(value: number) {\r\n\t\tvalue = $math.fitToRange(value, 0, 90);\r\n\t\tif (this.setPropertyValue(\"angle\", value)) {\r\n\t\t\tthis.invalidateDataUsers();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle (degrees)\r\n\t */\r\n\tpublic get angle(): number {\r\n\t\treturn this.getPropertyValue(\"angle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new Series.\r\n\t *\r\n\t * @return New series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new PieSeries3D();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PieChart3D\"] = PieChart3D;\r\n","/**\r\n * Sliced chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, IPercentChartProperties, IPercentChartDataFields, IPercentChartAdapters, IPercentChartEvents, PercentChartDataItem } from \"./PercentChart\";\r\nimport { FunnelSeries } from \"../series/FunnelSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[SlicedChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class SlicedChartDataItem extends PercentChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: SlicedChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SlicedChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[SlicedChart]].\r\n */\r\nexport interface ISlicedChartDataFields extends IPercentChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[SlicedChart]]\r\n */\r\nexport interface ISlicedChartProperties extends IPercentChartProperties { }\r\n\r\n/**\r\n * Defines events for [[SlicedChart]].\r\n */\r\nexport interface ISlicedChartEvents extends IPercentChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SlicedChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISlicedChartAdapters extends IPercentChartAdapters, ISlicedChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Sliced chart.\r\n *\r\n * @see {@link ISlicedChartEvents} for a list of available Events\r\n * @see {@link ISlicedChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nexport class SlicedChart extends PercentChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: ISlicedChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISlicedChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISlicedChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISlicedChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: FunnelSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"SlicedChart\";\r\n\r\n\t\tthis.seriesContainer.layout = \"horizontal\";\r\n\r\n\t\tthis.padding(15, 15, 15, 15);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Sliced chart\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the chart, causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SlicedChart\"] = SlicedChart;\r\nregistry.registeredClasses[\"SlicedChartDataItem\"] = SlicedChartDataItem;\r\n","/**\r\n * FlowDiagramNode module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite, AMEvent, visualProperties, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { FlowDiagram, FlowDiagramDataItem } from \"../types/FlowDiagram\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $string from \"../../core/utils/String\";\r\nimport * as $order from \"../../core/utils/Order\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { LegendSettings, LegendDataItem } from \"../Legend\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[FlowDiagramNode]].\r\n */\r\nexport interface IFlowDiagramNodeProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Name of the node.\r\n\t */\r\n\tname?: string;\r\n\r\n\t/**\r\n\t * Sum of all incomming+outgoing link values\r\n\t */\r\n\ttotal?: number;\r\n\r\n\t/**\r\n\t * Sum of all incoming link values\r\n\t */\r\n\ttotalIncoming?: number;\r\n\r\n\t/**\r\n\t * Sum of all outgoing link values\r\n\t */\r\n\ttotalOutgoing?: number;\r\n\r\n\t/**\r\n\t * Node's color.\r\n\t */\r\n\tcolor?: Color;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[FlowDiagramNode]].\r\n */\r\nexport interface IFlowDiagramNodeEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FlowDiagramNode]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFlowDiagramNodeAdapters extends IContainerAdapters, IFlowDiagramNodeProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a node in a Flow Diagram.\r\n *\r\n * A Flow node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[FlowLink]] elements.\r\n *\r\n * @see {@link IFlowDiagramNodeEvents} for a list of available events\r\n * @see {@link IFlowDiagramNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class FlowDiagramNode extends Container {\r\n\r\n\t/**\r\n\t * total ajusted taken in mind chart.minNodeSize\r\n\t */\r\n\tpublic adjustedTotal: number;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFlowDiagramNodeProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFlowDiagramNodeAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFlowDiagramNodeEvents;\r\n\r\n\t/**\r\n\t * A list of data items of the items coming in from another node, one level\r\n\t * up.\r\n\t *\r\n\t * These are what ingoing links are build out of.\r\n\t */\r\n\tprotected _incomingDataItems: List<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * A list of data items of the items going out of the node.\r\n\t *\r\n\t * These are what outgoing links are build out of.\r\n\t */\r\n\tprotected _outgoingDataItems: List<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * Sorted list of incoming items.\r\n\t */\r\n\tprotected _incomingSorted: $iter.Iterator<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * Sorted list of outgoing items.\r\n\t */\r\n\tprotected _outgoingSorted: $iter.Iterator<this[\"_dataItem\"]>;\r\n\r\n\t/**\r\n\t * A chart instance this node is added to.\r\n\t */\r\n\tpublic chart: FlowDiagram;\r\n\r\n\r\n\t/**\r\n\t * Defines the type of the [[FlowDiagramDataItem]] used in the class.\r\n\t */\r\n\tpublic _dataItem: FlowDiagramDataItem;\r\n\r\n\t/**\r\n\t * Settings for the appearance of the related legend items.\r\n\t */\r\n\tpublic legendSettings: LegendSettings = new LegendSettings();\r\n\r\n\r\n\t/**\r\n\t * A reference to the legend data item related to this node.\r\n\t */\r\n\tprotected _legendDataItem: LegendDataItem;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"FlowDiagramNode\";\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\t// TODO can this be removed ?\r\n\t\tnew InterfaceColorSet();\r\n\r\n\t\tthis.draggable = true;\r\n\t\tthis.inert = true;\r\n\r\n\t\tthis.setStateOnChildren = true;\r\n\r\n\t\tthis.events.on(\"positionchanged\", this.invalidateLinks, this, false);\r\n\t\tthis.events.on(\"sizechanged\", this.invalidateLinks, this, false);\r\n\t\t//this.events.on(\"hit\", this.handleHit, this, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic handleHit(event: AMEvent<Sprite, ISpriteEvents>[\"hit\"]) {\r\n\t\tif (this.isHidden || this.isHiding) {\r\n\t\t\tthis.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.hide();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Shows hidden node.\r\n\t *\r\n\t * @param duration Duration of reveal animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic show(duration?: number): Animation {\r\n\t\tlet animation = super.show(duration);\r\n\r\n\t\tthis.outgoingDataItems.each(function(dataItem) {\r\n\t\t\tif (!dataItem.toNode || (dataItem.toNode && !dataItem.toNode.isHidden)) {\r\n\t\t\t\tdataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.incomingDataItems.each(function(dataItem) {\r\n\t\t\tif (!dataItem.fromNode || (dataItem.fromNode && !dataItem.fromNode.isHidden)) {\r\n\t\t\t\tdataItem.setWorkingValue(\"value\", dataItem.getValue(\"value\"), duration);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides node.\r\n\t *\r\n\t * @param duration Duration of hiding animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic hide(duration?: number): Animation {\r\n\t\tlet animation = super.hide(duration);\r\n\r\n\t\tthis.outgoingDataItems.each(function(dataItem) {\r\n\t\t\tdataItem.setWorkingValue(\"value\", 0, duration);\r\n\t\t})\r\n\r\n\t\tthis.incomingDataItems.each(function(dataItem) {\r\n\t\t\tdataItem.setWorkingValue(\"value\", 0, duration);\r\n\t\t})\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Marks node as invalid, for redrawal in the next update cycle.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tif(!this.isDisposed()){\r\n\t\t\tsuper.validate();\r\n\t\t\tthis.invalidateLinks();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates all links, attached to this node.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateLinks(): void {\r\n\r\n\t\tthis.outgoingDataItems.each((dataItem) => {\r\n\t\t\tlet link = dataItem.link;\r\n\t\t\tif (link.colorMode == \"fromNode\") {\r\n\t\t\t\tlink.fill = link.dataItem.fromNode.color;\r\n\t\t\t}\r\n\r\n\t\t\tif (link.colorMode == \"gradient\") {\r\n\r\n\t\t\t\tlink.fill = link.gradient;\r\n\t\t\t\tlink.stroke = link.gradient;\r\n\r\n\t\t\t\tlet stop = link.gradient.stops.getIndex(0);\r\n\r\n\t\t\t\tif (stop) {\r\n\t\t\t\t\tstop.color = this.color;\r\n\t\t\t\t\tlink.gradient.validate();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.incomingDataItems.each((dataItem) => {\r\n\t\t\tlet link = dataItem.link;\r\n\t\t\tif (link.colorMode == \"toNode\") {\r\n\t\t\t\tlink.fill = link.dataItem.toNode.color;\r\n\t\t\t}\r\n\r\n\t\t\tif (link.colorMode == \"gradient\") {\r\n\t\t\t\tlink.fill = link.gradient;\r\n\t\t\t\tlink.stroke = link.gradient;\r\n\r\n\t\t\t\tlet stop = link.gradient.stops.getIndex(1);\r\n\r\n\t\t\t\tif (stop) {\r\n\t\t\t\t\tstop.color = this.color;\r\n\t\t\t\t\tlink.gradient.validate();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * List of incoming items (links).\r\n\t *\r\n\t * @readonly\r\n\t * @return Incoming items\r\n\t */\r\n\tpublic get incomingDataItems(): List<this[\"_dataItem\"]> {\r\n\t\tif (!this._incomingDataItems) {\r\n\t\t\tlet incomingDataItems = new List<FlowDiagramDataItem>();\r\n\t\t\tincomingDataItems.events.on(\"inserted\", () => {\r\n\t\t\t\tif (this.chart.sortBy == \"name\") {\r\n\t\t\t\t\tthis._incomingSorted = $iter.sort(this._incomingDataItems.iterator(), (x, y) => $string.order(x.fromName, y.fromName));\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.chart.sortBy == \"value\") {\r\n\t\t\t\t\tthis._incomingSorted = $iter.sort(this._incomingDataItems.iterator(), (x, y) => $order.reverse($number.order(x.value, y.value)));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._incomingSorted = this._incomingDataItems.iterator();\r\n\t\t\t\t}\r\n\t\t\t}, undefined, false);\r\n\t\t\tthis._incomingDataItems = incomingDataItems;\r\n\t\t}\r\n\t\treturn this._incomingDataItems;\r\n\t}\r\n\r\n\t/**\r\n\t * List of outgoing items (links).\r\n\t *\r\n\t * @readonly\r\n\t * @return Outgoing items\r\n\t */\r\n\tpublic get outgoingDataItems(): List<FlowDiagramDataItem> {\r\n\t\tif (!this._outgoingDataItems) {\r\n\t\t\tlet outgoingDataItems = new List<FlowDiagramDataItem>();\r\n\t\t\toutgoingDataItems.events.on(\"inserted\", () => {\r\n\t\t\t\tif (this.chart.sortBy == \"name\") {\r\n\t\t\t\t\tthis._outgoingSorted = $iter.sort(this._outgoingDataItems.iterator(), (x, y) => $string.order(x.fromName, y.fromName));\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.chart.sortBy == \"value\") {\r\n\t\t\t\t\tthis._outgoingSorted = $iter.sort(this._outgoingDataItems.iterator(), (x, y) => $order.reverse($number.order(x.value, y.value)));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._outgoingSorted = this._outgoingDataItems.iterator();\r\n\t\t\t\t}\r\n\r\n\t\t\t}, undefined, false);\r\n\t\t\tthis._outgoingDataItems = outgoingDataItems;\r\n\t\t}\r\n\t\treturn this._outgoingDataItems;\r\n\t}\r\n\r\n\t/**\r\n\t * A name of the node.\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set name(value: string) {\r\n\t\tthis.setPropertyValue(\"name\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Name\r\n\t */\r\n\tpublic get name(): string {\r\n\t\treturn this.getPropertyValue(\"name\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sum of all incoming+outgoing link values\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set total(value: number) {\r\n\t\tthis.setPropertyValue(\"total\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get total(): number {\r\n\t\treturn this.getPropertyValue(\"total\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sum of all incomming link values.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set totalIncoming(value: number) {\r\n\t\tthis.setPropertyValue(\"totalIncoming\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get totalIncoming(): number {\r\n\t\treturn this.getPropertyValue(\"totalIncoming\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sum of all outgoing link values.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set totalOutgoing(value: number) {\r\n\t\tthis.setPropertyValue(\"totalOutgoing\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get totalOutgoing(): number {\r\n\t\treturn this.getPropertyValue(\"totalOutgoing\");\r\n\t}\r\n\r\n\t/**\r\n\t * Node's color.\r\n\t *\r\n\t * @param value Color\r\n\t */\r\n\tpublic set color(value: Color) {\r\n\t\tthis.setColorProperty(\"color\", value);\r\n\t\tif (this._background) {\r\n\t\t\tthis._background.fill = value;\r\n\t\t}\r\n\t\tthis.fill = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color\r\n\t */\r\n\tpublic get color(): Color {\r\n\t\treturn this.getPropertyValue(\"color\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container) {\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.removeChildren();\r\n\r\n\t\tlet column: RoundedRectangle = marker.createChild(RoundedRectangle);\r\n\t\tcolumn.shouldClone = false;\r\n\t\t$object.copyProperties(this, column, visualProperties);\r\n\t\tcolumn.stroke = this.fill;\r\n\r\n\t\tcolumn.copyFrom(<any>this);\r\n\t\tcolumn.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n\t\tcolumn.width = w;\r\n\t\tcolumn.height = h;\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = column.fill;\r\n\t\tlegendDataItem.colorOrig = column.fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Legend data item that corresponds to this series.\r\n\t *\r\n\t * @param value Data item\r\n\t */\r\n\tpublic set legendDataItem(value: LegendDataItem) {\r\n\t\tthis._legendDataItem = value;\r\n\t\tthis._legendDataItem.itemContainer.deepInvalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Data item\r\n\t */\r\n\tpublic get legendDataItem(): LegendDataItem {\r\n\t\treturn this._legendDataItem;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagramNode\"] = FlowDiagramNode;\r\n","/**\r\n * FlowDiagramLink module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Container, IContainerProperties, IContainerEvents, IContainerAdapters } from \"../../core/Container\";\r\nimport { FlowDiagramDataItem } from \"../types/FlowDiagram\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { RadialGradient } from \"../../core/rendering/fills/RadialGradient\";\r\nimport { Pattern } from \"../../core/rendering/fills/Pattern\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Polyline } from \"../../core/elements/Polyline\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[FlowDiagramLink]].\r\n */\r\nexport interface IFlowDiagramLinkProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * [tension description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\ttension?: number;\r\n\r\n\t/**\r\n\t * [startX description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tstartX?: number;\r\n\r\n\t/**\r\n\t * [startY description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tstartY?: number;\r\n\r\n\t/**\r\n\t * [endX description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tendX?: number;\r\n\r\n\t/**\r\n\t * [endY description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tendY?: number;\r\n\r\n\t/**\r\n\t * [linkWidth description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tlinkWidth?: number;\r\n\r\n\t/**\r\n\t * [startAngle description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * [endAngle description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tendAngle?: number;\r\n\r\n\t/**\r\n\t * Should link be filled with a solid color, color of from node, color of toNode or gradient between node colors.\r\n\t */\r\n\tcolorMode?: \"solid\" | \"gradient\" | \"fromNode\" | \"toNode\";\r\n\r\n\t/**\r\n\t * [controlPointDistance description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tcontrolPointDistance?: number;\r\n\r\n\t/**\r\n\t * [maskBullets description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tmaskBullets?: boolean;\r\n\r\n\t/**\r\n\t * [tooltipLocation description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\ttooltipLocation?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[FlowDiagramLink]].\r\n */\r\nexport interface IFlowDiagramLinkEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FlowDiagramLink]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFlowDiagramLinkAdapters extends IContainerAdapters, IFlowDiagramLinkProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Flow Diagram.\r\n *\r\n * @see {@link IFlowDiagramLinkEvents} for a list of available events\r\n * @see {@link IFlowDiagramLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class FlowDiagramLink extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFlowDiagramLinkProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFlowDiagramLinkAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFlowDiagramLinkEvents;\r\n\r\n\t/**\r\n\t * Defines a type of data item used by this class.\r\n\t */\r\n\tpublic _dataItem: FlowDiagramDataItem;\r\n\r\n\t/**\r\n\t * A gradiend instance that is used to provided colored gradient fills for\r\n\t * the Flow link.\r\n\t */\r\n\tprotected _gradient: LinearGradient;\r\n\r\n\r\n\t/**\r\n\t * List of bullets\r\n\t * @ignore\r\n\t */\r\n\tprotected _bullets: ListTemplate<Bullet>;\r\n\r\n\t/**\r\n\t * Link sprite\r\n\t */\r\n\tpublic link: Sprite;\r\n\r\n\t/**\r\n\t * Bullets mask spite\r\n */\r\n\tprotected _bulletsMask: Sprite;\r\n\r\n\t/**\r\n\t * Bullets container\r\n */\r\n\tprotected _bulletsContainer: Container;\r\n\r\n\t/**\r\n\t * Spline which goes through the middle of a link, used to calculate bullet and tooltip positions, invisible by default\r\n */\r\n\tpublic middleLine: Line | Polyline;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"FlowDiagramLink\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.maskBullets = false;\r\n\r\n\t\tthis.colorMode = \"fromNode\";\r\n\r\n\t\tthis.layout = \"none\";\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.startAngle = 0;\r\n\t\tthis.endAngle = 0;\r\n\r\n\t\tthis.strokeOpacity = 0;\r\n\r\n\t\t// this is very important, otherwise the container will be shifted\r\n\t\tthis.verticalCenter = \"none\";\r\n\t\tthis.horizontalCenter = \"none\";\r\n\r\n\t\tthis.tooltipText = \"{fromName}→{toName}:{value.value}\";\r\n\t\tthis.tooltipLocation = 0.5;\r\n\r\n\t\tthis.link = this.createChild(Sprite);\r\n\t\tthis.link.shouldClone = false;\r\n\t\tthis.link.setElement(this.paper.add(\"path\"));\r\n\t\tthis.link.isMeasured = false;\r\n\t\tthis.fillOpacity = 0.2;\r\n\t\tthis.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Positions bullets\r\n\t * @ignore\r\n\t */\r\n\tprotected positionBullets() {\r\n\t\t$iter.each(this.bullets.iterator(), (bullet) => {\r\n\t\t\tbullet.parent = this.bulletsContainer;\r\n\r\n\t\t\tbullet.maxWidth = this.maxWidth;\r\n\t\t\tbullet.maxHeight = this.maxHeight;\r\n\r\n\t\t\tthis.positionBullet(bullet);\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Bullets container\r\n */\r\n\tpublic get bulletsContainer() {\r\n\t\tif (!this._bulletsContainer) {\r\n\t\t\tlet bulletsContainer = this.createChild(Container);\r\n\t\t\tbulletsContainer.shouldClone = false;\r\n\t\t\tbulletsContainer.layout = \"none\";\r\n\t\t\tthis._bulletsContainer = bulletsContainer;\r\n\t\t}\r\n\t\treturn this._bulletsContainer;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Bullets mask sprite\r\n */\r\n\tpublic get bulletsMask() {\r\n\t\tif (!this._bulletsMask) {\r\n\t\t\tlet bulletsMask = this.createChild(Sprite);\r\n\t\t\tbulletsMask.shouldClone = false;\r\n\t\t\tbulletsMask.setElement(this.paper.add(\"path\"));\r\n\t\t\tbulletsMask.isMeasured = false;\r\n\t\t\tthis._bulletsMask = bulletsMask;\r\n\t\t}\r\n\t\treturn this._bulletsMask;\r\n\t}\r\n\r\n\t/**\r\n\t * Positions bullets at relative bullet.locationX position on the link.\r\n\t * @ignore\r\n\t */\r\n\tprotected positionBullet(bullet: Bullet) {\r\n\r\n\t\tlet location = bullet.locationX;\r\n\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = bullet.locationY;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = 0.5;\r\n\t\t}\r\n\t\tlet point = this.middleLine.positionToPoint(location);\r\n\r\n\t\tbullet.moveTo(point);\r\n\r\n\t\tlet rotationField = bullet.propertyFields.rotation;\r\n\t\tlet angle: number;\r\n\t\tif (bullet.dataItem) {\r\n\t\t\tlet dataContext: any = bullet.dataItem.dataContext;\r\n\t\t\tangle = dataContext[rotationField];\r\n\t\t}\r\n\t\tif (!$type.isNumber(angle)) {\r\n\t\t\tangle = point.angle;\r\n\t\t}\r\n\r\n\t\tbullet.rotation = angle;\r\n\t}\r\n\r\n\t/**\r\n\t * [startAngle description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value Start angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * [endAngle description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value End angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"endAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Should link be filled with a solid color, color of from node, color of toNode or gradient between node colors.\r\n\t * Some of the links, like ChordLink does not support gradiens well.\r\n\t *\r\n\t * @param value Fill mode\r\n\t */\r\n\tpublic set colorMode(value: \"solid\" | \"gradient\" | \"fromNode\" | \"toNode\") {\r\n\t\tif (value == \"gradient\") {\r\n\t\t\tlet color = this.fill;\r\n\r\n\t\t\tthis.gradient.stops.clear();\r\n\t\t\tif (color instanceof Color) {\r\n\t\t\t\tthis.gradient.addColor(color);\r\n\t\t\t\tthis.gradient.addColor(color);\r\n\t\t\t}\r\n\t\t\tthis.fill = this.gradient;\r\n\t\t\tthis.stroke = this.gradient;\r\n\t\t}\r\n\t\tthis.setPropertyValue(\"colorMode\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Fill mode\r\n\t */\r\n\tpublic get colorMode(): \"solid\" | \"gradient\" | \"fromNode\" | \"toNode\" {\r\n\t\treturn this.getPropertyValue(\"colorMode\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Should link bullets be masked or not\r\n\t *\r\n\t * @param value\r\n\t * @default false\r\n\t */\r\n\tpublic set maskBullets(value: boolean) {\r\n\t\tthis.setPropertyValue(\"maskBullets\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return mask bullets value\r\n\t */\r\n\tpublic get maskBullets(): boolean {\r\n\t\treturn this.getPropertyValue(\"maskBullets\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location of a tooltip.\r\n\t * @default 0.5\r\n\t *\r\n\t * @param value\r\n\t */\r\n\tpublic set tooltipLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"tooltipLocation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Tooltip location value\r\n\t */\r\n\tpublic get tooltipLocation(): number {\r\n\t\treturn this.getPropertyValue(\"tooltipLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Adds color steps in the link gradient.\r\n\t *\r\n\t * @param value Fill option\r\n\t */\r\n\tprotected setFill(value: Color | Pattern | LinearGradient | RadialGradient) {\r\n\t\tsuper.setFill(value)\r\n\t\tlet gradient = this._gradient;\r\n\r\n\t\tif (gradient && value instanceof Color) {\r\n\t\t\tgradient.stops.clear();\r\n\t\t\tgradient.addColor(value);\r\n\t\t\tgradient.addColor(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates bounding box based on element dimension settings.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic measureElement(): void {\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * List of bullets\r\n\t *\r\n\t * @return [description]\r\n\t */\r\n\tpublic get bullets(): ListTemplate<Bullet> {\r\n\t\tif (!this._bullets) {\r\n\t\t\tthis._bullets = new ListTemplate<Bullet>(new Bullet());\r\n\t\t\tthis._disposers.push(new ListDisposer(this._bullets));\r\n\t\t\tthis._disposers.push(this._bullets.template);\r\n\t\t\tthis._bullets.events.on(\"inserted\", (event) => {\r\n\t\t\t\tevent.newValue.events.on(\"propertychanged\", (event) => {\r\n\t\t\t\t\tif (event.property == \"locationX\" || event.property == \"locationY\") {\r\n\t\t\t\t\t\tthis.positionBullet(event.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, undefined, false)\r\n\t\t\t}, undefined, false)\r\n\t\t}\r\n\t\treturn this._bullets;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies properties from another [[FlowDiagramLink]].\r\n\t *\r\n\t * @param source Source link\r\n\t */\r\n\tcopyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.bullets.copyFrom(source.bullets);\r\n\t\tlet middleLine = this.middleLine;\r\n\t\tif (middleLine) {\r\n\t\t\tif (middleLine instanceof Line && source.middleLine instanceof Line) {\r\n\t\t\t\tmiddleLine.copyFrom(source.middleLine);\r\n\t\t\t}\r\n\r\n\t\t\tif (middleLine instanceof Polyline && source.middleLine instanceof Polyline) {\r\n\t\t\t\tmiddleLine.copyFrom(source.middleLine);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.link.copyFrom(source.link);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Tooltip X (px)\r\n\t */\r\n\tpublic getTooltipX(): number {\r\n\t\tif (this.middleLine) {\r\n\t\t\treturn this.middleLine.positionToPoint(this.tooltipLocation).x;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Tooltip Y (px)\r\n\t */\r\n\tpublic getTooltipY(): number {\r\n\t\tif (this.middleLine) {\r\n\t\t\treturn this.middleLine.positionToPoint(this.tooltipLocation).y;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A gradiend instance that is used to provided colored gradient fills for\r\n\t * the Flow link.\r\n\t */\r\n\tpublic get gradient() {\r\n\t\tif (!this._gradient) {\r\n\t\t\tthis._gradient = new LinearGradient();\r\n\t\t}\r\n\t\treturn this._gradient;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagramLink\"] = FlowDiagramLink;\r\n","/**\r\n * FlowDiagram module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Chart, IChartProperties, IChartDataFields, IChartAdapters, IChartEvents, ChartDataItem } from \"../Chart\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { DictionaryTemplate, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { FlowDiagramNode } from \"../elements/FlowDiagramNode\";\r\nimport { FlowDiagramLink } from \"../elements/FlowDiagramLink\";\r\nimport { LinearGradientModifier } from \"../../core/rendering/fills/LinearGradientModifier\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { toColor, Color } from \"../../core/utils/Color\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $number from \"../../core/utils/Number\";\r\nimport * as $order from \"../../core/utils/Order\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo rearange notes after dragged\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[FlowDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class FlowDiagramDataItem extends ChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: FlowDiagram;\r\n\r\n\t/**\r\n\t * An a link element, connecting two nodes.\r\n\t */\r\n\tpublic _link: FlowDiagramLink;\r\n\r\n\t/**\r\n\t * An origin node.\r\n\t */\r\n\tpublic fromNode: FlowDiagramNode;\r\n\r\n\t/**\r\n\t * A destination node.\r\n\t */\r\n\tpublic toNode: FlowDiagramNode;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"FlowDiagramDataItem\";\r\n\r\n\t\tthis.values.value = {};\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Source node's name.\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set fromName(value: string) {\r\n\t\tthis.setProperty(\"fromName\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return name\r\n\t */\r\n\tpublic get fromName(): string {\r\n\t\treturn this.properties.fromName;\r\n\t}\r\n\r\n\t/**\r\n\t * Destination node's name.\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set toName(value: string) {\r\n\t\tthis.setProperty(\"toName\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return name\r\n\t */\r\n\tpublic get toName(): string {\r\n\t\treturn this.properties.toName;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Node color\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set color(value: Color) {\r\n\t\tthis.setProperty(\"color\", toColor(value));\r\n\t}\r\n\r\n\t/**\r\n\t * @return color\r\n\t */\r\n\tpublic get color(): Color {\r\n\t\treturn this.properties.color;\r\n\t}\r\n\r\n\t/**\r\n\t * Link's value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set value(value: number) {\r\n\t\tthis.setValue(\"value\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): number {\r\n\t\treturn this.values.value.value;\r\n\t}\r\n\r\n\t/**\r\n\t * A visual element, representing link between the source and target nodes.\r\n\t *\r\n\t * Link's actual thickness will be determined by `value` of this link and\r\n\t * `value` of the source node.\r\n\t *\r\n\t * @readonly\r\n\t * @return Link element\r\n\t */\r\n\tpublic get link(): this[\"_link\"] {\r\n\t\tif (!this._link) {\r\n\t\t\tlet link = this.component.links.create();\r\n\t\t\tthis._link = link;\r\n\r\n\t\t\tthis.addSprite(link);\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.links.removeValue(link);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t\treturn this._link;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[FlowDiagram]].\r\n */\r\nexport interface IFlowDiagramDataFields extends IChartDataFields {\r\n\r\n\t/**\r\n\t * Name of the source node.\r\n\t */\r\n\tfromName?: string;\r\n\r\n\t/**\r\n\t * Name of the target node.\r\n\t */\r\n\ttoName?: string;\r\n\r\n\t/**\r\n\t * Value of the link between two nodes.\r\n\t */\r\n\tvalue?: string;\r\n\r\n\t/**\r\n\t * Color of a from node\r\n\t */\r\n\tcolor?: string;\r\n\r\n\t/**\r\n\t * Visibility of a node\r\n\t */\r\n\tvisible?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[FlowDiagram]]\r\n */\r\nexport interface IFlowDiagramProperties extends IChartProperties {\r\n\r\n\t/**\r\n\t * Padding for node square in pixels.\r\n\t */\r\n\tnodePadding?: number;\r\n\r\n\t/**\r\n\t * Sort nodes by name or value or do not sort a\r\n\t */\r\n\tsortBy?: \"none\" | \"name\" | \"value\";\r\n\r\n\t/**\r\n\t * Sometimes nodes can get very small if their value is little. With this setting you\r\n\t * can set min size of a node (this is relative value from the total size of all nodes)\r\n\t */\r\n\tminNodeSize: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[FlowDiagram]].\r\n */\r\nexport interface IFlowDiagramEvents extends IChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FlowDiagram]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFlowDiagramAdapters extends IChartAdapters, IFlowDiagramProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Pie chart\r\n * @see {@link IFlowDiagramEvents} for a list of available Events\r\n * @see {@link IFlowDiagramAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class FlowDiagram extends Chart {\r\n\r\n\t/**\r\n\t * A Color Set to use when applying/generating colors for each subsequent\r\n\t * node.\r\n\t */\r\n\tpublic colors: ColorSet = new ColorSet();\r\n\r\n\t/**\r\n\t * Defines a type for the DataItem.\r\n\t */\r\n\tpublic _dataItem: FlowDiagramDataItem;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IFlowDiagramDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFlowDiagramProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFlowDiagramAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFlowDiagramEvents;\r\n\r\n\r\n\t/**\r\n\t */\r\n\tpublic _node: FlowDiagramNode;\r\n\r\n\r\n\t/**\r\n\t * A list of chart's FlowDiagram nodes.\r\n\t *\r\n\t * @param {DictionaryTemplate<string, this[\"_node\"]>}\r\n\t */\r\n\tprotected _nodes: DictionaryTemplate<string, this[\"_node\"]>;\r\n\r\n\r\n\t/**\r\n\t */\r\n\tpublic _link: FlowDiagramLink;\r\n\r\n\t/**\r\n\t * A list of FlowDiagram links connecting nodes.\r\n\t *\r\n\t * @param {ListTemplate<this[\"_link\"]>}\r\n\t */\r\n\tprotected _links: ListTemplate<this[\"_link\"]>;\r\n\r\n\t/**\r\n\t * A container that holds all of the link elements.\r\n\t */\r\n\tpublic linksContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds all of the node elements.\r\n\t */\r\n\tpublic nodesContainer: Container;\r\n\r\n\t/**\r\n\t * Sorted nodes iterator.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tprotected _sorted: $iter.Iterator<[string, FlowDiagramNode]>;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"FlowDiagram\";\r\n\t\tthis.nodePadding = 20;\r\n\t\tthis.sortBy = \"none\";\r\n\t\tthis.sequencedInterpolation = true;\r\n\r\n\t\tthis.colors.step = 2;\r\n\t\tthis.minNodeSize = 0.02;\r\n\r\n\t\tlet linksContainer = this.chartContainer.createChild(Container);\r\n\t\tlinksContainer.shouldClone = false;\r\n\t\tlinksContainer.layout = \"none\";\r\n\t\tlinksContainer.isMeasured = false;\r\n\t\tthis.linksContainer = linksContainer;\r\n\r\n\t\tlet nodesContainer = this.chartContainer.createChild(Container);\r\n\t\tnodesContainer.shouldClone = false;\r\n\t\tnodesContainer.layout = \"none\";\r\n\t\tnodesContainer.isMeasured = false;\r\n\t\tthis.nodesContainer = nodesContainer;\r\n\r\n\t\t// this data item holds sums, averages, etc\r\n\t\tthis.dataItem = this.createDataItem();\r\n\t\tthis.dataItem.component = this;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tpublic dispose(): void {\r\n\t\tsuper.dispose();\r\n\t\tthis.dataItem.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates chart's data, effectively causing the chart to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tif (this._parseDataFrom == 0) {\r\n\t\t\tthis.nodes.clear();\r\n\t\t}\r\n\r\n\t\tthis.sortNodes();\r\n\r\n\t\tthis.colors.reset();\r\n\r\n\t\tsuper.validateData();\r\n\r\n\t\tlet sum = 0;\r\n\t\tlet count = 0;\r\n\t\tlet low: number;\r\n\t\tlet high: number;\r\n\r\n\t\t// build blocks\r\n\t\t$iter.each(this.dataItems.iterator(), (dataItem) => {\r\n\t\t\tlet fromName = dataItem.fromName;\r\n\r\n\t\t\tif (fromName) {\r\n\t\t\t\tlet node = this.nodes.getKey(fromName);\r\n\t\t\t\tif (!node) {\r\n\t\t\t\t\tnode = this.nodes.create(fromName);\r\n\t\t\t\t\tnode.name = fromName;\r\n\t\t\t\t\tnode.chart = this;\r\n\t\t\t\t\tnode.dataItem = dataItem;\r\n\t\t\t\t}\r\n\t\t\t\tdataItem.fromNode = node;\r\n\t\t\t\tdataItem.fromNode.outgoingDataItems.push(dataItem);\r\n\t\t\t}\r\n\t\t\tlet toName = dataItem.toName;\r\n\t\t\tif (toName) {\r\n\t\t\t\tlet node = this.nodes.getKey(toName);\r\n\t\t\t\tif (!node) {\r\n\t\t\t\t\tnode = this.nodes.create(toName);\r\n\t\t\t\t\tnode.name = toName;\r\n\t\t\t\t\tnode.chart = this;\r\n\t\t\t\t\tnode.dataItem = dataItem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataItem.toNode = node;\r\n\t\t\t\tdataItem.toNode.incomingDataItems.push(dataItem);\r\n\t\t\t}\r\n\r\n\t\t\tif (!dataItem.fromNode) {\r\n\t\t\t\tlet strokeModifier = new LinearGradientModifier();\r\n\t\t\t\tstrokeModifier.opacities = [0, 1];\r\n\t\t\t\tdataItem.link.strokeModifier = strokeModifier;\r\n\t\t\t}\r\n\r\n\t\t\tif (!dataItem.toNode) {\r\n\t\t\t\tlet fillModifier = new LinearGradientModifier();\r\n\t\t\t\tfillModifier.opacities = [1, 0];\r\n\t\t\t\tdataItem.link.strokeModifier = fillModifier;\r\n\t\t\t}\r\n\r\n\t\t\tlet value = dataItem.value;\r\n\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\tsum += value;\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif (low > value || !$type.isNumber(low)) {\r\n\t\t\t\t\tlow = value;\r\n\t\t\t\t}\r\n\t\t\t\tif (high < value || !$type.isNumber(high)) {\r\n\t\t\t\t\thigh = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet key = \"value\";\r\n\r\n\t\tthis.dataItem.setCalculatedValue(key, high, \"high\");\r\n\t\tthis.dataItem.setCalculatedValue(key, low, \"low\");\r\n\t\tthis.dataItem.setCalculatedValue(key, sum, \"sum\");\r\n\t\tthis.dataItem.setCalculatedValue(key, sum / count, \"average\");\r\n\t\tthis.dataItem.setCalculatedValue(key, count, \"count\");\r\n\r\n\r\n\t\t$iter.each(this.nodes.iterator(), (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\r\n\t\t\tif (node.fill instanceof Color) {\r\n\t\t\t\tnode.color = node.fill;\r\n\t\t\t}\r\n\r\n\t\t\tif (node.color == undefined) {\r\n\t\t\t\tnode.color = this.colors.next();\r\n\t\t\t}\r\n\r\n\t\t\tif (node.dataItem.color != undefined) {\r\n\t\t\t\tnode.color = node.dataItem.color;\r\n\t\t\t}\r\n\r\n\t\t\tif (!node.dataItem.visible) {\r\n\t\t\t\tnode.hide(0);\r\n\t\t\t}\r\n\r\n\t\t\tthis.getNodeValue(node);\r\n\t\t});\r\n\r\n\t\tthis.sortNodes();\r\n\t\tthis.feedLegend();\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sorts nodes by either their values or names, based on `sortBy` setting.\r\n\t */\r\n\tprotected sortNodes() {\r\n\t\tif (this.sortBy == \"name\") {\r\n\t\t\tthis._sorted = this.nodes.sortedIterator();\r\n\t\t}\r\n\t\telse if (this.sortBy == \"value\") {\r\n\t\t\tthis._sorted = $iter.sort(this.nodes.iterator(), (x, y) => $order.reverse($number.order(x[1].total, y[1].total)));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._sorted = this.nodes.iterator();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a cummulative value of the node.\r\n\t *\r\n\t * A node's value is determined by summing values of all of the incoming\r\n\t * links or all of the outgoing links, whichever results in bigger number.\r\n\t *\r\n\t * @param node Node value\r\n\t */\r\n\tprotected getNodeValue(node: FlowDiagramNode) {\r\n\r\n\t\t// todo: totalIncomming totalOutgoing, total\r\n\r\n\t\tlet incomingTotal = 0;\r\n\t\tlet outgoingTotal = 0;\r\n\r\n\t\t$iter.each(node.incomingDataItems.iterator(), (dataItem: FlowDiagramDataItem) => {\r\n\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\tincomingTotal += value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$iter.each(node.outgoingDataItems.iterator(), (dataItem: FlowDiagramDataItem) => {\r\n\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\toutgoingTotal += value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tnode.total = incomingTotal + outgoingTotal;\r\n\t\tnode.totalIncoming = incomingTotal;\r\n\t\tnode.totalOutgoing = outgoingTotal;\r\n\t};\r\n\r\n\t/**\r\n\t * Changes the sort type of the nodes.\r\n\t *\r\n\t * This will actually reshuffle nodes using nice animation.\r\n\t */\r\n\tprotected changeSorting() {\r\n\t\tthis.sortNodes();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Flow diagram\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new data item.\r\n\t *\r\n\t * @return Data item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new FlowDiagramDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Padding for node square in pixels.\r\n\t *\r\n\t * Padding will add extra space around node's name label.\r\n\t *\r\n\t * @param value Padding (px)\r\n\t */\r\n\tpublic set nodePadding(value: number) {\r\n\t\tthis.setPropertyValue(\"nodePadding\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Padding (px)\r\n\t */\r\n\tpublic get nodePadding(): number {\r\n\t\treturn this.getPropertyValue(\"nodePadding\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sort nodes by \"name\" or \"value\" or do not sort at all. If not sorted, nodes will appear in the same order as they are in the data.\r\n\t * @default \"none\"\r\n\t * @param value Node sorting\r\n\t */\r\n\tpublic set sortBy(value: \"none\" | \"name\" | \"value\") {\r\n\t\tthis.setPropertyValue(\"sortBy\", value);\r\n\t\tthis.changeSorting();\r\n\t}\r\n\r\n\t/**\r\n\t * @returns Node sorting\r\n\t */\r\n\tpublic get sortBy(): \"none\" | \"name\" | \"value\" {\r\n\t\treturn this.getPropertyValue(\"sortBy\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sometimes nodes can get very small if their value is little. With this setting you\r\n\t * can set min size of a node (this is relative value from the total size of all nodes)\r\n\t * @default 0.02\r\n\t * @param value Node sorting\r\n\t */\r\n\tpublic set minNodeSize(value: number) {\r\n\t\tthis.setPropertyValue(\"minNodeSize\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @returns min node size\r\n\t */\r\n\tpublic get minNodeSize(): number {\r\n\t\treturn this.getPropertyValue(\"minNodeSize\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * A list of chart's nodes.\r\n\t *\r\n\t * @param {DictionaryTemplate<string, this[\"_node\"]>}\r\n\t */\r\n\tpublic get nodes(): DictionaryTemplate<string, this[\"_node\"]> {\r\n\t\tif (!this._nodes) {\r\n\t\t\tlet template = this.createNode();\r\n\t\t\ttemplate.events.on(\"hit\", (event) => {\r\n\t\t\t\tevent.target.handleHit(event);\r\n\t\t\t});\r\n\t\t\tthis._nodes = new DictionaryTemplate<string, this[\"_node\"]>(template);\r\n\t\t\tthis._disposers.push(new DictionaryDisposer(this._nodes));\r\n\t\t}\r\n\t\treturn this._nodes;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createNode(): this[\"_node\"] {\r\n\t\tlet node = new FlowDiagramNode();\r\n\t\tthis._disposers.push(node);\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of chart's links.\r\n\t *\r\n\t * @param {ListTemplate<this[\"_link\"]>}\r\n\t */\r\n\tpublic get links(): ListTemplate<this[\"_link\"]> {\r\n\t\tif (!this._links) {\r\n\t\t\tthis._links = new ListTemplate<this[\"_link\"]>(this.createLink());\r\n\t\t\tthis._disposers.push(new ListDisposer(this._links));\r\n\t\t}\r\n\t\treturn this._links;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createLink(): this[\"_link\"] {\r\n\t\tlet link = new FlowDiagramLink();\r\n\t\tthis._disposers.push(link);\r\n\t\treturn link;\r\n\t}\r\n\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t * @ignore\r\n\t */\r\n\tpublic feedLegend(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\t\t\tlet legendData: any[] = [];\r\n\r\n\t\t\tthis.nodes.each((key, node) => {\r\n\t\t\t\tlegendData.push(node);\r\n\t\t\t});\r\n\r\n\t\t\tlegend.data = legendData;\r\n\t\t\tlegend.dataFields.name = \"name\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tthis.nodes.clear();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FlowDiagram\"] = FlowDiagram;\r\n","/**\r\n * Bullet module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet, IBulletProperties, IBulletAdapters, IBulletEvents } from \"./Bullet\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Bullet]]\r\n */\r\nexport interface ILabelBulletProperties extends IBulletProperties { }\r\n\r\n/**\r\n * Defines events for [[Bullet]]\r\n */\r\nexport interface ILabelBulletEvents extends IBulletEvents { }\r\n\r\n/**\r\n * Defines adapters\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILabelBulletAdapters extends IBulletAdapters, ILabelBulletProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class LabelBullet extends Bullet {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILabelBulletProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ILabelBulletAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILabelBulletEvents;\r\n\r\n\t/**\r\n\t * A label (textual) element for the bullet.\r\n\t */\r\n\tpublic label: Label;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"LabelBullet\";\r\n\r\n\t\tlet label = this.createChild(Label);\r\n\t\tlabel.shouldClone = false;\r\n\t\tlabel.verticalCenter = \"middle\";\r\n\t\tlabel.horizontalCenter = \"middle\";\r\n\t\tlabel.truncate = true;\r\n\t\tlabel.hideOversized = false;\r\n\r\n\t\tlabel.maxWidth = 500;\r\n\t\tlabel.maxHeight = 500;\r\n\r\n\t\tlabel.stroke = color();\r\n\t\tlabel.strokeOpacity = 0;\r\n\t\tlabel.fill = new InterfaceColorSet().getFor(\"text\");\r\n\r\n\t\tthis.events.on(\"maxsizechanged\", this.handleMaxSize, this, false);\r\n\r\n\t\tthis.label = label;\r\n\r\n\t\t// not good, as lineSeries will have labels somewhere in the middle.\r\n\t\t//this.locationX = 0.5;\r\n\t\t//this.locationY = 0.5;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tprotected handleMaxSize(){\r\n\t\tthis.label.maxWidth = this.maxWidth;\r\n\t\tthis.label.maxHeight = this.maxHeight;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all proprities and related stuff from another instance of\r\n\t * [[LabelBullet]].\r\n\t *\r\n\t * @param source Source element\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.label.copyFrom(source.label);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LabelBullet\"] = LabelBullet;\r\n","/**\r\n * SankeyNode module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode, IFlowDiagramNodeAdapters, IFlowDiagramNodeEvents, IFlowDiagramNodeProperties } from \"./FlowDiagramNode\";\r\nimport { SankeyDiagram, SankeyDiagramDataItem } from \"../types/SankeyDiagram\";\r\nimport { LabelBullet } from \"./LabelBullet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[SankeyNode]].\r\n */\r\nexport interface ISankeyNodeProperties extends IFlowDiagramNodeProperties {\r\n\r\n\t/**\r\n\t * A level node is at. (0 - ...)\r\n\t */\r\n\tlevel?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[SankeyNode]].\r\n */\r\nexport interface ISankeyNodeEvents extends IFlowDiagramNodeEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SankeyNode]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISankeyNodeAdapters extends IFlowDiagramNodeAdapters, ISankeyNodeProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a node in a Sankey Diagram.\r\n *\r\n * A Sankey node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[SankeyLink]] elements.\r\n *\r\n * @see {@link ISankeyNodeEvents} for a list of available events\r\n * @see {@link ISankeyNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class SankeyNode extends FlowDiagramNode {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISankeyNodeProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISankeyNodeAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISankeyNodeEvents;\r\n\r\n\r\n\t/**\r\n\t * [nextInCoord description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic nextInCoord: number = 0;\r\n\r\n\t/**\r\n\t * [nextOutCoord description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic nextOutCoord: number = 0;\r\n\r\n\t/**\r\n\t * A chart instance this node is added to.\r\n\t */\r\n\tpublic chart: SankeyDiagram;\r\n\r\n\r\n\t/**\r\n\t * Defines the type of the [[SankeyDiagramDataItem]] used in the class.\r\n\t */\r\n\tpublic _dataItem: SankeyDiagramDataItem;\r\n\r\n\t/**\r\n\t * A label element which shows node's value.\r\n\t */\r\n\tpublic valueLabel: LabelBullet;\r\n\r\n\t/**\r\n\t * A label element which shows node's name.\r\n\t */\r\n\tpublic nameLabel: LabelBullet;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SankeyNode\";\r\n\r\n\t\tthis.width = 10;\r\n\t\tthis.height = 10;\r\n\r\n\t\tlet nameLabel = this.createChild(LabelBullet);\r\n\t\tnameLabel.shouldClone = false;\r\n\t\t//@should we auto update these locations if position is changed?\r\n\t\tnameLabel.locationX = 1;\r\n\t\tnameLabel.locationY = 0.5;\r\n\t\tnameLabel.label.text = \"{name}\";\r\n\r\n\t\t//nameLabel.label.textElement.hideOversized = false;\r\n\t\tnameLabel.width = 150;\r\n\t\tnameLabel.height = 150;\r\n\t\tnameLabel.label.horizontalCenter = \"left\";\r\n\t\tnameLabel.label.padding(0, 5, 0, 5);\r\n\t\tthis.nameLabel = nameLabel;\r\n\r\n\t\tlet valueLabel = this.createChild(LabelBullet);\r\n\t\tvalueLabel.shouldClone = false;\r\n\t\tvalueLabel.label.hideOversized = false;\r\n\t\tvalueLabel.locationX = 0.5;\r\n\t\tvalueLabel.locationY = 0.5;\r\n\t\tvalueLabel.width = 150;\r\n\t\tvalueLabel.height = 150;\r\n\t\t//valueLabel.label.text = \"{value}\";\r\n\t\tvalueLabel.label.horizontalCenter = \"middle\";\r\n\t\tthis.valueLabel = valueLabel;\r\n\r\n\t\tlet hiddenState = this.hiddenState;\r\n\t\thiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n\t\thiddenState.properties.opacity = 0.5;\r\n\t\thiddenState.properties.visible = true;\r\n\r\n\t\tthis.background.hiddenState.copyFrom(hiddenState);\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Invalidates all links, attached to this node.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateLinks(): void {\r\n\t\tsuper.invalidateLinks();\r\n\t\tthis.nextInCoord = 0;\r\n\t\tthis.nextOutCoord = 0;\r\n\t\tlet chart = this.chart;\r\n\r\n\t\tif (chart) {\r\n\t\t\tlet orientation = chart.orientation;\r\n\t\t\tif (this._incomingSorted) {\r\n\t\t\t\t$iter.each(this._incomingSorted, (dataItem) => {\r\n\t\t\t\t\tlet link = dataItem.link;\r\n\t\t\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\tlink.parent = this.chart.linksContainer;\r\n\r\n\t\t\t\t\t\tlet x: number;\r\n\t\t\t\t\t\tlet y: number;\r\n\t\t\t\t\t\tlet angle: number;\r\n\r\n\t\t\t\t\t\tif (orientation == \"horizontal\") {\r\n\t\t\t\t\t\t\tx = this.pixelX + this.dx;\r\n\t\t\t\t\t\t\ty = this.nextInCoord + this.pixelY + this.dy;\r\n\t\t\t\t\t\t\tangle = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ty = this.pixelY + this.dy;\r\n\t\t\t\t\t\t\tx = this.nextInCoord + this.pixelX + this.dx;\r\n\t\t\t\t\t\t\tangle = 90;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlink.endX = x;\r\n\t\t\t\t\t\tlink.endY = y;\r\n\t\t\t\t\t\tlink.startAngle = angle;\r\n\t\t\t\t\t\tlink.endAngle = angle;\r\n\t\t\t\t\t\tlink.gradient.rotation = angle;\r\n\r\n\t\t\t\t\t\tlink.linkWidth = value * chart.valueHeight;\r\n\r\n\t\t\t\t\t\tif (!dataItem.fromNode) {\r\n\r\n\t\t\t\t\t\t\tif (orientation == \"horizontal\") {\r\n\t\t\t\t\t\t\t\tlink.maxWidth = 200;\r\n\t\t\t\t\t\t\t\tlink.startX = this.pixelX + this.dx - link.maxWidth;\r\n\t\t\t\t\t\t\t\tlink.startY = link.endY;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tlink.maxHeight = 200;\r\n\t\t\t\t\t\t\t\tlink.startX = link.endX;\r\n\t\t\t\t\t\t\t\tlink.startY = this.pixelY + this.dy - link.maxHeight;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// TODO is this needed ?\r\n\t\t\t\t\t\t\t$utils.used(link.gradient);\r\n\r\n\t\t\t\t\t\t\tlink.fill = dataItem.toNode.color;\r\n\t\t\t\t\t\t\tlet stop = link.gradient.stops.getIndex(0);\r\n\t\t\t\t\t\t\tif (stop) {\r\n\t\t\t\t\t\t\t\tif (link.colorMode == \"gradient\") {\r\n\t\t\t\t\t\t\t\t\tstop.color = this.color;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tstop.opacity = 0;\r\n\t\t\t\t\t\t\t\tlink.fill = link.gradient;\r\n\t\t\t\t\t\t\t\tlink.stroke = link.gradient;\r\n\t\t\t\t\t\t\t\tlink.gradient.validate();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//link.validate();\r\n\t\t\t\t\t\tthis.nextInCoord += link.linkWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this._outgoingSorted) {\r\n\t\t\t\t$iter.each(this._outgoingSorted, (dataItem) => {\r\n\t\t\t\t\tlet link = dataItem.link;\r\n\t\t\t\t\tlink.parent = this.chart.linksContainer;\r\n\t\t\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\tlet x: number;\r\n\t\t\t\t\t\tlet y: number;\r\n\t\t\t\t\t\tlet angle: number;\r\n\r\n\t\t\t\t\t\tif (orientation == \"horizontal\") {\r\n\t\t\t\t\t\t\tangle = 0;\r\n\t\t\t\t\t\t\tx = this.pixelX + this.pixelWidth + this.dx - 1;\r\n\t\t\t\t\t\t\ty = this.nextOutCoord + this.pixelY + this.dy;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tangle = 90;\r\n\t\t\t\t\t\t\tx = this.nextOutCoord + this.pixelX + this.dx;\r\n\t\t\t\t\t\t\ty = this.pixelY + this.pixelHeight + this.dy - 1;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlink.startX = x;\r\n\t\t\t\t\t\tlink.startY = y;\r\n\t\t\t\t\t\tlink.startAngle = angle;\r\n\t\t\t\t\t\tlink.endAngle = angle;\r\n\t\t\t\t\t\tlink.gradient.rotation = angle;\r\n\r\n\t\t\t\t\t\tlink.linkWidth = value * this.chart.valueHeight;\r\n\r\n\t\t\t\t\t\tif (!dataItem.toNode) {\r\n\t\t\t\t\t\t\tif (orientation == \"horizontal\") {\r\n\t\t\t\t\t\t\t\tlink.maxWidth = 200;\r\n\t\t\t\t\t\t\t\tlink.endX = this.pixelX + link.maxWidth + this.dx;\r\n\t\t\t\t\t\t\t\tlink.endY = link.startY;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tlink.maxHeight = 200;\r\n\t\t\t\t\t\t\t\tlink.endX = link.startX;\r\n\t\t\t\t\t\t\t\tlink.endY = this.pixelY + link.maxHeight + this.dy;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tlink.opacity = this.opacity;\r\n\r\n\t\t\t\t\t\t\tlet stop = link.gradient.stops.getIndex(1);\r\n\t\t\t\t\t\t\tif (stop) {\r\n\t\t\t\t\t\t\t\tif (link.colorMode == \"gradient\") {\r\n\t\t\t\t\t\t\t\t\tstop.color = this.color;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tstop.opacity = 0;\r\n\t\t\t\t\t\t\t\tlink.fill = link.gradient;\r\n\t\t\t\t\t\t\t\tlink.stroke = link.gradient;\r\n\t\t\t\t\t\t\t\tlink.gradient.validate();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//link.validate();\r\n\t\t\t\t\t\tthis.nextOutCoord += link.linkWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.positionBullet(this.nameLabel);\r\n\t\tthis.positionBullet(this.valueLabel);\r\n\t}\r\n\r\n\t/**\r\n\t * Positions the bullet so it is centered within the node element.\r\n\t *\r\n\t * @param bullet Target bullet\r\n\t */\r\n\tprotected positionBullet(bullet: LabelBullet) {\r\n\t\tif (bullet) {\r\n\t\t\tbullet.x = this.measuredWidth * bullet.locationX;\r\n\t\t\tbullet.y = this.measuredHeight * bullet.locationY;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A level node is displayed at. (0 - ...)\r\n\t *\r\n\t * Levels are measured from left to right.\r\n\t *\r\n\t * The nodes in the left-most column will have `level = 0`.\r\n\t *\r\n\t * Nodes in second column - `level = 1`, etc.\r\n\t *\r\n\t * @param value Level\r\n\t */\r\n\tpublic set level(value: number) {\r\n\t\tthis.setPropertyValue(\"level\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Level\r\n\t */\r\n\tpublic get level(): number {\r\n\t\treturn this.getPropertyValue(\"level\");\r\n\t}\r\n\r\n\t/**\r\n\t * Copies properties and labels from another [[SankeyNode]].\r\n\t *\r\n\t * @param source Source node\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.nameLabel.copyFrom(source.nameLabel);\r\n\t\tthis.valueLabel.copyFrom(source.valueLabel);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyNode\"] = SankeyNode;\r\n","/**\r\n * SankeyLink module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SankeyDiagramDataItem } from \"../types/SankeyDiagram\";\r\nimport { FlowDiagramLink, IFlowDiagramLinkAdapters, IFlowDiagramLinkEvents, IFlowDiagramLinkProperties } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Polyspline } from \"../../core/elements/Polyspline\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[SankeyLink]].\r\n */\r\nexport interface ISankeyLinkProperties extends IFlowDiagramLinkProperties {\r\n\r\n\t/**\r\n\t * [tension description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\ttension?: number;\r\n\r\n\t/**\r\n\t * [startX description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tstartX?: number;\r\n\r\n\t/**\r\n\t * [startY description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tstartY?: number;\r\n\r\n\t/**\r\n\t * [endX description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tendX?: number;\r\n\r\n\t/**\r\n\t * [endY description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tendY?: number;\r\n\r\n\t/**\r\n\t * [linkWidth description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tlinkWidth?: number;\r\n\r\n\t/**\r\n\t * [controlPointDistance description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tcontrolPointDistance?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[SankeyLink]].\r\n */\r\nexport interface ISankeyLinkEvents extends IFlowDiagramLinkEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SankeyLink]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISankeyLinkAdapters extends IFlowDiagramLinkAdapters, ISankeyLinkProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link ISankeyLinkEvents} for a list of available events\r\n * @see {@link ISankeyLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class SankeyLink extends FlowDiagramLink {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISankeyLinkProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISankeyLinkAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISankeyLinkEvents;\r\n\r\n\t/**\r\n\t * Defines a type of data item used by this class.\r\n\t */\r\n\tpublic _dataItem: SankeyDiagramDataItem;\r\n\r\n\t/**\r\n\t * Spline which goes through the middle of a link, used to calculate bullet and tooltip positions, invisible by default\r\n\t */\r\n\tpublic middleLine: Polyspline;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SankeyLink\";\r\n\r\n\t\t// TODO can this be removed ?\r\n\t\tnew InterfaceColorSet();\r\n\r\n\t\tthis.tension = 0.8;\r\n\t\tthis.controlPointDistance = 0.2;\r\n\r\n\t\tthis.startAngle = 0;\r\n\t\tthis.endAngle = 0;\r\n\r\n\t\tthis.linkWidth = 0;\r\n\r\n\t\tthis.startX = 0;\r\n\t\tthis.endX = 0;\r\n\r\n\t\tthis.startY = 0;\r\n\t\tthis.endY = 0;\r\n\r\n\t\tthis.middleLine = this.createChild(Polyspline);\r\n\t\tthis.middleLine.shouldClone = false;\r\n\t\tthis.middleLine.strokeOpacity = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates (redraws) the link.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\r\n\t\tif (!this.isTemplate) {\r\n\r\n\t\t\tlet x0 = this.startX\r\n\t\t\tlet y0 = this.startY;\r\n\t\t\tlet x1 = this.endX;\r\n\t\t\tlet y1 = this.endY;\r\n\r\n\t\t\tif (!$type.isNumber(x1)) {\r\n\t\t\t\tx1 = x0;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNumber(y1)) {\r\n\t\t\t\ty1 = y0;\r\n\t\t\t}\r\n\r\n\t\t\tlet startAngle = this.startAngle;\r\n\t\t\tlet endAngle = this.endAngle;\r\n\t\t\tlet w = this.linkWidth;\r\n\r\n\t\t\tlet path = \"\";\r\n\r\n\t\t\tlet xt0 = x0;\r\n\t\t\tlet yt0 = y0;\r\n\r\n\t\t\tlet xt1 = x1;\r\n\t\t\tlet yt1 = y1;\r\n\r\n\t\t\tlet xb0 = x0 + w * $math.sin(startAngle);\r\n\t\t\tlet xb1 = x1 + w * $math.sin(endAngle);\r\n\r\n\t\t\tlet yb0 = y0 + w * $math.cos(startAngle);\r\n\t\t\tlet yb1 = y1 + w * $math.cos(endAngle);\r\n\r\n\t\t\tlet xm0 = x0 + w / 2 * $math.sin(startAngle);\r\n\t\t\tlet xm1 = x1 + w / 2 * $math.sin(endAngle);\r\n\r\n\t\t\tlet ym0 = y0 + w / 2 * $math.cos(startAngle);\r\n\t\t\tlet ym1 = y1 + w / 2 * $math.cos(endAngle);\r\n\r\n\t\t\tthis.zIndex = this.zIndex || this.dataItem.index;\r\n\r\n\t\t\tlet tensionX = this.tension + (1 - this.tension) * $math.sin(startAngle);\r\n\t\t\tlet tensionY = this.tension + (1 - this.tension) * $math.cos(startAngle);\r\n\r\n\t\t\tthis.middleLine.tensionX = tensionX;\r\n\t\t\tthis.middleLine.tensionY = tensionY;\r\n\r\n\t\t\tif ($type.isNumber(w) && ($type.isNumber(x0) && $type.isNumber(x1) && $type.isNumber(y0) && $type.isNumber(y1))) {\r\n\r\n\t\t\t\t// solves issues with gradient fill of straight lines\r\n\t\t\t\tif ($math.round(xt0, 3) == $math.round(xt1, 3)) {\r\n\t\t\t\t\txt1 += 0.01;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($math.round(yt0, 3) == $math.round(yt1, 3)) {\r\n\t\t\t\t\tyt1 += 0.01;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($math.round(xb0, 3) == $math.round(xb1, 3)) {\r\n\t\t\t\t\txb1 += 0.01;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($math.round(yb0, 3) == $math.round(yb1, 3)) {\r\n\t\t\t\t\tyb1 += 0.01;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet minX = Math.min(xb0, xb1, xt0, xt1);\r\n\t\t\t\tlet minY = Math.min(yb0, yb1, yt0, yt1);\r\n\t\t\t\tlet maxX = Math.max(xb0, xb1, xt0, xt1);\r\n\t\t\t\tlet maxY = Math.max(yb0, yb1, yt0, yt1);\r\n\r\n\t\t\t\tthis._bbox = {\r\n\t\t\t\t\tx: minX,\r\n\t\t\t\t\ty: minY,\r\n\t\t\t\t\twidth: maxX - minX,\r\n\t\t\t\t\theight: maxY - minY\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlet cpd = this.controlPointDistance;\r\n\r\n\t\t\t\tlet kxt0 = xt0 + (xt1 - xt0) * cpd * $math.cos(startAngle);\r\n\t\t\t\tlet kyt0 = yt0 + (yt1 - yt0) * cpd * $math.sin(startAngle);\r\n\r\n\t\t\t\tlet kxt1 = xt1 - (xt1 - xt0) * cpd * $math.cos(endAngle);\r\n\t\t\t\tlet kyt1 = yt1 - (yt1 - yt0) * cpd * $math.sin(endAngle);\r\n\r\n\t\t\t\tlet kxm0 = xm0 + (xm1 - xm0) * cpd * $math.cos(startAngle);\r\n\t\t\t\tlet kym0 = ym0 + (ym1 - ym0) * cpd * $math.sin(startAngle);\r\n\r\n\t\t\t\tlet kxm1 = xm1 - (xm1 - xm0) * cpd * $math.cos(endAngle);\r\n\t\t\t\tlet kym1 = ym1 - (ym1 - ym0) * cpd * $math.sin(endAngle);\r\n\r\n\t\t\t\tlet angle = $math.getAngle({ x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 });\r\n\r\n\t\t\t\tlet dx = (w / $math.cos(angle) - w) / $math.tan(angle) * $math.cos(startAngle);\r\n\t\t\t\tlet dy = (w / $math.sin(angle) - w) * $math.tan(angle) * $math.sin(startAngle);\r\n\r\n\t\t\t\tlet kxb0 = -dx / 2 + xb0 + (xb1 - xb0) * cpd * $math.cos(startAngle);\r\n\t\t\t\tlet kyb0 = -dy / 2 + yb0 + (yb1 - yb0) * cpd * $math.sin(startAngle);\r\n\r\n\t\t\t\tlet kxb1 = -dx / 2 + xb1 - (xb1 - xb0) * cpd * $math.cos(endAngle);\r\n\t\t\t\tlet kyb1 = -dy / 2 + yb1 - (yb1 - yb0) * cpd * $math.sin(endAngle);\r\n\r\n\r\n\t\t\t\tthis.middleLine.segments = [[{ x: xm0, y: ym0 }, { x: kxm0, y: kym0 }, { x: kxm1, y: kym1 }, { x: xm1, y: ym1 }]];\r\n\r\n\t\t\t\tkxt0 += dx / 2;\r\n\t\t\t\tkyt0 += dy / 2;\r\n\r\n\t\t\t\tkxt1 += dx / 2;\r\n\t\t\t\tkyt1 += dy / 2;\r\n\r\n\t\t\t\tpath += $path.moveTo({ x: xt0, y: yt0 });\r\n\t\t\t\tpath += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xt0, y: yt0 }, { x: kxt0, y: kyt0 }, { x: kxt1, y: kyt1 }, { x: xt1, y: yt1 }]);\r\n\t\t\t\tpath += $path.lineTo({ x: xb1, y: yb1 });\r\n\t\t\t\tpath += new $smoothing.Tension(tensionX, tensionY).smooth([{ x: xb1, y: yb1 }, { x: kxb1, y: kyb1 }, { x: kxb0, y: kyb0 }, { x: xb0, y: yb0 }]);\r\n\t\t\t\tpath += $path.closePath();\r\n\t\t\t}\r\n\r\n\t\t\tthis.link.path = path;\r\n\r\n\t\t\tif (this.maskBullets) {\r\n\t\t\t\tthis.bulletsMask.path = path;\r\n\t\t\t\tthis.bulletsContainer.mask = this.bulletsMask;\r\n\t\t\t}\r\n\t\t\tthis.positionBullets();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [startX description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value Start X\r\n\t */\r\n\tpublic set startX(value: number) {\r\n\t\tthis.setPropertyValue(\"startX\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start X\r\n\t */\r\n\tpublic get startX(): number {\r\n\t\treturn this.getPropertyValue(\"startX\");\r\n\t}\r\n\r\n\t/**\r\n\t * [endX description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value End X\r\n\t */\r\n\tpublic set endX(value: number) {\r\n\t\tthis.setPropertyValue(\"endX\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End X\r\n\t */\r\n\tpublic get endX(): number {\r\n\t\treturn this.getPropertyValue(\"endX\");\r\n\t}\r\n\r\n\t/**\r\n\t * [startY description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value Start Y\r\n\t */\r\n\tpublic set startY(value: number) {\r\n\t\tthis.setPropertyValue(\"startY\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start Y\r\n\t */\r\n\tpublic get startY(): number {\r\n\t\treturn this.getPropertyValue(\"startY\");\r\n\t}\r\n\r\n\t/**\r\n\t * [endY description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value End Y\r\n\t */\r\n\tpublic set endY(value: number) {\r\n\t\tthis.setPropertyValue(\"endY\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End Y\r\n\t */\r\n\tpublic get endY(): number {\r\n\t\treturn this.getPropertyValue(\"endY\");\r\n\t}\r\n\r\n\t/**\r\n\t * [linkWidth description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set linkWidth(value: number) {\r\n\t\tthis.setPropertyValue(\"linkWidth\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get linkWidth(): number {\r\n\t\treturn this.getPropertyValue(\"linkWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Distance of control point of a link, defines relative distance from a node at which linke should bend\r\n\t * @default 0.2\r\n\t * @param value\r\n\t */\r\n\tpublic set controlPointDistance(value: number) {\r\n\t\tthis.setPropertyValue(\"controlPointDistance\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return relative control point distance\r\n\t */\r\n\tpublic get controlPointDistance(): number {\r\n\t\treturn this.getPropertyValue(\"controlPointDistance\");\r\n\t}\r\n\r\n\t/**\r\n\t * Tension of a spline, 1 would make the link to have sharp edges\r\n\t * @default 0.8\r\n\t * @param value\r\n\t */\r\n\tpublic set tension(value: number) {\r\n\t\tthis.setPropertyValue(\"tension\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return tension value\r\n\t */\r\n\tpublic get tension(): number {\r\n\t\treturn this.getPropertyValue(\"tension\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyLink\"] = SankeyLink;\r\n","/**\r\n * Sankey diagram module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagram, FlowDiagramDataItem, IFlowDiagramAdapters, IFlowDiagramDataFields, IFlowDiagramEvents, IFlowDiagramProperties } from \"./FlowDiagram\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { SankeyNode } from \"../elements/SankeyNode\";\r\nimport { SankeyLink } from \"../elements/SankeyLink\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { Orientation } from \"../../core/defs/Orientation\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $object from \"../../core/utils/Object\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo rearange notes after dragged\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[SankeyDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class SankeyDiagramDataItem extends FlowDiagramDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: SankeyDiagram;\r\n\r\n\t/**\r\n\t * An a link element, connecting two nodes.\r\n\t */\r\n\tpublic _link: SankeyLink;\r\n\r\n\t/**\r\n\t * An origin node.\r\n\t */\r\n\tpublic fromNode: SankeyNode;\r\n\r\n\t/**\r\n\t * A destination node.\r\n\t */\r\n\tpublic toNode: SankeyNode;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"SankeyDiagramDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[SankeyDiagram]].\r\n */\r\nexport interface ISankeyDiagramDataFields extends IFlowDiagramDataFields {\r\n\r\n\t/**\r\n\t * Name of the source node.\r\n\t */\r\n\tfromName?: string;\r\n\r\n\t/**\r\n\t * Name of the target node.\r\n\t */\r\n\ttoName?: string;\r\n\r\n\t/**\r\n\t * Value of the link between two nodes.\r\n\t */\r\n\tvalue?: string;\r\n\r\n\t/**\r\n\t * Color of a from node\r\n\t */\r\n\tcolor?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[SankeyDiagram]]\r\n */\r\nexport interface ISankeyDiagramProperties extends IFlowDiagramProperties {\r\n\r\n\t/**\r\n\t * Sort nodes by name or value or do not sort at all\r\n\t */\r\n\tnodeAlign?: \"top\" | \"bottom\" | \"middle\";\r\n\r\n\r\n\t/**\r\n\t * Orientation of the chart.\r\n\t */\r\n\torientation?: Orientation;\r\n}\r\n\r\n/**\r\n * Defines events for [[SankeyDiagram]].\r\n */\r\nexport interface ISankeyDiagramEvents extends IFlowDiagramEvents { }\r\n\r\n/**\r\n * Defines adapters for [[SankeyDiagram]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISankeyDiagramAdapters extends IFlowDiagramAdapters, ISankeyDiagramProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Sankey Diagram chart.\r\n *\r\n * @see {@link ISankeyDiagramEvents} for a list of available Events\r\n * @see {@link ISankeyDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sankey-diagram/} for documentation\r\n * @important\r\n */\r\nexport class SankeyDiagram extends FlowDiagram {\r\n\r\n\r\n\t/**\r\n\t * Defines a type for the DataItem.\r\n\t */\r\n\tpublic _dataItem: SankeyDiagramDataItem;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: ISankeyDiagramDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISankeyDiagramProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISankeyDiagramAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISankeyDiagramEvents;\r\n\r\n\t/**\r\n\t * An a link element, connecting two nodes.\r\n\t */\r\n\tpublic _link: SankeyLink;\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t */\r\n\tprotected _levelSum: { [index: number]: number };\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t */\r\n\tprotected _levelNodesCount: { [index: number]: number };\r\n\r\n\t/**\r\n\t */\r\n\tpublic _node: SankeyNode;\r\n\r\n\t/**\r\n\t * [maxSum description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic maxSum: number;\r\n\r\n\t/**\r\n\t * level with max sum\r\n\t */\r\n\tprotected _maxSumLevel: number;\r\n\r\n\t/**\r\n\t * [valueHeight description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _valueHeight: number;\r\n\r\n\t/**\r\n\t * A total number of levels, present on this chart.\r\n\t */\r\n\tprotected _levelCount: number;\r\n\r\n\t/**\r\n\t * Sorted nodes iterator.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tprotected _sorted: $iter.Iterator<[string, this[\"_node\"]]>;\r\n\r\n\tprotected _heightAnimation: Animation;\r\n\r\n\tprotected _level: number;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"SankeyDiagram\";\r\n\t\tthis.orientation = \"horizontal\";\r\n\t\tthis.nodeAlign = \"middle\";\r\n\r\n\t\tthis.nodesContainer.width = percent(100);\r\n\t\tthis.nodesContainer.height = percent(100);\r\n\r\n\t\tthis.linksContainer.width = percent(100);\r\n\t\tthis.linksContainer.height = percent(100);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates chart's data, effectively causing the chart to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tsuper.validateData();\r\n\r\n\t\tthis._levelCount = 0;\r\n\r\n\t\tthis.nodes.each((key, node) => {\r\n\t\t\tnode.level = undefined;\r\n\t\t});\r\n\r\n\t\tthis.nodes.each((key, node) => {\r\n\t\t\tnode.level = this.getNodeLevel(node, 0);\r\n\t\t\tthis._levelCount = $math.max(this._levelCount, node.level);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns node's highest level.\r\n\t *\r\n\t * @param node Node\r\n\t * @param level Current level\r\n\t * @return New level\r\n\t */\r\n\tprotected getNodeLevel(node: this[\"_node\"], level: number): number {\r\n\t\t//@todo solve circular so\r\n\t\tlet levels: number[] = [level];\r\n\t\t$iter.each(node.incomingDataItems.iterator(), (link) => {\r\n\t\t\tif (link.fromNode) {\r\n\t\t\t\tif ($type.isNumber(link.fromNode.level)) {\r\n\t\t\t\t\tlevels.push(link.fromNode.level + 1);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlevels.push(this.getNodeLevel(link.fromNode, level + 1));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\treturn Math.max(...levels);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Calculates relation between pixel height and total value.\r\n\t *\r\n\t * In Sankey the actual thickness of links and height of nodes will depend\r\n\t * on their values.\r\n\t */\r\n\tprotected calculateValueHeight() {\r\n\t\t// calculate sums of each level\r\n\t\tthis._levelSum = {};\r\n\t\tthis._levelNodesCount = {};\r\n\t\tthis.maxSum = 0;\r\n\r\n\t\tlet total = this.dataItem.values.value.sum;\r\n\r\n\t\t$iter.each(this._sorted, (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\t\t\tthis.getNodeValue(node);\r\n\t\t});\r\n\r\n\t\tthis.nodes.each((key, node) => {\r\n\t\t\tlet level = node.level;\r\n\r\n\t\t\tlet value = Math.max(node.totalIncoming, node.totalOutgoing);\r\n\r\n\r\n\t\t\tif (value / total < this.minNodeSize) {\r\n\t\t\t\tvalue = total * this.minNodeSize;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(this._levelSum[level])) {\r\n\t\t\t\tthis._levelSum[level] += value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._levelSum[level] = value;\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(this._levelNodesCount[level])) {\r\n\t\t\t\tthis._levelNodesCount[level]++;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._levelNodesCount[level] = 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tlet availableHeight: number;\r\n\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\tavailableHeight = this.chartContainer.maxHeight - 1;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tavailableHeight = this.chartContainer.maxWidth - 1;\r\n\t\t}\r\n\r\n\r\n\t\tlet maxSumLevel: number;\r\n\t\tlet minHeight: number;\r\n\r\n\t\t$object.each(this._levelSum, (key, value) => {\r\n\t\t\tlet realValue = value;\r\n\r\n\t\t\tlet levelNodeCount = this._levelNodesCount[key];\r\n\t\t\tlet valueHeight = (availableHeight - (levelNodeCount - 1) * this.nodePadding) / realValue;\r\n\r\n\t\t\tif (valueHeight == Infinity) {\r\n\t\t\t\tvalueHeight = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (minHeight > valueHeight || !$type.isNumber(minHeight)) {\r\n\t\t\t\tminHeight = valueHeight;\r\n\t\t\t\tthis.maxSum = realValue;\r\n\t\t\t\tmaxSumLevel = $type.toNumber(key);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._maxSumLevel = maxSumLevel;\r\n\r\n\t\tlet maxSumLevelNodeCount = this._levelNodesCount[this._maxSumLevel];\r\n\r\n\t\tlet valueHeight = (availableHeight - (maxSumLevelNodeCount - 1) * this.nodePadding) / this.maxSum;\r\n\r\n\t\tif (valueHeight == Infinity) {\r\n\t\t\tvalueHeight = 0;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(this.valueHeight)) {\r\n\t\t\tthis.valueHeight = valueHeight;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet finalHeight;\r\n\t\t\ttry {\r\n\t\t\t\tfinalHeight = this._heightAnimation.animationOptions[0].to;\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\r\n\t\t\t}\r\n\t\t\t// without animations it will be non-smooth as maxValue jumps from one column to another\r\n\t\t\tif (finalHeight != valueHeight) {\r\n\t\t\t\tlet duration = this.interpolationDuration;\r\n\t\t\t\ttry {\r\n\t\t\t\t\tduration = this.nodes.template.states.getKey(\"active\").transitionDuration;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err) {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._heightAnimation = new Animation(this, { property: \"valueHeight\", from: this.valueHeight, to: valueHeight }, duration, this.interpolationEasing).start();\r\n\t\t\t\tthis._disposers.push(this._heightAnimation);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Redraws the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\r\n\t\tthis.calculateValueHeight();\r\n\r\n\t\tlet container = this.nodesContainer;\r\n\r\n\t\tlet nextCoordinate: { [index: number]: number } = {};\r\n\r\n\t\tlet maxSumLevelNodeCount = this._levelNodesCount[this._maxSumLevel];\r\n\r\n\t\tlet total = this.dataItem.values.value.sum;\r\n\r\n\t\t$iter.each(this._sorted, (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\t\t\tlet level = node.level;\r\n\t\t\tlet levelCoordinate: number = 0;\r\n\r\n\t\t\tlet nodeCount = this._levelNodesCount[level];\r\n\r\n\t\t\tswitch (this.nodeAlign) {\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\tlevelCoordinate = (this.maxSum - this._levelSum[level]) * this.valueHeight - (nodeCount - maxSumLevelNodeCount) * this.nodePadding;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"middle\":\r\n\t\t\t\t\tlevelCoordinate = (this.maxSum - this._levelSum[level]) * this.valueHeight / 2 - (nodeCount - maxSumLevelNodeCount) * this.nodePadding / 2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tnode.parent = container;\r\n\r\n\t\t\tlet delta: number;\r\n\t\t\tlet x: number;\r\n\t\t\tlet y: number;\r\n\r\n\t\t\tlet value = Math.max(node.totalIncoming, node.totalOutgoing);\r\n\r\n\t\t\tif (value / total < this.minNodeSize) {\r\n\t\t\t\tvalue = total * this.minNodeSize;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\tdelta = (this.innerWidth - node.pixelWidth) / this._levelCount;\r\n\r\n\t\t\t\tx = delta * node.level;\r\n\t\t\t\ty = nextCoordinate[level] || levelCoordinate;\r\n\r\n\t\t\t\tlet h = value * this.valueHeight;\r\n\r\n\t\t\t\tnode.height = h;\r\n\t\t\t\tnode.minX = x;\r\n\t\t\t\tnode.maxX = x;\r\n\t\t\t\tnextCoordinate[level] = y + h + this.nodePadding;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdelta = (this.innerHeight - node.pixelHeight) / this._levelCount;\r\n\r\n\t\t\t\tx = nextCoordinate[level] || levelCoordinate;\r\n\t\t\t\ty = delta * node.level;\r\n\r\n\t\t\t\tlet w = value * this.valueHeight;\r\n\r\n\t\t\t\tnode.width = w;\r\n\t\t\t\tnode.minY = y;\r\n\t\t\t\tnode.maxY = y;\r\n\t\t\t\tnextCoordinate[level] = x + w + this.nodePadding;\r\n\t\t\t}\r\n\t\t\tnode.x = x;\r\n\t\t\tnode.y = y;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Performs actual operations to reveal this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param duration Fade in duration (ms)\r\n\t * @return Fade in duration (ms)\r\n\t */\r\n\tprotected showReal(duration?: number): $type.Optional<Animation> {\r\n\r\n\t\tif (this.preventShow) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.interpolationDuration > 0) {\r\n\t\t\tlet container = this.nodesContainer;\r\n\r\n\t\t\tlet i: number = 0;\r\n\r\n\t\t\t$iter.each(this.links.iterator(), (link) => {\r\n\t\t\t\tlink.hide(0);\r\n\t\t\t})\r\n\r\n\t\t\t$iter.each(this._sorted, (strNode) => {\r\n\r\n\t\t\t\tlet node = strNode[1];\r\n\r\n\t\t\t\tlet property: \"dx\" | \"dy\";\r\n\r\n\t\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\t\tnode.dx = -(container.pixelWidth - node.pixelWidth) / Math.max(this._levelCount, 1);\r\n\t\t\t\t\tproperty = \"dx\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.dy = -(container.pixelHeight - node.pixelHeight) / Math.max(this._levelCount, 1);\r\n\t\t\t\t\tproperty = \"dy\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet delay = 0;\r\n\t\t\t\tlet duration = this.interpolationDuration;\r\n\t\t\t\tif (this.sequencedInterpolation) {\r\n\t\t\t\t\tdelay = this.sequencedInterpolationDelay * i + duration * i / $iter.length(this.nodes.iterator());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnode.opacity = 0;\r\n\t\t\t\tnode.invalidateLinks();\r\n\r\n\t\t\t\tnode.animate([{ property: \"opacity\", from: 0, to: 1 }, { property: property, to: 0 }], this.interpolationDuration, this.interpolationEasing).delay(delay);\r\n\r\n\t\t\t\t$iter.each(node.outgoingDataItems.iterator(), (dataItem) => {\r\n\t\t\t\t\tlet animation = dataItem.link.show(this.interpolationDuration);\r\n\t\t\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\t$iter.each(node.incomingDataItems.iterator(), (dataItem) => {\r\n\t\t\t\t\tif (!dataItem.fromNode) {\r\n\t\t\t\t\t\tlet animation = dataItem.link.show(this.interpolationDuration);\r\n\t\t\t\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\ti++;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn super.showReal();\r\n\t}\r\n\r\n\t/**\r\n\t * Changes the sort type of the nodes.\r\n\t *\r\n\t * This will actually reshuffle nodes using nice animation.\r\n\t */\r\n\tprotected changeSorting() {\r\n\t\tthis.sortNodes();\r\n\r\n\t\tlet nextCoordinate: { [index: number]: number } = {};\r\n\r\n\t\t$iter.each(this._sorted, (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\t\t\tlet level = node.level;\r\n\r\n\t\t\tlet levelCoordinate = (this.maxSum - this._levelSum[level]) * this.valueHeight / 2;\r\n\r\n\t\t\tlet property: \"x\" | \"y\";\r\n\t\t\tlet nodeHeight: number;\r\n\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\tproperty = \"y\";\r\n\t\t\t\tnodeHeight = node.pixelHeight;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tproperty = \"x\";\r\n\t\t\t\tnodeHeight = node.pixelWidth;\r\n\t\t\t}\r\n\r\n\t\t\tnode.animate({ property: property, to: nextCoordinate[level] || levelCoordinate }, this.interpolationDuration, this.interpolationEasing);\r\n\t\t\tnextCoordinate[level] = (nextCoordinate[level] || levelCoordinate) + nodeHeight + this.nodePadding;\r\n\r\n\t\t\tnode.invalidateLinks();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Sankey diagram\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new data item.\r\n\t *\r\n\t * @return Data item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new SankeyDiagramDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * How to align nodes. In case layout is vertical, top means left and bottom means right\r\n\t *\r\n\t * @param value Node sorting\r\n\t */\r\n\tpublic set nodeAlign(value: \"top\" | \"middle\" | \"bottom\") {\r\n\t\tthis.setPropertyValue(\"nodeAlign\", value);\r\n\t\tthis.changeSorting();\r\n\t}\r\n\r\n\t/**\r\n\t * @returns Returns nodeAlign value\r\n\t */\r\n\tpublic get nodeAlign(): \"top\" | \"middle\" | \"bottom\" {\r\n\t\treturn this.getPropertyValue(\"nodeAlign\");\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation of the chart: \"horizontal\" or \"vertical\";\r\n\t *\r\n\t * @param value Orientation\r\n\t */\r\n\tpublic set orientation(value: Orientation) {\r\n\t\tthis.setPropertyValue(\"orientation\", value, true);\r\n\t\tlet nameLabel = this.nodes.template.nameLabel;\r\n\r\n\t\tif (value == \"vertical\") {\r\n\t\t\tthis.nodes.template.width = undefined;\r\n\t\t\tnameLabel.label.horizontalCenter = \"middle\";\r\n\t\t\tnameLabel.locationX = 0.5;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.nodes.template.height = undefined;\r\n\t\t\tnameLabel.label.horizontalCenter = \"left\";\r\n\t\t\tnameLabel.locationX = 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Orientation\r\n\t */\r\n\tpublic get orientation(): Orientation {\r\n\t\treturn this.getPropertyValue(\"orientation\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createNode(): this[\"_node\"] {\r\n\t\tlet node = new SankeyNode();\r\n\t\tthis._disposers.push(node);\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createLink(): this[\"_link\"] {\r\n\t\tlet link = new SankeyLink();\r\n\t\tthis._disposers.push(link);\r\n\t\treturn link;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get valueHeight(): number {\r\n\t\treturn this._valueHeight;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic set valueHeight(value: number) {\r\n\t\tif (value != this._valueHeight) {\r\n\t\t\tthis._valueHeight = value;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tdisposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tthis._sorted = this.nodes.iterator();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"SankeyDiagram\"] = SankeyDiagram;\r\n","/**\r\n * ChordNode module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagramNode, IFlowDiagramNodeAdapters, IFlowDiagramNodeEvents, IFlowDiagramNodeProperties } from \"./FlowDiagramNode\";\r\nimport { ChordDiagram, ChordDiagramDataItem } from \"../types/ChordDiagram\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { AxisLabelCircular } from \"../axes/AxisLabelCircular\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ChordNode]].\r\n */\r\nexport interface IChordNodeProperties extends IFlowDiagramNodeProperties { }\r\n\r\n/**\r\n * Defines events for [[ChordNode]].\r\n */\r\nexport interface IChordNodeEvents extends IFlowDiagramNodeEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ChordNode]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IChordNodeAdapters extends IFlowDiagramNodeAdapters, IChordNodeProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a node in a Chord Diagram.\r\n *\r\n * A Chord node is a block with a value, which represents its size on the\r\n * diagram.\r\n *\r\n * Nodes are connected via [[ChordLink]] elements.\r\n *\r\n * @see {@link IChordNodeEvents} for a list of available events\r\n * @see {@link IChordNodeAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class ChordNode extends FlowDiagramNode {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IChordNodeProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IChordNodeAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IChordNodeEvents;\r\n\r\n\t/**\r\n\t * A list of data items of the items coming in from another node, one level\r\n\t * up.\r\n\t *\r\n\t * These are what ingoing links are build out of.\r\n\t */\r\n\tprotected _incomingDataItems: List<ChordDiagramDataItem>;\r\n\r\n\t/**\r\n\t * A list of data items of the items going out of the node.\r\n\t *\r\n\t * These are what outgoing links are build out of.\r\n\t */\r\n\tprotected _outgoingDataItems: List<ChordDiagramDataItem>;\r\n\r\n\t/**\r\n\t * Sorted list of incoming items.\r\n\t */\r\n\tprotected _incomingSorted: $iter.Iterator<ChordDiagramDataItem>;\r\n\r\n\t/**\r\n\t * Sorted list of outgoing items.\r\n\t */\r\n\tprotected _outgoingSorted: $iter.Iterator<ChordDiagramDataItem>;\r\n\r\n\t/**\r\n\t * A chart instance this node is added to.\r\n\t */\r\n\tpublic chart: ChordDiagram;\r\n\r\n\r\n\t/**\r\n\t * Defines the type of the [[ChordDiagramDataItem]] used in the class.\r\n\t */\r\n\tpublic _dataItem: ChordDiagramDataItem;\r\n\r\n\r\n\t/**\r\n\t * Slice sprite of a node\r\n\t */\r\n\tpublic slice: Slice;\r\n\r\n\t/**\r\n\t * A label element which shows node's name.\r\n\t */\r\n\tpublic label: AxisLabelCircular;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic nextAngle: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic trueStartAngle: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ChordNode\";\r\n\r\n\t\tlet label = this.createChild(AxisLabelCircular);\r\n\t\tlabel.location = 0.5;\r\n\t\tlabel.radius = 5;\r\n\t\tlabel.text = \"{name}\";\r\n\t\tlabel.zIndex = 1;\r\n\t\tlabel.shouldClone = false;\r\n\t\tthis.label = label;\r\n\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.events.on(\"positionchanged\", this.updateRotation, this, false);\r\n\r\n\t\tthis.isMeasured = false;\r\n\t\tthis.slice = this.createChild(Slice);\r\n\t\tthis.slice.isMeasured = false;\r\n\r\n\t\tlet hiddenState = this.hiddenState;\r\n\t\thiddenState.properties.fill = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n\t\thiddenState.properties.opacity = 0.5;\r\n\t\thiddenState.properties.visible = true;\r\n\r\n\t\tthis.setStateOnChildren = false;\r\n\r\n\t\tthis.slice.hiddenState.properties.visible = true;\r\n\r\n\t\tthis.adapter.add(\"tooltipX\", (tooltipX, target)=>{\r\n\t\t return target.slice.ix * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n\t\t})\r\n\r\n\t\tthis.adapter.add(\"tooltipY\", (tooltipY, target)=>{\r\n\t\t return target.slice.iy * (target.slice.radius - (target.slice.radius - target.slice.pixelInnerRadius) / 2);\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Invalidates all links, attached to this node.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateLinks(): void {\r\n\t\tsuper.invalidateLinks();\r\n\r\n\t\tlet label = this.label;\r\n\t\tlet slice = this.slice;\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart && slice) {\r\n\r\n\t\t\tlet sum = this.total;\r\n\t\t\tlet arc = slice.arc;\r\n\t\t\tlet sliceStartAngle = slice.startAngle;\r\n\r\n\t\t\tthis.children.each((child) => {\r\n\t\t\t\tif (child instanceof Bullet) {\r\n\t\t\t\t\tlet locationX = child.locationX;\r\n\t\t\t\t\tif (!$type.isNumber(locationX)) {\r\n\t\t\t\t\t\tlocationX = 0.5;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet locationY = child.locationY;\r\n\t\t\t\t\tif (!$type.isNumber(locationY)) {\r\n\t\t\t\t\t\tlocationY = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet childAngle = sliceStartAngle + arc * locationX;\r\n\t\t\t\t\tlet childRadius = locationY * slice.radius;\r\n\r\n\t\t\t\t\tchild.x = childRadius * $math.cos(childAngle);\r\n\t\t\t\t\tchild.y = childRadius * $math.sin(childAngle);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\r\n\t\t\tlet labelAngle = sliceStartAngle + arc * label.location;\r\n\t\t\tlet startAngle = sliceStartAngle + (1 - sum / this.adjustedTotal) * arc * 0.5; // if value of a node is > then sum of the links, add to center link\r\n\r\n\t\t\tif ($type.isNaN(startAngle)) {\r\n\t\t\t\tstartAngle = sliceStartAngle;\r\n\t\t\t}\r\n\r\n\t\t\tlabel.fixPosition(labelAngle, slice.radius);\r\n\r\n\t\t\tthis.nextAngle = startAngle;\r\n\r\n\t\t\tif (this._outgoingSorted) {\r\n\r\n\t\t\t\t$iter.each(this._outgoingSorted, (dataItem) => {\r\n\t\t\t\t\tlet link = dataItem.link;\r\n\t\t\t\t\tlink.parent = this.chart.linksContainer;\r\n\t\t\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\r\n\t\t\t\t\tif ($type.isNumber(value)) {\r\n\r\n\t\t\t\t\t\tif (chart.nonRibbon) {\r\n\t\t\t\t\t\t\tlet percentWidth = link.percentWidth;\r\n\t\t\t\t\t\t\tif (!$type.isNumber(percentWidth)) {\r\n\t\t\t\t\t\t\t\tpercentWidth = 5;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tpercentWidth = percentWidth / 100;\r\n\r\n\t\t\t\t\t\t\tlink.startAngle = sliceStartAngle + arc / 2 - arc / 2 * percentWidth;\r\n\t\t\t\t\t\t\tlink.arc = arc * percentWidth;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlink.arc = value * chart.valueAngle;\r\n\t\t\t\t\t\t\tlink.startAngle = this.nextAngle;\r\n\t\t\t\t\t\t\tthis.nextAngle += link.arc;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!dataItem.toNode) {\r\n\t\t\t\t\t\t\tlink.endAngle = link.startAngle;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlink.radius = slice.pixelInnerRadius;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//link.validate();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this._incomingSorted) {\r\n\t\t\t\t$iter.each(this._incomingSorted, (dataItem) => {\r\n\t\t\t\t\tlet link = dataItem.link;\r\n\r\n\t\t\t\t\tlink.radius = slice.pixelInnerRadius;\r\n\r\n\t\t\t\t\tif (chart.nonRibbon) {\r\n\t\t\t\t\t\tlet percentWidth = link.percentWidth;\r\n\t\t\t\t\t\tif (!$type.isNumber(percentWidth)) {\r\n\t\t\t\t\t\t\tpercentWidth = 5;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpercentWidth = percentWidth / 100;\r\n\r\n\t\t\t\t\t\tlink.endAngle = sliceStartAngle + arc / 2 - arc / 2 * percentWidth;\r\n\t\t\t\t\t\tlink.arc = arc * percentWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlink.endAngle = this.nextAngle;\r\n\t\t\t\t\t\tlet value = dataItem.getWorkingValue(\"value\");\r\n\t\t\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\t\t\tlink.arc = value * chart.valueAngle; // yes, this is needed\r\n\t\t\t\t\t\t\tthis.nextAngle += link.arc;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!dataItem.fromNode) {\r\n\t\t\t\t\t\tlink.startAngle = link.endAngle;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//link.validate();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * updates slice start angle so that when we drag a node it would face the center\r\n\t */\r\n\tprotected updateRotation() {\r\n\t\tlet slice = this.slice;\r\n\t\tlet mAngle = this.trueStartAngle + slice.arc / 2;\r\n\t\tlet radius = slice.radius;\r\n\r\n\t\tlet tx = radius * $math.cos(mAngle);\r\n\t\tlet ty = radius * $math.sin(mAngle);\r\n\r\n\t\tlet angle = $math.getAngle({ x: tx + this.pixelX, y: ty + this.pixelY });\r\n\r\n\t\tslice.startAngle = this.trueStartAngle + (angle - mAngle);\r\n\r\n\t\tthis.dx = - this.pixelX;\r\n\t\tthis.dy = - this.pixelY;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies properties and labels from another [[ChordNode]].\r\n\t *\r\n\t * @param source Source node\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.label.copyFrom(source.label);\r\n\t\tthis.slice.copyFrom(source.slice);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordNode\"] = ChordNode;\r\n","/**\r\n * Functionality for drawing quadratic curves.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Line, ILineProperties, ILineAdapters, ILineEvents } from \"./Line\";\r\nimport { IPoint, IOrientationPoint } from \"../defs/IPoint\";\r\nimport { color } from \"../utils/Color\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available properties for [[QuadraticCurve]].\r\n */\r\nexport interface IQuadraticCurveProperties extends ILineProperties {\r\n\t/**\r\n\t * X coordinate of control point.\r\n\t */\r\n\tcpx?: number;\r\n\r\n\t/**\r\n\t * Y coordinate of control point.\r\n\t */\r\n\tcpy?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[QuadraticCurve]].\r\n */\r\nexport interface IQuadraticCurveEvents extends ILineEvents { }\r\n\r\n/**\r\n * Defines adapters for [[QuadraticCurve]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IQuadraticCurveAdapters extends ILineAdapters, IQuadraticCurveProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a waved line.\r\n *\r\n * @see {@link IQuadraticCurveEvents} for a list of available events\r\n * @see {@link IQuadraticCurveAdapters} for a list of available Adapters\r\n */\r\nexport class QuadraticCurve extends Line {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IQuadraticCurveProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IQuadraticCurveAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IQuadraticCurveEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"QuadraticCurve\";\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\t\tthis.pixelPerfect = false;\r\n\r\n\t\tthis.fill = color();\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the waved line.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\t//super.draw();\r\n\t\tif($type.isNumber(this.x1 + this.x2 + this.y1 + this.y2 + this.cpx + this.cpy )){\r\n\r\n\t\t\tlet p1: IPoint = { x: this.x1, y: this.y1 };\r\n\t\t\tlet p2: IPoint = { x: this.x2, y: this.y2 };\r\n\t\t\tlet cp: IPoint = { x: this.cpx, y: this.cpy };\r\n\r\n\t\t\tlet d: string = $path.moveTo(p1) + $path.quadraticCurveTo(p2, cp);\r\n\r\n\t\t\tthis.path = d;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * X coordinate of control point.\r\n\t *\r\n\t * @param value X\r\n\t */\r\n\tpublic set cpx(value: number) {\r\n\t\tthis.setPropertyValue(\"cpx\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return X\r\n\t */\r\n\tpublic get cpx(): number {\r\n\t\treturn this.getPropertyValue(\"cpx\");\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate of control point.\r\n\t *\r\n\t * @param value Y\r\n\t */\r\n\tpublic set cpy(value: number) {\r\n\t\tthis.setPropertyValue(\"cpy\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y\r\n\t */\r\n\tpublic get cpy(): number {\r\n\t\treturn this.getPropertyValue(\"cpy\");\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position along the line (0-1) into pixel coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinates\r\n\t */\r\n\tpublic positionToPoint(position: number): IOrientationPoint {\r\n\t\tlet p1 = {x:this.x1, y:this.y1};\r\n\t\tlet cp = {x:this.cpx, y:this.cpy};\r\n\t\tlet p2 = {x:this.x2, y:this.y2};\r\n\r\n\t\tlet point1 = $math.getPointOnQuadraticCurve(p1, p2, cp, position);\r\n\t\tlet point2 = $math.getPointOnQuadraticCurve(p1, p2, cp, position + 0.001);\r\n\r\n\t\treturn {x:point1.x, y:point1.y, angle:$math.getAngle(point1, point2)};\r\n\t}\r\n}\r\n","/**\r\n * ChordLink module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ChordDiagramDataItem } from \"../types/ChordDiagram\";\r\nimport { FlowDiagramLink, IFlowDiagramLinkAdapters, IFlowDiagramLinkEvents, IFlowDiagramLinkProperties } from \"./FlowDiagramLink\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { QuadraticCurve } from \"../../core/elements/QuadraticCurve\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ChordLink]].\r\n */\r\nexport interface IChordLinkProperties extends IFlowDiagramLinkProperties {\r\n\r\n\t/**\r\n\t * [radius description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tradius?: number;\r\n\r\n\r\n\t/**\r\n\t * [arc description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tarc?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[ChordLink]].\r\n */\r\nexport interface IChordLinkEvents extends IFlowDiagramLinkEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ChordLink]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IChordLinkAdapters extends IFlowDiagramLinkAdapters, IChordLinkProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Chord Diagram.\r\n *\r\n * @see {@link IChordLinkEvents} for a list of available events\r\n * @see {@link IChordLinkAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class ChordLink extends FlowDiagramLink {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IChordLinkProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IChordLinkAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IChordLinkEvents;\r\n\r\n\t/**\r\n\t * Defines a type of data item used by this class.\r\n\t */\r\n\tpublic _dataItem: ChordDiagramDataItem;\r\n\r\n\t/**\r\n\t * Spline which goes through the middle of a link, used to calculate bullet and tooltip positions, invisible by default\r\n */\r\n\tpublic middleLine: QuadraticCurve;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ChordLink\";\r\n\r\n\t\tthis.middleLine = this.createChild(QuadraticCurve);\r\n\t\tthis.middleLine.shouldClone = false;\r\n\t\tthis.middleLine.strokeOpacity = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates (redraws) the link.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\r\n\t\tif (!this.isTemplate) {\r\n\t\t\tlet startAngle = this.startAngle;\r\n\t\t\tlet endAngle = this.endAngle;\r\n\r\n\t\t\tlet arc = this.arc;\r\n\t\t\tlet radius = this.radius;\r\n\r\n\t\t\tlet fromNode = this.dataItem.fromNode;\r\n\t\t\tlet toNode = this.dataItem.toNode;\r\n\r\n\t\t\tlet fromX = 0;\r\n\t\t\tlet fromY = 0;\r\n\r\n\t\t\tif (fromNode) {\r\n\t\t\t\tfromX = fromNode.pixelX + fromNode.dx;\r\n\t\t\t\tfromY = fromNode.pixelY + fromNode.dy;\r\n\t\t\t}\r\n\r\n\t\t\tlet toX = 0;\r\n\t\t\tlet toY = 0;\r\n\r\n\t\t\tif (toNode) {\r\n\t\t\t\ttoX = toNode.pixelX + toNode.dx;\r\n\t\t\t\ttoY = toNode.pixelY + toNode.dy;\r\n\t\t\t}\r\n\r\n\t\t\tif (radius > 0) {\r\n\t\t\t\tlet x1 = radius * $math.cos(startAngle) + fromX;\r\n\t\t\t\tlet y1 = radius * $math.sin(startAngle) + fromY;\r\n\t\t\t\tlet x2 = radius * $math.cos(endAngle) + toX;\r\n\t\t\t\tlet y2 = radius * $math.sin(endAngle) + toY;\r\n\r\n\t\t\t\t//let cpAngle = startAngle + arc + (endAngle - startAngle - arc) / 2;\r\n\t\t\t\t//let arcWidth = $math.getDistance({x:x1, y:y1}, {x:x4, y:y4});\r\n\r\n\t\t\t\t//let cpx = (arcWidth) * $math.cos(cpAngle);\r\n\t\t\t\t//let cpy = (arcWidth) * $math.sin(cpAngle);\r\n\r\n\t\t\t\tlet cp = { x: 0, y: 0 };\r\n\t\t\t\tlet path = $path.moveTo({ x: x1, y: y1 });\r\n\r\n\t\t\t\tpath += $path.arcTo(startAngle, arc, radius);\r\n\t\t\t\tpath += $path.quadraticCurveTo({ x: x2, y: y2 }, cp);\r\n\t\t\t\tpath += $path.arcTo(endAngle, arc, radius);\r\n\t\t\t\tpath += $path.quadraticCurveTo({ x: x1, y: y1 }, cp);\r\n\r\n\t\t\t\tif (arc > 0) {\r\n\t\t\t\t\tthis.link.path = path;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.link.path = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.maskBullets) {\r\n\t\t\t\t\tthis.bulletsMask.path = path;\r\n\t\t\t\t\tthis.bulletsContainer.mask = this.bulletsMask;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet mAngle1 = startAngle + arc / 2;\r\n\t\t\t\tlet mAngle2 = endAngle + arc / 2;\r\n\r\n\t\t\t\tlet middleLine = this.middleLine;\r\n\r\n\t\t\t\tmiddleLine.x1 = radius * $math.cos(mAngle1) + fromX;\r\n\t\t\t\tmiddleLine.y1 = radius * $math.sin(mAngle1) + fromY;\r\n\t\t\t\tmiddleLine.x2 = radius * $math.cos(mAngle2) + toX;\r\n\t\t\t\tmiddleLine.y2 = radius * $math.sin(mAngle2) + toY;\r\n\r\n\t\t\t\tmiddleLine.cpx = 0;\r\n\t\t\t\tmiddleLine.cpy = 0;\r\n\r\n\t\t\t\tmiddleLine.stroke = this.fill;\r\n\r\n\t\t\t\tthis.positionBullets();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * [radius description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value End Y\r\n\t */\r\n\tpublic set radius(value: number) {\r\n\t\tthis.setPropertyValue(\"radius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End Y\r\n\t */\r\n\tpublic get radius(): number {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * [arc description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set arc(value: number) {\r\n\t\tthis.setPropertyValue(\"arc\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get arc(): number {\r\n\t\treturn this.getPropertyValue(\"arc\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordLink\"] = ChordLink;\r\n","/**\r\n * Chord diagram module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { FlowDiagram, FlowDiagramDataItem, IFlowDiagramAdapters, IFlowDiagramDataFields, IFlowDiagramEvents, IFlowDiagramProperties } from \"./FlowDiagram\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport { DictionaryTemplate } from \"../../core/utils/Dictionary\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { ChordNode } from \"../elements/ChordNode\";\r\nimport { ChordLink } from \"../elements/ChordLink\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo rearange notes after dragged\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[ChordDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ChordDiagramDataItem extends FlowDiagramDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: ChordDiagram;\r\n\r\n\t/**\r\n\t * An a link element, connecting two nodes.\r\n\t */\r\n\tpublic _link: ChordLink;\r\n\r\n\t/**\r\n\t * An origin node.\r\n\t */\r\n\tpublic fromNode: ChordNode;\r\n\r\n\t/**\r\n\t * A destination node.\r\n\t */\r\n\tpublic toNode: ChordNode;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ChordDiagramDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[ChordDiagram]].\r\n */\r\nexport interface IChordDiagramDataFields extends IFlowDiagramDataFields {\r\n\r\n\t/**\r\n\t * Name of the source node.\r\n\t */\r\n\tfromName?: string;\r\n\r\n\t/**\r\n\t * Name of the target node.\r\n\t */\r\n\ttoName?: string;\r\n\r\n\t/**\r\n\t * Value of the link between two nodes.\r\n\t */\r\n\tvalue?: string;\r\n\r\n\t/**\r\n\t * Color of a from node\r\n\t */\r\n\tcolor?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[ChordDiagram]]\r\n */\r\nexport interface IChordDiagramProperties extends IFlowDiagramProperties {\r\n\t/**\r\n\t * Radius of the Chord. Absolute or relative.\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n\t/**\r\n\t * Inner radius of the Chord nodes. Absolute or relative. Negative value means that the inner radius will be calculated from the radius, not from the center.\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * An angle radar face starts on. (degrees)\r\n\t *\r\n\t * @default -90\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * An angle radar face ends on. (degrees)\r\n\t *\r\n\t * @default 270\r\n\t */\r\n\tendAngle?: number;\r\n\r\n\r\n\t/**\r\n\t * If you set this to true, all the lines will be of the same width.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tnonRibbon?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[ChordDiagram]].\r\n */\r\nexport interface IChordDiagramEvents extends IFlowDiagramEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ChordDiagram]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IChordDiagramAdapters extends IFlowDiagramAdapters, IChordDiagramProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Chord Diagram chart.\r\n *\r\n * @see {@link IChordDiagramEvents} for a list of available Events\r\n * @see {@link IChordDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/chord-diagram/} for documentation\r\n * @important\r\n */\r\nexport class ChordDiagram extends FlowDiagram {\r\n\r\n\t/**\r\n\t * Defines a type for the DataItem.\r\n\t */\r\n\tpublic _dataItem: ChordDiagramDataItem;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IChordDiagramDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IChordDiagramProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IChordDiagramAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IChordDiagramEvents;\r\n\r\n\t/**\r\n\t * A list of chart's Chord nodes.\r\n\t *\r\n\t * @param {DictionaryTemplate<string, ChordNode>}\r\n\t */\r\n\tpublic nodes: DictionaryTemplate<string, ChordNode>;\r\n\r\n\t/**\r\n\t * An a link element, connecting two nodes.\r\n\t */\r\n\tpublic _link: ChordLink;\r\n\r\n\t/**\r\n\t * Sorted nodes iterator.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tprotected _sorted: $iter.Iterator<[string, ChordNode]>;\r\n\r\n\t/**\r\n\t * [valueAngle description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic valueAngle: number = 0;\r\n\r\n\t/**\r\n\t * A container for chord elemens.\r\n\t */\r\n\tpublic chordContainer:Container;\r\n\r\n\t/**\r\n\t */\r\n\tpublic _node:ChordNode;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"ChordDiagram\";\r\n\r\n\t\tthis.startAngle = -90;\r\n\t\tthis.endAngle = 270;\r\n\r\n\t\tthis.radius = percent(80);\r\n\r\n\t\tthis.innerRadius = - 15;\r\n\r\n\t\tthis.nodePadding = 5;\r\n\r\n\t\tlet chordContainer = this.chartContainer.createChild(Container);\r\n\t\tchordContainer.align = \"center\";\r\n\t\tchordContainer.valign = \"middle\";\r\n\t\tchordContainer.shouldClone = false;\r\n\t\tchordContainer.layout = \"absolute\";\r\n\t\tthis.chordContainer = chordContainer;\r\n\r\n\t\tthis.nodesContainer.parent = chordContainer;\r\n\t\tthis.linksContainer.parent = chordContainer;\r\n\r\n\t\tthis.chartContainer.events.on(\"maxsizechanged\", this.invalidate, this, false);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Redraws the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tlet chartContainer = this.chartContainer;\r\n\r\n\t\tlet endAngle = this.endAngle;\r\n\t\tlet startAngle = this.startAngle + this.nodePadding / 2;\r\n\r\n\t\tlet rect = $math.getArcRect(this.startAngle, this.endAngle, 1);\r\n\t\tlet innerRect: IRectangle = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n\t\trect = $math.getCommonRectangle([rect, innerRect]);\r\n\r\n\t\tlet maxRadius = Math.min(chartContainer.innerWidth / rect.width, chartContainer.innerHeight / rect.height);\r\n\r\n\t\tif(!$type.isNumber(maxRadius)){\r\n\t\t\tmaxRadius = 0;\r\n\t\t}\r\n\r\n\t\tlet radius = $utils.relativeRadiusToValue(this.radius, maxRadius);\r\n\t\tlet pixelInnerRadius = $utils.relativeRadiusToValue(this.innerRadius, radius, true);\r\n\r\n\t\tlet total = this.dataItem.values.value.sum;\r\n\t\tlet count = 0;\r\n\r\n\t\tlet newTotal = 0;\r\n\t\t$iter.each(this._sorted, (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\t\t\tthis.getNodeValue(node);\r\n\t\t\tcount++;\r\n\t\t\tlet value = node.total;\r\n\t\t\tif(node.total / total < this.minNodeSize){\r\n\t\t\t\tvalue = total * this.minNodeSize;\r\n\t\t\t}\r\n\t\t\tnewTotal += value;\r\n\t\t});\r\n\r\n\t\tthis.valueAngle = (endAngle - this.startAngle - this.nodePadding * count) / newTotal;\r\n\r\n\t\t$iter.each(this._sorted, (strNode) => {\r\n\t\t\tlet node = strNode[1];\r\n\t\t\tlet slice = node.slice;\r\n\r\n\t\t\tslice.radius = radius;\r\n\t\t\tslice.innerRadius = pixelInnerRadius;\r\n\r\n\t\t\tlet value = node.total;\r\n\r\n\t\t\tif(node.total / total < this.minNodeSize){\r\n\t\t\t\tvalue = total * this.minNodeSize;\r\n\t\t\t}\r\n\r\n\t\t\tnode.adjustedTotal = value;\r\n\r\n\t\t\tlet arc: number;\r\n\t\t\tif (this.nonRibbon) {\r\n\t\t\t\tarc = (endAngle - this.startAngle) / count - this.nodePadding;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tarc = this.valueAngle * value;\r\n\t\t\t}\r\n\r\n\t\t\tslice.arc = arc;\r\n\t\t\tslice.startAngle = startAngle;\r\n\t\t\tnode.trueStartAngle = startAngle;\r\n\t\t\tnode.parent = this.nodesContainer;\r\n\t\t\tnode.validate(); // otherwise flickers - nodes are already created, but not yet positioned etc.\r\n\t\t\tstartAngle += arc + this.nodePadding;\r\n\t\t})\r\n\r\n\t\tthis.chordContainer.definedBBox = { x: radius * rect.x, y: radius * rect.y, width: radius * rect.width, height: radius * rect.height };\r\n\t\tthis.chordContainer.invalidateLayout();\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Chord diagram\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new data item.\r\n\t *\r\n\t * @return Data item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new ChordDiagramDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the Radar face. (degrees)\r\n\t *\r\n\t * Normally, a circular radar face begins (the radial axis is drawn) at the\r\n\t * top center. (at -90 degrees)\r\n\t *\r\n\t * You can use `startAngle` to change this setting.\r\n\t *\r\n\t * E.g. setting this to 0 will make the radial axis start horizontally to\r\n\t * the right, as opposed to vertical.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set those to lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * @default -90\r\n\t * @param value Start angle (degrees)\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle (degrees)\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the Radar face. (degrees)\r\n\t *\r\n\t * Normally, a circular radar face ends (the radial axis is drawn) exactly\r\n\t * where it has started, forming a full 360 circle. (at 270 degrees)\r\n\t *\r\n\t * You can use `endAngle` to end the circle somewhere else.\r\n\t *\r\n\t * E.g. setting this to 180 will make the radar face end at horizontal line\r\n\t * to the left off the center.\r\n\t *\r\n\t * For a perfect circle the absolute sum of `startAngle` and `endAngle`\r\n\t * needs to be 360.\r\n\t *\r\n\t * However, it's **not** necessary to do so. You can set those to lesser\r\n\t * numbers, to create semi-circles.\r\n\t *\r\n\t * E.g. `startAngle = -90` with `endAngle = 0` will create a radar face that\r\n\t * looks like a quarter of a circle.\r\n\t *\r\n\t * @default -90\r\n\t * @param value End angle (degrees)\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"endAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle (degrees)\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the Radar face.\r\n\t *\r\n\t * This can either be in absolute pixel value, or relative [[Percent]].\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the Chord nodes.\r\n\t *\r\n\t * This can either be in absolute pixel value, or relative [[Percent]].\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * If you set this to true, all the lines will be of the same width. This is done by making middleLine of a ChordLink visible.\r\n\t *\r\n\t * @param value\r\n\t */\r\n\tpublic set nonRibbon(value: boolean) {\r\n\t\tthis.setPropertyValue(\"nonRibbon\", value, true);\r\n\t\tthis.links.template.middleLine.strokeOpacity = 1;\r\n\t\tthis.links.template.link.fillOpacity = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Non-ribbon\r\n\t */\r\n\tpublic get nonRibbon(): boolean {\r\n\t\treturn this.getPropertyValue(\"nonRibbon\");\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createNode():this[\"_node\"]{\r\n\t\tlet node = new ChordNode();\r\n\t\tthis._disposers.push(node);\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic createLink():this[\"_link\"]{\r\n\t\tlet link = new ChordLink();\r\n\t\tthis._disposers.push(link);\r\n\t\treturn link;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ChordDiagram\"] = ChordDiagram;\r\n","/**\r\n * Module that defines everything related to building Columns.\r\n * It is a container which has column element which is a RoundedRectangle.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport { IRectangle } from \"../../core/defs/IRectangle\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Column]].\r\n */\r\nexport interface IColumnProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[Column]].\r\n */\r\nexport interface IColumnEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Column]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IColumnAdapters extends IContainerAdapters, IColumnProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates Columns.\r\n *\r\n * @see {@link IColumnEvents} for a list of available events\r\n * @see {@link IColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class Column extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IColumnProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IColumnAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IColumnEvents;\r\n\r\n\t/**\r\n\t * column element\r\n\t */\r\n\tpublic column: RoundedRectangle;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic realWidth: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic realHeight: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic realX: number;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic realY: number;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Column\";\r\n\r\n\t\tthis.width = percent(80);\r\n\t\tthis.height = percent(80);\r\n\r\n\t\t//this.isMeasured = true; // for correct position of the tooltip\r\n\t\tthis.events.disableType(\"transformed\"); // not to bug parent\r\n\t\tthis.applyOnClones = true;\r\n\r\n\t\tthis.strokeOpacity = 1;\r\n\r\n\t\tthis.layout = \"none\";\r\n\r\n\t\tthis.createAssets();\r\n\r\n\t\t// otherwise users will have to set layout themselves if they'll want to align, scale etc children\r\n\t\tthis.events.on(\"childadded\", this.handleKidAdded, this, false);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleKidAdded() {\r\n\t\tif (this.layout == \"none\") {\r\n\t\t\tthis.layout = \"absolute\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createAssets() {\r\n\t\tthis.column = this.createChild(RoundedRectangle);\r\n\t\tthis.column.shouldClone = false;\r\n\t\tthis.column.isMeasured = false;\r\n\t\tthis.column.cornerRadius(0, 0, 0, 0);\r\n\t\tthis._disposers.push(this.column);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\t\tlet column = this.column;\r\n\t\tif (column) {\r\n\t\t\tcolumn.width = $math.min(this.pixelWidth, this.maxWidth);\r\n\t\t\tcolumn.height = $math.min(this.pixelHeight, this.maxHeight);\r\n\t\t\tif(column.invalid){\r\n\t\t\t\tcolumn.validate(); // important!\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Copies all parameters from another [[Column]].\r\n\t *\r\n\t * @param source Source Column\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (this.column) {\r\n\t\t\tthis.column.copyFrom(source.column);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\t\tif (this.column) {\r\n\t\t\treturn { x: 0, y: 0, width: this.column.measuredWidth, height: this.column.measuredHeight };\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn { x: 0, y: 0, width: $math.min(this.pixelWidth, this.maxWidth), height: $math.min(this.pixelHeight, this.maxHeight) };\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Column\"] = Column;\r\n","/**\r\n * Column series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYSeries, IXYSeriesDataFields, XYSeriesDataItem, IXYSeriesProperties, IXYSeriesAdapters, IXYSeriesEvents } from \"./XYSeries\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { SpriteState } from \"../../core/SpriteState\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { Column } from \"../elements/Column\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { LegendDataItem } from \"../../charts/Legend\";\r\nimport { IDataItemAdapters } from \"../../core/DataItem\";\r\n\r\n/**\r\n * Defines adapters for [[DataItem]]\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface IColumnSeriesDataItemAdapters extends IDataItemAdapters {\r\n\twidth: number | Percent;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[ColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ColumnSeriesDataItem extends XYSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IColumnSeriesDataItemAdapters;\r\n\r\n\t/**\r\n\t * A Column Element\r\n\t */\r\n\tpublic _column: Column;\r\n\r\n\t/**\r\n\t * Indicates if this data items close value is lower than its open value.\r\n\t */\r\n\tpublic droppedFromOpen: boolean;\r\n\r\n\t/**\r\n\t * Indicates if this items value is lower than previous data item's value.\r\n\t */\r\n\tpublic droppedFromPrevious: boolean;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for\r\n\t */\r\n\tpublic _component!: ColumnSeries;\r\n\r\n\t/**\r\n\t * A dictionary storing axes ranges columns by axis uid\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tprotected _rangesColumns: Dictionary<string, this[\"_column\"]>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColumnSeriesDataItem\";\r\n\r\n\t\tthis.locations[\"dateX\"] = 0.5;\r\n\t\tthis.locations[\"dateY\"] = 0.5;\r\n\r\n\t\tthis.locations[\"categoryX\"] = 0.5;\r\n\t\tthis.locations[\"categoryY\"] = 0.5;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A column used to draw a column for this data item.\r\n\t *\r\n\t * @param column\r\n\t */\r\n\tpublic set column(column: this[\"_column\"]) {\r\n\t\tthis.setColumn(column);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Column\r\n\t */\r\n\tpublic get column(): this[\"_column\"] {\r\n\t\treturn this._column;\r\n\t}\r\n\r\n\tprotected setColumn(column: this[\"_column\"]) {\r\n\t\tif (this._column && column != this._column) {\r\n\t\t\t$array.remove(this.sprites, this._column);\r\n\t\t}\r\n\t\tthis._column = column;\r\n\r\n\t\tif (column) {\r\n\t\t\tlet prevDataItem: ColumnSeriesDataItem = <any>column.dataItem;\r\n\t\t\tif (prevDataItem && prevDataItem != this) {\r\n\t\t\t\tprevDataItem.column = undefined;\r\n\t\t\t}\r\n\t\t\tthis.addSprite(column);\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t// TODO investigate why component is undefined\r\n\t\t\t\t// https://codepen.io/team/amcharts/pen/dac4be245d658233a6d7e5597df2208b?editors=0010\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.columns.removeValue(column);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic set width(value: number | Percent) {\r\n\t\tif (this.properties.width != value) {\r\n\t\t\tthis.properties.width = value;\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.validateDataElement(this);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get width(): number | Percent {\r\n\t\tlet width = this.properties.width;\r\n\t\tif (this._adapterO) {\r\n\t\t\twidth = this._adapterO.apply(\"width\", width);\r\n\t\t}\r\n\t\treturn width;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * A dictionary storing axes ranges columns by axis uid\r\n\t */\r\n\tpublic get rangesColumns(): Dictionary<string, this[\"_column\"]> {\r\n\t\tif (!this._rangesColumns) {\r\n\t\t\tthis._rangesColumns = new Dictionary<string, this[\"_column\"]>();\r\n\t\t}\r\n\t\treturn this._rangesColumns;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYSeries]].\r\n */\r\nexport interface IColumnSeriesDataFields extends IXYSeriesDataFields {\r\n\twidth?: string;\r\n}\r\n\r\n/**\r\n * Defines properties for [[ColumnSeries]].\r\n */\r\nexport interface IColumnSeriesProperties extends IXYSeriesProperties {\r\n\r\n\t/**\r\n\t * Cluster this series columns?\r\n\t *\r\n\t * Setting to `false` will make columns overlap with other series.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tclustered?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[ColumnSeries]].\r\n */\r\nexport interface IColumnSeriesEvents extends IXYSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ColumnSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IColumnSeriesAdapters extends IXYSeriesAdapters, IColumnSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a column graph.\r\n *\r\n * @see {@link IColumnSeriesEvents} for a list of available Events\r\n * @see {@link IColumnSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class ColumnSeries extends XYSeries {\r\n\r\n\t/**\r\n\t * Type of column.\r\n\t */\r\n\tpublic _column: Column;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IColumnSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IColumnSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IColumnSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IColumnSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: ColumnSeriesDataItem;\r\n\r\n\t/**\r\n\t * A list of column elements.\r\n\t */\r\n\tprotected _columns: ListTemplate<this[\"_column\"]>;\r\n\r\n\t/**\r\n\t * Container to put column elements in.\r\n\t */\r\n\tprotected _columnsContainer: Container;\r\n\r\n\t/**\r\n\t * Start location within cell for columns.\r\n\t */\r\n\tprotected _startLocation: number = 0;\r\n\r\n\t/**\r\n\t * End location within cell for columns.\r\n\t */\r\n\tprotected _endLocation: number = 1;\r\n\r\n\t/**\r\n\t * A state to apply to a column when close value is lower than open value.\r\n\t */\r\n\tprotected _dropFromOpenState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\r\n\t/**\r\n\t * A state to apply to a column when its value is lower value of a previous\r\n\t * column.\r\n\t */\r\n\tprotected _dropFromPreviousState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\r\n\t/**\r\n\t * A state to apply to a column when close value is same or higher than open\r\n\t * value.\r\n\t */\r\n\tprotected _riseFromOpenState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\r\n\t/**\r\n\t * A state to apply to a column when its value is same or higher than value\r\n\t * of a previous column.\r\n\t */\r\n\tprotected _riseFromPreviousState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColumnSeries\";\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\r\n\t\tthis.strokeOpacity = 0;\r\n\t\tthis.fillOpacity = 1;\r\n\r\n\t\tthis.clustered = true;\r\n\r\n\t\tlet columnsContainer = this.mainContainer.createChild(Container);\r\n\t\tcolumnsContainer.shouldClone = false;\r\n\t\tcolumnsContainer.isMeasured = false;\r\n\t\tcolumnsContainer.layout = \"none\";\r\n\t\tthis._columnsContainer = columnsContainer;\r\n\r\n\t\tthis.columns.template.pixelPerfect = false;\r\n\r\n\t\tthis.tooltipColorSource = this.columns.template;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A container that columns are created in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get columnsContainer() {\r\n\t\treturn this._columnsContainer;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Column Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new ColumnSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\t//@todo Check if we can do better than use `instanceof`\r\n\t\t// find start/end locations based on clustered/stacked settings\r\n\t\t// go through chart series instead of base axis series, because axis series doesn't maintain order\r\n\r\n\t\tthis.group.node.removeAttribute(\"fill\");\r\n\r\n\t\tif (this.chart && this.xAxis && this.yAxis) {\r\n\t\t\tlet baseAxisSeries = this.chart.series;\r\n\t\t\tlet clusterCount: number = 0;\r\n\t\t\tlet index: number = 0;\r\n\r\n\t\t\tlet sortedByAxis: { series: XYSeries, axis: number }[] = [];\r\n\t\t\t$iter.each(baseAxisSeries.iterator(), (series) => {\r\n\t\t\t\tif (series instanceof ColumnSeries) {\r\n\t\t\t\t\tif (this.baseAxis == series.baseAxis) {\r\n\t\t\t\t\t\tlet index: number;\r\n\t\t\t\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\t\t\t\tindex = this.chart.yAxes.indexOf(series.yAxis);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tindex = this.chart.xAxes.indexOf(series.xAxis);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsortedByAxis.push({ series: series, axis: index })\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\r\n\t\t\tsortedByAxis.sort((a, b) => a.axis - b.axis);\r\n\t\t\tlet prevAxisIndex: number;\r\n\r\n\t\t\t$array.each(sortedByAxis, (sortedItem) => {\r\n\t\t\t\tlet series = sortedItem.series;\r\n\t\t\t\tif (series instanceof ColumnSeries) {\r\n\t\t\t\t\tif ((!series.stacked && series.clustered) || (prevAxisIndex != sortedItem.axis && series.clustered)) {\r\n\t\t\t\t\t\tclusterCount++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (series == this) {\r\n\t\t\t\t\t\tindex = clusterCount - 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tprevAxisIndex = sortedItem.axis;\r\n\t\t\t});\r\n\r\n\t\t\tif (!this.clustered) {\r\n\t\t\t\tindex = 0;\r\n\t\t\t\tclusterCount = 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet renderer = this.baseAxis.renderer;\r\n\r\n\t\t\tlet cellStartLocation: number = renderer.cellStartLocation;\r\n\t\t\tlet cellEndLocation: number = renderer.cellEndLocation;\r\n\r\n\t\t\tthis._startLocation = cellStartLocation + (index / clusterCount) * (cellEndLocation - cellStartLocation);\r\n\t\t\tthis._endLocation = cellStartLocation + (index + 1) / clusterCount * (cellEndLocation - cellStartLocation);\r\n\r\n\t\t\tlet xAxis = this.xAxis;\r\n\t\t\tlet yAxis = this.yAxis;\r\n\r\n\t\t\tif (xAxis instanceof CategoryAxis && yAxis instanceof ValueAxis) {\r\n\t\t\t\tif (xAxis.sortBySeries == this) {\r\n\t\t\t\t\tthis.sortCategoryAxis(xAxis, \"valueY\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (yAxis instanceof CategoryAxis && xAxis instanceof ValueAxis) {\r\n\t\t\t\tif (yAxis.sortBySeries == this) {\r\n\t\t\t\t\tthis.sortCategoryAxis(yAxis, \"valueX\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tfor (let i = 0; i < this.startIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tthis.disableUnusedColumns(dataItem);\r\n\t\t}\r\n\r\n\t\tfor (let i = this.dataItems.length - 1; i > this.endIndex; i--) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tthis.disableUnusedColumns(dataItem);\r\n\t\t}\r\n\r\n\t\tthis._propertiesChanged = false;\r\n\t}\r\n\r\n\tprotected sortCategoryAxis(axis: CategoryAxis, key: string) {\r\n\t\tthis.dataItems.values.sort((x, y) => {\r\n\t\t\treturn (<any>y).values[key].workingValue - (<any>x).values[key].workingValue;\r\n\t\t})\r\n\t\tlet i = 0;\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tdataItem._index = i;\r\n\t\t\ti++;\r\n\t\t})\r\n\r\n\t\taxis.dataItems.each((dataItem) => {\r\n\t\t\tlet axis = dataItem.component;\r\n\t\t\tlet currentPosition = axis.categoryToPosition(dataItem.category) - dataItem.deltaPosition;\r\n\r\n\t\t\tlet seriesDataItem = axis.getSeriesDataItemByCategory(dataItem.category, this);\r\n\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tlet index = this.dataItems.indexOf(<ColumnSeriesDataItem>seriesDataItem);\r\n\r\n\t\t\t\tdataItem._index = index;\r\n\r\n\t\t\t\tlet deltaPosition = $math.round((index + 0.5) / this.dataItems.length - currentPosition, 3);\r\n\r\n\t\t\t\tif (dataItem.deltaAnimation && !dataItem.deltaAnimation.isDisposed() && dataItem.deltaAnimation.animationOptions[0].to == deltaPosition) {\r\n\t\t\t\t\t// void\r\n\t\t\t\t}\r\n\t\t\t\telse if (deltaPosition != $math.round(dataItem.deltaPosition, 3)) {\r\n\t\t\t\t\tif (dataItem.deltaAnimation) {\r\n\t\t\t\t\t\tdataItem.deltaAnimation.stop();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.deltaAnimation = dataItem.animate({ property: \"deltaPosition\", from: -deltaPosition, to: 0 }, axis.interpolationDuration, axis.interpolationEasing);\r\n\t\t\t\t\tthis._disposers.push(dataItem.deltaAnimation);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\taxis.dataItems.values.sort((x, y) => {\r\n\t\t\treturn x.index - y.index;\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\t// important oder here, first real, then super. we need this to know size\r\n\t\tif (this.chart && this.xAxis && this.yAxis) {\r\n\t\t\tthis.validateDataElementReal(dataItem);\r\n\t\t\tsuper.validateDataElement(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative start location for the data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @return Location (0-1)\r\n\t */\r\n\tprotected getStartLocation(dataItem: this[\"_dataItem\"]): number {\r\n\t\tlet startLocation = this._startLocation;\r\n\r\n\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\tstartLocation += dataItem.locations[this.xOpenField] - 0.5;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstartLocation += dataItem.locations[this.yOpenField] - 0.5;\r\n\t\t}\r\n\t\treturn startLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\t/*\r\n public handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t if (this.simplifiedProcessing) {\r\n\t\t this.validateDataElement(dataItem);\r\n\t }\r\n\t else {\r\n\t\t super.handleDataItemWorkingValueChange(dataItem, name);\r\n\t }\r\n }*/\r\n\r\n\t/**\r\n\t * Returns relative end location for the data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @return Location (0-1)\r\n\t */\r\n\tprotected getEndLocation(dataItem: this[\"_dataItem\"]): number {\r\n\t\tlet endLocation = this._endLocation;\r\n\r\n\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\tendLocation += dataItem.locations[this.xField] - 0.5;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tendLocation += dataItem.locations[this.yField] - 0.5;\r\n\t\t}\r\n\t\treturn endLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\t//\tif (dataItem.hasValue([this.xField, this.yField])) { // todo: this doesn't work with categories, think of a better way\r\n\t\tlet l: number;\r\n\t\tlet r: number;\r\n\t\tlet t: number;\r\n\t\tlet b: number;\r\n\r\n\t\tlet startLocation = this.getStartLocation(dataItem);\r\n\t\tlet endLocation = this.getEndLocation(dataItem);\r\n\r\n\t\tlet xField = this.xField;\r\n\t\tlet xOpenField = this.xOpenField;\r\n\t\tlet yField = this.yField;\r\n\t\tlet yOpenField = this.yOpenField;\r\n\r\n\t\tlet template: Sprite = this.columns.template;\r\n\r\n\t\tlet percentWidth: number = template.percentWidth;\r\n\t\tlet percentHeight: number = template.percentHeight;\r\n\r\n\t\tlet pixelWidth: number = template.pixelWidth;\r\n\t\tlet pixelHeight: number = template.pixelHeight;\r\n\r\n\t\tlet maxWidth: number = template.maxWidth;\r\n\t\tlet maxHeight: number = template.maxHeight;\r\n\r\n\t\tlet paddingLeft: number = template.pixelPaddingLeft;\r\n\t\tlet paddingRight: number = template.pixelPaddingRight;\r\n\t\tlet paddingTop: number = template.pixelPaddingTop;\r\n\t\tlet paddingBottom: number = template.pixelPaddingBottom;\r\n\r\n\t\tlet outOfBounds: boolean = false;\r\n\r\n\t\tlet diw = dataItem.width;\r\n\t\tif ($type.hasValue(diw)) {\r\n\t\t\tif ($type.isNumber(diw)) {\r\n\t\t\t\tpixelWidth = diw;\r\n\t\t\t}\r\n\t\t\tif (diw instanceof Percent) {\r\n\t\t\t\tpercentWidth = diw.value * 100;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// two category axes\r\n\t\tif ((this.xAxis instanceof CategoryAxis) && (this.yAxis instanceof CategoryAxis)) {\r\n\r\n\t\t\tif (!dataItem.hasValue(this._xValueFields) || !dataItem.hasValue(this._yValueFields)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstartLocation = 0;\r\n\t\t\tendLocation = 1;\r\n\t\t\tif (!$type.isNaN(percentWidth)) {\r\n\t\t\t\tlet offset: number = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n\t\t\t\tstartLocation += offset;\r\n\t\t\t\tendLocation -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tl = this.xAxis.getX(dataItem, xOpenField, startLocation);\r\n\t\t\tr = this.xAxis.getX(dataItem, xField, endLocation);\r\n\r\n\t\t\t// in case width is set in pixels\r\n\t\t\tif ($type.isNaN(percentWidth)) {\r\n\t\t\t\tlet offset: number = ((r - l) - pixelWidth) / 2;\r\n\t\t\t\tl += offset;\r\n\t\t\t\tr -= offset;\r\n\t\t\t}\r\n\r\n\t\t\t// in case max width is set in pixels\r\n\t\t\tif (!$type.isNaN(maxWidth) && maxWidth < Math.abs(r - l)) {\r\n\t\t\t\tlet offset: number = ((r - l) - maxWidth) / 2;\r\n\t\t\t\tl += offset;\r\n\t\t\t\tr -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tstartLocation = 0;\r\n\t\t\tendLocation = 1;\r\n\r\n\t\t\tif (!$type.isNaN(percentHeight)) {\r\n\t\t\t\tlet offset: number = $math.round((1 - percentHeight / 100) / 2, 5);\r\n\t\t\t\tstartLocation += offset;\r\n\t\t\t\tendLocation -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tt = this.yAxis.getY(dataItem, yOpenField, startLocation);\r\n\t\t\tb = this.yAxis.getY(dataItem, yField, endLocation);\r\n\r\n\t\t\t// in case width is set in pixels\r\n\t\t\tif ($type.isNaN(percentHeight)) {\r\n\t\t\t\tlet offset: number = ((b - t) - pixelHeight) / 2;\r\n\t\t\t\tb += offset;\r\n\t\t\t\tt -= offset;\r\n\t\t\t}\r\n\r\n\t\t\t// in case max width is set in pixels\r\n\t\t\tif (!$type.isNaN(maxHeight) && maxHeight < Math.abs(b - t)) {\r\n\t\t\t\tlet offset: number = ((b - t) - maxHeight) / 2;\r\n\t\t\t\tb += offset;\r\n\t\t\t\tt -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tr = this.fixHorizontalCoordinate(r);\r\n\t\t\tl = this.fixHorizontalCoordinate(l);\r\n\t\t\tt = this.fixVerticalCoordinate(t);\r\n\t\t\tb = this.fixVerticalCoordinate(b);\r\n\t\t}\r\n\t\telse if (this.baseAxis == this.xAxis) {\r\n\r\n\t\t\tif (!dataItem.hasValue(this._yValueFields)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// in case width is set in percent\r\n\t\t\tif (!$type.isNaN(percentWidth)) {\r\n\t\t\t\tlet offset: number = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n\t\t\t\tstartLocation += offset;\r\n\t\t\t\tendLocation -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tl = this.xAxis.getX(dataItem, xOpenField, startLocation);\r\n\t\t\tr = this.xAxis.getX(dataItem, xField, endLocation);\r\n\r\n\t\t\t// in case width is set in pixels\r\n\t\t\tif ($type.isNaN(percentWidth)) {\r\n\t\t\t\tlet offset: number = ((r - l) - pixelWidth) / 2;\r\n\t\t\t\tl += offset;\r\n\t\t\t\tr -= offset;\r\n\t\t\t}\r\n\r\n\t\t\t// in case width is set in pixels\r\n\t\t\tif (!$type.isNaN(maxWidth) && maxWidth < Math.abs(r - l)) {\r\n\t\t\t\tlet offset: number = ((r - l) - maxWidth) / 2;\r\n\t\t\t\tl += offset;\r\n\t\t\t\tr -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tlet bottomLocation = dataItem.locations[yOpenField];\r\n\t\t\tlet topLocation = dataItem.locations[yField];\r\n\t\t\t// otherwise gantt chart will start items in the middle of a cell\r\n\t\t\tif (this.yAxis instanceof ValueAxis) {\r\n\t\t\t\tif ((<any>this.dataFields)[this.yField] != (<any>this.dataFields)[this.yOpenField]) {\r\n\t\t\t\t\tbottomLocation = 0;\r\n\t\t\t\t\ttopLocation = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tb = this.yAxis.getY(dataItem, yOpenField, bottomLocation);\r\n\t\t\tt = this.yAxis.getY(dataItem, yField, topLocation);\r\n\r\n\t\t\t// used to save location for bullets, but it's not a good approach\r\n\t\t\t// dataItem.locations[xField] = startLocation + (endLocation - startLocation) / 2;\r\n\r\n\t\t\tlet axisLenght = Math.ceil(this.yAxis.axisLength);\r\n\r\n\t\t\tif ((t < 0 && b < 0) || (t > axisLenght && b > axisLenght)) {\r\n\t\t\t\toutOfBounds = true;\r\n\t\t\t}\r\n\r\n\t\t\tt = this.fixVerticalCoordinate(t);\r\n\t\t\tb = this.fixVerticalCoordinate(b);\r\n\r\n\t\t\tif (Math.abs(r - l) - paddingLeft - paddingRight == 0) {\r\n\t\t\t\toutOfBounds = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// horizontal bars\r\n\t\telse {\r\n\t\t\tif (!dataItem.hasValue(this._xValueFields)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$type.isNaN(percentHeight)) {\r\n\t\t\t\tlet offset: number = $math.round((endLocation - startLocation) * (1 - percentHeight / 100) / 2, 5);\r\n\t\t\t\tstartLocation += offset;\r\n\t\t\t\tendLocation -= offset;\r\n\t\t\t}\r\n\r\n\t\t\tt = this.yAxis.getY(dataItem, yOpenField, startLocation);\r\n\t\t\tb = this.yAxis.getY(dataItem, yField, endLocation);\r\n\r\n\t\t\t// in case height is set in pixels\r\n\t\t\tif ($type.isNaN(percentHeight)) {\r\n\t\t\t\tlet offset: number = ((b - t) - pixelHeight) / 2;\r\n\t\t\t\tb -= offset;\r\n\t\t\t\tt += offset;\r\n\t\t\t}\r\n\r\n\t\t\t// in case height is set in pixels\r\n\t\t\tif (!$type.isNaN(maxHeight) && maxHeight < Math.abs(b - t)) {\r\n\t\t\t\tlet offset: number = ((b - t) - maxHeight) / 2;\r\n\t\t\t\tb -= offset;\r\n\t\t\t\tt += offset;\r\n\t\t\t}\r\n\r\n\t\t\tlet rightLocation = dataItem.locations[xField];\r\n\t\t\tlet leftLocation = dataItem.locations[xOpenField];\r\n\r\n\t\t\t// otherwise gantt chart will start items in the middle of a cell\r\n\t\t\tif (this.xAxis instanceof ValueAxis) {\r\n\t\t\t\tif ((<any>this.dataFields)[this.xField] != (<any>this.dataFields)[this.xOpenField]) {\r\n\t\t\t\t\trightLocation = 0;\r\n\t\t\t\t\tleftLocation = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tr = this.xAxis.getX(dataItem, xField, rightLocation);\r\n\t\t\tl = this.xAxis.getX(dataItem, xOpenField, leftLocation);\r\n\t\t\t// used to save location for bullets, but it's not a good approach\r\n\t\t\t// dataItem.locations[yField] = startLocation + (endLocation - startLocation) / 2;\r\n\r\n\t\t\tlet axisLenght = Math.ceil(this.xAxis.axisLength);\r\n\r\n\t\t\tif ((r < 0 && l < 0) || (r > axisLenght && l > axisLenght)) {\r\n\t\t\t\toutOfBounds = true;\r\n\t\t\t}\r\n\r\n\t\t\tr = this.fixHorizontalCoordinate(r);\r\n\t\t\tl = this.fixHorizontalCoordinate(l);\r\n\r\n\t\t\tif (Math.abs(t - b) - paddingTop - paddingBottom == 0) {\r\n\t\t\t\toutOfBounds = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet w: number = Math.abs(r - l);\r\n\t\tlet h: number = Math.abs(b - t);\r\n\r\n\t\tlet x: number = Math.min(l, r);\r\n\t\tlet y: number = Math.min(t, b);\r\n\r\n\t\tif (!outOfBounds) {\r\n\t\t\tlet column: this[\"_column\"];\r\n\t\t\tif (!dataItem.column) {\r\n\t\t\t\tcolumn = this.columns.create();\r\n\t\t\t\t//$object.forceCopyProperties(this.columns.template, column, visualProperties);\r\n\t\t\t\t$object.copyProperties(this, column, visualProperties); // need this because 3d columns are not in the same container\r\n\t\t\t\t$object.copyProperties(this.columns.template, column, visualProperties); // second time, no force, so that columns.template would override series properties\r\n\t\t\t\tdataItem.addSprite(column);\r\n\r\n\t\t\t\tdataItem.column = column;\r\n\t\t\t\tcolumn.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n\r\n\t\t\t\t// accessibility\r\n\t\t\t\tif (this.itemsFocusable()) {\r\n\t\t\t\t\tthis.role = \"menu\";\r\n\t\t\t\t\tcolumn.role = \"menuitem\";\r\n\t\t\t\t\tcolumn.focusable = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.role = \"list\";\r\n\t\t\t\t\tcolumn.role = \"listitem\";\r\n\t\t\t\t\tcolumn.focusable = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (column.focusable) {\r\n\t\t\t\t\tcolumn.events.on(\"focus\", (ev) => {\r\n\t\t\t\t\t\tcolumn.readerTitle = this.populateString(this.itemReaderText, dataItem);\r\n\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\tcolumn.events.on(\"blur\", (ev) => {\r\n\t\t\t\t\t\tcolumn.readerTitle = \"\";\r\n\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t}\r\n\t\t\t\tif (column.hoverable) {\r\n\t\t\t\t\tcolumn.events.on(\"over\", (ev) => {\r\n\t\t\t\t\t\tcolumn.readerTitle = this.populateString(this.itemReaderText, dataItem);\r\n\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t\tcolumn.events.on(\"out\", (ev) => {\r\n\t\t\t\t\t\tcolumn.readerTitle = \"\";\r\n\t\t\t\t\t}, undefined, false);\r\n\t\t\t\t}\r\n\t\t\t\tcolumn.parent = this.columnsContainer;\r\n\t\t\t\tcolumn.virtualParent = this;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcolumn = dataItem.column;\r\n\t\t\t\tif (this._propertiesChanged) {\r\n\t\t\t\t\t$object.copyProperties(this, column, visualProperties);\r\n\t\t\t\t\t$object.copyProperties(this.columns.template, column, visualProperties);\r\n\t\t\t\t\t$array.each(visualProperties, (property) => {\r\n\t\t\t\t\t\t(<any>column)[property] = column[property];\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcolumn.width = w;\r\n\t\t\tcolumn.height = h;\r\n\r\n\t\t\tcolumn.x = x;\r\n\t\t\tcolumn.y = y;\r\n\r\n\t\t\tcolumn.realX = l;\r\n\t\t\tcolumn.realY = t;\r\n\r\n\t\t\tcolumn.realWidth = r - l;\r\n\t\t\tcolumn.realHeight = b - t;\r\n\r\n\t\t\tthis.setColumnStates(column);\r\n\r\n\t\t\tif (column.invalid) {\r\n\t\t\t\tcolumn.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n\t\t\t}\r\n\r\n\t\t\tcolumn.__disabled = false;\r\n\t\t\t//column.returnAfterTemp();\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t\tlet rangeColumn: this[\"_column\"] = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (!rangeColumn) {\r\n\t\t\t\t\trangeColumn = this.columns.create();\r\n\r\n\t\t\t\t\t//$object.forceCopyProperties(this.columns.template, rangeColumn, visualProperties);\r\n\t\t\t\t\t$object.copyProperties(axisRange.contents, rangeColumn, visualProperties); // need this because 3d columns are not in the same container\r\n\r\n\t\t\t\t\tdataItem.addSprite(rangeColumn);\r\n\t\t\t\t\tdataItem.rangesColumns.setKey(axisRange.uid, <Column>rangeColumn);\r\n\t\t\t\t\trangeColumn.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n\t\t\t\t}\r\n\r\n\t\t\t\trangeColumn.parent = axisRange.contents;\r\n\r\n\t\t\t\trangeColumn.width = w;\r\n\t\t\t\trangeColumn.height = h;\r\n\t\t\t\trangeColumn.x = x;\r\n\t\t\t\trangeColumn.y = y;\r\n\r\n\t\t\t\tthis.setColumnStates(rangeColumn);\r\n\r\n\t\t\t\tif (rangeColumn.invalid) {\r\n\t\t\t\t\trangeColumn.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n\t\t\t\t}\r\n\r\n\t\t\t\trangeColumn.__disabled = false;\r\n\t\t\t\t//rangeColumn.returnAfterTemp();\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.disableUnusedColumns(dataItem);\r\n\t\t}\r\n\r\n\t\tdataItem.itemWidth = w;\r\n\t\tdataItem.itemHeight = h;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected disableUnusedColumns(dataItem: ColumnSeriesDataItem) {\r\n\t\tif (dataItem) {\r\n\t\t\tif (dataItem.column) {\r\n\t\t\t\t// otherwise might flicker when enabling\r\n\t\t\t\tdataItem.column.width = 0;\r\n\t\t\t\tdataItem.column.height = 0;\r\n\t\t\t\tdataItem.column.__disabled = true;\r\n\t\t\t}\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t\tlet rangeColumn: Sprite = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (rangeColumn) {\r\n\t\t\t\t\t// otherwise might flicker when enabling\r\n\t\t\t\t\trangeColumn.width = 0;\r\n\t\t\t\t\trangeColumn.height = 0;\r\n\t\t\t\t\trangeColumn.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Apply different state/coloring to columns based on the change value.\r\n\t *\r\n\t * @param sprite Sprite to apply state to\r\n\t * @todo Do not apply accessibility to wicks of the candlesticks\r\n\t */\r\n\tprotected setColumnStates(sprite: Sprite): void {\r\n\t\tif (this._dropFromOpenState || this._dropFromPreviousState || this._riseFromOpenState || this._riseFromPreviousState) {\r\n\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>sprite.dataItem;\r\n\r\n\t\t\tif (this.xAxis instanceof ValueAxis || this.yAxis instanceof ValueAxis) {\r\n\t\t\t\tlet open: number;\r\n\t\t\t\tlet value: number;\r\n\t\t\t\tlet change: number;\r\n\r\n\t\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\t\tif (this.xOpenField && this.xField && this.xAxis instanceof ValueAxis) {\r\n\t\t\t\t\t\topen = dataItem.getValue(this.xOpenField);\r\n\t\t\t\t\t\tvalue = dataItem.getValue(this.xField);\r\n\t\t\t\t\t\tchange = dataItem.getValue(this.xAxis.axisFieldName + \"X\", \"previousChange\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.yOpenField && this.yField && this.yAxis instanceof ValueAxis) {\r\n\t\t\t\t\t\topen = dataItem.getValue(this.yOpenField);\r\n\t\t\t\t\t\tvalue = dataItem.getValue(this.yField);\r\n\t\t\t\t\t\tchange = dataItem.getValue(this.yAxis.axisFieldName + \"Y\", \"previousChange\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value < open) {\r\n\t\t\t\t\tdataItem.droppedFromOpen = true;\r\n\t\t\t\t\tsprite.defaultState.copyFrom(this._dropFromOpenState)\r\n\t\t\t\t\tsprite.setState(this._dropFromOpenState, 0);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem.droppedFromOpen = false;\r\n\t\t\t\t\tsprite.defaultState.copyFrom(this._riseFromOpenState)\r\n\t\t\t\t\tsprite.setState(this._riseFromOpenState, 0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (change < 0) {\r\n\t\t\t\t\tdataItem.droppedFromPrevious = true;\r\n\t\t\t\t\tsprite.defaultState.copyFrom(this._dropFromPreviousState)\r\n\t\t\t\t\tsprite.setState((this._dropFromPreviousState), 0);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem.droppedFromPrevious = false;\r\n\t\t\t\t\tsprite.defaultState.copyFrom(this._riseFromPreviousState)\r\n\t\t\t\t\tsprite.setState((this._riseFromPreviousState), 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A list of column elements in the series.\r\n\t *\r\n\t * @return Columns\r\n\t */\r\n\tpublic get columns(): ListTemplate<this[\"_column\"]> {\r\n\t\tif (!this._columns) {\r\n\t\t\tthis._columns = new ListTemplate<this[\"_column\"]>(this.createColumnTemplate());\r\n\t\t\tthis._disposers.push(new ListDisposer(this._columns));\r\n\t\t\tthis._disposers.push(this._columns.template);\r\n\t\t}\r\n\t\treturn this._columns;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a column element to use as a template.\r\n\t *\r\n\t * @return Column template\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new Column();\r\n\t}\r\n\r\n\t/**\r\n\t * Cluster this series columns?\r\n\t *\r\n\t * Setting to `false` will make columns overlap with other series.\r\n\t *\r\n\t * @default true\r\n\t * @param value Clustered?\r\n\t */\r\n\tpublic set clustered(value: boolean) {\r\n\t\tthis.setPropertyValue(\"clustered\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Clustered?\r\n\t */\r\n\tpublic get clustered(): boolean {\r\n\t\treturn this.getPropertyValue(\"clustered\");\r\n\t}\r\n\r\n\t/**\r\n\t * A state to apply to a column when close value is lower than open value.\r\n\t *\r\n\t * Can be used to differentiate appearance based on value relations.\r\n\t *\r\n\t * NOTE: this will work only if at least one axis is [[ValueAxis]].\r\n\t *\r\n\t * @readonly You can modify state object, but can't overwrite it\r\n\t * @param value State\r\n\t */\r\n\tpublic set dropFromOpenState(value: SpriteState<this[\"_properties\"], this[\"_adapter\"]>) {\r\n\t\tthis._dropFromOpenState = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return State\r\n\t */\r\n\tpublic get dropFromOpenState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\t\tif (!this._dropFromOpenState) {\r\n\t\t\tthis._dropFromOpenState = this.states.create(\"dropFromOpenState\");\r\n\t\t}\r\n\t\treturn this._dropFromOpenState;\r\n\t}\r\n\r\n\t/**\r\n\t * A state to apply to a column when its value is lower value of a previous\r\n\t * column.\r\n\t *\r\n\t * Can be used to differentiate appearance based on value relations.\r\n\t *\r\n\t * @readonly You can modify state object, but can't overwrite it\r\n\t * @param value State\r\n\t */\r\n\tpublic set dropFromPreviousState(value: SpriteState<this[\"_properties\"], this[\"_adapter\"]>) {\r\n\t\tthis._dropFromPreviousState = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return State\r\n\t */\r\n\tpublic get dropFromPreviousState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\t\tif (!this._dropFromPreviousState) {\r\n\t\t\tthis._dropFromPreviousState = this.states.create(\"dropFromPreviousState\");\r\n\t\t}\r\n\t\treturn this._dropFromPreviousState;\r\n\t}\r\n\r\n\t/**\r\n\t * A state to apply to a column when close value is same or higher than open\r\n\t * value.\r\n\t *\r\n\t * Can be used to differentiate appearance based on value relations.\r\n\t *\r\n\t * NOTE: this will work only if at least one axis is [[ValueAxis]].\r\n\t *\r\n\t * @readonly You can modify state object, but can't overwrite it\r\n\t * @param value State\r\n\t */\r\n\tpublic set riseFromOpenState(value: SpriteState<this[\"_properties\"], this[\"_adapter\"]>) {\r\n\t\tthis._riseFromOpenState = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return State\r\n\t */\r\n\tpublic get riseFromOpenState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\t\tif (!this._riseFromOpenState) {\r\n\t\t\tthis._riseFromOpenState = this.states.create(\"riseFromOpenState\");\r\n\t\t}\r\n\t\treturn this._riseFromOpenState;\r\n\t}\r\n\r\n\t/**\r\n\t * A state to apply to a column when its value is same or higher than value\r\n\t * of a previous column.\r\n\t *\r\n\t * Can be used to differentiate appearance based on value relations.\r\n\t *\r\n\t * @readonly You can modify state object, but can't overwrite it\r\n\t * @param value State\r\n\t */\r\n\tpublic set riseFromPreviousState(value: SpriteState<this[\"_properties\"], this[\"_adapter\"]>) {\r\n\t\tthis._riseFromPreviousState = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return State\r\n\t */\r\n\tpublic get riseFromPreviousState(): SpriteState<this[\"_properties\"], this[\"_adapter\"]> {\r\n\t\tif (!this._riseFromPreviousState) {\r\n\t\t\tthis._riseFromPreviousState = this.states.create(\"riseFromPreviousState\");\r\n\t\t}\r\n\t\treturn this._riseFromPreviousState;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates value of the related legend item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic updateLegendValue(dataItem?: this[\"_dataItem\"], notRange?: boolean) {\r\n\t\tsuper.updateLegendValue(dataItem, notRange);\r\n\r\n\t\tif (this.legendDataItem) {\r\n\t\t\tlet marker: Container = this.legendDataItem.marker;\r\n\t\t\tlet fromOpenState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\t\t\tlet fromPreviousState: SpriteState<this[\"_properties\"], this[\"_adapter\"]>;\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tif (dataItem.droppedFromOpen) {\r\n\t\t\t\t\tfromOpenState = this._dropFromOpenState;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tfromOpenState = this._riseFromOpenState;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (dataItem.droppedFromPrevious) {\r\n\t\t\t\t\tfromPreviousState = this._dropFromPreviousState;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tfromPreviousState = this._riseFromPreviousState;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$iter.each(marker.children.iterator(), (child) => {\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tchild.setState(fromPreviousState);\r\n\t\t\t\t\tchild.setState(fromOpenState);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// todo: think what to do here, maybe apply above states based on totals?\r\n\t\t\t\t\tchild.setState(this._riseFromPreviousState);\r\n\t\t\t\t\tchild.setState(this._riseFromOpenState);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container) {\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.removeChildren();\r\n\r\n\t\tlet column: RoundedRectangle = marker.createChild(RoundedRectangle);\r\n\t\tcolumn.shouldClone = false;\r\n\t\t$object.copyProperties(this, column, visualProperties);\r\n\r\n\t\tcolumn.copyFrom(<any>this.columns.template);\r\n\t\tcolumn.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n\t\tcolumn.width = w;\r\n\t\tcolumn.height = h;\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = this.fill;\r\n\t\tlegendDataItem.colorOrig = this.fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties from another instance of [[ColumnSeries]].\r\n\t *\r\n\t * @param source Source series\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.columns.template.copyFrom(source.columns.template);\r\n\t}\r\n\r\n\t/**\r\n\t* returns bullet x location\r\n\t* @ignore\r\n\t*/\r\n\r\n\tprotected getBulletLocationX(bullet: Bullet, field: string): number {\r\n\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\tlet bulletLocationX = bullet.locationX;\r\n\t\t\tif (!$type.isNumber(bulletLocationX)) {\r\n\t\t\t\tbulletLocationX = 0.5;\r\n\t\t\t}\r\n\r\n\t\t\tlet endLocation = this.getEndLocation(<ColumnSeriesDataItem>bullet.dataItem);\r\n\t\t\tlet startLocation = this.getStartLocation(<ColumnSeriesDataItem>bullet.dataItem);\r\n\r\n\t\t\treturn endLocation - (endLocation - startLocation) * bulletLocationX;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.getBulletLocationX(bullet, field);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t* returns bullet y location\r\n\t* @ignore\r\n\t*/\r\n\tprotected getBulletLocationY(bullet: Bullet, field: string): number {\r\n\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\tlet bulletLocationY = bullet.locationY;\r\n\t\t\tif (!$type.isNumber(bulletLocationY)) {\r\n\t\t\t\tbulletLocationY = 0.5;\r\n\t\t\t}\r\n\r\n\t\t\tlet endLocation = this.getEndLocation(<ColumnSeriesDataItem>bullet.dataItem);\r\n\t\t\tlet startLocation = this.getStartLocation(<ColumnSeriesDataItem>bullet.dataItem);\r\n\r\n\t\t\treturn endLocation - (endLocation - startLocation) * bulletLocationY;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn super.getBulletLocationY(bullet, field);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getAdjustedXLocation(dataItem: this[\"_dataItem\"], field: string, bulletLocationX?: number) {\r\n\t\t//if (this.baseAxis == this.xAxis) {\r\n\t\t\tif (!$type.isNumber(bulletLocationX)) {\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tbulletLocationX = dataItem.locations[field];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tbulletLocationX = 0.5;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this._endLocation - (this._endLocation - this._startLocation) * (1 - bulletLocationX);\r\n\t\t//}\r\n\t\t//else {\r\n\t\t//\treturn super.getAdjustedXLocation(dataItem, field);\r\n\t\t//}\r\n\t}\r\n\r\n\tprotected getAdjustedYLocation(dataItem: this[\"_dataItem\"], field: string, bulletLocationY?: number) {\r\n\t\t//if (this.baseAxis == this.yAxis) {\r\n\t\t\tif (!$type.isNumber(bulletLocationY)) {\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tbulletLocationY = dataItem.locations[field];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tbulletLocationY = 0.5;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this._endLocation - (this._endLocation - this._startLocation) * bulletLocationY;\r\n\t\t//}\r\n\t\t//else {\r\n\t\t//\treturn super.getAdjustedYLocation(dataItem, field);\r\n\t\t//}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected fixVerticalCoordinate(coordinate: number): number {\r\n\t\tlet paddingBottom = this.columns.template.pixelPaddingBottom;\r\n\t\tlet paddingTop = this.columns.template.pixelPaddingTop;\r\n\r\n\t\tlet minY: number = -paddingTop;\r\n\t\tlet maxY: number = this.yAxis.axisLength + paddingBottom;\r\n\r\n\t\treturn $math.fitToRange(coordinate, minY, maxY);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected fixHorizontalCoordinate(coordinate: number): number {\r\n\t\tlet paddingLeft = this.columns.template.pixelPaddingLeft;\r\n\t\tlet paddingRight = this.columns.template.pixelPaddingRight;\r\n\r\n\t\tlet minX: number = -paddingLeft;\r\n\t\tlet maxX: number = this.xAxis.axisLength + paddingRight;\r\n\r\n\t\treturn $math.fitToRange(coordinate, minX, maxX);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tthis.columns.clear();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColumnSeries\"] = ColumnSeries;\r\nregistry.registeredClasses[\"ColumnSeriesDataItem\"] = ColumnSeriesDataItem;\r\n","/**\r\n * TreeMap series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, IColumnSeriesProperties, IColumnSeriesDataFields, IColumnSeriesAdapters, IColumnSeriesEvents, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { TreeMap, TreeMapDataItem } from \"../types/TreeMap\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport { Container } from \"../../core/Container\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { LegendDataItem } from \"../../charts/Legend\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[TreeMapSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class TreeMapSeriesDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: TreeMapSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"TreeMapSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Data for the this particular item.\r\n\t *\r\n\t * @param value Item's data\r\n\t */\r\n\t//public set dataContext(value: Object) {\r\n\t//\tthis._dataContext = value;\r\n\t//}\r\n\r\n\r\n\r\n\t/**\r\n\t * @return Item's data\r\n\t */\r\n\t/*\r\n public get dataContext(): Object {\r\n\t // It's because data of tree series is TreeMapDataItems.\r\n\t if (this._dataContext) {\r\n\t\t return (<any>this._dataContext).dataContext;\r\n\t }\r\n }*/\r\n\r\n\t/**\r\n\t * The name of the item's parent item.\r\n\t *\r\n\t * @return Parent name\r\n\t */\r\n\tpublic get parentName(): string {\r\n\t\tlet treeMapDataItem = this.treeMapDataItem;\r\n\t\tif (treeMapDataItem && treeMapDataItem.parent) {\r\n\t\t\treturn treeMapDataItem.parent.name;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Item's numeric value.\r\n\t *\r\n\t * @readonly\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): number {\r\n\t\tlet treeMapDataItem = this.treeMapDataItem;\r\n\t\tif (treeMapDataItem) {\r\n\t\t\treturn treeMapDataItem.value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A corresponding data item from the tree map.\r\n\t *\r\n\t * @readonly\r\n\t * @return Data item\r\n\t */\r\n\tpublic get treeMapDataItem(): TreeMapDataItem {\r\n\t\treturn <TreeMapDataItem>this._dataContext;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param toValue A value to set to `fields` when hiding\r\n\t * @param fields A list of data fields to set value to `toValue`\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tlet treeMapDataItem = this.treeMapDataItem;\r\n\t\tif (treeMapDataItem) {\r\n\t\t\ttreeMapDataItem.hide(duration);\r\n\t\t}\r\n\t\treturn super.hide(duration, delay, toValue, fields);\r\n\t}\r\n\r\n\t/**\r\n\t * Shows the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param fields A list of fields to set values of\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tlet treeMapDataItem = this.treeMapDataItem;\r\n\t\tif (treeMapDataItem) {\r\n\t\t\ttreeMapDataItem.show(duration, delay, fields);\r\n\t\t}\r\n\t\treturn super.show(duration, delay, fields);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[TreeMapSeries]].\r\n */\r\nexport interface ITreeMapSeriesDataFields extends IColumnSeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value.\r\n\t */\r\n\tvalue?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[TreeMapSeries]].\r\n */\r\nexport interface ITreeMapSeriesProperties extends IColumnSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[TreeMapSeries]].\r\n */\r\nexport interface ITreeMapSeriesEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[TreeMapSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ITreeMapSeriesAdapters extends IColumnSeriesAdapters, ITreeMapSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines Series for a TreeMap chart.\r\n *\r\n * @see {@link ITreeMapSeriesEvents} for a list of available Events\r\n * @see {@link ITreeMapSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class TreeMapSeries extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: ITreeMapSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ITreeMapSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ITreeMapSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ITreeMapSeriesEvents;\r\n\r\n\t/**\r\n\t * The level in treemap hierarchy series is at.\r\n\t */\r\n\tpublic level: number;\r\n\r\n\t/**\r\n\t * Type of the data item used by series.\r\n\t */\r\n\tpublic _dataItem: TreeMapSeriesDataItem;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: TreeMap;\r\n\r\n\t/**\r\n\t * Parent data item of a series.\r\n\t */\r\n\tpublic parentDataItem: TreeMapDataItem;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"TreeMapSeries\";\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.fillOpacity = 1;\r\n\t\tthis.strokeOpacity = 1;\r\n\t\tthis.minBulletDistance = 0;\r\n\t\tthis.columns.template.tooltipText = \"{parentName} {name}: {value}\"; //@todo add format number?\r\n\t\tthis.columns.template.configField = \"config\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.stroke = interfaceColors.getFor(\"background\");\r\n\t\tthis.dataFields.openValueX = \"x0\";\r\n\t\tthis.dataFields.valueX = \"x1\";\r\n\t\tthis.dataFields.openValueY = \"y0\";\r\n\t\tthis.dataFields.valueY = \"y1\";\r\n\r\n\t\tthis.sequencedInterpolation = false;\r\n\r\n\t\tthis.showOnInit = false;\r\n\r\n\t\t// otherwise nodes don't stack nicely to each other\r\n\t\tthis.columns.template.pixelPerfect = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param dataContext Raw data\r\n\t * @param index Index of the data item\r\n\t */\r\n\tprotected processDataItem(dataItem: this[\"_dataItem\"], dataContext?: Object): void {\r\n\t\t(<TreeMapDataItem>dataContext).seriesDataItem = dataItem; // save a reference here. dataContext is TreeMapDataItem and we need to know dataItem sometimes\r\n\t\tsuper.processDataItem(dataItem, dataContext);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new TreeMapSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Shows series.\r\n\t *\r\n\t * @param duration Duration of fade in (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic show(duration?: number): Animation {\r\n\t\tif(this.preventShow){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet interpolationDuration = this.defaultState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t//dataItem.treeMapDataItem.setWorkingValue(\"value\", dataItem.treeMapDataItem.values.value.value);\r\n\t\t\tdataItem.show(duration);\r\n\t\t})\r\n\r\n\t\treturn super.showReal(interpolationDuration);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Hides series.\r\n\t *\r\n\t * @param duration Duration of fade out (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic hide(duration?: number): Animation {\r\n\r\n\t\tlet interpolationDuration = this.defaultState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tlet animation = super.hideReal(interpolationDuration);\r\n\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t//dataItem.treeMapDataItem.setWorkingValue(\"value\", 0);\r\n\t\t\tdataItem.hide(duration);\r\n\t\t})\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Process values.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic processValues() {\r\n\r\n\t\t// Just overriding so that inherited method does not kick in.\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns relative start location for the data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @return Location (0-1)\r\n\t */\r\n\tprotected getStartLocation(dataItem: this[\"_dataItem\"]): number {\t\t\r\n\t\treturn 0;\r\n\t}\t\r\n\r\n\t/**\r\n\t * Returns relative end location for the data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @return Location (0-1)\r\n\t */\r\n\tprotected getEndLocation(dataItem: this[\"_dataItem\"]): number {\r\n\t\treturn 1;\r\n\t}\t\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic dataChangeUpdate() {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Add empty data fields if the they are not set, so that XYSeries\r\n\t\t\t// dataField check does not result in error.\r\n\t\t\tif (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n\t\t\t\tconfig.dataFields = {};\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container) {\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.removeChildren();\r\n\r\n\t\tlet column: RoundedRectangle = marker.createChild(RoundedRectangle);\r\n\t\tcolumn.shouldClone = false;\r\n\t\t$object.copyProperties(this, column, visualProperties);\r\n\r\n\t\t//column.copyFrom(<any>this.columns.template);\r\n\t\tcolumn.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n\t\tcolumn.width = w;\r\n\t\tcolumn.height = h;\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = column.fill;\r\n\t\tlegendDataItem.colorOrig = column.fill;\r\n\t}\r\n\r\n\tprotected disableUnusedColumns(dataItem: ColumnSeriesDataItem) {\r\n\t\tsuper.disableUnusedColumns(dataItem);\r\n\t\tif(dataItem.column){\r\n\t\t\tdataItem.column.__disabled = false;\r\n\t\t}\r\n\t}\t\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TreeMapSeries\"] = TreeMapSeries;\r\nregistry.registeredClasses[\"TreeMapSeriesDataItem\"] = TreeMapSeriesDataItem;\r\n","/**\r\n * TreeMap chart module.\r\n *\r\n * Parts of the functionality used in this module are taken from D3.js library\r\n * (https://d3js.org/)\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, IXYChartProperties, IXYChartDataFields, IXYChartAdapters, IXYChartEvents, XYChartDataItem } from \"./XYChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { DictionaryTemplate, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { OrderedListTemplate } from \"../../core/utils/SortedList\";\r\nimport { TreeMapSeries } from \"../series/TreeMapSeries\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { TreeMapSeriesDataItem } from \"../series/TreeMapSeries\";\r\nimport { NavigationBar } from \"../elements/NavigationBar\";\r\nimport { ColorSet } from \"../../core/utils/ColorSet\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport { Export } from \"../../core/export/Export\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { LegendDataItem } from \"../../charts/Legend\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[TreeMap]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class TreeMapDataItem extends XYChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: TreeMap;\r\n\r\n\t/**\r\n\t * A treemap level this data item is displayed at.\r\n\t */\r\n\tprotected _level: number;\r\n\r\n\t/**\r\n\t * Series of children data items.\r\n\t */\r\n\tprotected _series: TreeMapSeries;\r\n\r\n\t/**\r\n\t * Related series data item.\r\n\t */\r\n\tpublic seriesDataItem: TreeMapSeriesDataItem;\r\n\r\n\t/**\r\n\t * Required for squarify functionality.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic rows: TreeMapDataItem[] = [];\r\n\r\n\t/**\r\n\t * Required for squarify functionality.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic rowsRatio: number;\r\n\r\n\t/**\r\n\t * Required for squarify functionality.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic dice: boolean;\r\n\r\n\t/**\r\n\t * A reference to a corresponding legend data item.\r\n\t */\r\n\tprotected _legendDataItem: LegendDataItem;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"TreeMapDataItem\";\r\n\r\n\t\tthis.values.value = {};\r\n\r\n\t\tthis.values.x0 = {};\r\n\r\n\t\tthis.values.y0 = {};\r\n\r\n\t\tthis.values.x1 = {};\r\n\r\n\t\tthis.values.y1 = {};\r\n\r\n\t\tthis.hasChildren.children = true;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A legend's data item, that corresponds to this data item.\r\n\t *\r\n\t * @param value Legend data item\r\n\t */\r\n\tpublic set legendDataItem(value: LegendDataItem) {\r\n\t\tthis._legendDataItem = value;\r\n\t\tif (value.label) {\r\n\t\t\tvalue.label.dataItem = this;\r\n\t\t}\r\n\t\tif (value.valueLabel) {\r\n\t\t\tvalue.valueLabel.dataItem = this;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Legend data item\r\n\t */\r\n\tpublic get legendDataItem(): LegendDataItem {\r\n\t\treturn this._legendDataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a duration (ms) the Data Item should take to animate from one\r\n\t * value to another.\r\n\t *\r\n\t * If the duration is not specified via parameter, this method will try to\r\n\t * request a default duration from the related `Component`.\r\n\t *\r\n\t * @param duration Default duration (ms)\r\n\t * @return Duration (ms)\r\n\t */\r\n\tpublic getDuration(): number {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Numeric value of the item.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set value(value: number) {\r\n\t\tthis.setValue(\"value\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get value(): number {\r\n\r\n\t\tlet value = 0;\r\n\t\tif (!this.children || this.children.length == 0) {\r\n\t\t\tvalue = this.values[\"value\"].workingValue;\r\n\t\t}\r\n\r\n\t\telse {\r\n\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\tlet childValue = child.value;\r\n\t\t\t\tif ($type.isNumber(childValue)) {\r\n\t\t\t\t\tvalue += childValue;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t\t/*\r\n\t\tlet value = this.values[\"value\"].workingValue;\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t\tif (this.children) {\r\n\t\t\t\t$iter.each(this.children.iterator(), (child) => {\r\n\t\t\t\t\tif ($type.isNumber(child.value)) {\r\n\t\t\t\t\t\tvalue += child.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn value;*/\r\n\t}\r\n\r\n\t/**\r\n\t * Percent value of a node\r\n\t */\r\n\tpublic get percent(): number {\r\n\t\tif (this.parent) {\r\n\t\t\treturn this.value / this.parent.value * 100;\r\n\t\t}\r\n\t\treturn 100;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's X position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param value X\r\n\t */\r\n\tpublic set x0(value: number) {\r\n\t\tthis.setValue(\"x0\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return X\r\n\t */\r\n\tpublic get x0(): number {\r\n\t\treturn this.values.x0.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's X position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param value X\r\n\t */\r\n\tpublic set x1(value: number) {\r\n\t\tthis.setValue(\"x1\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return X\r\n\t */\r\n\tpublic get x1(): number {\r\n\t\treturn this.values.x1.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's Y position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param value Y\r\n\t */\r\n\tpublic set y0(value: number) {\r\n\t\tthis.setValue(\"y0\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y\r\n\t */\r\n\tpublic get y0(): number {\r\n\t\treturn this.values.y0.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's Y position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param value Y\r\n\t */\r\n\tpublic set y1(value: number) {\r\n\t\tthis.setValue(\"y1\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y\r\n\t */\r\n\tpublic get y1(): number {\r\n\t\treturn this.values.y1.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's name.\r\n\t *\r\n\t * @param name Name\r\n\t */\r\n\tpublic set name(name: string) {\r\n\t\tthis.setProperty(\"name\", name);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Name\r\n\t */\r\n\tpublic get name(): string {\r\n\t\treturn this.properties.name;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of item's sub-children.\r\n\t *\r\n\t * Having children means that the TreeMap chat will automatically be\r\n\t * \"drillable\". Clicking on an item with children will zoom to the item, then\r\n\t * display its children.\r\n\t *\r\n\t * Treemap can have any level of nesting.\r\n\t *\r\n\t * @param children Item's children\r\n\t */\r\n\tpublic set children(children: OrderedListTemplate<TreeMapDataItem>) {\r\n\t\tthis.setProperty(\"children\", children);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Item's children\r\n\t */\r\n\tpublic get children(): OrderedListTemplate<TreeMapDataItem> {\r\n\t\treturn this.properties.children;\r\n\t}\r\n\r\n\t/**\r\n\t * Depth level in the treemap hierarchy.\r\n\t *\r\n\t * The top-level item will have level set at 0. Its children will have\r\n\t * level 1, and so on.\r\n\t *\r\n\t * @readonly\r\n\t * @return Level\r\n\t */\r\n\tpublic get level(): number {\r\n\t\tif (!this.parent) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.parent.level + 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Item's color.\r\n\t *\r\n\t * If not set, will use parent's color, or, if that is not set either,\r\n\t * automatically assigned color from chart's color set. (`chart.colors`)\r\n\t *\r\n\t * @param value Color\r\n\t */\r\n\tpublic set color(value: Color) {\r\n\t\tthis.setProperty(\"color\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * For the legend to work properly\r\n\t */\r\n\tpublic get fill(): Color {\r\n\t\treturn this.color;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color\r\n\t */\r\n\tpublic get color(): Color {\r\n\t\tlet color = this.properties.color;\r\n\r\n\t\tif (color == undefined) {\r\n\t\t\tif (this.parent) {\r\n\t\t\t\tcolor = this.parent.color;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (color == undefined) {\r\n\t\t\tif (this.component) {\r\n\t\t\t\tcolor = this.component.colors.getIndex(this.component.colors.step * this.index);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn color;\r\n\t}\r\n\r\n\t/**\r\n\t * Series of children data items\r\n\t * @todo: proper descrition\r\n\t */\r\n\tpublic set series(series: TreeMapSeries) {\r\n\t\tif (series != this._series) {\r\n\t\t\tif (this._series) {\r\n\t\t\t\tthis.component.series.removeValue(this._series);\r\n\t\t\t\tthis._series.dispose();\r\n\t\t\t}\r\n\t\t\tthis._series = series;\r\n\t\t\tthis._disposers.push(series);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get series(): TreeMapSeries {\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param toValue A value to set to `fields` when hiding\r\n\t * @param fields A list of data fields to set value to `toValue`\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tthis.setWorkingValue(\"value\", 0);\r\n\r\n\t\tif (this.children) {\r\n\t\t\tthis.children.each((child) => {\r\n\t\t\t\tchild.hide(duration, delay, toValue, fields);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tlet seriesDataItem = this.seriesDataItem;\r\n\t\tif(seriesDataItem){\r\n\t\t\tseriesDataItem.bullets.each((key, value)=>{\r\n\t\t\t\tvalue.hide();\r\n\t\t\t\tvalue.preventShow = true;\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.hide(duration, delay, toValue, fields);\r\n\t}\r\n\r\n\t/**\r\n\t * Shows the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param fields A list of fields to set values of\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tthis.setWorkingValue(\"value\", this.values.value.value);\r\n\t\tif (this.children) {\r\n\t\t\tthis.children.each((child) => {\r\n\t\t\t\tchild.show(duration, delay, fields);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tlet seriesDataItem = this.seriesDataItem;\r\n\t\tif(seriesDataItem){\r\n\t\t\tseriesDataItem.bullets.each((key, value)=>{\r\n\t\t\t\tvalue.preventShow = false;\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.show(duration, delay, fields);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[TreeMap]].\r\n */\r\nexport interface ITreeMapDataFields extends IXYChartDataFields {\r\n\r\n\t/**\r\n\t * A name of the field in data that holds item's numeric value.\r\n\t */\r\n\tvalue?: string;\r\n\r\n\t/**\r\n\t * A name of the field in data that holds item's sub-items.\r\n\t */\r\n\tchildren?: string;\r\n\r\n\t/**\r\n\t * A name of the field in data that holds item's name.\r\n\t */\r\n\tname?: string;\r\n\r\n\t/**\r\n\t * A name of the field in data that holds item's color.\r\n\t *\r\n\t * If not set, a new color will be automatically assigned to each item as\r\n\t * defined by theme.\r\n\t */\r\n\tcolor?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[TreeMap]].\r\n */\r\nexport interface ITreeMapProperties extends IXYChartProperties {\r\n\r\n\t/**\r\n\t * Maximum number of levels the chart will display initially.\r\n\t *\r\n\t * @default 2\r\n\t */\r\n\tmaxLevels?: number;\r\n\r\n\t/**\r\n\t * Current drill-down level the treemap is at.\r\n\t */\r\n\tcurrentLevel?: number;\r\n\r\n\t/**\r\n\t * Sorting direction of treemap items.\r\n\t *\r\n\t * @default \"descending\"\r\n\t */\r\n\tsorting?: \"none\" | \"ascending\" | \"descending\";\r\n\r\n\t/**\r\n\t * If set to `true`, columns of parent nodes will be hidden when user\r\n\t * drills-down into deeper levels.\r\n\t * \r\n\t * @sice 4.7.4\r\n\t * @default false\r\n\t */\r\n\thideParentColumns?: boolean;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[TreeMap]].\r\n */\r\nexport interface ITreeMapEvents extends IXYChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[TreeMap]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ITreeMapAdapters extends IXYChartAdapters, ITreeMapProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a TreeMap chart.\r\n *\r\n * @see {@link ITreeMapEvents} for a list of available Events\r\n * @see {@link ITreeMapAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/treemap/} for documentation\r\n */\r\nexport class TreeMap extends XYChart {\r\n\r\n\t/**\r\n\t * Defines a type of the data item used for this chart.\r\n\t */\r\n\tpublic _dataItem: TreeMapDataItem;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: ITreeMapDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ITreeMapProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ITreeMapAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ITreeMapEvents;\r\n\r\n\t/**\r\n\t * A horizontal value axis.\r\n\t *\r\n\t * TreeMap chart is basically an XY chart, which means it has vertical and\r\n\t * horizontal value axes.\r\n\t *\r\n\t * As with any XY-based chart, it can be zoomed.\r\n\t */\r\n\tpublic xAxis: ValueAxis;\r\n\r\n\t/**\r\n\t * A vertical value axis.\r\n\t *\r\n\t * TreeMap chart is basically an XY chart, which means it has vertical and\r\n\t * horizontal value axes.\r\n\t *\r\n\t * As with any XY-based chart, it can be zoomed.\r\n\t */\r\n\tpublic yAxis: ValueAxis;\r\n\r\n\t/**\r\n\t * An algorithm used to divide area into squares based on their value.\r\n\t *\r\n\t * Available options: squarify (default), binaryTree, slice, dice, sliceDice.\r\n\t *\r\n\t * ```TypeScript\r\n\t * chart.layoutAlgorithm = chart.sliceDice;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * chart.layoutAlgorithm = chart.sliceDice;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"layoutAlgorithm\": \"sliceDice\",\r\n\t * // ...\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/chart-types/treemap/#Area_division_methods} For more info and examples.\r\n\t * @default squarify\r\n\t */\r\n\tpublic layoutAlgorithm: (parent: TreeMapDataItem) => void = this.squarify;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: TreeMapSeries;\r\n\r\n\t/**\r\n\t * [_homeDataItem description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _homeDataItem: TreeMapDataItem;\r\n\r\n\t/**\r\n\t * [_tempSeries description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _tempSeries: TreeMapSeries[];\r\n\r\n\t/**\r\n\t * A text dispalyed on the home button in breadcurmb nav control.\r\n\t */\r\n\tprotected _homeText: string;\r\n\r\n\t/**\r\n\t * A set of colors to be applied automatically to each new chart item, if\r\n\t * not explicitly set.\r\n\t */\r\n\tpublic colors: ColorSet;\r\n\r\n\t/**\r\n\t * Holds series object for each TreeMap level.\r\n\t *\r\n\t * \"0\" is the top-level series.\r\n\t * \"1\" is the second level.\r\n\t * Etc.\r\n\t *\r\n\t * @todo Description\r\n\t * @param Templates for each level\r\n\t */\r\n\tpublic seriesTemplates: DictionaryTemplate<string, this[\"_seriesType\"]>;\r\n\r\n\t/**\r\n\t * Is the chart zoomable?\r\n\t *\r\n\t * If the chart is `zoomable`, and items have sub-items, the chart will\r\n\t * drill-down to sub-items when click on their parent item.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tpublic zoomable: boolean = true;\r\n\r\n\r\n\t/**\r\n\t * A navigation bar used to show \"breadcrumb\" control, indicating current\r\n\t * drill-down path.\r\n\t */\r\n\tprotected _navigationBar: NavigationBar;\r\n\r\n\t/**\r\n\t * Currently selected data item.\r\n\t * @readonly\r\n\t */\r\n\tpublic currentlyZoomed: TreeMapDataItem;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"TreeMap\";\r\n\r\n\t\tthis._usesData = true;\r\n\r\n\t\tthis.maxLevels = 2;\r\n\t\tthis.currentLevel = 0;\r\n\t\tthis.hideParentColumns = false;\r\n\r\n\t\tthis.colors = new ColorSet();\r\n\t\tthis.sorting = \"descending\";\r\n\r\n\t\t// create two value axes for the chart\r\n\t\tlet xAxis = this.xAxes.push(new ValueAxis<any>());\r\n\t\txAxis.title.disabled = true;\r\n\t\txAxis.strictMinMax = true;\r\n\r\n\t\tlet xRenderer = xAxis.renderer;\r\n\t\txRenderer.inside = true;\r\n\t\txRenderer.labels.template.disabled = true;\r\n\t\txRenderer.ticks.template.disabled = true;\r\n\t\txRenderer.grid.template.disabled = true;\r\n\t\txRenderer.axisFills.template.disabled = true;\r\n\t\txRenderer.minGridDistance = 100;\r\n\t\txRenderer.line.disabled = true;\r\n\t\txRenderer.baseGrid.disabled = true;\r\n\t\t//xRenderer.inversed = true;\r\n\r\n\t\tlet yAxis = this.yAxes.push(new ValueAxis<any>());\r\n\t\tyAxis.title.disabled = true;\r\n\t\tyAxis.strictMinMax = true;\r\n\r\n\t\tlet yRenderer = yAxis.renderer;\r\n\t\tyRenderer.inside = true;\r\n\t\tyRenderer.labels.template.disabled = true;\r\n\t\tyRenderer.ticks.template.disabled = true;\r\n\t\tyRenderer.grid.template.disabled = true;\r\n\t\tyRenderer.axisFills.template.disabled = true;\r\n\t\tyRenderer.minGridDistance = 100;\r\n\t\tyRenderer.line.disabled = true;\r\n\t\tyRenderer.baseGrid.disabled = true;\r\n\t\tyRenderer.inversed = true;\r\n\r\n\t\t// shortcuts\r\n\t\tthis.xAxis = xAxis;\r\n\t\tthis.yAxis = yAxis;\r\n\r\n\t\tconst template = new TreeMapSeries();\r\n\t\tthis.seriesTemplates = new DictionaryTemplate<string, this[\"_seriesType\"]>(template);\r\n\t\ttemplate.virtualParent = this;\r\n\t\tthis._disposers.push(new DictionaryDisposer(this.seriesTemplates));\r\n\t\tthis._disposers.push(template);\r\n\r\n\t\tthis.zoomOutButton.events.on(\"hit\", () => {\r\n\t\t\tthis.zoomToChartDataItem(this._homeDataItem);\r\n\t\t}, undefined, false)\r\n\r\n\t\tthis.seriesTemplates.events.on(\"insertKey\", (event) => {\r\n\t\t\tevent.newValue.isTemplate = true;\r\n\t\t}, undefined, false)\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A navigation bar used to show \"breadcrumb\" control, indicating current\r\n\t * drill-down path.\r\n\t */\r\n\tpublic set navigationBar(navigationBar: NavigationBar) {\r\n\t\tif (this._navigationBar != navigationBar) {\r\n\t\t\tthis._navigationBar = navigationBar;\r\n\t\t\tnavigationBar.parent = this;\r\n\t\t\tnavigationBar.toBack();\r\n\t\t\tnavigationBar.links.template.events.on(\"hit\", (event) => {\r\n\t\t\t\tlet dataItem = <TreeMapDataItem>event.target.dataItem.dataContext;\r\n\t\t\t\tif (!dataItem.isDisposed()) {\r\n\t\t\t\t\tthis.zoomToChartDataItem(dataItem);\r\n\t\t\t\t\tthis.createTreeSeries(dataItem);\r\n\t\t\t\t}\r\n\t\t\t}, undefined, true);\r\n\r\n\t\t\tthis._disposers.push(navigationBar);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns navigationBar if it is added to a chart\r\n\t */\r\n\tpublic get navigationBar(): NavigationBar {\r\n\t\treturn this._navigationBar;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * (Re)validates chart's data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\r\n\t\tthis.series.clear();\r\n\t\tthis._tempSeries = [];\r\n\r\n\t\tsuper.validateData();\r\n\r\n\t\tif (this._homeDataItem) {\r\n\t\t\tthis._homeDataItem.dispose();\r\n\t\t}\r\n\r\n\t\tlet homeDataItem = this.dataItems.template.clone(); // cant' use createDataItem here!\r\n\r\n\t\tthis._homeDataItem = homeDataItem;\r\n\r\n\t\t$iter.each(this.dataItems.iterator(), (dataItem) => {\r\n\t\t\tdataItem.parent = homeDataItem;\r\n\t\t});\r\n\r\n\t\thomeDataItem.children = this.dataItems;\r\n\r\n\t\thomeDataItem.x0 = 0;\r\n\t\thomeDataItem.y0 = 0;\r\n\t\thomeDataItem.name = this._homeText;\r\n\r\n\t\tlet maxX = 1000;\r\n\t\tlet maxY = Math.round((maxX * this.pixelHeight / this.pixelWidth) / 10) * 10 || 1000;\r\n\r\n\t\thomeDataItem.x1 = maxX;\r\n\t\thomeDataItem.y1 = maxY;\r\n\r\n\t\tthis.xAxis.min = 0;\r\n\t\tthis.xAxis.max = maxX;\r\n\t\tthis.xAxis.getMinMax();\r\n\r\n\t\tthis.yAxis.min = 0;\r\n\t\tthis.yAxis.max = maxY;\r\n\t\tthis.yAxis.getMinMax();\r\n\r\n\t\tthis.layoutItems(homeDataItem);\r\n\r\n\t\tthis.createTreeSeries(homeDataItem);\r\n\r\n\t\tthis.feedLegend();\r\n\t}\r\n\r\n\t/**\r\n\t * Layouts and sizes all items according to their value and\r\n\t * `layoutAlgorithm`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Parent data item\r\n\t */\r\n\tpublic layoutItems(parent: TreeMapDataItem, sorting?: \"none\" | \"ascending\" | \"descending\"): void {\r\n\t\tif (parent) {\r\n\t\t\tlet children = parent.children;\r\n\r\n\t\t\tif (!sorting) {\r\n\t\t\t\tsorting = this.sorting;\r\n\t\t\t}\r\n\r\n\t\t\tif (sorting == \"ascending\") {\r\n\t\t\t\tchildren.values.sort((a, b) => {\r\n\t\t\t\t\treturn a.value - b.value;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (sorting == \"descending\") {\r\n\t\t\t\tchildren.values.sort((a, b) => {\r\n\t\t\t\t\treturn b.value - a.value;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._updateDataItemIndexes(0);\r\n\r\n\t\t\tthis.layoutAlgorithm(parent);\r\n\r\n\t\t\tfor (let i = 0, len = children.length; i < len; i++) {\r\n\r\n\t\t\t\tlet node = children.getIndex(i);\r\n\r\n\t\t\t\tif (node.children) {\r\n\t\t\t\t\tthis.layoutItems(node);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Creates and returns a new treemap series.\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem Data item to create series out of\r\n\t */\r\n\tprotected createTreeSeries(dataItem: TreeMapDataItem) {\r\n\t\tthis._tempSeries = [];\r\n\r\n\t\tlet navigationData = [dataItem];\r\n\r\n\t\t// create parent series and navigation data\r\n\t\tlet parentDataItem = dataItem.parent;\r\n\t\twhile (parentDataItem != undefined) {\r\n\t\t\tthis.initSeries(parentDataItem);\r\n\t\t\tnavigationData.push(parentDataItem);\r\n\t\t\tparentDataItem = parentDataItem.parent;\r\n\t\t}\r\n\r\n\t\tnavigationData.reverse();\r\n\r\n\t\tif (this.navigationBar) {\r\n\t\t\tthis.navigationBar.data = navigationData;\r\n\t\t}\r\n\r\n\t\t// create series and children series\r\n\t\tthis.createTreeSeriesReal(dataItem);\r\n\r\n\t\t// add those which are not in the list\r\n\t\t$array.each(this._tempSeries, (series) => {\r\n\t\t\tif (this.series.indexOf(series) == -1) {\r\n\t\t\t\tthis.series.push(series);\r\n\t\t\t}\r\n\t\t\tseries.zIndex = series.level;\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * [createTreeSeriesReal description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t */\r\n\tprotected createTreeSeriesReal(dataItem: TreeMapDataItem) {\r\n\t\tif (dataItem.children) {\r\n\t\t\tlet level = dataItem.level;\r\n\r\n\t\t\tif (level < this.currentLevel + this.maxLevels) {\r\n\r\n\t\t\t\tthis.initSeries(dataItem);\r\n\r\n\t\t\t\tfor (let i = 0; i < dataItem.children.length; i++) {\r\n\t\t\t\t\tlet child = dataItem.children.getIndex(i);\r\n\t\t\t\t\tif (child.children) {\r\n\t\t\t\t\t\tthis.createTreeSeriesReal(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected setData(value: any[]) {\r\n\t\tthis.currentLevel = 0;\r\n\t\tthis.currentlyZoomed = undefined;\r\n\t\tthis.xAxis.start = 0;\r\n\t\tthis.xAxis.end = 1;\r\n\t\tthis.yAxis.start = 0;\r\n\t\tthis.yAxis.end = 1;\r\n\t\tsuper.setData(value);\r\n\t}\r\n\t/**\r\n\t * @ignore\r\n\t * Overriding, as tree map series are created on the fly all the time\r\n\t */\r\n\tprotected seriesAppeared(): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Initializes the treemap series.\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem Chart data item\r\n\t */\r\n\tprotected initSeries(dataItem: TreeMapDataItem) {\r\n\t\tif (!dataItem.series) {\r\n\t\t\tlet series: TreeMapSeries;\r\n\r\n\t\t\tlet template = this.seriesTemplates.getKey(dataItem.level.toString());\r\n\t\t\tif (template) {\r\n\t\t\t\tseries = template.clone();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tseries = this.series.create();\r\n\t\t\t}\r\n\t\t\t// for the legend to get {value}\r\n\t\t\tseries.dataItem.dataContext = dataItem;\r\n\r\n\t\t\tseries.name = dataItem.name;\r\n\t\t\tseries.parentDataItem = dataItem;\r\n\t\t\tdataItem.series = series;\r\n\r\n\t\t\tlet level = dataItem.level;\r\n\t\t\tseries.level = level;\r\n\r\n\t\t\tlet dataContext: any = dataItem.dataContext;\r\n\t\t\tif (dataContext) {\r\n\t\t\t\tseries.config = dataContext.config;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dataUsers.removeValue(series); // series do not use data directly, that's why we remove it\r\n\t\t\tseries.data = dataItem.children.values;\r\n\t\t\tseries.fill = dataItem.color;\r\n\r\n\t\t\tseries.columnsContainer.hide(0);\r\n\t\t\tseries.bulletsContainer.hide(0);\r\n\r\n\t\t\tseries.columns.template.adapter.add(\"fill\", (fill, target) => {\r\n\t\t\t\tlet dataItem = <TreeMapSeriesDataItem>target.dataItem;\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tlet treeMapDataItem = dataItem.treeMapDataItem;\r\n\t\t\t\t\tif (treeMapDataItem) {\r\n\t\t\t\t\t\ttarget.fill = treeMapDataItem.color;\r\n\t\t\t\t\t\ttarget.adapter.remove(\"fill\"); //@todo: make it possible adapters applied once?\r\n\t\t\t\t\t\treturn treeMapDataItem.color;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (this.zoomable && (dataItem.level > this.currentLevel || (dataItem.children && dataItem.children.length > 0))) {\r\n\t\t\t\tseries.columns.template.cursorOverStyle = MouseCursorStyle.pointer;\r\n\t\t\t\tif (this.zoomable) {\r\n\t\t\t\t\tseries.columns.template.events.on(\"hit\", (event) => {\r\n\t\t\t\t\t\tlet seriesDataItem = <TreeMapSeriesDataItem>event.target.dataItem;\r\n\r\n\t\t\t\t\t\tif (dataItem.level > this.currentLevel) {\r\n\t\t\t\t\t\t\tthis.zoomToChartDataItem(seriesDataItem.treeMapDataItem.parent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.zoomToSeriesDataItem(seriesDataItem);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}, this, undefined);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._tempSeries.push(dataItem.series);\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles bullets so that labels that belong to current drill level are\r\n\t * shown.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t */\r\n\tprotected toggleBullets(duration?: number): void {\r\n\t\t// hide all series which are not in tempSeries\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (this._tempSeries.indexOf(series) == - 1) {\r\n\t\t\t\t//series.hideReal(duration);\r\n\t\t\t\tseries.columnsContainer.hide();\r\n\t\t\t\tseries.bulletsContainer.hide(duration);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//series.showReal(duration);\r\n\t\t\t\tseries.columnsContainer.show();\r\n\t\t\t\tseries.bulletsContainer.show(duration);\r\n\r\n\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\tdataItem.bullets.each((key, bullet) => {\r\n\t\t\t\t\t\tbullet.show();\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (series.level < this.currentLevel) {\r\n\t\t\t\t\tif (this.hideParentColumns) {\r\n\t\t\t\t\t\tseries.columnsContainer.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tseries.bulletsContainer.hide(duration);\r\n\t\t\t\t}\r\n\t\t\t\telse if (series.level == this.currentLevel) {\r\n\t\t\t\t\tif (this.maxLevels > 1) {\r\n\t\t\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\t\t\tif (dataItem.treeMapDataItem.children) {\r\n\t\t\t\t\t\t\t\tdataItem.bullets.each((key, bullet) => {\r\n\t\t\t\t\t\t\t\t\tbullet.hide();\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms to particular item in series.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic zoomToSeriesDataItem(dataItem: TreeMapSeriesDataItem): void {\r\n\t\tthis.zoomToChartDataItem(dataItem.treeMapDataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms to particular item. If dataItem is not specified, the chart will zoom-out.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic zoomToChartDataItem(dataItem?: TreeMapDataItem): void {\r\n\t\tif(!dataItem){\r\n\t\t\tdataItem = this._homeDataItem;\r\n\t\t}\r\n\r\n\t\tlet zoomOutButton = this.zoomOutButton;\r\n\t\t// this is needed because if there is only one fist level, it wont' be shown\r\n\t\tif (zoomOutButton) {\r\n\t\t\tif (dataItem != this._homeDataItem) {\r\n\t\t\t\tzoomOutButton.show();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tzoomOutButton.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (dataItem && dataItem.children) {\r\n\t\t\tthis.xAxis.zoomToValues(dataItem.x0, dataItem.x1);\r\n\t\t\tthis.yAxis.zoomToValues(dataItem.y0, dataItem.y1);\r\n\r\n\t\t\tthis.currentLevel = dataItem.level;\r\n\t\t\tthis.currentlyZoomed = dataItem;\r\n\r\n\t\t\tthis.createTreeSeries(dataItem);\r\n\r\n\t\t\tlet rangeChangeAnimation = this.xAxis.rangeChangeAnimation || this.yAxis.rangeChangeAnimation;\r\n\r\n\t\t\tif (rangeChangeAnimation && !rangeChangeAnimation.isDisposed() && !rangeChangeAnimation.isFinished()) {\r\n\t\t\t\tthis._dataDisposers.push(rangeChangeAnimation);\r\n\r\n\t\t\t\trangeChangeAnimation.events.once(\"animationended\", () => {\r\n\t\t\t\t\tthis.toggleBullets();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.toggleBullets();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"TreeMap chart\");\r\n\t\t}\r\n\t\t//this.homeText = this.language.translate(\"Home\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new TreeMapDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum number of levels the chart will display initially.\r\n\t *\r\n\t * @default 2\r\n\t * @param value Maximum drill-down level\r\n\t */\r\n\tpublic set maxLevels(value: number) {\r\n\t\tthis.setPropertyValue(\"maxLevels\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Maximum drill-down level\r\n\t */\r\n\tpublic get maxLevels(): number {\r\n\t\treturn this.getPropertyValue(\"maxLevels\");\r\n\t}\r\n\r\n\t/**\r\n\t * Current drill-down level the chart is at.\r\n\t *\r\n\t * @param value Current level\r\n\t */\r\n\tpublic set currentLevel(value: number) {\r\n\t\tthis.setPropertyValue(\"currentLevel\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Current level\r\n\t */\r\n\tpublic get currentLevel(): number {\r\n\t\treturn this.getPropertyValue(\"currentLevel\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true`, columns of parent nodes will be hidden when user\r\n\t * drills-down into deeper levels.\r\n\t * \r\n\t * @sice 4.7.4\r\n\t * @default false\r\n\t * @param value Hide?\r\n\t */\r\n\tpublic set hideParentColumns(value: boolean) {\r\n\t\tthis.setPropertyValue(\"hideParentColumns\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hide?\r\n\t */\r\n\tpublic get hideParentColumns(): boolean {\r\n\t\treturn this.getPropertyValue(\"hideParentColumns\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sorting direction of treemap items.\r\n\t *\r\n\t * Available options: \"none\", \"ascending\", and \"descending\" (default).\r\n\t *\r\n\t * @default \"descending\"\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set sorting(value: \"none\" | \"ascending\" | \"descending\") {\r\n\t\tthis.setPropertyValue(\"sorting\", value, true);\r\n\t}\r\n\r\n\tpublic get sorting(): \"none\" | \"ascending\" | \"descending\" {\r\n\t\treturn this.getPropertyValue(\"sorting\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new series of the suitable type.\r\n\t *\r\n\t * @return new series\r\n\t */\r\n\tprotected createSeries(): this[\"_seriesType\"] {\r\n\t\treturn new TreeMapSeries();\r\n\t}\r\n\r\n\t/**\r\n\t * A text displayed on the \"home\" button which is used to go back to level 0\r\n\t * after drill into sub-items.\r\n\t *\r\n\t * @param value Home text\r\n\t */\r\n\tpublic set homeText(value: string) {\r\n\t\tthis._homeText = value;\r\n\t\tif (this._homeDataItem) {\r\n\t\t\tthis._homeDataItem.name = this._homeText;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Home text\r\n\t */\r\n\tpublic get homeText(): string {\r\n\t\treturn this._homeText;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Instantiate layout algorithm\r\n\t\t\tif ($type.hasValue(config[\"layoutAlgorithm\"]) && $type.isString(config[\"layoutAlgorithm\"])) {\r\n\t\t\t\tswitch (config[\"layoutAlgorithm\"]) {\r\n\t\t\t\t\tcase \"squarify\":\r\n\t\t\t\t\t\tconfig[\"layoutAlgorithm\"] = this.squarify;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"binaryTree\":\r\n\t\t\t\t\t\tconfig[\"layoutAlgorithm\"] = this.binaryTree;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"slice\":\r\n\t\t\t\t\t\tconfig[\"layoutAlgorithm\"] = this.slice;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"dice\":\r\n\t\t\t\t\t\tconfig[\"layoutAlgorithm\"] = this.dice;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"sliceDice\":\r\n\t\t\t\t\t\tconfig[\"layoutAlgorithm\"] = this.sliceDice;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tdelete config[\"layoutAlgorithm\"];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Set type for navigation bar\r\n\t\t\tif ($type.hasValue(config.navigationBar) && !$type.hasValue(config.navigationBar.type)) {\r\n\t\t\t\tconfig.navigationBar.type = \"NavigationBar\";\r\n\t\t\t}\r\n\r\n\t\t\tsuper.processConfig(config);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the size of container and informs its children of how much size\r\n\t * they can occupy, by setting their relative `maxWidth` and `maxHeight`\r\n\t * properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateLayout() {\r\n\t\tsuper.validateLayout();\r\n\t\tthis.layoutItems(this.currentlyZoomed);\r\n\t}\r\n\r\n\t/**\r\n\t * Validates (processes) data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems() {\r\n\t\tsuper.validateDataItems();\r\n\t\tthis.layoutItems(this._homeDataItem);\r\n\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.validateRawData();\r\n\t\t});\r\n\r\n\t\tthis.zoomToChartDataItem(this._homeDataItem);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * TREEMAP LAYOUT FUNCTIONS\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * The functions below are from D3.js library (https://d3js.org/)\r\n\t *\r\n\t * --------------------------------------------------------------------------\r\n\t * Copyright 2017 Mike Bostock\r\n\t *\r\n\t * Redistribution and use in source and binary forms, with or without\r\n\t * modification, are permitted provided that the following conditions are met:\r\n\t *\r\n\t * 1. Redistributions of source code must retain the above copyright notice,\r\n\t * this list of conditions and the following disclaimer.\r\n\t *\r\n\t * 2. Redistributions in binary form must reproduce the above copyright\r\n\t * notice,this list of conditions and the following disclaimer in the\r\n\t * documentation and/or other materials provided with the distribution.\r\n\t *\r\n\t * 3. Neither the name of the copyright holder nor the names of its\r\n\t * contributors may be used to endorse or promote products derived from\r\n\t * this software without specific prior written permission.\r\n\t *\r\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n\t * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n\t * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n\t * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r\n\t * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\n\t * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\n\t * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n\t * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n\t * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n\t * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r\n\t * POSSIBILITY OF SUCH DAMAGE.\r\n\t * --------------------------------------------------------------------------\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Treemap layout algorithm: binaryTree.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Data item\r\n\t */\r\n\tpublic binaryTree(parent: TreeMapDataItem): void {\r\n\t\tlet nodes = parent.children,\r\n\t\t\ti, n = nodes.length,\r\n\t\t\tsum, sums = new Array(n + 1);\r\n\r\n\t\tfor (sums[0] = sum = i = 0; i < n; ++i) {\r\n\t\t\tsums[i + 1] = sum += nodes.getIndex(i).value;\r\n\t\t}\r\n\r\n\t\tpartition(0, n, parent.value, parent.x0, parent.y0, parent.x1, parent.y1);\r\n\r\n\t\tfunction partition(i: number, j: number, value: number, x0: number, y0: number, x1: number, y1: number) {\r\n\t\t\tif (i >= j - 1) {\r\n\t\t\t\tlet node = nodes.getIndex(i);\r\n\t\t\t\tnode.x0 = x0;\r\n\t\t\t\tnode.y0 = y0;\r\n\t\t\t\tnode.x1 = x1;\r\n\t\t\t\tnode.y1 = y1;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet valueOffset = sums[i],\r\n\t\t\t\tvalueTarget = (value / 2) + valueOffset,\r\n\t\t\t\tk = i + 1,\r\n\t\t\t\thi = j - 1;\r\n\r\n\t\t\twhile (k < hi) {\r\n\t\t\t\tlet mid = k + hi >>> 1;\r\n\t\t\t\tif (sums[mid] < valueTarget) {\r\n\t\t\t\t\tk = mid + 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\thi = mid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) {\r\n\t\t\t\t--k;\r\n\t\t\t}\r\n\r\n\t\t\tlet valueLeft = sums[k] - valueOffset,\r\n\t\t\t\tvalueRight = value - valueLeft;\r\n\r\n\t\t\tif ((x1 - x0) > (y1 - y0)) {\r\n\t\t\t\tlet xk = (x0 * valueRight + x1 * valueLeft) / value;\r\n\t\t\t\tpartition(i, k, valueLeft, x0, y0, xk, y1);\r\n\t\t\t\tpartition(k, j, valueRight, xk, y0, x1, y1);\r\n\t\t\t} else {\r\n\t\t\t\tlet yk = (y0 * valueRight + y1 * valueLeft) / value;\r\n\t\t\t\tpartition(i, k, valueLeft, x0, y0, x1, yk);\r\n\t\t\t\tpartition(k, j, valueRight, x0, yk, x1, y1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Treemap layout algorithm: slice.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Data item\r\n\t */\r\n\tpublic slice(parent: TreeMapDataItem): void {\r\n\t\tlet x0 = parent.x0;\r\n\t\tlet x1 = parent.x1;\r\n\t\tlet y0 = parent.y0;\r\n\t\tlet y1 = parent.y1;\r\n\r\n\t\tlet nodes = parent.children;\r\n\t\tlet node;\r\n\t\tlet i = -1;\r\n\t\tlet n = nodes.length;\r\n\t\tlet k = parent.value && (y1 - y0) / parent.value;\r\n\r\n\t\twhile (++i < n) {\r\n\t\t\tnode = nodes.getIndex(i);\r\n\t\t\tnode.x0 = x0;\r\n\t\t\tnode.x1 = x1;\r\n\t\t\tnode.y0 = y0;\r\n\t\t\ty0 += node.value * k;\r\n\t\t\tnode.y1 = y0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Treemap layout algorithm: dice.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Data item\r\n\t */\r\n\tpublic dice(parent: TreeMapDataItem): void {\r\n\t\tlet x0 = parent.x0;\r\n\t\tlet x1 = parent.x1;\r\n\t\tlet y0 = parent.y0;\r\n\t\tlet y1 = parent.y1;\r\n\r\n\t\tlet nodes = parent.children,\r\n\t\t\tnode,\r\n\t\t\ti = -1,\r\n\t\t\tn = nodes.length,\r\n\t\t\tk = parent.value && (x1 - x0) / parent.value;\r\n\r\n\t\twhile (++i < n) {\r\n\t\t\tnode = nodes.getIndex(i);\r\n\t\t\tnode.y0 = y0;\r\n\t\t\tnode.y1 = y1;\r\n\t\t\tnode.x0 = x0;\r\n\t\t\tx0 += node.value * k;\r\n\t\t\tnode.x1 = x0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Treemap layout algorithm: slideDice.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Data item\r\n\t */\r\n\tpublic sliceDice(parent: TreeMapDataItem): void {\r\n\t\tif (parent.level & 1) {\r\n\t\t\tthis.slice(parent);\r\n\t\t} else {\r\n\t\t\tthis.dice(parent);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Treemap layout algorithm: squarify.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param parent Data item\r\n\t */\r\n\tpublic squarify(parent: TreeMapDataItem): void {\r\n\t\tlet ratio = (1 + Math.sqrt(5)) / 2;\r\n\r\n\t\tlet x0 = parent.x0;\r\n\t\tlet x1 = parent.x1;\r\n\t\tlet y0 = parent.y0;\r\n\t\tlet y1 = parent.y1;\r\n\r\n\t\tlet nodes = parent.children;\r\n\t\tlet nodeValue;\r\n\t\tlet i0 = 0;\r\n\t\tlet i1 = 0;\r\n\t\tlet n = nodes.length;\r\n\t\tlet dx;\r\n\t\tlet dy;\r\n\t\tlet value = parent.value;\r\n\t\tlet sumValue;\r\n\t\tlet minValue;\r\n\t\tlet maxValue;\r\n\t\tlet newRatio;\r\n\t\tlet minRatio;\r\n\t\tlet alpha;\r\n\t\tlet beta;\r\n\r\n\t\twhile (i0 < n) {\r\n\t\t\tdx = x1 - x0;\r\n\t\t\tdy = y1 - y0;\r\n\r\n\t\t\t// Find the next non-empty node.\r\n\t\t\tdo {\r\n\t\t\t\tsumValue = nodes.getIndex(i1++).value;\r\n\t\t\t} while (!sumValue && i1 < n);\r\n\r\n\t\t\tminValue = maxValue = sumValue;\r\n\t\t\talpha = Math.max(dy / dx, dx / dy) / (value * ratio);\r\n\t\t\tbeta = sumValue * sumValue * alpha;\r\n\t\t\tminRatio = Math.max(maxValue / beta, beta / minValue);\r\n\r\n\t\t\t// Keep adding nodes while the aspect ratio maintains or improves.\r\n\t\t\tfor (; i1 < n; ++i1) {\r\n\t\t\t\tsumValue += nodeValue = nodes.getIndex(i1).value;\r\n\t\t\t\tif (nodeValue < minValue) {\r\n\t\t\t\t\tminValue = nodeValue;\r\n\t\t\t\t}\r\n\t\t\t\tif (nodeValue > maxValue) {\r\n\t\t\t\t\tmaxValue = nodeValue;\r\n\t\t\t\t}\r\n\t\t\t\tbeta = sumValue * sumValue * alpha;\r\n\t\t\t\tnewRatio = Math.max(maxValue / beta, beta / minValue);\r\n\t\t\t\tif (newRatio > minRatio) {\r\n\t\t\t\t\tsumValue -= nodeValue; break;\r\n\t\t\t\t}\r\n\t\t\t\tminRatio = newRatio;\r\n\t\t\t}\r\n\r\n\t\t\t// Position and record the row orientation.\r\n\t\t\tlet row = this.dataItems.template.clone();\r\n\t\t\trow.value = sumValue;\r\n\t\t\trow.dice = dx < dy;\r\n\t\t\trow.children = nodes.slice(i0, i1);\r\n\t\t\trow.x0 = x0;\r\n\t\t\trow.y0 = y0;\r\n\t\t\trow.x1 = x1;\r\n\t\t\trow.y1 = y1;\r\n\r\n\t\t\tif (row.dice) {\r\n\t\t\t\trow.y1 = value ? (y0 += (dy * sumValue) / value) : y1;\r\n\t\t\t\tthis.dice(row);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trow.x1 = value ? (x0 += (dx * sumValue) / value) : x1;\r\n\t\t\t\tthis.slice(row);\r\n\t\t\t}\r\n\t\t\tvalue -= sumValue;\r\n\t\t\ti0 = i1;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected handleSeriesAdded2() {\r\n\t\t// void\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic handleDataItemValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tif (name == \"value\") {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tif (name == \"value\") {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getLegendLevel(dataItem: TreeMapDataItem): TreeMapDataItem {\r\n\t\tif (!dataItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!dataItem.children) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (dataItem.children.length > 1) {\r\n\t\t\treturn dataItem;\r\n\t\t}\r\n\t\telse if (dataItem.children.length == 1) {\r\n\t\t\treturn this.getLegendLevel(dataItem.children.getIndex(0));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn dataItem;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A data item associated with top node.\r\n\t * \r\n\t * @since 4.8.2\r\n\t */\r\n\tpublic get homeDataItem():TreeMapDataItem {\r\n\t\treturn this._homeDataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Setups the legend to use the chart's data.\r\n\t * @ignore\r\n\t */\r\n\tpublic feedLegend(): void {\r\n\t\tlet legend = this.legend;\r\n\t\tif (legend) {\r\n\r\n\t\t\tlegend.dataFields.name = \"name\";\r\n\r\n\t\t\tlet legendParent = this.getLegendLevel(this._homeDataItem);\r\n\r\n\t\t\tif (legendParent) {\r\n\t\t\t\tlet legendData: Array<this[\"_dataItem\"]> = [];\r\n\r\n\t\t\t\tlegendParent.children.each((dataItem) => {\r\n\t\t\t\t\t//if (!dataItem.hiddenInLegend) {\r\n\t\t\t\t\tlegendData.push(dataItem);\r\n\t\t\t\t\t//}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tlegend.data = legendData;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\r\n\t\tsuper.disposeData();\r\n\r\n\t\tthis._homeDataItem = undefined;\r\n\r\n\t\tthis.series.clear();\r\n\r\n\t\tif (this.navigationBar) {\r\n\t\t\tthis.navigationBar.disposeData();\r\n\t\t}\r\n\r\n\t\tthis.xAxis.disposeData();\r\n\t\tthis.yAxis.disposeData();\r\n\t}\r\n\r\n\t/**\r\n\t * Since this chart uses hierarchical data, we need to remove childrent\r\n\t * dataField from export of non-hierarchical formats such as CSV and XSLX.\r\n\t *\r\n\t * @return Export\r\n\t */\r\n\tprotected getExporting(): Export {\r\n\t\tconst exporting = super.getExporting();\r\n\t\texporting.adapter.add(\"formatDataFields\", (info) => {\r\n\t\t\tif (info.format == \"csv\" || info.format == \"xlsx\") {\r\n\t\t\t\tif ($type.hasValue(this.dataFields.children)) {\r\n\t\t\t\t\tdelete info.dataFields[this.dataFields.children];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn info;\r\n\t\t})\r\n\t\treturn exporting;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TreeMap\"] = TreeMap;\r\n","/**\r\n * Module, defining Axis Renderer for horizontal 3D axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererX, IAxisRendererXProperties, IAxisRendererXAdapters, IAxisRendererXEvents } from \"../axes/AxisRendererX\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { XYChart3D } from \"../types/XYChart3D\";\r\nimport { Grid } from \"../axes/Grid\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererX3D]].\r\n */\r\nexport interface IAxisRendererX3DProperties extends IAxisRendererXProperties { }\r\n\r\n/**\r\n * Defines events for [[AxisRendererX3D]].\r\n */\r\nexport interface IAxisRendererX3DEvents extends IAxisRendererXEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRendererX3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererX3DAdapters extends IAxisRendererXAdapters, IAxisRendererX3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Renderer for horizontal 3D axis.\r\n *\r\n * @see {@link IAxisRendererX3DEvents} for a list of available events\r\n * @see {@link IAxisRendererX3DAdapters} for a list of available Adapters\r\n */\r\nexport class AxisRendererX3D extends AxisRendererX {\r\n\r\n\t/**\r\n\t * Defines available properties\r\n\t */\r\n\tpublic _properties!: IAxisRendererX3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IAxisRendererX3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererX3DEvents;\r\n\r\n\t/**\r\n\t * A related chart.\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<XYChart3D>();\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisRendererX3D\";\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Grid, position: number, endPosition: number) {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\r\n\t\tif (grid.element) {\r\n\r\n\t\t\tlet dx: number = this.chart.dx3D || 0;\r\n\t\t\tlet dy: number = this.chart.dy3D || 0;\r\n\r\n\t\t\tlet h: number = this.getHeight();\r\n\r\n\t\t\tgrid.path = $path.moveTo({ x: dx, y: dy }) + $path.lineTo({ x: dx, y: h + dy }) + $path.lineTo({ x: 0, y: h });\r\n\t\t}\r\n\t\tthis.positionItem(grid, point);\r\n\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement() {\r\n\t\tsuper.updateBaseGridElement();\r\n\r\n\t\tlet h = this.getHeight();\r\n\t\tlet dx = this.chart.dx3D || 0;\r\n\t\tlet dy = this.chart.dy3D || 0;\r\n\t\tthis.baseGrid.path = $path.moveTo({ x: dx, y: dy }) + $path.lineTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: h });\r\n\t}\r\n\r\n\t/**\r\n\t * Chart, associated with the Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(chart: XYChart3D) {\r\n\t\tif (chart) {\r\n\t\t\tthis._chart.set(chart, chart.events.on(\"propertychanged\", this.handle3DChanged, this, false));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): XYChart3D {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when 3D-related settings change, like depth or angle.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handle3DChanged(event: AMEvent<Sprite, ISpriteEvents>[\"propertychanged\"]): void {\r\n\t\tif (event.property == \"depth\" || event.property == \"angle\") {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"AxisRendererX3D\"] = AxisRendererX3D;\r\n","/**\r\n * Module, defining Axis Renderer for vertical 3D axes.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AxisRendererY, IAxisRendererYProperties, IAxisRendererYAdapters, IAxisRendererYEvents } from \"../axes/AxisRendererY\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { XYChart3D } from \"../types/XYChart3D\";\r\nimport { Grid } from \"../axes/Grid\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[AxisRendererY3D]].\r\n */\r\nexport interface IAxisRendererY3DProperties extends IAxisRendererYProperties { }\r\n\r\n/**\r\n * Defines events for [[AxisRendererY3D]].\r\n */\r\nexport interface IAxisRendererY3DEvents extends IAxisRendererYEvents { }\r\n\r\n/**\r\n * Defines adapters for [[AxisRendererY3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IAxisRendererY3DAdapters extends IAxisRendererYAdapters, IAxisRendererY3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Renderer for vertical 3D axis.\r\n *\r\n * @see {@link IAxisRendererY3DEvents} for a list of available events\r\n * @see {@link IAxisRendererY3DAdapters} for a list of available Adapters\r\n */\r\nexport class AxisRendererY3D extends AxisRendererY {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IAxisRendererY3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IAxisRendererY3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAxisRendererY3DEvents;\r\n\r\n\t/**\r\n\t * A related chart.\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<XYChart3D>();\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param axis Related axis\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"AxisRendererY3D\";\r\n\t\tthis._disposers.push(this._chart);\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions a grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param grid Grid element\r\n\t * @param position Starting position\r\n\t * @param endPosition End position\r\n\t */\r\n\tpublic updateGridElement(grid: Grid, position: number, endPosition: number): void {\r\n\t\tposition = position + (endPosition - position) * grid.location;\r\n\r\n\t\tlet point: IPoint = this.positionToPoint(position);\r\n\t\tif (grid.element) {\r\n\r\n\t\t\tlet dx: number = this.chart.dx3D || 0;\r\n\t\t\tlet dy: number = this.chart.dy3D || 0;\r\n\r\n\t\t\tlet w: number = this.getWidth();\r\n\r\n\t\t\tgrid.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: dx, y: dy }) + $path.lineTo({ x: w + dx, y: dy });\r\n\t\t}\r\n\t\tthis.positionItem(grid, point);\r\n\r\n\t\tthis.toggleVisibility(grid, position, 0, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates and positions the base grid element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateBaseGridElement(): void {\r\n\t\tsuper.updateBaseGridElement();\r\n\r\n\t\tlet dx: number = this.chart.dx3D || 0;\r\n\t\tlet dy: number = this.chart.dy3D || 0;\r\n\r\n\t\tlet w: number = this.getWidth();\r\n\t\tthis.baseGrid.path = $path.moveTo({ x: 0, y: 0 })\r\n\t\t\t+ $path.lineTo({ x: w, y: 0 })\r\n\t\t\t+ $path.lineTo({ x: w + dx, y: dy });\r\n\t}\r\n\r\n\t/**\r\n\t * Chart, associated with the Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(chart: XYChart3D) {\r\n\t\tif (chart) {\r\n\t\t\tthis._chart.set(chart, chart.events.on(\"propertychanged\", this.handle3DChanged, this, false));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): XYChart3D {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Invoked when 3D-related settings change, like depth or angle.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handle3DChanged(event: AMEvent<Sprite, ISpriteEvents>[\"propertychanged\"]): void {\r\n\t\tif (event.property == \"depth\" || event.property == \"angle\") {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","/**\r\n * Module that defines everything related to building 3D Columns.\r\n * It is a container which has column3D element which is a Rectangle3D.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column, IColumnProperties, IColumnAdapters, IColumnEvents } from \"./Column\";\r\nimport { Rectangle3D } from \"../../core/elements/3d/Rectangle3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { RadialGradient } from \"../../core/rendering/fills/RadialGradient\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { Pattern } from \"../../core/rendering/fills/Pattern\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Column3D]].\r\n */\r\nexport interface IColumn3DProperties extends IColumnProperties { }\r\n\r\n/**\r\n * Defines events for [[Column3D]].\r\n */\r\nexport interface IColumn3DEvents extends IColumnEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Column3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IColumn3DAdapters extends IColumnAdapters, IColumn3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates Column3Ds.\r\n *\r\n * @see {@link IColumn3DEvents} for a list of available events\r\n * @see {@link IColumn3DAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class Column3D extends Column {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IColumn3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IColumn3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IColumn3DEvents;\r\n\r\n\r\n\t/**\r\n\t * column3D element\r\n\t */\r\n\tpublic column3D: Rectangle3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Column3D\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createAssets() {\r\n\t\tthis.column3D = this.createChild(Rectangle3D);\r\n\t\tthis.column3D.shouldClone = false;\r\n\t\tthis.column3D.strokeOpacity = 0;\r\n\r\n\t\t// some dirty hack so that if user access column, it won't get error\r\n\t\tthis.column = <any>this.column3D;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\t\tif (this.column3D) {\r\n\t\t\tthis.column3D.width = this.pixelWidth;\r\n\t\t\tthis.column3D.height = this.pixelHeight;\r\n\t\t\tif(this.column3D.invalid){\r\n\t\t\t\tthis.column3D.validate();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Column3D]].\r\n\t *\r\n\t * @param source Source Column3D\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.column3D) {\r\n\t\t\tthis.column3D.copyFrom(source.column3D);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets actual `fill` property on the SVG element, including applicable color\r\n\t * modifiers.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Fill\r\n\t */\r\n\tprotected setFill(value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>): void {\r\n\t\tsuper.setFill(value);\r\n\t\tthis.column.fill = value;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Column3D\"] = Column3D;\r\n","/**\r\n * 3D column series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, IColumnSeriesProperties, IColumnSeriesDataFields, IColumnSeriesAdapters, IColumnSeriesEvents, ColumnSeriesDataItem } from \"../series/ColumnSeries\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { XYChart3D } from \"../types/XYChart3D\";\r\nimport { Column3D } from \"../elements/Column3D\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nexport class ColumnSeries3DDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the column.\r\n\t */\r\n\tpublic _column: Column3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColumnSeries3DDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[ColumnSeries3D]].\r\n */\r\nexport interface IColumnSeries3DDataFields extends IColumnSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[ColumnSeries3D]].\r\n */\r\nexport interface IColumnSeries3DProperties extends IColumnSeriesProperties {\r\n\r\n\t/**\r\n\t * Depth (height) of the slices in the series in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tdepth?: number;\r\n\r\n\t/**\r\n\t * Angle of view for the slices in series. (0-360)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tangle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[ColumnSeries3D]].\r\n */\r\nexport interface IColumnSeries3DEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ColumnSeries3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IColumnSeries3DAdapters extends IColumnSeriesAdapters, IColumnSeries3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a 3D column graph.\r\n *\r\n * @see {@link IColumnSeries3DEvents} for a list of available Events\r\n * @see {@link IColumnSeries3DAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class ColumnSeries3D extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Type of data item.\r\n\t */\r\n\tpublic _dataItem: ColumnSeries3DDataItem;\r\n\r\n\t/**\r\n\t * Type of column.\r\n\t */\r\n\tpublic _column: Column3D;\r\n\r\n\t/**\r\n\t * Defines the type for data fields.\r\n\t */\r\n\tpublic _dataFields: IColumnSeries3DDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IColumnSeries3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IColumnSeries3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IColumnSeries3DEvents;\r\n\r\n\t/**\r\n\t * Specifies how deep in 3d space columns should be drawn.\r\n\t *\r\n\t * Internal use only.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic depthIndex: number;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: XYChart3D;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"ColumnSeries3D\";\r\n\r\n\t\tthis.columns.template.column3D.applyOnClones = true;\r\n\t\tthis.columns.template.hiddenState.properties.visible = true;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get columnsContainer(): Container {\r\n\t\tlet chart = this.chart;\r\n\t\tif (chart && chart.columnsContainer && chart.leftAxesContainer.layout != \"vertical\" && chart.rightAxesContainer.layout != \"vertical\" && chart.bottomAxesContainer.layout != \"horizontal\" && chart.topAxesContainer.layout != \"horizontal\") {\r\n\t\t\treturn chart.columnsContainer;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._columnsContainer;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElementReal(dataItem);\r\n\t\tif (dataItem.column) {\r\n\t\t\tdataItem.column.dx = this.dx;\r\n\t\t\tdataItem.column.dy = this.dy;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates data item's elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements(): void {\r\n\t\tsuper.validateDataElements();\r\n\t\tif (this.chart) {\r\n\t\t\tthis.chart.invalidateLayout();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an element to use for 3D bar.\r\n\t * @ignore\r\n\t * @return Element.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new Column3D();\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Depth (height) of the slices in the series in pixels.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Depth (px)\r\n\t */\r\n\tpublic set depth(value: number) {\r\n\t\tthis.setPropertyValue(\"depth\", value, true);\r\n\t\tlet template = this.columns.template; // todo: Cone is not Rectangle3D, maybe we should do some I3DShape?\r\n\t\ttemplate.column3D.depth = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Depth (px)\r\n\t */\r\n\tpublic get depth(): number {\r\n\t\treturn this.getPropertyValue(\"depth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Angle of view for the slices in series. (0-360)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Angle (0-360)\r\n\t */\r\n\tpublic set angle(value: number) {\r\n\t\tthis.setPropertyValue(\"angle\", value);\r\n\t\tlet template = this.columns.template;\r\n\t\ttemplate.column3D.angle = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Angle (0-360)\r\n\t */\r\n\tpublic get angle(): number {\r\n\t\treturn this.getPropertyValue(\"angle\");\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColumnSeries3D\"] = ColumnSeries3D;\r\nregistry.registeredClasses[\"ColumnSeries3DDataItem\"] = ColumnSeries3DDataItem;\r\n","/**\r\n * Module for building 3D serial charts.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * Imports\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { XYChart, IXYChartProperties, IXYChartDataFields, IXYChartAdapters, IXYChartEvents, XYChartDataItem } from \"./XYChart\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { AxisRendererX3D } from \"../axes/AxisRendererX3D\";\r\nimport { AxisRendererY3D } from \"../axes/AxisRendererY3D\";\r\nimport { ColumnSeries3D } from \"../series/ColumnSeries3D\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[XYChart3D]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class XYChart3DDataItem extends XYChartDataItem {\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChart3DDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYChart3D]].\r\n */\r\nexport interface IXYChart3DDataFields extends IXYChartDataFields { }\r\n\r\n/**\r\n * Defines available properties for [[XYChart3D]].\r\n */\r\nexport interface IXYChart3DProperties extends IXYChartProperties {\r\n\r\n\t/**\r\n\t * Depths of the chart in pixels.\r\n\t */\r\n\tdepth?: number;\r\n\r\n\t/**\r\n\t * Angle the chart is viewed at.\r\n\t */\r\n\tangle?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[XYChart3D]].\r\n */\r\nexport interface IXYChart3DEvents extends IXYChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYChart3D]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYChart3DAdapters extends IXYChartAdapters, IXYChart3DProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a 3D XY chart.\r\n *\r\n * @see {@link IXYChart3DEvents} for a list of available Events\r\n * @see {@link IXYChart3DAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/} for documentation\r\n * @important\r\n */\r\nexport class XYChart3D extends XYChart {\r\n\r\n\t/**\r\n\t * Available data fields.\r\n\t */\r\n\tpublic _dataFields: IXYChart3DDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYChart3DProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYChart3DAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYChart3DEvents;\r\n\r\n\t/**\r\n\t * Type of the axis renderer to use for X axes.\r\n\t */\r\n\tprotected _axisRendererX: typeof AxisRendererX3D = AxisRendererX3D;\r\n\r\n\t/**\r\n\t * Type of the axis renderer to use for Y axes.\r\n\t */\r\n\tprotected _axisRendererY: typeof AxisRendererY3D = AxisRendererY3D;\r\n\r\n\t/**\r\n\t * A container to add 3D column elements to.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic columnsContainer: Container;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChart3D\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.depth = 30;\r\n\t\tthis.angle = 30;\r\n\r\n\t\t// Creeate container for columns\r\n\t\tlet columnsContainer = this.seriesContainer.createChild(Container);\r\n\t\tcolumnsContainer.shouldClone = false;\r\n\t\tcolumnsContainer.isMeasured = false;\r\n\t\tcolumnsContainer.layout = \"none\";\r\n\t\tthis.columnsContainer = columnsContainer;\r\n\r\n\t\tthis.columnsContainer.mask = this.createChild(Sprite);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * This is done because for some reason IE doesn't change mask if path of a\r\n\t * mask changes.\r\n\t */\r\n\tprotected updateSeriesMasks(): void {\r\n\t\tsuper.updateSeriesMasks();\r\n\t\tif ($utils.isIE()) {\r\n\t\t\tlet columnsContainer = this.columnsContainer;\r\n\t\t\tlet mask = columnsContainer.mask;\r\n\t\t\tcolumnsContainer.mask = undefined;\r\n\t\t\tcolumnsContainer.mask = mask;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Depth of the 3D chart / columns in pixels.\r\n\t *\r\n\t * @param value Depth (px)\r\n\t */\r\n\tpublic set depth(value: number) {\r\n\t\tthis.setPropertyValue(\"depth\", value);\r\n\t\tthis.fixLayout();\r\n\t\tthis.invalidateDataUsers();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Depth (px)\r\n\t */\r\n\tpublic get depth(): number {\r\n\t\treturn this.getPropertyValue(\"depth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Angle the chart is viewed at.\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param value Angle\r\n\t */\r\n\tpublic set angle(value: number) {\r\n\t\tthis.setPropertyValue(\"angle\", value);\r\n\t\tthis.fixLayout();\r\n\t\tthis.invalidateDataUsers();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle\r\n\t */\r\n\tpublic get angle(): number {\r\n\t\treturn this.getPropertyValue(\"angle\");\r\n\t}\r\n\r\n\t/**\r\n\t * A calculated horizontal 3D offset (px).\r\n\t *\r\n\t * @readonly\r\n\t * @return Offset (px)\r\n\t */\r\n\tpublic get dx3D(): number {\r\n\t\treturn $math.cos(this.angle) * this.depth;\r\n\t}\r\n\r\n\t/**\r\n\t * A calculated vertical 3D offset (px).\r\n\t *\r\n\t * @readonly\r\n\t * @return Offset (px)\r\n\t */\r\n\tpublic get dy3D(): number {\r\n\t\treturn -$math.sin(this.angle) * this.depth;\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates layout\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateLayout() {\r\n\t\tsuper.validateLayout();\r\n\t\tthis.fixColumns();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the layout (padding and scrollbar positions) to accommodate for\r\n\t * 3D depth and angle.\r\n\t */\r\n\tprotected fixLayout(): void {\r\n\r\n\t\tthis.chartContainer.marginTop = -this.dy3D;\r\n\t\tthis.chartContainer.paddingRight = this.dx3D;\r\n\r\n\t\tif (this.scrollbarX) {\r\n\t\t\tthis.scrollbarX.dy = this.dy3D;\r\n\t\t\tthis.scrollbarX.dx = this.dx3D;\r\n\t\t}\r\n\r\n\t\tif (this.scrollbarY) {\r\n\t\t\tthis.scrollbarY.dy = this.dy3D;\r\n\t\t\tthis.scrollbarY.dx = this.dx3D;\r\n\t\t}\r\n\r\n\t\tthis.fixColumns();\r\n\r\n\t\tsuper.fixLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates column positions, offset and dimensions based on chart's angle\r\n\t * and depth.\r\n\t */\r\n\tprotected fixColumns(): void {\r\n\t\tlet count: number = 1;\r\n\t\tlet i = 0;\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series instanceof ColumnSeries3D) {\r\n\r\n\t\t\t\tif (!series.clustered && i > 0) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tseries.depthIndex = count - 1;\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet s: number = 0;\r\n\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series instanceof ColumnSeries3D) {\r\n\r\n\t\t\t\tseries.depth = this.depth / (count);\r\n\t\t\t\tseries.angle = this.angle;\r\n\t\t\t\tif (series.columnsContainer == this.columnsContainer) {\r\n\t\t\t\t\tseries.dx = this.depth / (count) * $math.cos(this.angle) * (series.depthIndex);\r\n\t\t\t\t\tseries.dy = -this.depth / (count) * $math.sin(this.angle) * (series.depthIndex);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet inversed = false;\r\n\t\t\t\tif ((series.baseAxis == series.xAxis && series.xAxis.renderer.inversed) || (series.baseAxis == series.yAxis && series.yAxis.renderer.inversed)) {\r\n\t\t\t\t\tinversed = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet i: number = 1;\r\n\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\tlet column = dataItem.column;\r\n\t\t\t\t\tif (column) {\r\n\t\t\t\t\t\tif (inversed) {\r\n\t\t\t\t\t\t\tcolumn.zIndex = 1000 * (1000 - i) + s - series.depthIndex * 100;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tcolumn.zIndex = 1000 * i + s - series.depthIndex * 100;\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t});\r\n\t\t\t\tif (inversed) {\r\n\t\t\t\t\ts--;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ts++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.maskColumns();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tconfig.series[i].type = config.series[i].type || \"ColumnSeries3D\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\tprotected maskColumns() {\r\n\t\tlet w: number = this.plotContainer.pixelWidth;\r\n\t\tlet h: number = this.plotContainer.pixelHeight;\r\n\r\n\t\tlet dx: number = this.dx3D;\r\n\t\tlet dy: number = this.dy3D;\r\n\r\n\t\tlet path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: dx, y: dy }) + $path.lineTo({ x: w + dx, y: dy }) + $path.lineTo({ x: w + dx, y: h + dy }) + $path.lineTo({ x: w, y: h }) + $path.lineTo({ x: w, y: h }) + $path.lineTo({ x: 0, y: h }) + $path.closePath();\r\n\r\n\t\tlet columnsContainer = this.columnsContainer;\r\n\t\tif (columnsContainer && columnsContainer.mask) {\r\n\t\t\tcolumnsContainer.mask.path = path;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChart3D\"] = XYChart3D;\r\n","/**\r\n * HeatLegend module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerEvents, IContainerAdapters } from \"../../core/Container\";\r\nimport { Series } from \"../series/Series\";\r\nimport { LinearGradient } from \"../../core/rendering/fills/LinearGradient\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { toColor, Color } from \"../../core/utils/Color\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { ValueAxis } from \"../../charts/axes/ValueAxis\";\r\nimport { AxisRendererX } from \"../../charts/axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../../charts/axes/AxisRendererY\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[HeatLegend]].\r\n */\r\nexport interface IHeatLegendProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Minimum color\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tminColor?: Color;\r\n\r\n\t/**\r\n\t * Minimum value\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tminValue?: number;\r\n\r\n\t/**\r\n\t * Maximum value\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tmaxValue?: number;\r\n\r\n\r\n\t/**\r\n\t * Maximum color\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tmaxColor?: Color;\r\n\r\n\t/**\r\n\t * Number of markers (steps)\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tmarkerCount?: number;\r\n\r\n\r\n\t/**\r\n\t * Orientation\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\torientation?: \"horizontal\" | \"vertical\";\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[HeatLegend]].\r\n */\r\nexport interface IHeatLegendEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[HeatLegend]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IHeatLegendAdapters extends IContainerAdapters, IHeatLegendProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This class creates a link (waved color-filled line) between two nodes in a\r\n * Sankey Diagram.\r\n *\r\n * @see {@link IHeatLegendEvents} for a list of available events\r\n * @see {@link IHeatLegendAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class HeatLegend extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IHeatLegendProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IHeatLegendAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IHeatLegendEvents;\r\n\r\n\t/**\r\n\t * List of heat legend markers (color step rectangles).\r\n\t */\r\n\tpublic markers: ListTemplate<RoundedRectangle>;\r\n\r\n\t/**\r\n\t * Container which holds markers\r\n\t */\r\n\tpublic markerContainer: Container;\r\n\r\n\t/**\r\n\t * Value axis of a heat legend\r\n\t * @ignore\r\n\t */\r\n\tprotected _valueAxis: ValueAxis;\r\n\r\n\t/**\r\n\t * Series of a heat legend\r\n\t * @ignore\r\n\t */\r\n\tprotected _series: Series;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"HeatLegend\";\r\n\r\n\t\tthis.markerContainer = this.createChild(Container);\r\n\t\tthis.markerContainer.shouldClone = false;\r\n\r\n\t\tthis.markerCount = 1;\r\n\r\n\t\t// Create a template container and list for the a marker\r\n\t\tlet marker: RoundedRectangle = new RoundedRectangle();\r\n\t\tmarker.minHeight = 20;\r\n\t\tmarker.minWidth = 20;\r\n\t\tmarker.interactionsEnabled = false;\r\n\t\tmarker.fillOpacity = 1;\r\n\t\tmarker.cornerRadius(0, 0, 0, 0);\r\n\r\n\t\tthis.markerContainer.minHeight = 20;\r\n\t\tthis.markerContainer.minWidth = 20;\r\n\r\n\t\tthis.orientation = \"horizontal\";\r\n\r\n\t\tthis.markers = new ListTemplate<RoundedRectangle>(marker);\r\n\t\tthis._disposers.push(new ListDisposer(this.markers));\r\n\t\tthis._disposers.push(this.markers.template);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\tprotected getMinFromRules(property: string, ) {\r\n\t\tlet series = this.series;\r\n\t\tif (series) {\r\n\t\t\tlet minValue;\r\n\t\t\t$iter.eachContinue(series.heatRules.iterator(), (heatRule) => {\r\n\t\t\t\tif (heatRule.property == property) {\r\n\t\t\t\t\tminValue = heatRule.min;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\treturn minValue;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getMaxFromRules(property: string, ) {\r\n\t\tlet series = this.series;\r\n\t\tif (series) {\r\n\t\t\tlet maxValue;\r\n\t\t\t$iter.each(series.heatRules.iterator(), (heatRule) => {\r\n\t\t\t\tif (heatRule.property == property) {\r\n\t\t\t\t\tmaxValue = heatRule.max;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t\treturn maxValue;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate() {\r\n\t\tsuper.validate();\r\n\r\n\t\tthis.valueAxis.renderer.inversed = this.reverseOrder;\r\n\r\n\t\tlet series = this.series;\r\n\r\n\t\tlet minColor = this.minColor;\r\n\t\tlet maxColor = this.maxColor;\r\n\r\n\t\tif (!$type.hasValue(minColor)) {\r\n\t\t\tminColor = toColor(this.getMinFromRules(\"fill\"));\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(maxColor)) {\r\n\t\t\tmaxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n\t\t}\r\n\r\n\t\tif (series) {\r\n\t\t\tlet seriesFill = series.fill;\r\n\t\t\tif (!$type.hasValue(minColor) && seriesFill instanceof Color) {\r\n\t\t\t\tminColor = seriesFill;\r\n\t\t\t}\r\n\t\t\tif (!$type.hasValue(maxColor) && seriesFill instanceof Color) {\r\n\t\t\t\tmaxColor = seriesFill;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$type.hasValue(maxColor)) {\r\n\t\t\tmaxColor = toColor(this.getMaxFromRules(\"fill\"));\r\n\t\t}\r\n\r\n\t\tlet minOpacity = $type.toNumber(this.getMinFromRules(\"fillOpacity\"));\r\n\t\tif (!$type.isNumber(minOpacity)) {\r\n\t\t\tminOpacity = 1;\r\n\t\t}\r\n\t\tlet maxOpacity = $type.toNumber(this.getMaxFromRules(\"fillOpacity\"));\r\n\t\tif (!$type.isNumber(maxOpacity)) {\r\n\t\t\tmaxOpacity = 1;\r\n\t\t}\r\n\r\n\r\n\t\tlet minStrokeOpacity = $type.toNumber(this.getMinFromRules(\"strokeOpacity\"));\r\n\t\tif (!$type.isNumber(minStrokeOpacity)) {\r\n\t\t\tminStrokeOpacity = 1;\r\n\t\t}\r\n\t\tlet maxStrokeOpacity = $type.toNumber(this.getMaxFromRules(\"strokeOpacity\"));\r\n\t\tif (!$type.isNumber(maxStrokeOpacity)) {\r\n\t\t\tmaxStrokeOpacity = 1;\r\n\t\t}\r\n\r\n\t\tlet minStroke = toColor(this.getMinFromRules(\"stroke\"));\r\n\t\tlet maxStroke = toColor(this.getMaxFromRules(\"stroke\"));\r\n\r\n\r\n\t\t//if (series) {\r\n\t\tfor (let i = 0; i < this.markerCount; i++) {\r\n\t\t\tlet marker = this.markers.getIndex(i);\r\n\r\n\t\t\tif (!marker) {\r\n\t\t\t\tmarker = this.markers.create();\r\n\t\t\t\tmarker.parent = this.markerContainer;\r\n\t\t\t\tmarker.height = percent(100);\r\n\t\t\t\tmarker.width = percent(100);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (this.markerCount == 1) {\r\n\t\t\t\tlet gradient = new LinearGradient();\r\n\t\t\t\tif (this.reverseOrder) {\r\n\t\t\t\t\tgradient.addColor(maxColor, maxOpacity);\r\n\t\t\t\t\tgradient.addColor(minColor, minOpacity);\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tgradient.addColor(minColor, minOpacity);\r\n\t\t\t\t\tgradient.addColor(maxColor, maxOpacity);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\tgradient.rotation = -90;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmarker.fill = gradient;\r\n\t\t\t\tif ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n\t\t\t\t\tlet strokeGradient = new LinearGradient();\r\n\t\t\t\t\tif (this.reverseOrder) {\r\n\t\t\t\t\t\tstrokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n\t\t\t\t\t\tstrokeGradient.addColor(minStroke, minStrokeOpacity);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstrokeGradient.addColor(minStroke, minStrokeOpacity);\r\n\t\t\t\t\t\tstrokeGradient.addColor(maxStroke, maxStrokeOpacity);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\t\tstrokeGradient.rotation = -90;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmarker.stroke = strokeGradient;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet c = i;\r\n\t\t\t\tif (this.reverseOrder) {\r\n\t\t\t\t\tc = this.markerCount - i - 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet color = new Color($colors.interpolate(minColor.rgb, maxColor.rgb, c / this.markerCount));\r\n\t\t\t\tmarker.fill = color;\r\n\r\n\t\t\t\tlet opacity = minOpacity + (maxOpacity - minOpacity) * c / this.markerCount;\r\n\t\t\t\tmarker.fillOpacity = opacity;\r\n\r\n\t\t\t\tif ($type.hasValue(minStroke) && $type.hasValue(maxStroke)) {\r\n\t\t\t\t\tlet color = new Color($colors.interpolate(minStroke.rgb, maxStroke.rgb, c / this.markerCount));\r\n\t\t\t\t\tmarker.stroke = color;\r\n\r\n\t\t\t\t\tlet opacity = minStrokeOpacity + (maxStrokeOpacity - minStrokeOpacity) * c / this.markerCount;\r\n\t\t\t\t\tmarker.strokeOpacity = opacity;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet renderer = this.valueAxis.renderer;\r\n\t\tif (this.markerCount > 1) {\r\n\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\trenderer.minGridDistance = this.measuredWidth / this.markerCount;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trenderer.minGridDistance = this.measuredHeight / this.markerCount;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.valueAxis.invalidate();\r\n\r\n\t\tfor (let i = this.markerCount, len = this.markers.length; i < len; i++) {\r\n\t\t\tthis.markers.getIndex(i).parent = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Min color of a heat legend. If a series is set for the legend, minColor is taken from series.\r\n\t *\r\n\t * @param {Color}\r\n\t */\r\n\tpublic set minColor(value: Color) {\r\n\r\n\t\tif (!(value instanceof Color)) {\r\n\t\t\tvalue = toColor(value);\r\n\t\t}\r\n\r\n\t\tthis.setColorProperty(\"minColor\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns minColor value\r\n\t * @return {Color}\r\n\t */\r\n\tpublic get minColor(): Color {\r\n\t\treturn this.getPropertyValue(\"minColor\");\r\n\t}\r\n\r\n\t/**\r\n\t * Max color of a heat legend. If a series is set for the legend, maxColor is taken from series.\r\n\t *\r\n\t * @param {Color}\r\n\t */\r\n\tpublic set maxColor(value: Color) {\r\n\r\n\t\tif (!(value instanceof Color)) {\r\n\t\t\tvalue = toColor(value);\r\n\t\t}\r\n\r\n\t\tthis.setColorProperty(\"maxColor\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns maxColor value\r\n\t * @return {Color}\r\n\t */\r\n\tpublic get maxColor(): Color {\r\n\t\treturn this.getPropertyValue(\"maxColor\");\r\n\t}\r\n\r\n\t/**\r\n\t * Number of color squares (markers) in the heat legend. If only 1 marker is used, it will be filled with gradient.\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set markerCount(value: number) {\r\n\t\tthis.setPropertyValue(\"markerCount\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns number of color squares (markers).\r\n\t * @return {number}\r\n\t */\r\n\tpublic get markerCount(): number {\r\n\t\treturn this.getPropertyValue(\"markerCount\");\r\n\t}\r\n\r\n\t/**\r\n\t * Minimum value of heat legend's value axis. If a series is set for the legend, min is taken from series.\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set minValue(value: number) {\r\n\t\tthis.setPropertyValue(\"minValue\", value);\r\n\t\tthis.valueAxis.min = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns minimum value of heat legend.\r\n\t * @return {number}\r\n\t */\r\n\tpublic get minValue(): number {\r\n\t\treturn this.getPropertyValue(\"minValue\");\r\n\t}\r\n\r\n\t/**\r\n\t * Maximum value of heat legend's value axis. If a series is set for the legend, max is taken from series.\r\n\t *\r\n\t * @param {number}\r\n\t */\r\n\tpublic set maxValue(value: number) {\r\n\t\tthis.setPropertyValue(\"maxValue\", value);\r\n\t\tthis.valueAxis.max = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns maximum value of heat legend.\r\n\t * @return {number}\r\n\t */\r\n\tpublic get maxValue(): number {\r\n\t\treturn this.getPropertyValue(\"maxValue\");\r\n\t}\r\n\r\n\t/**\r\n\t* Heat legend orientation. Note, if you change orientation of a heat legend, you must set value axis renderer properties after that, as with orientation renderer changes.\r\n\t*\r\n\t* @param {\"horizontal\" | \"vertical\"}\r\n\t*/\r\n\tpublic set orientation(value: \"horizontal\" | \"vertical\") {\r\n\t\tthis.setPropertyValue(\"orientation\", value, true);\r\n\t\tlet markerContainer = this.markerContainer;\r\n\t\tlet valueAxis = this.valueAxis;\r\n\r\n\t\t// HORIZONTAL\r\n\t\tif (value == \"horizontal\") {\r\n\t\t\tif (!$type.hasValue(this.width)) {\r\n\t\t\t\tthis.width = 200;\r\n\t\t\t}\r\n\t\t\tthis.height = undefined;\r\n\r\n\t\t\tvalueAxis.width = percent(100);\r\n\t\t\tvalueAxis.height = undefined;\r\n\t\t\tvalueAxis.tooltip.pointerOrientation = \"vertical\";\r\n\r\n\t\t\tthis.layout = \"vertical\";\r\n\t\t\tmarkerContainer.width = percent(100);\r\n\t\t\tmarkerContainer.height = undefined;\r\n\t\t\tif (!(valueAxis.renderer instanceof AxisRendererX)) {\r\n\t\t\t\tvalueAxis.renderer = new AxisRendererX();\r\n\t\t\t}\r\n\t\t}\r\n\t\t// VERTICAL\r\n\t\telse {\r\n\t\t\tif (!$type.hasValue(this.height)) {\r\n\t\t\t\tthis.height = 200;\r\n\t\t\t}\r\n\t\t\tthis.width = undefined;\r\n\t\t\tthis.layout = \"horizontal\";\r\n\t\t\tmarkerContainer.width = undefined;\r\n\t\t\tmarkerContainer.height = percent(100);\r\n\t\t\tvalueAxis.height = percent(100);\r\n\t\t\tvalueAxis.width = undefined;\r\n\t\t\tvalueAxis.tooltip.pointerOrientation = \"horizontal\";\r\n\r\n\t\t\tif (!(valueAxis.renderer instanceof AxisRendererY)) {\r\n\t\t\t\tvalueAxis.renderer = new AxisRendererY();\r\n\t\t\t}\r\n\t\t\tvalueAxis.renderer.inside = true;\r\n\t\t\tvalueAxis.renderer.labels.template.inside = true;\r\n\r\n\t\t\tthis.markerContainer.reverseOrder = true;\r\n\t\t}\r\n\r\n\t\tlet renderer = valueAxis.renderer;\r\n\t\trenderer.grid.template.disabled = true;\r\n\t\trenderer.axisFills.template.disabled = true;\r\n\t\trenderer.baseGrid.disabled = true;\r\n\t\trenderer.labels.template.padding(2, 3, 2, 3);\r\n\r\n\t\trenderer.minHeight = undefined;\r\n\t\trenderer.minWidth = undefined;\r\n\r\n\t\tthis.markerContainer.layout = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns orientation value.\r\n\t *\r\n\t * @return {\"horizontal\" | \"vertical\"}\r\n\t */\r\n\tpublic get orientation(): \"horizontal\" | \"vertical\" {\r\n\t\treturn this.getPropertyValue(\"orientation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a value axis of heat legend. Value axis for heat legend is created automatically.\r\n\t * @param {ValueAxis}\r\n\t */\r\n\tpublic set valueAxis(valueAxis: ValueAxis) {\r\n\r\n\t\tthis._valueAxis = valueAxis;\r\n\r\n\t\tvalueAxis.parent = this;\r\n\t\tvalueAxis.strictMinMax = true;\r\n\t\tthis.orientation = this.orientation;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns valueAxis value.\r\n\t * @return {ValueAxis}\r\n\t */\r\n\tpublic get valueAxis(): ValueAxis {\r\n\t\tif (!this._valueAxis) {\r\n\t\t\tthis.valueAxis = this.createChild(ValueAxis);\r\n\t\t\tthis.valueAxis.shouldClone = false;\r\n\t\t}\r\n\t\treturn this._valueAxis;\r\n\t}\r\n\r\n\t/**\r\n\t * You can set series for heat legend. It will take min, max, minColor and maxColor values from this series.\r\n\t * @param series\r\n\t */\r\n\tset series(series: Series) {\r\n\t\tthis._series = series;\r\n\r\n\t\tlet dataField = \"value\";\r\n\r\n\t\ttry {\r\n\t\t\tlet dataFieldDefined = series.heatRules.getIndex(0).dataField;\r\n\t\t\tif (dataFieldDefined) {\r\n\t\t\t\tdataField = dataFieldDefined;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err) {\r\n\r\n\t\t}\r\n\r\n\t\tthis.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n\r\n\t\tseries.dataItem.events.on(\"calculatedvaluechanged\", (event) => {\r\n\t\t\tthis.updateMinMax(series.dataItem.values[dataField].low, series.dataItem.values[dataField].high);\r\n\t\t}, undefined, false);\r\n\r\n\t\tseries.heatRules.events.on(\"inserted\", this.invalidate, this, false);\r\n\t\tseries.heatRules.events.on(\"removed\", this.invalidate, this, false);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns series value.\r\n\t * @return {Series}\r\n\t */\r\n\tget series(): Series {\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates min/max of value axis.\r\n\t * @ignore\r\n\t */\r\n\tprotected updateMinMax(min: number, max: number) {\r\n\t\tlet valueAxis = this.valueAxis;\r\n\t\tif (!$type.isNumber(this.minValue)) {\r\n\t\t\tvalueAxis.min = min;\r\n\t\t\tvalueAxis.invalidate();\r\n\t\t}\r\n\t\tif (!$type.isNumber(this.maxValue)) {\r\n\t\t\tvalueAxis.max = max;\r\n\t\t\tvalueAxis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.series) && $type.isString(config.series)) {\r\n\t\t\t\tif ($type.isString(config.series)) {\r\n\t\t\t\t\tif (this.map.hasKey(config.series)) {\r\n\t\t\t\t\t\tconfig.series = this.map.getKey(config.series);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlet seriesId = config.series;\r\n\t\t\t\t\t\tconst disposer = this.map.events.on(\"insertKey\", function(ev) {\r\n\t\t\t\t\t\t\tif (ev.key == seriesId) {\r\n\t\t\t\t\t\t\t\tthis.series = ev.newValue;\r\n\t\t\t\t\t\t\t\tdisposer.dispose();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this);\r\n\t\t\t\t\t\tthis._disposers.push(disposer);\r\n\t\t\t\t\t\tdelete config.series;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n}\r\n\r\n\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"HeatLegend\"] = HeatLegend;\r\n","/**\r\n * Module that defines everything related to building Candlesticks.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column, IColumnProperties, IColumnAdapters, IColumnEvents } from \"./Column\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Candlestick]].\r\n */\r\nexport interface ICandlestickProperties extends IColumnProperties { }\r\n\r\n/**\r\n * Defines events for [[Candlestick]].\r\n */\r\nexport interface ICandlestickEvents extends IColumnEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Candlestick]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICandlestickAdapters extends IColumnAdapters, ICandlestickProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates Candlesticks.\r\n *\r\n * @see {@link ICandlestickEvents} for a list of available events\r\n * @see {@link ICandlestickAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class Candlestick extends Column {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICandlestickProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICandlestickAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICandlestickEvents;\r\n\r\n\t/**\r\n\t * Low line element\r\n\t */\r\n\tpublic lowLine: Line;\r\n\r\n\t/**\r\n\t * High line element\r\n\t */\r\n\tpublic highLine: Line;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Candlestick\";\r\n\t\tthis.layout = \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createAssets() {\r\n\t\tsuper.createAssets();\r\n\r\n\t\tthis.lowLine = this.createChild(Line);\r\n\t\tthis.lowLine.shouldClone = false;\r\n\r\n\t\tthis.highLine = this.createChild(Line);\r\n\t\tthis.highLine.shouldClone = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Candlestick]].\r\n\t *\r\n\t * @param source Source Candlestick\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.lowLine) {\r\n\t\t\tthis.lowLine.copyFrom(source.lowLine);\r\n\t\t}\r\n\t\tif (this.highLine) {\r\n\t\t\tthis.highLine.copyFrom(source.highLine);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Candlestick\"] = Candlestick;\r\n","/**\r\n * Candlestick Series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem, IColumnSeriesDataFields, IColumnSeriesProperties, IColumnSeriesAdapters, IColumnSeriesEvents } from \"./ColumnSeries\";\r\nimport { GroupField, IXYSeriesGroupFields } from \"./XYSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Candlestick } from \"../elements/Candlestick\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { LegendDataItem } from \"../../charts/Legend\";\r\nimport { CalculatedValue } from \"../../core/Component\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[CandlestickSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class CandlestickSeriesDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the column.\r\n\t */\r\n\tpublic _column: Candlestick;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for\r\n\t * @todo Disabled to work around TS bug (see if we can re-enable it again)\r\n\t */\r\n\t//public _component!: CandlestickSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.values.lowValueX = {};\r\n\t\tthis.values.lowValueY = {};\r\n\t\tthis.values.highValueX = {};\r\n\t\tthis.values.highValueY = {};\r\n\r\n\t\tthis.className = \"CandlestickSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Low value for horizontal axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set lowValueX(value: number) {\r\n\t\tthis.setValue(\"lowValueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get lowValueX(): number {\r\n\t\treturn this.values.lowValueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Low value for vertical axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set lowValueY(value: number) {\r\n\t\tthis.setValue(\"lowValueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get lowValueY(): number {\r\n\t\treturn this.values.lowValueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * High value for horizontal axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set highValueX(value: number) {\r\n\t\tthis.setValue(\"highValueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get highValueX(): number {\r\n\t\treturn this.values.highValueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * High value for vertical axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set highValueY(value: number) {\r\n\t\tthis.setValue(\"highValueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get highValueY(): number {\r\n\t\treturn this.values.highValueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Close value for horizontal axis.\r\n\t *\r\n\t * This is an alias for `valueX` added for convenience only.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set closeValueX(value: number) {\r\n\t\tthis.setValue(\"valueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get closeValueX(): number {\r\n\t\treturn this.values.valueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Close value for vertical axis.\r\n\t *\r\n\t * This is an alias for `valueX` added for convenience only.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set closeValueY(value: number) {\r\n\t\tthis.setValue(\"valueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get closeValueY(): number {\r\n\t\treturn this.values.valueY.value;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[CandlestickSeries]].\r\n */\r\nexport interface ICandlestickSeriesDataFields extends IColumnSeriesDataFields {\r\n\r\n\t/**\r\n\t * Field name in data which holds low numeric value for horizontal axis.\r\n\t */\r\n\tlowValueX?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds low numeric value for vertical axis.\r\n\t */\r\n\tlowValueY?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds high numeric value for horizontal axis.\r\n\t */\r\n\thighValueX?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds low numeric value for vertical axis.\r\n\t */\r\n\thighValueY?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds low date for horizontal axis.\r\n\t */\r\n\tlowDateX?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds low date for vertical axis.\r\n\t */\r\n\tlowDateY?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds high date for horizontal axis.\r\n\t */\r\n\thighDateX?: string;\r\n\r\n\t/**\r\n\t * Field name in data which holds high date for vertical axis.\r\n\t */\r\n\thighDateY?: string;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis high value for\r\n\t * the item.\r\n\t */\r\n\thighValueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis low value for\r\n\t * the item.\r\n\t */\r\n\tlowValueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis low value for\r\n\t * the item.\r\n\t */\r\n\tlowValueYShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis high value for\r\n\t * the item.\r\n\t */\r\n\thighValueYShow?: CalculatedValue;\r\n\r\n}\r\n\r\n/**\r\n * Defines data fields that can be calculated for aggregate values.\r\n * \r\n * @since 4.7.0\r\n */\r\nexport interface ICandlestickSeriesGroupFields extends IXYSeriesGroupFields {\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `lowValueX` data field.\r\n\t *\r\n\t * @default \"low\"\r\n\t */\r\n\tlowValueX?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `lowValueY` data field.\r\n\t *\r\n\t * @default \"low\"\r\n\t */\r\n\tlowValueY?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `highValueX` data field.\r\n\t *\r\n\t * @default \"high\"\r\n\t */\r\n\thighValueX?: GroupField;\r\n\r\n\t/**\r\n\t * Indicates how to calculate aggregate value for `highValueY` data field.\r\n\t *\r\n\t * @default \"high\"\r\n\t */\r\n\thighValueY?: GroupField;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[CandlestickSeries]].\r\n */\r\nexport interface ICandlestickSeriesProperties extends IColumnSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[CandlestickSeries]].\r\n */\r\nexport interface ICandlestickSeriesEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CandlestickSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICandlestickSeriesAdapters extends IColumnSeriesAdapters, ICandlestickSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a candlestick graph.\r\n *\r\n * @see {@link ICandlestickSeriesEvents} for a list of available Events\r\n * @see {@link ICandlestickSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class CandlestickSeries extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Defines type of the group fields.\r\n\t * \r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t */\r\n\tpublic _groupFields: ICandlestickSeriesGroupFields;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: CandlestickSeriesDataItem;\r\n\r\n\t/**\r\n\t * Sets type of the column.\r\n\t */\r\n\tpublic _column: Candlestick;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: ICandlestickSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICandlestickSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICandlestickSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICandlestickSeriesEvents;\r\n\r\n\t/**\r\n\t * A data field to look for \"low\" value for horizontal axis.\r\n\t */\r\n\tprotected _xLowField: $type.Keyof<this[\"_dataFields\"]>;\r\n\r\n\t/**\r\n\t * A data field to look for \"low\" value for vertical axis.\r\n\t */\r\n\tprotected _yLowField: $type.Keyof<this[\"_dataFields\"]>;\r\n\r\n\t/**\r\n\t * A data field to look for \"high\" value for horizontal axis.\r\n\t */\r\n\tprotected _xHighField: $type.Keyof<this[\"_dataFields\"]>;\r\n\r\n\t/**\r\n\t * A data field to look for \"high\" value for vertical axis.\r\n\t */\r\n\tprotected _yHighField: $type.Keyof<this[\"_dataFields\"]>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CandlestickSeries\";\r\n\r\n\t\tthis.groupFields.lowValueX = \"low\";\r\n\t\tthis.groupFields.lowValueY = \"low\";\r\n\r\n\t\tthis.groupFields.highValueX = \"high\";\r\n\t\tthis.groupFields.highValueY = \"high\";\r\n\r\n\t\tthis.strokeOpacity = 1;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\t\tlet positiveColor = interfaceColors.getFor(\"positive\");\r\n\t\tlet negativeColor = interfaceColors.getFor(\"negative\");\r\n\r\n\t\tthis.dropFromOpenState.properties.fill = negativeColor;\r\n\t\tthis.dropFromOpenState.properties.stroke = negativeColor;\r\n\r\n\t\tthis.riseFromOpenState.properties.fill = positiveColor;\r\n\t\tthis.riseFromOpenState.properties.stroke = positiveColor;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Candlestick Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new CandlestickSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElementReal(dataItem);\r\n\t\tthis.validateCandlestick(dataItem);\r\n\t}\r\n\r\n\tprotected validateCandlestick(dataItem: this[\"dataItem\"]) {\r\n\t\tlet column: Candlestick = dataItem.column;\r\n\t\tif (column) {\r\n\t\t\tlet lowLine = column.lowLine;\r\n\t\t\tlet highLine = column.highLine;\r\n\r\n\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\tlet x: number = column.pixelWidth / 2;\r\n\r\n\t\t\t\tlowLine.x = x;\r\n\t\t\t\thighLine.x = x;\r\n\r\n\t\t\t\tlet open = dataItem.getWorkingValue(this.yOpenField);\r\n\t\t\t\tlet close = dataItem.getWorkingValue(this.yField);\r\n\r\n\t\t\t\tlet yOpen = this.yAxis.getY(dataItem, this.yOpenField);\r\n\t\t\t\tlet yClose = this.yAxis.getY(dataItem, this.yField);\r\n\t\t\t\tlet yLow = this.yAxis.getY(dataItem, this.yLowField);\r\n\t\t\t\tlet yHigh = this.yAxis.getY(dataItem, this.yHighField);\r\n\r\n\t\t\t\tlet pixelY = column.pixelY;\r\n\r\n\t\t\t\tlowLine.y1 = yLow - pixelY;\r\n\t\t\t\thighLine.y1 = yHigh - pixelY;\r\n\r\n\t\t\t\tif (open < close) {\r\n\t\t\t\t\tlowLine.y2 = yOpen - pixelY;\r\n\t\t\t\t\thighLine.y2 = yClose - pixelY;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlowLine.y2 = yClose - pixelY;\r\n\t\t\t\t\thighLine.y2 = yOpen - pixelY;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\tlet y: number = column.pixelHeight / 2;\r\n\r\n\t\t\t\tlowLine.y = y;\r\n\t\t\t\thighLine.y = y;\r\n\r\n\t\t\t\tlet open = dataItem.getWorkingValue(this.xOpenField);\r\n\t\t\t\tlet close = dataItem.getWorkingValue(this.xField);\r\n\r\n\t\t\t\tlet xOpen = this.xAxis.getX(dataItem, this.xOpenField);\r\n\t\t\t\tlet xClose = this.xAxis.getX(dataItem, this.xField);\r\n\t\t\t\tlet xLow = this.xAxis.getX(dataItem, this.xLowField);\r\n\t\t\t\tlet xHigh = this.xAxis.getX(dataItem, this.xHighField);\r\n\r\n\t\t\t\tlet pixelX = column.pixelX;\r\n\r\n\t\t\t\tlowLine.x1 = xLow - pixelX;\r\n\t\t\t\thighLine.x1 = xHigh - pixelX;\r\n\r\n\t\t\t\tif (open < close) {\r\n\t\t\t\t\tlowLine.x2 = xOpen - pixelX;\r\n\t\t\t\t\thighLine.x2 = xClose - pixelX;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlowLine.x2 = xClose - pixelX;\r\n\t\t\t\t\thighLine.x2 = xOpen - pixelX;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t\t// LOW LINE\r\n\t\t\t\tlet rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (rangeColumn) {\r\n\t\t\t\t\tlet rangeLowLine = rangeColumn.lowLine;\r\n\t\t\t\t\trangeLowLine.x = lowLine.x;\r\n\t\t\t\t\trangeLowLine.y = lowLine.y;\r\n\t\t\t\t\trangeLowLine.x1 = lowLine.x1;\r\n\t\t\t\t\trangeLowLine.x2 = lowLine.x2;\r\n\t\t\t\t\trangeLowLine.y1 = lowLine.y1;\r\n\t\t\t\t\trangeLowLine.y2 = lowLine.y2;\r\n\r\n\t\t\t\t\t// HIGH LINE\r\n\t\t\t\t\tlet rangehighLine = rangeColumn.highLine;\r\n\t\t\t\t\trangehighLine.x = highLine.x;\r\n\t\t\t\t\trangehighLine.y = highLine.y;\r\n\t\t\t\t\trangehighLine.x1 = highLine.x1;\r\n\t\t\t\t\trangehighLine.x2 = highLine.x2;\r\n\t\t\t\t\trangehighLine.y1 = highLine.y1;\r\n\t\t\t\t\trangehighLine.y2 = highLine.y2;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A data field to look for \"low\" value for horizontal axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Field name\r\n\t */\r\n\tpublic get xLowField(): string {\r\n\t\treturn this._xLowField;\r\n\t}\r\n\r\n\t/**\r\n\t * A data field to look for \"low\" value for vertical axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Field name\r\n\t */\r\n\tpublic get yLowField(): string {\r\n\t\treturn this._yLowField;\r\n\t}\r\n\r\n\t/**\r\n\t * A data field to look for \"high\" value for horizontal axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Field name\r\n\t */\r\n\tpublic get xHighField(): string {\r\n\t\treturn this._xHighField;\r\n\t}\r\n\r\n\t/**\r\n\t * A data field to look for \"high\" value for vertical axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Field name\r\n\t */\r\n\tpublic get yHighField(): string {\r\n\t\treturn this._yHighField;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up which data fields to use for data access.\r\n\t */\r\n\tprotected defineFields() {\r\n\t\tsuper.defineFields();\r\n\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\t\tif (xAxis && yAxis) {\r\n\t\t\tif (this.baseAxis == xAxis) {\r\n\t\t\t\tlet yAxisFieldName: string = $utils.capitalize(yAxis.axisFieldName);\r\n\t\t\t\tthis._yLowField = <$type.Keyof<this[\"_dataFields\"]>>(\"low\" + yAxisFieldName + \"Y\");\r\n\t\t\t\tthis._yHighField = <$type.Keyof<this[\"_dataFields\"]>>(\"high\" + yAxisFieldName + \"Y\");\r\n\t\t\t}\r\n\r\n\t\t\tif (this.baseAxis == yAxis) {\r\n\t\t\t\tlet xAxisFieldName: string = $utils.capitalize(xAxis.axisFieldName);\r\n\t\t\t\tthis._xLowField = <$type.Keyof<this[\"_dataFields\"]>>(\"low\" + xAxisFieldName + \"X\");\r\n\t\t\t\tthis._xHighField = <$type.Keyof<this[\"_dataFields\"]>>(\"high\" + xAxisFieldName + \"X\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.addValueField(xAxis, <any>this._xValueFields, <any>this._xLowField);\r\n\t\t\tthis.addValueField(xAxis, <any>this._xValueFields, <any>this._xHighField);\r\n\r\n\t\t\tthis.addValueField(yAxis, <any>this._yValueFields, <any>this._yLowField);\r\n\t\t\tthis.addValueField(yAxis, <any>this._yValueFields, <any>this._yHighField);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container): void {\r\n\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.removeChildren();\r\n\r\n\t\tlet column: Candlestick = marker.createChild(Candlestick);\r\n\t\tcolumn.shouldClone = false;\r\n\t\tcolumn.copyFrom(<any>this.columns.template);\r\n\r\n\t\tlet cw: number;\r\n\t\tlet ch: number;\r\n\r\n\t\tlet highLine: Line = column.lowLine;\r\n\t\tlet lowLine: Line = column.highLine;\r\n\r\n\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\tcw = w / 3;\r\n\t\t\tch = h;\r\n\r\n\t\t\thighLine.y = h / 2;\r\n\t\t\tlowLine.y = h / 2;\r\n\r\n\t\t\thighLine.x2 = w / 3;\r\n\t\t\tlowLine.x2 = w / 3;\r\n\t\t\tlowLine.x = w / 3 * 2;\r\n\t\t\tcolumn.column.x = w / 3;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcw = w;\r\n\t\t\tch = h / 3;\r\n\t\t\thighLine.x = w / 2;\r\n\t\t\tlowLine.x = w / 2;\r\n\r\n\t\t\thighLine.y2 = h / 3;\r\n\t\t\tlowLine.y2 = h / 3;\r\n\t\t\tlowLine.y = h / 3 * 2;\r\n\t\t\tcolumn.column.y = h / 3;\r\n\t\t}\r\n\t\tcolumn.width = cw;\r\n\t\tcolumn.height = ch;\r\n\r\n\t\t$object.copyProperties(this, marker, visualProperties);\r\n\t\t$object.copyProperties(this.columns.template, column, visualProperties);\r\n\r\n\t\tcolumn.stroke = this.riseFromOpenState.properties.stroke;\r\n\t\tcolumn.fill = column.stroke;\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = column.fill;\r\n\t\tlegendDataItem.colorOrig = column.fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an element to use for Candlestick\r\n\t * @ignore\r\n\t * @return Element.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new Candlestick();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CandlestickSeries\"] = CandlestickSeries;\r\nregistry.registeredClasses[\"CandlestickSeriesDataItem\"] = CandlestickSeriesDataItem;\r\n","/**\r\n * Module that defines everything related to building OHLCs.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Candlestick, ICandlestickProperties, ICandlestickAdapters, ICandlestickEvents } from \"./Candlestick\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[OHLC]].\r\n */\r\nexport interface IOHLCProperties extends ICandlestickProperties { }\r\n\r\n/**\r\n * Defines events for [[OHLC]].\r\n */\r\nexport interface IOHLCEvents extends ICandlestickEvents { }\r\n\r\n/**\r\n * Defines adapters for [[OHLC]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IOHLCAdapters extends ICandlestickAdapters, IOHLCProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates OHLCs.\r\n *\r\n * @see {@link IOHLCEvents} for a list of available events\r\n * @see {@link IOHLCAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class OHLC extends Candlestick {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IOHLCProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IOHLCAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IOHLCEvents;\r\n\r\n\r\n\t/**\r\n\t * Open line element\r\n\t */\r\n\tpublic openLine: Line;\r\n\r\n\t/**\r\n\t * Close line element\r\n\t */\r\n\tpublic closeLine: Line;\r\n\r\n\t/**\r\n\t * High-low line element\r\n\t */\r\n\tpublic highLowLine: Line;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"OHLC\";\r\n\t\tthis.layout = \"none\";\r\n\t}\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createAssets() {\r\n\t\t//super.createAssets();\r\n\r\n\t\tthis.openLine = this.createChild(Line);\r\n\t\tthis.openLine.shouldClone = false;\r\n\r\n\t\tthis.highLowLine = this.createChild(Line);\r\n\t\tthis.highLowLine.shouldClone = false;\r\n\r\n\t\tthis.closeLine = this.createChild(Line);\r\n\t\tthis.closeLine.shouldClone = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[OHLC]].\r\n\t *\r\n\t * @param source Source OHLC\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.openLine) {\r\n\t\t\tthis.openLine.copyFrom(source.openLine);\r\n\t\t}\r\n\t\tif (this.highLowLine) {\r\n\t\t\tthis.highLowLine.copyFrom(source.highLowLine);\r\n\t\t}\r\n\t\tif (this.closeLine) {\r\n\t\t\tthis.closeLine.copyFrom(source.closeLine);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"OHLC\"] = OHLC;\r\n","/**\r\n * Candlestick Series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { CandlestickSeries, CandlestickSeriesDataItem, ICandlestickSeriesDataFields, ICandlestickSeriesProperties, ICandlestickSeriesAdapters, ICandlestickSeriesEvents } from \"./CandlestickSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { Line } from \"../../core/elements/Line\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { OHLC } from \"../elements/OHLC\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { LegendDataItem } from \"../../charts/Legend\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[OHLCSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class OHLCSeriesDataItem extends CandlestickSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the OHLC elements.\r\n\t */\r\n\tpublic _column: OHLC;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for\r\n\t * @todo Disabled to work around TS bug (see if we can re-enable it again)\r\n\t */\r\n\t//public _component!: OHLCSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"OHLCSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[OHLCSeries]].\r\n */\r\nexport interface IOHLCSeriesDataFields extends ICandlestickSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[OHLCSeries]].\r\n */\r\nexport interface IOHLCSeriesProperties extends ICandlestickSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[OHLCSeries]].\r\n */\r\nexport interface IOHLCSeriesEvents extends ICandlestickSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[OHLCSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IOHLCSeriesAdapters extends ICandlestickSeriesAdapters, IOHLCSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a candlestick graph.\r\n *\r\n * @see {@link IOHLCSeriesEvents} for a list of available Events\r\n * @see {@link IOHLCSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class OHLCSeries extends CandlestickSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: OHLCSeriesDataItem;\r\n\r\n\t/**\r\n\t * Type of column.\r\n\t */\r\n\tpublic _column: OHLC;\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IOHLCSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IOHLCSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IOHLCSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IOHLCSeriesEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"OHLCSeries\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"OHLC Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new OHLCSeriesDataItem();\r\n\t}\r\n\r\n\r\n\tprotected validateCandlestick(dataItem: this[\"_dataItem\"]) {\r\n\t\tlet column: OHLC = dataItem.column;\r\n\t\tif (column) {\r\n\t\t\tlet openLine = column.openLine;\r\n\t\t\tlet highLowLine = column.highLowLine;\r\n\t\t\tlet closeLine = column.closeLine;\r\n\r\n\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\tlet x: number = column.pixelWidth / 2;\r\n\t\t\t\thighLowLine.x = x;\r\n\r\n\t\t\t\t// TODO can these be removed ?\r\n\t\t\t\tdataItem.getWorkingValue(this.yOpenField);\r\n\t\t\t\tdataItem.getWorkingValue(this.yField);\r\n\r\n\t\t\t\tlet yOpen = this.yAxis.getY(dataItem, this.yOpenField);\r\n\t\t\t\tlet yClose = this.yAxis.getY(dataItem, this.yField);\r\n\t\t\t\tlet yLow = this.yAxis.getY(dataItem, this.yLowField);\r\n\t\t\t\tlet yHigh = this.yAxis.getY(dataItem, this.yHighField);\r\n\r\n\t\t\t\tlet pixelY = column.pixelY;\r\n\r\n\t\t\t\topenLine.y1 = yOpen - pixelY;\r\n\t\t\t\topenLine.y2 = yOpen - pixelY;\r\n\t\t\t\topenLine.x1 = 0;\r\n\t\t\t\topenLine.x2 = x;\r\n\r\n\t\t\t\tcloseLine.y1 = yClose - pixelY;\r\n\t\t\t\tcloseLine.y2 = yClose - pixelY;\r\n\t\t\t\tcloseLine.x1 = x;\r\n\t\t\t\tcloseLine.x2 = 2 * x;\r\n\r\n\t\t\t\thighLowLine.y1 = yHigh - pixelY;\r\n\t\t\t\thighLowLine.y2 = yLow - pixelY;\r\n\r\n\t\t\t}\r\n\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\tlet y: number = column.pixelHeight / 2;\r\n\r\n\t\t\t\thighLowLine.y = y;\r\n\r\n\t\t\t\t// TODO can these be removed ?\r\n\t\t\t\tdataItem.getWorkingValue(this.xOpenField);\r\n\t\t\t\tdataItem.getWorkingValue(this.xField);\r\n\r\n\t\t\t\tlet xOpen = this.xAxis.getX(dataItem, this.xOpenField);\r\n\t\t\t\tlet xClose = this.xAxis.getX(dataItem, this.xField);\r\n\t\t\t\tlet xLow = this.xAxis.getX(dataItem, this.xLowField);\r\n\t\t\t\tlet xHigh = this.xAxis.getX(dataItem, this.xHighField);\r\n\r\n\t\t\t\tlet pixelX = column.pixelX;\r\n\r\n\t\t\t\topenLine.x1 = xOpen - pixelX;\r\n\t\t\t\topenLine.x2 = xOpen - pixelX;\r\n\t\t\t\topenLine.y1 = y;\r\n\t\t\t\topenLine.y2 = 2 * y;\r\n\r\n\t\t\t\tcloseLine.x1 = xClose - pixelX;\r\n\t\t\t\tcloseLine.x2 = xClose - pixelX;\r\n\t\t\t\tcloseLine.y1 = 0;\r\n\t\t\t\tcloseLine.y2 = y;\r\n\r\n\t\t\t\thighLowLine.x1 = xHigh - pixelX;\r\n\t\t\t\thighLowLine.x2 = xLow - pixelX;\r\n\t\t\t}\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\r\n\t\t\t\tlet rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (rangeColumn) {\r\n\t\t\t\t\tlet rangeOpenLine = rangeColumn.openLine;\r\n\t\t\t\t\trangeOpenLine.x = openLine.x;\r\n\t\t\t\t\trangeOpenLine.y = openLine.y;\r\n\t\t\t\t\trangeOpenLine.x1 = openLine.x1;\r\n\t\t\t\t\trangeOpenLine.x2 = openLine.x2;\r\n\t\t\t\t\trangeOpenLine.y1 = openLine.y1;\r\n\t\t\t\t\trangeOpenLine.y2 = openLine.y2;\r\n\r\n\t\t\t\t\tlet rangeCloseLine = rangeColumn.closeLine;\r\n\t\t\t\t\trangeCloseLine.x = closeLine.x;\r\n\t\t\t\t\trangeCloseLine.y = closeLine.y;\r\n\t\t\t\t\trangeCloseLine.x1 = closeLine.x1;\r\n\t\t\t\t\trangeCloseLine.x2 = closeLine.x2;\r\n\t\t\t\t\trangeCloseLine.y1 = closeLine.y1;\r\n\t\t\t\t\trangeCloseLine.y2 = closeLine.y2;\r\n\r\n\t\t\t\t\tlet rangeHighLowLine = rangeColumn.highLowLine;\r\n\t\t\t\t\trangeHighLowLine.x = highLowLine.x;\r\n\t\t\t\t\trangeHighLowLine.y = highLowLine.y;\r\n\t\t\t\t\trangeHighLowLine.x1 = highLowLine.x1;\r\n\t\t\t\t\trangeHighLowLine.x2 = highLowLine.x2;\r\n\t\t\t\t\trangeHighLowLine.y1 = highLowLine.y1;\r\n\t\t\t\t\trangeHighLowLine.y2 = highLowLine.y2;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Creates elements in related legend container, that mimics the look of this\r\n\t * Series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param marker Legend item container\r\n\t */\r\n\tpublic createLegendMarker(marker: Container): void {\r\n\r\n\t\tlet w: number = marker.pixelWidth;\r\n\t\tlet h: number = marker.pixelHeight;\r\n\r\n\t\tmarker.removeChildren();\r\n\r\n\t\tlet column: OHLC = marker.createChild(OHLC);\r\n\t\tcolumn.shouldClone = false;\r\n\t\tcolumn.copyFrom(<any>this.columns.template);\r\n\r\n\t\tlet cw: number;\r\n\t\tlet ch: number;\r\n\r\n\t\tlet openLine: Line = column.openLine;\r\n\t\tlet closeLine: Line = column.closeLine;\r\n\t\tlet highLowLine: Line = column.highLowLine;\r\n\r\n\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\tcw = w / 3;\r\n\t\t\tch = h;\r\n\r\n\t\t\thighLowLine.y = h / 2;\r\n\t\t\thighLowLine.x2 = w;\r\n\r\n\t\t\topenLine.x = w / 3 * 2;\r\n\t\t\topenLine.y2 = h / 2;\r\n\r\n\t\t\tcloseLine.x = w / 3;\r\n\t\t\tcloseLine.y2 = h;\r\n\t\t\tcloseLine.y1 = h / 2;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcw = w;\r\n\t\t\tch = h / 3;\r\n\r\n\t\t\thighLowLine.x = w / 2;\r\n\t\t\thighLowLine.y2 = h;\r\n\r\n\t\t\topenLine.y = h / 3 * 2;\r\n\t\t\topenLine.x2 = w / 2;\r\n\r\n\t\t\tcloseLine.y = h / 3;\r\n\t\t\tcloseLine.x2 = w;\r\n\t\t\tcloseLine.x1 = w / 2;\r\n\t\t}\r\n\t\tcolumn.width = cw;\r\n\t\tcolumn.height = ch;\r\n\r\n\t\t$object.copyProperties(this, marker, visualProperties);\r\n\t\t$object.copyProperties(this.columns.template, column, visualProperties);\r\n\r\n\t\tcolumn.stroke = this.riseFromOpenState.properties.stroke;\r\n\r\n\t\tlet legendDataItem = <LegendDataItem>marker.dataItem;\r\n\t\tlegendDataItem.color = column.stroke;\r\n\t\tlegendDataItem.colorOrig = column.stroke;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an element to use for Candlestick\r\n\t * @ignore\r\n\t * @return Element.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new OHLC();\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"OHLCSeries\"] = OHLCSeries;\r\nregistry.registeredClasses[\"OHLCSeriesDataItem\"] = OHLCSeriesDataItem;\r\n","/**\r\n * Line series segment module.\r\n * @todo Add description about what this is\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ILineSeriesSegmentAdapters, ILineSeriesSegmentEvents, ILineSeriesSegmentProperties, LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[StepLineSeriesSegment]].\r\n */\r\nexport interface IStepLineSeriesSegmentProperties extends ILineSeriesSegmentProperties { }\r\n\r\n/**\r\n * Defines events for [[StepLineSeriesSegment]].\r\n */\r\nexport interface IStepLineSeriesSegmentEvents extends ILineSeriesSegmentEvents { }\r\n\r\n/**\r\n * Defines adapters for [[StepLineSeriesSegment]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IStepLineSeriesSegmentAdapters extends ILineSeriesSegmentAdapters, IStepLineSeriesSegmentProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents a line series segment.\r\n *\r\n * A line segment can be used to apply different properties to a part of the\r\n * line series, between two data points.\r\n *\r\n * @see {@link IStepLineSeriesSegmentEvents} for a list of available events\r\n * @see {@link IStepLineSeriesSegmentAdapters} for a list of available Adapters\r\n * @todo Example\r\n */\r\nexport class StepLineSeriesSegment extends LineSeriesSegment {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IStepLineSeriesSegmentProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IStepLineSeriesSegmentAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IStepLineSeriesSegmentEvents;\r\n\r\n\t/**\r\n\t * Segment's line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic strokeSprite: Sprite;\r\n\r\n\t/**\r\n\t * Segment's fill element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic fillSprite: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"StepLineSeriesSegment\";\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the series segment.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param points Points to connect\r\n\t * @param closePoints ?\r\n\t * @param smoothnessX Horizontal bezier setting (?)\r\n\t * @param smoothnessY Vertical bezier setting (?)\r\n\t */\r\n\tpublic drawSegment(points: IPoint[], closePoints: IPoint[], smoothnessX: number, smoothnessY: number, noRisers?: boolean, vertical?: boolean): void {\r\n\t\tif (points.length > 0 && closePoints.length > 0) {\r\n\r\n\t\t\tif (noRisers) {\r\n\t\t\t\tlet path: string = $path.moveTo(points[0]);\r\n\t\t\t\tif (points.length > 0) {\r\n\t\t\t\t\tfor (let i = 1; i < points.length; i++) {\r\n\t\t\t\t\t\tlet point = points[i];\r\n\t\t\t\t\t\tif (i / 2 == Math.round(i / 2)) {\r\n\t\t\t\t\t\t\tpath += $path.moveTo(point);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tpath += $path.lineTo(point);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.strokeSprite.path = path;\r\n\r\n\t\t\t\tif (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n\t\t\t\t\tpath = $path.moveTo(points[0]) + $path.polyline(points);\r\n\t\t\t\t\tpath += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n\t\t\t\t\tpath += $path.lineTo(points[0]);\r\n\t\t\t\t\tpath += $path.closePath();\r\n\r\n\t\t\t\t\tthis.fillSprite.path = path;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet path: string = $path.moveTo(points[0]) + $path.polyline(points);\r\n\r\n\t\t\t\tthis.strokeSprite.path = path;\r\n\r\n\t\t\t\tif (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n\t\t\t\t\tpath += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n\t\t\t\t\tpath += $path.lineTo(points[0]);\r\n\t\t\t\t\tpath += $path.closePath();\r\n\r\n\t\t\t\t\tthis.fillSprite.path = path;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeriesSegment\"] = StepLineSeriesSegment;\r\n","/**\r\n * Step line series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeries, LineSeriesDataItem, ILineSeriesDataFields, ILineSeriesProperties, ILineSeriesAdapters, ILineSeriesEvents } from \"./LineSeries\";\r\nimport { StepLineSeriesSegment } from \"./StepLineSeriesSegment\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[StepLineSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class StepLineSeriesDataItem extends LineSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: StepLineSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"StepLineSeriesDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[StepLineSeries]].\r\n */\r\nexport interface IStepLineSeriesDataFields extends ILineSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[StepLineSeries]].\r\n */\r\nexport interface IStepLineSeriesProperties extends ILineSeriesProperties {\r\n\tnoRisers?: boolean;\r\n\r\n\tstartLocation?: number;\r\n\r\n\tendLocation?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[StepLineSeries]].\r\n */\r\nexport interface IStepLineSeriesEvents extends ILineSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[StepLineSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IStepLineSeriesAdapters extends ILineSeriesAdapters, IStepLineSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a step line graph.\r\n *\r\n * @see {@link IStepLineSeriesEvents} for a list of available Events\r\n * @see {@link IStepLineSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class StepLineSeries extends LineSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IStepLineSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IStepLineSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IStepLineSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IStepLineSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: StepLineSeriesDataItem;\r\n\r\n\t/**\r\n\t * Defines type for segement.\r\n\t */\r\n\tpublic _segment: StepLineSeriesSegment;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"StepLineSeries\";\r\n\t\tthis.applyTheme();\r\n\t\tthis.startLocation = 0;\r\n\t\tthis.endLocation = 1;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new StepLineSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * [addPoints description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param points [description]\r\n\t * @param dataItem [description]\r\n\t * @param xField [description]\r\n\t * @param yField [description]\r\n\t * @param backwards [description]\r\n\t */\r\n\tprotected addPoints(points: IPoint[], dataItem: this[\"_dataItem\"], xField: string, yField: string, backwards?: boolean): void {\r\n\r\n\t\tlet startLocationX:number;\r\n\t\tlet endLocationX:number;\r\n\r\n\t\tlet startLocationY:number;\r\n\t\tlet endLocationY:number;\t\t\r\n\r\n\t\tif(this.baseAxis == this.xAxis){\r\n\t\t\tstartLocationX = this.startLocation;\r\n\t\t\tendLocationX = this.endLocation;\r\n\r\n\t\t\tstartLocationY = this.getAdjustedXLocation(dataItem, this.yOpenField);\r\n\t\t\tendLocationY = this.getAdjustedXLocation(dataItem, this.yField);\r\n\t\t}\r\n\r\n\t\tif(this.baseAxis == this.yAxis){\r\n\t\t\tstartLocationY = this.startLocation;\r\n\t\t\tendLocationY = this.endLocation;\r\n\r\n\t\t\tstartLocationX = this.getAdjustedXLocation(dataItem, this.xOpenField);\r\n\t\t\tendLocationX = this.getAdjustedXLocation(dataItem, this.xField);\t\t\t\r\n\t\t}\r\n\r\n\r\n\t\tlet x0: number = this.xAxis.getX(dataItem, xField, startLocationX);\r\n\t\tlet y0: number = this.yAxis.getY(dataItem, yField, startLocationY);\r\n\r\n\t\tlet x1: number = this.xAxis.getX(dataItem, xField, endLocationX);\r\n\t\tlet y1: number = this.yAxis.getY(dataItem, yField, endLocationY);\r\n\r\n\t\tx0 = $math.fitToRange(x0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\t\ty0 = $math.fitToRange(y0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\r\n\t\tx1 = $math.fitToRange(x1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\t\ty1 = $math.fitToRange(y1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\r\n\t\t// this might make an impression that points are duplicated, and they indeed are, but this is needed to handle gaps in data\r\n\t\tif (!this.noRisers) {\r\n\t\t\tif (points.length > 1) {\r\n\t\t\t\tlet prevPoint: IPoint = points[points.length - 1];\r\n\t\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\t\tif (backwards) {\r\n\t\t\t\t\t\tpoints.push({ x: prevPoint.x, y: y1 });\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpoints.push({ x: x0, y: prevPoint.y });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\t\tif (backwards) {\r\n\t\t\t\t\t\tpoints.push({ x: x1, y: prevPoint.y });\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpoints.push({ x: prevPoint.x, y: y0 });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet point0: IPoint = { x: x0, y: y0 };\r\n\t\tlet point1: IPoint = { x: x1, y: y1 };\r\n\r\n\t\tif (backwards) {\r\n\t\t\tpoints.push(point1, point0);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tpoints.push(point0, point1);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Draws the line segment.\r\n\t *\r\n\t * @param segment Segment\r\n\t * @param points Segment points\r\n\t * @param closePoints Segment close points\r\n\t */\r\n\tprotected drawSegment(segment: StepLineSeriesSegment, points: IPoint[], closePoints: IPoint[]): void {\r\n\t\tlet vertical = false;\r\n\t\tif (this.yAxis == this.baseAxis) {\r\n\t\t\tvertical = true;\r\n\t\t}\r\n\t\tsegment.drawSegment(points, closePoints, this.tensionX, this.tensionY, this.noRisers, vertical);\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createSegment(): this[\"_segment\"] {\r\n\t\treturn new StepLineSeriesSegment();\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies if step line series should draw only horizontal (or only\r\n\t * vertical, depending on base axis) lines, instead of connecting them with\r\n\t * vertical (or horizontal) lines.\r\n\t *\r\n\t * @default false\r\n\t * @param value No risers\r\n\t */\r\n\tpublic set noRisers(value: boolean) {\r\n\t\tthis.setPropertyValue(\"noRisers\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return No risers\r\n\t */\r\n\tpublic get noRisers(): boolean {\r\n\t\treturn this.getPropertyValue(\"noRisers\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * start location of the step\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t * @default 0\r\n\t */\r\n\tpublic set startLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"startLocation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get startLocation(): number {\r\n\t\treturn this.getPropertyValue(\"startLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Step end location.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t * #default 1\r\n\t */\r\n\tpublic set endLocation(value: number) {\r\n\t\tthis.setPropertyValue(\"endLocation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get endLocation(): number {\r\n\t\treturn this.getPropertyValue(\"endLocation\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeries\"] = StepLineSeries;\r\nregistry.registeredClasses[\"StepLineSeriesDataItem\"] = StepLineSeriesDataItem;\r\n","/**\r\n * Module that defines everything related to building RadarColumns.\r\n * It is a container which has radarColumn element which is a Slice.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column, IColumnProperties, IColumnAdapters, IColumnEvents } from \"./Column\";\r\nimport { Slice } from \"../../core/elements/Slice\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[RadarColumn]].\r\n */\r\nexport interface IRadarColumnProperties extends IColumnProperties { }\r\n\r\n/**\r\n * Defines events for [[RadarColumn]].\r\n */\r\nexport interface IRadarColumnEvents extends IColumnEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RadarColumn]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRadarColumnAdapters extends IColumnAdapters, IRadarColumnProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates RadarColumns.\r\n *\r\n * @see {@link IRadarColumnEvents} for a list of available events\r\n * @see {@link IRadarColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class RadarColumn extends Column {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRadarColumnProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRadarColumnAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRadarColumnEvents;\r\n\r\n\r\n\t/**\r\n\t * Radar column element\r\n\t */\r\n\tpublic radarColumn: Slice;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarColumn\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected createAssets() {\r\n\t\tthis.radarColumn = this.createChild(Slice);\r\n\t\tthis.radarColumn.shouldClone = false;\r\n\t\tthis.radarColumn.strokeOpacity = undefined;\r\n\t\t// some dirty hack so that if user access column, it won't get error\r\n\t\tthis.column = <any>this.radarColumn;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[RadarColumn]].\r\n\t *\r\n\t * @param source Source RadarColumn\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.radarColumn) {\r\n\t\t\tthis.radarColumn.copyFrom(source.radarColumn);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * X coordinate for the slice tooltip.\r\n\t *\r\n\t * @return X\r\n\t * @ignore\r\n\t */\r\n\tpublic getTooltipX(): number {\r\n\t\tlet value = this.getPropertyValue(\"tooltipX\");\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\treturn this.radarColumn.getTooltipX();\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate for the slice tooltip.\r\n\t *\r\n\t * @return Y\r\n\t * @ignore\r\n\t */\r\n\tpublic getTooltipY(): number {\r\n\t\tlet value = this.getPropertyValue(\"tooltipX\");\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\treturn this.radarColumn.getTooltipY();\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarColumn\"] = RadarColumn;\r\n","/**\r\n * Radar column series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, IColumnSeriesProperties, IColumnSeriesDataFields, IColumnSeriesAdapters, IColumnSeriesEvents, ColumnSeriesDataItem } from \"../series/ColumnSeries\";\r\nimport { Sprite, visualProperties } from \"../../core/Sprite\";\r\nimport { RadarChart } from \"../types/RadarChart\";\r\nimport { AxisRendererRadial } from \"../axes/AxisRendererRadial\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { AxisRendererCircular } from \"../axes/AxisRendererCircular\";\r\nimport { RadarColumn } from \"../elements/RadarColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport { Percent } from \"../../core/utils/Percent\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $array from \"../../core/utils/Array\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[RadarColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class RadarColumnSeriesDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the column.\r\n\t */\r\n\tpublic _column: RadarColumn;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: RadarColumnSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColumnSeriesDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[RadarColumnSeries]].\r\n */\r\nexport interface IRadarColumnSeriesDataFields extends IColumnSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[RadarColumnSeries]].\r\n */\r\nexport interface IRadarColumnSeriesProperties extends IColumnSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[RadarColumnSeries]].\r\n */\r\nexport interface IRadarColumnSeriesEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RadarColumnSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRadarColumnSeriesAdapters extends IColumnSeriesAdapters, IRadarColumnSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a 3D column graph.\r\n *\r\n * @see {@link IRadarColumnSeriesEvents} for a list of available Events\r\n * @see {@link IRadarColumnSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class RadarColumnSeries extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Type of data item.\r\n\t */\r\n\tpublic _dataItem: RadarColumnSeriesDataItem;\r\n\r\n\t/**\r\n\t * Type of column.\r\n\t */\r\n\tpublic _column: RadarColumn;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IRadarColumnSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRadarColumnSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRadarColumnSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRadarColumnSeriesEvents;\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: RadarChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarColumnSeries\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a RadarColumn element to use as column in radar chart.\r\n\t *\r\n\t * @return RadarColumn.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new RadarColumn();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\t// so that radius would be updated\r\n\t\tif (this.chart.invalid) {\r\n\t\t\tthis.chart.validate();\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected disableUnusedColumns(dataItem: ColumnSeriesDataItem) {\r\n\t\tif (dataItem) {\r\n\t\t\tif (dataItem.column) {\r\n\t\t\t\tdataItem.column.__disabled = true;\r\n\t\t\t}\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t\tlet rangeColumn: Sprite = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (rangeColumn) {\r\n\t\t\t\t\trangeColumn.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\t\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\tlet startAngle = this.chart.startAngle;\r\n\t\tlet endAngle = this.chart.endAngle;\r\n\r\n\t\tlet yField: string = this.yField;\r\n\t\tlet yOpenField: string = this.yOpenField;\r\n\t\tlet xField: string = this.xField;\r\n\t\tlet xOpenField: string = this.xOpenField;\r\n\r\n\t\tlet lAngle: number;\r\n\t\tlet rAngle: number;\r\n\r\n\t\tlet tRadius: number;\r\n\t\tlet bRadius: number;\r\n\r\n\t\tlet startLocation = this.getStartLocation(dataItem);\r\n\t\tlet endLocation = this.getEndLocation(dataItem);\r\n\r\n\t\tlet cellAngle = (endAngle - startAngle) / (this.dataItems.length * (this.end - this.start));\r\n\r\n\t\tlet radarColumn = dataItem.column;\r\n\t\tif (!radarColumn) {\r\n\t\t\tradarColumn = this.columns.create();\r\n\t\t\tdataItem.column = radarColumn;\r\n\t\t\t$object.copyProperties(this, radarColumn, visualProperties); // need this \r\n\t\t\t$object.copyProperties(this.columns.template, radarColumn, visualProperties); // second time, no force, so that columns.template would override series properties\t\t\t\r\n\t\t\tdataItem.addSprite(radarColumn);\r\n\t\t\tradarColumn.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\r\n\t\t\tthis.setColumnStates(radarColumn);\r\n\t\t}\r\n\r\n\t\tlet width = radarColumn.width;\r\n\t\tlet percentWidth = 100;\r\n\r\n\t\tif (width instanceof Percent) {\r\n\t\t\tpercentWidth = width.percent;\r\n\t\t}\r\n\r\n\t\tlet offset: number = $math.round((endLocation - startLocation) * (1 - percentWidth / 100) / 2, 5);\r\n\t\tstartLocation += offset;\r\n\t\tendLocation -= offset;\r\n\t\t// two category axes\r\n\t\tif ((this.xAxis instanceof CategoryAxis) && (this.yAxis instanceof CategoryAxis)) {\r\n\t\t\ttRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, 0, \"valueY\"), y: this.yAxis.getY(dataItem, yField, 0, \"valueY\") });\r\n\t\t\tbRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, 1, \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, 1, \"valueY\") });\r\n\r\n\t\t\tlAngle = this.xAxis.getAngle(dataItem, xOpenField, 0, \"valueX\");\r\n\t\t\trAngle = this.xAxis.getAngle(dataItem, xField, 1, \"valueX\");\r\n\r\n\t\t\tstartAngle = startAngle + startLocation * cellAngle;\r\n\t\t\tendAngle = endAngle - (1 - endLocation) * cellAngle;\r\n\t\t}\r\n\t\telse if (this.baseAxis == this.xAxis) {\r\n\t\t\ttRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, dataItem.locations[yField], \"valueY\"), y: this.yAxis.getY(dataItem, yField, dataItem.locations[yField], \"valueY\") });\r\n\t\t\tbRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, dataItem.locations[yOpenField], \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, dataItem.locations[yOpenField], \"valueY\") });\r\n\r\n\t\t\tlAngle = this.xAxis.getAngle(dataItem, xOpenField, startLocation, \"valueX\");\r\n\t\t\trAngle = this.xAxis.getAngle(dataItem, xField, endLocation, \"valueX\");\r\n\r\n\t\t\tstartAngle = startAngle + startLocation * cellAngle;\r\n\t\t\tendAngle = endAngle - (1 - endLocation) * cellAngle;\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yField, startLocation, \"valueY\"), y: this.yAxis.getY(dataItem, yField, startLocation, \"valueY\") });\r\n\t\t\tbRadius = $math.getDistance({ x: this.yAxis.getX(dataItem, yOpenField, endLocation, \"valueY\"), y: this.yAxis.getY(dataItem, yOpenField, endLocation, \"valueY\") });\r\n\r\n\t\t\tlAngle = this.xAxis.getAngle(dataItem, xField, dataItem.locations[xField], \"valueX\");\r\n\r\n\t\t\trAngle = this.xAxis.getAngle(dataItem, xOpenField, dataItem.locations[xOpenField], \"valueX\");\r\n\t\t}\r\n\r\n\t\tif (rAngle < lAngle) {\r\n\t\t\tlet temp = rAngle;\r\n\t\t\trAngle = lAngle;\r\n\t\t\tlAngle = temp;\r\n\t\t}\r\n\r\n\t\tlAngle = $math.fitToRange(lAngle, startAngle, endAngle);\r\n\t\trAngle = $math.fitToRange(rAngle, startAngle, endAngle);\r\n\r\n\t\tlet slice = radarColumn.radarColumn;\r\n\r\n\t\tslice.startAngle = lAngle;\r\n\r\n\t\tlet arc = rAngle - lAngle;\r\n\r\n\t\tif (arc > 0) {\r\n\t\t\tslice.arc = arc;\r\n\t\t\tslice.radius = tRadius;\r\n\t\t\tslice.innerRadius = bRadius;\r\n\t\t\tradarColumn.__disabled = false;\r\n\r\n\t\t\tradarColumn.parent = this.columnsContainer;\r\n\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (axisRange) => {\r\n\t\t\t\tlet rangeColumn = dataItem.rangesColumns.getKey(axisRange.uid);\r\n\t\t\t\tif (!rangeColumn) {\r\n\t\t\t\t\trangeColumn = this.columns.create();\r\n\r\n\t\t\t\t\t$object.forceCopyProperties(this.columns.template, rangeColumn, visualProperties);\r\n\t\t\t\t\t$object.copyProperties(axisRange.contents, rangeColumn, visualProperties); // need this because 3d columns are not in the same container\r\n\r\n\t\t\t\t\tif (rangeColumn.dataItem) {\r\n\t\t\t\t\t\t$array.remove(rangeColumn.dataItem.sprites, rangeColumn);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.addSprite(rangeColumn);\r\n\t\t\t\t\trangeColumn.paper = this.paper; // sometimes pattern is not drawn if is set with adapter without this.\t\t\t\t\t\r\n\t\t\t\t\tthis.setColumnStates(rangeColumn);\r\n\t\t\t\t\tdataItem.rangesColumns.setKey(axisRange.uid, rangeColumn);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet slice = rangeColumn.radarColumn;\r\n\t\t\t\tslice.startAngle = lAngle;\r\n\t\t\t\tslice.arc = arc;\r\n\t\t\t\tslice.radius = tRadius;\r\n\t\t\t\tslice.innerRadius = bRadius;\r\n\r\n\t\t\t\tif (slice.invalid) {\r\n\t\t\t\t\tslice.paper = this.paper;\r\n\t\t\t\t\tslice.validate(); // validate as if it was used previously, it will flicker with previous dimensions\r\n\t\t\t\t}\r\n\r\n\t\t\t\trangeColumn.__disabled = false;\r\n\t\t\t\trangeColumn.parent = axisRange.contents;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.disableUnusedColumns(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param xKey Name of X data field\r\n\t * @param yKey Name of Y data field\r\n\t * @param locationX X location\r\n\t * @param locationY Y location\r\n\t * @param stackKeyX ?\r\n\t * @param stackKeyY ?\r\n\t * @returns Coordinates\r\n\t */\r\n\tpublic getPoint(dataItem: RadarColumnSeriesDataItem, xKey: string, yKey: string, locationX?: number, locationY?: number, stackKeyX?: string, stackKeyY?: string) {\r\n\r\n\t\tif (!stackKeyX) {\r\n\t\t\tstackKeyX = \"valueX\";\r\n\t\t}\r\n\t\tif (!stackKeyY) {\r\n\t\t\tstackKeyY = \"valueY\";\r\n\t\t}\r\n\r\n\t\tlet x: number = this.yAxis.getX(dataItem, yKey, locationY, stackKeyY);\r\n\t\tlet y: number = this.yAxis.getY(dataItem, yKey, locationY, stackKeyY);\r\n\r\n\t\tlet radius: number = $math.getDistance({ x: x, y: y });\r\n\t\t// hack to be able to determine angle later\r\n\t\tif (radius == 0) {\r\n\t\t\tradius = 0.00001;\r\n\t\t}\r\n\r\n\t\tlet angle: number = this.xAxis.getAngle(dataItem, xKey, locationX, stackKeyX);\r\n\r\n\t\treturn { x: radius * $math.cos(angle), y: radius * $math.sin(angle) };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns an SVG path to be used as a mask for the series.\r\n\t *\r\n\t * @return SVG path\r\n\t */\r\n\tprotected getMaskPath(): string {\r\n\t\tlet renderer: AxisRendererRadial = <AxisRendererRadial>this.yAxis.renderer;\r\n\t\treturn $path.arc(renderer.startAngle, renderer.endAngle - renderer.startAngle, renderer.pixelRadius, renderer.pixelInnerRadius);\r\n\t}\r\n\r\n\tprotected positionBulletReal(bullet:Sprite, positionX:number, positionY:number){\r\n\t\tlet xAxis = this.xAxis;\r\n\t\tlet yAxis = this.yAxis;\r\n\r\n\t\tif(positionX < xAxis.start || positionX > xAxis.end || positionY < yAxis.start || positionY > yAxis.end){\r\n\t\t\tbullet.visible = false;\r\n\t\t}\r\n\r\n\t\tbullet.moveTo(this.xAxis.renderer.positionToPoint(positionX, positionY));\t\t\r\n\t}\r\n\r\n\tprotected setXAxis(axis: Axis) {\r\n\t\tsuper.setXAxis(axis);\r\n\t\tthis.updateRendererRefs();\r\n\t}\r\n\r\n\tprotected setYAxis(axis: Axis) {\r\n\t\tsuper.setYAxis(axis);\r\n\t\tthis.updateRendererRefs();\r\n\t}\r\n\r\n\tprotected updateRendererRefs() {\r\n\t\tlet rendererX = <AxisRendererCircular>this.xAxis.renderer;\r\n\t\tlet rendererY = <AxisRendererRadial>this.yAxis.renderer;\r\n\r\n\t\trendererX.axisRendererY = rendererY;\r\n\t}\t\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarColumnSeries\"] = RadarColumnSeries;\r\nregistry.registeredClasses[\"RadarColumnSeriesDataItem\"] = RadarColumnSeriesDataItem;\r\n","/**\r\n * Module that defines everything related to building Funnel slices.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent, Percent } from \"../../core/utils/Percent\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { Orientation } from \"../../core/defs/Orientation\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[FunnelSlice]].\r\n */\r\nexport interface IFunnelSliceProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Width of the top edge of the slice.\r\n\t */\r\n\ttopWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * Width of the bottom edge of the slice.\r\n\t */\r\n\tbottomWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * A relative distance slice's sides should be bent to.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\texpandDistance?: number;\r\n\r\n\t/**\r\n\t * Orientation of the slice.\r\n\t */\r\n\torientation?: Orientation;\r\n}\r\n\r\n/**\r\n * Defines events for [[FunnelSlice]].\r\n */\r\nexport interface IFunnelSliceEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FunnelSlice]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFunnelSliceAdapters extends IContainerAdapters, IFunnelSliceProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to create [[FunnelSlice]] elements.\r\n *\r\n * @see {@link IFunnelSliceEvents} for a list of available events\r\n * @see {@link IFunnelSliceAdapters} for a list of available adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nexport class FunnelSlice extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFunnelSliceProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFunnelSliceAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFunnelSliceEvents;\r\n\r\n\t/**\r\n\t * Main slice element.\r\n\t */\r\n\tpublic slice: Sprite;\r\n\r\n\t/**\r\n\t * Am anchor point the slice tick line is pointing to.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @readonly\r\n\t */\r\n\tpublic tickPoint: IPoint;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.slice = this.createChild(Sprite);\r\n\t\tthis.slice.shouldClone = false;\r\n\t\tthis.slice.setElement(this.paper.add(\"path\"));\r\n\t\tthis.slice.isMeasured = false;\r\n\r\n\t\tthis.orientation = \"vertical\";\r\n\t\tthis.bottomWidth = percent(100);\r\n\t\tthis.topWidth = percent(100);\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.width = 10;\r\n\t\tthis.height = 10;\r\n\r\n\t\tthis.expandDistance = 0;\r\n\r\n\t\tthis.className = \"FunnelSlice\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t */\r\n\tprotected draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tlet pt = this.pixelPaddingTop;\r\n\t\tlet pb = this.pixelPaddingBottom;\r\n\t\tlet pr = this.pixelPaddingRight;\r\n\t\tlet pl = this.pixelPaddingLeft;\r\n\r\n\t\tlet w = this.pixelWidth - pr - pl;\r\n\t\tlet h = this.pixelHeight - pt - pb;\r\n\r\n\t\tlet ed = this.expandDistance;\r\n\r\n\t\tlet path = \"\";\r\n\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tlet tw = $utils.relativeToValue(this.topWidth, w);\r\n\t\t\tlet bw = $utils.relativeToValue(this.bottomWidth, w);\r\n\r\n\t\t\tlet tl = { x: (w - tw) / 2 + pl, y: pt };\r\n\t\t\tlet tr = { x: (w + tw) / 2 + pl, y: pt };\r\n\r\n\t\t\tlet br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n\t\t\tlet bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n\r\n\t\t\tlet cpr = { x: tr.x + (br.x - tr.x) / 2 + ed * h, y: tr.y + 0.5 * h };\r\n\t\t\tlet cpl = { x: tl.x + (bl.x - tl.x) / 2 - ed * h, y: tl.y + 0.5 * h };\r\n\r\n\t\t\tlet qp1 = $path.lineTo(br);\r\n\t\t\tlet qp2 = \"\";\r\n\r\n\t\t\tif(ed != 0){\r\n\t\t\t\tqp1 = $path.quadraticCurveTo(br, cpr);\r\n\t\t\t\tqp2 = $path.quadraticCurveTo(tl, cpl);\r\n\t\t\t}\r\n\r\n\t\t\tpath = $path.moveTo(tl) + $path.lineTo(tr) + qp1 + $path.lineTo(bl) + qp2;\r\n\r\n\t\t\tthis.tickPoint = { x: tr.x + (br.x - tr.x) / 2, y: tr.y + (br.y - tr.y) / 2 };\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet tw = $utils.relativeToValue(this.topWidth, h);\r\n\t\t\tlet bw = $utils.relativeToValue(this.bottomWidth, h);\r\n\r\n\t\t\tlet tt = { x: pl, y: (h - tw) / 2 + pt };\r\n\t\t\tlet tb = { x: pl, y: (h + tw) / 2 + pt };\r\n\r\n\t\t\tlet bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n\t\t\tlet bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n\r\n\t\t\tlet cpr = { y: tt.y + (bt.y - tt.y) / 2 - ed * w, x: tt.x + 0.5 * w };\r\n\t\t\tlet cpl = { y: tb.y + (bb.y - tb.y) / 2 + ed * w, x: tb.x + 0.5 * w };\r\n\r\n\t\t\tlet qp1 = $path.lineTo(bt);\r\n\t\t\tlet qp2 = \"\"\r\n\t\t\tif(ed != 0){\r\n\t\t\t\tqp1 = $path.quadraticCurveTo(bt, cpr);\r\n\t\t\t\tqp2 = $path.quadraticCurveTo(tb, cpl);\r\n\t\t\t}\r\n\r\n\t\t\tpath = $path.moveTo(tb) + $path.lineTo(tt) + qp1 + $path.lineTo(bb) + qp2;\r\n\r\n\t\t\tthis.tickPoint = { y: tb.y + (bb.y - tb.y) / 2, x: tb.x + (bb.x - tb.x) / 2 };\r\n\t\t}\r\n\r\n\t\tthis.slice.path = path;\r\n\t\tthis.invalidateLayout();\r\n\t}\r\n\r\n\r\n\tgetPoint(locationX:number, locationY:number):IPoint{\r\n\r\n\t\tlet pt = this.pixelPaddingTop;\r\n\t\tlet pb = this.pixelPaddingBottom;\r\n\t\tlet pr = this.pixelPaddingRight;\r\n\t\tlet pl = this.pixelPaddingLeft;\r\n\r\n\t\tlet w = this.pixelWidth - pr - pl;\r\n\t\tlet h = this.pixelHeight - pt - pb;\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tlet tw = $utils.relativeToValue(this.topWidth, w);\r\n\t\t\tlet bw = $utils.relativeToValue(this.bottomWidth, w);\r\n\r\n\t\t\tlet tl = { x: (w - tw) / 2 + pl, y: pt };\r\n\t\t\tlet tr = { x: (w + tw) / 2 + pl, y: pt };\r\n\r\n\t\t\tlet br = { x: (w + bw) / 2 + pl, y: pt + h };\r\n\t\t\tlet bl = { x: (w - bw) / 2 + pl, y: pt + h };\r\n\r\n\t\t\tlet mlx = tl.x + (bl.x - tl.x) * locationY;\r\n\t\t\tlet mrx = tr.x + (br.x - tr.x) * locationY;\r\n\r\n\t\t\treturn { x: mlx + (mrx - mlx) * locationX, y: tr.y + (br.y - tr.y) * locationY };\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet tw = $utils.relativeToValue(this.topWidth, h);\r\n\t\t\tlet bw = $utils.relativeToValue(this.bottomWidth, h);\r\n\r\n\t\t\tlet tt = { x: pl, y: (h - tw) / 2 + pt };\r\n\t\t\tlet tb = { x: pl, y: (h + tw) / 2 + pt };\r\n\r\n\t\t\tlet bt = { x: pl + w, y: (h - bw) / 2 + pt };\r\n\t\t\tlet bb = { x: pl + w, y: (h + bw) / 2 + pt };\r\n\r\n\t\t\tlet mty = tt.y + (bt.y - tt.y) * locationX;\r\n\t\t\tlet mby = tb.y + (bb.y - tb.y) * locationX;\r\n\r\n\t\t\treturn { y: mty + (mby - mty) * locationY, x: tt.x + (bt.x - tt.x) * locationX };\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Bottom width in pixels or percent.\r\n\t *\r\n\t * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n\t * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n\t * becomes read-only as it will be automatically reset by series.\r\n\t *\r\n\t * @param value Bottom width\r\n\t */\r\n\tpublic set bottomWidth(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"bottomWidth\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return bottom width\r\n\t */\r\n\tpublic get bottomWidth(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"bottomWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Top width in pixels or percent.\r\n\t *\r\n\t * IMPORTANT: this setting might be used to set dimensions if you use slice\r\n\t * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n\t * becomes read-only as it will be automatically reset by series.\r\n\t *\r\n\t * @param value Top width\r\n\t */\r\n\tpublic set topWidth(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"topWidth\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Top width\r\n\t */\r\n\tpublic get topWidth(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"topWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation of the funnel slice: \"horizontal\" or \"vertical\".\r\n\t *\r\n\t * IMPORTANT: this setting might be used to set orintation if you use slice\r\n\t * as a standalone element. If it's a part of [[FunnelSeries]] this setting\r\n\t * becomes read-only as it will be automatically reset by series.\r\n\t *\r\n\t * @param value Orientation\r\n\t */\r\n\tpublic set orientation(value: Orientation) {\r\n\t\tthis.setPropertyValue(\"orientation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Orientation\r\n\t */\r\n\tpublic get orientation(): Orientation {\r\n\t\treturn this.getPropertyValue(\"orientation\");\r\n\t}\r\n\r\n\t/**\r\n\t * A relative distance slice's sides should be bent to. It's relative to the\r\n\t * height of the slice.\r\n\t *\r\n\t * Zero (default) will mean the sides will be perfectly straight.\r\n\t *\r\n\t * Positive value will make them bend outwards, resulting in \"puffed\" slices.\r\n\t *\r\n\t * Negative values will make them bend inwards.\r\n\t *\r\n\t * @default 0\r\n\t * @param {number}\r\n\t */\r\n\tpublic set expandDistance(value: number) {\r\n\t\tthis.setPropertyValue(\"expandDistance\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return expandDistance\r\n\t */\r\n\tpublic get expandDistance(): number {\r\n\t\treturn this.getPropertyValue(\"expandDistance\");\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Sprite]].\r\n\t *\r\n\t * @param source Source Sprite\r\n\t */\r\n\tpublic copyFrom(source :this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (this.slice) {\r\n\t\t\tthis.slice.copyFrom(source.slice);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelSlice\"] = FunnelSlice;\r\n","/**\r\n * Funnel tick module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Tick, ITickProperties, ITickAdapters, ITickEvents } from \"../elements/Tick\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { FunnelSlice } from \"./FunnelSlice\";\r\nimport { MutableValueDisposer, MultiDisposer } from \"../../core/utils/Disposer\";\r\nimport { FunnelSeries } from \"../series/FunnelSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[FunnelTick]].\r\n */\r\nexport interface IFunnelTickProperties extends ITickProperties {\r\n\tlocationX?: number;\r\n\r\n\tlocationY?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[FunnelTick]].\r\n */\r\nexport interface IFunnelTickEvents extends ITickEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FunnelTick]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFunnelTickAdapters extends ITickAdapters, IFunnelTickProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws an tick line for a funnel slice connecting it to a related label.\r\n *\r\n * @see {@link IFunnelTickEvents} for a list of available events\r\n * @see {@link IFunnelTickAdapters} for a list of available Adapters\r\n */\r\nexport class FunnelTick extends Tick {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFunnelTickProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFunnelTickAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFunnelTickEvents;\r\n\r\n\t/**\r\n\t * A label element this tick is attached to.\r\n\t */\r\n\tprotected _label = new MutableValueDisposer<Label>();\r\n\r\n\t/**\r\n\t * A slice element this tick is attached to.\r\n\t */\r\n\tprotected _slice = new MutableValueDisposer<FunnelSlice>();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"FunnelTick\";\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\t\tthis._disposers.push(this._label);\r\n\t\tthis._disposers.push(this._slice);\r\n\r\n\t\tthis.setPropertyValue(\"locationX\", 0);\r\n\t\tthis.setPropertyValue(\"locationY\", 0);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the tick element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tlet slice: FunnelSlice = this.slice;\r\n\t\tlet point = slice.getPoint(this.locationX, this.locationY);\r\n\r\n\t\tif (point) {\r\n\t\t\tlet label = this.label;\r\n\r\n\t\t\tlet series = <FunnelSeries>slice.dataItem.component;\r\n\t\t\tlet p0:IPoint;\r\n\t\t\tlet p1:IPoint;\r\n\t\t\tlet p2:IPoint;\r\n\r\n\t\t\tif (series.orientation == \"vertical\") {\r\n\r\n\t\t\t\tlet x1 = label.pixelX;\r\n\t\t\t\tlet y1 = label.pixelY;\r\n\r\n\t\t\t\tif(!series.labelsOpposite){\r\n\t\t\t\t\tx1 += label.maxRight;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tp0 = $utils.spritePointToSprite(point, slice, this.parent);\t\t\t\t\r\n\t\t\t\tp2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n\t\t\t\tp1 = { x: label.parent.pixelX - this.length, y: p2.y };\r\n\r\n\t\t\t\tif(!series.labelsOpposite){\r\n\t\t\t\t\tp1.x = label.parent.measuredWidth + this.length; \r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet x1 = label.pixelX;\r\n\t\t\t\tlet y1 = label.pixelY;\r\n\r\n\t\t\t\tif(!series.labelsOpposite){\r\n\t\t\t\t\ty1 += label.maxBottom;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tp0 = $utils.spritePointToSprite(point, slice, this.parent);\r\n\t\t\t\tp2 = $utils.spritePointToSprite({ x: x1, y: y1 }, label.parent, this.parent);\r\n\t\t\t\tp1 = { x: p2.x, y: label.parent.pixelY - this.length };\r\n\r\n\t\t\t\tif(!series.labelsOpposite){\r\n\t\t\t\t\tp1.y = label.parent.measuredHeight + this.length; \r\n\t\t\t\t}\t\t\t\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tthis.path = $path.moveTo(p0) + $path.lineTo(p1) + $path.lineTo(p2);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [[FunnelSlice]] element tick is attached to.\r\n\t *\r\n\t * @param slice Slice\r\n\t */\r\n\tpublic set slice(slice: FunnelSlice) {\r\n\t\tthis._slice.set(slice, new MultiDisposer([\r\n\t\t\tslice.events.on(\"transformed\", this.invalidate, this, false),\r\n\t\t\tslice.events.on(\"validated\", this.invalidate, this, false)\r\n\t\t]));\r\n\t}\r\n\r\n\t/**\r\n\t * @return FunnelSlice\r\n\t */\r\n\tpublic get slice(): FunnelSlice {\r\n\t\treturn this._slice.get();\r\n\t}\r\n\r\n\t/**\r\n\t * [[Label]] element tick is attached to.\r\n\t *\r\n\t * @param label Label\r\n\t */\r\n\tpublic set label(label: Label) {\r\n\t\tthis._label.set(label, label.events.on(\"transformed\", this.invalidate, this, false));\r\n\t}\r\n\r\n\t/**\r\n\t * @return Label\r\n\t */\r\n\tpublic get label(): Label {\r\n\t\treturn this._label.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A relative horizontal position within target element a tick is pointing\r\n\t * to.\r\n\t *\r\n\t * A scale is from 0 to 1, where 0 means left edge, and 1 right edge.\r\n\t *\r\n\t * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n\t * of the slice), or outside 0-1 range, which will put tick anchor position\r\n\t * outside target element.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set locationX(value: number) {\r\n\t\tthis.setPropertyValue(\"locationX\", value, false, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get locationX(): number {\r\n\t\treturn this.getPropertyValue(\"locationX\");\r\n\t}\r\n\r\n\t/**\r\n\t * A relative vertical position within target element a tick is pointing\r\n\t * to.\r\n\t *\r\n\t * A scale is from 0 to 1, where 0 means top edge, and 1 bottom edge.\r\n\t *\r\n\t * You can also set any value in-between (e.g. 0.5 will point to the middle\r\n\t * of the slice), or outside 0-1 range, which will put tick anchor position\r\n\t * outside target element.\r\n\t *\r\n\t * @param value Location (0-1)\r\n\t */\r\n\tpublic set locationY(value: number) {\r\n\t\tthis.setPropertyValue(\"locationY\", value, false, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Location (0-1)\r\n\t */\r\n\tpublic get locationY(): number {\r\n\t\treturn this.getPropertyValue(\"locationY\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelTick\"] = FunnelTick;\r\n","/**\r\n * Defines Funnel Chart Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPercentSeriesAdapters, IPercentSeriesDataFields, IPercentSeriesEvents, IPercentSeriesProperties, PercentSeries, PercentSeriesDataItem } from \"./PercentSeries\";\r\nimport { FunnelSlice } from \"../elements/FunnelSlice\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { FunnelTick } from \"../elements/FunnelTick\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { SlicedChart } from \"../types/SlicedChart\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Disposer } from \"../../core/utils/Disposer\";\r\nimport { Orientation } from \"../../core/defs/Orientation\";\r\nimport { Align } from \"../../core/defs/Align\";\r\nimport { VerticalAlign } from \"../../core/defs/VerticalAlign\";\r\nimport { options } from \"../../core/Options\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo: sequenced?\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[FunnelSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class FunnelSeriesDataItem extends PercentSeriesDataItem {\r\n\r\n\t/**\r\n\t * A type of slice used for this series.\r\n\t */\r\n\tpublic _slice: FunnelSlice;\r\n\r\n\t/**\r\n\t * A reference to a label element.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to a tick element.\r\n\t */\r\n\tpublic _tick: FunnelTick;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: FunnelSeries;\r\n\r\n\t/**\r\n\t * Defines a type of elements linking slices.\r\n\t */\r\n\tpublic _sliceLink: FunnelSlice;\r\n\r\n\t/**\r\n\t * A [[FunnelSlice]] element, related to this data item ([[FunnelSlice]]).\r\n\t *\r\n\t * @readonly\r\n\t * @return Slice element\r\n\t */\r\n\tpublic get sliceLink(): this[\"_sliceLink\"] {\r\n\t\tif (!this._sliceLink) {\r\n\t\t\tlet sliceLink = this.component.sliceLinks.create();\r\n\t\t\tthis._sliceLink = sliceLink;\r\n\t\t\tthis._disposers.push(sliceLink);\r\n\t\t\tsliceLink.parent = this.component.slicesContainer;\r\n\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.sliceLinks.removeValue(sliceLink);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\r\n\t\t\tthis.addSprite(sliceLink);\r\n\t\t\tsliceLink.visible = this.visible;\r\n\t\t}\r\n\t\treturn this._sliceLink;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"FunnelSeriesDataItem\";\r\n\t\t// this helps to invalidate series when value is 0 an it is hidden (no other events are triggered then)\r\n\t\tthis.events.on(\"visibilitychanged\", () => {\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}, this, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[FunnelSeries]].\r\n */\r\nexport interface IFunnelSeriesDataFields extends IPercentSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[FunnelSeries]].\r\n */\r\nexport interface IFunnelSeriesProperties extends IPercentSeriesProperties {\r\n\r\n\t/**\r\n\t * Relative width of the slice bottom. See description of `bottomRatio`\r\n\t * property for full description.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tbottomRatio?: number;\r\n\r\n\t/**\r\n\t * Orientation of series\r\n\t *\r\n\t * @default \"vertical\"\r\n\t */\r\n\torientation?: Orientation;\r\n\r\n\t/**\r\n\t * Put labels on the oppsite side of the series?\r\n\t *\r\n\t * @since 4.1.13\r\n\t */\r\n\tlabelsOpposite?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[FunnelSeries]].\r\n */\r\nexport interface IFunnelSeriesEvents extends IPercentSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[FunnelSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IFunnelSeriesAdapters extends IPercentSeriesAdapters, IFunnelSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a FunnelSlice series on a [[SlicedChart]].\r\n *\r\n * @see {@link IFunnelSeriesEvents} for a list of available Events\r\n * @see {@link IFunnelSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nexport class FunnelSeries extends PercentSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _slice: FunnelSlice;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _tick: FunnelTick;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to chart this series is for.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _chart: SlicedChart;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IFunnelSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IFunnelSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IFunnelSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IFunnelSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: FunnelSeriesDataItem;\r\n\r\n\r\n\tprotected _nextY: number = 0;\r\n\r\n\t/**\r\n\t * List of slice elements.\r\n\t */\r\n\tprotected _sliceLinks: ListTemplate<this[\"_slice\"]>;\r\n\r\n\t/**\r\n\t * Holds sum of values for all slices\r\n\t */\r\n\tprotected _total: number;\r\n\r\n\t/**\r\n\t * Holds number of slices.\r\n\t */\r\n\tprotected _count: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"FunnelSeries\";\r\n\t\tthis.orientation = \"vertical\";\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\r\n\t\tthis.slicesContainer.width = percent(100);\r\n\t\tthis.slicesContainer.height = percent(100);\r\n\r\n\t\tthis._disposers.push(this.slicesContainer.events.on(\"maxsizechanged\", this.invalidateDataItems, this, false));\r\n\r\n\t\tthis.labelsOpposite = true;\r\n\r\n\t\tthis.labelsContainer.layout = \"absolute\";\r\n\r\n\t\tthis.bottomRatio = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a [[FunnelSlice]] element.\r\n\t *\r\n\t * @return Slice\r\n\t */\r\n\tprotected createSlice(): this[\"_slice\"] {\r\n\t\treturn new FunnelSlice();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a [[FunnelTick]] element.\r\n\t *\r\n\t * @return Tick\r\n\t */\r\n\tprotected createTick(): this[\"_tick\"] {\r\n\t\treturn new FunnelTick();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Funnel Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new FunnelSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Inits FunnelSlice.\r\n\t *\r\n\t * @param slice to init\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\t\tslice.isMeasured = false;\r\n\t\tslice.defaultState.properties.scale = 1;\r\n\t\tslice.observe(\"scale\", this.handleSliceScale, this);\r\n\t\tslice.observe([\"dx\", \"dy\", \"x\", \"y\"], this.handleSliceMove, this);\r\n\t\tslice.tooltipText = \"{category}: {value.percent.formatNumber('#.#')}% ({value.value})\";\r\n\r\n\t\tlet hoverState = slice.states.create(\"hover\");\r\n\t\thoverState.properties.expandDistance = 0.2;\r\n\t}\r\n\r\n\t/**\r\n\t * [initLabel description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param label [description]\r\n\t */\r\n\tprotected initLabel(label: this[\"_label\"]) {\r\n\t\tsuper.initLabel(label);\r\n\t\tlabel.verticalCenter = \"middle\";\r\n\t\tlabel.horizontalCenter = \"middle\";\r\n\t\tlabel.isMeasured = true;\r\n\t\tlabel.padding(5, 5, 5, 5);\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\t\tthis._nextY = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElements description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements() {\r\n\r\n\t\tlet slicesContainer = this.slicesContainer;\r\n\t\tlet labelsContainer = this.labelsContainer;\r\n\t\tlet labelTemplate = this.labels.template;\r\n\r\n\t\tif (this.alignLabels) {\r\n\t\t\tlabelTemplate.interactionsEnabled = true;\r\n\t\t\tslicesContainer.isMeasured = true;\r\n\t\t\tlabelsContainer.isMeasured = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlabelTemplate.interactionsEnabled = false;\r\n\t\t\tslicesContainer.isMeasured = false;\r\n\t\t\tlabelsContainer.isMeasured = false;\r\n\t\t}\r\n\r\n\t\tlet total = 0;\r\n\t\tlet count = 0;\r\n\t\tthis.dataItems.each((dItem) => {\r\n\t\t\tif ($type.hasValue(dItem.value)) {\r\n\t\t\t\tcount++;\r\n\t\t\t\tif (dItem.value > 0) {\r\n\t\t\t\t\ttotal += Math.abs(dItem.getWorkingValue(\"value\") / dItem.value);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.ignoreZeroValues) {\r\n\t\t\t\t\t\tcount--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (!dItem.visible || dItem.__disabled || dItem.isHiding) {\r\n\t\t\t\t\t\t\tcount--;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ttotal += 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis._total = 1 / count * total;\r\n\t\tthis._count = count;\r\n\r\n\t\tsuper.validateDataElements();\r\n\r\n\t\tthis.arrangeLabels();\r\n\t}\r\n\r\n\t/**\r\n\t * [getNextValue description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected getNextValue(dataItem: FunnelSeriesDataItem): number {\r\n\t\tlet index = dataItem.index;\r\n\t\tlet nextValue: number = dataItem.getWorkingValue(\"value\");\r\n\t\tif (index < this.dataItems.length - 1) {\r\n\t\t\tlet nextItem = this.dataItems.getIndex(index + 1);\r\n\t\t\tnextValue = nextItem.getWorkingValue(\"value\");\r\n\r\n\t\t\tif (!nextItem.visible || nextItem.isHiding || nextItem.__disabled || (nextItem.value == 0 && this.ignoreZeroValues)) {\r\n\t\t\t\treturn this.getNextValue(nextItem);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn nextValue;\r\n\t}\r\n\r\n\t/**\r\n\t * [formDataElement description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected formDataElement(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data item's element, effectively redrawing it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\t//if ($type.hasValue(dataItem.value)) {\r\n\t\t// FunnelSlice\r\n\t\tlet slice = dataItem.slice;\r\n\t\tslice.orientation = this.orientation;\r\n\r\n\t\tlet sliceLink = dataItem.sliceLink;\r\n\t\tsliceLink.orientation = this.orientation;\r\n\r\n\t\tlet tick = dataItem.tick;\r\n\t\tlet label = dataItem.label;\r\n\r\n\t\ttick.slice = slice;\r\n\t\ttick.label = label;\r\n\r\n\t\tif ($type.hasValue(dataItem.value)) {\r\n\t\t\tthis.decorateSlice(dataItem);\r\n\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\tif (dataItem.value == 0 && this.ignoreZeroValues) {\r\n\t\t\t\t\tsprite.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsprite.__disabled = false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$array.each(dataItem.sprites, (sprite) => {\r\n\t\t\t\tsprite.__disabled = true;\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (dataItem.index == this.dataItems.length - 1) {\r\n\t\t\tsliceLink.disabled = true;\r\n\t\t}\r\n\r\n\t\t// do this at the end, otherwise bullets won't be positioned properly\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\tsliceLink.fill = slice.fill;\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * [decorateSlice description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t */\r\n\tprotected decorateSlice(dataItem: this[\"_dataItem\"]): void {\r\n\t\tlet slice = dataItem.slice;\r\n\t\tlet sliceLink = dataItem.sliceLink;\r\n\t\tlet label = dataItem.label;\r\n\t\tlet tick = dataItem.tick;\r\n\r\n\t\tlet maxWidth = this.slicesContainer.innerWidth;\r\n\t\tlet maxHeight = this.slicesContainer.innerHeight;\r\n\r\n\t\tlet nextValue = this.getNextValue(dataItem);\r\n\t\tlet workingValue = Math.abs(dataItem.getWorkingValue(\"value\"));\r\n\t\tlet bottomRatio = this.bottomRatio;\r\n\r\n\t\tlet d = 1;\r\n\t\tif (dataItem.value != 0) {\r\n\t\t\td = workingValue / Math.abs(dataItem.value);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (dataItem.__disabled || dataItem.isHiding || !dataItem.visible) {\r\n\t\t\t\td = 0.000001;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.ignoreZeroValues && dataItem.value == 0) {\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.__disabled = false;\r\n\t\t}\r\n\r\n\t\tif (this._nextY == Infinity) {\r\n\t\t\tthis._nextY = 0;\r\n\t\t}\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\r\n\t\t\tlet linkHeight = sliceLink.pixelHeight * d;\r\n\r\n\t\t\tmaxHeight = maxHeight + linkHeight; // to avoid one link gap in the bottom\r\n\r\n\t\t\tslice.topWidth = workingValue / this.dataItem.values.value.high * maxWidth;\r\n\t\t\tslice.bottomWidth = (workingValue - (workingValue - nextValue) * bottomRatio) / this.dataItem.values.value.high * maxWidth;\r\n\r\n\t\t\tsliceLink.topWidth = slice.bottomWidth;\r\n\t\t\tsliceLink.bottomWidth = (workingValue - (workingValue - nextValue)) / this.dataItem.values.value.high * maxWidth;\r\n\r\n\t\t\tslice.y = this._nextY;\r\n\t\t\tslice.height = Math.min(100000, $math.max(0, maxHeight / this._count * d / this._total - linkHeight));\r\n\r\n\t\t\tslice.x = maxWidth / 2;\r\n\r\n\t\t\tif (!this.alignLabels) {\r\n\t\t\t\tlabel.x = slice.x;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlabel.x = undefined;\r\n\t\t\t}\r\n\t\t\tlabel.y = slice.pixelY + slice.pixelHeight * tick.locationY;\r\n\r\n\t\t\tthis._nextY += slice.pixelHeight + linkHeight;\r\n\t\t\tsliceLink.y = this._nextY - linkHeight;\r\n\t\t\tsliceLink.x = slice.x;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet linkWidth = sliceLink.pixelWidth * d;\r\n\r\n\t\t\tmaxWidth = maxWidth + linkWidth; // to avoid one link gap in the bottom\r\n\r\n\t\t\tslice.topWidth = workingValue / this.dataItem.values.value.high * maxHeight;\r\n\t\t\tslice.bottomWidth = (workingValue - (workingValue - nextValue) * bottomRatio) / this.dataItem.values.value.high * maxHeight;\r\n\r\n\t\t\tsliceLink.topWidth = slice.bottomWidth;\r\n\t\t\tsliceLink.bottomWidth = (workingValue - (workingValue - nextValue)) / this.dataItem.values.value.high * maxHeight;\r\n\r\n\t\t\tslice.x = this._nextY;\r\n\t\t\tslice.width = Math.min(100000, maxWidth / this._count * d * 1 / this._total - linkWidth);\r\n\t\t\tslice.y = maxHeight / 2;\r\n\r\n\t\t\tif (!this.alignLabels) {\r\n\t\t\t\tlabel.y = slice.y;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlabel.y = this.labelsContainer.measuredHeight;\r\n\t\t\t}\r\n\t\t\tlabel.x = slice.pixelX + slice.pixelWidth * tick.locationX;\r\n\r\n\t\t\tthis._nextY += slice.pixelWidth + linkWidth;\r\n\t\t\tsliceLink.x = this._nextY - linkWidth;\r\n\r\n\t\t\tsliceLink.y = slice.y;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getLastLabel(index: number): Label {\r\n\t\tif (index > 0) {\r\n\t\t\tlet lastLabel = this.labels.getIndex(index);\r\n\t\t\tif (lastLabel.__disabled || !lastLabel.visible) {\r\n\t\t\t\treturn this.getLastLabel(index - 1);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn lastLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [arrangeLabels description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected arrangeLabels(): void {\r\n\r\n\t\tif (this.alignLabels) {\r\n\t\t\tlet count = this.labels.length;\r\n\t\t\tif (count > 1) {\r\n\r\n\t\t\t\tlet lastLabel = this.getLastLabel(count - 1);\r\n\t\t\t\tif (lastLabel) {\r\n\r\n\t\t\t\t\tlet lastY = lastLabel.pixelY;\r\n\t\t\t\t\tlet lastX = lastLabel.pixelX;\r\n\r\n\t\t\t\t\tif (count > 1) {\r\n\t\t\t\t\t\tfor (let i = count - 2; i >= 0; i--) {\r\n\t\t\t\t\t\t\tlet label = this.labels.getIndex(i);\r\n\r\n\t\t\t\t\t\t\tif (label.visible && !label.__disabled) {\r\n\t\t\t\t\t\t\t\tif (label.invalid) {\r\n\t\t\t\t\t\t\t\t\tlabel.validate();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\t\t\t\t\tif (label.pixelY + label.measuredHeight > lastY) {\r\n\t\t\t\t\t\t\t\t\t\tlabel.y = Math.min(1000000, lastY - label.measuredHeight);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// horizontal\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif (label.pixelX + label.measuredWidth > lastX) {\r\n\t\t\t\t\t\t\t\t\t\tlabel.x = Math.min(1000000, lastX - label.measuredWidth);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlastY = label.pixelY;\r\n\t\t\t\t\t\t\t\tlastX = label.pixelX;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlastY = 0;\r\n\t\t\t\t\t\tlastX = 0;\r\n\t\t\t\t\t\tfor (let i = 0; i < count; i++) {\r\n\t\t\t\t\t\t\tlet label = this.labels.getIndex(i);\r\n\t\t\t\t\t\t\tif (label.visible && !label.__disabled) {\r\n\t\t\t\t\t\t\t\tif (label.invalid) {\r\n\t\t\t\t\t\t\t\t\tlabel.validate();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\t\t\t\t\tif (label.pixelY < lastY) {\r\n\t\t\t\t\t\t\t\t\t\tlabel.y = Math.min(1000000, lastY);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// horizontal\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif (label.pixelX < lastX) {\r\n\t\t\t\t\t\t\t\t\t\tlabel.x = Math.min(1000000, lastX);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tlastY += label.measuredHeight;\r\n\t\t\t\t\t\t\t\tlastX += label.measuredWidth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Positions series bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet Bullet\r\n\t */\r\n\tpublic positionBullet(bullet: Bullet): void {\r\n\t\tsuper.positionBullet(bullet);\r\n\r\n\t\tlet dataItem: this[\"_dataItem\"] = <this[\"_dataItem\"]>bullet.dataItem;\r\n\t\tlet slice: FunnelSlice = dataItem.slice;\r\n\r\n\t\tlet locationX = bullet.locationX;\r\n\t\tif (!$type.isNumber(locationX)) {\r\n\t\t\tlocationX = 0.5;\r\n\t\t}\r\n\t\tlet locationY = bullet.locationY;\r\n\t\tif (!$type.isNumber(locationY)) {\r\n\t\t\tlocationY = 1;\r\n\t\t}\r\n\r\n\t\tbullet.x = slice.pixelX + slice.measuredWidth * locationX;\r\n\t\tbullet.y = slice.pixelY + slice.measuredHeight * locationY;\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation of the funnel slices: \"horizontal\" or \"vertical\" (default).\r\n\t *\r\n\t * @default \"vertical\"\r\n\t * @param value Orientation\r\n\t */\r\n\tpublic set orientation(value: Orientation) {\r\n\t\tif (this.setPropertyValue(\"orientation\", value)) {\r\n\t\t\tthis.labelsOpposite = this.labelsOpposite;\r\n\t\t\tthis.invalidate();\r\n\t\t\tif (value == \"vertical\") {\r\n\t\t\t\tthis.ticks.template.locationX = 1;\r\n\t\t\t\tthis.ticks.template.locationY = 0.5;\r\n\t\t\t\tthis.labels.template.rotation = 0;\r\n\t\t\t\tthis.layout = \"horizontal\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.ticks.template.locationX = 0.5;\r\n\t\t\t\tthis.ticks.template.locationY = 1;\r\n\t\t\t\tthis.labels.template.rotation = -90;\r\n\t\t\t\tthis.layout = \"vertical\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Orientation\r\n\t */\r\n\tpublic get orientation(): Orientation {\r\n\t\treturn this.getPropertyValue(\"orientation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates how slice's bottom will change in relation to slices top AND\r\n\t * next slices top.\r\n\t *\r\n\t * Basically it's a relative value (0-1) that indicates bottom width\r\n\t * position between current slice's top width and the top withd of the next\r\n\t * one.\r\n\t *\r\n\t * The scale goes from 0 (closer to current slice width) to 1 (closer to next\r\n\t * slice with).\r\n\t *\r\n\t * `0` (default) will mean that bottom will be the same as top, resulting in\r\n\t * a prefectly square slice.\r\n\t *\r\n\t * From the data-viz standpoint `0` is a correct setting, since area of the\r\n\t * slices will depict their value correctly.\r\n\t *\r\n\t * `1` will mean that slice will become trapezoid with its bottom matching\r\n\t * width of the next slice.\r\n\t *\r\n\t * `0.5` will make bottom width be in the middle of width of current slice\r\n\t * and the next slice.\r\n\t *\r\n\t * @default 0\r\n\t * @param {number}\r\n\t */\r\n\tpublic set bottomRatio(value: number) {\r\n\t\tif (this.setPropertyValue(\"bottomRatio\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number}\r\n\t */\r\n\tpublic get bottomRatio(): number {\r\n\t\treturn this.getPropertyValue(\"bottomRatio\");\r\n\t}\r\n\r\n\t/**\r\n\t * A list of elements linking each actual slice.\r\n\t *\r\n\t * Please note that links are [[FunnelSlice]] objects, just like real links,\r\n\t * so they have all the same configuration options.\r\n\t *\r\n\t * You can use `template` of this link, to specify how links will look.\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.sliceLinks.template.fillOpacity = 0.5;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.sliceLinks.template.fillOpacity = 0.5;\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * \"type\": \"FunnelSeries\",\r\n\t * // ...\r\n\t * \"sliceLinks\": {\r\n\t * \"fillOpacity\": 0.5\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @return Funnel links\r\n\t */\r\n\tpublic get sliceLinks(): ListTemplate<this[\"_slice\"]> {\r\n\t\tif (!this._sliceLinks) {\r\n\t\t\tlet sliceLink = new FunnelSlice();\r\n\t\t\tsliceLink.applyOnClones = true;\r\n\t\t\tsliceLink.fillOpacity = 0.5;\r\n\t\t\tsliceLink.expandDistance = - 0.3;\r\n\t\t\tsliceLink.hiddenState.properties.opacity = 0;\r\n\r\n\t\t\tthis._disposers.push(sliceLink);\r\n\r\n\t\t\tthis._sliceLinks = new ListTemplate(sliceLink);\r\n\t\t\tthis._disposers.push(new ListDisposer(this._sliceLinks));\r\n\t\t}\r\n\t\treturn this._sliceLinks;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows hidden series.\r\n\t *\r\n\t * @param duration Duration of reveal animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic show(duration?: number): Animation {\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet interpolationDuration = this.defaultState.transitionDuration;\r\n\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tif(!options.animationsEnabled){\r\n\t\t\tinterpolationDuration = 0;\r\n\t\t}\t\t\r\n\r\n\t\tlet delay: number = 0;\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\r\n\t\t\tif (this.sequencedInterpolation) {\r\n\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t}\r\n\t\t\tdataItem.show(interpolationDuration, delay, [\"value\"]);\r\n\t\t});\r\n\r\n\t\tlet animation = super.show(duration);\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides series.\r\n\t *\r\n\t * @param duration Duration of hiding animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic hide(duration?: number): Animation {\r\n\t\tlet fields: string[] = [\"value\"];\r\n\t\tlet value: number = 0;\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet delay: number = 0;\r\n\t\tlet interpolationDuration = this.hiddenState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tif(!options.animationsEnabled){\r\n\t\t\tinterpolationDuration = 0;\r\n\t\t}\t\t\t\t\r\n\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\r\n\t\t\tif (this.sequencedInterpolation) {\r\n\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t}\r\n\t\t\tdataItem.hide(interpolationDuration, delay, value, fields);\r\n\t\t});\r\n\r\n\t\tlet animation: Animation = super.hide(duration);\r\n\t\tif (animation && !animation.isFinished()) {\r\n\t\t\tanimation.delay(delay);\r\n\t\t}\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setAlignLabels(value: boolean) {\r\n\t\tsuper.setAlignLabels(value);\r\n\t\tthis.ticks.template.disabled = !value;\r\n\t\tlet labelsContainer = this.labelsContainer;\r\n\t\tif (labelsContainer) {\r\n\t\t\t// do not align\r\n\t\t\tif (!value) {\r\n\t\t\t\tlabelsContainer.width = percent(100);\r\n\t\t\t\tlabelsContainer.height = percent(100);\r\n\t\t\t}\r\n\t\t\t//align\r\n\t\t\telse {\r\n\t\t\t\tlabelsContainer.height = undefined;\r\n\t\t\t\tlabelsContainer.width = undefined;\r\n\t\t\t\tlabelsContainer.margin(10, 10, 10, 10);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.labelsOpposite = this.labelsOpposite;\r\n\t}\r\n\r\n\t/**\r\n\t * Put labels on the oppsite side of the series?\r\n\t *\r\n\t * This setting is only used if `alignLabels = true`.\r\n\t *\r\n\t * If set to `true` (default) labels will be drawn to the right (on vertical\r\n\t * series), or to the bottom (on horizontal series).\r\n\t *\r\n\t * If set to `false`, labels will be positioned to the left or top\r\n\t * respectively.\r\n\t *\r\n\t * @default true\r\n\t * @since 4.1.13\r\n\t * @param value Labels on opposite side?\r\n\t */\r\n\tpublic set labelsOpposite(value: boolean) {\r\n\t\tthis.setPropertyValue(\"labelsOpposite\", value)\r\n\t\tlet labelTemplate = this.labels.template;\r\n\r\n\t\tlet labelAlign: Align = \"none\";\r\n\t\tlet labelValign: VerticalAlign = \"none\";\r\n\r\n\t\tif (!this.alignLabels) {\r\n\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\tlabelAlign = \"center\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlabelValign = \"middle\";\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// opposite (left/bottom)\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.labelsContainer.toFront();\r\n\t\t\t\t// left\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\tthis.ticks.template.locationX = 1;\r\n\t\t\t\t\tlabelTemplate.horizontalCenter = \"left\";\r\n\t\t\t\t\tlabelAlign = \"right\";\r\n\t\t\t\t}\r\n\t\t\t\t// bottom\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.ticks.template.locationY = 1;\r\n\t\t\t\t\tlabelTemplate.horizontalCenter = \"right\";\r\n\t\t\t\t\tlabelValign = \"bottom\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// non oposite (right/top)\r\n\t\t\telse {\r\n\t\t\t\tthis.labelsContainer.toBack();\r\n\t\t\t\t// right\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\tthis.ticks.template.locationX = 0;\r\n\t\t\t\t\tlabelAlign = \"left\";\r\n\t\t\t\t}\r\n\t\t\t\t// top\r\n\t\t\t\telse {\r\n\t\t\t\t\tlabelValign = \"top\";\r\n\t\t\t\t\tthis.ticks.template.locationY = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlabelTemplate.align = labelAlign;\r\n\t\tlabelTemplate.valign = labelValign;\r\n\r\n\t\tthis.validateLayout();\r\n\t\tthis.ticks.each((tick) => {\r\n\t\t\ttick.invalidate();\r\n\t\t})\r\n\t\tthis.invalidateDataItems();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Labels on opposite side?\r\n\t */\r\n\tpublic get labelsOpposite(): boolean {\r\n\t\treturn this.getPropertyValue(\"labelsOpposite\");\r\n\t}\r\n}\r\n\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"FunnelSeries\"] = FunnelSeries;\r\nregistry.registeredClasses[\"FunnelSeriesDataItem\"] = FunnelSeriesDataItem;\r\n","/**\r\n * Defines Pyramid Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IFunnelSeriesAdapters, IFunnelSeriesDataFields, IFunnelSeriesEvents, IFunnelSeriesProperties, FunnelSeries, FunnelSeriesDataItem } from \"./FunnelSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo: sequenced?\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PyramidSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PyramidSeriesDataItem extends FunnelSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PyramidSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PyramidSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PyramidSeries]].\r\n */\r\nexport interface IPyramidSeriesDataFields extends IFunnelSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[PyramidSeries]].\r\n */\r\nexport interface IPyramidSeriesProperties extends IFunnelSeriesProperties {\r\n\r\n\t/**\r\n\t * Bottom width in pixels or percent\r\n\t */\r\n\tbottomWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * Top width in pixels or percent\r\n\t */\r\n\ttopWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * Height of pyramid\r\n\t */\r\n\tpyramidHeight?: number | Percent;\r\n\r\n\t/**\r\n\t * Indicates whether slice value should sould influence its height or area\r\n\t * size.\r\n\t *\r\n\t * @default \"area\"\r\n\t */\r\n\tvalueIs?: \"height\" | \"area\";\r\n}\r\n\r\n/**\r\n * Defines events for [[PyramidSeries]].\r\n */\r\nexport interface IPyramidSeriesEvents extends IFunnelSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PyramidSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPyramidSeriesAdapters extends IFunnelSeriesAdapters, IPyramidSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a FunnelSlice series on a [[SlicedChart]].\r\n *\r\n * @see {@link IPyramidSeriesEvents} for a list of available Events\r\n * @see {@link IPyramidSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nexport class PyramidSeries extends FunnelSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IPyramidSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPyramidSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPyramidSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPyramidSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: PyramidSeriesDataItem;\r\n\r\n\t/**\r\n\t * [_nextWidth description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _nextWidth: number;\r\n\r\n\tprotected _pyramidHeight: number;\r\n\r\n\tprotected _pyramidWidth: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"PyramidSeries\";\r\n\t\tthis.topWidth = percent(0);\r\n\t\tthis.bottomWidth = percent(100);\r\n\t\tthis.pyramidHeight = percent(100);\r\n\t\tthis.valueIs = \"area\";\r\n\r\n\t\tthis.sliceLinks.template.width = 0;\r\n\t\tthis.sliceLinks.template.height = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Pyramid Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new PyramidSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tsuper.validate();\r\n\t\tthis._nextWidth = undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * [getNextValue description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected getNextValue(dataItem: FunnelSeriesDataItem): number {\r\n\t\tlet index = dataItem.index;\r\n\t\tlet nextValue: number = dataItem.getWorkingValue(\"value\");\r\n\t\tif (index < this.dataItems.length - 1) {\r\n\t\t\tlet nextItem = this.dataItems.getIndex(index + 1);\r\n\t\t\tnextValue = nextItem.getWorkingValue(\"value\");\r\n\t\t}\r\n\t\tif (nextValue == 0) {\r\n\t\t\tnextValue = 0.000001;\r\n\t\t}\r\n\t\treturn nextValue;\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElements description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements() {\r\n\t\tlet maxWidth = this.slicesContainer.innerWidth;\r\n\t\tlet maxHeight = this.slicesContainer.innerHeight;\r\n\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tif (dataItem.value > 0) {\r\n\t\t\t\tlet relValue = dataItem.getWorkingValue(\"value\") / dataItem.value;\r\n\t\t\t\tlet sliceLink = dataItem.sliceLink;\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\tmaxHeight -= (sliceLink.pixelHeight * relValue);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tmaxWidth -= (sliceLink.pixelWidth * relValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis._pyramidHeight = $utils.relativeToValue(this.pyramidHeight, maxHeight);\r\n\t\tthis._pyramidWidth = $utils.relativeToValue(this.pyramidHeight, maxWidth);\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tlet y = (maxHeight - this._pyramidHeight) / 2;\r\n\t\t\tthis.slicesContainer.y = y\r\n\t\t\tthis.labelsContainer.y = y;\r\n\t\t\tthis.ticksContainer.y = y;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet x = (maxWidth - this._pyramidWidth) / 2;\r\n\t\t\tthis.slicesContainer.x = x;\r\n\t\t\tthis.labelsContainer.x = x;\r\n\t\t\tthis.ticksContainer.x = x;\r\n\t\t}\r\n\r\n\t\tsuper.validateDataElements();\r\n\t}\r\n\r\n\t/**\r\n\t * [decorateSlice description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t */\r\n\tprotected decorateSlice(dataItem: this[\"_dataItem\"]) {\r\n\r\n\t\tlet sum = this.dataItem.values.value.absoluteSum;\r\n\r\n\t\tif (sum == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet slice = dataItem.slice;\r\n\t\tlet sliceLink = dataItem.sliceLink;\r\n\t\tlet label = dataItem.label;\r\n\t\tlet tick = dataItem.tick;\r\n\r\n\t\t// TODO can this be removed ?\r\n\t\tthis.getNextValue(dataItem);\r\n\r\n\t\tlet workingValue = Math.abs(dataItem.getWorkingValue(\"value\"));\r\n\r\n\t\tlet pyramidWidth = this._pyramidWidth;\r\n\t\tlet pyramidHeight = this._pyramidHeight;\r\n\r\n\t\tlet maxWidth = this.slicesContainer.innerWidth;\r\n\t\tlet maxHeight = this.slicesContainer.innerHeight;\r\n\r\n\t\tlet linkWidth = sliceLink.pixelWidth;\r\n\t\tlet linkHeight = sliceLink.pixelHeight;\r\n\r\n\t\tif (dataItem.value == 0 && this.ignoreZeroValues) {\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.__disabled = false;\r\n\t\t}\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tlet topWidth = $utils.relativeToValue(this.topWidth, maxWidth);\r\n\r\n\t\t\tif (!$type.isNumber(this._nextWidth)) {\r\n\t\t\t\tthis._nextWidth = topWidth;\r\n\t\t\t}\r\n\r\n\t\t\tlet bottomWidth = $utils.relativeToValue(this.bottomWidth, maxWidth);\r\n\t\t\tlet sliceTopWidth = this._nextWidth;\r\n\r\n\t\t\tlet angle = Math.atan2(pyramidHeight, topWidth - bottomWidth);\r\n\t\t\tlet c = Math.tan(Math.PI / 2 - angle);\r\n\t\t\tif (c == 0) {\r\n\t\t\t\tc = 0.00000001;\r\n\t\t\t}\r\n\r\n\t\t\tlet sliceHeight: number;\r\n\t\t\tlet sliceBottomWidth: number;\r\n\r\n\t\t\tif (this.valueIs == \"area\") {\r\n\t\t\t\tlet totalSquare = (topWidth + bottomWidth) / 2 * pyramidHeight;\r\n\t\t\t\tlet square = totalSquare * workingValue / sum;\r\n\r\n\t\t\t\tlet s = Math.abs(sliceTopWidth * sliceTopWidth - 2 * square * c);\r\n\r\n\t\t\t\tsliceHeight = (sliceTopWidth - Math.sqrt(s)) / c;\r\n\t\t\t\tif (sliceHeight > 0) {\r\n\t\t\t\t\tsliceBottomWidth = (2 * square - sliceHeight * sliceTopWidth) / sliceHeight;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsliceBottomWidth = sliceTopWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tsliceHeight = pyramidHeight * workingValue / sum;\r\n\t\t\t\tsliceBottomWidth = sliceTopWidth - sliceHeight * c;\r\n\t\t\t}\r\n\r\n\t\t\tslice.height = sliceHeight;\r\n\t\t\tslice.width = maxWidth;\r\n\t\t\tslice.bottomWidth = sliceBottomWidth;\r\n\t\t\tslice.topWidth = sliceTopWidth;\r\n\r\n\t\t\tsliceLink.topWidth = slice.bottomWidth;\r\n\t\t\tsliceLink.bottomWidth = slice.bottomWidth;\r\n\r\n\t\t\tslice.y = this._nextY;\r\n\t\t\t//slice.x = maxWidth / 2;\r\n\r\n\t\t\tif (!this.alignLabels) {\r\n\t\t\t\tlabel.x = maxWidth / 2;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlabel.x = 0;\r\n\t\t\t}\r\n\r\n\t\t\tlabel.y = slice.pixelY + slice.pixelHeight * tick.locationY + slice.dy;\r\n\r\n\t\t\tthis._nextY += slice.pixelHeight + linkHeight * workingValue / Math.max(Math.abs(dataItem.value), 0.00000001);\r\n\t\t\tsliceLink.y = this._nextY - linkHeight;\r\n\t\t\tsliceLink.x = maxWidth / 2;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet topWidth = $utils.relativeToValue(this.topWidth, maxHeight);\r\n\r\n\t\t\tif (!$type.isNumber(this._nextWidth)) {\r\n\t\t\t\tthis._nextWidth = topWidth;\r\n\t\t\t}\r\n\r\n\t\t\tlet bottomWidth = $utils.relativeToValue(this.bottomWidth, maxHeight);\r\n\t\t\tlet sliceTopWidth = this._nextWidth;\r\n\r\n\t\t\tlet angle = Math.atan2(pyramidWidth, topWidth - bottomWidth);\r\n\t\t\tlet c = Math.tan(Math.PI / 2 - angle);\r\n\t\t\tif (c == 0) {\r\n\t\t\t\tc = 0.00000001;\r\n\t\t\t}\r\n\r\n\t\t\tlet sliceWidth: number;\r\n\t\t\tlet sliceBottomWidth: number;\r\n\r\n\t\t\tif (this.valueIs == \"area\") {\r\n\t\t\t\tlet totalSquare = (topWidth + bottomWidth) / 2 * pyramidWidth;\r\n\t\t\t\tlet square = totalSquare * workingValue / sum;\r\n\t\t\t\tsliceWidth = (sliceTopWidth - Math.sqrt(sliceTopWidth * sliceTopWidth - 2 * square * c)) / c;\r\n\t\t\t\tsliceBottomWidth = (2 * square - sliceWidth * sliceTopWidth) / sliceWidth;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tsliceWidth = pyramidWidth * workingValue / sum;\r\n\t\t\t\tsliceBottomWidth = sliceTopWidth - sliceWidth * c;\r\n\t\t\t}\r\n\r\n\t\t\tslice.width = sliceWidth;\r\n\t\t\tslice.height = maxHeight;\r\n\t\t\tslice.bottomWidth = sliceBottomWidth;\r\n\t\t\tslice.topWidth = sliceTopWidth;\r\n\r\n\t\t\tsliceLink.topWidth = slice.bottomWidth;\r\n\t\t\tsliceLink.bottomWidth = slice.bottomWidth;\r\n\r\n\t\t\tslice.x = this._nextY;\r\n\r\n\t\t\tif (!this.alignLabels) {\r\n\t\t\t\tlabel.y = maxHeight / 2;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlabel.y = this.labelsContainer.measuredHeight;\r\n\t\t\t}\r\n\r\n\t\t\tlabel.x = slice.pixelX + slice.pixelWidth * tick.locationX + slice.dx;\r\n\r\n\t\t\tthis._nextY += slice.pixelWidth + linkWidth * workingValue / Math.max(Math.abs(dataItem.value), 0.00000001);\r\n\t\t\tsliceLink.x = this._nextY - linkWidth;\r\n\t\t\tsliceLink.y = maxHeight / 2;\r\n\t\t}\r\n\r\n\t\tthis._nextWidth = slice.bottomWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Width of the pyramid's tip in pixels or relative (`Percent`).\r\n\t *\r\n\t * `0%` (default) means the pyramid will be perfectly pointy.\r\n\t * `50%` will have a cut off / blunt top that is half the width of the chart.\r\n\t * `100%` will take the whole width of the chart.\r\n\t *\r\n\t * If you need the downward-pointing pyramid, you might want to `topWidth` to\r\n\t * `100%` and `bottomWidth` to `0%`.\r\n\t *\r\n\t * @default 0%\r\n\t * @param {number | Percent}\r\n\t */\r\n\tpublic set topWidth(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"topWidth\", value, false, false, 10, false)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number | Percent}\r\n\t */\r\n\tpublic get topWidth(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"topWidth\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Height of pyramid\r\n\t *\r\n\t *\r\n\t * @default 100%\r\n\t * @param {number | Percent}\r\n\t */\r\n\tpublic set pyramidHeight(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"pyramidHeight\", value, false, false, 10, false)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number | Percent}\r\n\t */\r\n\tpublic get pyramidHeight(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"pyramidHeight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Width of the pyramid's bottom (bsae) in pixels or relative (`Percent`).\r\n\t *\r\n\t * `0%` means the pyramid's botto will be pointy.\r\n\t * `50%` will have a cut off / blunt bottom that is half the width of the chart.\r\n\t * `100%` (default) will take the whole width of the chart.\r\n\t *\r\n\t * If you need the downward-pointing pyramid, you might want to `topWidth` to\r\n\t * `100%` and `bottomWidth` to `0%`.\r\n\t *\r\n\t * @param {number | Percent}\r\n\t */\r\n\tpublic set bottomWidth(value: number | Percent) {\r\n\t\tif (this.setPercentProperty(\"bottomWidth\", value, false, false, 10, false)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {number | Percent}\r\n\t */\r\n\tpublic get bottomWidth(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"bottomWidth\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates how slice's value will influence its size.\r\n\t *\r\n\t * `\"area\"` (default) means that the whole area of the pyramid (counting in\r\n\t * modifications by `topWidth` and `bottomWidth`) will be divvied up between\r\n\t * slices based on their value.\r\n\t *\r\n\t * With this setting at `\"area\"` the area of the trapezoids of each slice\r\n\t * will represent their value relatively to values of the other slices.\r\n\t *\r\n\t * This is a correct way to depict \"weight\" of each slice based on their\r\n\t * values.\r\n\t *\r\n\t * `\"height\"` means whole height (as opposed to area) of the pyramid will be\r\n\t * divvied up between slices. Actual slice width or area is not counted in.\r\n\t *\r\n\t * From the data-viz standpoint this does not make a lot of sense, since\r\n\t * slices with lesser values might appear more prominent if they are placed\r\n\t * towards thick end of the pyramid since their areas will be bigger.\r\n\t *\r\n\t * @default \"area\"\r\n\t * @param {\"area\" | \"height\"}\r\n\t */\r\n\tpublic set valueIs(value: \"area\" | \"height\") {\r\n\t\tif (this.setPropertyValue(\"valueIs\", value)) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {\"area\" | \"height\"}\r\n\t */\r\n\tpublic get valueIs(): \"area\" | \"height\" {\r\n\t\treturn this.getPropertyValue(\"valueIs\");\r\n\t}\r\n}\r\n\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PyramidSeries\"] = PyramidSeries;\r\nregistry.registeredClasses[\"PyramidSeriesDataItem\"] = PyramidSeriesDataItem;\r\n","/**\r\n * Defines Pictorial Stacked Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPyramidSeriesAdapters, IPyramidSeriesDataFields, IPyramidSeriesEvents, IPyramidSeriesProperties, PyramidSeries, PyramidSeriesDataItem } from \"./PyramidSeries\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n//@todo: sequenced?\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[PictorialStackedSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class PictorialStackedSeriesDataItem extends PyramidSeriesDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: PictorialStackedSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"PictorialStackedSeriesDataItem\";\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[PictorialStackedSeries]].\r\n */\r\nexport interface IPictorialStackedSeriesDataFields extends IPyramidSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[PictorialStackedSeries]].\r\n */\r\nexport interface IPictorialStackedSeriesProperties extends IPyramidSeriesProperties {\r\n\r\n\t/**\r\n\t * Relative location to start series from.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tstartLocation?: number;\r\n\r\n\t/**\r\n\t * Relative location to end series at.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\tendLocation?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[PictorialStackedSeries]].\r\n */\r\nexport interface IPictorialStackedSeriesEvents extends IPyramidSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[PictorialStackedSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPictorialStackedSeriesAdapters extends IPyramidSeriesAdapters, IPictorialStackedSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a PictorialStacked series on a [[SlicedChart]].\r\n *\r\n * @see {@link IPictorialStackedSeriesEvents} for a list of available Events\r\n * @see {@link IPictorialStackedSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/sliced-chart/} for documentation\r\n * @important\r\n */\r\nexport class PictorialStackedSeries extends PyramidSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IPictorialStackedSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPictorialStackedSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPictorialStackedSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPictorialStackedSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: PictorialStackedSeriesDataItem;\r\n\r\n\t/**\r\n\t * Holds a Sprite that acts as an intelligent mask for the serries.\r\n\t */\r\n\tprotected _maskSprite: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"PictorialStackedSeries\";\r\n\t\tthis.topWidth = percent(100);\r\n\t\tthis.bottomWidth = percent(100);\r\n\t\tthis.valueIs = \"height\";\r\n\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.startLocation = 0;\r\n\t\tthis.endLocation = 1;\r\n\t\tthis.align = \"center\";\r\n\t\tthis.valign = \"middle\";\r\n\r\n\t\tthis._maskSprite = this.slicesContainer.createChild(Sprite);\r\n\t\tthis._maskSprite.visible = false;\r\n\t\tthis._maskSprite.zIndex = 100;\r\n\t\tthis._maskSprite.shouldClone = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Sizes the mask to fit the series.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic validateDataElements(): void {\r\n\r\n\t\tlet maxWidth = this.slicesContainer.maxWidth;\r\n\t\tlet maxHeight = this.slicesContainer.maxHeight;\r\n\r\n\t\tlet maskSprite = this._maskSprite;\r\n\t\t//maskSprite.validatePosition(); // for some reason size of the maskSprite is 0x0 after we removed validatePosition in afterdraw\r\n\r\n\t\tlet pictureWidth = maskSprite.measuredWidth / maskSprite.scale;\r\n\t\tlet pictureHeight = maskSprite.measuredHeight / maskSprite.scale;\r\n\r\n\t\tlet scale = $math.min(maxHeight / pictureHeight, maxWidth / pictureWidth);\r\n\r\n\t\tif (scale == Infinity) {\r\n\t\t\tscale = 1; // can't return here, won't draw legend properly\r\n\t\t}\r\n\r\n\t\tscale = $math.max(0.001, scale);\r\n\r\n\t\tlet startLocation = this.startLocation;\r\n\t\tlet endLocation = this.endLocation;\r\n\r\n\t\tlet newWidth = $math.min(maxWidth, pictureWidth * scale);\r\n\t\tlet newHeight = $math.min(maxHeight, pictureHeight * scale);\r\n\r\n\t\tmaskSprite.scale = scale;\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tthis.topWidth = newWidth + 4;\r\n\t\t\tthis.bottomWidth = newWidth + 4;\r\n\t\t\tthis.pyramidHeight = newHeight * (endLocation - startLocation);\r\n\t\t\tmaskSprite.x = maxWidth / 2;\r\n\t\t\tmaskSprite.y = newHeight / 2;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.topWidth = newHeight + 4;\r\n\t\t\tthis.bottomWidth = newHeight + 4;\r\n\t\t\tthis.pyramidHeight = newWidth * (endLocation - startLocation);\r\n\t\t\tmaskSprite.valign = \"middle\";\r\n\t\t\tmaskSprite.x = newWidth / 2;\r\n\t\t\tmaskSprite.y = maxHeight / 2;\r\n\t\t}\r\n\r\n\t\tmaskSprite.verticalCenter = \"middle\";\r\n\t\tmaskSprite.horizontalCenter = \"middle\";\r\n\r\n\t\tsuper.validateDataElements();\r\n\r\n\t\tlet y: number;\r\n\t\tlet x: number;\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\tif (this.valign == \"bottom\") {\r\n\t\t\t\ty = (maxHeight - newHeight);\r\n\t\t\t}\r\n\t\t\tif (this.valign == \"middle\") {\r\n\t\t\t\ty = (maxHeight - newHeight) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.valign == \"top\") {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.align == \"left\") {\r\n\t\t\t\tx = -(maxWidth - newWidth) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.align == \"center\") {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\t\t\tif (this.align == \"right\") {\r\n\t\t\t\tx = (maxWidth - newWidth) / 2;\r\n\t\t\t}\r\n\r\n\t\t\tthis.slices.template.dy = startLocation * newHeight;\r\n\t\t\tif (this.alignLabels) {\r\n\t\t\t\tthis.slicesContainer.dx = x;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.valign == \"bottom\") {\r\n\t\t\t\ty = (maxHeight - newHeight) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.valign == \"middle\") {\r\n\t\t\t\ty = 0;\r\n\t\t\t}\r\n\t\t\tif (this.valign == \"top\") {\r\n\t\t\t\ty = -(maxHeight - newHeight) / 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.align == \"left\") {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\t\t\tif (this.align == \"center\") {\r\n\t\t\t\tx = (maxWidth - newWidth) / 2;\r\n\t\t\t}\r\n\t\t\tif (this.align == \"right\") {\r\n\t\t\t\tx = (maxWidth - newWidth);\r\n\t\t\t}\r\n\r\n\t\t\tthis.slices.template.dx = startLocation * newWidth;\r\n\t\t\tif (this.alignLabels) {\r\n\t\t\t\tthis.slicesContainer.dy = y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.slicesContainer.x = x;\r\n\t\tthis.labelsContainer.x = x;\r\n\t\tthis.ticksContainer.x = x;\r\n\r\n\t\tthis.slicesContainer.y = y;\r\n\t\tthis.labelsContainer.y = y;\r\n\t\tthis.ticksContainer.y = y;\r\n\r\n\t\tif (newWidth > 0 && newHeight > 0) {\r\n\t\t\tthis.slicesContainer.mask = maskSprite;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Pyramid Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new PictorialStackedSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Sprite]] element that is used as a series mask.\r\n\t *\r\n\t * If set, this element's shape will be used to apply shape to the whole\r\n\t * stacked pictorial series.\r\n\t *\r\n\t * You can use this element's `path` property to set an SVG path for the\r\n\t * shape:\r\n\t *\r\n\t * ```TypeScript\r\n\t * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n\t * // ...\r\n\t * series.maskSprite.path = iconPath;\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n\t * // ...\r\n\t * series.maskSprite.path = iconPath;\r\n\t * ```\r\n\t * ```JSON\r\n\t * let iconPath = \"M511.82,329.991c-0.256-1.212-1.064-2.244-2.192-2.784l-24.396-11.684c17.688-29.776,11.804-68.912-15.58-91.88 c-53.756-45.084-131.696-70.936-213.828-70.936c-82.128,0-160.068,25.856-213.82,70.936c-27.416,22.992-33.28,62.18-15.524,91.972 L2.276,327.203c-1.128,0.54-1.936,1.572-2.192,2.792c-0.256,1.22,0.08,2.496,0.896,3.436l21.204,24.388 c0.764,0.88,1.868,1.376,3.02,1.376c0.084,0,0.172,0,0.26-0.008c1.244-0.084,2.384-0.74,3.072-1.776l14.852-22.376 c12.648,10.112,28.392,15.776,44.916,15.776c16.872,0,33.284-5.98,46.232-16.836c27.828-23.34,73.172-37.272,121.288-37.272 c48.12,0,93.464,13.932,121.296,37.272c12.944,10.856,29.36,16.836,46.228,16.836c16.596,0,32.4-5.724,45.08-15.916l14.94,22.512 c0.692,1.04,1.824,1.696,3.076,1.776c0.084,0.008,0.172,0.008,0.256,0.008c1.156,0,2.256-0.496,3.02-1.376l21.2-24.388C511.74,332.487,512.068,331.211,511.82,329.991z\";\r\n\t * // ...\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * \"type\": \"PictorialStackedSeries\",\r\n\t * // ...\r\n\t * \"maskSprite\": {\r\n\t * \"path\": iconPath\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @return Mask sprite\r\n\t */\r\n\tpublic get maskSprite(): Sprite {\r\n\t\treturn this._maskSprite;\r\n\t}\r\n\r\n\t/**\r\n\t * Inits FunnelSlice.\r\n\t *\r\n\t * @param slice to init\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\t\tsuper.initSlice(slice);\r\n\r\n\t\tlet hs = slice.states.getKey(\"hover\");\r\n\t\tif (hs) {\r\n\t\t\ths.properties.expandDistance = 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location to start series from.\r\n\t *\r\n\t * Range of values: 0 to 1.\r\n\t *\r\n\t * This setting indicates where actual slices will start relatively to the\r\n\t * whole height/width of the series.\r\n\t *\r\n\t * For example, if we want slices to start at 30% from the top/left of the\r\n\t * series, we can set `startLocation = 0.3`.\r\n\t *\r\n\t * To fill shape outside of the location range, use background of the\r\n\t * property `slicesContainer`.\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.startLocation = 0.2;\r\n\t * series.endLocation = 0.8;\r\n\t * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.startLocation = 0.2;\r\n\t * series.endLocation = 0.8;\r\n\t * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"startLocation\": 0.2,\r\n\t * \"endLocation\": 0.8,\r\n\t * \"slicesContainer\": {\r\n\t * \"background\": {\r\n\t * \"fill\": \"#eee\"\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default 0\r\n\t * @since 4.1.13\r\n\t * @param value Start location\r\n\t */\r\n\tpublic set startLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"startLocation\", value)) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start location\r\n\t */\r\n\tpublic get startLocation(): number {\r\n\t\treturn this.getPropertyValue(\"startLocation\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative location to end series at.\r\n\t *\r\n\t * Range of values: 0 to 1.\r\n\t *\r\n\t * This setting indicates where actual slices will end relatively to the\r\n\t * whole height/width of the series.\r\n\t *\r\n\t * For example, if we want slices to end at 70% from the top/left of the\r\n\t * series, we can set `endLocation = 0.7`.\r\n\t *\r\n\t * To fill shape outside of the location range, use background of the\r\n\t * property `slicesContainer`.\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.startLocation = 0.2;\r\n\t * series.endLocation = 0.8;\r\n\t * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.startLocation = 0.2;\r\n\t * series.endLocation = 0.8;\r\n\t * series.slicesContainer.background.fill = am4core.color(\"#eee\");\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"startLocation\": 0.2,\r\n\t * \"endLocation\": 0.8,\r\n\t * \"slicesContainer\": {\r\n\t * \"background\": {\r\n\t * \"fill\": \"#eee\"\r\n\t * }\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @default 1\r\n\t * @since 4.1.13\r\n\t * @param value End location\r\n\t */\r\n\tpublic set endLocation(value: number) {\r\n\t\tif (this.setPropertyValue(\"endLocation\", value)) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End location\r\n\t */\r\n\tpublic get endLocation(): number {\r\n\t\treturn this.getPropertyValue(\"endLocation\");\r\n\t}\r\n}\r\n\r\n/**\r\n * bboxter class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"PictorialStackedSeries\"] = PictorialStackedSeries;\r\nregistry.registeredClasses[\"PictorialStackedSeriesDataItem\"] = PictorialStackedSeriesDataItem;\r\n","/**\r\n * Module that defines everything related to building Cone Columns.\r\n * It is a container which has coneColumn element which is a Cone.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column, IColumnProperties, IColumnAdapters, IColumnEvents } from \"./Column\";\r\nimport { Cone } from \"../../core/elements/3d/Cone\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[ConeColumn]].\r\n */\r\nexport interface IConeColumnProperties extends IColumnProperties { }\r\n\r\n/**\r\n * Defines events for [[ConeColumn]].\r\n */\r\nexport interface IConeColumnEvents extends IColumnEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ConeColumn]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IConeColumnAdapters extends IColumnAdapters, IConeColumnProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates ConeColumns.\r\n *\r\n * @see {@link IConeColumnEvents} for a list of available events\r\n * @see {@link IConeColumnAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class ConeColumn extends Column {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IConeColumnProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IConeColumnAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IConeColumnEvents;\r\n\r\n\r\n\t/**\r\n\t * Cone column element\r\n\t */\r\n\tpublic coneColumn: Cone;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ConeColumn\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tcreateAssets() {\r\n\t\tthis.coneColumn = this.createChild(Cone);\r\n\t\tthis.coneColumn.shouldClone = false;\r\n\r\n\t\t// some dirty hack so that if user access column, it won't get error\r\n\t\tthis.column = <any>this.coneColumn;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[ConeColumn]].\r\n\t *\r\n\t * @param source Source ConeColumn\r\n\t */\r\n\tcopyFrom(source: this) {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.coneColumn) {\r\n\t\t\tthis.coneColumn.copyFrom(source.coneColumn);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ConeColumn\"] = ConeColumn;\r\n","/**\r\n * ConeSeries module\r\n * Not recommended using if you use scrollbars or your chart is zoomable in some other way.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, IColumnSeriesDataFields, IColumnSeriesProperties, IColumnSeriesAdapters, IColumnSeriesEvents, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { ConeColumn } from \"../elements/ConeColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[ConeSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class ConeSeriesDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the column.\r\n\t */\r\n\tpublic _column: ConeColumn;\r\n\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: ConeSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ConeSeriesDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[ConeSeries]].\r\n */\r\nexport interface IConeSeriesDataFields extends IColumnSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[ConeSeries]].\r\n */\r\nexport interface IConeSeriesProperties extends IColumnSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[ConeSeries]].\r\n */\r\nexport interface IConeSeriesEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[ConeSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IConeSeriesAdapters extends IColumnSeriesAdapters, IConeSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a cone graph.\r\n *\r\n * @see {@link IConeSeriesEvents} for a list of available Events\r\n * @see {@link IConeSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class ConeSeries extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Type of column.\r\n\t */\r\n\tpublic _column: ConeColumn;\r\n\r\n\t/**\r\n\t */\r\n\tpublic _dataItem: ConeSeriesDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IConeSeriesDataFields\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IConeSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IConeSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IConeSeriesEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"ConeSeries\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an element to use for Candlestick\r\n\t * @ignore\r\n\t * @return Element.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new ConeColumn();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an SVG path to use as series mask.\r\n\t *\r\n\t * @return SVG path\r\n\t */\r\n\tprotected getMaskPath(): string {\t\t\r\n\t\tlet dx = 0;\r\n\t\tlet dy = 0;\r\n\t\tlet column = this.columns.getIndex(0);\r\n\r\n\t\tif(column){\r\n\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\tdy = column.coneColumn.innerWidth / 2 + 1\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdx = column.coneColumn.innerHeight / 2 + 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn $path.rectToPath({\r\n\t\t\t\tx: -dx,\r\n\t\t\t\ty: 0,\r\n\t\t\t\twidth: this.xAxis.axisLength + dx,\r\n\t\t\t\theight: this.yAxis.axisLength + dy\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates data item's elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElementReal(dataItem);\r\n\t\tlet column = dataItem.column;\r\n\t\tif(column){\r\n\t\t\tlet coneColumn = dataItem.column.coneColumn;\r\n\r\n\t\t\tconeColumn.fill = dataItem.column.fill;\r\n\r\n\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\tconeColumn.orientation = \"horizontal\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconeColumn.orientation = \"vertical\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ConeSeries\"] = ConeSeries;\r\nregistry.registeredClasses[\"ConeSeriesDataItem\"] = ConeSeriesDataItem;\r\n","/**\r\n * Module that defines everything related to building Curved Columns.\r\n * It is a container which has CurvedColumn element which is a Sprite.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Column, IColumnProperties, IColumnAdapters, IColumnEvents } from \"./Column\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $smoothing from \"../../core/rendering/Smoothing\";\r\nimport { Orientation } from \"../../core/defs/Orientation\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[CurvedColumn]].\r\n */\r\nexport interface ICurvedColumnProperties extends IColumnProperties {\r\n\r\n\t/**\r\n\t * Horizontal tension setting of the line (0-1).\r\n\t *\r\n\t * Used for smoothed lines.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\ttensionX?: number;\r\n\r\n\t/**\r\n\t * Tension\r\n\t */\r\n\ttension?: number;\r\n\r\n\t/**\r\n\t * Orientation of the column\r\n\t *\r\n\t * @default \"vertical\"\r\n\t */\r\n\torientation?: Orientation;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[CurvedColumn]].\r\n */\r\nexport interface ICurvedColumnEvents extends IColumnEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CurvedColumn]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICurvedColumnAdapters extends IColumnAdapters, ICurvedColumnProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to creates CurvedColumns.\r\n *\r\n * @see {@link ICurvedColumnEvents} for a list of available events\r\n * @see {@link ICurvedColumnAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class CurvedColumn extends Column {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICurvedColumnProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICurvedColumnAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICurvedColumnEvents;\r\n\r\n\t/**\r\n\t * The element that holds curved column shape.\r\n\t */\r\n\tpublic curvedColumn: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CurvedColumn\";\r\n\t}\r\n\r\n\t/**\r\n\t * [createAssets description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected createAssets(): void {\r\n\t\tthis.curvedColumn = this.createChild(Sprite);\r\n\t\tthis.curvedColumn.shouldClone = false;\r\n\r\n\t\tthis.setPropertyValue(\"tension\", 0.7);\r\n\r\n\t\tthis.width = percent(120);\r\n\t\tthis.height = percent(120);\r\n\r\n\t\t// some dirty hack so that if user access column, it won't get error\r\n\t\tthis.column = <any>this.curvedColumn;\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tlet w = this.realWidth;\r\n\t\tlet h = this.realHeight;\r\n\t\tlet x = this.realX - this.pixelX;\r\n\t\tlet y = this.realY - this.pixelY;\r\n\r\n\t\tlet points: IPoint[];\r\n\r\n\t\t// TODO can this be removed ?\r\n\t\t$utils.used(this.width);\r\n\r\n\t\tlet tensionX = 1;\r\n\t\tlet tensionY = 1;\r\n\r\n\t\tif (this.orientation == \"vertical\") {\r\n\t\t\ttensionX = this.tension;\r\n\t\t\tpoints = [{ x: 0, y: h + y }, { x: w / 2, y: y }, { x: w, y: h + y }];\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttensionY = this.tension;\r\n\t\t\tpoints = [{ x: x, y: 0 }, { x: x + w, y: h / 2 }, { x: x, y: h }];\r\n\t\t}\r\n\r\n\t\tlet path = $path.moveTo(points[0]) + new $smoothing.Tension(tensionX, tensionY).smooth(points);\r\n\t\tthis.column.path = path;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[CurvedColumn]].\r\n\t *\r\n\t * @param source Source CurvedColumn\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source)\r\n\t\tif (this.curvedColumn) {\r\n\t\t\tthis.curvedColumn.copyFrom(source.curvedColumn);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Horizontal tension of the curve.\r\n\t *\r\n\t * Tension defines how \"lose\" the line will be.\r\n\t *\r\n\t * 1 is the maximum tension which would result in pointy columns with\r\n\t * straight edges.\r\n\t *\r\n\t * The smaller the tension th wider the column will be.\r\n\t *\r\n\t * @default 0.7\r\n\t * @param value tension (0-1)\r\n\t */\r\n\tpublic set tension(value: number) {\r\n\t\tthis.setPropertyValue(\"tension\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tension (0-1)\r\n\t */\r\n\tpublic get tension(): number {\r\n\t\treturn this.getPropertyValue(\"tension\");\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation of the column.\r\n\t *\r\n\t * Available options: \"vertical\" (default) and \"horizontal\".\r\n\t *\r\n\t * @default \"vertical\"\r\n\t * @param value Orientation\r\n\t */\r\n\tpublic set orientation(value: Orientation) {\r\n\t\tthis.setPropertyValue(\"orientation\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Orientation\r\n\t */\r\n\tpublic get orientation(): Orientation {\r\n\t\treturn this.getPropertyValue(\"orientation\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CurvedColumn\"] = CurvedColumn;\r\n","/**\r\n * CurvedColumnSeries module.\r\n *\r\n * Not recommended using if you use scrollbars or your chart is zoomable in some other way.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, IColumnSeriesDataFields, IColumnSeriesProperties, IColumnSeriesAdapters, IColumnSeriesEvents, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { CurvedColumn } from \"../elements/CurvedColumn\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[CurvedColumnSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class CurvedColumnSeriesDataItem extends ColumnSeriesDataItem {\r\n\r\n\t/**\r\n\t * A sprite used to draw the column.\r\n\t */\r\n\tpublic _column: CurvedColumn;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: CurvedColumnSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CurvedColumnSeriesDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[CurvedColumnSeries]].\r\n */\r\nexport interface ICurvedColumnSeriesDataFields extends IColumnSeriesDataFields { }\r\n\r\n/**\r\n * Defines properties for [[CurvedColumnSeries]].\r\n */\r\nexport interface ICurvedColumnSeriesProperties extends IColumnSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[CurvedColumnSeries]].\r\n */\r\nexport interface ICurvedColumnSeriesEvents extends IColumnSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CurvedColumnSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICurvedColumnSeriesAdapters extends IColumnSeriesAdapters, ICurvedColumnSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines [[Series]] for a curved columns graph.\r\n *\r\n * @see {@link ICurvedColumnSeriesEvents} for a list of available Events\r\n * @see {@link ICurvedColumnSeriesAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class CurvedColumnSeries extends ColumnSeries {\r\n\r\n\t/**\r\n\t * Defines type of the column.\r\n\t */\r\n\tpublic _column: CurvedColumn;\r\n\r\n\t/**\r\n\t * Defines type of the data item.\r\n\t */\r\n\tpublic _dataItem: CurvedColumnSeriesDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: ICurvedColumnSeriesDataFields\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICurvedColumnSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICurvedColumnSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICurvedColumnSeriesEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"CurvedColumnSeries\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an element to use for the curved column.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Element.\r\n\t */\r\n\tprotected createColumnTemplate(): this[\"_column\"] {\r\n\t\treturn new CurvedColumn();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Validates data item's elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElementReal(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElementReal(dataItem);\r\n\r\n\t\tlet column = dataItem.column;\r\n\t\tcolumn = dataItem.column;\r\n\r\n\t\tif (column) {\r\n\t\t\tlet curvedColumn = dataItem.column.curvedColumn;\r\n\r\n\t\t\tcurvedColumn.fill = dataItem.column.fill;\r\n\r\n\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\tcolumn.orientation = \"horizontal\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcolumn.orientation = \"vertical\";\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CurvedColumnSeries\"] = CurvedColumnSeries;\r\nregistry.registeredClasses[\"CurvedColumnSeriesDataItem\"] = CurvedColumnSeriesDataItem;\r\n","/**\r\n * Bullet module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet, IBulletProperties, IBulletAdapters, IBulletEvents } from \"./Bullet\";\r\nimport { Circle } from \"../../core/elements/Circle\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Bullet]]\r\n */\r\nexport interface ICircleBulletProperties extends IBulletProperties { }\r\n\r\n/**\r\n * Defines events for [[Bullet]]\r\n */\r\nexport interface ICircleBulletEvents extends IBulletEvents { }\r\n\r\n/**\r\n * Defines adapters\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICircleBulletAdapters extends IBulletAdapters, ICircleBulletProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class CircleBullet extends Bullet {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICircleBulletProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICircleBulletAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICircleBulletEvents;\r\n\r\n\t/**\r\n\t * A label (textual) element for the bullet.\r\n\t */\r\n\tpublic circle: Circle;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"CircleBullet\";\r\n\r\n\t\tlet circle = this.createChild(Circle);\r\n\t\tcircle.shouldClone = false;\r\n\t\tcircle.radius = 5;\r\n\t\tcircle.isMeasured = false;\r\n\t\tthis.circle = circle;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all proprities and related stuff from another instance of\r\n\t * [[CircleBullet]].\r\n\t *\r\n\t * @param source Source element\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.circle.copyFrom(source.circle);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CircleBullet\"] = CircleBullet;\r\n","/**\r\n * Bullet module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Bullet, IBulletProperties, IBulletAdapters, IBulletEvents } from \"./Bullet\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Bullet]]\r\n */\r\nexport interface IErrorBulletProperties extends IBulletProperties { }\r\n\r\n/**\r\n * Defines events for [[Bullet]]\r\n */\r\nexport interface IErrorBulletEvents extends IBulletEvents { }\r\n\r\n/**\r\n * Defines adapters\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface IErrorBulletAdapters extends IBulletAdapters, IErrorBulletProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a bullet with a textual label.\r\n *\r\n * Uses [[Label]] instance to draw the label, so the label itself is\r\n * configurable.\r\n *\r\n * @see {@link IBulletEvents} for a list of available events\r\n * @see {@link IBulletAdapters} for a list of available Adapters\r\n * @todo Usage example\r\n * @important\r\n */\r\nexport class ErrorBullet extends Bullet {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IErrorBulletProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IErrorBulletAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IErrorBulletEvents;\r\n\r\n\tpublic errorLine:Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"ErrorBullet\";\r\n\t\tthis.errorLine = this.createChild(Sprite);\r\n\t\tthis.errorLine.shouldClone = false;\r\n\t\tthis.width = 20;\r\n\t\tthis.height = 20;\r\n\t\tthis.strokeOpacity = 1;\r\n\t\tthis.isDynamic = true;\r\n\t}\r\n\r\n\r\n\tvalidatePosition(){\r\n\t\tsuper.validatePosition();\r\n\t\tlet w = this.pixelWidth / 2;\r\n\t\tlet h = this.pixelHeight / 2;\r\n\r\n\t\tthis.errorLine.path = $path.moveTo({x:-w, y:-h}) + $path.lineTo({x:w, y:-h}) + $path.moveTo({x:0, y:-h}) + $path.lineTo({x:0, y:h}) + $path.moveTo({x:-w, y:h}) + $path.lineTo({x:w, y:h});\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all proprities and related stuff from another instance of\r\n\t * [[ErrorBullet]].\r\n\t *\r\n\t * @param source Source element\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.errorLine.copyFrom(source.errorLine);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ErrorBullet\"] = ErrorBullet;\r\n","/**\r\n * Functionality for drawing simple NavigationBar.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component, IComponentProperties, IComponentAdapters, IComponentEvents, IComponentDataFields } from \"../../core/Component\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { TextLink } from \"../../core/elements/TextLink\";\r\nimport { Triangle } from \"../../core/elements/Triangle\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[NavigationBar]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class NavigationBarDataItem extends DataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: NavigationBar;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"NavigationBarDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Name of the navigation bar item.\r\n\t *\r\n\t * @param value Name\r\n\t */\r\n\tpublic set name(value: string) {\r\n\t\tthis.setProperty(\"name\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Name\r\n\t */\r\n\tpublic get name(): string {\r\n\t\treturn this.properties[\"name\"];\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[NavigationBar]].\r\n */\r\nexport interface INavigationBarDataFields extends IComponentDataFields {\r\n\r\n\t/**\r\n\t * Name of nav var item.\r\n\t */\r\n\tname?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[NavigationBar]].\r\n */\r\nexport interface INavigationBarProperties extends IComponentProperties {\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[NavigationBar]].\r\n */\r\nexport interface INavigationBarEvents extends IComponentEvents { }\r\n\r\n/**\r\n * Defines adapters for [[NavigationBar]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface INavigationBarAdapters extends IComponentAdapters, INavigationBarProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * NavigationBar class can be used to create a multi-level breadcrumb-style\r\n * navigation control.\r\n *\r\n * @see {@link INavigationBarEvents} for a list of available events\r\n * @see {@link INavigationBarAdapters} for a list of available Adapters\r\n * @todo Implement better\r\n * @important\r\n */\r\nexport class NavigationBar extends Component {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: INavigationBarDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: INavigationBarProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: INavigationBarAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: INavigationBarEvents;\r\n\r\n\t/**\r\n\t * A list of breadcrumbs (links) in the nav bar.\r\n\t */\r\n\tpublic links: ListTemplate<TextLink>;\r\n\r\n\t/**\r\n\t * [_linksIterator description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _linksIterator: $iter.ListIterator<TextLink>;\r\n\r\n\t/**\r\n\t * [_separatorsIterator description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _separatorsIterator: $iter.ListIterator<Sprite>;\r\n\r\n\t/**\r\n\t * A reference to the link which is currently active.\r\n\t */\r\n\tpublic activeLink: TextLink;\r\n\r\n\t/**\r\n\t * A list of elements used as nav bar item separators.\r\n\t */\r\n\tpublic separators: ListTemplate<Triangle>;\r\n\r\n\t/**\r\n\t * Identifies the type of the [[DataItem]] used in this element.\r\n\t */\r\n\tpublic _dataItem!: NavigationBarDataItem;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"NavigationBar\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tlet textLink = new TextLink();\r\n\t\ttextLink.valign = \"middle\";\r\n\t\ttextLink.paddingTop = 8;\r\n\t\ttextLink.paddingBottom = 8;\r\n\r\n\t\tthis.paddingBottom = 2;\r\n\r\n\t\tthis.links = new ListTemplate<TextLink>(textLink);\r\n\t\tthis._disposers.push(new ListDisposer(this.links));\r\n\t\tthis._disposers.push(textLink);\r\n\r\n\t\tthis._linksIterator = new $iter.ListIterator<TextLink>(this.links, () => this.links.create());\r\n\t\tthis._linksIterator.createNewItems = true;\r\n\r\n\t\tlet triangle = new Triangle();\r\n\t\ttriangle.direction = \"right\";\r\n\t\ttriangle.width = 8;\r\n\t\ttriangle.height = 12;\r\n\t\ttriangle.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\ttriangle.fillOpacity = 0.5;\r\n\t\ttriangle.valign = \"middle\";\r\n\t\ttriangle.marginLeft = 10;\r\n\t\ttriangle.marginRight = 10;\r\n\r\n\t\tthis.separators = new ListTemplate<Triangle>(triangle);\r\n\t\tthis._disposers.push(new ListDisposer(this.separators));\r\n\t\tthis._disposers.push(triangle);\r\n\r\n\t\tlet activeLink = new TextLink();\r\n\t\tthis.activeLink = activeLink;\r\n\t\tactiveLink.copyFrom(textLink);\r\n\t\tactiveLink.valign = \"middle\";\r\n\t\tactiveLink.fontWeight = \"bold\";\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.layout = \"grid\";\r\n\t\tthis.dataFields.name = \"name\";\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Completely redraws the navigation bar.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements(): void {\r\n\t\tthis.removeChildren();\r\n\t\tthis._linksIterator.reset();\r\n\t\tsuper.validateDataElements();\r\n\t\t//@todo: dispose\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a visual element for a data item (nav item).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\tlet textLink: TextLink;\r\n\t\tif (dataItem.index < this.dataItems.length - 1) {\r\n\t\t\ttextLink = this._linksIterator.getLast();\r\n\t\t\ttextLink.parent = this;\r\n\t\t\tlet separator = this.separators.create();\r\n\t\t\tseparator.parent = this;\r\n\t\t\tseparator.valign = \"middle\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttextLink = this.activeLink;\r\n\t\t\ttextLink.events.copyFrom(this.links.template.events);\r\n\t\t\ttextLink.hide(0);\r\n\t\t\ttextLink.show();\r\n\t\t\ttextLink.parent = this;\r\n\t\t}\r\n\t\ttextLink.dataItem = dataItem;\r\n\t\ttextLink.text = dataItem.name;\r\n\t\ttextLink.validate();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"NavigationBar\"] = NavigationBar;\r\nregistry.registeredClasses[\"NavigationBarDataItem\"] = NavigationBarDataItem;\r\n","/**\r\n * Cursor module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { getInteraction, IInteractionEvents } from \"../../core/interaction/Interaction\";\r\nimport { IInteractionObjectEvents } from \"../../core/interaction/InteractionObjectEvents\";\r\nimport { IPoint, } from \"../../core/defs/IPoint\";\r\nimport { Chart } from \"../Chart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { system } from \"../../core/System\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Cursor]].\r\n */\r\nexport interface ICursorProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[Cursor]].\r\n */\r\nexport interface ICursorEvents extends IContainerEvents {\r\n\r\n\t/**\r\n\t * Invoked when position of cursor changes.\r\n\t */\r\n\tcursorpositionchanged: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts selecting a range with a cursor, e.g. presses\r\n\t * down mouse button and drags the cursor.\r\n\t */\r\n\tselectstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when selection has ended, e.g. user releases mouse button.\r\n\t */\r\n\tselectended: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts zooming using cursor.\r\n\t */\r\n\tzoomstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when user clicked to start zooming/panning/selecting but haven't\r\n\t * finished the operation.\r\n\t */\r\n\tbehaviorcanceled: {};\r\n\r\n\t/**\r\n\t * Invoked when user is done zooming using cursor.\r\n\t */\r\n\tzoomended: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts panning using cursor.\r\n\t */\r\n\tpanstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when user is done panning using cursor.\r\n\t */\r\n\tpanended: {};\r\n\r\n\t/**\r\n\t * Invoked when user is panning using cursor.\r\n\t */\r\n\tpanning: {};\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Cursor]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICursorAdapters extends IContainerAdapters, ICursorProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Main Cursor class with common cursor functionality.\r\n *\r\n * Chart-specific cursors must extend this class.\r\n *\r\n * @see {@link ICursorEvents} for a list of available events\r\n * @see {@link ICursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n * @todo Should we allow changing `_generalBehavior`?\r\n */\r\nexport class Cursor extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICursorProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICursorAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICursorEvents;\r\n\r\n\t/**\r\n\t * Point coordinates of where selection started.\r\n\t */\r\n\tpublic downPoint: IPoint;\r\n\r\n\t/**\r\n\t * Point coordinates of where selection ended.\r\n\t */\r\n\tpublic upPoint: IPoint;\r\n\r\n\t/**\r\n\t * Current cursor position during selection.\r\n\t *\r\n\t * @todo Better description\r\n\t */\r\n\tpublic point: IPoint = { x: 0, y: 0 };\r\n\r\n\t/**\r\n\t * Relative horizontal position.\r\n\t *\r\n\t * @todo: maybe we should make getter only? it is used from outside by axes or series to show tooltips at some position\r\n\t */\r\n\tpublic xPosition: number;\r\n\r\n\t/**\r\n\t * Relative vertical position.\r\n\t *\r\n\t * @todo: maybe we should make getter only? it is used from outside by axes or series to show tooltips at some position\r\n\t */\r\n\tpublic yPosition: number;\r\n\r\n\t/**\r\n\t * [_usesSelection description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _usesSelection: boolean;\r\n\r\n\t/**\r\n\t * What to do when user pressed down and drags cursor: zoom or select.\r\n\t */\r\n\tprotected _generalBehavior: \"zoom\" | \"select\" | \"pan\"; // todo: draw\r\n\r\n\t/**\r\n\t * A reference to chart cursor belongs to.\r\n\t */\r\n\tpublic _chart: Chart;\r\n\r\n\t/**\r\n\t * Specifies the rules when cursor needs to be moved or hidden.\r\n\t */\r\n\tprotected _stick: \"hard\" | \"soft\" | \"none\" = \"none\";\r\n\r\n\t/**\r\n\t * A screen point that cursor is \"stuck\" to.\r\n\t */\r\n\tprotected _stickPoint: IPoint;\r\n\r\n\t/**\r\n\t * non-modified down point\r\n\t * @ignore\r\n\t */\r\n\tprotected _downPointOrig: IPoint;\r\n\r\n\t/**\r\n\t * non-modified up point\r\n\t * @ignore\r\n\t */\r\n\tprotected _upPointOrig: IPoint;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Cursor\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.shouldClone = false;\r\n\r\n\t\tthis.hide(0);\r\n\r\n\t\tthis.trackable = true;\r\n\t\tthis.clickable = true;\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\t// Add events on body to trigger down and up events (to start zooming or\r\n\t\t// selection)\r\n\t\tconst interaction = getInteraction();\r\n\t\tthis._disposers.push(interaction.body.events.on(\"down\", this.handleCursorDown, this));\r\n\t\tthis._disposers.push(interaction.body.events.on(\"up\", this.handleCursorUp, this));\r\n\t\tthis._disposers.push(interaction.body.events.on(\"track\", this.handleCursorMove, this));\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handle pointer movement in document and update cursor position as needed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic handleCursorMove(event: IInteractionObjectEvents[\"track\"]): IPoint {\r\n\r\n\r\n\t\tif (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (((this._generalBehavior != \"zoom\" && this._generalBehavior != \"pan\") || !this.downPoint) && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\t// We want to let zoom/pan continue even if cursor is outside chart area\r\n\t\t\tif (!this.isHidden || !this.isHiding) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\r\n\t\tif (this._stick == \"hard\" && this._stickPoint) {\r\n\t\t\tlocal = this._stickPoint;\r\n\t\t}\r\n\r\n\t\tif (this._stick == \"soft\" && this._stickPoint) {\r\n\t\t\tif (!this.fitsToBounds(local)) {\r\n\t\t\t\tlocal = this._stickPoint;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.triggerMove(local);\r\n\t\treturn local;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides actual SVG elements and handles hiding animations.\r\n\t *\r\n\t * @param duration Fade out duration (ms)\r\n\t * @return Fade out duration (ms)\r\n\t * @ignore\r\n\t */\r\n\tprotected hideReal(duration?: number): $type.Optional<Animation> {\r\n\t\tif ((this._stick == \"hard\" || this._stick == \"soft\") && this._stickPoint) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\treturn super.hideReal(duration);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * The second parameter has following options:\r\n\t *\r\n\t * `\"none\"` - placed cursor will only be there until mouse/touch moves, then\r\n\t * it either moves to a new place (if pointer over plot area) or is hidden.\r\n\t *\r\n\t * `\"soft\"` - cursor will stay in the place if mouse/touch is happening\r\n\t * outside chart, but will move to a new place whe plot area is hovered or\r\n\t * touched.\r\n\t *\r\n\t * `\"hard\"` - cursor will stay in place no matter what, until it is moved by\r\n\t * another `triggerMove()` call.\r\n\t *\r\n\t * The third parameter - `force` (since `4.9.5`) - if set to `true` will\r\n\t * make cursor execute all of the actions associated with cursor move,\r\n\t * including line redraws, tooltip updates, etc. Useful when underlying\r\n\t * chart data is dynamically being updated.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t * @param stick Level of cursor stickiness to the place\r\n\t * @param force Force cursor move\r\n\t */\r\n\tpublic triggerMove(point: IPoint, stick?: \"hard\" | \"soft\" | \"none\", force?: boolean): void {\r\n\r\n\t\tpoint.x = $math.round(point.x, 1);\r\n\t\tpoint.y = $math.round(point.y, 1);\r\n\r\n\t\tif (stick) {\r\n\t\t\tthis._stick = stick;\r\n\t\t}\r\n\r\n\t\tif (stick == \"hard\" || stick == \"soft\") {\r\n\t\t\tthis._stickPoint = point;\r\n\t\t}\r\n\r\n\t\tthis.triggerMoveReal(point, force);\r\n\t}\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t */\r\n\tprotected triggerMoveReal(point: IPoint, force?: boolean): void {\r\n\t\tif (this.point.x != point.x || this.point.y != point.y || force) {\r\n\t\t\tthis.point = point;\r\n\t\t\tthis.invalidatePosition();\r\n\t\t\t// hide cursor if it's out of bounds\r\n\t\t\tif (this.fitsToBounds(point)) {\r\n\t\t\t\tthis.show(0);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// unless we are selecting (mouse is down)\r\n\t\t\t\tif (!this.downPoint) {\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.visible) {\r\n\t\t\t\tthis.getPositions();\r\n\t\t\t\tthis.dispatch(\"cursorpositionchanged\"); // not good to dispatch later (check step count example)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates pressing down (click/touch) action by a cursor.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tpublic triggerDown(point: IPoint) {\r\n\t\tthis.triggerDownReal(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates pressing down (click/touch) action by a cursor.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tprotected triggerDownReal(point: IPoint) {\r\n\t\tswitch (this._generalBehavior) {\r\n\t\t\tcase \"zoom\":\r\n\t\t\t\tthis.dispatchImmediately(\"zoomstarted\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"select\":\r\n\t\t\t\tthis.dispatchImmediately(\"selectstarted\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pan\":\r\n\t\t\t\tthis.dispatchImmediately(\"panstarted\");\r\n\t\t\t\tgetInteraction().setGlobalStyle(MouseCursorStyle.grabbing);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates the action of release of the mouse down / touch.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tpublic triggerUp(point: IPoint) {\r\n\t\tthis.triggerUpReal(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates the action of release of the mouse down / touch.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tprotected triggerUpReal(point: IPoint) {\r\n\t\tsystem.requestFrame();\r\n\t\tthis.updatePoint(this.upPoint);\r\n\t\tlet interaction = getInteraction();\r\n\r\n\t\tif ($math.getDistance(this._upPointOrig, this._downPointOrig) > interaction.getHitOption(this.interactions, \"hitTolerance\")) {\r\n\t\t\tswitch (this._generalBehavior) {\r\n\t\t\t\tcase \"zoom\":\r\n\t\t\t\t\tthis.dispatch(\"zoomended\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"select\":\r\n\t\t\t\t\tthis.dispatch(\"selectended\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"pan\":\r\n\t\t\t\t\tthis.dispatch(\"panended\");\r\n\t\t\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t\tthis.updateSelection();\r\n\t\t}\r\n\t\t/*\r\n\t\telse {\r\n\t\t\t\r\n\t\t\tif(this._generalBehavior == \"select\"){\r\n\t\t\t\tthis.dispatchImmediately(\"selectended\");\r\n\t\t\t}\r\n\t\t\tthis.dispatchImmediately(\"behaviorcanceled\");\r\n\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t}*/\r\n\t}\r\n\r\n\t/**\r\n\t * Updates selection dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSelection(): void {\r\n\t}\r\n\r\n\t/**\r\n\t * Updates cursors current positions.\r\n\t */\r\n\tprotected getPositions(): void {\r\n\t\t// positions are used by axes or series\r\n\t\tthis.xPosition = this.point.x / this.innerWidth;\r\n\t\tthis.yPosition = 1 - this.point.y / this.innerHeight;\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer down event so we can start zoom or selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original event\r\n\t */\r\n\tpublic handleCursorDown(event: IInteractionEvents[\"down\"]): void {\r\n\r\n\t\tif (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch) || !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get local point\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\r\n\t\tif (this._stick == \"hard\" && this._stickPoint) {\r\n\t\t\tlocal = this._stickPoint;\r\n\t\t}\r\n\r\n\t\tthis._downPointOrig = { x: local.x, y: local.y };\r\n\r\n\t\t// We need to cancel the event to prevent gestures on touch devices\r\n\t\tif (event.event.cancelable && this.shouldPreventGestures(event.touch) && this.fitsToBounds(local)) {\r\n\t\t\tevent.event.preventDefault();\r\n\t\t}\r\n\r\n\t\t// Make this happen\r\n\t\tthis.triggerMove(local);\r\n\t\tthis.triggerDown(local);\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether Cursor should prevent default action on move.\r\n\t *\r\n\t * Child classes should override this as necessary.\r\n\t * \r\n\t * @return Prevent default?\r\n\t */\r\n\tprotected shouldPreventGestures(touch: boolean): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the coordinates of where pointer down event occurred\r\n\t * (was pressed).\r\n\t */\r\n\tprotected updatePoint(point: IPoint) {\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer up event - finishes zoom or selection action.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original event\r\n\t */\r\n\tpublic handleCursorUp(event: IInteractionEvents[\"up\"]): void {\r\n\t\tif (!this.interactionsEnabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.downPoint && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\r\n\t\tif (this._stick == \"hard\" && this._stickPoint) {\r\n\t\t\tlocal = this._stickPoint;\r\n\t\t}\r\n\r\n\t\tthis._upPointOrig = { x: local.x, y: local.y };\r\n\r\n\t\tthis.triggerMove(local);\r\n\t\tthis.triggerUp(local);\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to a [[Chart]] the cursor belongs to.\r\n\t *\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: this[\"_chart\"]) {\r\n\t\tthis._chart = value;\r\n\t\tif ($type.hasValue((<any>this._chart).plotContainer)) {\r\n\t\t\tgetInteraction().lockElement((<any>this._chart).plotContainer.interactions);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): this[\"_chart\"] {\r\n\t\treturn this._chart;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Cursor\"] = Cursor;\r\n","/**\r\n * Cursor for XY chart\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Cursor, ICursorProperties, ICursorAdapters, ICursorEvents } from \"./Cursor\";\r\nimport { Sprite, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { MutableValueDisposer, MultiDisposer, IDisposer } from \"../../core/utils/Disposer\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { getInteraction } from \"../../core/interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[XYCursor]].\r\n */\r\nexport interface IXYCursorProperties extends ICursorProperties {\r\n\r\n\t/**\r\n\t * Cursor's behavior when moved with pointer down:\r\n\t *\r\n\t * * \"zoomX\" - zooms horizontally; (default)\r\n\t * * \"zoomY\" - zooms vertically;\r\n\t * * \"zoomXY\" - zooms both horizontally and vertically;\r\n\t * * \"selectX\" - selects a range horizontally;\r\n\t * * \"selectY\" - selects a range vertically;\r\n\t * * \"selectXY\" - selects a range both horizontally and vertically;\r\n\t * * \"panX\" - moves (pans) current selection horizontally;\r\n\t * * \"panY\" - moves (pans) current selection vertically;\r\n\t * * \"panXY\" - moves (pans) current selection both horizontally and vertically;\r\n\t * * \"none\" - does nothing with pointer down.\r\n\t *\r\n\t * @default \"zoomX\"\r\n\t */\r\n\tbehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\";\r\n\r\n\t/**\r\n\t * Cursor's horizontal line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t */\r\n\tfullWidthLineX?: boolean;\r\n\r\n\t/**\r\n\t * Cursor's vertical line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t */\r\n\tfullWidthLineY?: boolean;\r\n\r\n\t/**\r\n\t * If cursor behavior is panX or panY, we allow to pan plot out of it's max bounds for a better user experience.\r\n\t * This setting specifies relative value by how much we can pan out the plot\r\n\t */\r\n\tmaxPanOut?: number;\r\n\r\n\t/**\r\n\t * Specifies to which series cursor lines should be snapped.\r\n\t * \r\n\t * Can be a single series instance or an array of series.\r\n\t */\r\n\tsnapToSeries?: XYSeries | XYSeries[];\r\n\r\n\t/**\r\n\t * If set to `true` this will hide series tooltips when selecting with cursor.\r\n\t *\r\n\t * @since 4.5.15\r\n\t */\r\n\thideSeriesTooltipsOnSelection?: boolean;\r\n\r\n\t/**\r\n\t * If set to a numeric value, cursor will display closest series' tooltips\r\n\t * plus tooltips from series that are closer to than `maxTooltipDistance` to\r\n\t * it.\r\n\t *\r\n\t * Set it to `-1` to always force one tooltip, even if there are multiple\r\n\t * data items in exactly same place.\r\n\t *\r\n\t * @since 4.7.18\r\n\t */\r\n\tmaxTooltipDistance?: number;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYCursor]].\r\n */\r\nexport interface IXYCursorEvents extends ICursorEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYCursor]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYCursorAdapters extends ICursorAdapters, IXYCursorProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A cursor used on [[XYChart]].\r\n *\r\n * @see {@link IXYCursorEvents} for a list of available events\r\n * @see {@link IXYCursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n */\r\nexport class XYCursor extends Cursor {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYCursorProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IXYCursorAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYCursorEvents;\r\n\r\n\t/**\r\n\t * Vertical cursor line element.\r\n\t */\r\n\tprotected _lineX = new MutableValueDisposer<Sprite>();\r\n\r\n\t/**\r\n\t * Horizontal cursor line element.\r\n\t */\r\n\tprotected _lineY = new MutableValueDisposer<Sprite>();\r\n\r\n\t/**\r\n\t * Element which highlights selected area.\r\n\t */\r\n\tprotected _selection: Sprite;\r\n\r\n\t/**\r\n\t * A range of current horizontal selection.\r\n\t */\r\n\tpublic xRange: IRange;\r\n\r\n\t/**\r\n\t * A range of current vertical selection.\r\n\t */\r\n\tpublic yRange: IRange;\r\n\r\n\t/**\r\n\t * Horizontal [[Axis]].\r\n\t */\r\n\tprotected _xAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * Vertical [[Axis]].\r\n\t */\r\n\tprotected _yAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * A reference to chart cursor belongs to.\r\n\t */\r\n\tpublic _chart: XYChart;\r\n\r\n\tprotected _snapToDisposers: IDisposer[] = [];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"XYCursor\";\r\n\r\n\t\t// Defaults\r\n\t\tthis.behavior = \"zoomX\";\r\n\r\n\t\tthis.maxPanOut = 0.1;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create selection element\r\n\t\tlet selection: Sprite = this.createChild(Sprite);\r\n\t\tselection.shouldClone = false;\r\n\t\tselection.fillOpacity = 0.2;\r\n\t\tselection.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tselection.isMeasured = false;\r\n\t\tselection.visible = false;\r\n\t\tselection.interactionsEnabled = false;\r\n\t\tthis.selection = selection;\r\n\t\tthis._disposers.push(this.selection);\r\n\r\n\t\t// Create cursor's vertical line\r\n\t\tlet lineX: Sprite = this.createChild(Sprite);\r\n\t\tlineX.shouldClone = false;\r\n\t\tlineX.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tlineX.fill = color();\r\n\t\tlineX.strokeDasharray = \"3,3\";\r\n\t\tlineX.isMeasured = false;\r\n\t\tlineX.strokeOpacity = 0.4;\r\n\t\tlineX.interactionsEnabled = false;\r\n\t\tlineX.y = 0;// important\r\n\t\tthis.lineX = lineX;\r\n\t\tthis._disposers.push(this.lineX);\r\n\r\n\t\t// Create cursor's horizontal line\r\n\t\tlet lineY: Sprite = this.createChild(Sprite);\r\n\t\tlineY.shouldClone = false;\r\n\t\tlineY.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tlineY.fill = color();\r\n\t\tlineY.strokeDasharray = \"3,3\";\r\n\t\tlineY.isMeasured = false;\r\n\t\tlineY.strokeOpacity = 0.4;\r\n\t\tlineY.interactionsEnabled = false;\r\n\t\tlineY.x = 0; // important\r\n\t\tthis.lineY = lineY;\r\n\t\tthis._disposers.push(this.lineY);\r\n\r\n\t\t// Add handler for size changes\r\n\t\tthis.events.on(\"sizechanged\", this.updateSize, this, false);\r\n\r\n\t\tthis._disposers.push(this._lineX);\r\n\t\tthis._disposers.push(this._lineY);\r\n\t\tthis._disposers.push(this._xAxis);\r\n\t\tthis._disposers.push(this._yAxis);\r\n\r\n\t\tthis.mask = this;\r\n\r\n\t\tthis.hideSeriesTooltipsOnSelection = true;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Updates cursor element dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSize(): void {\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.lineX.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.innerHeight });\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.lineY.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.innerWidth, y: 0 });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates selection dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSelection(): void {\r\n\t\tif (this._usesSelection) {\r\n\t\t\tlet downPoint: IPoint = this.downPoint;\r\n\t\t\tlet behavior = this.behavior;\r\n\r\n\t\t\tif (downPoint) {\r\n\r\n\t\t\t\tlet point: IPoint = this.point;\r\n\r\n\t\t\t\tif (this.lineX) {\r\n\t\t\t\t\tpoint.x = this.lineX.pixelX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.lineY) {\r\n\t\t\t\t\tpoint.y = this.lineY.pixelY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet selection: Sprite = this.selection;\r\n\r\n\t\t\t\tlet x: number = Math.min(point.x, downPoint.x);\r\n\t\t\t\tlet y: number = Math.min(point.y, downPoint.y);\r\n\r\n\t\t\t\tlet w: number = $math.round(Math.abs(downPoint.x - point.x), this._positionPrecision);\r\n\t\t\t\tlet h: number = $math.round(Math.abs(downPoint.y - point.y), this._positionPrecision);\r\n\r\n\t\t\t\tswitch (behavior) {\r\n\t\t\t\t\tcase \"zoomX\":\r\n\t\t\t\t\t\ty = 0;\r\n\t\t\t\t\t\th = this.pixelHeight;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"zoomY\":\r\n\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\tw = this.pixelWidth;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"selectX\":\r\n\t\t\t\t\t\ty = 0;\r\n\t\t\t\t\t\th = this.pixelHeight;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"selectY\":\r\n\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\tw = this.pixelWidth;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tselection.x = x;\r\n\t\t\t\tselection.y = y;\r\n\r\n\t\t\t\tselection.path = $path.rectangle(w, h);\r\n\r\n\t\t\t\tselection.validatePosition(); // otherwise Edge shoes some incorrect size rectangle\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._generalBehavior != \"select\") {\r\n\t\t\t\t\tthis.selection.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\r\n\tprotected fixPoint(point: IPoint): IPoint {\r\n\t\tpoint.x = Math.max(0, point.x);\r\n\t\tpoint.y = Math.max(0, point.y);\r\n\t\tpoint.x = Math.min(this.pixelWidth, point.x);\r\n\t\tpoint.y = Math.min(this.pixelHeight, point.y);\r\n\r\n\t\treturn point;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t */\r\n\tprotected triggerMoveReal(point: IPoint, force?: boolean): void {\r\n\r\n\t\tsuper.triggerMoveReal(point, force);\r\n\t\tlet snapToSeries = this.snapToSeries;\r\n\t\tif ((snapToSeries && !this.downPoint)) {\r\n\t\t\tif (snapToSeries instanceof XYSeries) {\r\n\t\t\t\tif (snapToSeries.isHidden) {\r\n\t\t\t\t\tthis.updateLinePositions(point);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet allHidden = true;\r\n\t\t\t\t$array.each(snapToSeries, (s) => {\r\n\t\t\t\t\tif (!s.isHidden) {\r\n\t\t\t\t\t\tallHidden = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tif (allHidden) {\r\n\t\t\t\t\tthis.updateLinePositions(point);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.updateLinePositions(point);\r\n\t\t}\r\n\r\n\t\tif (this.downPoint && $math.getDistance(this.downPoint, point) > 3) {\r\n\t\t\tif (this._generalBehavior == \"pan\") {\r\n\t\t\t\tthis.getPanningRanges();\r\n\t\t\t\tthis.dispatch(\"panning\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateLinePositions(point: IPoint) {\r\n\t\tpoint = this.fixPoint(this.point);\r\n\r\n\t\tif (this.lineX && this.lineX.visible && !this.xAxis) {\r\n\t\t\tthis.lineX.x = point.x;\r\n\t\t}\r\n\t\tif (this.lineY && this.lineY.visible && !this.yAxis) {\r\n\t\t\tthis.lineY.y = point.y;\r\n\t\t}\r\n\t\tthis.updateSelection();\r\n\t}\r\n\r\n\r\n\tprotected triggerDownReal(point: IPoint) {\r\n\r\n\t\tif (this.visible && !this.isHiding) {\r\n\r\n\t\t\tif (this._generalBehavior == \"select\") {\r\n\t\t\t\tthis.selection.parent = this.parent;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.fitsToBounds(point)) {\r\n\t\t\t\tthis.downPoint = { x: point.x, y: point.y };\r\n\r\n\t\t\t\tthis.updatePoint(point);\r\n\r\n\t\t\t\t//this.updateLinePositions(point); // otherwise lines won't be in correct position and touch won't work fine\r\n\r\n\t\t\t\tthis.point.x = this.downPoint.x;\r\n\t\t\t\tthis.point.y = this.downPoint.y;\r\n\r\n\t\t\t\tlet selection: Sprite = this.selection;\r\n\t\t\t\tlet selectionX: number = this.downPoint.x;\r\n\t\t\t\tlet selectionY: number = this.downPoint.y;\r\n\r\n\t\t\t\tif (this._usesSelection) {\r\n\t\t\t\t\tselection.x = selectionX;\r\n\t\t\t\t\tselection.y = selectionY;\r\n\t\t\t\t\tselection.path = \"\";\r\n\t\t\t\t\tselection.show();\r\n\t\t\t\t}\r\n\t\t\t\tsuper.triggerDownReal(point);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.downPoint = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the coordinates of where pointer down event occurred\r\n\t * (was pressed).\r\n\t */\r\n\tprotected updatePoint(point: IPoint) {\r\n\t\tif (this.lineX) {\r\n\t\t\tpoint.x = this.lineX.pixelX;\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tpoint.y = this.lineY.pixelY;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handle action when cursor is released, which should perform an operation\r\n\t * based on its `behavior`, like zoom.\r\n\t * \r\n\t * @param point Release point\r\n\t */\r\n\tprotected triggerUpReal(point: IPoint): void {\r\n\t\tif (this.hasMoved()) {\r\n\t\t\tif (this.downPoint) {\r\n\t\t\t\tthis.upPoint = point;\r\n\r\n\t\t\t\tthis.updatePoint(this.upPoint);\r\n\r\n\t\t\t\tif (this._generalBehavior != \"pan\") {\r\n\t\t\t\t\tthis.getRanges();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._generalBehavior != \"select\") {\r\n\t\t\t\t\tthis.selection.hide();\r\n\t\t\t\t}\r\n\t\t\t\tsuper.triggerUpReal(point);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._generalBehavior != \"select\") {\r\n\t\t\t\tthis.selection.hide(0);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.xRange = undefined;\r\n\t\t\t\tthis.yRange = undefined;\r\n\t\t\t\tthis.dispatchImmediately(\"selectended\");\r\n\t\t\t}\r\n\r\n\t\t\t// reset cursor style, just in case\r\n\t\t\tif (this._generalBehavior == \"pan\") {\r\n\t\t\t\tlet interaction = getInteraction();\r\n\t\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchImmediately(\"behaviorcanceled\");\r\n\t\t}\r\n\t\tthis.downPoint = undefined;\r\n\t\tthis.dispatch(\"cursorpositionchanged\");\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates if the cursor has moved enough based on its `behavior`.\r\n\t * \r\n\t * @return Moved?\r\n\t */\r\n\tprivate hasMoved(): boolean {\r\n\t\tlet distance: number;\r\n\t\tif (this.behavior == \"zoomX\" || this.behavior == \"panX\") {\r\n\t\t\tdistance = $math.getHorizontalDistance(this._upPointOrig, this._downPointOrig);\r\n\t\t}\r\n\t\telse if (this.behavior == \"zoomY\" || this.behavior == \"panY\") {\r\n\t\t\tdistance = $math.getVerticalDistance(this._upPointOrig, this._downPointOrig);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdistance = $math.getDistance(this._upPointOrig, this._downPointOrig);\r\n\t\t}\r\n\t\treturn distance > getInteraction().getHitOption(this.interactions, \"hitTolerance\");\r\n\t}\r\n\r\n\t/**\r\n\t * [getRanges description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected getPanningRanges() {\r\n\r\n\t\tlet startX = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n\t\tlet startY = 1 - $math.round(this.downPoint.y / this.innerHeight, 5);\r\n\r\n\t\tlet currentX = $math.round(this.point.x / this.innerWidth, 5);\r\n\t\tlet currentY = 1 - $math.round(this.point.y / this.innerHeight, 5);\r\n\r\n\t\tlet deltaX = startX - currentX;\r\n\t\tlet deltaY = startY - currentY;\r\n\r\n\t\tthis.xRange = { start: deltaX, end: 1 + deltaX };\r\n\t\tthis.yRange = { start: deltaY, end: 1 + deltaY };\r\n\r\n\t\tif (this.behavior == \"panX\") {\r\n\t\t\tthis.yRange.start = 0;\r\n\t\t\tthis.yRange.end = 1;\r\n\t\t}\r\n\t\tif (this.behavior == \"panY\") {\r\n\t\t\tthis.xRange.start = 0;\r\n\t\t\tthis.xRange.end = 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [getRanges description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected getRanges() {\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.upPoint.x = this.lineX.pixelX;\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.upPoint.y = this.lineY.pixelY;\r\n\t\t}\r\n\r\n\t\t// @todo Is this needed?\r\n\t\t$utils.used(this.selection);\r\n\r\n\t\tlet startX: number = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n\t\tlet endX: number = $math.round((this.upPoint.x) / this.innerWidth, 5);\r\n\r\n\t\tlet startY: number = 1 - $math.round(this.downPoint.y / this.innerHeight, 5);\r\n\t\tlet endY: number = 1 - $math.round((this.upPoint.y) / this.innerHeight, 5);\r\n\r\n\t\tthis.xRange = { start: $math.min(startX, endX), end: $math.max(startX, endX) };\r\n\t\tthis.yRange = { start: $math.min(startY, endY), end: $math.max(startY, endY) };\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's behavior when it's moved with pointer down:\r\n\t *\r\n\t * * `\"zoomX\"` - zooms horizontally.\r\n\t * * `\"zoomY\"` - zooms vertically.\r\n\t * * `\"zoomXY\"` - zooms both horizontally and vertically.\r\n\t * * `\"selectX\"` - selects a range horizontally.\r\n\t * * `\"selectY\"` - selects a range vertically.\r\n\t * * `\"selectXY\"` - selects a range both horizontally and vertically.\r\n\t * * `\"panX\"` - moves (pans) current selection horizontally.\r\n\t * * `\"panY\"` - moves (pans) current selection vertically.\r\n\t * * `\"panXY\"` - moves (pans) current selection both horizontally and vertically.\r\n\t * * `\"none\"` - does nothing with pointer down.\r\n\t *\r\n\t * E.g. \"zoomXY\" will mean that pressing a mouse (or touching) over plot area\r\n\t * and dragging it will start zooming the chart.\r\n\t *\r\n\t * NOTE: `\"zoomXY\"` acts differently when used on a `DateAxis`.\r\n\t * See [this note](https://www.amcharts.com/docs/v4/concepts/chart-cursor/#zoomXY_behavior_and_DateAxis).\r\n\t *\r\n\t * @param value Bheavior\r\n\t */\r\n\tpublic set behavior(value: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\") {\r\n\t\tthis.setPropertyValue(\"behavior\", value, true);\r\n\r\n\t\tthis._usesSelection = false;\r\n\r\n\t\tif (value.indexOf(\"zoom\") != -1) {\r\n\t\t\tthis._generalBehavior = \"zoom\";\r\n\t\t\tthis._usesSelection = true;\r\n\t\t}\r\n\t\tif (value.indexOf(\"select\") != -1) {\r\n\t\t\tthis._generalBehavior = \"select\";\r\n\t\t\tthis._usesSelection = true;\r\n\t\t}\r\n\t\tif (value.indexOf(\"pan\") != -1) {\r\n\t\t\tthis._generalBehavior = \"pan\";\r\n\t\t\tthis._usesSelection = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Behavior\r\n\t */\r\n\tpublic get behavior(): \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\" {\r\n\t\treturn this.getPropertyValue(\"behavior\");\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether Cursor should prevent default action on move.\r\n\t *\r\n\t * If cursor's behavior is \"none\", it should not obstruct the page scrolling.\r\n\t *\r\n\t * @return Prevent default?\r\n\t */\r\n\tprotected shouldPreventGestures(touch: boolean): boolean {\r\n\t\treturn (!this.interactions.isTouchProtected || !touch) && this.behavior != \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's horizontal line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t *\r\n\t * NOTE: this setting will work properly if `xAxis` is set and only in case\r\n\t * `xAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * @param value Full width?\r\n\t */\r\n\tpublic set fullWidthLineX(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWidthLineX\", value);\r\n\t\tif (!value) {\r\n\t\t\tthis.updateSize();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get fullWidthLineX(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWidthLineX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's vertical line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t *\r\n\t * NOTE: this setting will work properly if `yAxis` is set and only in case\r\n\t * `yAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * @param value Full width?\r\n\t */\r\n\tpublic set fullWidthLineY(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWidthLineY\", value);\r\n\t\tif (!value) {\r\n\t\t\tthis.updateSize();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get fullWidthLineY(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWidthLineY\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true` this will hide series tooltips when selecting with cursor.\r\n\t *\r\n\t * @since 4.5.15\r\n\t * @param value hide tooltips?\r\n\t */\r\n\tpublic set hideSeriesTooltipsOnSelection(value: boolean) {\r\n\t\tthis.setPropertyValue(\"hideSeriesTooltipsOnSelection\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return hide tooltip?\r\n\t */\r\n\tpublic get hideSeriesTooltipsOnSelection(): boolean {\r\n\t\treturn this.getPropertyValue(\"hideSeriesTooltipsOnSelection\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to a numeric value, cursor will display closest series' tooltips\r\n\t * plus tooltips from series that are closer to than `maxTooltipDistance` to\r\n\t * it.\r\n\t *\r\n\t * Set it to `-1` to always force one tooltip, even if there are multiple\r\n\t * data items in exactly same place.\r\n\t *\r\n\t * @since 4.7.18\r\n\t * @param value Distance\r\n\t */\r\n\tpublic set maxTooltipDistance(value: number) {\r\n\t\tthis.setPropertyValue(\"maxTooltipDistance\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Distance\r\n\t */\r\n\tpublic get maxTooltipDistance(): number {\r\n\t\treturn this.getPropertyValue(\"maxTooltipDistance\");\r\n\t}\r\n\r\n\t/**\r\n\t * If cursor behavior is panX or panY, we allow to pan plot out of it's max bounds for a better user experience.\r\n\t * This setting specifies relative value by how much we can pan out the plot\r\n\t *\r\n\t * @param value\r\n\t */\r\n\tpublic set maxPanOut(value: number) {\r\n\t\tthis.setPropertyValue(\"maxPanOut\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get maxPanOut(): number {\r\n\t\treturn this.getPropertyValue(\"maxPanOut\");\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to X [[Axis]].\r\n\t *\r\n\t * An XY cursor can live without `xAxis` set. You set xAxis for cursor when\r\n\t * you have axis tooltip enabled and you want cursor line to be at the same\r\n\t * position as tooltip.\r\n\t *\r\n\t * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n\t * [[ValueAxis]].\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param axis X axis\r\n\t */\r\n\tpublic set xAxis(axis: Axis) {\r\n\t\tif (this._xAxis.get() != axis) {\r\n\t\t\tthis._xAxis.set(axis, new MultiDisposer([\r\n\t\t\t\taxis.tooltip.events.on(\"positionchanged\", this.handleXTooltipPosition, this, false),\r\n\r\n\t\t\t\taxis.events.on(\"rangechangestarted\", (event) => {\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t\tthis.preventShow = true;\r\n\t\t\t\t}, undefined, false),\r\n\t\t\t\taxis.events.on(\"rangechangeended\", (event) => {\r\n\t\t\t\t\tthis.preventShow = false;\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t\tthis.dispatch(\"cursorpositionchanged\");\r\n\t\t\t\t}, undefined, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return X axis\r\n\t */\r\n\tpublic get xAxis(): Axis {\r\n\t\treturn this._xAxis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to Y [[Axis]].\r\n\t *\r\n\t * An XY cursor can live without `yAxis` set. You set xAxis for cursor when\r\n\t * you have axis tooltip enabled and you want cursor line to be at the same\r\n\t * position as tooltip.\r\n\t *\r\n\t * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n\t * [[ValueAxis]].\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param axis Y axis\r\n\t */\r\n\tpublic set yAxis(axis: Axis) {\r\n\t\tif (this._yAxis.get() != axis) {\r\n\t\t\tthis._yAxis.set(axis, new MultiDisposer([\r\n\t\t\t\taxis.tooltip.events.on(\"positionchanged\", this.handleYTooltipPosition, this, false),\r\n\r\n\t\t\t\taxis.events.on(\"rangechangestarted\", (event) => {\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t\tthis.__disabled = true;\r\n\t\t\t\t}, undefined, false),\r\n\t\t\t\taxis.events.on(\"rangechangeended\", (event) => {\r\n\t\t\t\t\tthis.__disabled = false;\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t\tthis.dispatch(\"cursorpositionchanged\");\r\n\t\t\t\t}, undefined, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y Axis\r\n\t */\r\n\tpublic get yAxis(): Axis {\r\n\t\treturn this._yAxis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when axis tooltip changes position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original Axis event\r\n\t */\r\n\tprotected handleXTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tlet tooltip: Tooltip = this.xAxis.tooltip;\r\n\t\tlet point: IPoint = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n\t\tlet x: number = point.x;\r\n\t\tpoint.y = 1;\r\n\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.lineX.x = x;\r\n\t\t\tif (!this.fitsToBounds(point)) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.xAxis && this.fullWidthLineX) {\r\n\t\t\tlet startPoint: IPoint = this.xAxis.currentItemStartPoint;\r\n\t\t\tlet endPoint: IPoint = this.xAxis.currentItemEndPoint;\r\n\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\tthis.lineX.x = x;\r\n\t\t\t\tlet width: number = endPoint.x - startPoint.x;\r\n\t\t\t\tthis.lineX.path = $path.rectangle(width, this.innerHeight, -width / 2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when Y axis changes position or scale.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original Axis event\r\n\t */\r\n\tprotected handleYTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tlet tooltip: Tooltip = this.yAxis.tooltip;\r\n\t\tlet point: IPoint = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n\t\tlet y: number = point.y;\r\n\t\tpoint.x = 1;\r\n\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.lineY.y = y;\r\n\r\n\t\t\tif (!this.fitsToBounds(point)) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.yAxis && this.fullWidthLineY) {\r\n\t\t\tlet startPoint: IPoint = this.yAxis.currentItemStartPoint;\r\n\t\t\tlet endPoint: IPoint = this.yAxis.currentItemEndPoint;\r\n\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\tthis.lineY.y = y;\r\n\t\t\t\tlet height: number = endPoint.y - startPoint.y;\r\n\t\t\t\tthis.lineY.path = $path.rectangle(this.innerWidth, height, 0, -height / 2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A Line element to use for X axis.\r\n\t *\r\n\t * @param lineX Line\r\n\t */\r\n\tpublic set lineX(lineX: Sprite) {\r\n\t\tif (lineX) {\r\n\t\t\tlineX.setElement(this.paper.add(\"path\"));\r\n\t\t\tthis._lineX.set(lineX, lineX.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n\t\t\tlineX.interactionsEnabled = false;\r\n\t\t\tlineX.parent = this;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._lineX.reset();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Line element\r\n\t */\r\n\tpublic get lineX(): Sprite {\r\n\t\treturn this._lineX.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A Line element to use Y axis.\r\n\t *\r\n\t * @param lineY Line\r\n\t */\r\n\tpublic set lineY(lineY: Sprite) {\r\n\t\tif (lineY) {\r\n\t\t\tlineY.setElement(this.paper.add(\"path\"));\r\n\t\t\tthis._lineY.set(lineY, lineY.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n\t\t\tlineY.parent = this;\r\n\t\t\tlineY.interactionsEnabled = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._lineY.reset();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Line element\r\n\t */\r\n\tpublic get lineY(): Sprite {\r\n\t\treturn this._lineY.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A selection element ([[Sprite]]).\r\n\t *\r\n\t * @param selection Selection rectangle\r\n\t */\r\n\tpublic set selection(selection: Sprite) {\r\n\t\tthis._selection = selection;\r\n\t\tif (selection) {\r\n\t\t\tselection.element = this.paper.add(\"path\");\r\n\t\t\tselection.parent = this;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Selection rectangle\r\n\t */\r\n\tpublic get selection(): Sprite {\r\n\t\treturn this._selection;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * Looks if `xAxis` and `yAxis` is set via ID in JSON config, and replaces\r\n\t * with real references.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.xAxis)) {\r\n\t\t\t\t\tconfig.xAxis = this.map.getKey(config.xAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`\");\r\n\t\t\t\t\tdelete config.xAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.yAxis)) {\r\n\t\t\t\t\tconfig.yAxis = this.map.getKey(config.yAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`\");\r\n\t\t\t\t\tdelete config.yAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.hasValue(config.snapToSeries)) {\r\n\t\t\t\tlet snapTo = $type.isArray(config.snapToSeries) ? config.snapToSeries : [config.snapToSeries];\r\n\t\t\t\tlet snapError = false;\r\n\t\t\t\t$array.each(snapTo, (snap, index) => {\r\n\t\t\t\t\tif ($type.isString(snap)) {\r\n\t\t\t\t\t\tif (this.map.hasKey(snap)) {\r\n\t\t\t\t\t\t\tsnapTo[index] = this.map.getKey(snap);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No series with id \\\"\" + snap + \"\\\" found for `series`\");\r\n\t\t\t\t\t\t\tsnapError = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (snapError) {\r\n\t\t\t\t\tdelete config.snapToSeries;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tconfig.snapToSeries = snapTo;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies to which series cursor lines should be snapped.\r\n\t * \r\n\t * Can be a single series instance or an array of series.\r\n\t *\r\n\t * @param {XYSeries | XYSeries[]}\r\n\t */\r\n\tpublic set snapToSeries(series: XYSeries | XYSeries[]) {\r\n\t\tif (this.setPropertyValue(\"snapToSeries\", series)) {\r\n\r\n\t\t\tif (series instanceof XYSeries) {\r\n\t\t\t\tseries = [series];\r\n\t\t\t}\r\n\t\t\tif (this._snapToDisposers) {\r\n\t\t\t\t$array.each(this._snapToDisposers, (disposer) => {\r\n\t\t\t\t\tdisposer.dispose();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tthis._snapToDisposers = [];\r\n\r\n\t\t\tif (series) {\r\n\t\t\t\t$array.each(series, (s) => {\r\n\t\t\t\t\tthis._snapToDisposers.push(s.events.on(\"tooltipshownat\", () => { this.handleSnap(s) }, undefined, false));\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {XYSeries | XYSeries[]}\r\n\t */\r\n\tpublic get snapToSeries(): XYSeries | XYSeries[] {\r\n\t\treturn this.getPropertyValue(\"snapToSeries\");\r\n\t}\r\n\r\n\t/**\r\n\t * [handleSnap description]\r\n\t *\r\n\t * @ignore\r\n\t * @todo Description\r\n\t */\r\n\tpublic handleSnap(series: XYSeries) {\r\n\t\tif (!this.downPoint) {\r\n\t\t\tlet x = series.getTooltipX() + series.xAxis.pixelX;\r\n\t\t\tlet y = series.getTooltipY() + series.yAxis.pixelY;\r\n\r\n\t\t\tif (this.xAxis) {\r\n\t\t\t\tif (this.xAxis.renderer.opposite) {\r\n\t\t\t\t\ty -= this.pixelHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.point = { x: x, y: y };\r\n\t\t\tthis.getPositions();\r\n\r\n\t\t\tlet xx = x;\r\n\t\t\tlet yy = y;\r\n\r\n\t\t\tx -= this.pixelWidth;\r\n\r\n\t\t\tif (this.yAxis) {\r\n\t\t\t\tif (this.yAxis.renderer.opposite) {\r\n\t\t\t\t\tx += this.pixelWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet tooltip = series.tooltip;\r\n\t\t\tlet duration = tooltip.animationDuration;\r\n\t\t\tlet easing = tooltip.animationEasing;\r\n\r\n\r\n\t\t\tlet xAxis = series.xAxis;\r\n\t\t\tlet yAxis = series.yAxis;\r\n\r\n\t\t\tif (xAxis instanceof ValueAxis && !(xAxis instanceof DateAxis) && yAxis instanceof ValueAxis && !(yAxis instanceof DateAxis)) {\r\n\t\t\t\tseries.yAxis.showTooltipAtPosition(this.yPosition);\r\n\t\t\t\tseries.xAxis.showTooltipAtPosition(this.xPosition);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (series.baseAxis == series.xAxis) {\r\n\t\t\t\t\tseries.yAxis.showTooltipAtPosition(this.yPosition);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (series.baseAxis == series.yAxis) {\r\n\t\t\t\t\tseries.xAxis.showTooltipAtPosition(this.xPosition);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.lineX.animate([{ property: \"y\", to: y }], duration, easing);\r\n\t\t\tthis.lineY.animate([{ property: \"x\", to: x }], duration, easing);\r\n\r\n\t\t\tif (!this.xAxis) {\r\n\t\t\t\tthis.lineX.animate([{ property: \"x\", to: xx }], duration, easing);\r\n\t\t\t}\r\n\t\t\tif (!this.yAxis) {\r\n\t\t\t\tthis.lineY.animate([{ property: \"y\", to: yy }], duration, easing);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\tthis.hide(0);\r\n\t\tsuper.dispose();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYCursor\"] = XYCursor;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { RadarChart } from \"../types/RadarChart\";\r\nimport { XYCursor, IXYCursorAdapters, IXYCursorEvents, IXYCursorProperties } from \"./XYCursor\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { ISpriteEvents } from \"../../core/Sprite\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { Percent, percent } from \"../../core/utils/Percent\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[RadarCursor]].\r\n */\r\nexport interface IRadarCursorProperties extends IXYCursorProperties {\r\n\r\n\t/**\r\n\t * Inner radius of the cursor's circular line.\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t */\r\n\tinnerRadius: number | Percent;\r\n\r\n\t/**\r\n\t * Outer radius of the cursor's circular line.\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t */\r\n\tradius: number | Percent;\r\n\r\n\t/**\r\n\t * Starting angle of the cursor's radial line.\r\n\t */\r\n\tstartAngle: number;\r\n\r\n\t/**\r\n\t * Ending angle of the cursor's radial line.\r\n\t */\r\n\tendAngle: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[RadarCursor]].\r\n */\r\nexport interface IRadarCursorEvents extends IXYCursorEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RadarCursor]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRadarCursorAdapters extends IXYCursorAdapters, IRadarCursorProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Cursor for [[RadarChart]].\r\n *\r\n * @see {@link IRadarCursorEvents} for a list of available events\r\n * @see {@link IRadarCursorAdapters} for a list of available Adapters\r\n */\r\nexport class RadarCursor extends XYCursor {\r\n\r\n\t/**\r\n\t * Defines available properties\r\n\t */\r\n\tpublic _properties!: IRadarCursorProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IRadarCursorAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRadarCursorEvents;\r\n\r\n\t/**\r\n\t * A reference to chart cursor belongs to.\r\n\t */\r\n\tpublic _chart: RadarChart;\r\n\r\n\r\n\tprotected _prevAngle: number;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"RadarCursor\";\r\n\t\tthis.radius = percent(100);\r\n\t\tthis.innerRadius = percent(0);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.mask = undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if point is within bounds of a container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param point Point to check\r\n\t * @return Fits within container?\r\n\t */\r\n\tpublic fitsToBounds(point: IPoint): boolean {\r\n\t\tlet radius = $math.getDistance(point);\r\n\r\n\t\t//if(!$math.isAngleInRange(angle, this.startAngle, this.endAngle)){\r\n\t\t\t//return false;\r\n\t\t//}\r\n\t\tif (radius < this.truePixelRadius + 1 && radius > this.pixelInnerRadius - 1) { // ok to add/remove some\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Starting angle of the cursor's radial line.\r\n\t *\r\n\t * @param value Start angle\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start angle\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * End angle of the cursor's radial line.\r\n\t *\r\n\t * @param value End angle\r\n\t */\r\n\tpublic set endAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"endAngle\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End angle\r\n\t */\r\n\tpublic get endAngle(): number {\r\n\t\treturn this.getPropertyValue(\"endAngle\");\r\n\t}\r\n\r\n\r\n\tprotected triggerMoveReal(point:IPoint, force?:boolean) {\r\n\r\n\t\tif (!this.xAxis || (this.xAxis && (!this.xAxis.cursorTooltipEnabled || this.xAxis.tooltip.disabled))) {\r\n\t\t\tthis.updateLineX(this.point);\r\n\t\t}\r\n\t\tif (!this.yAxis || (this.yAxis && (!this.yAxis.cursorTooltipEnabled || this.yAxis.tooltip.disabled))) {\r\n\t\t\tthis.updateLineY(this.point);\r\n\t\t}\r\n\r\n\t\tthis.updateSelection();\r\n\t\tsuper.triggerMoveReal(point, force);\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)draws the horizontal (circular) cursor's line.\r\n\t *\r\n\t * @param point New target point\r\n\t */\r\n\tprotected updateLineX(point: IPoint) {\r\n\r\n\t\tlet radius: number = this.pixelRadius;\r\n\t\tlet startAngle: number = this.startAngle;\r\n\t\tlet endAngle: number = this.endAngle;\r\n\t\tlet innerRadius: number = this.pixelInnerRadius;\r\n\r\n\t\tif (radius > 0 && $type.isNumber(startAngle) && $type.isNumber(endAngle) && $type.isNumber(innerRadius)) {\r\n\t\t\tlet angle: number = $math.fitAngleToRange($math.getAngle(point), startAngle, endAngle);\r\n\t\t\tlet path: string;\r\n\r\n\t\t\tif (this.lineX && this.lineX.visible) {\r\n\r\n\t\t\t\tthis.lineX.moveTo({ x: 0, y: 0 });\r\n\r\n\t\t\t\t// fill\r\n\t\t\t\tif (this.xAxis && this.fullWidthLineX) {\r\n\r\n\t\t\t\t\tlet startPoint: IPoint = this.xAxis.currentItemStartPoint;\r\n\t\t\t\t\tlet endPoint: IPoint = this.xAxis.currentItemEndPoint;\r\n\r\n\t\t\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\t\t\tlet fillStartAngle: number = $math.fitAngleToRange($math.getAngle(startPoint), startAngle, endAngle);\r\n\t\t\t\t\t\tlet fillEndAngle: number = $math.fitAngleToRange($math.getAngle(endPoint), startAngle, endAngle);\r\n\r\n\t\t\t\t\t\tlet arc: number = fillEndAngle - fillStartAngle;\r\n\r\n\t\t\t\t\t\t// clockwise\r\n\t\t\t\t\t\t// this is needed, normalizeAngle doesn't solve it\r\n\t\t\t\t\t\tif (startAngle < endAngle) {\r\n\t\t\t\t\t\t\tif (arc < 0) {\r\n\t\t\t\t\t\t\t\tarc += 360;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// ccw\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (arc > 0) {\r\n\t\t\t\t\t\t\t\tarc -= 360;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tangle -= arc / 2;\r\n\r\n\t\t\t\t\t\tpath = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) })\r\n\t\t\t\t\t\t\t+ $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) })\r\n\t\t\t\t\t\t\t+ $path.arcTo(angle, arc, radius)\r\n\t\t\t\t\t\t\t+ $path.lineTo({ x: innerRadius * $math.cos(angle + arc), y: innerRadius * $math.sin(angle + arc) })\r\n\t\t\t\t\t\t\t+ $path.arcTo(angle + arc, -arc, innerRadius);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// line\r\n\t\t\t\tif (!path) {\r\n\t\t\t\t\tpath = $path.moveTo({ x: innerRadius * $math.cos(angle), y: innerRadius * $math.sin(angle) }) + $path.lineTo({ x: radius * $math.cos(angle), y: radius * $math.sin(angle) });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.lineX.path = path;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)draws the vertical (radial) cursor's line.\r\n\t *\r\n\t * @param point New target point\r\n\t */\r\n\tprotected updateLineY(point: IPoint) {\r\n\t\tif (this.lineY && this.lineY.visible) {\r\n\t\t\tlet startAngle = this.startAngle;\r\n\t\t\tlet endAngle = this.endAngle;\r\n\t\t\tlet truePixelRadius = this.truePixelRadius;\r\n\t\t\tlet radius = $math.fitToRange($math.getDistance(point), 0, this.truePixelRadius);\r\n\t\t\tif ($type.isNumber(radius) && $type.isNumber(startAngle)) {\r\n\t\t\t\tthis.lineY.moveTo({ x: 0, y: 0 });\r\n\r\n\t\t\t\tlet path: string;\r\n\t\t\t\tlet arc: number = endAngle - startAngle;\r\n\r\n\t\t\t\tif (this.yAxis && this.fullWidthLineY) {\r\n\t\t\t\t\t// fill\r\n\t\t\t\t\tlet startPoint: IPoint = this.yAxis.currentItemStartPoint;\r\n\t\t\t\t\tlet endPoint: IPoint = this.yAxis.currentItemEndPoint;\r\n\r\n\t\t\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\t\t\tlet innerRadius: number = $math.fitToRange($math.getDistance(startPoint), 0, truePixelRadius);\r\n\t\t\t\t\t\tradius = $math.fitToRange($math.getDistance(endPoint), 0, truePixelRadius);\r\n\r\n\t\t\t\t\t\tpath = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, arc, radius);\r\n\t\t\t\t\t\tpath += $path.moveTo({ x: innerRadius * $math.cos(endAngle), y: innerRadius * $math.sin(endAngle) }) + $path.arcTo(endAngle, -arc, innerRadius);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!path) {\r\n\t\t\t\t\tpath = $path.moveTo({ x: radius * $math.cos(startAngle), y: radius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, radius);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.lineY.path = path;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates selection dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSelection(): void {\r\n\t\tif (this._usesSelection) {\r\n\t\t\tlet downPoint: IPoint = this.downPoint;\r\n\r\n\t\t\tif (downPoint) {\r\n\r\n\t\t\t\tlet point: IPoint = this.point;\r\n\r\n\t\t\t\tlet radius: number = this.pixelRadius;\r\n\t\t\t\tlet truePixelRadius: number = this.truePixelRadius;\r\n\t\t\t\tlet innerRadius: number = this.pixelInnerRadius;\r\n\r\n\t\t\t\tlet startAngle: number = Math.min(this.startAngle, this.endAngle);\r\n\t\t\t\tlet endAngle: number = Math.max(this.startAngle, this.endAngle);\r\n\r\n\t\t\t\tlet downAngle: number = $math.fitAngleToRange($math.getAngle(downPoint), startAngle, endAngle);\r\n\t\t\t\tlet angle: number = $math.fitAngleToRange($math.getAngle(point), startAngle, endAngle);\r\n\r\n\t\t\t\tlet downRadius: number = $math.getDistance(downPoint);\r\n\t\t\t\tif (downRadius < truePixelRadius) {\r\n\r\n\t\t\t\t\tlet currentRadius = $math.fitToRange($math.getDistance(point), 0, truePixelRadius);\r\n\r\n\t\t\t\t\tthis._prevAngle = angle;\r\n\r\n\t\t\t\t\tlet path: string = $path.moveTo({ x: 0, y: 0 });\r\n\r\n\t\t\t\t\tlet downSin: number = $math.sin(downAngle);\r\n\t\t\t\t\tlet downCos: number = $math.cos(downAngle);\r\n\r\n\t\t\t\t\tlet sin: number = $math.sin(angle);\r\n\t\t\t\t\tlet cos: number = $math.cos(angle);\r\n\r\n\t\t\t\t\tlet behavior = this.behavior;\r\n\t\t\t\t\tif (behavior == \"zoomX\" || behavior == \"selectX\") {\r\n\t\t\t\t\t\tpath += $path.lineTo({ x: radius * downCos, y: radius * downSin }) + $path.arcTo(downAngle, angle - downAngle, radius) + $path.lineTo({ x: innerRadius * cos, y: innerRadius * sin }) + $path.arcTo(angle, downAngle - angle, innerRadius);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (behavior == \"zoomY\" || behavior == \"selectY\") {\r\n\t\t\t\t\t\tpath = $path.moveTo({ x: currentRadius * $math.cos(startAngle), y: currentRadius * $math.sin(startAngle) }) + $path.arcTo(startAngle, endAngle - startAngle, currentRadius) + $path.lineTo({ x: downRadius * $math.cos(endAngle), y: downRadius * $math.sin(endAngle) }) + $path.arcTo(endAngle, startAngle - endAngle, downRadius) + $path.closePath();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (behavior == \"zoomXY\") {\r\n\t\t\t\t\t\tpath = $path.moveTo({ x: currentRadius * $math.cos(downAngle), y: currentRadius * $math.sin(downAngle) }) + $path.arcTo(downAngle, angle - downAngle, currentRadius) + $path.lineTo({ x: downRadius * $math.cos(angle), y: downRadius * $math.sin(angle) }) + $path.arcTo(angle, downAngle - angle, downRadius) + $path.closePath();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.selection.path = path;\r\n\t\t\t\t}\r\n\t\t\t\tthis.selection.moveTo({ x: 0, y: 0 });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates cursors current positions.\r\n\t */\r\n\tprotected getPositions() {\r\n\t\t// positions are used by axes or series\r\n\t\tlet chart: RadarChart = this.chart;\r\n\t\tif (chart) {\r\n\t\t\tlet innerRadius = this.pixelInnerRadius;\r\n\t\t\tlet radius: number = this.truePixelRadius - innerRadius;\r\n\r\n\t\t\tlet startAngle: number = this.startAngle;\r\n\t\t\tlet endAngle: number = this.endAngle;\r\n\r\n\t\t\tlet angle: number = $math.fitAngleToRange($math.getAngle(this.point), startAngle, endAngle);\r\n\t\t\tlet xPosition = ((angle - startAngle) / (endAngle - startAngle));\r\n\t\t\tthis.xPosition = xPosition;\r\n\r\n\t\t\tthis.yPosition = $math.fitToRange(($math.getDistance(this.point) - innerRadius) / radius, 0, 1);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Overriding inherited method, so that nothing happens when it's triggered.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updatePoint(point: IPoint) {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when axis tooltip changes horizontal position.\r\n\t *\r\n\t * @param event Axis event\r\n\t */\r\n\tprotected handleXTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tif (this.xAxis.cursorTooltipEnabled) {\r\n\t\t\tlet tooltip: Tooltip = this.xAxis.tooltip;\r\n\t\t\tthis.updateLineX($utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when axis tooltip changes vertical position.\r\n\t *\r\n\t * @todo Description\r\n\t * @param event Axis event\r\n\t */\r\n\tprotected handleYTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tif (this.yAxis.cursorTooltipEnabled) {\r\n\t\t\tlet tooltip: Tooltip = this.yAxis.tooltip;\r\n\t\t\tthis.updateLineY($utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * needs to be overriden\r\n\t * @ignore\r\n\t */\r\n\tprotected updateLinePositions(point: IPoint) {\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getRanges description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected getRanges(): void {\r\n\t\tlet downPoint = this.downPoint;\r\n\t\tif (downPoint) {\r\n\t\t\tlet upPoint: IPoint = this.upPoint;\r\n\r\n\t\t\tlet chart: RadarChart = this.chart;\r\n\t\t\tif (chart) {\r\n\t\t\t\tlet radius: number = this.pixelRadius;\r\n\t\t\t\tlet startAngle: number = this.startAngle;\r\n\t\t\t\tlet endAngle: number = this.endAngle;\r\n\r\n\t\t\t\tlet downAngle: number = $math.fitAngleToRange($math.getAngle(downPoint), this.startAngle, this.endAngle);\r\n\t\t\t\tlet upAngle: number = $math.fitAngleToRange($math.getAngle(upPoint), this.startAngle, this.endAngle);\r\n\r\n\t\t\t\tlet downRadius = $math.fitToRange($math.getDistance(downPoint), 0, radius);\r\n\t\t\t\tlet upRadius = $math.fitToRange($math.getDistance(upPoint), 0, radius);\r\n\r\n\t\t\t\tlet startX: number = 0;\r\n\t\t\t\tlet endX: number = 1;\r\n\r\n\t\t\t\tlet startY: number = 0;\r\n\t\t\t\tlet endY: number = 1;\r\n\r\n\t\t\t\tlet behavior = this.behavior;\r\n\t\t\t\tif (behavior == \"zoomX\" || behavior == \"selectX\" || behavior == \"zoomXY\" || behavior == \"selectXY\") {\r\n\t\t\t\t\tlet arc: number = endAngle - startAngle;\r\n\t\t\t\t\tstartX = $math.round((downAngle - startAngle) / arc, 5);\r\n\t\t\t\t\tendX = $math.round((upAngle - startAngle) / arc, 5);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (behavior == \"zoomY\" || behavior == \"selectY\" || behavior == \"zoomXY\" || behavior == \"selectXY\") {\r\n\t\t\t\t\tstartY = $math.round(downRadius / radius, 5);\r\n\t\t\t\t\tendY = $math.round(upRadius / radius, 5);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.xRange = { start: Math.min(startX, endX), end: Math.max(startX, endX) };\r\n\t\t\t\tthis.yRange = { start: Math.min(startY, endY), end: Math.max(startY, endY) };\r\n\r\n\t\t\t\tif (this.behavior == \"selectX\" || this.behavior == \"selectY\" || this.behavior == \"selectXY\") {\r\n\t\t\t\t\t// void\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.selection.hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Overriding inherited method, so that nothing happens when `updateSize`\r\n\t * is triggered.\r\n\t *\r\n\t * RadarCursor is quite complicated and needs own sizing logic.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSize(): void { }\r\n\r\n\t/**\r\n\t * Outer radius of the cursor's circular line.\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Outer radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, false, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Outer radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Outer radius of the circular line in pixels.\r\n\t *\r\n\t * @return Outer radius (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn $utils.relativeRadiusToValue(this.radius, this.truePixelRadius);\r\n\t}\r\n\r\n\t/**\r\n\t * [truePixelRadius description]\r\n\t *\r\n\t * @todo Description\r\n\t * @return Outer radius (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get truePixelRadius(): number {\r\n\t\treturn $utils.relativeToValue(percent(100), $math.min(this.innerWidth / 2, this.innerHeight / 2));\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the cursor's circular line.\r\n\t * Absolute (px) or relative ([[Percent]]).\r\n\t *\r\n\t * @param value Inner radius\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, false, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Inner radius\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the circular line in pixels.\r\n\t *\r\n\t * @return Inner radius (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\r\n\t\tlet innerRadius = this.innerRadius;\r\n\r\n\t\tif (innerRadius instanceof Percent) {\r\n\t\t\tinnerRadius = percent(100 * innerRadius.value * this.chart.innerRadiusModifyer);\r\n\t\t}\r\n\r\n\t\treturn $utils.relativeRadiusToValue(innerRadius, this.truePixelRadius) || 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\r\n\tprotected fixPoint(point: IPoint): IPoint {\r\n\t\t// overriding xy method\r\n\t\treturn point;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadarCursor\"] = RadarCursor;\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { TimeUnit } from \"../defs/TimeUnit\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * Maps time period names to their numeric representations in milliseconds.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport let timeUnitDurations: { [Key in TimeUnit]: number } = {\r\n\tmillisecond: 1,\r\n\tsecond: 1000,\r\n\tminute: 60000,\r\n\thour: 3600000,\r\n\tday: 86400000,\r\n\tweek: 604800000,\r\n\tmonth: 2592000000,\r\n\tyear: 31536000000\r\n};\r\n\r\n/**\r\n * Returns the next time unit that goes after source `unit`.\r\n *\r\n * E.g. \"hour\" is the next unit after \"minute\", etc.\r\n *\r\n * @ignore Exclude from docs\r\n * @param unit Source time unit\r\n * @return Next time unit\r\n */\r\nexport function getNextUnit(unit: TimeUnit): $type.Optional<TimeUnit> {\r\n\tswitch (unit) {\r\n\t\tcase \"year\":\r\n\t\t\treturn\r\n\r\n\t\tcase \"month\":\r\n\t\t\treturn \"year\";\r\n\r\n\t\tcase \"week\":\r\n\t\t\treturn \"month\";\r\n\r\n\t\tcase \"day\":\r\n\t\t\treturn \"month\"; // not a mistake\r\n\r\n\t\tcase \"hour\":\r\n\t\t\treturn \"day\";\r\n\r\n\t\tcase \"minute\":\r\n\t\t\treturn \"hour\";\r\n\r\n\t\tcase \"second\":\r\n\t\t\treturn \"minute\"\r\n\r\n\t\tcase \"millisecond\":\r\n\t\t\treturn \"second\";\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns number of milliseconds in the `count` of time `unit`.\r\n *\r\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\r\n * \"month\", and \"year\".\r\n *\r\n * @ignore Exclude from docs\r\n * @param unit Time unit\r\n * @param count Number of units\r\n * @return Milliseconds\r\n */\r\nexport function getDuration(unit: TimeUnit, count?: number): number {\r\n\tif (!$type.hasValue(count)) {\r\n\t\tcount = 1;\r\n\t}\r\n\treturn timeUnitDurations[unit] * count;\r\n}\r\n\r\n/**\r\n * Returns current `Date` object.\r\n *\r\n * @return Current date\r\n */\r\nexport function now(): Date {\r\n\treturn new Date();\r\n}\r\n\r\n/**\r\n * Returns current timestamp.\r\n *\r\n * @return Current timestamp\r\n */\r\nexport function getTime(): number {\r\n\treturn now().getTime();\r\n}\r\n\r\n/**\r\n * Returns a copy of the `Date` object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @return Copy\r\n */\r\nexport function copy(date: Date): Date {\r\n\treturn new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\r\n}\r\n\r\n/**\r\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\r\n * represent a \"range\" of time, rather the same time date.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dateOne Date 1\r\n * @param dateTwo Date 2\r\n * @param unit Time unit to check\r\n * @return Range?\r\n */\r\nexport function checkChange(dateOne: Date, dateTwo: Date, unit: TimeUnit, utc?: boolean): boolean {\r\n\r\n\tdateOne = new Date(dateOne.getTime());\r\n\tdateTwo = new Date(dateTwo.getTime());\r\n\r\n\tlet timeZoneOffset1 = 0;\r\n\tlet timeZoneOffset2 = 0;\r\n\r\n\tif (!utc && unit != \"millisecond\") {\r\n\t\ttimeZoneOffset1 = dateOne.getTimezoneOffset();\r\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\r\n\r\n\t\ttimeZoneOffset2 = dateTwo.getTimezoneOffset();\r\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\r\n\t}\r\n\r\n\tlet changed = false;\r\n\tswitch (unit) {\r\n\t\tcase \"year\":\r\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase \"month\":\r\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\telse if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"day\":\r\n\t\t\tif (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\telse if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"hour\":\r\n\t\t\tif (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"minute\":\r\n\t\t\tif (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"second\":\r\n\t\t\tif (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"millisecond\":\r\n\t\t\tif (dateOne.getTime() != dateTwo.getTime()) {\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tif (changed) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tlet nextUnit: $type.Optional<TimeUnit> = getNextUnit(unit);\r\n\tif (nextUnit) {\r\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() + timeZoneOffset1);\r\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);\r\n\t\treturn checkChange(dateOne, dateTwo, nextUnit, utc);\r\n\t}\r\n\telse {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @param unit Time unit\r\n * @param count Number of units to add\r\n * @return Modified date\r\n */\r\nexport function add(date: Date, unit: TimeUnit, count: number, utc?: boolean): Date {\r\n\tlet timeZoneOffset = 0;\r\n\r\n\tif (!utc && unit != \"millisecond\") {\r\n\t\ttimeZoneOffset = date.getTimezoneOffset();\r\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\r\n\t}\r\n\r\n\tswitch (unit) {\r\n\t\tcase \"day\":\r\n\t\t\tlet day: number = date.getUTCDate();\r\n\t\t\tdate.setUTCDate(day + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"second\":\r\n\t\t\tlet seconds: number = date.getUTCSeconds();\r\n\t\t\tdate.setUTCSeconds(seconds + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"millisecond\":\r\n\t\t\tlet milliseconds: number = date.getUTCMilliseconds();\r\n\t\t\tdate.setUTCMilliseconds(milliseconds + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"hour\":\r\n\t\t\tlet hours: number = date.getUTCHours();\r\n\t\t\tdate.setUTCHours(hours + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"minute\":\r\n\t\t\tlet minutes: number = date.getUTCMinutes();\r\n\t\t\tdate.setUTCMinutes(minutes + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"year\":\r\n\t\t\tlet year: number = date.getUTCFullYear();\r\n\t\t\tdate.setUTCFullYear(year + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"month\":\r\n\t\t\tlet month: number = date.getUTCMonth();\r\n\t\t\tdate.setUTCMonth(month + count);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"week\":\r\n\t\t\tlet wday: number = date.getUTCDate();\r\n\t\t\tdate.setUTCDate(wday + count * 7);\r\n\t\t\tbreak;\r\n\t}\r\n\tif (!utc && unit != \"millisecond\") {\r\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\r\n\r\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\r\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\r\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\r\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\r\n\r\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\r\n\t\t\t\t// solves issues if newe time falls back to old time zone\r\n\t\t\t\tif (date.getTimezoneOffset() != newTimeZoneOffset) {\r\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - diff);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn date;\r\n}\r\n\r\n/**\r\n * \"Rounds\" the date to specific time unit.\r\n *\r\n * @ignore Exclude from docs\r\n * @param date Source date\r\n * @param unit Time unit\r\n * @param count Number of units to round to\r\n * @param firstDateOfWeek First day of week\r\n * @return New date\r\n */\r\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date): Date {\r\n\r\n\tif (!$type.isNumber(count)) {\r\n\t\tcount = 1;\r\n\t}\r\n\r\n\tlet timeZoneOffset = 0;\r\n\r\n\tif (!utc && unit != \"millisecond\") {\r\n\t\ttimeZoneOffset = date.getTimezoneOffset();\r\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\r\n\t}\r\n\r\n\tswitch (unit) {\r\n\r\n\t\tcase \"day\":\r\n\t\t\tlet day = date.getUTCDate();\r\n\r\n\t\t\tif (count > 1) {\r\n\t\t\t\t//\tday = Math.floor(day / count) * count;\r\n\t\t\t\tif (firstDate) {\r\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\r\n\r\n\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\r\n\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\r\n\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\r\n\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdate.setUTCDate(day);\r\n\t\t\t}\r\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"second\":\r\n\t\t\tlet seconds = date.getUTCSeconds();\r\n\t\t\tif (count > 1) {\r\n\t\t\t\tseconds = Math.floor(seconds / count) * count;\r\n\t\t\t}\r\n\t\t\tdate.setUTCSeconds(seconds, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"millisecond\":\r\n\t\t\tif (count == 1) {\r\n\t\t\t\treturn date; // much better for perf!\r\n\t\t\t}\r\n\r\n\t\t\tlet milliseconds = date.getUTCMilliseconds();\r\n\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\r\n\t\t\tdate.setUTCMilliseconds(milliseconds);\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"hour\":\r\n\r\n\t\t\tlet hours = date.getUTCHours();\r\n\t\t\tif (count > 1) {\r\n\t\t\t\thours = Math.floor(hours / count) * count;\r\n\t\t\t}\r\n\t\t\tdate.setUTCHours(hours, 0, 0, 0);\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"minute\":\r\n\r\n\t\t\tlet minutes = date.getUTCMinutes();\r\n\t\t\tmilliseconds = date.getUTCMilliseconds();\r\n\t\t\tif (count > 1) {\r\n\t\t\t\tminutes = Math.floor(minutes / count) * count;\r\n\t\t\t}\r\n\r\n\t\t\tdate.setUTCMinutes(minutes, 0, 0);\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"month\":\r\n\r\n\t\t\tlet month = date.getUTCMonth();\r\n\t\t\tif (count > 1) {\r\n\t\t\t\tmonth = Math.floor(month / count) * count;\r\n\t\t\t}\r\n\r\n\t\t\tdate.setUTCMonth(month, 1);\r\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase \"year\":\r\n\r\n\t\t\tlet year = date.getUTCFullYear();\r\n\t\t\tif (count > 1) {\r\n\t\t\t\tyear = Math.floor(year / count) * count;\r\n\t\t\t}\r\n\t\t\tdate.setUTCFullYear(year, 0, 1);\r\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\r\n\r\n\t\t\t//let nonUTCDateY = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\r\n\t\t\t//timeZoneOffset = nonUTCDateY.getTimezoneOffset();\r\n\r\n\t\t\tbreak;\r\n\r\n\r\n\t\tcase \"week\":\r\n\r\n\t\t\tlet wday = date.getUTCDate();\r\n\t\t\tlet weekDay = date.getUTCDay();\r\n\r\n\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\r\n\t\t\t\tfirstDateOfWeek = 1;\r\n\t\t\t}\r\n\r\n\t\t\t// todo: rounding when count is not 1\r\n\t\t\tif (weekDay >= firstDateOfWeek) {\r\n\t\t\t\twday = wday - weekDay + firstDateOfWeek;\r\n\t\t\t} else {\r\n\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\r\n\t\t\t}\r\n\r\n\t\t\tdate.setUTCDate(wday);\r\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\r\n\r\n\t\t\tbreak;\r\n\t}\r\n\tif (!utc && unit != \"millisecond\") {\r\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\r\n\r\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\r\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\r\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\r\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\r\n\r\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn date;\r\n}\r\n","/**\r\n * This module contains a version of ColorSet that can (and should) be used for\r\n * coloring UI elements.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { registry } from \"../Registry\";\r\nimport { Color, color } from \"./Color\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available color purposes and their relation with the color set color\r\n * index.\r\n */\r\nexport interface IColorPurpose {\r\n\tstroke: Color,\r\n\tfill: Color,\r\n\r\n\tprimaryButton: Color,\r\n\tprimaryButtonHover: Color,\r\n\tprimaryButtonDown: Color,\r\n\tprimaryButtonActive: Color,\r\n\tprimaryButtonText: Color,\r\n\tprimaryButtonStroke: Color,\r\n\r\n\tsecondaryButton: Color,\r\n\tsecondaryButtonHover: Color,\r\n\tsecondaryButtonDown: Color,\r\n\tsecondaryButtonActive: Color,\r\n\tsecondaryButtonText: Color,\r\n\tsecondaryButtonStroke: Color,\r\n\r\n\tgrid: Color,\r\n\tbackground: Color,\r\n\talternativeBackground: Color,\r\n\ttext: Color,\r\n\talternativeText: Color,\r\n\tdisabledBackground: Color,\r\n\r\n\tpositive: Color,\r\n\tnegative: Color\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * This module contains a version of ColorSet that can (and should) be used for\r\n * coloring UI elements.\r\n *\r\n * The main difference from the basic [[ColorSet]] is that instead of sequenced\r\n * colors, it uses a concept of named colors.\r\n *\r\n * This way, every element in the UI can extract an exact color theme author\r\n * meant for the specific purpose, like strokes, backgrounds, etc.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nexport class InterfaceColorSet extends BaseObject {\r\n\r\n\t/**\r\n\t * Maps the list of purposes (like \"stroke\") to an index of color of the\r\n\t * color set.\r\n\t */\r\n\tprotected _purposes: IColorPurpose = {\r\n\t\tstroke: color(\"#e5e5e5\"),\r\n\t\tfill: color(\"#f3f3f3\"),\r\n\r\n\t\tprimaryButton: color(\"#6794dc\"),\r\n\t\tprimaryButtonHover: color(\"#6771dc\"),\r\n\t\tprimaryButtonDown: color(\"#68dc75\"),\r\n\t\tprimaryButtonActive: color(\"#68dc75\"),\r\n\t\tprimaryButtonText: color(\"#FFFFFF\"),\r\n\t\tprimaryButtonStroke: color(\"#FFFFFF\"),\r\n\r\n\t\tsecondaryButton: color(\"#d9d9d9\"),\r\n\t\tsecondaryButtonHover: color(\"#d9d9d9\").brighten(-0.25),\r\n\t\tsecondaryButtonDown: color(\"#d9d9d9\").brighten(-0.35),\r\n\t\tsecondaryButtonActive: color(\"#d9d9d9\").brighten(0.35),\r\n\t\tsecondaryButtonText: color(\"#000000\"),\r\n\r\n\t\tsecondaryButtonStroke: color(\"#FFFFFF\"),\r\n\r\n\t\tgrid: color(\"#000000\"),\r\n\t\tbackground: color(\"#ffffff\"),\r\n\t\talternativeBackground: color(\"#000000\"),\r\n\t\ttext: color(\"#000000\"),\r\n\t\talternativeText: color(\"#FFFFFF\"),\r\n\t\tdisabledBackground: color(\"#999999\"),\r\n\t\tpositive: color(\"#67dc75\"),\r\n\t\tnegative: color(\"#dc6788\")\r\n\t};\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"InterfaceColorSet\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tprotected debug(): void {}\r\n\r\n\t/**\r\n\t * Returns a color to be used for the specific purpose.\r\n\t *\r\n\t * ```TypeScript\r\n\t * let uicolors = new am4core.InterfaceColorSet();\r\n\t * console.log(uicolors.getFor(\"stroke\"));\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * var uicolors = new am4core.InterfaceColorSet();\r\n\t * console.log(uicolors.getFor(\"stroke\"));\r\n\t * ```\r\n\t *\r\n\t * @param purpose Color use purpuse\r\n\t * @return Color\r\n\t */\r\n\tpublic getFor(purpose: keyof IColorPurpose): Color {\r\n\t\treturn this._purposes[purpose];\r\n\t}\r\n\r\n\t/**\r\n\t * Sets color to be used for the specific purpose.\r\n\t *\r\n\t * @param purpose Color use purpose\r\n\t * @param color Color\r\n\t */\r\n\tpublic setFor(purpose: keyof IColorPurpose, color: Color): void {\r\n\t\tthis._purposes[purpose] = color;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"InterfaceColorSet\"] = InterfaceColorSet;\r\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport * as React from 'react';\nimport devWarning from '../_util/devWarning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\n\nvar LocaleProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n var _super = _createSuper(LocaleProvider);\n\n function LocaleProvider(props) {\n var _this;\n\n _classCallCheck(this, LocaleProvider);\n\n _this = _super.call(this, props);\n changeConfirmLocale(props.locale && props.locale.Modal);\n devWarning(props._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale');\n return _this;\n }\n\n _createClass(LocaleProvider, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var locale = this.props.locale;\n\n if (prevProps.locale !== locale) {\n changeConfirmLocale(locale && locale.Modal);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n changeConfirmLocale();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n locale = _this$props.locale,\n children = _this$props.children;\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: _extends(_extends({}, locale), {\n exist: true\n })\n }, children);\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexport { LocaleProvider as default };\nLocaleProvider.defaultProps = {\n locale: {}\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// TODO: remove this lint\n// SFC has specified a displayName, but not worked.\n\n/* eslint-disable react/display-name */\nimport * as React from 'react';\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { SizeContextProvider } from './SizeContext';\nimport message from '../message';\nimport notification from '../notification';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n\n var getPrefixClsWrapper = function getPrefixClsWrapper(context) {\n return function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || context.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n };\n };\n\n var renderProvider = function renderProvider(context, legacyLocale) {\n var children = props.children,\n getTargetContainer = props.getTargetContainer,\n getPopupContainer = props.getPopupContainer,\n renderEmpty = props.renderEmpty,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n input = props.input,\n locale = props.locale,\n pageHeader = props.pageHeader,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth;\n\n var config = _extends(_extends({}, context), {\n getPrefixCls: getPrefixClsWrapper(context),\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n });\n\n if (getTargetContainer) {\n config.getTargetContainer = getTargetContainer;\n }\n\n if (getPopupContainer) {\n config.getPopupContainer = getPopupContainer;\n }\n\n if (renderEmpty) {\n config.renderEmpty = renderEmpty;\n }\n\n if (pageHeader) {\n config.pageHeader = pageHeader;\n }\n\n if (input) {\n config.input = input;\n }\n\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale && locale.Form && locale.Form.defaultValidateMessages) {\n validateMessages = locale.Form.defaultValidateMessages;\n }\n\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: config\n }, /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale || legacyLocale,\n _ANT_MARK__: ANT_MARK\n }, childNode)));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return renderProvider(context, legacyLocale);\n });\n });\n};\n\nexport default ConfigProvider;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _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}","/**\r\n * Interaction manages all aspects of user interaction - mouse move,\r\n * click, hover, drag events, touch gestures.\r\n *\r\n * [[InteractionObject]] elements that want to use certain events, must attach event\r\n * listeners to Interaction instance.\r\n *\r\n * Interaction itself will not modify [[InteractionObject]] elements, it will be up to\r\n * those elements to handle interaction information received via event triggers.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents, IBaseObjectEvents } from \"../Base\";\r\nimport { List } from \"../utils/List\";\r\nimport { AMEvent } from \"../utils/EventDispatcher\";\r\nimport { Animation } from \"../utils/Animation\";\r\nimport { IInertiaOptions, ISwipeOptions, IHitOptions, IHoverOptions, IKeyboardOptions, IMouseOptions } from \"./InteractionOptions\";\r\nimport { MultiDisposer, IDisposer } from \"../utils/Disposer\";\r\nimport { InteractionObject, IInteractionObjectEvents } from \"./InteractionObject\";\r\nimport { InteractionKeyboardObject } from \"./InteractionKeyboardObject\";\r\nimport { Dictionary } from \"../utils/Dictionary\";\r\nimport { Inertia, InertiaTypes } from \"./Inertia\";\r\nimport { IPointer, IBreadcrumb } from \"./Pointer\";\r\nimport { addEventListener } from \"../utils/DOM\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IStyleProperty } from \"../defs/IStyleProperty\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport { system } from \"./../System\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $time from \"../utils/Time\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents an Event object that comes from [[Interaction]]\r\n */\r\nexport interface IInteractionEvents extends IBaseObjectEvents {\r\n\r\n\ttrack: {\r\n\t\tpointer: IPointer;\r\n\t\ttouch: boolean;\r\n\t\tevent: MouseEvent | TouchEvent;\r\n\t};\r\n\r\n\tdown: {\r\n\t\tpointer: IPointer;\r\n\t\ttouch: boolean;\r\n\t\tevent: MouseEvent | TouchEvent;\r\n\t};\r\n\r\n\tup: {\r\n\t\tpointer: IPointer;\r\n\t\ttouch: boolean;\r\n\t\tevent: MouseEvent | TouchEvent;\r\n\t};\r\n\r\n\tfocus: {\r\n\t\tevent: FocusEvent;\r\n\t}\r\n}\r\n\r\n/**\r\n * Interface representing a delayed event\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport interface IDelayedEvent {\r\n\ttype: keyof IInteractionObjectEvents;\r\n\tio: InteractionObject;\r\n\tpointer: IPointer;\r\n\tevent: MouseEvent | TouchEvent;\r\n\tkeepUntil?: number;\r\n\ttimeout?: IDisposer;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n\r\n/**\r\n* Interaction manages all aspects of user interaction - mouse move,\r\n* click, hover, drag events, touch gestures.\r\n*\r\n* [[InteractionObject]] elements that want to use certain events, must attach event\r\n* listeners to Interaction instance.\r\n*\r\n* Interaction itself will not modify [[InteractionObject]] elements, it will be up to\r\n* those elements to handle interaction information received via event triggers.\r\n*\r\n* @see {@link IInteractionEvents} for a list of available events\r\n*/\r\nexport class Interaction extends BaseObjectEvents {\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t *\r\n\t * @deprecated Use inetraction.body.events instead\r\n\t */\r\n\tpublic _events!: IInteractionEvents;\r\n\r\n\t/**\r\n\t * A reference to an [[Interaction]] object for document's body.\r\n\t *\r\n\t * Users can use it to add global, non-chart related events, that will be\r\n\t * applicable to the whole document.\r\n\t */\r\n\tpublic body: InteractionObject;\r\n\r\n\t/**\r\n\t * An indicator of global events were already initialized.\r\n\t */\r\n\tprotected _globalEventsAdded: boolean = false;\r\n\r\n\t/**\r\n\t * Holds which mouse event listeners to use.\r\n\t */\r\n\tprotected _pointerEvents = {\r\n\t\t\"pointerdown\": \"mousedown\",\r\n\t\t\"pointerup\": \"mouseup\",\r\n\t\t\"pointermove\": \"mousemove\",\r\n\t\t\"pointercancel\": \"mouseup\",\r\n\t\t\"pointerover\": \"mouseover\",\r\n\t\t\"pointerout\": \"mouseout\",\r\n\t\t\"wheel\": \"wheel\"\r\n\t};\r\n\r\n\t/**\r\n\t * Indicates if Interaction should use only \"pointer\" type events, like\r\n\t * \"pointermove\", available in all modern browsers, ignoring \"legacy\"\r\n\t * events, like \"touchmove\".\r\n\t */\r\n\tprotected _usePointerEventsOnly: boolean = false;\r\n\r\n\t/**\r\n\t * Use only touch events (for touch only devices such as tablets and phones)\r\n\t */\r\n\tprotected _useTouchEventsOnly: boolean = false;\r\n\r\n\t/**\r\n\t * Add special hover events. Normally, touch device tap will also simulate\r\n\t * hover event. On some devices (ahem iOS) we want to prevent that so that\r\n\t * over/out events are not duplicated.\r\n\t */\r\n\tprotected _addHoverEvents: boolean = true;\r\n\r\n\t/**\r\n\t * Indicates if passive mode options is supported by this browser.\r\n\t */\r\n\tprotected _passiveSupported: boolean = false;\r\n\r\n\t/**\r\n\t * Holds list of delayed events\r\n\t */\r\n\tprotected _delayedEvents: { out: IDelayedEvent[] } = { out: [] };\r\n\r\n\t/**\r\n\t * List of objects that current have a pointer hovered over them.\r\n\t */\r\n\tpublic overObjects: List<InteractionObject> = new List<InteractionObject>();\r\n\r\n\t/**\r\n\t * List of objects that currently has a pressed pointer.\r\n\t */\r\n\tpublic downObjects: List<InteractionObject> = new List<InteractionObject>();\r\n\r\n\t/**\r\n\t * List of objects that need mouse position to be reported to them.\r\n\t */\r\n\tpublic trackedObjects: List<InteractionObject> = new List<InteractionObject>();\r\n\r\n\t/**\r\n\t * List of objects that are currently being dragged.\r\n\t */\r\n\tpublic transformedObjects: List<InteractionObject> = new List<InteractionObject>();\r\n\r\n\t/**\r\n\t * An object that currently has focus. Usually set automatically via\r\n\t * [[InteractionObject]] `isFocus` method.\r\n\t */\r\n\tpublic focusedObject: $type.Optional<InteractionObject>;\r\n\r\n\t/**\r\n\t * Holds all known pointers.\r\n\t */\r\n\tpublic pointers = new Dictionary<string, IPointer>();\r\n\r\n\t/**\r\n\t * Last pointer that generate some kinf of action.\r\n\t *\r\n\t * @since 4.9.5\r\n\t * @ignore\r\n\t */\r\n\tpublic lastPointer: $type.Optional<IPointer>;\r\n\r\n\t/**\r\n\t * Inertia options that need to be applied to after element drag, if it's\r\n\t * `inert = true`.\r\n\t *\r\n\t * This is just a default, which can and probably will be overridden by\r\n\t * actual elements.\r\n\t */\r\n\tpublic inertiaOptions = new Dictionary<InertiaTypes, IInertiaOptions>();\r\n\r\n\t/**\r\n\t * Default options for click events. These can be overridden in\r\n\t * [[InteractionObject]].\r\n\t */\r\n\tpublic hitOptions: IHitOptions = {\r\n\t\t//\"holdTime\": 1000,\r\n\t\t\"doubleHitTime\": 300,\r\n\t\t//\"delayFirstHit\": false,\r\n\t\t\"hitTolerance\": 10,\r\n\t\t\"noFocus\": true\r\n\t};\r\n\r\n\t/**\r\n\t * Default options for hover events. These can be overridden in\r\n\t * [[InteractionObject]].\r\n\t */\r\n\tpublic hoverOptions: IHoverOptions = {\r\n\t\t\"touchOutBehavior\": \"leave\",\r\n\t\t\"touchOutDelay\": 1000\r\n\t};\r\n\r\n\t/**\r\n\t * Default options for detecting a swipe gesture. These can be overridden in\r\n\t * [[InteractionObject]].\r\n\t */\r\n\tpublic swipeOptions: ISwipeOptions = {\r\n\t\t\"time\": 500,\r\n\t\t\"verticalThreshold\": 75,\r\n\t\t\"horizontalThreshold\": 30\r\n\t};\r\n\r\n\t/**\r\n\t * Default options for keyboard operations. These can be overridden in\r\n\t * [[InteractionObject]].\r\n\t */\r\n\tpublic keyboardOptions: IKeyboardOptions = {\r\n\t\t\"speed\": 0.1,\r\n\t\t\"accelleration\": 1.2,\r\n\t\t\"accellerationDelay\": 2000\r\n\t};\r\n\r\n\t/**\r\n\t * Default options for keyboard operations. These can be overridden in\r\n\t * [[InteractionObject]].\r\n\t *\r\n\t * @since 4.5.14\r\n\t */\r\n\tpublic mouseOptions: IMouseOptions = {\r\n\t\t\"sensitivity\": 1\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Constructor. Sets up universal document-wide move events to handle stuff\r\n\t * outside particular chart container.\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Call super\r\n\t\tsuper();\r\n\r\n\t\t// Set class name\r\n\t\tthis.className = \"Interaction\";\r\n\r\n\t\t// Create InteractionObject for <body>\r\n\t\tthis.body = this.getInteraction(document.body);\r\n\r\n\t\tthis._disposers.push(this.body);\r\n\r\n\t\t// Detect browser capabilities and determine what event listeners to use\r\n\t\tif (window.hasOwnProperty(\"PointerEvent\")) {\r\n\t\t\t// IE10+/Edge without touch controls enabled\r\n\t\t\tthis._pointerEvents.pointerdown = \"pointerdown\";\r\n\t\t\tthis._pointerEvents.pointerup = \"pointerup\";\r\n\t\t\tthis._pointerEvents.pointermove = \"pointermove\";\r\n\t\t\tthis._pointerEvents.pointercancel = \"pointercancel\";\r\n\t\t\tthis._pointerEvents.pointerover = \"pointerover\";\r\n\t\t\tthis._pointerEvents.pointerout = \"pointerout\";\r\n\t\t\t//this._usePointerEventsOnly = true;\r\n\t\t} else if (window.hasOwnProperty(\"MSPointerEvent\")) {\r\n\t\t\t// IE9\r\n\t\t\tthis._pointerEvents.pointerdown = \"MSPointerDown\";\r\n\t\t\tthis._pointerEvents.pointerup = \"MSPointerUp\";\r\n\t\t\tthis._pointerEvents.pointermove = \"MSPointerMove\";\r\n\t\t\tthis._pointerEvents.pointercancel = \"MSPointerUp\";\r\n\t\t\tthis._pointerEvents.pointerover = \"MSPointerOver\";\r\n\t\t\tthis._pointerEvents.pointerout = \"MSPointerOut\";\r\n\t\t\t//this._usePointerEventsOnly = true;\r\n\t\t}\r\n\t\telse if ((typeof matchMedia !== \"undefined\") && matchMedia('(pointer:fine)').matches) {\r\n\t\t\t// This is only for Safari as it does not support PointerEvent\r\n\t\t\t// Do nothing and let it use regular `mouse*` events\r\n\t\t\t// Hi Apple ;)\r\n\r\n\t\t\t// Additionally disable hover events for iOS devices\r\n\t\t\tif ('ontouchstart' in window) {\r\n\t\t\t\tthis._addHoverEvents = false;\r\n\t\t\t\tthis._useTouchEventsOnly = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (window.navigator.userAgent.match(/MSIE /)) {\r\n\t\t\t// Oh looky, an MSIE that does not support PointerEvent. Hi granpa IE9!\r\n\t\t\tthis._usePointerEventsOnly = true;\r\n\t\t}\r\n\t\telse if (this.fullFF()) {\r\n\t\t\t// Old FF, let's use regular events.\r\n\t\t\t// (Newer FFs would be detected by the PointerEvent availability check)\r\n\t\t\tthis._usePointerEventsOnly = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Uses defaults for normal browsers\r\n\t\t\t// We also assume that this must be a touch device that does not have\r\n\t\t\t// any pointer events\r\n\t\t\tthis._useTouchEventsOnly = true;\r\n\t\t}\r\n\r\n\t\t// Detect if device has a mouse\r\n\t\t// This is turning out to be not reliable\r\n\t\t// @todo remove\r\n\t\t/*if (!window.navigator.msPointerEnabled && (typeof matchMedia !== \"undefined\") && !matchMedia('(pointer:fine)').matches && !this.fullFF()) {\r\n\t\t\tthis._useTouchEventsOnly = true;\r\n\t\t}*/\r\n\r\n\t\t// Detect proper mouse wheel events\r\n\t\tif (\"onwheel\" in document.createElement(\"div\")) {\r\n\t\t\t// Modern browsers\r\n\t\t\tthis._pointerEvents.wheel = \"wheel\";\r\n\t\t}\r\n\t\telse if ($type.hasValue((<any>document).onmousewheel)) {\r\n\t\t\t// Webkit and IE support at least \"mousewheel\"\r\n\t\t\tthis._pointerEvents.wheel = \"mousewheel\";\r\n\t\t}\r\n\r\n\t\t// Set up default inertia options\r\n\t\tthis.inertiaOptions.setKey(\"move\", {\r\n\t\t\t\"time\": 100,\r\n\t\t\t\"duration\": 500,\r\n\t\t\t\"factor\": 1,\r\n\t\t\t\"easing\": $ease.polyOut3\r\n\t\t});\r\n\t\tthis.inertiaOptions.setKey(\"resize\", {\r\n\t\t\t\"time\": 100,\r\n\t\t\t\"duration\": 500,\r\n\t\t\t\"factor\": 1,\r\n\t\t\t\"easing\": $ease.polyOut3\r\n\t\t});\r\n\r\n\t\t// Set the passive mode support\r\n\t\tthis._passiveSupported = Interaction.passiveSupported;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * This is a nasty detection for Firefox. The reason why we have is that\r\n\t * Firefox ESR version does not support matchMedia correctly.\r\n\t *\r\n\t * On iOS, Firefox uses different userAgent, so we don't have to detect iOS.\r\n\t *\r\n\t * @return Full Firefox?\r\n\t */\r\n\tprotected fullFF(): boolean {\r\n\t\treturn (window.navigator.userAgent.match(/Firefox/)) && !(window.navigator.userAgent.match(/Android/));\r\n\t}\r\n\r\n\tprotected debug(): void { }\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Processing\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Sets up global events.\r\n\t *\r\n\t * We need this so that we can track drag movement beyond chart's container.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic addGlobalEvents(): void {\r\n\t\tif (!this._globalEventsAdded) {\r\n\r\n\t\t\tif (!this._useTouchEventsOnly) {\r\n\t\t\t\tthis._disposers.push(addEventListener<MouseEvent | PointerEvent>(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\tthis._pointerEvents.pointerdown,\r\n\t\t\t\t\t(ev: MouseEvent) => { this.handleGlobalPointerDown(ev) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener<MouseEvent | PointerEvent>(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\tthis._pointerEvents.pointermove,\r\n\t\t\t\t\t(ev: MouseEvent) => { this.handleGlobalPointerMove(ev) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener<MouseEvent | PointerEvent>(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\tthis._pointerEvents.pointerup,\r\n\t\t\t\t\t(ev: MouseEvent) => { this.handleGlobalPointerUp(ev) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener<MouseEvent | PointerEvent>(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\tthis._pointerEvents.pointercancel,\r\n\t\t\t\t\t(ev: MouseEvent) => { this.handleGlobalPointerUp(ev, true) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener<MouseEvent | PointerEvent>(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\t\"mouseenter\",\r\n\t\t\t\t\t(ev: MouseEvent) => {\r\n\t\t\t\t\t\tif (!$type.hasValue(ev.relatedTarget) && (ev.buttons == 0 || ev.which == 0)) {\r\n\t\t\t\t\t\t\tthis.handleDocumentLeave(ev);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t));\r\n\t\t\t}\r\n\r\n\t\t\t// No need to duplicate events for hubrid systems that support both\r\n\t\t\t// pointer events and touch events. Touch events are need only for\r\n\t\t\t// some touch-only systems, like Mobile Safari.\r\n\t\t\tif (!this._usePointerEventsOnly) {\r\n\t\t\t\tthis._disposers.push(addEventListener(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\t\"touchstart\",\r\n\t\t\t\t\t(ev: TouchEvent) => { this.handleGlobalTouchStart(ev) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\t\"touchmove\",\r\n\t\t\t\t\t(ev: TouchEvent) => { this.handleGlobalTouchMove(ev) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\tthis._disposers.push(addEventListener(\r\n\t\t\t\t\tdocument,\r\n\t\t\t\t\t\"touchend\",\r\n\t\t\t\t\t(ev: TouchEvent) => { this.handleGlobalTouchEnd(ev) }\r\n\t\t\t\t));\r\n\t\t\t}\r\n\r\n\t\t\tthis._disposers.push(addEventListener(\r\n\t\t\t\tdocument,\r\n\t\t\t\t\"keydown\",\r\n\t\t\t\t(ev: KeyboardEvent) => { this.handleGlobalKeyDown(ev) }\r\n\t\t\t));\r\n\r\n\t\t\tthis._disposers.push(addEventListener(\r\n\t\t\t\tdocument,\r\n\t\t\t\t\"keyup\",\r\n\t\t\t\t(ev: KeyboardEvent) => { this.handleGlobalKeyUp(ev) }\r\n\t\t\t));\r\n\r\n\t\t\tthis._globalEventsAdded = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets if [[InteractionObject]] is clickable.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io [[InteractionObject]] instance\r\n\t */\r\n\tpublic processClickable(io: InteractionObject): void {\r\n\t\t// Add or remove touch events\r\n\t\tthis.processTouchable(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets if [[InteractionObject]] will display context menu when right-clicked.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io [[InteractionObject]] instance\r\n\t */\r\n\tpublic processContextMenu(io: InteractionObject): void {\r\n\t\tif (io.contextMenuDisabled) {\r\n\t\t\tif (!io.eventDisposers.hasKey(\"contextMenuDisabled\")) {\r\n\t\t\t\tio.eventDisposers.setKey(\"contextMenuDisabled\",\r\n\t\t\t\t\taddEventListener<MouseEvent | PointerEvent>(io.element, \"contextmenu\", (e) => {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (io.eventDisposers.hasKey(\"contextMenuDisabled\")) {\r\n\t\t\t\tio.eventDisposers.getKey(\"contextMenuDisabled\").dispose();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets if [[InteractionObject]] is hoverable.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io [[InteractionObject]] instance\r\n\t */\r\n\tpublic processHoverable(io: InteractionObject): void {\r\n\t\tif (io.hoverable || io.trackable) {\r\n\r\n\t\t\t// Add global events\r\n\t\t\tthis.addGlobalEvents();\r\n\r\n\t\t\t// Add hover styles\r\n\t\t\tthis.applyCursorOverStyle(io);\r\n\r\n\t\t\t// Add local events\r\n\t\t\tif (!io.eventDisposers.hasKey(\"hoverable\") && this._addHoverEvents) {\r\n\t\t\t\tio.eventDisposers.setKey(\"hoverable\", new MultiDisposer([\r\n\t\t\t\t\taddEventListener<MouseEvent | PointerEvent>(io.element, this._pointerEvents.pointerout, (e) => this.handlePointerOut(io, e)),\r\n\t\t\t\t\taddEventListener<MouseEvent | PointerEvent>(io.element, this._pointerEvents.pointerover, (e) => this.handlePointerOver(io, e))\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\r\n\t\t\tif (io.trackable) {\r\n\t\t\t\t//sprite.addEventListener(\"touchmove\", this.handleTouchMove, false, this);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tconst disposer = io.eventDisposers.getKey(\"hoverable\");\r\n\r\n\t\t\tif (disposer != null) {\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t\tio.eventDisposers.removeKey(\"hoverable\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add or remove touch events\r\n\t\tthis.processTouchable(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up [[InteractionObject]] as movable. Movable can be any\r\n\t * transformation, e.g. drag, swipe, resize, track.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processMovable(io: InteractionObject) {\r\n\r\n\t\t// Add unified events\r\n\t\tif (io.draggable || io.swipeable || io.trackable || io.resizable) {\r\n\r\n\t\t\t// Prep the element\r\n\t\t\tif (!this.isGlobalElement(io) && !io.isTouchProtected) {\r\n\t\t\t\tthis.prepElement(io);\r\n\t\t\t}\r\n\r\n\t\t\t// Add hover styles\r\n\t\t\tthis.applyCursorOverStyle(io);\r\n\r\n\t\t}\r\n\r\n\t\t// Add or remove touch events\r\n\t\tthis.processTouchable(io);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is trackable and sets relative events.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processTrackable(io: InteractionObject): void {\r\n\t\tthis.processHoverable(io);\r\n\t\tthis.processMovable(io);\r\n\t\tif (io.trackable) {\r\n\t\t\tthis.trackedObjects.moveValue(io);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.trackedObjects.removeValue(io);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is draggable.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processDraggable(io: InteractionObject): void {\r\n\t\tthis.processMovable(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is swipeable and sets relative events.\r\n\t *\r\n\t * A swipe event is triggered when a horizontal drag of 75px or more (and\r\n\t * less than 30px vertically) occurs within 700 milliseconds. This can be\r\n\t * overridden in sprites [[swipeOptions]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processSwipeable(io: InteractionObject): void {\r\n\t\tthis.processMovable(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is resizable and attaches required events\r\n\t * to it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processResizable(io: InteractionObject): void {\r\n\t\tthis.processMovable(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is supposed to capture mouse wheel events\r\n\t * and prepares it to catch those events.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processWheelable(io: InteractionObject): void {\r\n\t\tif (io.wheelable) {\r\n\t\t\t//io.hoverable = true;\r\n\t\t\tif (!io.eventDisposers.hasKey(\"wheelable\")) {\r\n\t\t\t\tio.eventDisposers.setKey(\"wheelable\", new MultiDisposer([\r\n\t\t\t\t\taddEventListener<WheelEvent>(\r\n\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\tthis._pointerEvents.wheel,\r\n\t\t\t\t\t\t(e) => this.handleMouseWheel(io, e),\r\n\t\t\t\t\t\tthis._passiveSupported ? { passive: false } : false\r\n\t\t\t\t\t),\r\n\t\t\t\t\tio.events.on(\"out\", (e) => {\r\n\t\t\t\t\t\tif (io.wheelable) {\r\n\t\t\t\t\t\t\tthis.unlockWheel();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tio.events.on(\"over\", (e) => {\r\n\t\t\t\t\t\tif (io.wheelable) {\r\n\t\t\t\t\t\t\tthis.lockWheel();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tconst disposer = io.eventDisposers.getKey(\"wheelable\");\r\n\r\n\t\t\tif (disposer != null) {\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t\tio.eventDisposers.removeKey(\"wheelable\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is focusable. A focusable element is an\r\n\t * element that will be highlighted when users presses TAB key. If the\r\n\t * element is focusable, this function will attach relative focus/blur\r\n\t * events to it.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processFocusable(io: InteractionObject): void {\r\n\t\tif (io.focusable === true && (io.tabindex > -1) && !this._useTouchEventsOnly) {\r\n\t\t\tif (!io.eventDisposers.hasKey(\"focusable\")) {\r\n\t\t\t\tio.eventDisposers.setKey(\"focusable\", new MultiDisposer([\r\n\t\t\t\t\taddEventListener<FocusEvent>(io.element, \"focus\", (e) => this.handleFocus(io, e)),\r\n\t\t\t\t\taddEventListener<FocusEvent>(io.element, \"blur\", (e) => this.handleBlur(io, e)),\r\n\t\t\t\t\taddEventListener<MouseEvent>(\r\n\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\tthis._pointerEvents.pointerdown,\r\n\t\t\t\t\t\t(e) => this.handleFocusBlur(io, e)\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\taddEventListener<TouchEvent>(\r\n\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\t\"touchstart\",\r\n\t\t\t\t\t\t(e) => this.handleFocusBlur(io, e),\r\n\t\t\t\t\t\tthis._passiveSupported ? { passive: false } : false\r\n\t\t\t\t\t)\r\n\t\t\t\t]));\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconst disposer = io.eventDisposers.getKey(\"focusable\");\r\n\r\n\t\t\tif (disposer != null) {\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t\tio.eventDisposers.removeKey(\"focusable\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if [[InteractionObject]] is \"touchable\". It means any interaction\r\n\t * whatsoever: mouse click, touch screen tap, swipe, drag, resize, etc.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t */\r\n\tpublic processTouchable(io: InteractionObject): void {\r\n\r\n\t\t// Add unified events\r\n\t\tif (io.clickable || io.hoverable || io.trackable || io.draggable || io.swipeable || io.resizable) {\r\n\r\n\t\t\t// Add global events\r\n\t\t\tthis.addGlobalEvents();\r\n\r\n\t\t\t// Add local events\r\n\t\t\tif (!io.eventDisposers.hasKey(\"touchable\")) {\r\n\t\t\t\tif (!this._useTouchEventsOnly && !this._usePointerEventsOnly) {\r\n\t\t\t\t\tio.eventDisposers.setKey(\"touchable\", new MultiDisposer([\r\n\r\n\t\t\t\t\t\taddEventListener<MouseEvent>(\r\n\t\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\t\tthis._pointerEvents.pointerdown,\r\n\t\t\t\t\t\t\t(e) => this.handlePointerDown(io, e)\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\taddEventListener<TouchEvent>(\r\n\t\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\t\t\"touchstart\",\r\n\t\t\t\t\t\t\t(e) => this.handleTouchDown(io, e),\r\n\t\t\t\t\t\t\tthis._passiveSupported ? { passive: false } : false\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t]));\r\n\t\t\t\t}\r\n\t\t\t\telse if (!this._useTouchEventsOnly) {\r\n\t\t\t\t\tio.eventDisposers.setKey(\"touchable\",\r\n\t\t\t\t\t\taddEventListener<MouseEvent>(\r\n\t\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\t\tthis._pointerEvents.pointerdown,\r\n\t\t\t\t\t\t\t(e) => this.handlePointerDown(io, e)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse if (!this._usePointerEventsOnly) {\r\n\t\t\t\t\tio.eventDisposers.setKey(\"touchable\",\r\n\t\t\t\t\t\taddEventListener<TouchEvent>(\r\n\t\t\t\t\t\t\tio.element,\r\n\t\t\t\t\t\t\t\"touchstart\",\r\n\t\t\t\t\t\t\t(e) => this.handleTouchDown(io, e),\r\n\t\t\t\t\t\t\tthis._passiveSupported ? { passive: false } : false\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tconst disposer = io.eventDisposers.getKey(\"touchable\");\r\n\r\n\t\t\tif (disposer != null) {\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t\tio.eventDisposers.removeKey(\"touchable\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Non-pointer events\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Dispatches \"focus\" event when element gains focus.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleFocus(io: InteractionObject, ev: FocusEvent): void {\r\n\t\tif (!io.focusable) {\r\n\t\t\tev.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tio.isFocused = true;\r\n\t\tif (io.events.isEnabled(\"focus\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"focus\"] = {\r\n\t\t\t\ttype: \"focus\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"focus\", imev);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Used by regular click events to prevent focus if \"noFocus\" is set.\r\n\t *\r\n\t * This should not be called by \"focus\" handlers.\r\n\t *\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tprivate handleFocusBlur(io: InteractionObject, ev: MouseEvent | TouchEvent): void {\r\n\t\tif (io.focusable !== false && this.getHitOption(io, \"noFocus\")) {\r\n\t\t\tio.events.once(\"focus\", () => {\r\n\t\t\t\tio.events.disableType(\"blur\");\r\n\t\t\t\t$dom.blur();\r\n\t\t\t\tif (io.sprite) {\r\n\t\t\t\t\tio.sprite.handleBlur();\r\n\t\t\t\t}\r\n\t\t\t\tio.events.enableType(\"blur\");\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispatches \"blur\" event when element loses focus.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleBlur(io: InteractionObject, ev: FocusEvent): void {\r\n\t\tif (!io.focusable) {\r\n\t\t\tev.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tio.isFocused = false;\r\n\t\tif (io.events.isEnabled(\"blur\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"blur\"] = {\r\n\t\t\t\ttype: \"blur\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"blur\", imev);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Global keyboard-related even handlers\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Checks if there is an item that has currently focus and that they key is\r\n\t * one of the directional keys. If both of the conditions are true, it\r\n\t * creates an object to simulate movement of dragable element with keyboard.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev An original keyboard event\r\n\t */\r\n\tpublic handleGlobalKeyDown(ev: KeyboardEvent): void {\r\n\r\n\t\tif (this.focusedObject) {\r\n\t\t\tif (keyboard.isKey(ev, \"esc\")) {\r\n\t\t\t\t// ESC removes focus\r\n\t\t\t\t$dom.blur();\r\n\t\t\t}\r\n\t\t\telse if (this.focusedObject.draggable && keyboard.isKey(ev, [\"up\", \"down\", \"left\", \"right\"])) {\r\n\r\n\t\t\t\t// Prevent scrolling of the document\r\n\t\t\t\tev.preventDefault();\r\n\r\n\t\t\t\t// Get focused object\r\n\t\t\t\tlet io = this.focusedObject;\r\n\r\n\t\t\t\t// Get particular key\r\n\t\t\t\tlet disposerKey = \"interactionKeyboardObject\";\r\n\r\n\t\t\t\t// If such disposer already exists we know the event is going on so we\r\n\t\t\t\t// just move on\r\n\t\t\t\tif (io.eventDisposers.hasKey(disposerKey)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create a keyboard mover\r\n\t\t\t\tlet ko = new InteractionKeyboardObject(io, ev);\r\n\t\t\t\tio.eventDisposers.setKey(disposerKey, ko);\r\n\t\t\t\tswitch (keyboard.getEventKey(ev)) {\r\n\t\t\t\t\tcase \"up\":\r\n\t\t\t\t\t\tko.directionY = -1;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"down\":\r\n\t\t\t\t\t\tko.directionY = 1;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"left\":\r\n\t\t\t\t\t\tko.directionX = -1;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"right\":\r\n\t\t\t\t\t\tko.directionX = 1;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispatches related events when the keyboard key is realeasd.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev An original keyboard event\r\n\t */\r\n\tpublic handleGlobalKeyUp(ev: KeyboardEvent): void {\r\n\t\tlet disposerKey = \"interactionKeyboardObject\";\r\n\t\tif (this.focusedObject) {\r\n\t\t\tconst disposer = this.focusedObject.eventDisposers.getKey(disposerKey);\r\n\r\n\t\t\tif (disposer != null) {\r\n\t\t\t\t// Prevent scrolling of the document\r\n\t\t\t\tev.preventDefault();\r\n\r\n\t\t\t\t// Dispose stuff\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t\tthis.focusedObject.eventDisposers.removeKey(disposerKey);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Global pointer-related even handlers\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Handler for a global \"pointermove\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalPointerMove(ev: MouseEvent): void {\r\n\t\t// Get pointer\r\n\t\tlet pointer: IPointer = this.getPointer(ev);\r\n\r\n\t\t// Update current point position\r\n\t\tpointer.point = this.getPointerPoint(ev);\r\n\r\n\t\t// Prepare and fire global event\r\n\t\tif (this.events.isEnabled(\"track\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"track\"] = {\r\n\t\t\t\ttype: \"track\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpointer: pointer,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"track\", imev);\r\n\t\t}\r\n\r\n\t\t// Track\r\n\t\tthis.addBreadCrumb(pointer, pointer.point);\r\n\r\n\t\t// Process further\r\n\t\tthis.handleGlobalMove(pointer, ev);\r\n\t}\r\n\r\n\t/**\r\n\t * Handler for a global \"pointerdown\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalPointerDown(ev: MouseEvent): void {\r\n\r\n\t\t// Remove delayed hovers\r\n\t\tthis.processDelayed();\r\n\r\n\t\t// Get pointer\r\n\t\tlet pointer: IPointer = this.getPointer(ev);\r\n\r\n\t\t// Prepare and fire global event\r\n\t\tif (this.events.isEnabled(\"down\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"down\"] = {\r\n\t\t\t\ttype: \"down\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpointer: pointer,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"down\", imev);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Prevents touch action from firing.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event\r\n\t */\r\n\tpublic preventTouchAction(ev: TouchEvent): void {\r\n\t\tif (!ev.defaultPrevented) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handler for a global \"pointerup\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalPointerUp(ev: MouseEvent, cancelled: boolean = false): void {\r\n\r\n\t\t// Get pointer\r\n\t\tlet pointer: IPointer = this.getPointer(ev);\r\n\r\n\t\t// Prepare and fire global event\r\n\t\tif (this.events.isEnabled(\"up\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"up\"] = {\r\n\t\t\t\ttype: \"up\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpointer: pointer,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"up\", imev);\r\n\t\t}\r\n\r\n\t\t// Process further\r\n\t\tthis.handleGlobalUp(pointer, ev, cancelled);\r\n\r\n\t}\r\n\r\n\t/**\r\n * ==========================================================================\r\n * Global touch-related even handlers\r\n * ==========================================================================\r\n */\r\n\r\n\t/**\r\n\t * Handler for a global \"touchmove\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalTouchMove(ev: TouchEvent): void {\r\n\r\n\t\t// Process each changed touch point\r\n\t\tfor (let i = 0; i < ev.changedTouches.length; i++) {\r\n\t\t\t// Get pointer\r\n\t\t\tlet pointer: IPointer = this.getPointer(ev.changedTouches[i]);\r\n\r\n\t\t\t// Update current point position\r\n\t\t\tpointer.point = this.getPointerPoint(ev.changedTouches[i]);\r\n\r\n\t\t\t// Prepare and fire global event\r\n\t\t\tif (this.events.isEnabled(\"track\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"track\"] = {\r\n\t\t\t\t\ttype: \"track\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"track\", imev);\r\n\t\t\t}\r\n\r\n\t\t\t// Track\r\n\t\t\tthis.addBreadCrumb(pointer, pointer.point);\r\n\r\n\t\t\t// Process further\r\n\t\t\tthis.handleGlobalMove(pointer, ev);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handler for a global \"touchstart\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalTouchStart(ev: TouchEvent): void {\r\n\r\n\t\t// Remove delayed hovers\r\n\t\tthis.processDelayed();\r\n\r\n\t\t// Process each changed touch point\r\n\t\tfor (let i = 0; i < ev.changedTouches.length; i++) {\r\n\r\n\t\t\t// Get pointer\r\n\t\t\tlet pointer: IPointer = this.getPointer(ev.changedTouches[i]);\r\n\r\n\t\t\t// Prepare and fire global event\r\n\t\t\tif (!this._usePointerEventsOnly && this.events.isEnabled(\"down\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"down\"] = {\r\n\t\t\t\t\ttype: \"down\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"down\", imev);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handler for a global \"touchend\" event.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t */\r\n\tpublic handleGlobalTouchEnd(ev: TouchEvent): void {\r\n\r\n\t\t// Process each changed touch point\r\n\t\tfor (let i = 0; i < ev.changedTouches.length; i++) {\r\n\r\n\t\t\t// Get pointer\r\n\t\t\tlet pointer: IPointer = this.getPointer(ev.changedTouches[i]);\r\n\r\n\t\t\t// Prepare and fire global event\r\n\t\t\tif (this.events.isEnabled(\"up\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<this, IInteractionEvents>[\"up\"] = {\r\n\t\t\t\t\ttype: \"up\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"up\", imev);\r\n\t\t\t}\r\n\r\n\t\t\t// Handle element-related events\r\n\t\t\tthis.handleGlobalUp(pointer, ev);\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Element-specific pointer-related even handlers\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Handles event when pointer is over [[InteractionObject]] and button is\r\n\t * pressed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handlePointerDown(io: InteractionObject, ev: MouseEvent | PointerEvent): void {\r\n\r\n\t\t// Stop further propagation so we don't get multiple triggers on hybrid\r\n\t\t// devices (both mouse and touch capabilities)\r\n\t\t//ev.preventDefault();\r\n\t\t//ev.stopPropagation();\r\n\t\t//if (ev.defaultPrevented) {\r\n\t\t//}\r\n\r\n\t\t// Get pointer\r\n\t\tlet pointer = this.getPointer(ev);\r\n\r\n\t\t// Ignore if it's anything but mouse's primary button\r\n\t\tif (!pointer.touch && ev.which != 1 && ev.which != 3) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Set mouse button\r\n\t\tpointer.button = ev.which;\r\n\r\n\t\t// Reset pointer\r\n\t\tthis.resetPointer(pointer, ev);\r\n\r\n\t\t// Process down\r\n\t\tthis.handleDown(io, pointer, ev);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles event when [[InteractionObject]] is hovered by a mouse pointer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handlePointerOver(io: InteractionObject, ev: MouseEvent | PointerEvent): void {\r\n\t\t// Get pointer\r\n\t\tlet pointer = this.getPointer(ev);\r\n\r\n\t\t// Process down\r\n\t\tthis.handleOver(io, pointer, ev);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles event when [[InteractionObject]] loses hover from a mouse pointer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handlePointerOut(io: InteractionObject, ev: MouseEvent | PointerEvent): void {\r\n\r\n\t\t// Get pointer\r\n\t\tlet pointer = this.getPointer(ev);\r\n\r\n\t\t// Process down\r\n\t\tthis.handleOut(io, pointer, ev);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles event when mouse wheel is crolled over the [[InteractionObject]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t * @todo Investigate more-cross browser stuff https://developer.mozilla.org/en-US/docs/Web/Events/wheel\r\n\t */\r\n\tpublic handleMouseWheel(io: InteractionObject, ev: WheelEvent): void {\r\n\r\n\t\t// Get pointer\r\n\t\tlet pointer = this.getPointer(ev);\r\n\r\n\t\t// Update current point position\r\n\t\tpointer.point = this.getPointerPoint(ev);\r\n\r\n\t\t// Init delta values\r\n\t\tlet deltaX: number = 0, deltaY: number = 0;\r\n\r\n\t\t// Set up modifier\r\n\t\t// This is needed because FireFox reports wheel deltas in \"lines\" instead\r\n\t\t// of pixels so we have to approximate pixel value\r\n\t\tlet mod = 1;\r\n\t\tif (ev.deltaMode == 1) {\r\n\t\t\tmod = 50;\r\n\t\t}\r\n\r\n\t\t// Adjust configurable sensitivity\r\n\t\tmod *= this.getMouseOption(io, \"sensitivity\");\r\n\r\n\t\t// Calculate deltas\r\n\t\tif (ev instanceof WheelEvent) {\r\n\t\t\tdeltaX = Math.round((-1 * (<any>ev).wheelDeltaX) || ev.deltaX) * mod;\r\n\t\t\tdeltaY = Math.round((-1 * (<any>ev).wheelDeltaY) || ev.deltaY) * mod;\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid event type\");\r\n\t\t}\r\n\r\n\t\t// Handle the event\r\n\t\tthis.handleWheel(io, pointer, deltaX, deltaY, ev);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Element-specific touch-related even handlers\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Handles an event when an [[InteractionObject]] is touched on a touch\r\n\t * device.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleTouchDown(io: InteractionObject, ev: TouchEvent): void {\r\n\r\n\t\t// Stop further propagation so we don't get multiple triggers on hybrid\r\n\t\t// devices (both mouse and touch capabilities)\r\n\t\t//this.maybePreventDefault(io, ev);\r\n\t\t//return;\r\n\r\n\t\t// Process each changed touch point\r\n\t\tfor (let i = 0; i < ev.changedTouches.length; i++) {\r\n\r\n\t\t\t// Get pointer\r\n\t\t\tlet pointer = this.getPointer(ev.changedTouches[i]);\r\n\t\t\tthis.maybePreventDefault(io, ev, pointer);\r\n\r\n\t\t\t// Reset pointer\r\n\t\t\tthis.resetPointer(pointer, ev.changedTouches[i]);\r\n\r\n\t\t\t// Process down\r\n\t\t\tthis.handleDown(io, pointer, ev);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Universal handlers\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Handles click/tap. Checks for doublehit.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Interaction object\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleHit(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Check if this is a double-hit\r\n\t\tlet now = $time.getTime();\r\n\t\tif (io.lastHit && (io.lastHit >= (now - this.getHitOption(io, \"doubleHitTime\")))) {\r\n\r\n\t\t\t// Yup - it's a double-hit\r\n\r\n\t\t\t// Cancel the hit\r\n\t\t\t//clearTimeout(io.lastHitPointer.hitTimeout);\r\n\r\n\t\t\t// If it happened too fast it probably means that hybrid device just\r\n\t\t\t// generated two events for the same tap\r\n\t\t\tif ((now - io.lastHit) < 100) {\r\n\t\t\t\t// Ignore\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Clear last hit\r\n\t\t\tio.lastHit = undefined;\r\n\t\t\tio.lastHitPointer = undefined;\r\n\r\n\t\t\t// Dispatch event\r\n\t\t\tif (io.events.isEnabled(\"doublehit\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"doublehit\"] = {\r\n\t\t\t\t\ttype: \"doublehit\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"doublehit\", imev);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\t// Log last hit\r\n\t\t\tio.lastHit = now;\r\n\t\t\tio.lastHitPointer = pointer;\r\n\r\n\t\t\tif (pointer.button === 3) {\r\n\t\t\t\t// Execute HIT now\r\n\t\t\t\tif (io.events.isEnabled(\"rightclick\") && !system.isPaused) {\r\n\t\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"rightclick\"] = {\r\n\t\t\t\t\t\ttype: \"rightclick\",\r\n\t\t\t\t\t\ttarget: io,\r\n\t\t\t\t\t\tevent: ev\r\n\t\t\t\t\t}\r\n\t\t\t\t\tio.events.dispatchImmediately(\"rightclick\", imev);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (io.events.isEnabled(\"hit\") && !system.isPaused) {\r\n\t\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"hit\"] = {\r\n\t\t\t\t\t\ttype: \"hit\",\r\n\t\t\t\t\t\ttarget: io,\r\n\t\t\t\t\t\tevent: ev,\r\n\t\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t\t};\r\n\t\t\t\t\tio.events.dispatchImmediately(\"hit\", imev);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer hovering over [[InteractionObject]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Interaction object\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t * @param soft Invoked by helper function\r\n\t */\r\n\tpublic handleOver(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent, soft: boolean = false): void {\r\n\r\n\t\tif (!io.hoverable) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Remove any delayed outs\r\n\t\tthis.processDelayed();\r\n\r\n\t\t// Add pointer\r\n\t\tio.overPointers.moveValue(pointer);\r\n\r\n\t\t// Check if object is not yet hovered\r\n\t\tif (!io.isRealHover) {\r\n\r\n\t\t\t// Set element as hovered\r\n\t\t\tio.isHover = true;\r\n\t\t\tio.isRealHover = true;\r\n\t\t\tthis.overObjects.moveValue(io);\r\n\r\n\t\t\t// Generate body track event. This is needed so that if element loads\r\n\t\t\t// under unmoved mouse cursor, we still need all the actions that are\r\n\t\t\t// required to happen to kick in.\r\n\t\t\tthis.handleTrack(this.body, pointer, ev, true);\r\n\r\n\t\t\t// Event\r\n\t\t\tif (io.events.isEnabled(\"over\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"over\"] = {\r\n\t\t\t\t\ttype: \"over\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"over\", imev);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles when [[InteractionObject]] is no longer hovered.\r\n\t *\r\n\t * If `soft = true`, this means that method is being invoked by some other\r\n\t * code, not hard \"out\" function, like `handleUp` which implies we need to\r\n\t * run additional checks before unhovering the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Interaction object\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t * @param soft Invoked by helper function\r\n\t * @param force Force imediate out\r\n\t */\r\n\tpublic handleOut(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent, soft: boolean = false, force: boolean = false): void {\r\n\r\n\t\tif (!io.hoverable) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Remove pointer\r\n\t\tio.overPointers.removeValue(pointer);\r\n\r\n\t\t// Check if element is still hovered\r\n\t\tif (io.isHover && (!io.hasDelayedOut || force)) {\r\n\r\n\r\n\t\t\t// Should we run additional checks?\r\n\t\t\tif (soft && io.overPointers.length) {\r\n\t\t\t\t// There are still pointers hovering - don't do anything else and\r\n\t\t\t\t// wait until either no over pointers are there or we get a hard out\r\n\t\t\t\t// event.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Should we delay \"out\" if this is happening on a touch device?\r\n\t\t\tif (pointer.touch && !force && !this.old(pointer)) {\r\n\r\n\t\t\t\t// This is a touch pointer, and it hasn't moved, let's pretend\r\n\t\t\t\t// the object is still hovered, and act as per \"behavior\" setting\r\n\t\t\t\tlet behavior = this.getHoverOption(io, \"touchOutBehavior\");\r\n\t\t\t\tif (behavior == \"leave\") {\r\n\t\t\t\t\t// Set to \"leave\", so we do not execute any \"out\" event.\r\n\t\t\t\t\t// It will be handled by any other interaction that happens\r\n\t\t\t\t\t// afterwards.\r\n\t\t\t\t\tthis._delayedEvents.out.push({\r\n\t\t\t\t\t\ttype: \"out\",\r\n\t\t\t\t\t\tio: io,\r\n\t\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\t\tevent: ev,\r\n\t\t\t\t\t\tkeepUntil: $time.getTime() + 500\r\n\t\t\t\t\t});\r\n\t\t\t\t\tio.hasDelayedOut = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse if (behavior == \"delay\" && this.getHoverOption(io, \"touchOutDelay\")) {\r\n\t\t\t\t\tthis._delayedEvents.out.push({\r\n\t\t\t\t\t\ttype: \"out\",\r\n\t\t\t\t\t\tio: io,\r\n\t\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\t\tevent: ev,\r\n\t\t\t\t\t\tkeepUntil: $time.getTime() + 500,\r\n\t\t\t\t\t\ttimeout: this.setTimeout(() => {\r\n\t\t\t\t\t\t\tthis.handleOut(io, pointer, ev, true);\r\n\t\t\t\t\t\t}, this.getHoverOption(io, \"touchOutDelay\"))\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Nothing for \"remove\" - that's how it works \"out-of-the-box\"\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Set element as not hovered\r\n\t\t\tio.isHover = false;\r\n\t\t\tthis.overObjects.removeValue(io);\r\n\r\n\t\t\t// Invoke event\r\n\t\t\tif (io.events.isEnabled(\"out\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"out\"] = {\r\n\t\t\t\t\ttype: \"out\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"out\", imev);\r\n\t\t\t}\r\n\r\n\t\t\t// Reset object from lefover delayed outs, pointers\r\n\t\t\tio.overPointers.clear();\r\n\t\t\tio.hasDelayedOut = false;\r\n\t\t\t// @todo (clean delayed)\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Processes dalyed events, such as \"out\" event that was initiated for\r\n\t * elements by touch.\r\n\t */\r\n\tprivate processDelayed(): void {\r\n\t\tlet delayedEvent;\r\n\r\n\t\twhile (true) {\r\n\t\t\tdelayedEvent = this._delayedEvents.out.pop();\r\n\r\n\t\t\tif (!delayedEvent) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (delayedEvent.timeout) {\r\n\t\t\t\tdelayedEvent.timeout.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.handleOut(delayedEvent.io, delayedEvent.pointer, delayedEvent.event, false, true);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Performs tasks on pointer down.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleDown(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent | undefined): void {\r\n\r\n\t\t// Need to prevent default event from happening on transformable objects\r\n\t\tthis.maybePreventDefault(io, ev, pointer);\r\n\r\n\t\t// Stop inertia animations if they're currently being played out\r\n\t\tif (io.inert) {\r\n\t\t\tthis.stopInertia(io);\r\n\t\t}\r\n\r\n\t\t// Trigger hover because some touch devices won't trigger over events\r\n\t\t// on their own\r\n\t\tthis.handleOver(io, pointer, ev, true);\r\n\r\n\t\t// Add pointer to list\r\n\t\tio.downPointers.moveValue(pointer);\r\n\r\n\t\t// Apply styles if necessary\r\n\t\tthis.applyCursorDownStyle(io, pointer);\r\n\r\n\t\t// Check if object is already down\r\n\t\tif (!io.isDown) {\r\n\r\n\t\t\t// Lose focus if needed\r\n\t\t\tif (io.focusable !== false && this.getHitOption(io, \"noFocus\") && this.focusedObject) {\r\n\t\t\t\t$dom.blur();\r\n\t\t\t}\r\n\r\n\t\t\t// Set object as hovered\r\n\t\t\tio.isDown = true;\r\n\t\t\tthis.downObjects.moveValue(io);\r\n\r\n\t\t\t// Prep object for dragging and/or resizing\r\n\t\t\tif (io.draggable) {\r\n\t\t\t\tthis.processDragStart(io, pointer, ev);\r\n\t\t\t}\r\n\t\t\tif (io.resizable) {\r\n\t\t\t\tthis.processResizeStart(io, pointer, ev);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// Dispatch \"down\" event\r\n\t\tif (io.events.isEnabled(\"down\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"down\"] = {\r\n\t\t\t\ttype: \"down\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpointer: pointer,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"down\", imev);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Performs tasks on pointer up.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleGlobalUp(pointer: IPointer, ev: MouseEvent | TouchEvent | undefined, cancelled: boolean = false): void {\r\n\t\tconst sorted = this.downObjects.values.slice();\r\n\r\n\t\tsorted.sort((x, y) => {\r\n\t\t\tif (x && y) {\r\n\t\t\t\tconst pos = x.element.compareDocumentPosition(y.element);\r\n\r\n\t\t\t\tif (pos & Node.DOCUMENT_POSITION_CONTAINED_BY) {\r\n\t\t\t\t\treturn 1;\r\n\r\n\t\t\t\t} else if (pos & Node.DOCUMENT_POSITION_CONTAINS) {\r\n\t\t\t\t\treturn -1;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Process all down objects\r\n\t\t$array.each(sorted, (io) => {\r\n\t\t\t// Check if this particular pointer is pressing down\r\n\t\t\t// on object\r\n\t\t\tif (io && io.downPointers.contains(pointer)) {\r\n\t\t\t\tthis.handleUp(io, pointer, ev, cancelled);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates all pointers being up once mouse leaves document area.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleDocumentLeave(ev: MouseEvent): void {\r\n\r\n\t\t// Process all down objects\r\n\t\t$iter.each(this.downObjects.backwards().iterator(), (io) => {\r\n\t\t\tio.downPointers.each((pointer) => {\r\n\t\t\t\tthis.handleUp(io, pointer, ev);\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles when [[InteractionObject]] is no longer hovered.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Interaction object\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleUp(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent, cancelled: boolean = false): void {\r\n\r\n\t\t// Restore cursor style\r\n\t\tthis.restoreCursorDownStyle(io, pointer);\r\n\r\n\t\t// Remove pointer from the list\r\n\t\tio.downPointers.removeValue(pointer);\r\n\r\n\t\t// Trigger out because some touch devices won't trigger out events\r\n\t\t// on their own\r\n\t\tif (pointer.touch || this._useTouchEventsOnly) {\r\n\t\t\tthis.handleOut(io, pointer, ev, true);\r\n\t\t}\r\n\r\n\t\t// Check if object still down\r\n\t\tif (io.isDown) {\r\n\r\n\t\t\t// Check if there are no other pointers hovering this element\r\n\t\t\tif (io.downPointers.length == 0) {\r\n\t\t\t\t// Set element as no longer down\r\n\t\t\t\tio.isDown = false;\r\n\t\t\t\tthis.downObjects.removeValue(io);\r\n\t\t\t}\r\n\r\n\t\t\t// Dispatch \"up\" event\r\n\t\t\tif (io.events.isEnabled(\"up\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"up\"] = {\r\n\t\t\t\t\ttype: \"up\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpointer: pointer,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"up\", imev);\r\n\t\t\t}\r\n\r\n\t\t\t// Check if this was not a cancelled event.\r\n\t\t\t// If event was canelled (which might happen if gesture resulted in\r\n\t\t\t// navigation or page scroll) there's no point in triggering hit and\r\n\t\t\t// other actions.\r\n\t\t\tif (!cancelled) {\r\n\r\n\t\t\t\t// Handle swiping-related stuff\r\n\t\t\t\tif (io.swipeable && this.swiped(io, pointer)) {\r\n\t\t\t\t\t// Swiped - nothing else should happen\r\n\t\t\t\t\tthis.handleSwipe(io, pointer, ev);\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// Check if it maybe a click\r\n\t\t\t\t\tif (io.clickable && !this.moved(pointer, this.getHitOption(io, \"hitTolerance\"))) {\r\n\t\t\t\t\t\tthis.handleHit(io, pointer, ev);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Handle inertia\r\n\t\t\t\t\tif (io.inert && this.moved(pointer, this.getHitOption(io, \"hitTolerance\"))) {\r\n\t\t\t\t\t\tthis.handleInertia(io, pointer);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (io.draggable) {\r\n\t\t\t\t\t\tthis.processDragStop(io, pointer, ev);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (io.resizable) {\r\n\t\t\t\t\t\tthis.processResizeStop(io, pointer, ev);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if event needs to be prevented on draggable and such items, so that\r\n\t * touch gestures like navigation and scroll do not kick in.\r\n\t *\r\n\t * @param io Object\r\n\t * @param ev Event\r\n\t */\r\n\tprivate maybePreventDefault(io: InteractionObject, ev: MouseEvent | TouchEvent | undefined, pointer?: IPointer): void {\r\n\t\tif (\r\n\t\t\t$type.hasValue(ev)\r\n\t\t\t&& (io.draggable || io.swipeable || io.trackable || io.resizable)\r\n\t\t\t&& !this.isGlobalElement(io)\r\n\t\t\t&& ev.cancelable !== false\r\n\t\t\t&& (!io.isTouchProtected || !pointer || !pointer.touch)\r\n\t\t) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer move.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleGlobalMove(pointer: IPointer, ev: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Process hovered elements\r\n\t\t// We check if the element became unhovered without reporting the mouseout\r\n\t\t// event. (it happens in some cases)\r\n\t\tif (!pointer.touch) {\r\n\t\t\tconst target = <HTMLElement>$dom.eventTarget(<Event>pointer.lastEvent);\r\n\r\n\t\t\t$iter.each(this.overObjects.backwards().iterator(), (io) => {\r\n\t\t\t\t// Is this pointer relevant to element?\r\n\t\t\t\tif (io && io.overPointers.contains(pointer) && io.hoverable) {\r\n\t\t\t\t\t// Check if the element is still hovered\r\n\t\t\t\t\tlet reset = false;\r\n\t\t\t\t\tif (io.element && pointer.lastEvent) {\r\n\t\t\t\t\t\tif (!$dom.contains(io.element, target)) {\r\n\t\t\t\t\t\t\treset = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treset = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (reset) {\r\n\t\t\t\t\t\tthis.handleOut(io, pointer, ev, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t// Process down elements\r\n\t\t$iter.each(this.transformedObjects.backwards().iterator(), (io) => {\r\n\t\t\t// Is this pointer relevant to element?\r\n\t\t\tif (io.downPointers.contains(pointer) &&\r\n\t\t\t\t// Swipe still happening?\r\n\t\t\t\t!(io.swipeable && this.swiping(io, pointer)) &&\r\n\t\t\t\t(io.draggable || io.resizable)) {\r\n\t\t\t\tthis.handleTransform(io, ev);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Process tracked elements\r\n\t\t$iter.each(this.trackedObjects.backwards().iterator(), (io) => {\r\n\t\t\t// Is this pointer relevant to element?\r\n\t\t\tif (!io.overPointers.contains(pointer)) {\r\n\t\t\t\tthis.handleTrack(io, pointer, ev);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Handles reporting of pointer movement.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t * @param skipCheck Sould we skip check if cursor actually moved\r\n\t */\r\n\tpublic handleTrack(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent, skipCheck = false): void {\r\n\r\n\t\t// Do nothing if the cursor did not actually move\r\n\t\tif (!skipCheck && !this.moved(pointer, 0)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Initiate TRACK event\r\n\t\tif (io.events.isEnabled(\"track\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"track\"] = {\r\n\t\t\t\ttype: \"track\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpoint: pointer.point,\r\n\t\t\t\tpointer: pointer,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"track\", imev);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles swipe action.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleSwipe(io: InteractionObject, pointer: IPointer, ev: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// We pass in InteractionEvent with shift in mouse coordinates\r\n\t\t// between when the drag started and ended\r\n\t\tif (io.events.isEnabled(\"swipe\") && !system.isPaused) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"swipe\"] = {\r\n\t\t\t\ttype: \"swipe\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\ttouch: pointer.touch\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"swipe\", imev);\r\n\t\t}\r\n\r\n\t\tif (pointer.startPoint.x < pointer.point.x) {\r\n\t\t\tif (io.events.isEnabled(\"swiperight\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"swiperight\"] = {\r\n\t\t\t\t\ttype: \"swiperight\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"swiperight\", imev);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (io.events.isEnabled(\"swipeleft\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"swipeleft\"] = {\r\n\t\t\t\t\ttype: \"swipeleft\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\ttouch: pointer.touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"swipeleft\", imev);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles event triggering for wheel rotation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param deltaX Horizontal shift\r\n\t * @param deltaY Vertical shift\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleWheel(io: InteractionObject, pointer: IPointer, deltaX: number, deltaY: number, ev: WheelEvent): void {\r\n\t\tconst shift: IPoint = {\r\n\t\t\tx: deltaX,\r\n\t\t\ty: deltaY\r\n\t\t};\r\n\r\n\t\t// Trigger generic WHEEL event\r\n\t\tif (io.events.isEnabled(\"wheel\") && !system.isPaused) {\r\n\t\t\tio.events.dispatchImmediately(\"wheel\", {\r\n\t\t\t\ttype: \"wheel\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tpoint: pointer.point,\r\n\t\t\t\tshift: shift\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Trigger direction-specific events\r\n\r\n\t\t// Horizontal\r\n\t\tif (deltaX < 0) {\r\n\t\t\tif (io.events.isEnabled(\"wheelleft\") && !system.isPaused) {\r\n\t\t\t\tio.events.dispatchImmediately(\"wheelleft\", {\r\n\t\t\t\t\ttype: \"wheelleft\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\tshift: shift\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t} else if (deltaX > 0) {\r\n\t\t\tif (io.events.isEnabled(\"swiperight\") && !system.isPaused) {\r\n\t\t\t\tio.events.dispatchImmediately(\"wheelright\", {\r\n\t\t\t\t\ttype: \"wheelright\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\tshift: shift\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Vertical\r\n\t\t} else if (deltaY < 0) {\r\n\t\t\tif (io.events.isEnabled(\"wheelup\") && !system.isPaused) {\r\n\t\t\t\tio.events.dispatchImmediately(\"wheelup\", {\r\n\t\t\t\t\ttype: \"wheelup\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\tshift: shift\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t} else if (deltaY > 0) {\r\n\t\t\tif (io.events.isEnabled(\"wheeldown\") && !system.isPaused) {\r\n\t\t\t\tio.events.dispatchImmediately(\"wheeldown\", {\r\n\t\t\t\t\ttype: \"wheeldown\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tpoint: pointer.point,\r\n\t\t\t\t\tshift: shift\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates inertia checking sub-routines for different movement types:\r\n\t * drag, resize.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param sprite\r\n\t * @param pointer\r\n\t */\r\n\tpublic handleInertia(io: InteractionObject, pointer: IPointer): void {\r\n\r\n\t\tif (io.draggable && io.downPointers.length === 0) {\r\n\t\t\tthis.handleMoveInertia(io, pointer);\r\n\t\t}\r\n\r\n\t\tif (io.resizable && io.downPointers.length > 1) {\r\n\t\t\tthis.handleResizeInertia(io, pointer);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Continues moving the element to simulate the effect of inertia. Happens\r\n\t * when `inert` and `draggable` object is dragged and then released.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic handleMoveInertia(io: InteractionObject, pointer: IPointer): void {\r\n\t\tlet interaction = io;\r\n\t\tlet type: \"move\" = \"move\";\r\n\t\tlet point = {\r\n\t\t\t\"x\": pointer.point.x,\r\n\t\t\t\"y\": pointer.point.y\r\n\t\t};\r\n\t\tlet startPoint = {\r\n\t\t\t\"x\": pointer.startPoint.x,\r\n\t\t\t\"y\": pointer.startPoint.y\r\n\t\t};\r\n\r\n\t\t// Init inertia object\r\n\t\tlet inertia = new Inertia(interaction, type, point, startPoint);\r\n\r\n\t\t// Get inertia data\r\n\t\tlet ref = this.getTrailPoint(pointer, $time.getTime() - this.getInertiaOption(io, \"move\", \"time\"));\r\n\t\tif (typeof ref === \"undefined\") {\r\n\t\t\tthis.processDragStop(io, pointer, pointer.lastUpEvent);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Init animation options\r\n\t\tlet factor = this.getInertiaOption(io, \"move\", \"factor\");\r\n\t\tlet animationOptions = [{\r\n\t\t\t\"to\": pointer.point.x + (pointer.point.x - ref.point.x) * factor,\r\n\t\t\t\"property\": \"x\"\r\n\t\t}, {\r\n\t\t\t\"to\": pointer.point.y + (pointer.point.y - ref.point.y) * factor,\r\n\t\t\t\"property\": \"y\"\r\n\t\t}];\r\n\r\n\t\t// Start animation\r\n\t\tlet animation: Animation = new Animation(\r\n\t\t\tinertia,\r\n\t\t\tanimationOptions,\r\n\t\t\tthis.getInertiaOption(io, \"move\", \"duration\"),\r\n\t\t\tthis.getInertiaOption(io, \"move\", \"easing\")\r\n\t\t).start();\r\n\t\tthis._disposers.push(animation.events.on(\"animationended\", (ev) => {\r\n\t\t\tinertia.done();\r\n\t\t}));\r\n\r\n\t\t// Add inertia object\r\n\t\tio.inertias.setKey(\"move\", inertia);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Continues resizing of a `resizable` element after it is resized and\r\n\t * released.\r\n\t *\r\n\t * **NOTE:** this is is just a placeholder function. No actual fucntionality\r\n\t * is implemented, yet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic handleResizeInertia(io: InteractionObject, pointer: IPointer): void {\r\n\r\n\t\t// Some day, folks. Some day...\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Recalculates element's position and size based on position of\r\n\t * all its related pointers.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic handleTransform(io: InteractionObject, ev: MouseEvent | TouchEvent): void {\r\n\r\n\r\n\t\t// Get primary pointer and its respective points\r\n\t\tlet pointer1: $type.Optional<IPointer> = io.downPointers.getIndex(0);\r\n\t\tlet point1: IPoint = null;\r\n\t\tlet startPoint1: IPoint = null;\r\n\r\n\t\tif (pointer1) {\r\n\t\t\tpoint1 = pointer1.point;\r\n\t\t\tstartPoint1 = pointer1.startPoint;\r\n\t\t}\r\n\r\n\t\t// Init secondary pointer\r\n\t\tlet pointer2: $type.Optional<IPointer>;\r\n\t\tlet point2: IPoint;\r\n\t\tlet startPoint2: IPoint;\r\n\r\n\t\t// Use center of the sprite to simulate \"second\" point of touch\r\n\t\tpoint2 = {\r\n\t\t\t\"x\": io.originalPosition.x,\r\n\t\t\t\"y\": io.originalPosition.y\r\n\t\t};\r\n\t\tstartPoint2 = point2;\r\n\r\n\t\t// Determine if it's a sinngle pointer or multi\r\n\t\tlet singlePoint: boolean = true;\r\n\t\tfor (let i = 1; i < io.downPointers.length; i++) {\r\n\r\n\t\t\t// Get pointer\r\n\t\t\tlet nextPointer = io.downPointers.getIndex(i);\r\n\r\n\t\t\t// Doublecheck if it's not the same pointer by comparing original position\r\n\t\t\tif (startPoint1.x != nextPointer.startPoint.x && startPoint1.y != nextPointer.startPoint.y) {\r\n\r\n\t\t\t\t// Several pointers down\r\n\t\t\t\tsinglePoint = false;\r\n\r\n\t\t\t\t// Get second pointer\r\n\t\t\t\tpointer2 = nextPointer;\r\n\t\t\t\tpoint2 = pointer2.point;\r\n\t\t\t\tstartPoint2 = pointer2.startPoint;\r\n\r\n\t\t\t\t// Stop looking\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Primary touch point moved?\r\n\t\tlet pointer1Moved = pointer1 && this.moved(pointer1, 0);\r\n\r\n\t\t// Report DRAG_START if necessary\r\n\t\tif (io.draggable && pointer1 && pointer1.dragStartEvents && pointer1.dragStartEvents.length && pointer1Moved) {\r\n\t\t\tif (io.events.isEnabled(\"dragstart\") && !system.isPaused) {\r\n\t\t\t\tio.events.dispatchImmediately(\"dragstart\", pointer1.dragStartEvents.shift());\r\n\t\t\t}\r\n\t\t\t//delete pointer1.dragStartEvents;\r\n\t\t}\r\n\r\n\t\t// Determine what we do in order of superiority\r\n\t\tif (singlePoint && io.draggable) {\r\n\r\n\t\t\t// We have only one pointer and the Sprite is draggable\r\n\t\t\t// There's nothing else to be done - just move it\r\n\t\t\tthis.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved, pointer1.touch);\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\t// Check if second touch point moved\r\n\t\t\tlet pointer2Moved = pointer2 && this.moved(pointer2, 0);\r\n\r\n\t\t\tif (io.draggable && io.resizable) {\r\n\t\t\t\t//this.handleTransformAll(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved);\r\n\t\t\t\tthis.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n\t\t\t\tthis.handleTransformResize(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\tif (io.draggable) {\r\n\t\t\t\t\tthis.handleTransformMove(io, point1, startPoint1, ev, pointer1Moved, pointer1.touch);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (io.resizable && (!singlePoint || ev.ctrlKey)) {\r\n\t\t\t\t\tthis.handleTransformResize(io, point1, startPoint1, point2, startPoint2, ev, pointer1Moved && pointer2Moved, pointer1.touch);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles movement of the dragged element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param point Current point of the pointer\r\n\t * @param startPoint Starting point of the pointer\r\n\t * @param ev Original event\r\n\t * @param pointerMoved Did pointer move?\r\n\t */\r\n\tpublic handleTransformMove(io: InteractionObject, point: IPoint, startPoint: IPoint, ev: MouseEvent | TouchEvent | KeyboardEvent, pointerMoved: boolean, touch: boolean): void {\r\n\r\n\t\tif (pointerMoved) {\r\n\t\t\tif (io.events.isEnabled(\"drag\") && !system.isPaused && (!io.isTouchProtected || !touch)) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"drag\"] = {\r\n\t\t\t\t\ttype: \"drag\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\tevent: ev,\r\n\t\t\t\t\tshift: {\r\n\t\t\t\t\t\t\"x\": point.x - startPoint.x,\r\n\t\t\t\t\t\t\"y\": point.y - startPoint.y\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstartPoint: startPoint,\r\n\t\t\t\t\tpoint: point,\r\n\t\t\t\t\ttouch: touch\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"drag\", imev);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles resizing of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param point1 Current position of reference point #1\r\n\t * @param startPoint1 Original position of reference point #1\r\n\t * @param point2 Current position of reference point #2\r\n\t * @param startPoint2 Original position of reference point #2\r\n\t * @param ev Original event\r\n\t * @param pointerMoved Did pointer move?\r\n\t */\r\n\tpublic handleTransformResize(io: InteractionObject, point1: IPoint, startPoint1: IPoint, point2: IPoint, startPoint2: IPoint, ev: MouseEvent | TouchEvent, pointerMoved: boolean, touch: boolean): void {\r\n\t\tif (io.events.isEnabled(\"resize\") && !system.isPaused && (!io.isTouchProtected || !touch)) {\r\n\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"resize\"] = {\r\n\t\t\t\ttype: \"resize\",\r\n\t\t\t\ttarget: io,\r\n\t\t\t\tevent: ev,\r\n\t\t\t\tscale: $math.getScale(point1, startPoint1, point2, startPoint2),\r\n\t\t\t\tstartPoint1: startPoint1,\r\n\t\t\t\tpoint1: point1,\r\n\t\t\t\tstartPoint2: startPoint2,\r\n\t\t\t\tpoint2: point2,\r\n\t\t\t\ttouch: touch\r\n\t\t\t};\r\n\t\t\tio.events.dispatchImmediately(\"resize\", imev);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handles all the preparations of the element when it starts to be dragged.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic processDragStart(io: InteractionObject, pointer?: IPointer, ev?: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Add to draggedObjects\r\n\t\tthis.transformedObjects.moveValue(io);\r\n\r\n\t\t// Report \"dragstart\"\r\n\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"dragstart\"] = {\r\n\t\t\ttype: \"dragstart\",\r\n\t\t\ttarget: io,\r\n\t\t\tevent: ev,\r\n\t\t\ttouch: pointer ? pointer.touch : false\r\n\t\t};\r\n\r\n\t\t// Log object that we are starting to drag, so we can check against and\r\n\t\t// avoid hovers on other objects that might be in the path of movement.\r\n\t\tif (pointer) {\r\n\t\t\tpointer.dragTarget = io;\r\n\t\t\t//pointer.startPoint = pointer.point;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * If pointer is set we will not fire the event until the pointer has\r\n\t\t * actually moved. If it's not set we don't have to wait for anything, so we\r\n\t\t * just fire off the event right away.\r\n\t\t */\r\n\t\tif (pointer && pointer.dragStartEvents) {\r\n\t\t\tpointer.dragStartEvents.push(imev);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (!system.isPaused) {\r\n\t\t\t\tio.dispatchImmediately(\"dragstart\", imev);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Finishes up element drag operation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic processDragStop(io: InteractionObject, pointer?: IPointer, ev?: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Pointer set?\r\n\t\tif (!pointer) {\r\n\t\t\tpointer = this.getDragPointer(io);\r\n\t\t}\r\n\r\n\t\t// Unset drag object\r\n\t\tif (pointer) {\r\n\t\t\tpointer.dragTarget = undefined;\r\n\t\t}\r\n\r\n\t\t// Removed from transformedObjects\r\n\t\tthis.transformedObjects.removeValue(io);\r\n\r\n\t\t// Unlock document\r\n\t\t//this.unlockDocument();\r\n\r\n\t\t// Report dragstop\r\n\t\tif (!pointer || this.moved(pointer, 0)) {\r\n\t\t\tif (io.events.isEnabled(\"dragstop\") && !system.isPaused) {\r\n\t\t\t\tlet imev: AMEvent<InteractionObject, IInteractionObjectEvents>[\"dragstop\"] = {\r\n\t\t\t\t\ttype: \"dragstop\",\r\n\t\t\t\t\ttarget: io,\r\n\t\t\t\t\ttouch: pointer ? pointer.touch : false\r\n\t\t\t\t};\r\n\t\t\t\tio.events.dispatchImmediately(\"dragstop\", imev);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles all the preparations of the element when it starts to be resized.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic processResizeStart(io: InteractionObject, pointer?: IPointer, ev?: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Add to draggedObjects\r\n\t\tthis.transformedObjects.moveValue(io);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Finishes up element drag operation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @param ev Original event\r\n\t */\r\n\tpublic processResizeStop(io: InteractionObject, pointer?: IPointer, ev?: MouseEvent | TouchEvent): void {\r\n\r\n\t\t// Removed from transformedObjects\r\n\t\tthis.transformedObjects.removeValue(io);\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Controls for InteractionObjects initiating directly\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Manually triggers drag start on the element. Could be useful in cases\r\n\t * where tracking or dragging one element can also influence dragging another\r\n\t * element.\r\n\t *\r\n\t * Passing in `pointer` reference is advisable. If not passed in it will try\r\n\t * to determine which pointer to attach to. However, it's better to specify\r\n\t * it explicitly.\r\n\t *\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic dragStart(io: InteractionObject, pointer?: IPointer): void {\r\n\t\tif (!pointer) {\r\n\t\t\tpointer = this.getDragPointer(io);\r\n\t\t}\r\n\r\n\t\tif (pointer) {\r\n\t\t\tthis.handleDown(io, pointer, pointer.lastDownEvent);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Manually ends drag on the element.\r\n\t *\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic dragStop(io: InteractionObject, pointer?: IPointer, cancelled?: boolean): void {\r\n\t\tif (!pointer) {\r\n\t\t\tpointer = this.getDragPointer(io);\r\n\t\t}\r\n\r\n\t\tif (pointer && !cancelled) {\r\n\t\t\tthis.handleGlobalUp(pointer, pointer.lastUpEvent, cancelled);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This method uses a fuzzy logic to find the pointer to be used for dragging.\r\n\t * Beware that this is not a rock-solid solution. If there are a few objects\r\n\t * being dragged at the same time, you may get unexepected results.\r\n\t *\r\n\t * @param io InteractionObject to get pointers from\r\n\t * @return Pointer currently being used for dragging\r\n\t */\r\n\tpublic getDragPointer(io?: InteractionObject): $type.Optional<IPointer> {\r\n\t\tif (io) {\r\n\t\t\t// InteractionObject is supplied\r\n\t\t\t// Use it's first down pointer\r\n\t\t\treturn io.downPointers.getIndex(0);\r\n\t\t}\r\n\t\telse if (this.transformedObjects.length) {\r\n\t\t\t// Use first dragged object\r\n\t\t\treturn this.getDragPointer(this.transformedObjects.getIndex(0));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * Utils\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Returns pointer id for the given event object.\r\n\t *\r\n\t * @param ev Event\r\n\t * @return Pointer ID\r\n\t */\r\n\tprotected getPointerId(ev: any): string {\r\n\t\tlet id = \"\";\r\n\t\tif ($type.hasValue(ev.identifier)) {\r\n\t\t\tid = \"\" + <string>ev.identifier;\r\n\t\t} else if ($type.hasValue(ev.pointerId)) {\r\n\t\t\tid = \"\" + <string>ev.pointerId;\r\n\t\t} else {\r\n\t\t\tid = \"m\";\r\n\t\t}\r\n\t\treturn id.replace(\"-\", \"\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a cursor position of the event.\r\n\t *\r\n\t * @param ev Original event\r\n\t * @return Event point\r\n\t */\r\n\tprotected getPointerPoint(ev: MouseEvent | Touch): IPoint {\r\n\t\treturn {\r\n\t\t\t\"x\": ev.clientX,\r\n\t\t\t\"y\": ev.clientY\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Returns [[Pointer]] object that is associated with the Event.\r\n\t *\r\n\t * If no such [[Pointer]] object exists, it is created.\r\n\t *\r\n\t * @param ev Event\r\n\t * @return Pointer\r\n\t */\r\n\tprotected getPointer(ev: MouseEvent | Touch): IPointer {\r\n\r\n\t\t// Get pointer id\r\n\t\tlet id = this.getPointerId(ev);\r\n\r\n\t\t// Get current coordinates\r\n\t\tlet point = this.getPointerPoint(ev);\r\n\r\n\t\t// Look for the pointer in the Dictionary if it maybe already exists\r\n\t\tlet pointer: IPointer;\r\n\t\tif (this.pointers.hasKey(id)) {\r\n\r\n\t\t\t// We already have such pointer\r\n\t\t\tpointer = this.pointers.getKey(id)!;\r\n\r\n\t\t\t// We need this, because Edge reuses pointer ids across touch and mouse\r\n\t\t\tpointer.touch = this.isPointerTouch(ev);\r\n\r\n\t\t\t// Reset pointer\r\n\t\t\t//pointer.point = point;\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Init pointer\r\n\t\t\tpointer = {\r\n\t\t\t\t\"id\": id,\r\n\t\t\t\t//\"touch\": !(ev instanceof MouseEvent) || ((<any>ev).pointerType && (<any>ev).pointerType != \"pointer\"),\r\n\t\t\t\t//\"touch\": !(ev instanceof MouseEvent) || ((<any>ev).pointerType && (<any>ev).pointerType != \"mouse\"),\r\n\t\t\t\t\"touch\": this.isPointerTouch(ev),\r\n\t\t\t\t\"startPoint\": point,\r\n\t\t\t\t\"startTime\": $time.getTime(),\r\n\t\t\t\t\"point\": point,\r\n\t\t\t\t\"track\": [],\r\n\t\t\t\t\"swipeCanceled\": false,\r\n\t\t\t\t\"dragStartEvents\": []\r\n\t\t\t};\r\n\r\n\t\t\t// Add first breadcrumb\r\n\t\t\tthis.addBreadCrumb(pointer, point);\r\n\r\n\t\t\t// Add for re-use later\r\n\t\t\tthis.pointers.setKey(id, pointer);\r\n\t\t}\r\n\r\n\t\t// Log last event\r\n\t\tpointer.lastEvent = ev;\r\n\r\n\t\tthis.lastPointer = pointer;\r\n\r\n\t\treturn pointer;\r\n\t}\r\n\r\n\t/**\r\n\t * Determines if pointer event originated from a touch pointer or mouse.\r\n\t *\r\n\t * @param ev Original event\r\n\t * @return Touch pointer?\r\n\t */\r\n\tprotected isPointerTouch(ev: MouseEvent | Touch): boolean {\r\n\t\tif (typeof Touch !== \"undefined\" && ev instanceof Touch) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse if (typeof PointerEvent !== \"undefined\" && ev instanceof PointerEvent && $type.hasValue((<any>ev).pointerType)) {\r\n\t\t\tswitch ((<any>ev).pointerType) {\r\n\t\t\t\tcase \"touch\":\r\n\t\t\t\tcase \"pen\":\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tcase \"mouse\":\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\treturn false;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn !(ev instanceof MouseEvent);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if ($type.hasValue((<any>ev).type)) {\r\n\t\t\tif ((<any>ev).type.match(/^mouse/)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Resets the poiner to original state, i.e. cleans movement information,\r\n\t * starting point, etc.\r\n\t *\r\n\t * @param pointer Pointer\r\n\t */\r\n\tprotected resetPointer(pointer: IPointer, ev: MouseEvent | PointerEvent | Touch): void {\r\n\t\t// Get current coordinates\r\n\t\tlet point = this.getPointerPoint(ev);;\r\n\t\tpointer.startTime = $time.getTime();\r\n\t\tpointer.startPoint = { x: point.x, y: point.y };\r\n\t\tpointer.point = { x: point.x, y: point.y };\r\n\t\tpointer.track = [];\r\n\t\tpointer.swipeCanceled = false;\r\n\t\t//clearTimeout(pointer.swipeTimeout);\r\n\t\t//clearTimeout(pointer.holdTimeout);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a \"breadcrumb\" point to the [[Pointer]] to log its movement path.\r\n\t *\r\n\t * @param pointer Pointer\r\n\t * @param point Point coordinates\r\n\t */\r\n\tprotected addBreadCrumb(pointer: IPointer, point: IPoint): void {\r\n\t\tpointer.track.push({\r\n\t\t\t\"timestamp\": $time.getTime(),\r\n\t\t\t\"point\": point\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares the document for various touch-related operations.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic lockDocument(): void {\r\n\t\tthis.prepElement(this.body);\r\n\t}\r\n\r\n\t/**\r\n\t * Restores document functionality.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic unlockDocument(): void {\r\n\t\tif (this.transformedObjects.length == 0) {\r\n\t\t\tthis.restoreAllStyles(this.body);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Lock element (disable all touch)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic lockElement(io: InteractionObject): void {\r\n\t\tthis.prepElement(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Restores element's functionality.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic unlockElement(io: InteractionObject): void {\r\n\t\tthis.restoreAllStyles(io);\r\n\t}\r\n\r\n\t/**\r\n\t * Locks document's wheel scroll.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic lockWheel(): void {\r\n\t\twindow.addEventListener(\r\n\t\t\tthis._pointerEvents.wheel,\r\n\t\t\tthis.wheelLockEvent,\r\n\t\t\tthis._passiveSupported ? { passive: false } : false\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Unlocks document's wheel scroll.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic unlockWheel(): void {\r\n\t\twindow.removeEventListener(\r\n\t\t\tthis._pointerEvents.wheel,\r\n\t\t\tthis.wheelLockEvent\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if top element at pointer's position belongs to the SVG.\r\n\t *\r\n\t * @ignore Exlude from docs\r\n\t * @param pointer Pointer\r\n\t * @param svg The <svg> element\r\n\t * @param id A unique identifier of the object that is checking for locality\r\n\t * @return Belongs to SVG\r\n\t */\r\n\tpublic isLocalElement(pointer: IPointer, svg: SVGSVGElement, id: string): boolean {\r\n\t\tconst cached = this.getCache(\"local_pointer_\" + pointer.id);\r\n\t\tif ($type.hasValue(cached)) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tconst doc = ($dom.getRoot(svg) || document);\r\n\t\tif (doc.elementFromPoint) {\r\n\t\t\tconst target = doc.elementFromPoint(pointer.point.x, pointer.point.y);\r\n\t\t\tconst local = target && $dom.contains(svg, <HTMLElement>target);\r\n\t\t\tthis.setCache(\"local_pointer_\" + pointer.id + \"_\" + id, local, 100);\r\n\t\t\treturn local;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * A function that cancels mouse wheel scroll.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param ev Event object\r\n\t * @return Returns `false` to cancel\r\n\t */\r\n\tprotected wheelLockEvent(ev: Event): boolean {\r\n\t\tev.preventDefault();\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies a set of styles to an element. Stores the original styles so they\r\n\t * can be restored later.\r\n\t *\r\n\t * @ignore\r\n\t * @param io Element\r\n\t */\r\n\tpublic prepElement(io: InteractionObject): void {\r\n\r\n\t\tlet el = io.element;\r\n\r\n\t\tif (el) {\r\n\r\n\t\t\t// Define possible props\r\n\t\t\tlet props = [\r\n\t\t\t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\r\n\t\t\t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\r\n\t\t\t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\r\n\t\t\t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\r\n\t\t\t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\r\n\t\t\t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\r\n\t\t\t];\r\n\t\t\tfor (let i = 0; i < props.length; i++) {\r\n\t\t\t\tif (props[i] in el.style) {\r\n\t\t\t\t\tthis.setTemporaryStyle(io, props[i], \"none\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove iOS-specific selection;\r\n\t\t\tthis.setTemporaryStyle(io, \"tapHighlightColor\", \"rgba(0, 0, 0, 0)\");\r\n\t\t\t//this.setTemporaryStyle(io, \"webkitOverflowScrolling\", \"none\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Restores replaced styles\r\n\t *\r\n\t * @ignore\r\n\t * @param io Element\r\n\t */\r\n\tpublic unprepElement(io: InteractionObject): void {\r\n\r\n\t\tlet el = io.element;\r\n\r\n\t\tif (el) {\r\n\r\n\t\t\t// Define possible props\r\n\t\t\tlet props = [\r\n\t\t\t\t\"touchAction\", \"webkitTouchAction\", \"MozTouchAction\", \"MSTouchAction\", \"msTouchAction\", \"oTouchAction\",\r\n\t\t\t\t\"userSelect\", \"webkitUserSelect\", \"MozUserSelect\", \"MSUserSelect\", \"msUserSelect\", \"oUserSelect\",\r\n\t\t\t\t\"touchSelect\", \"webkitTouchSelect\", \"MozTouchSelect\", \"MSTouchSelect\", \"msTouchSelect\", \"oTouchSelect\",\r\n\t\t\t\t\"touchCallout\", \"webkitTouchCallout\", \"MozTouchCallout\", \"MSTouchCallout\", \"msTouchCallout\", \"oTouchCallout\",\r\n\t\t\t\t\"contentZooming\", \"webkitContentZooming\", \"MozContentZooming\", \"MSContentZooming\", \"msContentZooming\", \"oContentZooming\",\r\n\t\t\t\t\"userDrag\", \"webkitUserDrag\", \"MozUserDrag\", \"MSUserDrag\", \"msUserDrag\", \"oUserDrag\"\r\n\t\t\t];\r\n\t\t\tfor (let i = 0; i < props.length; i++) {\r\n\t\t\t\tif (props[i] in el.style) {\r\n\t\t\t\t\tthis.restoreStyle(io, props[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove iOS-specific selection;\r\n\t\t\tthis.restoreStyle(io, \"tapHighlightColor\");\r\n\t\t\t//this.restoreStyle(io, \"webkitOverflowScrolling\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option associated with hit events.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getHitOption(io: InteractionObject, option: keyof IHitOptions): any {\r\n\t\tlet res = io.hitOptions[option];\r\n\t\tif (typeof res === \"undefined\") {\r\n\t\t\tres = this.hitOptions[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option associated with hover events.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getHoverOption(io: InteractionObject, option: keyof IHoverOptions): any {\r\n\t\tlet res = io.hoverOptions[option];\r\n\t\tif (typeof res === \"undefined\") {\r\n\t\t\tres = this.hoverOptions[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option associated with swipe events.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getSwipeOption(io: InteractionObject, option: keyof ISwipeOptions): any {\r\n\t\tlet res = io.swipeOptions[option];\r\n\t\tif (typeof res === \"undefined\") {\r\n\t\t\tres = this.swipeOptions[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option for keyboard.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getKeyboardOption(io: InteractionObject, option: keyof IKeyboardOptions): any {\r\n\t\tlet res = io.keyboardOptions[option];\r\n\t\tif (typeof res === \"undefined\") {\r\n\t\t\tres = this.keyboardOptions[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option for mouse.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getMouseOption(io: InteractionObject, option: keyof IMouseOptions): any {\r\n\t\tlet res = io.mouseOptions[option];\r\n\t\tif (typeof res === \"undefined\") {\r\n\t\t\tres = this.mouseOptions[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an option associated with inertia.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param type Inertia type\r\n\t * @param option Option key\r\n\t * @return Option value\r\n\t */\r\n\tpublic getInertiaOption(io: InteractionObject, type: InertiaTypes, option: keyof IInertiaOptions): any {\r\n\t\tlet options: any = io.inertiaOptions.getKey(type);\r\n\t\tlet res: IInertiaOptions;\r\n\t\tif (options && $type.hasValue(options[option])) {\r\n\t\t\tres = options[option];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tres = (<any>this.inertiaOptions.getKey(type))[option];\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Stops currently going on inertia. Useful if inertia is currently being\r\n\t * animated and the object is being interacted with.\r\n\t *\r\n\t * @param io Element\r\n\t */\r\n\tprotected stopInertia(io: InteractionObject): void {\r\n\t\tlet x: InertiaTypes;\r\n\t\tlet inertias: Array<InertiaTypes> = [\"move\", \"resize\"];\r\n\t\tfor (let i = 0; i < inertias.length; i++) {\r\n\t\t\tx = inertias[i];\r\n\t\t\tif (io.inertias.hasKey(x)) {\r\n\t\t\t\tlet inertia: $type.Optional<Inertia> = io.inertias.getKey(x);\r\n\t\t\t\tif (inertia) {\r\n\t\t\t\t\tinertia.dispose();\r\n\t\t\t\t\t//io.inertiaAnimations.removeKey(x);\r\n\t\t\t\t\t//this.processDragStop(io);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Check if swiping is currently being performed on an object.\r\n\t *\r\n\t * @param io Element\r\n\t * @param pointer Pointer to check\r\n\t * @return `true` if swiping\r\n\t */\r\n\tpublic swiping(io: InteractionObject, pointer: IPointer): boolean {\r\n\t\tlet now = $time.getTime();\r\n\r\n\t\tif (pointer.swipeCanceled || !io.swipeable) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (\r\n\t\t\t(Math.abs(pointer.startPoint.y - pointer.point.y) < this.getSwipeOption(io, \"verticalThreshold\")) &&\r\n\t\t\t(pointer.startTime > (now - this.getSwipeOption(io, \"time\")))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if a successfull swipe action was performed on an element.\r\n\t *\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t * @return Swiped?\r\n\t */\r\n\tpublic swiped(io: InteractionObject, pointer: IPointer): boolean {\r\n\t\tlet now = $time.getTime();\r\n\t\tif (pointer.swipeCanceled) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (\r\n\t\t\t(Math.abs(pointer.startPoint.x - pointer.point.x) > this.getSwipeOption(io, \"horizontalThreshold\")) &&\r\n\t\t\t(Math.abs(pointer.startPoint.y - pointer.point.y) < this.getSwipeOption(io, \"verticalThreshold\")) &&\r\n\t\t\t(pointer.startTime > (now - this.getSwipeOption(io, \"time\")))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Applies style to mouse cursor based on its stage in relation to\r\n\t * [[InteractionObject]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param Element\r\n\t */\r\n\tpublic applyCursorOverStyle(io: InteractionObject): void {\r\n\r\n\t\t// Get sprite's cursor ooptions\r\n\t\tlet options = io.cursorOptions;\r\n\r\n\t\tif (!$type.hasValue(options.overStyle)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Apply cursor down styles\r\n\t\tfor (let i = 0; i < options.overStyle.length; i++) {\r\n\t\t\t$dom.setStyle(io.element, options.overStyle[i].property, options.overStyle[i].value);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Applies style to mouse cursor based on its stage in relation to\r\n\t * [[InteractionObject]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic applyCursorDownStyle(io: InteractionObject, pointer: IPointer): void {\r\n\r\n\t\t// Not applicable for touch pointers since they don't display a cursor\r\n\t\tif (pointer.touch) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst downStyle = io.cursorOptions.downStyle;\r\n\t\t// Is down?\r\n\t\tif (io.downPointers.contains(pointer) && $type.hasValue(downStyle)) {\r\n\t\t\t// Apply cursor down styles\r\n\t\t\tfor (let i = 0; i < downStyle.length; i++) {\r\n\t\t\t\tthis.setTemporaryStyle(this.body, downStyle[i].property, downStyle[i].value);\r\n\t\t\t\tthis.setTemporaryStyle(io, downStyle[i].property, downStyle[i].value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Restores original cursor style for the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param io Element\r\n\t * @param pointer Pointer\r\n\t */\r\n\tpublic restoreCursorDownStyle(io: InteractionObject, pointer: IPointer): void {\r\n\r\n\t\t// Not applicable for touch pointers since they don't display a cursor\r\n\t\tif (pointer.touch) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst downStyle = io.cursorOptions.downStyle;\r\n\r\n\t\t// Is down?\r\n\t\tif (io.downPointers.contains(pointer) && $type.hasValue(downStyle)) {\r\n\t\t\t// Apply cursor down styles\r\n\t\t\tfor (let i = 0; i < downStyle.length; i++) {\r\n\t\t\t\tthis.restoreStyle(this.body, downStyle[i].property);\r\n\t\t\t\tthis.restoreStyle(io, downStyle[i].property);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets style on the body of the document.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param style Style definitions\r\n\t */\r\n\tpublic setGlobalStyle(style: Array<IStyleProperty> | IStyleProperty): void {\r\n\t\tlet body = getInteraction().body;\r\n\t\tlet styles = <Array<IStyleProperty>>($type.isArray(style) ? style : [style]);\r\n\t\tfor (let i = 0; i < styles.length; i++) {\r\n\t\t\tthis.setTemporaryStyle(body, styles[i].property, styles[i].value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Restores style on the body of the document.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param style Style definitions\r\n\t */\r\n\tpublic restoreGlobalStyle(style: Array<IStyleProperty> | IStyleProperty): void {\r\n\t\tlet body = getInteraction().body;\r\n\t\tlet styles = <Array<IStyleProperty>>($type.isArray(style) ? style : [style]);\r\n\t\tfor (let i = 0; i < styles.length; i++) {\r\n\t\t\tthis.restoreStyle(body, styles[i].property);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if element is a non-cahrt element.\r\n\t *\r\n\t * @param io InteractionObject\r\n\t * @return Global element?\r\n\t */\r\n\tprotected isGlobalElement(io: InteractionObject): boolean {\r\n\t\treturn document.body === io.element;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if pointer has moved since it was created.\r\n\t *\r\n\t * @param pointer Pointer\r\n\t * @param tolerance Tolerance in pixels\r\n\t * @param minTime Minimum time required for the pointer to be down to be considered moved\r\n\t * @return `true` if the pointer has moved\r\n\t */\r\n\tpublic moved(pointer: IPointer, tolerance: number, minTime: number = 300): boolean {\r\n\r\n\t\t/*// If there was more time, we don't care if cursor actually moved\r\n\t\tlet duration = $time.getTime() - pointer.startTime;\r\n\t\tif ($type.hasValue(minTime) && (minTime > duration)) {\r\n\t\t\treturn false;\r\n\t\t}*/\r\n\r\n\t\t// That was quick measure shift\r\n\t\tlet shift = this.getShift(pointer);\r\n\r\n\t\treturn (Math.abs(shift.x) > tolerance) || (Math.abs(shift.y) > tolerance);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if pointer is \"old\", meaning it has been pressing for more than\r\n\t * X milliseconds.\r\n\t *\r\n\t * @ignore\r\n\t * @param pointer Pointer\r\n\t * @param minTime Minimum time to consider pointer old\r\n\t * @return {boolean}\r\n\t */\r\n\tpublic old(pointer: IPointer, minTime: number = 300): boolean {\r\n\t\treturn $time.getTime() - pointer.startTime > minTime;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns total a shift in pointers coordinates between its original\r\n\t * position and now.\r\n\t *\r\n\t * @param pointer Pointer\r\n\t * @return Shift in coordinates (x/y)\r\n\t */\r\n\tpublic getShift(pointer: IPointer): IPoint {\r\n\t\treturn {\r\n\t\t\t\"x\": pointer.startPoint.x - pointer.point.x,\r\n\t\t\t\"y\": pointer.startPoint.y - pointer.point.y\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a point from [[Pointer]]'s move history at a certain timetamp.\r\n\t *\r\n\t * @param pointer Pointer\r\n\t * @param timestamp Timestamp\r\n\t * @return Point\r\n\t */\r\n\tpublic getTrailPoint(pointer: IPointer, timestamp: number): $type.Optional<IBreadcrumb> {\r\n\t\tlet res: $type.Optional<IBreadcrumb>;\r\n\t\tfor (let i = 0; i < pointer.track.length; i++) {\r\n\t\t\tif (pointer.track[i].timestamp >= timestamp) {\r\n\t\t\t\tres = pointer.track[i];\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if same pointer already exists in the list.\r\n\t *\r\n\t * @param list List to check agains\r\n\t * @param pointer Pointer\r\n\t * @return Exists?\r\n\t */\r\n\tprotected pointerExists(list: List<IPointer>, pointer: IPointer): boolean {\r\n\t\tlet exists = false;\r\n\t\tlist.each((item) => {\r\n\t\t\tif (item == pointer) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\texists = item.point.x == pointer.point.x && item.point.y == pointer.point.y;\r\n\t\t});\r\n\t\treturn exists;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an [[InteractionObject]] representation of a DOM element.\r\n\t *\r\n\t * You can use this on any HTML or SVG element, to add interactive features\r\n\t * to it.\r\n\t *\r\n\t * @param element Element\r\n\t * @return InteractionObject\r\n\t */\r\n\tpublic getInteraction(element: HTMLElement | SVGSVGElement): InteractionObject {\r\n\t\treturn new InteractionObject(element);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a style property on an element. Stores original value to be restored\r\n\t * later with [[restoreStyle]].\r\n\t *\r\n\t * @see {@link restoreStyle}\r\n\t * @param io Element\r\n\t * @param property Property\r\n\t * @param value Value\r\n\t */\r\n\tpublic setTemporaryStyle(io: InteractionObject, property: string, value: string): void {\r\n\r\n\t\t// Get element\r\n\t\t//let el = io.element.tagName == \"g\" ? <SVGSVGElement>io.element.parentNode : io.element;\r\n\t\tlet el = io.element;\r\n\r\n\t\t// Save original property if it is set and hasn't been saved before already\r\n\t\tif ($type.hasValue((<any>el.style)[property]) && !io.replacedStyles.hasKey(property)) {\r\n\t\t\tio.replacedStyles.setKey(property, (<any>el.style)[property]);\r\n\t\t}\r\n\r\n\t\t// Replace with the new one\r\n\t\t$dom.setStyle(el, property, value);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Restores specific style on an element.\r\n\t *\r\n\t * @param io Element\r\n\t * @param property Style property\r\n\t */\r\n\tpublic restoreStyle(io: InteractionObject, property: string): void {\r\n\r\n\t\t// Reset style\r\n\t\tif (io.replacedStyles.hasKey(property)) {\r\n\t\t\t(<any>io.element.style)[property] = io.replacedStyles.getKey(property);\r\n\t\t\tio.replacedStyles.removeKey(property);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdelete (<any>io.element.style)[property];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Restore temporarily reset styles on an element.\r\n\t *\r\n\t * @param io Element\r\n\t */\r\n\tpublic restoreAllStyles(io: InteractionObject): void {\r\n\t\t$iter.each(io.replacedStyles.iterator(), (a) => {\r\n\t\t\tconst key = a[0];\r\n\t\t\tconst value = a[1];\r\n\t\t\t(<any>io.element.style)[key] = value;\r\n\t\t\tio.replacedStyles.removeKey(key);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes this object and cleans up after itself.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this.isDisposed()) {\r\n\t\t\tsuper.dispose();\r\n\t\t\tthis.restoreAllStyles(this.body);\r\n\t\t\tthis.unlockWheel();\r\n\t\t}\r\n\t}\r\n\r\n\t// @ts-ignore Used for debugging\r\n\tprivate log(text: string, ev: MouseEvent | TouchEvent | PointerEvent, io?: InteractionObject): void {\r\n\t\tlet show = true;\r\n\t\tif (show) {\r\n\t\t\t// Touchlist?\r\n\t\t\tif ((<any>ev).changedTouches) {\r\n\t\t\t\tfor (let i = 0; i < (<any>ev).changedTouches.length; i++) {\r\n\t\t\t\t\tthis.logTouch(text, ev.type, (<any>ev).changedTouches[i])\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Get type\r\n\t\t\tlet type = \"\";\r\n\t\t\tif ((<any>ev).pointerType) {\r\n\t\t\t\tswitch ((<any>ev).pointerType) {\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\ttype = \"touch\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 4:\r\n\t\t\t\t\t\ttype = \"mouse\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\ttype = (<any>ev).pointerType;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (typeof TouchEvent != \"undefined\" && ev instanceof TouchEvent) {\r\n\t\t\t\ttype = \"touch\";\r\n\t\t\t}\r\n\t\t\telse if (ev.type.match(/^mouse/)) {\r\n\t\t\t\ttype = \"mouse\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttype = \"???\";\r\n\t\t\t}\r\n\r\n\t\t\t// Get ID\r\n\t\t\tlet id = \"\";\r\n\t\t\tif ($type.hasValue((<any>ev).identifier)) {\r\n\t\t\t\tid = <string>(<any>ev).identifier;\r\n\t\t\t} else if ($type.hasValue((<any>ev).pointerId)) {\r\n\t\t\t\tid = <string>(<any>ev).pointerId;\r\n\t\t\t} else {\r\n\t\t\t\tid = \"???\";\r\n\t\t\t}\r\n\r\n\t\t\tif (io) {\r\n\t\t\t\tconsole.log(text + \" (\" + io.uid + \") \" + ev.type + \" \" + type + \" \" + id);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log(text + \" \" + ev.type + \" \" + type + \" \" + id);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether there are currently any objects being transformed (dragged\r\n\t * or resized).\r\n\t *\r\n\t * If `except` is set, that object will be ignored.\r\n\t *\r\n\t * @since 4.9.3\r\n\t * @param except Ignore this object(s)\r\n\t * @return Objects are being transformed\r\n\t */\r\n\tpublic areTransformed(except?: InteractionObject | InteractionObject[]): boolean {\r\n\t\tlet count = this.transformedObjects.length;\r\n\t\tif (except) {\r\n\t\t\tconst ex = $type.isArray(except) ? except : [except];\r\n\t\t\tfor(let i = 0; i < ex.length; i++) {\r\n\t\t\t\tif (this.transformedObjects.contains(ex[i])) {\r\n\t\t\t\t\tcount--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count > 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Log.\r\n\t */\r\n\tprivate logTouch(text: string, type: string, ev: Touch): void {\r\n\t\tconsole.log(text + \" \" + type + \" \" + \"touch\" + \" \" + ev.identifier);\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if passive mode options is supported by this browser.\r\n\t */\r\n\tprivate static _passiveSupported: boolean;\r\n\r\n\t/**\r\n\t * Indicates if passive mode options is supported by this browser.\r\n\t */\r\n\tstatic get passiveSupported() {\r\n\r\n\t\tif (this._passiveSupported == null) {\r\n\r\n\t\t\t// Check for passive mode support\r\n\t\t\ttry {\r\n\t\t\t\tlet options = Object.defineProperty({}, \"passive\", {\r\n\t\t\t\t\tget: () => {\r\n\t\t\t\t\t\tthis._passiveSupported = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\twindow.addEventListener(\"test\", options, options);\r\n\t\t\t\twindow.removeEventListener(\"test\", options, options);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis._passiveSupported = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this._passiveSupported;\r\n\t}\r\n\r\n}\r\n\r\n\r\nlet interaction: Interaction | null = null;\r\n\r\n/**\r\n * Returns a single unified global instance of [[Interaction]].\r\n *\r\n * All code should use this function, rather than create their own instances\r\n * of [[Interaction]].\r\n */\r\nexport function getInteraction(): Interaction {\r\n\tif (interaction == null) {\r\n\t\tinteraction = new Interaction();\r\n\t}\r\n\r\n\treturn interaction;\r\n}\r\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IDisposer, Disposer } from \"./Disposer\";\r\nimport { EventDispatcher, AMEvent } from \"./EventDispatcher\";\r\nimport { Optional } from \"./Type\";\r\nimport { IClone } from \"./Clone\";\r\nimport * as $object from \"./Object\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $string from \"./String\";\r\n\r\n/**\r\n * Defines events from [[Dictionary]].\r\n */\r\nexport interface IDictionaryEvents<Key, Value> {\r\n\r\n\t/**\r\n\t * Invoked when an item is removed from the dictionary.\r\n\t */\r\n\tremoved: {\r\n\r\n\t\t/**\r\n\t\t * Removed value.\r\n\t\t */\r\n\t\toldValue: Value;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when dictionary is cleared.\r\n\t */\r\n\tcleared: {};\r\n\r\n\t/**\r\n\t * Invoked when `insertKey()` method is called.\r\n\t */\r\n\tinsertKey: {\r\n\r\n\t\t/**\r\n\t\t * Key.\r\n\t\t */\r\n\t\tkey: Key;\r\n\r\n\t\t/**\r\n\t\t * Added value.\r\n\t\t */\r\n\t\tnewValue: Value;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when `setKey()` method is called.\r\n\t */\r\n\tsetKey: {\r\n\r\n\t\t/**\r\n\t\t * Key.\r\n\t\t */\r\n\t\tkey: Key;\r\n\r\n\t\t/**\r\n\t\t * Removed value. (if overwriting)\r\n\t\t */\r\n\t\toldValue: Value;\r\n\r\n\t\t/**\r\n\t\t * Added value.\r\n\t\t */\r\n\t\tnewValue: Value;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when `removeKey()` method is called.\r\n\t */\r\n\tremoveKey: {\r\n\r\n\t\t/**\r\n\t\t * Key.\r\n\t\t */\r\n\t\tkey: Key;\r\n\r\n\t\t/**\r\n\t\t * Removed value.\r\n\t\t */\r\n\t\toldValue: Value;\r\n\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * [K description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Descirption\r\n */\r\nexport type DictionaryLike<K, A> = $iter.Iterable<[K, A]> & {\r\n\tevents: EventDispatcher<{ removed: { oldValue: A } }>;\r\n};\r\n\r\n/**\r\n * A disposable dictionary, which when disposed itself will call `dispose()`\r\n * method on all its items.\r\n */\r\nexport class DictionaryDisposer<K, A extends IDisposer> extends Disposer {\r\n\tconstructor(dict: DictionaryLike<K, A>) {\r\n\t\tconst disposer = dict.events.on(\"removed\", (x) => {\r\n\t\t\tx.oldValue.dispose();\r\n\t\t}, undefined, false);\r\n\r\n\t\tsuper(() => {\r\n\t\t\tdisposer.dispose();\r\n\r\n\t\t\t// TODO clear the dictionary ?\r\n\t\t\t$iter.each(dict.iterator(), (a) => {\r\n\t\t\t\tconst v = a[1];\r\n\t\t\t\tv.dispose();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n/**\r\n * A Dictionary is collection where values of some type can be mapped to\r\n * string keys.\r\n *\r\n * You might call it an \"associative list\" or \"associative array\".\r\n */\r\nexport class Dictionary<Key extends string, T> {\r\n\r\n\t/**\r\n\t * Key/value pairs\r\n\t */\r\n\tprivate _dictionary: { [key in Key]?: T };\r\n\r\n\t/**\r\n\t * Event dispatcher.\r\n\t */\r\n\tpublic events: EventDispatcher<AMEvent<Dictionary<Key, T>, IDictionaryEvents<Key, T>>> = new EventDispatcher();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tthis._dictionary = {};\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if key exists in Dictionary.\r\n\t *\r\n\t * @param key The key to search for\r\n\t * @return `true` if key exists, `false` if it doesn't\r\n\t */\r\n\tpublic hasKey(key: Key): boolean {\r\n\t\treturn $object.hasKey(this._dictionary, key);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the value for a specific key.\r\n\t *\r\n\t * @param key The key to search for\r\n\t * @return Value for the key, or `undefined` if it doesn't exist\r\n\t */\r\n\tpublic getKey(key: Key): Optional<T> {\r\n\t\treturn this._dictionary[key];\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts value at specific key.\r\n\t *\r\n\t * Will thrown an exception if the key already exists in the dictionary.\r\n\t *\r\n\t * @param key Key\r\n\t * @param value Value\r\n\t */\r\n\tpublic insertKey(key: Key, value: T): void {\r\n\t\tif ($object.hasKey(this._dictionary, key)) {\r\n\t\t\tthrow new Error(\"Key \" + key + \" already exists in dictionary\");\r\n\r\n\t\t} else {\r\n\t\t\tthis._dictionary[key] = value;\r\n\r\n\t\t\tif (this.events.isEnabled(\"insertKey\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"insertKey\", {\r\n\t\t\t\t\ttype: \"insertKey\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tkey: key,\r\n\t\t\t\t\tnewValue: value\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds or updates key/value into dictionary.\r\n\t *\r\n\t * If the key already exists, the old value will be overwritten.\r\n\t *\r\n\t * If the new value is exactly the same as the old value (using ===), it won't do anything.\r\n\t *\r\n\t * @param key Key\r\n\t * @param value Value\r\n\t */\r\n\tpublic setKey(key: Key, value: T): void {\r\n\t\tif ($object.hasKey(this._dictionary, key)) {\r\n\t\t\tconst oldValue = this._dictionary[key];\r\n\r\n\t\t\tif (oldValue !== value) {\r\n\t\t\t\tthis._dictionary[key] = value;\r\n\r\n\t\t\t\tif (this.events.isEnabled(\"setKey\")) {\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"setKey\", {\r\n\t\t\t\t\t\ttype: \"setKey\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tkey: key,\r\n\t\t\t\t\t\toldValue: oldValue,\r\n\t\t\t\t\t\tnewValue: value\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tthis._dictionary[key] = value;\r\n\r\n\t\t\tif (this.events.isEnabled(\"insertKey\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"insertKey\", {\r\n\t\t\t\t\ttype: \"insertKey\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tkey: key,\r\n\t\t\t\t\tnewValue: value\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the value at specific `key` using custom function.\r\n\t *\r\n\t * Passes in current value into the function, and uses its output as a new\r\n\t * value.\r\n\t *\r\n\t * If the new value is exactly the same as the old value (using ===), it won't do anything.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param key Key\r\n\t * @param fn Function to transform the value\r\n\t */\r\n\tpublic updateKey(key: Key, fn: (value: T) => T): void {\r\n\t\tif ($object.hasKey(this._dictionary, key)) {\r\n\t\t\tconst oldValue = this._dictionary[key];\r\n\t\t\tconst newValue = fn(oldValue);\r\n\r\n\t\t\tif (oldValue !== newValue) {\r\n\t\t\t\tthis._dictionary[key] = newValue;\r\n\r\n\t\t\t\tif (this.events.isEnabled(\"setKey\")) {\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"setKey\", {\r\n\t\t\t\t\t\ttype: \"setKey\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tkey: key,\r\n\t\t\t\t\t\toldValue: oldValue,\r\n\t\t\t\t\t\tnewValue: newValue\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Key \" + key + \" doesn't exist in dictionary\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes value at specific `key` from dictionary.\r\n\t *\r\n\t * @param key Key to remove\r\n\t */\r\n\tpublic removeKey(key: Key): void {\r\n\t\tif ($object.hasKey(this._dictionary, key)) {\r\n\t\t\tconst oldValue = this._dictionary[key];\r\n\r\n\t\t\tdelete this._dictionary[key];\r\n\r\n\t\t\tif (this.events.isEnabled(\"removeKey\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removeKey\", {\r\n\t\t\t\t\ttype: \"removeKey\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tkey: key,\r\n\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\toldValue: oldValue\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [insertKeyIfEmpty description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo description\r\n\t * @param key [description]\r\n\t * @param ifEmpty [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic insertKeyIfEmpty(key: Key, ifEmpty: () => T): T {\r\n\t\tif (!this.hasKey(key)) {\r\n\t\t\tthis.insertKey(key, ifEmpty());\r\n\t\t}\r\n\r\n\t\treturn <T>this.getKey(key);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all items from the dictionary.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\t// TODO dispatch this after clear\r\n\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t$object.each(this._dictionary, (key, value) => {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\toldValue: value\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._dictionary = {};\r\n\r\n\t\tif (this.events.isEnabled(\"cleared\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"cleared\", {\r\n\t\t\t\ttype: \"cleared\",\r\n\t\t\t\ttarget: this\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies items from another Dictionary.\r\n\t *\r\n\t * @param source A Dictionary to copy items from\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source.iterator(), (a) => {\r\n\t\t\t// TODO fix this type cast\r\n\t\t\tthis.setKey(<Key>a[0], a[1]);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an interator that can be used to iterate through all items in\r\n\t * the dictionary.\r\n\t *\r\n\t * @return Iterator\r\n\t */\r\n\tpublic iterator(): $iter.Iterator<[Key, T]> {\r\n\t\t// @todo fix this type after the Iterator bug is fixed\r\n\t\t// https://github.com/Microsoft/TypeScript/issues/16730\r\n\t\treturn <$iter.Iterator<[Key, T]>>$object.entries(this._dictionary);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an ES6 iterator for the keys/values of the dictionary.\r\n\t */\r\n\tpublic *[Symbol.iterator](): Iterator<[Key, T]> {\r\n\t\t// TODO make this more efficient ?\r\n\t\tfor (let key in this._dictionary) {\r\n\t\t\tif ($object.hasKey(this._dictionary, key)) {\r\n\t\t\t\tyield [<Key>key, this._dictionary[key]];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Calls `f` for each key/value in the dictionary.\r\n\t */\r\n\tpublic each(f: (key: Key, value: T) => void): void {\r\n\t\t$iter.each(this.iterator(), ([key, value]) => f(key, value));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an iterator that can be used to iterate through all items in\r\n\t * the dictionary, ordered by key.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Iterator\r\n\t */\r\n\tpublic sortedIterator(): $iter.Iterator<[Key, T]> {\r\n\t\treturn $iter.sort(this.iterator(), (x, y) => $string.order(x[0], y[0]));\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A version of a [[Dictionary]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nexport class DictionaryTemplate<Key extends string, T extends IClone<T> & { isTemplate: boolean }> extends Dictionary<Key, T> {\r\n\t/**\r\n\t * A template object.\r\n\t *\r\n\t * @todo Make this private\r\n\t */\r\n\tpublic _template!: T;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param t Template object\r\n\t */\r\n\tpublic constructor(t: T) {\r\n\t\tsuper();\r\n\t\tthis.template = t;\r\n\t}\r\n\r\n\t/**\r\n\t * A \"template\" object to copy all properties from when creating new list\r\n\t * items.\r\n\t *\r\n\t * @param v Template object\r\n\t */\r\n\tpublic set template(v: T) {\r\n\t\tv.isTemplate = true;\r\n\t\tthis._template = v;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Template object\r\n\t */\r\n\tpublic get template(): T {\r\n\t\treturn this._template;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all elements from other dictionary.\r\n\t *\r\n\t * @param source Source dictionary\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source.iterator(), (a) => {\r\n\t\t\t// TODO fix this type cast\r\n\t\t\t// TODO why does this need to clone ?\r\n\t\t\tthis.setKey(<Key>a[0], a[1].clone());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Instantiates a new object of the specified type, adds it to specified\r\n\t * `key` in the dictionary, and returns it.\r\n\t *\r\n\t * @param make Item type to use. Will use the default type for the dictionary if not specified.\r\n\t * @return Newly created item\r\n\t */\r\n\tpublic create(key: Key): T {\r\n\t\treturn this.insertKeyIfEmpty(key, () => this.template.clone());\r\n\t}\r\n\r\n}\r\n","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import devWarning, { resetWarned } from \"rc-util/es/warning\";\nexport { resetWarned };\nexport default (function (valid, component, message) {\n devWarning(valid, \"[antd: \".concat(component, \"] \").concat(message));\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 objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _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(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(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry, is } from \"./Registry\";\r\nimport { Sprite } from \"./Sprite\";\r\nimport { Container } from \"./Container\";\r\nimport { Component } from \"./Component\";\r\nimport { Label } from \"./elements/Label\";\r\nimport { raf } from \"./utils/AsyncPending\";\r\nimport { IAnimationObject } from \"./utils/Animation\";\r\nimport { triggerIdle } from \"./utils/AsyncPending\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\nimport * as $log from \"./utils/Log\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * The main class that handles system-wide tasks, like caching, heartbeats, etc.\r\n * @important\r\n */\r\nexport class System {\r\n\t/**\r\n\t * A flag indicating if the system is on pause.\r\n\t */\r\n\tprotected _isPaused: boolean = false;\r\n\r\n\t/**\r\n\t * Holds the list of currently playing animations.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic animations: Array<IAnimationObject> = [];\r\n\r\n\t/**\r\n\t * Unique ID of the object.\r\n\t */\r\n\tpublic uid: string = registry.getUniqueId();\r\n\r\n\t/**\r\n\t * amCharts Version.\r\n\t *\r\n\t * This follows npm's semver specification.\r\n\t *\r\n\t * @see {@link https://docs.npmjs.com/misc/semver}\r\n\t */\r\n\tstatic VERSION: string = \"4.9.27\";\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t * @todo Needed?\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic dummyCounter: number = 0;\r\n\r\n\t/**\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic time: number;\r\n\r\n\r\n\tprotected _frameRequested: boolean = false;\r\n\r\n\tpublic updateStepDuration: number = 45;\r\n\r\n\t/**\r\n\t * Performs initialization of the System object.\r\n\t *\r\n\t * Called when the first [[Sprite]] object is created.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic constructor() {\r\n\t\tthis.time = Date.now();\r\n\t}\r\n\r\n\t/**\r\n\t * Reports time elapsed since timer was reset.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Needed?\r\n\t * @param msg Message to report in console\r\n\t * @param reset Reset time counter\r\n\t */\r\n\tpublic reportTime(msg: string, reset?: boolean): void {\r\n\t\tif (this.dummyCounter < 6) {\r\n\t\t\t//console.log(Date.now() - this.time, msg, this.dummyCounter2);\r\n\t\t}\r\n\t\tif (reset) {\r\n\t\t\tthis.time = Date.now();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Performs \"heartbeat\" operations `frameRate` number of times per second.\r\n\t *\r\n\t * When the chart element is invalidated, it is not immediately redrawn.\r\n\t *\r\n\t * Instead it waits for the next `update()` cycle to be re-validated.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Maybe should be private?\r\n\t */\r\n\tpublic update(): void {\r\n\r\n\t\tif (this._isPaused) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._frameRequested = false;\r\n\r\n\t\tlet time = Date.now();\r\n\r\n\t\tregistry.dispatchImmediately(\"enterframe\");\r\n\r\n\t\t//this.validateLayouts();\r\n\t\t//this.validatePositions();\r\n\t\t/*\r\n\t\t\t\tfor (let key in registry.invalidLayouts) {\r\n\t\t\t\t\tthis.validateLayouts(key);\r\n\t\t\t\t}\r\n\t\t\t\tfor (let key in registry.invalidPositions) {\r\n\t\t\t\t\tthis.validatePositions(key);\r\n\t\t\t\t}\r\n\t\t*/\r\n\r\n\t\tlet skippedComponents: Component[] = [];\r\n\r\n\t\t// data objects first - do all calculations\r\n\t\t// only data is parsed in chunks, thats why we do for loop instead of a while like with other invalid items.\r\n\t\t// important to go backwards, as items are removed!\r\n\t\t// TODO use iterator instead\r\n\r\n\t\tfor (let key in registry.invalidDatas) {\r\n\t\t\tif ($object.hasKey(registry.invalidDatas, key)) {\r\n\t\t\t\tlet invalidData = registry.invalidDatas[key];\r\n\r\n\t\t\t\twhile (invalidData.length > 0) {\r\n\t\t\t\t\tlet component: Component = invalidData[0];\r\n\t\t\t\t\tlet dataProvider: $type.Optional<Component> = component.dataProvider;\r\n\r\n\t\t\t\t\tif (!component.isDisposed()) {\r\n\r\n\t\t\t\t\t\tif (dataProvider && dataProvider.dataInvalid) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tdataProvider.validateData();\r\n\t\t\t\t\t\t\t\tif (dataProvider.dataValidationProgress < 1) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcatch (e) {\r\n\t\t\t\t\t\t\t\t$array.remove(invalidData, dataProvider);\r\n\t\t\t\t\t\t\t\tdataProvider.raiseCriticalError(e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tcomponent.validateData();\r\n\t\t\t\t\t\t\t\tif (component.dataValidationProgress < 1) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcatch (e) {\r\n\t\t\t\t\t\t\t\t$array.remove(invalidData, component);\r\n\t\t\t\t\t\t\t\tcomponent.raiseCriticalError(e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t$array.remove(invalidData, component);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (Date.now() - time > this.updateStepDuration) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twhile (registry.invalidRawDatas.length > 0) {\r\n\t\t\tlet component: Component = registry.invalidRawDatas[0];\r\n\t\t\tif (!component.isDisposed()) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcomponent.validateRawData();\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\t$array.remove(registry.invalidRawDatas, component);\r\n\t\t\t\t\tcomponent.raiseCriticalError(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$array.remove(registry.invalidRawDatas, component);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO use iterator instead\r\n\t\twhile (registry.invalidDataItems.length > 0) {\r\n\t\t\tlet component: Component = registry.invalidDataItems[0];\r\n\r\n\t\t\tlet dataProvider: $type.Optional<Component> = component.dataProvider;\r\n\r\n\t\t\t// this is needed to avoid partial value validation when data is parsed in chunks\r\n\t\t\tif (component.isDisposed() || component.dataInvalid || (dataProvider && dataProvider.dataInvalid)) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcomponent.validateDataItems();\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\t$array.remove(registry.invalidDataItems, component);\r\n\t\t\t\t\tcomponent.raiseCriticalError(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// this might seem too much, as validateValues removes from invalidDataItems aswell, but just to be sure (in case validateData is overriden and no super is called)\r\n\t\t\t$array.remove(registry.invalidDataItems, component);\r\n\t\t}\r\n\r\n\t\t// TODO use iterator instead\r\n\t\twhile (registry.invalidDataRange.length > 0) {\r\n\t\t\tlet component: Component = registry.invalidDataRange[0];\r\n\r\n\t\t\tlet dataProvider: $type.Optional<Component> = component.dataProvider;\r\n\r\n\t\t\tif (component.isDisposed() || component.dataInvalid || (dataProvider && dataProvider.dataInvalid)) {\r\n\t\t\t\t// void\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcomponent.validateDataRange();\r\n\t\t\t\t\tif (!component.skipRangeEvent) {\r\n\t\t\t\t\t\tcomponent.dispatchImmediately(\"datarangechanged\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcomponent.skipRangeEvent = false;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\t$array.remove(registry.invalidDataRange, component);\r\n\t\t\t\t\tcomponent.raiseCriticalError(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// this might seem too much, as validateDataRange removes from invalidDataRange aswell, but just to be sure (in case validateData is overriden and no super is called)\r\n\t\t\t$array.remove(registry.invalidDataRange, component);\r\n\t\t}\r\n\r\n\t\tlet skippedSprites: Sprite[] = [];\r\n\r\n\t\t// display objects later\r\n\t\t// TODO use iterator instead\r\n\r\n\t\t$object.each(registry.invalidLayouts, (key) => {\r\n\t\t\tthis.validateLayouts(key);\r\n\t\t});\r\n\r\n\t\t$object.each(registry.invalidPositions, (key) => {\r\n\t\t\tthis.validatePositions(key);\r\n\t\t});\r\n\r\n\r\n\t\tlet hasSkipped: boolean = false;\r\n\r\n\t\ttime = Date.now();\r\n\r\n\t\t$object.each(registry.invalidSprites, (key, invalidSprites) => {\r\n\t\t\tlet count = 0;\r\n\r\n\t\t\twhile (invalidSprites.length > 0) {\r\n\t\t\t\tthis.validateLayouts(key);\r\n\t\t\t\tthis.validatePositions(key);\r\n\r\n\t\t\t\tcount++;\r\n\r\n\t\t\t\tif (count == 5) {\r\n\t\t\t\t\tif (Date.now() - time > this.updateStepDuration) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcount = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet sprite: Sprite = invalidSprites[invalidSprites.length - 1];\r\n\r\n\t\t\t\t// we need to check this, as validateLayout might validate sprite\r\n\t\t\t\tif (sprite && !sprite.isDisposed()) {\r\n\t\t\t\t\tif (!sprite._systemCheckIfValidate()) {\r\n\t\t\t\t\t\t// void\r\n\t\t\t\t\t\tskippedSprites.push(sprite);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (!this.checkIfValidate2(sprite)) {\r\n\t\t\t\t\t\t\t// void\r\n\t\t\t\t\t\t\tskippedSprites.push(sprite);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tsprite._systemUpdate(skippedSprites);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcatch (e) {\r\n\t\t\t\t\t\t\t\tsprite.invalid = false;\r\n\t\t\t\t\t\t\t\t$array.remove(invalidSprites, sprite);\r\n\t\t\t\t\t\t\t\tsprite.raiseCriticalError(e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// this might seem too much, but it's ok\r\n\t\t\t\t\tsprite.invalid = false;\r\n\t\t\t\t}\r\n\t\t\t\t$array.remove(invalidSprites, sprite);\r\n\t\t\t}\r\n\r\n\t\t\tregistry.invalidSprites[key] = registry.invalidSprites[key].concat(skippedSprites);\r\n\t\t});\r\n\r\n\t\t$object.each(registry.invalidSprites, (key, value) => {\r\n\t\t\tif (value.length > 0) {\r\n\t\t\t\thasSkipped = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$object.each(registry.invalidDatas, (key, value) => {\r\n\t\t\tif (value.length > 0) {\r\n\t\t\t\thasSkipped = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// TODO make this more efficient\r\n\t\t// TODO don't copy the array\r\n\t\t$array.each($array.copy(this.animations), (x) => {\r\n\t\t\tx.update();\r\n\t\t});\r\n\r\n\t\t//if(!hasSkipped){\r\n\t\t$object.each(registry.invalidLayouts, (key) => {\r\n\t\t\tthis.validateLayouts(key);\r\n\t\t});\r\n\r\n\t\t$object.each(registry.invalidPositions, (key) => {\r\n\t\t\tthis.validatePositions(key);\r\n\t\t});\r\n\t\t//}\r\n\r\n\t\ttriggerIdle();\r\n\r\n\t\t$object.each(registry.invalidLayouts, (key) => {\r\n\t\t\tthis.validateLayouts(key);\r\n\t\t});\r\n\r\n\t\t$object.each(registry.invalidPositions, (key) => {\r\n\t\t\tthis.validatePositions(key);\r\n\t\t});\r\n\r\n\r\n\t\tregistry.dispatchImmediately(\"exitframe\");\r\n\r\n\t\tif (hasSkipped || this.animations.length > 0 || skippedComponents.length > 0) {\r\n\t\t\tthis.requestFrame();\r\n\t\t}\r\n\r\n\t\tif (this.updateStepDuration < 200) {\r\n\t\t\tlet all0 = true;\r\n\r\n\t\t\t$object.each(registry.invalidDatas, (key, value) => {\r\n\t\t\t\tif (value.length > 0) {\r\n\t\t\t\t\tall0 = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$object.each(registry.invalidSprites, (key, value) => {\r\n\t\t\t\tif (value.length > 0) {\r\n\t\t\t\t\tall0 = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (all0) {\r\n\t\t\t\tthis.updateStepDuration = 200;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic checkIfValidate2(sprite: Sprite): boolean {\r\n\t\tif (sprite.dataItem && sprite.dataItem.component && sprite.dataItem.component.dataInvalid && !sprite.dataItem.component.isTemplate) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Requests new animation frame\r\n\t */\r\n\tpublic requestFrame() {\r\n\t\tif (!this._frameRequested) {\r\n\r\n\t\t\traf(() => {\r\n\t\t\t\tthis.update();\r\n\t\t\t});\r\n\t\t\tthis._frameRequested = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Call this method if you update data or config of a chart that is in\r\n\t * hidden container, after revealing the container, so that labels and\r\n\t * possibly other elements can correctly arrange themselves.\r\n\t *\r\n\t * @since 4.7.10\r\n\t * @param container Target container\r\n\t */\r\n\tpublic softInvalidate(container: Container) {\r\n\t\tcontainer.children.each((child) => {\r\n\t\t\tif (child instanceof Container) {\r\n\t\t\t\tthis.softInvalidate(child);\r\n\t\t\t}\r\n\t\t\tif (child.measureFailed) {\r\n\t\t\t\tif (is<Label>(child, \"Label\")) {\r\n\t\t\t\t\tchild.hardInvalidate();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tchild.invalidate();\r\n\t\t\t\t}\r\n\t\t\t\tchild.measureFailed = false;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers position re-validation on all [[Sprite]] elements that have\r\n\t * invalid(ated) positions.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Maybe should be private?\r\n\t */\r\n\tpublic validatePositions(id: string): void {\r\n\t\t// invalid positions\r\n\t\t// TODO use iterator instead\r\n\t\tlet invalidPositions = registry.invalidPositions[id];\r\n\r\n\t\twhile (invalidPositions.length > 0) {\r\n\t\t\tlet sprite: Sprite = invalidPositions[invalidPositions.length - 1];\r\n\t\t\tif (!sprite.isDisposed()) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tsprite._systemValidatePositions();\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\tsprite.positionInvalid = false;\r\n\t\t\t\t\t$array.remove(invalidPositions, sprite);\r\n\t\t\t\t\tsprite.raiseCriticalError(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$array.remove(invalidPositions, sprite);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers position re-validation on all [[Container]] elements that have\r\n\t * invalid(ated) layouts.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Maybe should be private?\r\n\t */\r\n\tpublic validateLayouts(id: string): void {\r\n\t\t// invalid positions\r\n\t\t// TODO use iterator instead\r\n\t\tlet invalidLayouts = registry.invalidLayouts[id];\r\n\t\twhile (invalidLayouts.length > 0) {\r\n\t\t\tlet container: Container = invalidLayouts[invalidLayouts.length - 1];\r\n\t\t\tif (!container.isDisposed()) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcontainer.children.each((sprite) => {\r\n\t\t\t\t\t\tsprite._systemValidateLayouts();\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tcontainer.validateLayout();\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\tcontainer.layoutInvalid = false;\r\n\t\t\t\t\t$array.remove(invalidLayouts, container);\r\n\t\t\t\t\tcontainer.raiseCriticalError(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$array.remove(invalidLayouts, container);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Outputs string to console if `verbose` is `true`.\r\n\t *\r\n\t * @param value Message to output to console\r\n\t */\r\n\tpublic log(value: any): void {\r\n\t\t$log.log(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Pauses all the processes of all the amCharts objects on the page\r\n\t *\r\n\t * @return is paused?\r\n\t */\r\n\tpublic set isPaused(value: boolean) {\r\n\t\tthis._isPaused = value;\r\n\t\tif (!value) {\r\n\t\t\tthis._frameRequested = false;\r\n\t\t\tthis.requestFrame();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Is system on pause?\r\n\t */\r\n\tpublic get isPaused(): boolean {\r\n\t\treturn this._isPaused;\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * A singleton global instance of [[System]].\r\n *\r\n * All code should use this, rather than instantiating their\r\n * own System objects.\r\n */\r\nexport const system: System = new System();\r\n","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) return replacement;\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props() : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\";\r\n }\r\n\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string, accessTokenFactory: (() => string | Promise<string>) | undefined,\r\n content: string | ArrayBuffer, logMessageContent: boolean, withCredentials: boolean, defaultHeaders: MessageHeaders): Promise<void> {\r\n let headers = {};\r\n if (accessTokenFactory) {\r\n const token = await accessTokenFactory();\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, logMessageContent)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...defaultHeaders},\r\n responseType,\r\n withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription<T> implements ISubscription<T> {\r\n private subject: Subject<T>;\r\n private observer: IStreamSubscriber<T>;\r\n\r\n constructor(subject: Subject<T>, observer: IStreamSubscriber<T>) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this.subject.observers.length === 0 && this.subject.cancelCallback) {\r\n this.subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly minimumLogLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public outputConsole: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n this.outputConsole = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.outputConsole.error(`[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n case LogLevel.Warning:\r\n this.outputConsole.warn(`[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n case LogLevel.Information:\r\n this.outputConsole.info(`[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.outputConsole.log(`[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\nfunction getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n","/**\r\n * Base functionality\r\n*/\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IClone } from \"./utils/Clone\";\r\nimport { List, ListTemplate } from \"./utils/List\";\r\nimport { OrderedListTemplate, SortedListTemplate } from \"./utils/SortedList\";\r\nimport { Dictionary, DictionaryTemplate } from \"./utils/Dictionary\";\r\nimport { Disposer, IDisposer } from \"./utils/Disposer\";\r\nimport { EventDispatcher, AMEvent } from \"./utils/EventDispatcher\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { Color, color } from \"./utils/Color\";\r\nimport { Percent, percent } from \"./utils/Percent\";\r\nimport { ITheme } from \"../themes/ITheme\";\r\nimport { Ordering } from \"./utils/Order\";\r\n\r\nimport { registry } from \"./Registry\";\r\nimport { cache } from \"./utils/Cache\";\r\n\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n\r\n//import * as $debug from \"./utils/Debug\";\r\n\r\n/**\r\n * Provides base functionality for all derivative objects, like generating ids,\r\n * handling cache, etc.\r\n */\r\nexport class BaseObject implements IClone<BaseObject>, IDisposer {\r\n\r\n\t/**\r\n\t * A unique ID for this object.\r\n\t *\r\n\t * Generated on first access by `uid()` getter.\r\n\t */\r\n\tprotected _uid: $type.Optional<string>;\r\n\r\n\t/**\r\n\t * Indicates if this object has already been deleted. Any\r\n\t * destruction/disposal code should take this into account when deciding\r\n\t * wheter to run potentially costly disposal operations if they already have\r\n\t * been run.\r\n\t */\r\n\tprotected _disposed: boolean = false;\r\n\r\n\t/**\r\n\t * List of IDisposer which will be disposed when the BaseObject is disposed.\r\n\t */\r\n\tprotected _disposers: Array<IDisposer> = [];\r\n\r\n\t/**\r\n\t * User-defined id of the object.\r\n\t */\r\n\tprotected _id: $type.Optional<string>;\r\n\r\n\t/**\r\n\t * Holds a universal mapping collection, so that elements and their children\r\n\t * can create and look up all kinds of relations between id and object.\r\n\t */\r\n\tprotected _map: $type.Optional<Dictionary<string, any>>;\r\n\r\n\t/**\r\n\t * Holds mapping for objects referenced by id in JSON config that are not yet\r\n\t * available at processing time.\r\n\t */\r\n\tprotected _delayedMap: $type.Optional<Dictionary<string, any>>;\r\n\r\n\t/**\r\n\t * The theme used by this object.\r\n\t */\r\n\tprotected _themes: $type.Optional<ITheme[]>;\r\n\r\n\t// @review\r\n\t/**\r\n\t * A list of objects that are clones of this object. An object needs to\r\n\t * maintain a list of its clones so that properties can be re-applied to\r\n\t * clones whenever property on the object they were cloned from changes.\r\n\t */\r\n\tprotected _clones: $type.Optional<List<this>>;\r\n\r\n\r\n\t// @review\r\n\t/**\r\n\t * Reference to the original object this object was cloned from. We need to\r\n\t * keep this so we can disassociate it from source object when this object\r\n\t * is disposed.\r\n\t */\r\n\tpublic clonedFrom: $type.Optional<this>;\r\n\r\n\t/**\r\n\t * A class name for the object.\r\n\t *\r\n\t * This property is used by deriving classes to identify which class it is.\r\n\t * We could derive the class name from the object itself, however method of\r\n\t * doing so is too costly, so we are relying on this property to quickly\r\n\t * access type of class.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _className: $type.Optional<string>;\r\n\r\n\t/**\r\n\t * [cloneId description]\r\n\t *\r\n\t * @todo Needs description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic cloneId: $type.Optional<string>;\r\n\r\n\t/**\r\n\t * Holds processing error list.\r\n\t */\r\n\tprotected _processingErrors: string[];\r\n\r\n\t//protected _classes: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * Constructor\r\n\t * * Sets class name\r\n\t */\r\n\tconstructor() {\r\n\t\tthis.className = \"BaseObject\";\r\n\t\t//this.debug();\r\n\t}\r\n\r\n\tprotected debug(): void {\r\n\t\t//$debug.debug(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns object's internal unique ID.\r\n\t *\r\n\t * @return Unique ID\r\n\t */\r\n\tpublic get uid(): string {\r\n\t\tif (!this._uid) {\r\n\t\t\tthis._uid = registry.getUniqueId();\r\n\t\t\tregistry.map.setKey(this._uid, this);\r\n\t\t}\r\n\t\treturn this._uid;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the user-defined id of the element.\r\n\t *\r\n\t * @param value Id\r\n\t */\r\n\tpublic set id(value: $type.Optional<string>) {\r\n\t\t//registry.map.setKey(value, this); // registry.map only stores by uid\r\n\t\tthis._id = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Id\r\n\t */\r\n\tpublic get id(): $type.Optional<string> {\r\n\t\treturn this._id;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a universal collection for mapping ids with objects.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Map collection\r\n\t */\r\n\tpublic get map(): Dictionary<string, any> {\r\n\t\tif (!this._map) {\r\n\t\t\tthis._map = new Dictionary<string, any>();\r\n\t\t}\r\n\t\treturn this._map;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns mapping for objects referenced by id in JSON config that are not yet\r\n\t * available at processing time.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Map collection\r\n\t */\r\n\tpublic get delayedMap(): Dictionary<string, any> {\r\n\t\tif (!this._delayedMap) {\r\n\t\t\tthis._delayedMap = new Dictionary<string, any>();\r\n\t\t}\r\n\t\treturn this._delayedMap;\r\n\t}\r\n\r\n\t/**\r\n\t * Logs an id and property of the target element that is not yet available\r\n\t * for later assignment.\r\n\t * \r\n\t * @ignore\r\n\t * @param property Property to set\r\n\t * @param id ID of the target element\r\n\t */\r\n\tpublic addDelayedMap(property: string, id: string): void {\r\n\t\tconst map = this.delayedMap;\r\n\t\tif (!map.hasKey(id)) {\r\n\t\t\tmap.setKey(id, []);\r\n\t\t}\r\n\t\tconst list = map.getKey(id);\r\n\t\tlist.push({\r\n\t\t\tproperty: property,\r\n\t\t\ttarget: this\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Processes delayed JSON config items.\r\n\t * \r\n\t * @ignore\r\n\t */\r\n\tpublic processDelayedMap(): void {\r\n\t\tthis.delayedMap.each((id, list) => {\r\n\t\t\tif (this.map.hasKey(id)) {\r\n\t\t\t\tconst target = this.map.getKey(id);\r\n\t\t\t\t$array.each(list, (item: any) => {\r\n\t\t\t\t\titem.target[item.property] = target;\r\n\t\t\t\t});\r\n\t\t\t\tthis.delayedMap.removeKey(id);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Applies properties from all assigned themes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic applyTheme(): void {\r\n\t\t// TODO is this needed ?\r\n\t\tif (registry) {\r\n\t\t\tlet themes = this.getCurrentThemes();\r\n\r\n\t\t\t// TODO is this needed ?\r\n\t\t\tif (themes) {\r\n\t\t\t\t$array.each(themes, (theme, index) => {\r\n\t\t\t\t\ttheme(this);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A list of themes to be used for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value An array of themes\r\n\t */\r\n\tpublic set themes(value: $type.Optional<ITheme[]>) {\r\n\t\tthis._themes = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return An array of themes\r\n\t */\r\n\tpublic get themes(): $type.Optional<ITheme[]> {\r\n\t\treturn this._themes;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of themes that should be applied to this element. It could\r\n\t * either be a list of themes set explicitly on this element, or system-wide.\r\n\t *\r\n\t * @return List of themes\r\n\t */\r\n\tpublic getCurrentThemes(): ITheme[] {\r\n\t\treturn this.themes || registry.themes;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if this object has been already been disposed.\r\n\t *\r\n\t * @return Is disposed?\r\n\t */\r\n\tpublic isDisposed(): boolean {\r\n\t\treturn this._disposed;\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this._disposed) {\r\n\t\t\tthis._disposed = true;\r\n\r\n\t\t\tconst a = this._disposers;\r\n\r\n\t\t\tthis._disposers = <any>null;\r\n\r\n\t\t\twhile (a.length !== 0) {\r\n\t\t\t\tconst disposer = a.shift();\r\n\t\t\t\tdisposer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\t// Clear cache\r\n\t\t\tthis.clearCache();\r\n\r\n\t\t\t// remove from clones list\r\n\t\t\tif (this.clonedFrom) {\r\n\t\t\t\tthis.clonedFrom.clones.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tconst uid = this._uid;\r\n\r\n\t\t\tif (uid != null) {\r\n\t\t\t\tregistry.map.removeKey(uid);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an IDisposer, which will be disposed when this object is disposed.\r\n\t *\r\n\t * @param target Object to dispose\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic addDisposer(target: IDisposer): void {\r\n\t\tthis._disposers.push(target);\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes disposable object and removes it from `_disposers`.\r\n\t *\r\n\t * @param target Object to dispose\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic removeDispose(target: IDisposer): void {\r\n\t\t//if(target){\r\n\t\tif (!this._disposed) {\r\n\t\t\tlet index = $array.indexOf(this._disposers, target);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis._disposers.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttarget.dispose();\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Makes a copy of this object and returns the clone. Try to avoid cloning complex objects like chart, create new instances if you need them.\r\n\t *\r\n\t * @param cloneId An id to use for clone (if not set a unique id will be generated)\r\n\t * @returns Clone\r\n\t */\r\n\tpublic clone<A extends this>(cloneId?: string): this {\r\n\t\tif (!cloneId) {\r\n\t\t\tcloneId = \"clone-\" + registry.getUniqueId();\r\n\t\t}\r\n\r\n\t\tlet newObject: this = new (<{ new(): A; }>this.constructor)();\r\n\t\tnewObject.cloneId = cloneId;\r\n\r\n\t\tnewObject.copyFrom(this);\r\n\r\n\t\t// add to clones list\r\n\t\t// this.clones.push(newObject); // moved this to copyFrom\r\n\r\n\r\n\t\treturn newObject;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a collection of object's clones.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Clones\r\n\t */\r\n\tpublic get clones(): List<this> {\r\n\t\tif (!this._clones) {\r\n\t\t\tthis._clones = new List<this>();\r\n\t\t}\r\n\t\treturn this._clones;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from different element.\r\n\t *\r\n\t * @param object Source element\r\n\t */\r\n\tpublic copyFrom(object: this): void {\r\n\t\tobject.clones.push(this); // do not moveValue, as it is expensive! even if there will be several items in clones list, it's not that bad.\r\n\t\tthis.clonedFrom = object;\r\n\t}\r\n\r\n\t/**\r\n\t * Element's class name. (a class that was used to instantiate the element)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Class name\r\n\t */\r\n\tpublic set className(value: $type.Optional<string>) {\r\n\t\tthis._className = value;\r\n\t\t/*if (registry) {\r\n\t\t\tregistry.registeredClasses[value] = typeof this;\r\n\t\t}*/\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Class name\r\n\t */\r\n\tpublic get className(): $type.Optional<string> {\r\n\t\treturn this._className;\r\n\t}\r\n\r\n\t/**\r\n\t * Caches value in object's cache.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param key Key\r\n\t * @param value Value\r\n\t * @param ttl TTL in seconds\r\n\t */\r\n\tpublic setCache(key: string, value: any, ttl?: number): void {\r\n\t\tcache.set(this.uid, key, value, ttl);\r\n\t}\r\n\r\n\t/**\r\n\t * Retrieves cached value.\r\n\t *\r\n\t * If optional second padarameter is specified, it will return that value\r\n\t * if cache is not available or is expired.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param key Key\r\n\t * @param value Value to return if cache is not available\r\n\t * @return Value\r\n\t */\r\n\tpublic getCache(key: string, value: any = undefined): any {\r\n\t\treturn cache.get(this.uid, key, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Clears object's local cache.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic clearCache(): void {\r\n\t\tcache.clear(this.uid);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates [[Disposer]] for `setTimeout` function call. This ensures that all\r\n\t * timeouts created by the object will be cleared when object itself is\r\n\t * disposed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fn Callback function\r\n\t * @param delay Timeout (ms)\r\n\t * @return Disposer for timeout\r\n\t */\r\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\r\n\t\tconst id = setTimeout(() => {\r\n\t\t\tthis.removeDispose(disposer);\r\n\t\t\tfn();\r\n\t\t}, delay);\r\n\r\n\t\tconst disposer = new Disposer(() => {\r\n\t\t\tclearTimeout(id);\r\n\t\t});\r\n\r\n\t\tthis._disposers.push(disposer);\r\n\t\treturn disposer;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates [[Disposer]] for `setInterval` function call. This ensures that all\r\n\t * timeouts created by the object will be cleared when object itself is\r\n\t * disposed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fn Callback function\r\n\t * @param delay Timeout (ms)\r\n\t * @return Disposer for timeout\r\n\t */\r\n\tpublic setInterval(fn: () => void, delay: number): IDisposer {\r\n\t\tconst id = setInterval(() => {\r\n\t\t\tthis.removeDispose(disposer);\r\n\t\t\tfn();\r\n\t\t}, delay);\r\n\r\n\t\tconst disposer = new Disposer(() => {\r\n\t\t\tclearTimeout(id);\r\n\t\t});\r\n\r\n\t\tthis._disposers.push(disposer);\r\n\t\treturn disposer;\r\n\t}\r\n\r\n\t/**\r\n\t * ==========================================================================\r\n\t * JSON-BASED CONFIG PROCESSING\r\n\t * ==========================================================================\r\n\t * @hidden\r\n\t */\r\n\r\n\t/**\r\n\t * Use this property to set JSON-based config. When set, triggers processing\r\n\t * routine, which will go through all properties, and try to apply values,\r\n\t * create instances, etc.\r\n\t *\r\n\t * Use this with caution, as it is a time-consuming process. It's used for\r\n\t * initialchart setup only, not routine operations.\r\n\t *\r\n\t * @param json JSON config\r\n\t */\r\n\tpublic set config(config: object) {\r\n\t\ttry {\r\n\t\t\tthis.processConfig(config);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\t/*if (this instanceof Sprite) {\r\n\t\t\t\tthis.raiseCriticalError(e);\r\n\t\t\t}*/\r\n\t\t\t(<any>this).raiseCriticalError(e);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes the JSON config.\r\n\t *\r\n\t * @param json JSON config\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected processConfig(config?: object): void {\r\n\r\n\t\tif (!config) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get target\r\n\t\tlet target = <any>this;\r\n\r\n\t\t// Iterate through all of the items\r\n\t\t$object.eachOrdered(config, (configKey, value) => {\r\n\t\t\tlet configValue: any = value;\r\n\r\n\t\t\t// Is this a callback?\r\n\t\t\tif (configKey == \"callback\" && typeof value == \"function\") {\r\n\t\t\t\t(<any>value).call(target);\r\n\t\t\t}\r\n\r\n\t\t\t// Check if there's a property in target\r\n\t\t\tif (this.hasProperty(configKey)) {\r\n\r\n\t\t\t\tlet item: any;\r\n\r\n\t\t\t\t// Do we have instructions to create an object?\r\n\t\t\t\t// We create a new object if \"type\" key is set, but only if the\r\n\t\t\t\t// target object is of different type.\r\n\t\t\t\tif (\r\n\t\t\t\t\t$type.isObject(configValue)\r\n\t\t\t\t\t&& $type.hasValue((<any>configValue)[\"type\"])\r\n\t\t\t\t\t&& (\r\n\t\t\t\t\t\t!$type.isObject(target[configKey])\r\n\t\t\t\t\t\t|| !$type.hasValue(target[configKey].className)\r\n\t\t\t\t\t\t|| (<any>configValue)[\"forceCreate\"]\r\n\t\t\t\t\t\t|| target[configKey].className != (<any>configValue)[\"type\"]\r\n\t\t\t\t\t)\r\n\t\t\t\t\t&& !this.asIs(configKey)\r\n\t\t\t\t) {\r\n\t\t\t\t\titem = this.createClassInstance((<any>configValue)[\"type\"]);\r\n\r\n\t\t\t\t\t// Create new instance\r\n\t\t\t\t\tif (item) {\r\n\t\t\t\t\t\ttarget[configKey] = item;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem = target[configKey];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Get item from the object\r\n\t\t\t\t\titem = target[configKey];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * It is...\r\n\t\t\t\t * --------------------------------------------------------------------\r\n\t\t\t\t */\r\n\r\n\t\t\t\tif (item instanceof Adapter) {\r\n\r\n\t\t\t\t\t// ... an Adapter, try to add handlers to it\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\tthis.processAdapters(item, configValue);\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (item instanceof EventDispatcher) {\r\n\r\n\t\t\t\t\t// ... an EventDispatcher, try to add handlers to it\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\tthis.processEvents(item, configValue);\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (configKey == \"locale\" && $type.isString(configValue)) {\r\n\r\n\t\t\t\t\t// ... a locale specified as string, e.g. \"fr_FR\"\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\tif ((<any>window)[\"am4lang_\" + configValue]) {\r\n\t\t\t\t\t\ttarget[configKey] = (<any>window)[\"am4lang_\" + configValue];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (configKey == \"parent\" && $type.isString(configValue)) {\r\n\r\n\t\t\t\t\t// ... a parent referred via its it\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\tconst parent = this.map.getKey(configValue);\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\ttarget[configKey] = parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.addDelayedMap(\"parent\", configValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.asIs(configKey)) {\r\n\r\n\t\t\t\t\t// ... a special field, just set it to new value\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\t// (no need to add each indvidual item)\r\n\t\t\t\t\ttarget[configKey] = configValue;\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.asFunction(configKey) && $type.isString(configValue)) {\r\n\r\n\t\t\t\t\t// ... a field indicating function name to look for in registry\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\tif ($type.hasValue(registry.registeredClasses[configValue])) {\r\n\t\t\t\t\t\ttarget[configKey] = registry.registeredClasses[configValue];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthrow Error(\"Invalid easing function: \" + configValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (<any>configValue instanceof BaseObject) {\r\n\r\n\t\t\t\t\t// ... a BaseObject object, we just going to use it as it is\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\ttarget[configKey] = configValue;\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (item instanceof BaseObject) {\r\n\r\n\t\t\t\t\t// ... another child BaseObject\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\t// Let's just pass in config part in and let itself deal with it\r\n\t\t\t\t\titem.config = configValue;\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse if (item instanceof ListTemplate || item instanceof OrderedListTemplate || item instanceof SortedListTemplate) {\r\n\r\n\t\t\t\t\t// ... a list with template\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\t// Let's see what we can do with it\r\n\t\t\t\t\tif ($type.isArray(configValue)) {\r\n\r\n\t\t\t\t\t\t// It's an array.\r\n\t\t\t\t\t\t// Create a list item for entry, or try to apply properties to an\r\n\t\t\t\t\t\t// existing entry if possible and it is present.\r\n\t\t\t\t\t\tif (item instanceof ListTemplate) {\r\n\t\t\t\t\t\t\tthis.processListTemplate(configValue, item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.processOrderedTemplate(configValue, item);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.isObject(configValue)) {\r\n\t\t\t\t\t\t// It's a single oject.\r\n\t\t\t\t\t\t// Treat it as a template.\r\n\t\t\t\t\t\tif (<any>configValue instanceof BaseObject) {\r\n\t\t\t\t\t\t\t// Item is already a BaseObject, no need to process it further\r\n\t\t\t\t\t\t\titem.template = configValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t\t// Now let's find out if the whole object if a template, or we\r\n\t\t\t\t\t\t\t// need to get it from `template` key\r\n\t\t\t\t\t\t\tlet templateValue;\r\n\t\t\t\t\t\t\tif ($type.hasValue((<any>configValue).template)) {\r\n\t\t\t\t\t\t\t\ttemplateValue = (<any>configValue).template;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\ttemplateValue = configValue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (item.template instanceof BaseObject) {\r\n\t\t\t\t\t\t\t\t// Template is a BaseObject so we will just let its config\r\n\t\t\t\t\t\t\t\t// deal with the configuration\r\n\t\t\t\t\t\t\t\t(<any>item.template).config = templateValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t\t\t$object.each(templateValue, (entryKey, entryValue) => {\r\n\r\n\t\t\t\t\t\t\t\t\tlet listItem = (<any>item.template)[entryKey];\r\n\r\n\t\t\t\t\t\t\t\t\tif (listItem instanceof Adapter) {\r\n\t\t\t\t\t\t\t\t\t\tthis.processAdapters(listItem, entryValue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (listItem instanceof EventDispatcher) {\r\n\t\t\t\t\t\t\t\t\t\tthis.processEvents(listItem, entryValue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (listItem instanceof DictionaryTemplate) {\r\n\t\t\t\t\t\t\t\t\t\tthis.processDictionaryTemplate(listItem, entryValue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (item.template[entryKey] instanceof BaseObject) {\r\n\t\t\t\t\t\t\t\t\t\t// Template is a BaseObject. Let it deal with its own config.\r\n\t\t\t\t\t\t\t\t\t\t(<any>item.template[entryKey]).config = entryValue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if ($type.isObject(entryValue) && $type.hasValue((<any>entryValue)[\"type\"])) {\r\n\t\t\t\t\t\t\t\t\t\tlistItem = this.createClassInstance((<any>entryValue)[\"type\"])\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (listItem) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (listItem instanceof BaseObject) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlistItem.config = <any>entryValue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\titem.template[entryKey] = listItem;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\titem.template[entryKey] = entryValue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (listItem instanceof List) {\r\n\t\t\t\t\t\t\t\t\t\t// It's List, process it\r\n\t\t\t\t\t\t\t\t\t\tthis.processList(entryValue, listItem);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t// Aything else. Just assing and be done with it.\r\n\t\t\t\t\t\t\t\t\t\titem.template[entryKey] = this.maybeColorOrPercent(entryValue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Check maybe there are `values` to insert\r\n\t\t\t\t\t\t\tif ($type.hasValue((<any>configValue).values)) {\r\n\t\t\t\t\t\t\t\tif (item instanceof ListTemplate) {\r\n\t\t\t\t\t\t\t\t\tthis.processListTemplate((<any>configValue).values, item);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tthis.processOrderedTemplate((<any>configValue).values, item);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t// Something else?\r\n\t\t\t\t\t\t// Not sure what to do with it on a list - ignore\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if (item instanceof List) {\r\n\r\n\t\t\t\t\t// ... a list\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\tif (configKey == \"children\") {\r\n\t\t\t\t\t\tthis.processList(configValue, item, this);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.processList(configValue, item);\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if (item instanceof DictionaryTemplate) {\r\n\r\n\t\t\t\t\t// ... a dictionary with template\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\tthis.processDictionaryTemplate(item, configValue);\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if (item instanceof Dictionary) {\r\n\r\n\t\t\t\t\t// ... a dictionary\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\tthis.processDictionary(item, configValue);\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if (item instanceof Color || item instanceof Percent) {\r\n\r\n\t\t\t\t\t// ... it's a Color or Percent\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\t\t\t\t\ttarget[configKey] = this.maybeColorOrPercent(configValue);\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse if ($type.isObject(item) && $type.isObject(configValue)) {\r\n\r\n\t\t\t\t\t// ... a regular object\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\t$object.copyAllProperties(<Object>configValue, <Object>item);\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse {\r\n\r\n\t\t\t\t\t// ... something else - probably a simple property or object\r\n\t\t\t\t\t// ------------------------------------------------------------------\r\n\r\n\t\t\t\t\t// Maybe convert to `Percent` or `Color`?\r\n\t\t\t\t\tconfigValue = this.maybeColorOrPercent(configValue);\r\n\r\n\t\t\t\t\t// Assign\r\n\t\t\t\t\ttarget[configKey] = configValue;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if (!this.isReserved(configKey)) {\r\n\r\n\t\t\t\t// Doesn't have property set. But we're going to assume JSON config\r\n\t\t\t\t// creator knows what he/she is doing and set it anyway.\r\n\t\t\t\ttarget[configKey] = configValue;\r\n\r\n\t\t\t}\r\n\t\t}, this.configOrder);\r\n\r\n\t\t// Any errors?\r\n\t\tif (this.processingErrors.length) {\r\n\t\t\tlet errors = this.processingErrors.join(\"\\n\");\r\n\t\t\tthis._processingErrors = [];\r\n\t\t\tthrow Error(errors);\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Tries to detect if value is color or percent and converts to proper object\r\n\t * if necessary.\r\n\t *\r\n\t * Returns the same source value if no color/percent detected\r\n\t *\r\n\t * @param value Source value\r\n\t * @return Converted value\r\n\t */\r\n\tprotected maybeColorOrPercent(value: any): any {\r\n\t\tif ($type.isString(value)) {\r\n\t\t\tif (value.match(/^[\\-]?[0-9.]+\\%$/)) {\r\n\t\t\t\treturn percent($type.toNumber(value));\r\n\t\t\t}\r\n\t\t\telse if (value.match(/^\\#[0-9abcdef]{3,}$/i)) {\r\n\t\t\t\treturn color(value);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\tprotected processAdapters(item: Adapter<any, any>, config: any): void {\r\n\t\tif ($type.isArray(config)) {\r\n\t\t\t$array.each(config, (entry: { key: string, callback: any, priority?: number }, index) => {\r\n\t\t\t\titem.add(entry.key, entry.callback, entry.priority || 0, this);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if ($type.isObject(config)) {\r\n\t\t\t$object.each(config, (key, entry) => {\r\n\t\t\t\tif (!item.has(key, entry)) {\r\n\t\t\t\t\titem.add(key, entry);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprotected processEvents(item: EventDispatcher<any>, config: any): void {\r\n\t\tif ($type.isObject(config)) {\r\n\t\t\t$object.each(config, (key, entry) => {\r\n\t\t\t\tif (!item.has(key, entry)) {\r\n\t\t\t\t\titem.on(key, entry);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if ($type.isArray(config)) {\r\n\t\t\t$array.each(config, (entry: { type: string, callback: any }, index) => {\r\n\t\t\t\titem.on(entry.type, entry.callback, this);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON config for a [[DictionaryTemplate]] item.\r\n\t *\r\n\t * @todo Description\r\n\t * @param item Item\r\n\t * @param config Config\r\n\t */\r\n\tprotected processDictionaryTemplate(item: DictionaryTemplate<any, any>, config: any): void {\r\n\r\n\t\t// We can only process object\r\n\t\t// Not sure what to do with other types - ignore\r\n\t\tif ($type.isObject(config)) {\r\n\r\n\t\t\t// Create an entry for each item, or override properties for\r\n\t\t\t// existing one.\r\n\t\t\t$object.each(config, (entryKey, entryValue) => {\r\n\t\t\t\tlet listItem;\r\n\r\n\t\t\t\t// Get existing one, or create a new one\r\n\t\t\t\tif (entryKey == \"template\") {\r\n\t\t\t\t\tlistItem = item.template;\r\n\t\t\t\t}\r\n\t\t\t\telse if (item.hasKey(entryKey)) {\r\n\t\t\t\t\tlistItem = item.getKey(entryKey);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlistItem = item.create(entryKey);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set data\r\n\t\t\t\tif (listItem instanceof BaseObject) {\r\n\t\t\t\t\tlistItem.config = entryValue;\r\n\t\t\t\t}\r\n\t\t\t\telse if ($type.isObject(listItem) && $type.isObject(entryValue)) {\r\n\t\t\t\t\t$object.copyAllProperties(<Object>entryValue, <Object>listItem);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlistItem.setKey(entryKey, entryValue);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON config for a [[Dictionary]] item.\r\n\t *\r\n\t * @todo Description\r\n\t * @param item Item\r\n\t * @param config Config\r\n\t */\r\n\tprotected processDictionary(item: Dictionary<any, any>, config: any): void {\r\n\r\n\t\t// We can only process object\r\n\t\t// Not sure what to do with other types - ignore\r\n\t\tif ($type.isObject(config)) {\r\n\r\n\t\t\t// Create an entry for each item, or override properties for\r\n\t\t\t// existing one.\r\n\t\t\t// @todo support for non-basic types\r\n\t\t\t$object.each(config, (entryKey, entryValue) => {\r\n\t\t\t\titem.setKey(entryKey, entryValue);\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes [[ListTemplate]].\r\n\t *\r\n\t * @param configValue Config value\r\n\t * @param item Item\r\n\t */\r\n\tprotected processListTemplate(configValue: any, item: ListTemplate<any>): void {\r\n\r\n\t\t$array.each(configValue, (entry, index) => {\r\n\t\t\tlet type = this.getConfigEntryType(entry);\r\n\t\t\tlet listItem;\r\n\t\t\tif (item.hasIndex(index) && !(<any>entry)[\"forceCreate\"]) {\r\n\t\t\t\tlistItem = item.getIndex(index);\r\n\t\t\t}\r\n\t\t\telse if (<any>entry instanceof BaseObject) {\r\n\t\t\t\t// Item is already a BaseObject, no need to process it further\r\n\t\t\t\titem.push(entry);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse if (type) {\r\n\t\t\t\tlistItem = item.create(type);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlistItem = item.create();\r\n\t\t\t}\r\n\r\n\t\t\tif (entry === listItem) {\r\n\t\t\t\t// It's already the same item, do nothing\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\tif ($type.isObject(entry)) {\r\n\r\n\t\t\t\t\t// If the list item is BaseObject, we just need to let it\r\n\t\t\t\t\t// deal if its own config\r\n\t\t\t\t\tif (listItem instanceof BaseObject) {\r\n\t\t\t\t\t\t(<any>listItem).config = entry;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n\t\t\t\t\t\t$object.copyAllProperties(<Object>entry, <Object>listItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem.setIndex(item.indexOf(listItem), entry);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Truncate the list if it contains less items than the config\r\n\t\t// array\r\n\t\twhile (configValue.length > item.length) {\r\n\t\t\titem.pop();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Processes [[OrdererListTemplate]] or [[SortedListTemplate]].\r\n\t *\r\n\t * @param configValue Config value\r\n\t * @param item Item\r\n\t */\r\n\tprotected processOrderedTemplate(configValue: any, item: OrderedListTemplate<any> | SortedListTemplate<any>): void {\r\n\r\n\t\t$array.each(configValue, (entry, index) => {\r\n\t\t\tlet type = this.getConfigEntryType(entry);\r\n\t\t\tlet listItem;\r\n\t\t\tif (type) {\r\n\t\t\t\tlistItem = item.create(type);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlistItem = item.create();\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isObject(entry)) {\r\n\r\n\t\t\t\t// If the list item is BaseObject, we just need to let it\r\n\t\t\t\t// deal if its own config\r\n\t\t\t\tif (listItem instanceof BaseObject) {\r\n\t\t\t\t\t(<any>listItem).config = entry;\r\n\t\t\t\t}\r\n\t\t\t\telse if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n\t\t\t\t\t$object.copyAllProperties(<Object>entry, <Object>listItem);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\titem.insert(entry);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Processes [[List]].\r\n\t *\r\n\t * @param configValue Config value\r\n\t * @param item Item\r\n\t */\r\n\tprotected processList(configValue: any, item: List<any>, parent?: any): void {\r\n\r\n\t\t// Convert to array if necessary\r\n\t\tif (!$type.isArray(configValue)) {\r\n\t\t\tconfigValue = [configValue];\r\n\t\t}\r\n\r\n\t\t// It's an array\r\n\t\t// Create a list item for entry\r\n\t\tconst itemCount = item.length;\r\n\t\t$array.each(configValue, (entry, index) => {\r\n\r\n\t\t\tif ($type.isObject(entry)) {\r\n\r\n\r\n\t\t\t\t// An object.\r\n\t\t\t\t//\r\n\t\t\t\t// Let's see if we can instantiate a class out of it, or we need\r\n\t\t\t\t// to push it into list as it is.\r\n\t\t\t\t//\r\n\t\t\t\t// If there are items already at the specified index in the list,\r\n\t\t\t\t// apply properties rather than create a new one.\r\n\r\n\t\t\t\tlet listItem;\r\n\t\t\t\tif ((index < itemCount) && !(<any>entry)[\"forceCreate\"]) {\r\n\t\t\t\t\tlistItem = item.getIndex(index);\r\n\t\t\t\t}\r\n\t\t\t\telse if (<any>entry instanceof BaseObject) {\r\n\t\t\t\t\t// Item is already a BaseObject, no need to process it further\r\n\t\t\t\t\titem.push(entry);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlistItem = this.createEntryInstance(entry);\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tlistItem.parent = parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem.push(listItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the list item is BaseObject, we just need to let it\r\n\t\t\t\t// deal if its own config\r\n\t\t\t\tif (listItem instanceof BaseObject) {\r\n\t\t\t\t\t(<any>listItem).config = entry;\r\n\t\t\t\t}\r\n\t\t\t\telse if ($type.isObject(listItem) && $type.isObject(entry)) {\r\n\t\t\t\t\t$object.copyAllProperties(<Object>entry, <Object>listItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// Basic value.\r\n\t\t\t\t// Just push it into list, or override existing value\r\n\t\t\t\tif (item.hasIndex(index)) {\r\n\t\t\t\t\titem.setIndex(index, entry);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\titem.push(entry);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\t// Truncate the list if it contains less items than the config\r\n\t\t// array\r\n\t\twhile (configValue.length > item.length) {\r\n\t\t\titem.pop();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * This function is used to sort element's JSON config properties, so that\r\n\t * some properties that absolutely need to be processed last, can be put at\r\n\t * the end.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param a Element 1\r\n\t * @param b Element 2\r\n\t * @return Sorting number\r\n\t */\r\n\tprotected configOrder(a: string, b: string): Ordering {\r\n\t\tif (a == b) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Language must come first, so it's all set up when the rest of the\r\n\t\t// elements are being instantiated\r\n\t\telse if (a == \"language\") {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\telse if (b == \"language\") {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\r\n\t\telse {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if field should be just assigned as is, without any checking when\r\n\t * processing JSON config.\r\n\t *\r\n\t * Extending functions can override this function to do their own checks.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as is?\r\n\t */\r\n\tprotected asIs(field: string): boolean {\r\n\t\treturn $array.indexOf([\"locale\"], field) != -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if field needs to be converted to function, if it is specified\r\n\t * as string.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as function?\r\n\t */\r\n\tprotected asFunction(field: string): boolean {\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a relevant class instance if such class definition exists.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param className Class name\r\n\t * @return Instance\r\n\t */\r\n\tprotected createClassInstance(className: string): Object {\r\n\t\tif ($type.hasValue(registry.registeredClasses[className])) {\r\n\t\t\treturn new registry.registeredClasses[className]();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthrow Error(\"Invalid type: \\\"\" + className + \"\\\".\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a class instance for a config entry using it's type. (as set in\r\n\t * `type` property)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config part\r\n\t * @return Instance\r\n\t */\r\n\tprotected createEntryInstance(config: any): any {\r\n\t\tlet res: Object;\r\n\t\tif ($type.hasValue(config[\"type\"])) {\r\n\t\t\tres = this.createClassInstance(config[\"type\"]);\r\n\t\t}\r\n\t\tif (!res) {\r\n\t\t\treturn config;\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Determines config object type.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config part\r\n\t * @return Type\r\n\t */\r\n\tprotected getConfigEntryType(config: any): any {\r\n\t\tif ($type.hasValue(config[\"type\"])) {\r\n\t\t\tif ($type.hasValue(registry.registeredClasses[config[\"type\"]])) {\r\n\t\t\t\treturn registry.registeredClasses[config[\"type\"]];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthrow Error(\"Invalid type: \\\"\" + config[\"type\"] + \"\\\".\");\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if this element has a property.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param prop Property name\r\n\t * @return Has property?\r\n\t */\r\n\tprotected hasProperty(prop: string): boolean {\r\n\t\treturn prop in this ? true : false;\r\n\t}\r\n\r\n\t/**\r\n\t * Checkes whether JSON key is a reserved keyword.\r\n\t *\r\n\t * @param key Key\r\n\t * @return Reserved\r\n\t */\r\n\tprotected isReserved(key: string): boolean {\r\n\t\treturn [\"type\", \"forceCreate\"].indexOf(key) !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of errors that happened during JSON processing.\r\n\t *\r\n\t * @return Errors\r\n\t */\r\n\tprotected get processingErrors(): string[] {\r\n\t\tif (!this._processingErrors) {\r\n\t\t\tthis._processingErrors = [];\r\n\t\t}\r\n\t\treturn this._processingErrors;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[BaseObjectEvents]].\r\n */\r\nexport interface IBaseObjectEvents { };\r\n\r\n/**\r\n * A version of [[BaseObject]] with events properties and methods.\r\n * Classes that use [[EventDispatcher]] should extend this instead of\r\n * [[BaseObject]] directly.\r\n */\r\nexport class BaseObjectEvents extends BaseObject {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"BaseObjectEvents\";\r\n\t}\r\n\r\n\tpublic _events!: IBaseObjectEvents;\r\n\r\n\t/**\r\n\t * An [[EventDispatcher]] instance\r\n\t * @ignore\r\n\t */\r\n\tpublic _eventDispatcher: EventDispatcher<AMEvent<this, this[\"_events\"]>>;\r\n\r\n\t/**\r\n\t * An [[EventDispatcher]] instance\r\n\t */\r\n\tpublic get events(): EventDispatcher<AMEvent<this, this[\"_events\"]>> {\r\n\t\tif (!this._eventDispatcher) {\r\n\t\t\tthis._eventDispatcher = new EventDispatcher();\r\n\t\t\tthis._disposers.push(this._eventDispatcher);\r\n\t\t}\r\n\t\treturn this._eventDispatcher;\r\n\t}\r\n\r\n\t//public set events(value:EventDispatcher<AMEvent<this, this[\"_events\"]>>){\r\n\t//\tthis._eventDispatcher = value;\r\n\t//}\r\n\r\n\t/**\r\n\t * Dispatches an event using own event dispatcher. Will automatically\r\n\t * populate event data object with event type and target (this element).\r\n\t * It also checks if there are any handlers registered for this sepecific\r\n\t * event.\r\n\t *\r\n\t * @param eventType Event type (name)\r\n\t * @param data Data to pass into event handler(s)\r\n\t */\r\n\tpublic dispatch<Key extends keyof this[\"_events\"]>(eventType: Key, data?: any): void {\r\n\t\t// @todo Implement proper type check\r\n\t\tif (this._eventDispatcher) {\r\n\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tdata.type = eventType;\r\n\t\t\t\t\tdata.target = data.target || this;\r\n\t\t\t\t\t(<any>this.events).dispatch(eventType, {\r\n\t\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\t\ttarget: this\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t(<any>this.events).dispatch(eventType, {\r\n\t\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\t\ttarget: this\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Works like `dispatch`, except event is triggered immediately, without\r\n\t * waiting for the next frame cycle.\r\n\t *\r\n\t * @param eventType Event type (name)\r\n\t * @param data Data to pass into event handler(s)\r\n\t */\r\n\tpublic dispatchImmediately<Key extends keyof this[\"_events\"]>(eventType: Key, data?: any): void {\r\n\t\t// @todo Implement proper type check\r\n\t\tif (this._eventDispatcher) {\r\n\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tdata.type = eventType;\r\n\t\t\t\t\tdata.target = data.target || this;\r\n\t\t\t\t\t(<any>this.events).dispatchImmediately(eventType, data);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t(<any>this.events).dispatchImmediately(eventType, {\r\n\t\t\t\t\t\ttype: eventType,\r\n\t\t\t\t\t\ttarget: this\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Sprite]].\r\n\t *\r\n\t * @param source Source object\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (source._eventDispatcher) {\r\n\t\t\tthis.events.copyFrom(source._eventDispatcher);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport { ILocale } from \"./utils/Language\";\n\n/**\n * Defines system-wide options for amCharts 4.\n *\n * Accessible via singleton object `am4core.options`.\n *\n * Options set here are will be applicable to all charts created afterwards.\n *\n * E.g.:\n *\n * ```TypeScript\n * am4core.options.autoSetClassName = true;\n * ```\n * ```JavaScript\n * am4core.options.autoSetClassName = true;\n * ```\n */\nexport interface Options {\n\t/**\n\t * Console output enabled.\n\t */\n\tverbose: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\tcommercialLicense: boolean;\n\n\t/**\n\t * amCharts will add `class` property to some elements. All those class names\n\t * will be prefixed by `classNamePrefix`.\n\t *\n\t * @default \"amcharts-\"\n\t */\n\tclassNamePrefix: string;\n\n\t/**\n\t * Normally, the chart will create its elements without any `className`\n\t * attributes.\n\t *\n\t * If you set this to `true`, it will set class names that will reflect\n\t * the actual class this the SVG element corresponds to.\n\t *\n\t * The className will contain class prefixed with `amcharts-`. (prefix is\n\t * configurable via `classNamePrefix`)\n\t *\n\t * E.g. `\"amcharts-button\"`.\n\t *\n\t * @default false\n\t */\n\tautoSetClassName: boolean;\n\n\t/**\n\t * A default locale to auto-apply to all new charts created.\n\t */\n\tdefaultLocale?: ILocale;\n\n\t/**\n\t * When multi-segment lines ([[Polyline]]) are drawn some points may be\n\t * simplified if they are closer than `minPolylineStep`.\n\t *\n\t * The bigger this value, the more simplified lines will come out.\n\t *\n\t * This setting will effect [[LineSeries]] and derivative classes.\n\t *\n\t * @default 0.5\n\t * @since 4.2.5\n\t */\n\tminPolylineStep?: number;\n\n\t/**\n\t * Whether the chart should only display when its container is visible\n\t * on the document viewport.\n\t *\n\t * This setting can be combined with `queue` for better performance.\n\t *\n\t * NOTE: if your charts are located in the scrollable container, make sure\n\t * you also set `viewportTarget` to a reference for that container.\n\t *\n\t * @default false\n\t * @since 4.5.0\n\t */\n\tonlyShowOnViewport: boolean;\n\n\t/**\n\t * A reference to the HTML element to be used as a secondary viewport for\n\t * charts.\n\t *\n\t * Use this if you are placing charts in a scrollable container and using\n\t * with `onlyShowOnViewport = true`.\n\t *\n\t * @since 4.7.4\n\t */\n\tviewportTarget?: HTMLElement | HTMLElement[];\n\n\t/**\n\t * Whether to queue all charts rendering. One chart will be rendered at a time. The next\n\t * chart starts to render after the previous chart's ready event.\n\t *\n\t * This setting can be combined with `onlyShowOnViewport` for better performance.\n\t *\n\t * @default false\n\t * @since 4.5.0\n\t */\n\tqueue: boolean;\n\n\t/**\n\t * Whether to automatically dispose the charts when they're removed from the DOM.\n\t *\n\t * @default false\n\t * @since 4.9.25\n\t */\n\tautoDispose: boolean;\n\n\t/**\n\t * List of applied licenses.\n\t *\n\t * @type {String[]}\n\t */\n\tlicenses: String[];\n\n\t/**\n\t * Should error modals be suppressed from displaying.\n\t *\n\t * Errors might originate from setting validation code, or generic JS-thrown\n\t * errors.\n\t *\n\t * @since 4.9.13\n\t * @default false\n\t */\n\tsuppressErrors: boolean;\n\n\t/**\n\t * Set this to `false` to effectivly disable all animations on all charts\n\t * regardless of themes used or individual animation properties.\n\t *\n\t * @since 4.9.14\n\t * @default false\n\t */\n\tanimationsEnabled: boolean\n\n\t/**\n\t * If set, amCharts will use this as a nonce-parameter for all dynamically\n\t * created stylesheets, so it can be addressed in `Content-Security-Policy`\n\t * headers.\n\t *\n\t * @since 4.9.17\n\t */\n\tnonce: string\n\n}\n\n/**\n * Global options.\n */\nexport const options: Options = {\n\tverbose: true,\n\tcommercialLicense: false,\n\tclassNamePrefix: \"amcharts-\",\n\tautoSetClassName: false,\n\tminPolylineStep: 0.5,\n\tonlyShowOnViewport: false,\n\tqueue: false,\n\tautoDispose: false,\n\tlicenses: [],\n\tsuppressErrors: false,\n\tanimationsEnabled: true,\n\tnonce: \"\"\n};\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import _extends from \"babel-runtime/helpers/extends\";\nfunction omit(obj, fields) {\n var shallowCopy = _extends({}, obj);\n for (var i = 0; i < fields.length; i++) {\n var key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport default omit;","/**\r\n * Responsive functionality module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents, IBaseObjectEvents } from \"../Base\";\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters } from \"../Sprite\";\r\nimport { SpriteState } from \"../SpriteState\";\r\nimport { Container } from \"../Container\";\r\nimport { Component } from \"../Component\";\r\nimport { List } from \"../utils/List\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { IDisposer } from \"../utils/Disposer\";\r\nimport { registry } from \"../Registry\";\r\nimport { Optional } from \"../utils/Type\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines an interface for the responsive rule, i.e. what overrides need to\r\n * be applied when certain conditions are matched.\r\n *\r\n * @important\r\n */\r\nexport interface IResponsiveRule {\r\n\r\n\t/**\r\n\t * A function which determines if this rule is relevant to current\r\n\t * conditions.\r\n\t *\r\n\t * Whenever the chrt size changes, this function will be run to determine\r\n\t * whether this rule needs to be applied.\r\n\t */\r\n\trelevant(target: Container): boolean;\r\n\r\n\t/**\r\n\t * A function which creates and returns a [[SpriteState]] that needs to be\r\n\t * set whenever rule should be applied.\r\n\t *\r\n\t * This is run only once.\r\n\t *\r\n\t * Once state is created, it is added to the Sprite's available states and\r\n\t * applied as necessary.\r\n\t */\r\n\tstate(target: Sprite, stateId: string): Optional<SpriteState<ISpriteProperties, ISpriteAdapters>>;\r\n\r\n\t/**\r\n\t * ID of the rule.\r\n\t */\r\n\tid?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Responsive]].\r\n */\r\nexport interface IResponsiveEvents extends IBaseObjectEvents {\r\n\r\n\t/**\r\n\t * Invoked when a list of applicable rules for the current resolution\r\n\t * changes.\r\n\t */\r\n\truleschanged: {},\r\n\r\n\t/**\r\n\t * Invoked after each rule is applied to the actual element.\r\n\t */\r\n\truleapplied: {\r\n\r\n\t\t/**\r\n\t\t * A rule that was just applied.\r\n\t\t */\r\n\t\t\"rule\": IResponsiveRule\r\n\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Responsive]] class.\r\n *\r\n * Includes both the [[Adapter]] definitions and properties.\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IResponsiveAdapters {\r\n\r\n\t/**\r\n\t * Are responsive features enabled?\r\n\t */\r\n\tenabled: boolean;\r\n\r\n\t/**\r\n\t * Use default rules?\r\n\t *\r\n\t * If this is set `false`, only user-defined rules will be applied.\r\n\t */\r\n\tuseDefault: boolean;\r\n\r\n\t/**\r\n\t * A list of user-defined rules.\r\n\t */\r\n\trules: List<IResponsiveRule>;\r\n\r\n\t/**\r\n\t * A list of default rules.\r\n\t */\r\n\tdefaultRules: List<IResponsiveRule>;\r\n\r\n\t/**\r\n\t * A list of **all** rules - user-defined and default combined.\r\n\t */\r\n\tallRules: List<IResponsiveRule>;\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Responsive is responsible for overriding certain properties when conditions\r\n * are met.\r\n *\r\n * This class is used to dynamically apply and change certain chart properties\r\n * based on the current values of properties.\r\n *\r\n * Mainly, this is used with [[Sprite]]'s dimensional properties, like\r\n * `pixelWidth` and `pixelHeight`. However, it can be used to dynamically\r\n * change any property, based on any other property's value.\r\n *\r\n * A default responsive rules are disabled.\r\n *\r\n * To enable, set `enabled = false`. E.g.:\r\n *\r\n * ```TypeScript\r\n * chart.responsive.enabled = true;\r\n * ```\r\n * ```JavaScript\r\n * chart.responsive.enabled = true;\r\n * ```\r\n *\r\n * @see {@link IResponsiveEvents} for a list of available events\r\n * @see {@link IResponsiveAdapters} for a list of available Adapters\r\n * @todo Add default rules\r\n * @todo Watch for rule modification\r\n * @important\r\n */\r\nexport class Responsive extends BaseObjectEvents {\r\n\r\n\t/**\r\n\t * Holds a list of responsive rules organized by object type.\r\n\t */\r\n\tprotected _rules = new List<IResponsiveRule>();\r\n\r\n\t/**\r\n\t * Holds the list of the default responsive rules.\r\n\t * @deprecated\r\n\t */\r\n\t//protected _defaultRules = new List<IResponsiveRule>();\r\n\r\n\t/**\r\n\t * Holds the list of currently applied rules.\r\n\t */\r\n\tprotected _appliedRules: { [index: string]: boolean } = {};\r\n\r\n\t/**\r\n\t * Used to keep track of objects that have rules applied at the moment.\r\n\t */\r\n\tprotected _appliedTargets: string[] = [];\r\n\r\n\t/**\r\n\t * Use default rules in addition to the user-defined ones?\r\n\t */\r\n\tprotected _useDefault = true;\r\n\r\n\t/**\r\n\t * A target object responsive rules apply to.\r\n\t */\r\n\tprotected _component: $type.Optional<Component>;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IResponsiveEvents;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IResponsiveAdapters;\r\n\r\n\t/**\r\n\t * Adapter.\r\n\t */\r\n\tpublic adapter = new Adapter<this, IResponsiveAdapters>(this);\r\n\r\n\t/**\r\n\t * Indicates of responsive rules application is enabled.\r\n\t */\r\n\tprotected _enabled = false;\r\n\r\n\t/**\r\n\t * Holds disposers for all events added by this class.\r\n\t */\r\n\tprotected _responsiveDisposers: Array<IDisposer> = [];\r\n\r\n\t/**\r\n\t * Collection of objects and state ids that do not have any properties set.\r\n\t */\r\n\tprivate _noStates: string[] = [];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Responsive\";\r\n\r\n\t\t// Set up rules list events\r\n\t\tthis.rules.events.on(\"inserted\", () => { this.checkRules(); }, true);\r\n\t\tthis.rules.events.on(\"removed\", () => { this.checkRules(); }, true);\r\n\t\tthis._disposers.push(this.rules.events);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A target object that responsive rules will need to be applied to.\r\n\t *\r\n\t * @param value Target object\r\n\t */\r\n\tpublic set component(value: $type.Optional<Component>) {\r\n\r\n\t\t// Check if it's the same\r\n\t\tif (value == this._component) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if we already have a set up component and remove its events\r\n\t\tthis.disposeResponsiveHandlers();\r\n\r\n\t\t// Set\r\n\t\tthis._component = value;\r\n\r\n\t\t// Set up resize monitoring events\r\n\t\tthis._responsiveDisposers.push($type.getValue(this.component).events.on(\"sizechanged\", () => { this.checkRules(); }, this));\r\n\t\tthis._responsiveDisposers.push($type.getValue(this.component).events.on(\"datavalidated\", () => {\r\n\t\t\tif (this._component.isReady()) {\r\n\t\t\t\tthis.checkRules(true);\r\n\t\t\t}\r\n\t\t}, this));\r\n\r\n\t\t// Enable resoponsive\r\n\t\tthis.enabled = true;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @return Target object\r\n\t */\r\n\tpublic get component(): $type.Optional<Component> {\r\n\t\treturn this._component;\r\n\t}\r\n\r\n\t/**\r\n\t * Should responsive rules be checked against and applied?\r\n\t *\r\n\t * @default false\r\n\t * @param value Apply responsive rules?\r\n\t */\r\n\tpublic set enabled(value: boolean) {\r\n\t\tif (this._enabled != value) {\r\n\t\t\tthis._enabled = value;\r\n\r\n\t\t\t// Run `applyRules` so that any currently applied rules can be reset\r\n\t\t\tthis.applyRules();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Apply responsive rules?\r\n\t */\r\n\tpublic get enabled(): boolean {\r\n\t\treturn this.adapter.apply(\"enabled\", this._enabled);\r\n\t}\r\n\r\n\t/**\r\n\t * Should default responsive rules be applied in addition to user-defined\r\n\t * ones.\r\n\t *\r\n\t * User-defined rules will take precedence over default rules whenever they\r\n\t * produce conflicting settings.\r\n\t *\r\n\t * @default true\r\n\t * @param value Use default rules?\r\n\t */\r\n\tpublic set useDefault(value: boolean) {\r\n\t\tif (this._useDefault != value) {\r\n\t\t\tthis._useDefault = value;\r\n\r\n\t\t\t// Run `applyRules` so that any currently applied rules can be reset\r\n\t\t\tthis.applyRules();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use default rules?\r\n\t */\r\n\tpublic get useDefault(): boolean {\r\n\t\treturn this.adapter.apply(\"useDefault\", this._useDefault);\r\n\t}\r\n\r\n\t/**\r\n\t * User-defined responsive rules.\r\n\t *\r\n\t * User-defined rules will take precedence over default rules whenever they\r\n\t * produce conflicting settings.\r\n\t *\r\n\t * Use `allRules` to get all applicable rules including default and\r\n\t * user-defined ones.\r\n\t *\r\n\t * @param value User-defined rules\r\n\t */\r\n\tpublic set rules(value: List<IResponsiveRule>) {\r\n\t\tthis._rules = value;\r\n\t\tthis._enabled = true;\r\n\t\tthis.applyRules();\r\n\t}\r\n\r\n\t/**\r\n\t * @return User-defined rules\r\n\t */\r\n\tpublic get rules(): List<IResponsiveRule> {\r\n\t\treturn this.adapter.apply(\"rules\", this._rules);\r\n\t}\r\n\r\n\t/**\r\n\t * Default responsive rules.\r\n\t *\r\n\t * @readonly\r\n\t * @return List of responsive rules\r\n\t */\r\n\tpublic get defaultRules(): List<IResponsiveRule> {\r\n\t\treturn this.adapter.apply(\"defaultRules\", defaultRules);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns all rules: default rules (if not disabled) combined with\r\n\t * user-defined ones.\r\n\t *\r\n\t * @readonly\r\n\t * @return List of all applicable rules\r\n\t */\r\n\tpublic get allRules(): List<IResponsiveRule> {\r\n\r\n\t\t// Create empty list\r\n\t\tlet rules = new List<IResponsiveRule>();\r\n\r\n\t\t// Add default rules if not disabled\r\n\t\t// A code, requesting `allRules` must ensure loading of default rules\r\n\t\t// by calling `loadDefaultRules()`\r\n\t\tif (this.useDefault) {\r\n\t\t\trules.copyFrom(this.defaultRules);\r\n\t\t}\r\n\r\n\t\t// Add user-defined ones\r\n\t\trules.copyFrom(this.rules);\r\n\r\n\t\treturn this.adapter.apply(\"allRules\", rules);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if rule by the particular id currently applied.\r\n\t *\r\n\t * @param ruleId Rule ID\r\n\t * @return Is currently applied?\r\n\t */\r\n\tprotected isApplied(ruleId: string): boolean {\r\n\t\tconst rule = this._appliedRules[ruleId];\r\n\t\treturn $type.hasValue(rule) ? rule : false;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks which responsive rules currently satisfy their conditions and\r\n\t * should be applied, or unapplied.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic checkRules(force: boolean = false): void {\r\n\r\n\t\t// Check if there are any rules\r\n\t\tlet rules = this.allRules;\r\n\t\tif (!rules || rules.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Init a list of rules to be applied\r\n\t\tlet rulesChanged: boolean = false;\r\n\r\n\t\tconst component = $type.getValue(this.component);\r\n\r\n\t\t// Check which rules match\r\n\t\t$iter.each(rules.iterator(), (rule) => {\r\n\r\n\t\t\t// Check if rule has an id\r\n\t\t\tif (!rule.id) {\r\n\t\t\t\trule.id = registry.getUniqueId();\r\n\t\t\t}\r\n\r\n\t\t\t// Init indicator if this rule should be applied\r\n\t\t\tlet apply = rule.relevant(component);\r\n\r\n\t\t\t// Let's check if this rule needs to be applied\r\n\t\t\tif ((apply && !this.isApplied(rule.id)) || (!apply && this.isApplied(rule.id))) {\r\n\t\t\t\trulesChanged = true;\r\n\t\t\t}\r\n\t\t\tthis._appliedRules[rule.id] = apply;\r\n\t\t});\r\n\r\n\t\tif (force) {\r\n\t\t\trulesChanged = true;\r\n\t\t}\r\n\r\n\t\t// Check if we need to re-apply the rules\r\n\t\tif (rulesChanged) {\r\n\r\n\t\t\tif (!this.component.isReady()) {\r\n\t\t\t\t// The chart is not yet ready (built)\r\n\t\t\t\t// We will hide the chart and delay application of rules\r\n\t\t\t\t// until \"ready\" event kicks in\r\n\t\t\t\t//component.hide(0);\r\n\t\t\t\tcomponent.hidden = true;\r\n\t\t\t\tcomponent.events.once(\"ready\", (ev) => {\r\n\t\t\t\t\tev.target.show(0);\r\n\t\t\t\t\tthis.applyRules();\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.dispatchImmediately(\"ruleschanged\");\r\n\t\t\tthis.applyRules();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Applies current rules to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param target Target object\r\n\t * @todo Better type check\r\n\t */\r\n\tpublic applyRules(target?: Container): void {\r\n\t\t// If no target supplied, we assume the top-level element\r\n\t\tconst newTarget = ($type.hasValue(target)\r\n\t\t\t? target\r\n\t\t\t: $type.getValue(this.component));\r\n\t\t// Check each rule\r\n\t\tlet defaultStateApplied = false;\r\n\t\tif (this.enabled) {\r\n\t\t\tlet isApplied = false;\r\n\t\t\t$iter.each(this.allRules.iterator(), (rule) => {\r\n\r\n\t\t\t\t// Get relevant state\r\n\t\t\t\tlet state = this.getState(rule, newTarget);\r\n\r\n\t\t\t\t// If there's a state, it means it needs to be applied\r\n\t\t\t\tif (state) {\r\n\r\n\t\t\t\t\t// Check if default state was already applied to this element.\r\n\t\t\t\t\t// We don't want to go resetting default states to ALL element,\r\n\t\t\t\t\t// if they don't have responsive states.\r\n\t\t\t\t\tif (!defaultStateApplied) {\r\n\t\t\t\t\t\t// Nope, reset states (instantly).\r\n\t\t\t\t\t\tif ($array.indexOf(this._appliedTargets, newTarget.uid) !== -1) {\r\n\t\t\t\t\t\t\t// But only if this element has any rules applied, otherwise no\r\n\t\t\t\t\t\t\t// point in setting current state\r\n\t\t\t\t\t\t\tnewTarget.setState(this.getDefaultState(newTarget), 0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdefaultStateApplied = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Is this rule currently applied?\r\n\t\t\t\t\tif (this.isApplied($type.getValue(rule.id))) {\r\n\t\t\t\t\t\t// Yes. Apply the responsive state\r\n\t\t\t\t\t\tstate.transitionDuration = 0;\r\n\t\t\t\t\t\tthis.setTargetState(newTarget, state);\r\n\t\t\t\t\t\tthis.dispatchImmediately(\"ruleapplied\", {\r\n\t\t\t\t\t\t\trule: rule\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tisApplied = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (isApplied) {\r\n\t\t\t\t$array.replace(this._appliedTargets, newTarget.uid);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$array.remove(this._appliedTargets, newTarget.uid);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Apply rules to the children\r\n\t\tif (newTarget.children) {\r\n\t\t\t$iter.each(newTarget.children.iterator(), (child) => {\r\n\t\t\t\tthis.applyRules(child as Container);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a relative state for the rule/target, or `undefined` if no state is\r\n\t * needed.\r\n\t *\r\n\t * @param rule [description]\r\n\t * @param target [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected getState(rule: IResponsiveRule, target: any): Optional<SpriteState<any, any>> {\r\n\t\tlet stateId = \"responsive-\" + rule.id;\r\n\t\tlet tmpId = target.uid + \"_\" + stateId;\r\n\t\tif ($array.indexOf(this._noStates, tmpId) !== -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telse if (!target.states.hasKey(stateId)) {\r\n\t\t\tlet state = rule.state(target, stateId);\r\n\t\t\tif (!state) {\r\n\t\t\t\tthis._noStates.push(tmpId);\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn target.states.getKey(stateId);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns default responsive rule for the target.\r\n\t * \r\n\t * This rule will be used to \"reset\" to non-responsive values.\r\n\t * @param target Target Sprite\r\n\t * @return State\r\n\t */\r\n\tprotected getDefaultState(target: any): SpriteState<any, any> {\r\n\t\tif (target.states.hasKey(\"responsive-default\")) {\r\n\t\t\treturn target.states.getKey(\"responsive-default\");\r\n\t\t}\r\n\t\treturn target.states.create(\"responsive-default\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets state on the target element and updates default state with the\r\n\t * overwritten values if needed.\r\n\t * \r\n\t * @param target Target\r\n\t * @param state State\r\n\t */\r\n\tprotected setTargetState(target: any, state: SpriteState<any, any>): void {\r\n\t\t// Update default state\r\n\t\tconst defaultState = this.getDefaultState(target);\r\n\t\t$object.each(state.properties, (key, val) => {\r\n\t\t\tif (!$type.hasValue(defaultState.properties[key])) {\r\n\t\t\t\tdefaultState.properties[key] = this.getValue(target, key);\r\n\t\t\t}\r\n\t\t});\r\n\t\ttarget.setState(state);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a value from an element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param target Target object\r\n\t * @param property Property\r\n\t * @return Property value\r\n\t */\r\n\tpublic getValue(target: any, property: string): any {\r\n\t\t// This is a bit hacky, first we check if the property exist.\r\n\t\t// If it doesn't we try accessing target's property directly\r\n\t\tlet value: any = target.getPropertyValue(property);\r\n\t\tif (!$type.hasValue(value) && $type.hasValue(target[property])) {\r\n\t\t\tvalue = target[property];\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes the object.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tthis.disposeResponsiveHandlers();\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes all event handlers.\r\n\t */\r\n\tprotected disposeResponsiveHandlers(): void {\r\n\t\tlet disposer = this._responsiveDisposers.pop();\r\n\t\twhile (disposer) {\r\n\t\t\tdisposer.dispose();\r\n\t\t\tdisposer = this._responsiveDisposers.pop();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * [defaultRules description]\r\n *\r\n * @todo description\r\n */\r\nexport let defaultRules = new List<IResponsiveRule>();\r\ndefaultRules.events.on(\"inserted\", (ev) => {\r\n\tev.newValue.id = registry.getUniqueId();\r\n});\r\n\r\n/**\r\n *\r\n * @todo description\r\n */\r\nexport class ResponsiveBreakpoints {\r\n\r\n\t// Named pixel breakpoints\r\n\tstatic XXS = 100;\r\n\tstatic XS = 200;\r\n\tstatic S = 300;\r\n\tstatic M = 400;\r\n\tstatic L = 600;\r\n\tstatic XL = 800;\r\n\tstatic XXL = 1000;\r\n\r\n\t// Breakpoint functions (for use in `relevant` clause of the responsive rules)\r\n\r\n\tstatic widthXXS(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.XXS;\r\n\t}\r\n\r\n\tstatic widthXS(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.XS;\r\n\t}\r\n\r\n\tstatic widthS(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.S;\r\n\t}\r\n\r\n\tstatic widthM(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.M;\r\n\t}\r\n\r\n\tstatic widthL(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.L;\r\n\t}\r\n\r\n\tstatic widthXL(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.XL;\r\n\t}\r\n\r\n\tstatic widthXXL(container: Container): boolean {\r\n\t\treturn container.pixelWidth <= ResponsiveBreakpoints.XXL;\r\n\t}\r\n\r\n\r\n\tstatic heightXXS(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.XXS;\r\n\t}\r\n\r\n\tstatic heightXS(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.XS;\r\n\t}\r\n\r\n\tstatic heightS(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.S;\r\n\t}\r\n\r\n\tstatic heightM(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.M;\r\n\t}\r\n\r\n\tstatic heightL(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.L;\r\n\t}\r\n\r\n\tstatic heightXL(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.XL;\r\n\t}\r\n\r\n\tstatic heightXXL(container: Container): boolean {\r\n\t\treturn container.pixelHeight <= ResponsiveBreakpoints.XXL;\r\n\t}\r\n\r\n\r\n\tstatic isXXS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XXS) && (container.pixelHeight <= ResponsiveBreakpoints.XXS);\r\n\t}\r\n\r\n\tstatic isXS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XS) && (container.pixelHeight <= ResponsiveBreakpoints.XS);\r\n\t}\r\n\r\n\tstatic isS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.S) && (container.pixelHeight <= ResponsiveBreakpoints.S);\r\n\t}\r\n\r\n\tstatic isM(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.M) && (container.pixelHeight <= ResponsiveBreakpoints.M);\r\n\t}\r\n\r\n\tstatic isL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.L) && (container.pixelHeight <= ResponsiveBreakpoints.L);\r\n\t}\r\n\r\n\tstatic isXL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XL) && (container.pixelHeight <= ResponsiveBreakpoints.XL);\r\n\t}\r\n\r\n\tstatic isXXL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XXL) && (container.pixelHeight <= ResponsiveBreakpoints.XXL);\r\n\t}\r\n\r\n\r\n\tstatic maybeXXS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XXS) || (container.pixelHeight <= ResponsiveBreakpoints.XXS);\r\n\t}\r\n\r\n\tstatic maybeXS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XS) || (container.pixelHeight <= ResponsiveBreakpoints.XS);\r\n\t}\r\n\r\n\tstatic maybeS(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.S) || (container.pixelHeight <= ResponsiveBreakpoints.S);\r\n\t}\r\n\r\n\tstatic maybeM(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.M) || (container.pixelHeight <= ResponsiveBreakpoints.M);\r\n\t}\r\n\r\n\tstatic maybeL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.L) || (container.pixelHeight <= ResponsiveBreakpoints.L);\r\n\t}\r\n\r\n\tstatic maybeXL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XL) || (container.pixelHeight <= ResponsiveBreakpoints.XL);\r\n\t}\r\n\r\n\tstatic maybeXXL(container: Container): boolean {\r\n\t\treturn (container.pixelWidth <= ResponsiveBreakpoints.XXL) || (container.pixelHeight <= ResponsiveBreakpoints.XXL);\r\n\t}\r\n}\r\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 <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\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 \"<BrowserRouter> 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 <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\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 \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\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 <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\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 </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\r\n * A collection of String-based constants.\r\n * @hidden\r\n * @ignore Exclude from docs\r\n */\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let PX: string = \"px\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let STRING: string = \"string\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let NUMBER: string = \"number\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let DATE: string = \"date\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let DURATION: string = \"duration\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let PLACEHOLDER: string = \"__§§§__\";\r\n\r\n/**\r\n * @ignore Exclude from docs\r\n */\r\nexport let PLACEHOLDER2: string = \"__§§§§__\";\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SecureRoute = exports.LoginCallback = exports.OktaContext = exports.useOktaAuth = exports.AuthService = exports.withOktaAuth = exports.Security = undefined;\n\nvar _Security = require('./Security');\n\nvar _Security2 = _interopRequireDefault(_Security);\n\nvar _withOktaAuth = require('./withOktaAuth');\n\nvar _withOktaAuth2 = _interopRequireDefault(_withOktaAuth);\n\nvar _OktaContext = require('./OktaContext');\n\nvar _OktaContext2 = _interopRequireDefault(_OktaContext);\n\nvar _AuthService = require('./AuthService');\n\nvar _AuthService2 = _interopRequireDefault(_AuthService);\n\nvar _LoginCallback = require('./LoginCallback');\n\nvar _LoginCallback2 = _interopRequireDefault(_LoginCallback);\n\nvar _SecureRoute = require('./SecureRoute');\n\nvar _SecureRoute2 = _interopRequireDefault(_SecureRoute);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * Copyright (c) 2017-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexports.Security = _Security2.default;\nexports.withOktaAuth = _withOktaAuth2.default;\nexports.AuthService = _AuthService2.default;\nexports.useOktaAuth = _OktaContext.useOktaAuth;\nexports.OktaContext = _OktaContext2.default;\nexports.LoginCallback = _LoginCallback2.default;\nexports.SecureRoute = _SecureRoute2.default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _IconBase = _interopRequireDefault(require(\"./IconBase\"));\n\nvar _twoTonePrimaryColor = require(\"./twoTonePrimaryColor\");\n\nvar _utils = require(\"../utils\");\n\n// Initial setting\n// should move it to antd main repo?\n(0, _twoTonePrimaryColor.setTwoToneColor)('#1890ff');\nvar Icon = React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = (0, _objectWithoutProperties2.default)(props, [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"]);\n var classString = (0, _classnames.default)('anticon', (0, _defineProperty2.default)({}, \"anticon-\".concat(icon.name), Boolean(icon.name)), className);\n var svgClassString = (0, _classnames.default)({\n 'anticon-spin': !!spin || icon.name === 'loading'\n });\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = (0, _utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return React.createElement(\"span\", Object.assign({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), React.createElement(_IconBase.default, {\n className: svgClassString,\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\nexports.default = _default;","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}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\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}","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\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}","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}","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 _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n\n return pos;\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey() {\n var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var keys = new Map();\n\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode.key,\n children = treeNode.children;\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n var key = treeNode.key;\n\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, [\"children\"]);\n\n var dataNode = _objectSpread({\n key: key\n }, rest);\n\n var parsedChildren = dig(children);\n\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData() {\n var treeNodeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var expandedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode.key, pos); // Add FlattenDataNode into list\n\n var flattenNode = _objectSpread(_objectSpread({}, treeNode), {}, {\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n\n flattenList.push(flattenNode); // Loop treeNode children\n\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode.children || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback) {\n function processNode(node, index, parent) {\n var children = node ? node.children : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0'; // Process node if is not root\n\n if (node) {\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: node.key !== null ? node.key : pos,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1\n };\n callback(data);\n } // Process children node\n\n\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n });\n });\n }\n }\n\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref.initWrapper,\n processEntity = _ref.processEntity,\n onProcessFinished = _ref.onProcessFinished;\n\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level;\n var entity = {\n node: node,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity; // Fill children\n\n entity.parent = posEntities[parentPos];\n\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref2) {\n var expandedKeys = _ref2.expandedKeys,\n selectedKeys = _ref2.selectedKeys,\n loadedKeys = _ref2.loadedKeys,\n loadingKeys = _ref2.loadingKeys,\n checkedKeys = _ref2.checkedKeys,\n halfCheckedKeys = _ref2.halfCheckedKeys,\n dragOverNodeKey = _ref2.dragOverNodeKey,\n dropPosition = _ref2.dropPosition,\n keyEntities = _ref2.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active;\n\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active\n });\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n\n return eventData;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n\n if (index >= 0) {\n clone.splice(index, 1);\n }\n\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = list.slice();\n\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getDragNodesKeys(dragNodeKey, keyEntities) {\n var dragNodesKeys = [dragNodeKey];\n var entity = keyEntities[dragNodeKey];\n\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragNodesKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n return dragNodesKeys;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(),\n top = _treeNode$selectHandl.top,\n bottom = _treeNode$selectHandl.bottom,\n height = _treeNode$selectHandl.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n }\n\n if (clientY >= bottom - des) {\n return 1;\n }\n\n return 0;\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n\n return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"children\"]);\n\n var childrenNodes = convertDataToTree(children, processor);\n return React.createElement(TreeNode, Object.assign({}, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n } // Convert keys to object format\n\n\n var keyProps;\n\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}\n/**\n * Returns only the data- and aria- key/value pairs\n */\n\nexport function getDataAndAria(props) {\n var omitProps = {};\n Object.keys(props).forEach(function (key) {\n if (key.startsWith('data-') || key.startsWith('aria-')) {\n omitProps[key] = props[key];\n }\n });\n return omitProps;\n}","/**\r\n * An Adapter can be used to apply chained synchronous transformations to any\r\n * value at runtime.\r\n *\r\n * Each type class using Adapters must have `adapters` property and adapter\r\n * interface defined.\r\n *\r\n * Adapters can be used to allow external code to apply transformations to any\r\n * value at any time.\r\n *\r\n * For example we have a Weather class which has a method `now()` which returns\r\n * current temperature.\r\n *\r\n * ```\r\n * function now() {\r\n * // ... calculate temperature\r\n * let temp = \"Temperature now is \" + degrees + \"F\";\r\n * return temp;\r\n * }\r\n * ```\r\n *\r\n * Now, supposed we want to let other classes to modify the output of the\r\n * `now()`? We just apply an adapter to the `temp` before it is returned:\r\n *\r\n * ```\r\n * temp = this.adapters.apply(\"now\", {\r\n * temp: temp,\r\n * degrees: degrees\r\n * }).temp;\r\n * ```\r\n *\r\n * Some other class might tap onto it by defining an Adapter that calculates\r\n * the temperature in Celsius:\r\n *\r\n * weather.adapters.add(\"now\", (arg) => {\r\n * arg.temp += \"(\" + farenheitToCelsius(arg.degrees) + \"C)\";\r\n * return arh;\r\n * });\r\n *\r\n * Furthermore some time-related class could add time:\r\n *\r\n * weather.adapters.add(\"now\", (arg) => {\r\n * arg.temp += \"; the time now is \" + (new Date().toLocaleString());\r\n * return arh;\r\n * });\r\n *\r\n * So without adapters we would get output like this:\r\n *\r\n * ```\r\n * Temperature now is 90F\r\n * ```\r\n *\r\n * With adapters applied we now have:\r\n *\r\n * ```\r\n * Temperature now is 90F (32C); the time now is 12/11/2012, 7:00:00 PM\r\n * ```\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SortedList } from \"./SortedList\";\r\nimport { EventDispatcher } from \"./EventDispatcher\";\r\nimport * as $number from \"./Number\";\r\nimport * as $order from \"./Order\";\r\nimport * as $iter from \"../utils/Iterator\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $object from \"../utils/Object\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Adapter interface.\r\n */\r\ninterface IAdapterCallback<Target, T> {\r\n\tid: number;\r\n\tkey: any;\r\n\tcallback: any;\r\n\tscope: any;\r\n\tpriority: number;\r\n}\r\n\r\n/**\r\n * Defines an interface for a global adapter.\r\n */\r\ninterface IGlobalAdapterCallback {\r\n\tid: number;\r\n\tkey: string;\r\n\tcallback: <T, Target, Key extends keyof T, C>(this: C, value: T[Key], target: Target, key?: keyof T) => T[Key];\r\n\tscope: any;\r\n\tpriority: number;\r\n\ttype: { new(): any };\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * GLOBAL ADAPTER\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A global adapter is an adpater that is attached to a class type rather than\r\n * specific object instance.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport class GlobalAdapter {\r\n\r\n\t/**\r\n\t * Callback id iterator.\r\n\t */\r\n\tprivate _callbackId: number = 0;\r\n\r\n\t/**\r\n\t * A list of if callbacks (adapters).\r\n\t */\r\n\tprivate _callbacks = new SortedList<IGlobalAdapterCallback>((left, right) => {\r\n\t\treturn $order.or($number.order(left.priority, right.priority),\r\n\t\t\t$number.order(left.id, right.id));\r\n\t});\r\n\r\n\tpublic addAll<T, Target, Key extends keyof T>(\r\n\t\ttype: { new(): Target },\r\n\t\tkey: Key,\r\n\t\tcallback: (value: T[Key], target: Target, key: keyof T) => T[Key],\r\n\t\tpriority?: number\r\n\t): void;\r\n\r\n\tpublic addAll<T, Target, Key extends keyof T, C>(\r\n\t\ttype: { new(): Target },\r\n\t\tkey: Key,\r\n\t\tcallback: (this: C, value: T[Key], target: Target, key: keyof T) => T[Key],\r\n\t\tpriority?: number,\r\n\t\tscope?: C\r\n\t): void;\r\n\r\n\t/**\r\n\t * Adds a global callback which is not specific to any particular object.\r\n\t * Whenever an adapter in any object of the specific class type is invoked\r\n\t * global adapters will kick in.\r\n\t *\r\n\t * @param type Class type\r\n\t * @param key Adapter key\r\n\t * @param callback Callback function\r\n\t * @param priority Priority (higher priority meaning adapter will be applied later)\r\n\t * @param scope Callback function scaope\r\n\t */\r\n\tpublic addAll(type: any, key: any, callback: any, priority: number = 0, scope?: any): void {\r\n\t\tthis._callbacks.insert({\r\n\t\t\tid: ++this._callbackId,\r\n\t\t\tkey: key,\r\n\t\t\tcallback: callback,\r\n\t\t\tpriority: priority,\r\n\t\t\tscope: scope,\r\n\t\t\ttype: type\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if there are adapters for specific type available.\r\n\t *\r\n\t * @param type Adapter type\r\n\t * @param key Adapter key\r\n\t * @return {boolean}\r\n\t */\r\n\tpublic isEnabled<T, Target, Key extends keyof T>(type: Target, key: Key): boolean {\r\n\t\treturn $array.any(this._callbacks.values, (x) => x.key === key && type instanceof x.type);\r\n\t}\r\n\r\n\t/**\r\n\t * Applies global adapters for the object of the specific type.\r\n\t *\r\n\t * @param type Class type\r\n\t * @param key Adapter key\r\n\t * @param value Value\r\n\t */\r\n\tpublic applyAll<T, Target, Key extends keyof T = keyof T>(type: Target, key: Key, value: T[Key]): T[Key] {\r\n\t\t// This is needed to improve the performance and reduce garbage collection\r\n\t\tconst callbacks = this._callbacks.values;\r\n\t\tconst length = callbacks.length;\r\n\r\n\t\tif (length == 0) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\t// Cycle through all callbacks and find the ones we need to use\r\n\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\tconst item = callbacks[i];\r\n\r\n\t\t\tif (item.key === key && type instanceof item.type) {\r\n\t\t\t\tvalue = (<any>item).callback.call(item.scope, value, type, key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A global Adapter for plugins that want to add specific\r\n * functionality for any chart, not just specific instance.\r\n *\r\n * If you want to add an adapter which applies to all instances of the same\r\n * object type, like, for instance all slices in PieSeries, you can use\r\n * global adapter.\r\n *\r\n * Global adapter is a system-wide instance, accessible via `globalAdapter`.\r\n *\r\n * ```TypeScript\r\n * am4core.globalAdapter.addAll<am4charts.IPieSeriesAdapters, am4charts.PieSeries, \"fill\">(am4charts.PieSeries, \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * am4core.globalAdapter.addAll(am4charts.PieSeries, \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n *\r\n * @todo Description (improve)\r\n */\r\nexport let globalAdapter: GlobalAdapter = new GlobalAdapter();\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REGULAR ADAPTER\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Adapter allows adding ordered callback functions and associating them with a\r\n * string-based key. An Adapter user can then easily invoke those callbacks to\r\n * apply custom functions on its input, output or intermediate values.\r\n *\r\n * Custom code and plugins can add their own callbacks to modify and enhance\r\n * core functionality.\r\n *\r\n * See the description of `add()` for an example.\r\n *\r\n * Almost any object in amCharts4 has own adapter, accessible with `adapter`\r\n * property.\r\n *\r\n * Any adapters added to it will be applied to that object only.\r\n *\r\n * ### Global Adapters\r\n *\r\n * If you want to add an adapter which applies to all instances of the same\r\n * object type, like, for instance all slices in PieSeries, you can use\r\n * global adapter.\r\n *\r\n * Global adapter is a system-wide instance, accessible via `globalAdapter`.\r\n *\r\n * ```TypeScript\r\n * am4core.globalAdapter.addAll<am4charts.IPieSeriesAdapters, am4charts.PieSeries, \"fill\">(am4charts.PieSeries. \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n * ```JavaScript\r\n * am4core.globalAdapter.addAll(am4charts.PieSeries. \"fill\", (value, target, key) => {\r\n * return am4core.color(\"#005500\");\r\n * });\r\n * ```\r\n *\r\n * {@link https://www.amcharts.com/docs/v4/reference/adapter_module/#globalAdapter_property More info}.\r\n *\r\n * @important\r\n */\r\nexport class Adapter<Target, T> {\r\n\r\n\t/**\r\n\t * Internal counter for callback ids.\r\n\t */\r\n\tprivate _callbackId: number = 0;\r\n\r\n\t/**\r\n\t * A list of adapter callbacks.\r\n\t *\r\n\t * @param $number.order(left.priority, right.priority) [description]\r\n\t * @param $number.order(left.id, right.id));\t} [description]\r\n\t */\r\n\tprivate _callbacks = new SortedList<IAdapterCallback<Target, T>>((left, right) => {\r\n\t\treturn $order.or($number.order(left.priority, right.priority),\r\n\t\t\t$number.order(left.id, right.id));\r\n\t});\r\n\r\n\tprotected _disabled: { [key in keyof T]?: number } = {};\r\n\r\n\t/**\r\n\t * Holds an object reference this Adapter is for.\r\n\t */\r\n\tpublic object: Target;\r\n\r\n\t/**\r\n\t * Event dispatcher.\r\n\t */\r\n\tpublic events: EventDispatcher<{\r\n\t\tinserted: {};\r\n\t\tremoved: {};\r\n\t}>;\r\n\r\n\t/**\r\n\t * Constructor, sets the object referece this Adapter should be used for.\r\n\t *\r\n\t * @param c Object\r\n\t */\r\n\tconstructor(c: Target) {\r\n\t\tthis.object = c;\r\n\r\n\t\t// TODO this exposes the internal events\r\n\t\tthis.events = this._callbacks.events;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a callback for a specific key.\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Override fill color value and make all slices green\r\n\t * chart.series.template.adapter.add(\"fill\", (value, target, key) => {\r\n\t * return am4core.color(\"#005500\");\r\n\t * });\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * // Override fill color value and make all slices green\r\n\t * chart.series.template.adapter.add(\"fill\", function(value, target, key) {\r\n\t * return am4core.color(\"#005500\");\r\n\t * });\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"adapter\": {\r\n\t * \t// Override fill color value and make all slices green\r\n\t * \t\"fill\": function(value, target, key) {\r\n\t * \t return am4core.color(\"#005500\");\r\n\t * \t}\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * The above will call user-defined function (adapter) whenever `fill` value\r\n\t * is requested from the Pie series, allowing it to override the default\r\n\t * using custom code and any fuzzy logic.\r\n\t *\r\n\t * There can be any number of adapters set on one property key.\r\n\t *\r\n\t * In this case adapters will be applied in daisy-chain fashion. The first\r\n\t * adapter in queue will make its transformation. The next one will have\r\n\t * the output of the first adapter as a starting value, etc.\r\n\t *\r\n\t * The order of the adapters are determined either by the order they were\r\n\t * added in, or their `priority` value.\r\n\t *\r\n\t * The heigher the `priority`, the later in the game adapter will be applied.\r\n\t *\r\n\t * @param key Key\r\n\t * @param callback A callback function\r\n\t * @param priority The higher priority, the more chance the adapter will be applied last\r\n\t * @param scope Scope for the callback function\r\n\t */\r\n\tpublic add<Key extends keyof T, C>(key: Key, callback: (this: C, value: T[Key], target: Target, key: Key) => T[Key], priority: number = 0, scope?: C): void {\r\n\t\tthis._callbacks.insert({\r\n\t\t\tid: ++this._callbackId,\r\n\t\t\tkey: key,\r\n\t\t\tcallback: callback,\r\n\t\t\tpriority: priority,\r\n\t\t\tscope: scope\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether specific adapter is already set.\r\n\t *\r\n\t * @param key Key\r\n\t * @param callback A callback function\r\n\t * @param priority The higher priority, the more chance the adapter will be applied last\r\n\t * @param scope Scope for the callback function\r\n\t * @returns Adapter set?\r\n\t */\r\n\tpublic has<Key extends keyof T, C>(key: Key, callback: (this: C, value: T[Key], target: Target, key: Key) => T[Key], priority: number = 0, scope?: C): boolean {\r\n\t\treturn $iter.contains(this._callbacks.iterator(), (item) => {\r\n\t\t\treturn item.key === key && item.callback === callback && item.priority === priority && item.scope === scope;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Removes adapter callbacks for the specific `key`.\r\n\t *\r\n\t * If `priority` is specified, only callbacks for that priority are removed.\r\n\t *\r\n\t * @param key Key\r\n\t * @param priority Priority\r\n\t * @todo Implement\r\n\t */\r\n\tpublic remove(key: string, priority?: number): void {\r\n\t\t// It has to make a copy because it removes the elements while iterating\r\n\t\t// TODO inefficient\r\n\t\t// TODO should this re-enable the key ?\r\n\t\t$array.each($iter.toArray(this._callbacks.iterator()), (item) => {\r\n\t\t\t// TODO test this\r\n\t\t\tif (item.key === key && (!$type.isNumber(priority) || priority === item.priority)) {\r\n\t\t\t\tthis._callbacks.remove(item);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Enable applying adapters for a certain key, if it was disabled before by\r\n\t * `disableKey()`.\r\n\t *\r\n\t * @param key Key\r\n\t */\r\n\tpublic enableKey<Key extends keyof T>(key: Key): void {\r\n\t\tdelete this._disabled[key];\r\n\t}\r\n\r\n\t/**\r\n\t * Disable applying adapters for a certain key.\r\n\t *\r\n\t * Optionally, can set how many applies to skip before automatically\r\n\t * re-enabling the applying.\r\n\t *\r\n\t * @param key Key\r\n\t * @param amount Number of applies to skip\r\n\t */\r\n\tpublic disableKey<Key extends keyof T>(key: Key, amount: number = Infinity): void {\r\n\t\tthis._disabled[key] = amount;\r\n\t}\r\n\r\n\tprotected _hasListenersByType<Key extends keyof T>(key: Key): boolean {\r\n\t\treturn $array.any(this._callbacks.values, (x) => x.key === key);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if there are any enabled adapters set for the specific `key`.\r\n\t *\r\n\t * @returns Are there any adapters for the key?\r\n\t */\r\n\tpublic isEnabled<Key extends keyof T>(key: Key): boolean {\r\n\t\treturn this._disabled[key] == null && (this._hasListenersByType(key) || globalAdapter.isEnabled<T, Target, Key>(this.object, key));\r\n\t}\r\n\r\n\tprotected _shouldDispatch<Key extends keyof T>(key: Key): boolean {\r\n\t\tconst count = this._disabled[key];\r\n\r\n\t\tif (!$type.isNumber(count)) {\r\n\t\t\treturn true;\r\n\r\n\t\t} else {\r\n\t\t\tif (count <= 1) {\r\n\t\t\t\tdelete this._disabled[key];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t--this._disabled[key];\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Passes the input value through all the callbacks for the defined `key`.\r\n\t *\r\n\t * @param key Key\r\n\t * @param value Input value\r\n\t * @param ...rest Rest of the parameters to be passed into callback\r\n\t * @return Output value\r\n\t */\r\n\tpublic apply<Key extends keyof T>(key: Key, value: T[Key]): T[Key] {\r\n\t\tif (this._shouldDispatch(key)) {\r\n\t\t\t// This is needed to improve the performance and reduce garbage collection\r\n\t\t\tconst callbacks = this._callbacks.values;\r\n\t\t\tconst length = callbacks.length;\r\n\r\n\t\t\tif (length > 0) {\r\n\t\t\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\t\t\tconst item = callbacks[i];\r\n\r\n\t\t\t\t\tif (item.key === key) {\r\n\t\t\t\t\t\tvalue = item.callback.call(item.scope, value, this.object, key);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Apply global adapters\r\n\t\t\tvalue = globalAdapter.applyAll<T, Target, Key>(this.object, key, value);\r\n\r\n\t\t\treturn value;\r\n\r\n\t\t} else {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns all adapter keys which are in this adapter.\r\n\t *\r\n\t * @return Adapter keys\r\n\t */\r\n\tpublic keys(): Array<string> {\r\n\t\t// TODO inefficient\r\n\t\treturn $iter.toArray($iter.map(this._callbacks.iterator(), (x) => x.key));\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies all the adapter callbacks from `source`.\r\n\t *\r\n\t * @param source An Adapter to copy items from\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source._callbacks.iterator(), (x) => {\r\n\t\t\tthis.add(x.key, x.callback, x.priority, x.scope);\r\n\t\t});\r\n\t\t$object.each(source._disabled, (key, val) => {\r\n\t\t\tthis._disabled[key] = val;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clears all callbacks from this Adapter.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\t// TODO should this also re-enable all the keys ?\r\n\t\tthis._callbacks.clear();\r\n\t}\r\n\r\n}\r\n","import * as React from 'react';\nimport Empty from '../empty';\nimport { ConfigConsumer } from '.';\n\nvar renderEmpty = function renderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n\n default:\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\n\nexport default renderEmpty;","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 * as React from 'react';\nimport defaultRenderEmpty from './renderEmpty';\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n },\n renderEmpty: defaultRenderEmpty\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\nexport function withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n return SFC;\n };\n}","/**\r\n * Mouse-related functionality\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IStyleProperty } from \"../defs/IStyleProperty\";\r\n\r\n/**\r\n * Defines static methods that hold style list for various mouse cursor styles,\r\n * maintaining browser compatibility.\r\n */\r\nexport class MouseCursorStyle {\r\n\r\n\t/**\r\n\t * Styles for \"grab\" mouse cursor.\r\n\t */\r\n\tstatic grab: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"move\"\r\n\t}, {\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"grab\"\r\n\t}, {\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"-webkit-grab\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for \"grabbing\" mouse cursor.\r\n\t */\r\n\tstatic grabbing: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"move\"\r\n\t}, {\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"grabbing\"\r\n\t}, {\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"-webkit-grabbing\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for \"pointer\" mouse cursor. (usually used for links)\r\n\t */\r\n\tstatic pointer: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"pointer\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for default mouse cursor. (browser determines style)\r\n\t */\r\n\tstatic default: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"default\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for horizontal bi-directional resize mouse cursor.\r\n\t */\r\n\tstatic horizontalResize: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"ew-resize\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for vertical bi-directional mouse cursor.\r\n\t */\r\n\tstatic verticalResize: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"ns-resize\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for \"no-allowed\" cursor.\r\n\t * @since 4.7.15\r\n\t */\r\n\tstatic notAllowed: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"not-allowed\"\r\n\t}];\r\n\r\n\t/**\r\n\t * Styles for \"text\" cursor.\r\n\t * @since 4.9.12\r\n\t */\r\n\tstatic text: Array<IStyleProperty> = [{\r\n\t\t\"property\": \"cursor\",\r\n\t\t\"value\": \"text\"\r\n\t}];\r\n\r\n}\r\n","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n if (child === undefined || child === null) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","/**\r\n * Animation module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents, IBaseObjectEvents } from \"../Base\";\r\nimport { AMEvent } from \"../utils/EventDispatcher\";\r\nimport { SVGDefaults } from \"../defs/SVGDefaults\";\r\nimport { Disposer, IDisposer } from \"../utils/Disposer\";\r\nimport { Color } from \"../utils/Color\";\r\nimport { Percent, percent } from \"../utils/Percent\";\r\nimport * as $async from \"../utils/AsyncPending\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $colors from \"../utils/Colors\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $array from \"../utils/Array\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { system } from \"../System\";\r\nimport { options } from \"../Options\";\r\n\r\n\r\n/**\r\n * Defines interface for animation objects.\r\n *\r\n * Should at least contain `update()` method.\r\n */\r\nexport interface IAnimationObject {\r\n\tupdate: () => void\r\n}\r\n\r\n/**\r\n * Defines interface for objects that can be animated\r\n */\r\nexport interface IAnimatable {\r\n\tanimations: Array<Animation>;\r\n}\r\n\r\n\r\nexport type IAnimationOption = Color | Percent | number | string | boolean;\r\n\r\n/**\r\n * Defines interface for animation options.\r\n */\r\nexport interface IAnimationOptions {\r\n\r\n\t/**\r\n\t * An initial value to animate from.\r\n\t *\r\n\t * If omitted, the source value will be current value.\r\n\t */\r\n\tfrom?: IAnimationOption;\r\n\r\n\t/**\r\n\t * A target value to animate from.\r\n\t */\r\n\tto: IAnimationOption;\r\n\r\n\t/**\r\n\t * Property name to animate.\r\n\t */\r\n\tproperty?: any;\r\n\r\n\t/**\r\n\t * If current values should be taken from different object than the target\r\n\t * element of the animation, this property should be set to that object.\r\n\t */\r\n\tchildObject?: { [index: string]: any };\r\n\r\n\t/**\r\n\t * A method/function reference that will be called to for updating the\r\n\t * property value.\r\n\t */\r\n\tupdateMethod?(progress: number, from: IAnimationOption, to: IAnimationOption): IAnimationOption;\r\n\r\n\r\n\t/**\r\n\t * sometimes we need to pass some dummy data in animationOptions\r\n\t */\r\n\tdummyData?: any;\r\n\r\n}\r\n\r\n/**\r\n * An interface for an object defining [[Percent]] animation.\r\n */\r\nexport interface IPercentAnimationOptions extends IAnimationOptions {\r\n\r\n\t/**\r\n\t * Initial value.\r\n\t */\r\n\tfrom?: Percent;\r\n\r\n\t/**\r\n\t * Target value.\r\n\t */\r\n\tto: Percent;\r\n\r\n}\r\n\r\n/**\r\n * An interface for an object defining [[Color]] animation.\r\n */\r\nexport interface IColorAnimationOptions extends IAnimationOptions {\r\n\r\n\t/**\r\n\t * Initial value.\r\n\t */\r\n\tfrom?: Color;\r\n\r\n\t/**\r\n\t * Target value.\r\n\t */\r\n\tto: Color;\r\n\r\n}\r\n\r\n\r\n/**\r\n * Calls a `callback` function for the `duration` of milliseconds.\r\n *\r\n * @todo Needed?\r\n * @deprecated Not used anywhere\r\n * @ignore Exclude from docs\r\n * @param duration Duration (ms)\r\n * @param callback Callback function\r\n * @return Disposer\r\n */\r\nexport function animate(duration: number, callback: (time: number) => void): IDisposer {\r\n\tlet disposed = false;\r\n\r\n\t// TODO use performance.now() ?\r\n\tconst startTime = Date.now();\r\n\r\n\tfunction loop(now: number): void {\r\n\t\tif (!disposed) {\r\n\t\t\tconst diff = now - startTime;\r\n\r\n\t\t\tif (diff >= duration) {\r\n\t\t\t\tcallback(1);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$async.nextFrame(loop);\r\n\t\t\t\tcallback(diff / duration);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t$async.nextFrame(loop);\r\n\r\n\treturn new Disposer(() => {\r\n\t\tdisposed = true;\r\n\t});\r\n}\r\n\r\n\r\n/**\r\n * Defines events for [[Animation]].\r\n */\r\nexport interface IAnimationEvents extends IBaseObjectEvents {\r\n\r\n\t/**\r\n\t * Invoked when animation starts playing.\r\n\t */\r\n\tanimationstarted: {\r\n\t\tprogress: number;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when animation finishes playing.\r\n\t */\r\n\tanimationended: {\r\n\t\tprogress: number;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when animation makes progress.\r\n\t */\r\n\tanimationprogress: {\r\n\t\tprogress: number;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when animation is stopped by some other process, before it had\r\n\t * a chance to finish.\r\n\t */\r\n\tanimationstopped: {\r\n\t\tprogress: number;\r\n\t};\r\n\r\n}\r\n\r\n\r\n/**\r\n * Returns numeric value accoring to progress between start and end values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Value according to progress\r\n */\r\nfunction getProgressNumber(progress: number, from: number, to: number): number {\r\n\treturn from + ((to - from) * progress);\r\n}\r\n\r\n/**\r\n * Returns [[Percent]] value accoring to progress between start and end\r\n * values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Value according to progress\r\n */\r\nfunction getProgressPercent(progress: number, from: Percent, to: Percent): Percent {\r\n\treturn new Percent(getProgressNumber(progress, from.percent, to.percent));\r\n}\r\n\r\n/**\r\n * Returns color value accoring to progress between start and end values.\r\n *\r\n * @param progress Progress (0-1)\r\n * @param from\r\n * @param to\r\n * @return Color according to progress\r\n */\r\nfunction getProgressColor(progress: number, from: Color, to: Color): Color {\r\n\tconst color = new Color($colors.interpolate(from.rgb, to.rgb, progress));\r\n\tif (from.alpha != to.alpha) {\r\n\t\tcolor.alpha = from.alpha + (to.alpha - from.alpha) * progress;\r\n\t}\r\n\treturn color;\r\n}\r\n\r\n/**\r\n * [getHybridProperty description]\r\n *\r\n * @todo Description\r\n * @param property [description]\r\n * @param type [description]\r\n * @return [description]\r\n */\r\nfunction getHybridProperty(property: string, type: \"pixel\" | \"relative\"): string {\r\n\treturn type + property.charAt(0).toUpperCase() + property.substr(1);\r\n}\r\n\r\n\r\nexport class AnimationDisposer implements IDisposer {\r\n\tprivate _disposer: Disposer;\r\n\r\n\tconstructor(array: Array<Animation>) {\r\n\t\tthis._disposer = new Disposer(() => {\r\n\t\t\twhile (array.length !== 0) {\r\n\t\t\t\tarray[0].dispose();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tisDisposed(): boolean {\r\n\t\treturn this._disposer.isDisposed();\r\n\t}\r\n\r\n\tdispose(): void {\r\n\t\tthis._disposer.dispose();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Animation can be used to transition certain properties on an object that\r\n * implements [[IAnimatable]] interface.\r\n *\r\n * @see {@link IAnimationEvents} for a list of available events\r\n */\r\nexport class Animation extends BaseObjectEvents implements IAnimationObject {\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IAnimationEvents;\r\n\r\n\t/**\r\n\t * An animation target object. [[Animation]] will update properties of\r\n\t * this object.\r\n\t */\r\n\tpublic object: IAnimatable;\r\n\r\n\t/**\r\n\t * An array of animation option objects. Each animation object represent\r\n\t * one property. Animation can animate any number of properties\r\n\t * simultaneously.\r\n\t */\r\n\tpublic animationOptions: IAnimationOptions[];\r\n\r\n\t/**\r\n\t * Duration of the animation in milliseconds.\r\n\t */\r\n\tpublic duration: number = 0;\r\n\r\n\t/**\r\n\t * Easing function to use.\r\n\t *\r\n\t * @see {@link Ease}\r\n\t */\r\n\tpublic easing: (value: number) => number = $ease.linear;\r\n\r\n\t/**\r\n\t * Contains progress of the current animation: 0 (start) to 1 (end).\r\n\t */\r\n\tpublic progress: number = 0;\r\n\r\n\t/**\r\n\t * A list of options that cannot be animated. Those will be applied when\r\n\t * Animation ends.\r\n\t */\r\n\tprotected staticOptions!: IAnimationOptions[];\r\n\r\n\t/**\r\n\t * Indicated how many times animation should loop.\r\n\t */\r\n\tprotected _loop: number = 0;\r\n\r\n\t/**\r\n\t * Animation is paused.\r\n\t */\r\n\tprotected _pause: boolean = false;\r\n\r\n\t/**\r\n\t * Holds reference to timeout for delayed play.\r\n\t */\r\n\tprotected _delayTimeout: IDisposer | null = null;\r\n\r\n\t/**\r\n\t * A timestamp of when animation started playing.\r\n\t */\r\n\tprotected _startTime: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * Elapsed time in currently playing animation.\r\n\t */\r\n\tprotected _time: number = 0;\r\n\r\n\t// TODO verify that this is correct\r\n\tprotected debug(): void { }\r\n\r\n\tprotected _isFinished: boolean = false;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param object An object animation should run on\r\n\t * @param animationOptions One or several (array) of animation options\r\n\t * @param duration Duration (ms)\r\n\t * @param easing Easing function\r\n\t */\r\n\tconstructor(object: IAnimatable, animationOptions: IAnimationOptions[] | IAnimationOptions, duration: number, easing?: (value: number) => number) {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Animation\";\r\n\r\n\t\t// Override duration if animations disabled system-wide\r\n\t\tif (options.animationsEnabled === false) {\r\n\t\t\tduration = 0;\r\n\t\t}\r\n\r\n\t\t// Set parameters\r\n\t\tthis.object = object;\r\n\t\tthis.animationOptions = $array.toArray(animationOptions);\r\n\t\tthis.duration = duration;\r\n\t\tif (easing) {\r\n\t\t\tthis.easing = easing;\r\n\t\t}\r\n\r\n\t\t// Run check if there are already animations playing on the same properties\r\n\t\t// and stop them - the last animation takes precedence\r\n\t\t//this.stopSameAnimations();\r\n\r\n\t\t/*if ($type.hasValue(callback)) {\r\n\t\t\t// TODO don't use .call\r\n\t\t\tthis.events.on(\"animationended\", callback, object);\r\n\t\t}*/\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes this object, clears up after itself.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tsuper.dispose();\r\n\t\tthis.pause();\r\n\t}\r\n\r\n\t/**\r\n\t * Delays animation start by X milliseconds.\r\n\t *\r\n\t * @param delay Delay (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic delay(delay: number): Animation {\r\n\t\t//@todo Maybe not use `bind()`\r\n\t\tif (delay > 0) {\r\n\t\t\tthis.pause();\r\n\r\n\t\t\t// This is so that it will get disposed if `this.object` is disposed\r\n\t\t\t// TODO hacky, figure out a better way\r\n\t\t\t$array.move(this.object.animations, this);\r\n\r\n\t\t\tlet id = setTimeout(() => {\r\n\t\t\t\tthis._delayTimeout = null;\r\n\t\t\t\tthis.start();\r\n\t\t\t}, delay);\r\n\r\n\t\t\tthis._delayTimeout = new Disposer(() => {\r\n\t\t\t\tclearTimeout(id);\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _start() {\r\n\t\tthis._isFinished = false;\r\n\t\t// Clear delay timeout if there was one\r\n\t\tif (this._delayTimeout) {\r\n\t\t\tthis.removeDispose(this._delayTimeout);\r\n\t\t\tthis._delayTimeout = null;\r\n\t\t}\r\n\r\n\t\t// Run check if there are already animations playing on the same properties\r\n\t\t// and stop them - the last animation takes precedence\r\n\t\tthis.stopSameAnimations();\r\n\r\n\t\t// Reset counters\r\n\t\tthis._pause = false;\r\n\r\n\t\t// Register animation\r\n\t\t$array.move(system.animations, this);\r\n\r\n\t\t// Register this animation in object's `animations` list\r\n\t\t$array.move(this.object.animations, this);\r\n\r\n\t\tsystem.requestFrame();\r\n\t}\r\n\r\n\t/**\r\n\t * Starts animation.\r\n\t *\r\n\t * @return Animation\r\n\t */\r\n\tpublic start(): Animation {\r\n\t\tthis._start();\r\n\t\tthis._startTime = Date.now();\r\n\t\tthis._time = 0;\r\n\t\tthis.staticOptions = [];\r\n\r\n\t\t// Process initial property values\r\n\t\tfor (let i: number = this.animationOptions.length - 1; i >= 0; i--) {\r\n\t\t\tlet options: IAnimationOptions = this.animationOptions[i];\r\n\t\t\tif (!$type.hasValue(options.from)) {\r\n\t\t\t\tif (options.childObject) {\r\n\t\t\t\t\toptions.from = options.childObject[options.property];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\toptions.from = (<any>this.object)[options.property];\r\n\r\n\t\t\t\t\tif (!$type.hasValue(options.from)) {\r\n\t\t\t\t\t\toptions.from = (<any>SVGDefaults)[options.property];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*if (!$type.hasValue(options.from)) {\r\n\t\t\t\t\tthrow Error(\"Could not get initial transition value.\");\r\n\t\t\t\t}*/\r\n\t\t\t}\r\n\r\n\t\t\tif (options.from == options.to) { // || options.to == (<any>this.object)[options.property]){ this is not good, as dataItem.value is set to final at once, and we animate workingValue\r\n\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t}\r\n\t\t\telse if (!$type.hasValue(options.from) || (!(options.from instanceof Percent) && (options.to instanceof Percent)) || ((options.from instanceof Percent) && !(options.to instanceof Percent))) {\r\n\t\t\t\t// Initial value is undefined, treat it as static\r\n\t\t\t\tthis.staticOptions.push(options);\r\n\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Use different update methods for different value types\r\n\t\t\t\tif ($type.isNumber(<number>options.to)) {\r\n\r\n\t\t\t\t\t// Numeric value\r\n\t\t\t\t\toptions.updateMethod = getProgressNumber;\r\n\r\n\t\t\t\t\t// Check if initial value is not Percent\r\n\t\t\t\t\tif (options.from instanceof Percent) {\r\n\t\t\t\t\t\t// It is. Let's convert it to pixel value\r\n\t\t\t\t\t\t// @todo Check if we can do this in a less hacky way\r\n\t\t\t\t\t\tlet convertedFrom: number = (<any>this.object)[getHybridProperty(options.property, \"pixel\")];\r\n\t\t\t\t\t\tif (!isNaN(convertedFrom)) {\r\n\t\t\t\t\t\t\toptions.from = convertedFrom;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.staticOptions.push(options);\r\n\t\t\t\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (isNaN(<number>options.from)) {\r\n\t\t\t\t\t\t// Static value\r\n\t\t\t\t\t\tthis.staticOptions.push(options);\r\n\t\t\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Check if maybe we have a color or percent value\r\n\t\t\t\t\tif (options.to instanceof Color) {\r\n\t\t\t\t\t\t// Yup - set resolved named color\r\n\t\t\t\t\t\t//options.from = $colors.stringToColor(<string>options.from);\r\n\t\t\t\t\t\tif (options.from) {\r\n\t\t\t\t\t\t\toptions.updateMethod = getProgressColor;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// Static value\r\n\t\t\t\t\t\t\tthis.staticOptions.push(options);\r\n\t\t\t\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (options.to instanceof Percent) {\r\n\t\t\t\t\t\t// Percent\r\n\t\t\t\t\t\toptions.updateMethod = getProgressPercent;\r\n\r\n\t\t\t\t\t\t// Check if the initial value is maybe in pixels\r\n\t\t\t\t\t\tif (!isNaN(<number>options.from)) {\r\n\t\t\t\t\t\t\t// It is. Let's convert it\r\n\t\t\t\t\t\t\t// @todo Check if we can do this in a less hacky way\r\n\t\t\t\t\t\t\tlet convertedFrom: number = (<any>this.object)[getHybridProperty(options.property, \"relative\")];\r\n\t\t\t\t\t\t\tif (!isNaN(convertedFrom)) {\r\n\t\t\t\t\t\t\t\toptions.from = percent(convertedFrom * 100);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Static value\r\n\t\t\t\t\t\tthis.staticOptions.push(options);\r\n\t\t\t\t\t\t$array.remove(this.animationOptions, options);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Apply static options (just in case they were reset by previous\r\n\t\t// animation loop)\r\n\t\tthis.applyStaticOptions();\r\n\r\n\t\tif (this.events.isEnabled(\"animationstarted\")) {\r\n\t\t\tconst event: AMEvent<this, IAnimationEvents>[\"animationstarted\"] = {\r\n\t\t\t\ttype: \"animationstarted\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tprogress: this.progress\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"animationstarted\", event);\r\n\t\t}\r\n\r\n\t\tthis.update();\r\n\r\n\t\t// If duration is 0, just end animation\r\n\t\tif (this.duration === 0) {\r\n\t\t\tthis.end();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets loop count for the animation. If parameter is not a valid number the\r\n\t * animation will keep on looping indefinitely.\r\n\t *\r\n\t * @param count Number of times to loop animation\r\n\t * @return Animation\r\n\t */\r\n\tpublic loop(count?: number): Animation {\r\n\t\tif (!$type.isNumber(count)) {\r\n\t\t\tcount = Infinity;\r\n\t\t}\r\n\t\tthis._loop = count;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Pauses animation.\r\n\t *\r\n\t * @return Animation\r\n\t */\r\n\tpublic pause(): Animation {\r\n\t\tthis._pause = true;\r\n\r\n\t\tif (this._delayTimeout) {\r\n\t\t\tthis.removeDispose(this._delayTimeout);\r\n\t\t\tthis._delayTimeout = null;\r\n\t\t}\r\n\r\n\t\t$array.remove(system.animations, this);\r\n\t\t$array.remove(this.object.animations, this);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Resumes paused animation.\r\n\t *\r\n\t * @return Animation\r\n\t */\r\n\tpublic resume(): Animation {\r\n\t\tthis._start();\r\n\t\tthis._startTime = Date.now() - this._time;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Jumps to animation end. If animation is set to loop, this will start\r\n\t * another round of animation from start.\r\n\t *\r\n\t * @return Animation\r\n\t */\r\n\tpublic end(): Animation {\r\n\r\n\t\t// Pause and complete the progress\r\n\t\tif (this._loop == 0) {\r\n\t\t\tthis.pause();\r\n\t\t}\r\n\t\tthis.setProgress(1);\r\n\r\n\t\t// Apply static options\r\n\t\tthis.applyStaticOptions();\r\n\r\n\t\tif (this.events.isEnabled(\"animationended\")) {\r\n\t\t\tconst event: AMEvent<this, IAnimationEvents>[\"animationended\"] = {\r\n\t\t\t\ttype: \"animationended\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tprogress: this.progress\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"animationended\", event);\r\n\t\t}\r\n\r\n\t\t// Check if we should loop\r\n\t\tif (this._loop > 0) {\r\n\t\t\tthis._loop--;\r\n\t\t\tthis.start();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.stop();\r\n\t\t\tthis._isFinished = true;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Stops animation immediately leaving properties in their current values.\r\n\t */\r\n\tpublic kill() {\r\n\t\tthis.pause();\r\n\t\tthis._isFinished = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns indicator if this animation is finished or not\r\n\t *\r\n\t * @return Is finished?\r\n\t */\r\n\tpublic isFinished(): boolean {\r\n\t\treturn this._isFinished;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies static options that can't be animated.\r\n\t */\r\n\tprotected applyStaticOptions(): void {\r\n\t\t$array.each(this.staticOptions, (options) => {\r\n\t\t\tif (options.childObject) {\r\n\t\t\t\toptions.childObject[options.property] = this.progress == 1 ? options.to : options.from;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t(<any>this.object)[options.property] = this.progress == 1 ? options.to : options.from;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Stops animation.\r\n\t *\r\n\t * When animation is stopped, the properties of the target object will remain\r\n\t * where they were at the moment when `stop()` was called.\r\n\t *\r\n\t * @param skipEvent Do not trigger `animationstopped` event\r\n\t * @return Animation\r\n\t */\r\n\tpublic stop(skipEvent?: boolean): Animation {\r\n\t\tthis.pause();\r\n\t\tif (!skipEvent) {\r\n\t\t\tif (this.events.isEnabled(\"animationstopped\")) {\r\n\t\t\t\tconst event: AMEvent<this, IAnimationEvents>[\"animationstopped\"] = {\r\n\t\t\t\t\ttype: \"animationstopped\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tprogress: this.progress\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"animationstopped\", event);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current progress and updates object's numeric and color values.\r\n\t *\r\n\t * @param progress Progress (0-1)\r\n\t */\r\n\tpublic setProgress(progress: number): void {\r\n\t\tthis._time = this.duration * progress; // just in case we call this from outside\r\n\t\t$array.each(this.animationOptions, (options) => {\r\n\t\t\tif (options.updateMethod && $type.hasValue(options.from)) {\r\n\t\t\t\tlet value = options.updateMethod(progress, options.from, options.to);\r\n\r\n\t\t\t\tif (options.childObject) {\r\n\t\t\t\t\toptions.childObject[options.property] = value;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t(<any>this.object)[options.property] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.progress = progress;\r\n\t\tif (this.events.isEnabled(\"animationprogress\")) {\r\n\t\t\tconst event: AMEvent<this, IAnimationEvents>[\"animationprogress\"] = {\r\n\t\t\t\ttype: \"animationprogress\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tprogress: this.progress\r\n\t\t\t};\r\n\t\t\tthis.events.dispatchImmediately(\"animationprogress\", event);\r\n\t\t}\r\n\r\n\t\tsystem.requestFrame();\r\n\t}\r\n\r\n\t/**\r\n\t * Tracks and sets progress according to time or frames.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Animation\r\n\t */\r\n\tpublic update(): Animation {\r\n\t\tif (!this._pause) {\r\n\r\n\t\t\tlet progress;\r\n\t\t\tthis._time = $math.fitToRange(Date.now() - this._startTime!, 0, this.duration);\r\n\t\t\tlet timeProgress = this._time / this.duration;\r\n\t\t\tprogress = this.easing(timeProgress);\r\n\t\t\tif (this.duration == 0 || !$type.isNumber(progress) || timeProgress >= 1) {\r\n\t\t\t\tprogress = 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.setProgress(progress);\r\n\r\n\t\t\tif ($math.round(this._time / this.duration, 6) == 1) {\r\n\t\t\t\tthis.end();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if this animation is delayed.\r\n\t *\r\n\t * @readonly\r\n\t * @return [description]\r\n\t */\r\n\tpublic get delayed(): boolean {\r\n\t\treturn this._delayTimeout ? true : false;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks other animations currently running on the same object and removes\r\n\t * overlapping options from those other animations that are contained in\r\n\t * this animation.\r\n\t *\r\n\t * This is needed to ensure that no two confurent animations step on each\r\n\t * other's toes by trying to animate the same property.\r\n\t */\r\n\tprivate stopSameAnimations(): void {\r\n\t\t// stop animation of the same property\r\n\t\t// TODO make this more efficient\r\n\t\t// TODO don't copy the array\r\n\t\t$array.each($array.copy(this.object.animations), (animation) => {\r\n\t\t\tif (animation !== this && !animation.delayed) {\r\n\t\t\t\tconst killed: Array<IAnimationOptions> = [];\r\n\r\n\t\t\t\t$array.each(this.animationOptions, (newOptions) => {\r\n\t\t\t\t\t$array.each(animation.animationOptions, (oldOptions) => {\r\n\t\t\t\t\t\tif (newOptions.property == oldOptions.property && newOptions.childObject == oldOptions.childObject) {\r\n\t\t\t\t\t\t\tkilled.push(oldOptions);\r\n\r\n\t\t\t\t\t\t\tif (animation.animationOptions.length == 0) {\r\n\t\t\t\t\t\t\t\tanimation.kill();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$array.each(killed, (oldOptions) => {\r\n\t\t\t\t\t$array.remove(animation.animationOptions, oldOptions);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds easing functions to \"function\" fields.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as function?\r\n\t */\r\n\tprotected asFunction(field: string): boolean {\r\n\t\treturn field == \"easing\" || super.asIs(field);\r\n\t}\r\n\r\n}","/**\r\n * Text class deals with all text placed on chart.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { DataItem } from \"../DataItem\";\r\nimport { TextValign } from \"../defs/TextValign\";\r\nimport { TextAlign } from \"../defs/TextAlign\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { AMElement } from \"../rendering/AMElement\";\r\nimport { Group } from \"../rendering/Group\";\r\nimport { registry } from \"../Registry\";\r\nimport { ITextChunk, getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { MultiDisposer } from \"../utils/Disposer\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\nimport { Paper } from \"../rendering/Paper\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../utils/Responsive\";\r\n\r\n\r\n/**\r\n * Defines properties for [[Text]].\r\n */\r\nexport interface ILabelProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Horizontal align of the text.\r\n\t *\r\n\t * @default \"start\"\r\n\t */\r\n\ttextAlign?: TextAlign;\r\n\r\n\t/**\r\n\t * Vertical align of the text.\r\n\t *\r\n\t * @default \"top\"\r\n\t */\r\n\ttextValign?: TextValign;\r\n\r\n\t/**\r\n\t * A plain text content.\r\n\t */\r\n\ttext?: string;\r\n\r\n\t/**\r\n\t * Should the lines wrap if they do not fit into max width?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\twrap?: boolean;\r\n\r\n\t/**\r\n\t * Should the text be selectable>\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tselectable?: boolean;\r\n\r\n\t/**\r\n\t * HTML content.\r\n\t */\r\n\thtml?: string;\r\n\r\n\t/**\r\n\t * Should the lines be truncated (optionally with ellipsis) if they do not\r\n\t * fit into max width?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\ttruncate?: boolean;\r\n\r\n\t/**\r\n\t * If `truncate` is enabled, should Label try to break only on full words\r\n\t * (`true`), or whenever needed, including middle of the word. (`false`)\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tfullWords?: boolean;\r\n\r\n\t/**\r\n\t * If lines are truncated, this ellipsis will be added at the end.\r\n\t *\r\n\t * @default \"…\"\r\n\t */\r\n\tellipsis?: string;\r\n\r\n\t/**\r\n\t * Hide text of it does not fit into element's dimensions?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\thideOversized?: boolean;\r\n\r\n\t/**\r\n\t * If set to `true` square-bracket formatting blocks will be treated as\r\n\t * regular text.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tignoreFormatting?: boolean;\r\n\r\n\t/**\r\n\t * Path string along which text should be arranged\r\n\t */\r\n\tpath?: string\r\n\r\n\t/**\r\n\t * Relative label location on path.\r\n\t */\r\n\tlocationOnPath?: number;\r\n\r\n\t/**\r\n\t * A ratio to calculate text baseline. Ralative distance from the bottom of\r\n\t * the label.\r\n\t *\r\n\t * @default -0.27\r\n\t */\r\n\tbaseLineRatio?: number;\r\n}\r\n\r\n/**\r\n * Text line information.\r\n *\r\n * Objects used to hold cached information about lines in a Text element.\r\n */\r\nexport interface ITextLineInfo {\r\n\r\n\t/**\r\n\t * Measurements for the bounding box of the line.\r\n\t */\r\n\t\"bbox\"?: IRectangle,\r\n\r\n\t/**\r\n\t * A reference to an SVG `<g>` element that holds line elements.\r\n\t */\r\n\t\"element\"?: Group,\r\n\r\n\t/**\r\n\t * Indicates if line contains more than one element, e.g. has multiple\r\n\t * formatted blocks.\r\n\t */\r\n\t\"complex\"?: boolean,\r\n\r\n\t\"text\"?: string,\r\n\r\n\t\"style\"?: string\r\n};\r\n\r\n/**\r\n * Defines events for [[Text]].\r\n */\r\nexport interface ILabelEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Adapters for [[Text]].\r\n *\r\n * Includes both the [[Adapter]] definitions and properties.\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILabelAdapters extends IContainerAdapters, ILabelProperties {\r\n\r\n\t/**\r\n\t * Applied to the final formatted label text.\r\n\t */\r\n\ttextOutput: string;\r\n\r\n\t/**\r\n\t * Applied to the final formatted label HTML.\r\n\t */\r\n\thtmlOutput: string;\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Text is used to display highly configurable, data-enabled textual elements.\r\n *\r\n * ## Data Binding\r\n *\r\n * A Text element can dynamically parse and populate its contents with values\r\n * from a [[DataItem]].\r\n *\r\n * To activate such binding, set element's `dataItem` property.\r\n *\r\n * When activated, text contents will be parsed for special tags, e.g.:\r\n *\r\n * ```TypeScript\r\n * label.dataItem = myDataItem;\r\n * label.text = \"The title is: {title}\";\r\n * ```\r\n * ```JavaScript\r\n * label.dataItem = myDataItem;\r\n * label.text = \"The title is: {title}\";\r\n * ```\r\n *\r\n * The above will automatically replace \"{title}\" in the string with the\r\n * actual data value from `myDataItem`.\r\n *\r\n * Note, that most often dataItem is set by the Component.\r\n *\r\n *\r\n * @see {@link ILabelEvents} for a list of available events\r\n * @see {@link ILabelAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-strings/} for info on string formatting and data binding\r\n * @todo Vertical align\r\n * @important\r\n */\r\nexport class Label extends Container {\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILabelProperties;\r\n\r\n\t/**\r\n\t * Defines Adapter type.\r\n\t */\r\n\tpublic _adapter!: ILabelAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILabelEvents;\r\n\r\n\t/**\r\n\t * Indicates if the whole text does not fit into max dimenstions set for it.\r\n\t */\r\n\tpublic isOversized: boolean = false;\r\n\r\n\t/**\r\n\t * Currently formatted text, read only.\r\n\t */\r\n\tpublic currentText: string;\r\n\r\n\t/**\r\n\t * Current format to be used for outputing text.\r\n\t */\r\n\tprotected _currentFormat: string;\r\n\r\n\t/**\r\n\t * [_sourceDataItemEvents description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _sourceDataItemEvents: MultiDisposer;\r\n\r\n\r\n\tprotected _prevStatus: string;\r\n\r\n\t/**\r\n\t * SVG path element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic pathElement: $type.Optional<AMElement>;\r\n\r\n\t/**\r\n\t * SVG textpath element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic textPathElement: $type.Optional<Group>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Execute super's constructor\r\n\t\tsuper();\r\n\r\n\t\t// Set this class name\r\n\t\tthis.className = \"Label\";\r\n\r\n\t\tthis.fill = new InterfaceColorSet().getFor(\"text\");\r\n\r\n\t\t// not good to set this, as then these will appear on each label and values set on container won't be applied.\r\n\t\t//this.textDecoration = \"none\";\r\n\t\t//this.fontWeight = \"normal\";\r\n\r\n\r\n\t\t// Set defaults\r\n\t\tthis.wrap = false;\r\n\t\tthis.truncate = false;\r\n\t\tthis.fullWords = true;\r\n\t\tthis.ellipsis = \"…\";\r\n\t\tthis.textAlign = \"start\";\r\n\t\tthis.textValign = \"top\";\r\n\r\n\t\tthis.layout = \"absolute\";\r\n\t\tthis.baseLineRatio = -0.27;\r\n\t\t//this.pixelPerfect = true;\r\n\t\tthis._positionPrecision = 1;\r\n\r\n\t\t// Add events to watch for maxWidth/maxHeight changes so that we can\r\n\t\t// invalidate this\r\n\t\tthis.events.on(\"maxsizechanged\", () => {\r\n\t\t\tif (this.inited) {\r\n\t\t\t\tthis.handleMaxSize()\r\n\t\t\t}\r\n\t\t}, this, false);\r\n\r\n\t\t// this solves strange bug when text just added to svg is 0x0\r\n\t\tthis.events.once(\"validated\", this.handleValidate, this, false);\r\n\r\n\t\t// Aply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * A placeholder method that is called **after** element finishes drawing\r\n\t * itself.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected afterDraw(): void {\r\n\t\t// since we removed validatePosition from sprite, we still need it here to handle rotated text\r\n\t\tsuper.afterDraw();\r\n\t\tthis.validatePosition();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets [[Paper]] instance to use to draw elements.\r\n\t * @ignore\r\n\t * @param paper Paper\r\n\t * @return true if paper was changed, false, if it's the same\r\n\t */\r\n\tpublic setPaper(paper: Paper): boolean {\r\n\r\n\t\tlet changed = super.setPaper(paper);\r\n\r\n\t\tif (changed) {\r\n\t\t\tthis.hardInvalidate();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleValidate() {\r\n\t\tif ((this.currentText || this.text) && (this.bbox.width == 0 || this.bbox.height == 0)) {\r\n\t\t\tregistry.events.once(\"exitframe\", this.hardInvalidate, this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected handleMaxSize() {\r\n\t\tif (\r\n\t\t\t(this.bbox.width > this.availableWidth)\r\n\t\t\t|| ((this.bbox.width < this.availableWidth) && (this.isOversized || this.truncate))\r\n\t\t\t|| (this.bbox.height > this.availableHeight)\r\n\t\t\t|| ((this.bbox.height < this.availableHeight) && this.isOversized)\r\n\t\t) {\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.alignSVGText();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [arrange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic arrange(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Updates current text according to data item and supported features.\r\n\t * Returns `true` if current text has changed.\r\n\t *\r\n\t * @return Text changed?\r\n\t */\r\n\tprotected updateCurrentText(): boolean {\r\n\t\t// Determine output format\r\n\t\tlet output: string, text: string;\r\n\r\n\t\tif ($utils.isNotEmpty(this.html) && this.paper.supportsForeignObject()) {\r\n\r\n\t\t\t// We favor HTML text if it's set and browser supports `foreignObject`\r\n\t\t\toutput = \"html\";\r\n\t\t\ttext = this.html;\r\n\t\t}\r\n\t\telse {\r\n\t\t\toutput = \"svg\";\r\n\t\t\ttext = this.text;\r\n\t\t}\r\n\r\n\t\t// Need to toString source?\r\n\t\tif ($type.isObject(text as any)) {\r\n\t\t\ttext = text.toString();\r\n\t\t}\r\n\r\n\t\t// Need to format text all the time\r\n\t\tif ($type.hasValue(text) && text !== \"\") {\r\n\t\t\ttext = this.populateString(text, this.dataItem);\r\n\t\t}\r\n\r\n\t\tif (output == \"html\") {\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\ttext = this._adapterO.apply(\"htmlOutput\", text);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\ttext = this._adapterO.apply(\"textOutput\", text);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Update the text\r\n\t\tlet changed = text != this.currentText || output != this._currentFormat;\r\n\t\tthis.currentText = text;\r\n\t\tthis._currentFormat = output;\r\n\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * Hard invalidate means the text will be redrawn even if it hasn't changed.\r\n\t * This is used when we change `fontSize`, `fontFamily`, or for some other\r\n\t * reasons.\r\n\t */\r\n\tpublic hardInvalidate() {\r\n\t\tthis._prevStatus = \"\";\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Gets line bbox, uses caching to save cpu\r\n\t * @ignore\r\n\t */\r\n\tprotected getLineBBox(lineInfo: ITextLineInfo) {\r\n\t\t//let cacheKey = lineInfo.text + lineInfo.style;\r\n\r\n\t\t//let lineBBox = this.getCache(cacheKey);\r\n\t\t//if (!lineBBox) {\r\n\t\t//lineBBox = lineInfo.element.getBBox();\r\n\t\t//if (lineBBox.width != 0 && lineBBox.height != 0) {\r\n\t\t//\tthis.setCache(cacheKey, lineBBox, 5000);\r\n\t\t//}\r\n\t\t//}\r\n\r\n\t\tlet element = lineInfo && lineInfo.element;\r\n\t\tlet node = element && element.node;\r\n\r\n\t\t// Check for the parent Node to avoid FF from throwing errors\r\n\t\tif (node && node.parentNode) {\r\n\t\t\tlineInfo.bbox = element.getBBox();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the textual label.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\r\n\t\t// Draw super\r\n\t\tsuper.draw();\r\n\r\n\t\tlet oldW = this.bbox.width;\r\n\t\tlet oldH = this.bbox.height;\r\n\r\n\t\tlet topParent = this.topParent;\r\n\t\tif (topParent) {\r\n\t\t\tif (!topParent.maxWidth || !topParent.maxHeight) {\r\n\t\t\t\ttopParent.events.once(\"maxsizechanged\", this.hardInvalidate, this, false);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Calculate max width and height\r\n\t\tlet maxWidth: number = $math.max(this.availableWidth - this.pixelPaddingLeft - this.pixelPaddingRight, 0);\r\n\t\tlet maxHeight: number = $math.max(this.availableHeight - this.pixelPaddingTop - this.pixelPaddingBottom, 0);\r\n\r\n\t\t// save\r\n\t\tlet status = maxHeight + \",\" + maxWidth + this.wrap + this.truncate + this.fullWords + this.rtl + this.ellipsis;\r\n\r\n\t\t// Update text\r\n\t\tif (!this.updateCurrentText() && this.inited && this._prevStatus == status) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._measuredWidth = 0;\r\n\t\tthis._measuredHeight = 0;\r\n\r\n\t\t// Reset\r\n\t\tthis.isOversized = false;\r\n\r\n\t\t// Determine output format\r\n\t\tlet output = this._currentFormat;\r\n\t\tlet text = this.currentText;\r\n\r\n\t\t// Empty string\r\n\t\tif (!$type.hasValue(text) || text == \"\") {\r\n\t\t\tthis.element.attr({ display: \"none\" });\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Chop up text into lines\r\n\t\t// We're still processing SVG and HTML in the same way for now\r\n\t\tlet lines: string[] = text.split(\"\\n\");\r\n\r\n\t\t// Do we need to go through the trouble of measuring lines\r\n\t\t//let measure: boolean = true;// (lines.length > 1) || this.wrap;\r\n\r\n\t\tthis._prevStatus = status;\r\n\r\n\t\tthis.textAlign = this.textAlign;\r\n\r\n\t\t// need this to measure\r\n\t\tlet display = this.group.getAttr(\"display\");\r\n\t\tif (display == \"none\") {\r\n\t\t\tthis.group.removeAttr(\"display\");\r\n\t\t}\r\n\r\n\t\tif (this.textPathElement) {\r\n\t\t\tthis.textPathElement.removeChildren();\r\n\t\t}\r\n\r\n\t\t// SVG or HTML?\r\n\t\tif (output === \"svg\") {\r\n\t\t\t/**\r\n\t\t\t * SVG\r\n\t\t\t */\r\n\r\n\t\t\tthis.element.removeAttr(\"display\");\r\n\r\n\t\t\t// Clear the element\r\n\t\t\tlet group: Group = <Group>this.element;\r\n\r\n\t\t\tthis.resetBBox();\r\n\r\n\t\t\t// Init state variables\r\n\t\t\tlet currentHeight: number = 0;\r\n\t\t\tlet currentFormat: string = \"\";\r\n\r\n\t\t\t// Process each line\r\n\t\t\tfor (let i = 0; i < lines.length; i++) {\r\n\r\n\t\t\t\t// Get line\r\n\t\t\t\tlet line: string = lines[i];\r\n\r\n\t\t\t\t// Check if line is empty\r\n\t\t\t\tif (line == \"\") {\r\n\t\t\t\t\t// It is, let's just update currentHeight and go to the next one\r\n\t\t\t\t\t// If it's the first line, we'll have to use arbirary line height,\r\n\t\t\t\t\t// since there's nothing to measure. For subsequent lines we can take\r\n\t\t\t\t\t// previous line's height\r\n\t\t\t\t\tlet tempElement = this.getSVGLineElement(\"\", 0);\r\n\t\t\t\t\ttempElement.add(\r\n\t\t\t\t\t\tthis.getSvgElement(\r\n\t\t\t\t\t\t\t\".\",\r\n\t\t\t\t\t\t\tgetTextFormatter().translateStyleShortcuts(currentFormat)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tgroup.add(tempElement);\r\n\t\t\t\t\tlet offset = Math.ceil(tempElement.getBBox().height);\r\n\t\t\t\t\tif (offset > 0) {\r\n\t\t\t\t\t\tcurrentHeight += offset;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgroup.removeElement(tempElement);\r\n\r\n\t\t\t\t\t// Clear cache if necessary\r\n\t\t\t\t\tlet lineInfo = this.getLineInfo(i);\r\n\t\t\t\t\tif (lineInfo) {\r\n\t\t\t\t\t\tlineInfo.text = \"\";\r\n\t\t\t\t\t\tlineInfo.element.textContent = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Chunk up the line and process each chunk\r\n\t\t\t\tlet chunks: ITextChunk[] = getTextFormatter().chunk(line, null, this.ignoreFormatting);\r\n\t\t\t\tlet currentLineHeight: number = 0;\r\n\t\t\t\tlet firstChunk: boolean = true;\r\n\t\t\t\tlet skipTextChunks: boolean = false;\r\n\r\n\t\t\t\t// Create line element or grab it from cache\r\n\t\t\t\tlet lineInfo = this.getLineInfo(i);\r\n\r\n\t\t\t\tif (lineInfo) {\r\n\t\t\t\t\t// Empty line\r\n\t\t\t\t\tlineInfo.text = \"\";\r\n\t\t\t\t\tlineInfo.element.textContent = \"\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Init new line info\r\n\t\t\t\t\tlineInfo = {\r\n\t\t\t\t\t\t\"text\": \"\",\r\n\t\t\t\t\t\t\"element\": this.getSVGLineElement(\"\", 0),\r\n\t\t\t\t\t\t\"complex\": false\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Create the line element\r\n\t\t\t\t\t//lineInfo.element = this.getSVGLineElement(\"\", 0);\r\n\t\t\t\t\t//lineElement = this.getSVGLineElement(\"\", 0);\r\n\t\t\t\t\tgroup.add(lineInfo.element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlineInfo.element.removeAttr(\"display\");\r\n\t\t\t\tlineInfo.element.removeChildren(); // memory leak without this\r\n\r\n\t\t\t\tif (this.textPathElement) {\r\n\t\t\t\t\tlineInfo.element.add(this.textPathElement);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*// @todo not needed anymore\r\n\t\t\t\tif (this.rtl) {\r\n\t\t\t\t\tchunks.reverse();\r\n\t\t\t\t}*/\r\n\r\n\t\t\t\t// Process each chunk\r\n\t\t\t\tfor (let x: number = 0; x < chunks.length; x++) {\r\n\r\n\t\t\t\t\t// If there's more than one chunk, means the line is \"complex\"\r\n\t\t\t\t\tif (x) {\r\n\t\t\t\t\t\tlineInfo.complex = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Get chunk\r\n\t\t\t\t\tlet chunk = chunks[x];\r\n\r\n\t\t\t\t\t// Is this chunk format or text?\r\n\t\t\t\t\tif (chunk.type === \"format\") {\r\n\r\n\t\t\t\t\t\t// Log current format, so that we can apply it to multiple lines if\r\n\t\t\t\t\t\t// necessary\r\n\t\t\t\t\t\tcurrentFormat = chunk.text;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t// It's text block\r\n\r\n\t\t\t\t\t\t// Need to skip?\r\n\t\t\t\t\t\t// We do this when truncating. We can't just simply go ahead and\r\n\t\t\t\t\t\t// abandon chunk processing as they might have formatting\r\n\t\t\t\t\t\t// instructions in them that are relevant for subsequent lines\r\n\t\t\t\t\t\tif (skipTextChunks) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Add chunk to the current element\r\n\t\t\t\t\t\t//lineInfo.element.content += $utils.trim(getTextFormatter().format(currentFormat + chunk.text, output));\r\n\r\n\t\t\t\t\t\tlineInfo.text = chunk.text;\r\n\t\t\t\t\t\tlineInfo.style = getTextFormatter().translateStyleShortcuts(currentFormat);\r\n\r\n\t\t\t\t\t\tlet tspan = this.getSvgElement(lineInfo.text, lineInfo.style);\r\n\r\n\t\t\t\t\t\tif (this.textPathElement) {\r\n\t\t\t\t\t\t\tthis.textPathElement.add(tspan);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlineInfo.element.add(tspan);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.getLineBBox(lineInfo);\r\n\t\t\t\t\t\tlineInfo.bbox.width = Math.ceil(lineInfo.bbox.width);\r\n\r\n\t\t\t\t\t\t// Updated current line height\r\n\t\t\t\t\t\tif (currentLineHeight < lineInfo.bbox.height) {\r\n\t\t\t\t\t\t\tcurrentLineHeight = lineInfo.bbox.height;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Wrapping?\r\n\t\t\t\t\t\tif ((this.wrap || this.truncate) && (lineInfo.bbox.width > maxWidth)) {\r\n\r\n\t\t\t\t\t\t\t// Set oversized\r\n\t\t\t\t\t\t\tthis.isOversized = true;\r\n\r\n\t\t\t\t\t\t\t// Take temporary measurements\r\n\t\t\t\t\t\t\tlet lineText: string = lineInfo.element.textContent;\r\n\t\t\t\t\t\t\tlet avgCharWidth: number = (lineInfo.bbox.width / lineText.length); // * .9;\r\n\r\n\t\t\t\t\t\t\t// Calculate average number of symbols / width\r\n\t\t\t\t\t\t\tlet excessChars: number = $math.min(Math.ceil((lineInfo.bbox.width - maxWidth) / avgCharWidth), lineText.length);\r\n\r\n\t\t\t\t\t\t\t// Are we truncating or auto-wrapping text?\r\n\t\t\t\t\t\t\tif (this.truncate) {\r\n\r\n\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t * Processing line truncation\r\n\t\t\t\t\t\t\t\t * With the addition of each text chunk we measure if current\r\n\t\t\t\t\t\t\t\t * line does not exceed maxWidth. If it does, we will stop\r\n\t\t\t\t\t\t\t\t * addition of further chunks as well as try to truncate\r\n\t\t\t\t\t\t\t\t * current or any number of previous chunks with an added\r\n\t\t\t\t\t\t\t\t * ellipsis\r\n\t\t\t\t\t\t\t\t */\r\n\r\n\t\t\t\t\t\t\t\t// Indicator whether we need to add ellipsis to the current\r\n\t\t\t\t\t\t\t\t// element, even if it fits. This is needed to indicate\r\n\t\t\t\t\t\t\t\t// whether we have already removed some subsequent chunks in\r\n\t\t\t\t\t\t\t\t// which case we need to add ellipsis.\r\n\t\t\t\t\t\t\t\tlet addEllipsis: boolean = false;\r\n\r\n\t\t\t\t\t\t\t\t// Process each child in the temporary line, until the whole\r\n\t\t\t\t\t\t\t\t// line fits, preferably with an ellipsis\r\n\t\t\t\t\t\t\t\t// TODO use iterator instead\r\n\t\t\t\t\t\t\t\tlet node = lineInfo.element.node;\r\n\t\t\t\t\t\t\t\tif (node && node.childNodes) {\r\n\t\t\t\t\t\t\t\t\tfor (let e = lineInfo.element.node.childNodes.length - 1; e >= 0; e--) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Get current element\r\n\t\t\t\t\t\t\t\t\t\tlet node = lineInfo.element.node.childNodes[e];\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Add ellipsis only if previous chunk was removed in full\r\n\t\t\t\t\t\t\t\t\t\t// and this chunk already fits\r\n\t\t\t\t\t\t\t\t\t\t//if (addEllipsis && (bbox.width <= maxWidth)) {\r\n\t\t\t\t\t\t\t\t\t\tif (addEllipsis && (lineInfo.bbox.width <= maxWidth)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Add ellipsis\r\n\t\t\t\t\t\t\t\t\t\t\tnode.textContent += \" \" + this.ellipsis;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Measure again (we need to make sure ellipsis fits)\r\n\t\t\t\t\t\t\t\t\t\t\tlineInfo.bbox = lineInfo.element.getBBox();\r\n\t\t\t\t\t\t\t\t\t\t\tlineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// If it fits, we're done here\r\n\t\t\t\t\t\t\t\t\t\t\t// If it doesn't we continue rolling\r\n\t\t\t\t\t\t\t\t\t\t\tif (lineInfo.bbox.width <= maxWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\taddEllipsis = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Get element text\r\n\t\t\t\t\t\t\t\t\t\tlet elementText = node.textContent;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Calculate average number of symbols / width\r\n\t\t\t\t\t\t\t\t\t\tlineText = lineInfo.element.textContent;\r\n\t\t\t\t\t\t\t\t\t\texcessChars = $math.min(Math.ceil((lineInfo.bbox.width - maxWidth) / avgCharWidth), lineText.length);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do this until we fit\r\n\t\t\t\t\t\t\t\t\t\twhile ((lineInfo.bbox.width > maxWidth) && (excessChars <= lineText.length) && (excessChars > 0)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Calculate max available chars\r\n\t\t\t\t\t\t\t\t\t\t\tlet maxChars: number = $math.max(lineText.length - excessChars - this.ellipsis.length, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Is there anything left?\r\n\t\t\t\t\t\t\t\t\t\t\tif (maxChars <= 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Nope, let's jump to the previous item\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Set excess characters to zero so that this loop does\r\n\t\t\t\t\t\t\t\t\t\t\t\t// not repeat when it over\r\n\t\t\t\t\t\t\t\t\t\t\t\texcessChars = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Add ellipsis to previous item\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Subsequent iterations will check if the ellipsis fits\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (e > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Indicating to add ellipsis to previous item\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taddEllipsis = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Removing this node\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineInfo.element.node.removeChild(node);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Truncate the text\r\n\t\t\t\t\t\t\t\t\t\t\telementText = $utils.truncateWithEllipsis(elementText, maxChars, this.ellipsis, this.fullWords, this.rtl);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif ((elementText.length > maxChars) && this.fullWords) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Still too long?\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Let's try truncating breaking words anyway\r\n\t\t\t\t\t\t\t\t\t\t\t\telementText = $utils.truncateWithEllipsis(elementText, maxChars, this.ellipsis, false, this.rtl);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Set truncated text\r\n\t\t\t\t\t\t\t\t\t\t\tnode.textContent = elementText;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Measure again\r\n\t\t\t\t\t\t\t\t\t\t\tlineInfo.bbox = lineInfo.element.getBBox();\r\n\t\t\t\t\t\t\t\t\t\t\tlineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Increase excess characters count, just in case it still\r\n\t\t\t\t\t\t\t\t\t\t\t// doesn't fit and we have to go at it again\r\n\t\t\t\t\t\t\t\t\t\t\texcessChars = Math.ceil(excessChars * 1.1);\r\n\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do not process further chunks\r\n\t\t\t\t\t\t\t\t\t\tskipTextChunks = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t * Processign auto-wrap\r\n\t\t\t\t\t\t\t\t * In this case we're going to be adding text chunks until\r\n\t\t\t\t\t\t\t\t * they don't fit into current line. Once that happens we will\r\n\t\t\t\t\t\t\t\t * inject the rest of the chunks to the next line\r\n\t\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\t\t// Get last node added and measure it\r\n\t\t\t\t\t\t\t\tlet node = lineInfo.element.node;\r\n\t\t\t\t\t\t\t\tif (node) {\r\n\t\t\t\t\t\t\t\t\tlet lastNode = lineInfo.element.node.lastChild;\r\n\r\n\t\t\t\t\t\t\t\t\t// Init split lines\r\n\t\t\t\t\t\t\t\t\tlet splitLines: string[];\r\n\t\t\t\t\t\t\t\t\twhile ((lineInfo.bbox.width > maxWidth) && (excessChars <= lineText.length) && (excessChars > 0)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Calculate max available chars\r\n\t\t\t\t\t\t\t\t\t\tlet maxChars: number = $math.max(chunk.text.length - excessChars, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Don't split the words mid-word if it's not the first chunk\r\n\t\t\t\t\t\t\t\t\t\t// in the line\r\n\t\t\t\t\t\t\t\t\t\tif (firstChunk) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Split mid-word if necessary\r\n\t\t\t\t\t\t\t\t\t\t\tsplitLines = $utils.splitTextByCharCount(chunk.text, maxChars, true, this.rtl);\r\n\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Don't split mid-word\r\n\t\t\t\t\t\t\t\t\t\t\tsplitLines = $utils.splitTextByCharCount(chunk.text, maxChars, true, this.rtl);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Check if the first word is too long\r\n\t\t\t\t\t\t\t\t\t\t\tif ((splitLines[0].length > maxChars) || maxChars === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Yes - move the whole chunk to the next line\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Remove the element we just added\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineInfo.element.node.removeChild(lastNode)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Break out of the while on next cycle\r\n\t\t\t\t\t\t\t\t\t\t\t\texcessChars = 0;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Use the first line to update last item\r\n\t\t\t\t\t\t\t\t\t\tif (excessChars > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tlastNode.textContent = getTextFormatter().cleanUp($utils.trim(splitLines.shift()));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Measure again, just in case\r\n\t\t\t\t\t\t\t\t\t\tlineInfo.bbox = lineInfo.element.getBBox();\r\n\t\t\t\t\t\t\t\t\t\tlineInfo.bbox.width = Math.floor(lineInfo.bbox.width);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Increase excess characters count, just in case it still\r\n\t\t\t\t\t\t\t\t\t\t// doesn't fit and we have to go at it again\r\n\t\t\t\t\t\t\t\t\t\texcessChars = Math.ceil(excessChars * 1.1);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t// Construct the rest of the line\r\n\t\t\t\t\t\t\t\t\tif (splitLines.length > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tlet restOfLine: string = \"\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Add leftovers from splitting the current chunk\r\n\t\t\t\t\t\t\t\t\t\tif ($type.hasValue(splitLines)) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.rtl) {\r\n\t\t\t\t\t\t\t\t\t\t\t\trestOfLine += splitLines.join(\"\") + currentFormat;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\trestOfLine += currentFormat + splitLines.join(\"\").replace(/([\\[\\]]{1})/g, \"$1$1\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Add the rest of the chunks\r\n\t\t\t\t\t\t\t\t\t\tfor (let c: number = x + 1; c < chunks.length; c++) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (chunks[c].type == \"value\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// We're escaping single square brackets that were\r\n\t\t\t\t\t\t\t\t\t\t\t\t// cleaned up by chunk() back to double square brackets\r\n\t\t\t\t\t\t\t\t\t\t\t\t// so that they are not being treated as format on\r\n\t\t\t\t\t\t\t\t\t\t\t\t// next pass.\r\n\t\t\t\t\t\t\t\t\t\t\t\trestOfLine += chunks[c].text.replace(/([\\[\\]]{1})/g, \"$1$1\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\trestOfLine += chunks[c].text;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Inject the rest of the lines as chunks for subsequent\r\n\r\n\t\t\t\t\t\t\t\t\t\tlines.splice(i + 1, 0, restOfLine);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// Skip processing the rest of the chunks\r\n\t\t\t\t\t\t\t\t\tskipTextChunks = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Let's update the text's bbox with the line's one\r\n\t\t\t\t\t\tif (this.bbox.width < lineInfo.bbox.width) {\r\n\t\t\t\t\t\t\tthis.bbox.width = lineInfo.bbox.width;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// commented to avoid bug (seen on sankey link) where text is incorrectly aligned\r\n\t\t\t\t\t\t//if (this.bbox.x > lineInfo.bbox.x) {\r\n\t\t\t\t\t\t//this.bbox.x = lineInfo.bbox.x;\r\n\t\t\t\t\t\t//}\r\n\r\n\t\t\t\t\t\tthis.bbox.height = currentHeight + currentLineHeight;\r\n\r\n\t\t\t\t\t\t// Position current line\r\n\t\t\t\t\t\tif (!this.textPathElement) {\r\n\t\t\t\t\t\t\tlineInfo.element.attr({\r\n\t\t\t\t\t\t\t\t\"x\": \"0\",\r\n\t\t\t\t\t\t\t\t\"y\": currentHeight + currentLineHeight,\r\n\t\t\t\t\t\t\t\t\"dy\": $math.round((this.baseLineRatio * currentLineHeight), 3).toString()\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlineInfo.element.attr({\r\n\t\t\t\t\t\t\t\t\"dy\": -this.paddingBottom.toString()\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfirstChunk = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Trim the last item\r\n\t\t\t\tlet node = lineInfo.element.node;\r\n\t\t\t\tif (node) {\r\n\t\t\t\t\tlet lastNode = node.lastChild;\r\n\t\t\t\t\tif (lastNode) {\r\n\t\t\t\t\t\tlastNode.textContent = this.rtl ?\r\n\t\t\t\t\t\t\t$utils.ltrim(lastNode.textContent) :\r\n\t\t\t\t\t\t\t$utils.rtrim(lastNode.textContent);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Increment collective height\r\n\t\t\t\tcurrentHeight += currentLineHeight;\r\n\r\n\t\t\t\t// Save line cache\r\n\t\t\t\tthis.addLineInfo(lineInfo, i);\r\n\t\t\t}\r\n\r\n\t\t\t// Check if maybe we need to hide the whole label if it doesn't fit\r\n\t\t\tthis.maybeHideOversized();\r\n\r\n\t\t\tthis.measureFailed = false;\r\n\t\t\tif (this.bbox.width == 0 || this.bbox.height == 0) {\r\n\t\t\t\tthis.measureFailed = true;\r\n\t\t\t}\r\n\r\n\t\t\t// Updated measured dims\r\n\t\t\tthis._measuredWidth = $math.round($math.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight));\r\n\t\t\tthis._measuredHeight = $math.round($math.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom));\r\n\r\n\t\t\t// Align the lines\r\n\t\t\tthis.alignSVGText();\r\n\r\n\t\t\tthis.bbox.width = this._measuredWidth;\r\n\t\t\tthis.bbox.height = this._measuredHeight;\r\n\r\n\t\t\tif (oldH != this._measuredHeight || oldW != this._measuredWidth) {\r\n\t\t\t\tthis.dispatch(\"transformed\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.hideUnused(lines.length);\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\t/**\r\n\t\t\t * HTML\r\n\t\t\t */\r\n\r\n\t\t\tthis.element.removeAttr(\"display\");\r\n\t\t\tthis.resetBBox();\r\n\r\n\t\t\t// Clear the element\r\n\t\t\tlet group: Group = <Group>this.element;\r\n\t\t\tgroup.removeChildren();\r\n\r\n\t\t\t// Create a ForeignObject to use as HTML container\r\n\t\t\tlet fo = this.paper.foreignObject();\r\n\t\t\tgroup.add(fo);\r\n\r\n\t\t\t// Set widths on foreignObject so that autosizing measurements work\r\n\t\t\t// This will bet reset to actual content width/height\r\n\t\t\tif (this.maxWidth) {\r\n\t\t\t\tfo.attr({\r\n\t\t\t\t\twidth: this.maxWidth\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (this.maxHeight) {\r\n\t\t\t\tfo.attr({\r\n\t\t\t\t\theight: this.maxHeight\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Create line element\r\n\t\t\t//let lineElement: HTMLElement = this.getHTMLLineElement(getTextFormatter().format(this.html, output));\r\n\t\t\tlet lineElement: HTMLElement = this.getHTMLLineElement(text);\r\n\t\t\tfo.node.appendChild(lineElement);\r\n\r\n\t\t\t// Temporarily set to inline-block so we can measure real width and height\r\n\t\t\tlineElement.style.display = \"inline-block\";\r\n\t\t\tconst clientWidth = lineElement.clientWidth;\r\n\t\t\tconst clientHeight = lineElement.clientHeight;\r\n\r\n\t\t\tlineElement.style.display = \"block\";\r\n\t\t\tthis._bbox = {\r\n\t\t\t\tx: 0,\r\n\t\t\t\ty: 0,\r\n\t\t\t\twidth: clientWidth,\r\n\t\t\t\theight: clientHeight\r\n\t\t\t};\r\n\r\n\t\t\t// Set exact dimensions of foreignObject so it is sized exactly as\r\n\t\t\t// the content within\r\n\t\t\tfo.attr({\r\n\t\t\t\twidth: clientWidth,\r\n\t\t\t\theight: clientHeight\r\n\t\t\t});\r\n\r\n\t\t\t// Check if maybe we need to hide the whole label if it doesn't fit\r\n\t\t\tthis.maybeHideOversized();\r\n\r\n\t\t\t// Set measurements and update bbox\r\n\t\t\tthis._measuredWidth = $math.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight);\r\n\t\t\tthis._measuredHeight = $math.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom);\r\n\r\n\t\t\tthis.bbox.width = this._measuredWidth;\r\n\t\t\tthis.bbox.height = this._measuredHeight;\r\n\r\n\t\t\t// Don't let labels bleed out of the alotted area\r\n\t\t\tif (this.truncate) {\r\n\t\t\t\tlineElement.style.overflow = \"hidden\";\r\n\t\t\t}\r\n\r\n\t\t\tif ((clientWidth > maxWidth) || (clientHeight > maxHeight)) {\r\n\t\t\t\tthis.isOversized = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// Set applicable styles\r\n\t\tthis.setStyles();\r\n\t\tthis.updateCenter();\r\n\t\tthis.updateBackground();\r\n\r\n\t\tif (display == \"none\") {\r\n\t\t\tthis.group.attr({ display: \"none\" });\r\n\t\t}\r\n\r\n\t\tif (this.pathElement) {\r\n\t\t\tthis.paper.appendDef(this.pathElement);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides element if it does not fit into available space\r\n\t */\r\n\tprivate maybeHideOversized(): void {\r\n\t\tif (this.hideOversized) {\r\n\t\t\tif ((this.availableWidth < this.bbox.width) || (this.availableHeight < this.bbox.height)) {\r\n\t\t\t\tthis.element.attr({ display: \"none\" });\r\n\t\t\t\tthis.isOversized = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.element.removeAttr(\"display\");\r\n\t\t\t\tthis.isOversized = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Aligns the lines horizontally ant vertically, based on properties.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic alignSVGText(): void {\r\n\t\t// Get Group\r\n\t\tlet group: Group = <Group>this.element;\r\n\t\tlet children = group.node.children || group.node.childNodes;\r\n\r\n\t\t// Is there anything to align?\r\n\t\tif (!children || (children && children.length == 0)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet width = this._measuredWidth;\r\n\t\tlet height = this._measuredHeight;\r\n\r\n\t\t// TODO maybe these aren't needed ?\r\n\t\t$utils.used(this.pixelPaddingLeft);\r\n\t\t$utils.used(this.pixelPaddingRight);\r\n\t\t$utils.used(this.pixelPaddingTop);\r\n\t\t$utils.used(this.pixelPaddingBottom);\r\n\r\n\t\t// Process each line\r\n\t\t//$iter.each(group.children.backwards().iterator(), (element) => {\r\n\t\tfor (let i = children.length - 1; i >= 0; i--) {\r\n\t\t\t// Align horizontally\r\n\t\t\t// Since we are using `text-anchor` for horizontal alignment, all we need\r\n\t\t\t// to do here is move the `x` position\r\n\t\t\tlet node = <SVGElement>children[i];\r\n\r\n\t\t\tnode.setAttribute(\"text-anchor\", this.textAlign);\r\n\r\n\t\t\tif (this.textPathElement) {\r\n\t\t\t\tnode.removeAttribute(\"x\");\r\n\t\t\t\tnode.removeAttribute(\"y\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tswitch (this.textAlign) {\r\n\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\t\tnode.setAttribute(\"x\", (width / 2).toString() + \"px\");\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"end\":\r\n\t\t\t\t\t\tif (this.rtl) {\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tnode.setAttribute(\"x\", width.toString());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif (this.rtl) {\r\n\t\t\t\t\t\t\tnode.setAttribute(\"x\", width.toString());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tnode.removeAttribute(\"text-anchor\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet y = $type.toNumber(node.getAttribute(\"y\"));\r\n\r\n\t\t\t\tswitch (this.textValign) {\r\n\t\t\t\t\tcase \"middle\":\r\n\t\t\t\t\t\tnode.setAttribute(\"y\", ((y || 0) + (height - this.bbox.height) / 2).toString());\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\t\tnode.setAttribute(\"y\", ((y || 0) + height - this.bbox.height).toString());\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tnode.setAttribute(\"y\", (y || 0).toString());\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Produces an SVG line element with formatted text.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to wrap into line\r\n\t * @param y Current line vertical position\r\n\t * @return A DOM element\r\n\t * @todo Implement HTML support\r\n\t */\r\n\tpublic getSVGLineElement(text: string, y?: number): Group {\r\n\r\n\t\t// Create a <text> node and set text\r\n\t\tlet element: Group = this.paper.addGroup(\"text\");\r\n\t\telement.textContent = text;\r\n\r\n\t\t// Set parameters\r\n\t\telement.attr({\r\n\t\t\t\"x\": \"0\"\r\n\t\t\t//\"alignment-baseline\": \"hanging\",\r\n\t\t\t//\"baseline-shift\": \"-20%\",\r\n\t\t\t//\"text-anchor\": \"center\"\r\n\t\t});\r\n\r\n\t\t// Set `y` position\r\n\t\tif ($type.hasValue(y)) {\r\n\t\t\telement.attr({\r\n\t\t\t\t\"y\": y.toString()\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Don't let labels blled out of the alotted area\r\n\t\tif (this.truncate || this.wrap) {\r\n\t\t\telement.attr({ \"overflow\": \"hidden\" });\r\n\t\t}\r\n\r\n\t\t// Add RTL?\r\n\t\tif (this.rtl) {\r\n\t\t\telement.attr({\r\n\t\t\t\t\"direction\": \"rtl\",\r\n\t\t\t\t//\"unicode-bidi\": \"bidi-override\"\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\t/**\r\n\t * Resets cached BBox.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic resetBBox(): void {\r\n\t\tthis._bbox = { x: 0, y: 0, width: 0, height: 0 };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Creates and returns an HTML line element (`<div>`).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to add\r\n\t * @return `<div>` element reference\r\n\t */\r\n\tpublic getHTMLLineElement(text: string): HTMLElement {\r\n\r\n\t\t// Create the <div> element\r\n\t\tlet div: HTMLElement = document.createElement(\"div\");\r\n\t\tdiv.innerHTML = text;\r\n\r\n\t\t// Set text alignment\r\n\t\tswitch (this.textAlign) {\r\n\t\t\tcase \"middle\":\r\n\t\t\t\tdiv.style.textAlign = \"center\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"end\":\r\n\t\t\t\tdiv.style.textAlign = \"right\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\t// Disable or enable wrapping\r\n\t\tif (this.wrap) {\r\n\t\t\tdiv.style.wordWrap = \"break-word\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdiv.style.whiteSpace = \"nowrap\";\r\n\t\t}\r\n\r\n\t\t// Don't let labels bleed out of the alotted area\r\n\t\t// Moved to `draw()` because setting \"hidden\" kills all measuring\r\n\t\t/*if (this.truncate) {\r\n\t\t\tdiv.style.overflow = \"hidden\";\r\n\t\t}*/\r\n\r\n\t\t// Set RTL-related styles\r\n\t\tif (this.rtl) {\r\n\t\t\tdiv.style.direction = \"rtl\";\r\n\t\t\t//div.style.unicodeBidi = \"bidi-override\";\r\n\t\t}\r\n\r\n\t\t// Translate some of the SVG styles into CSS\r\n\t\tif ($type.hasValue(this.fill)) {\r\n\t\t\tdiv.style.color = this.fill.toString();\r\n\t\t}\r\n\r\n\t\treturn div;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies specific styles to text to make it not selectable, unless it is\r\n\t * explicitly set as `selectable`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Set styles via AMElement\r\n\t */\r\n\tpublic setStyles(): void {\r\n\t\tlet group: Group = <Group>this.element;\r\n\t\tif (!this.selectable || this.draggable || this.resizable || this.swipeable) {\r\n\t\t\tgroup.addStyle({\r\n\t\t\t\t\"webkitUserSelect\": \"none\",\r\n\t\t\t\t\"msUserSelect\": \"none\"\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (this.selectable) {\r\n\t\t\tgroup.removeStyle(\"webkitUserSelect\");\r\n\t\t\tgroup.removeStyle(\"msUserSelect\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides unused lines\r\n\t */\r\n\tprotected hideUnused(index: number) {\r\n\t\tthis.initLineCache();\r\n\t\tlet lines: ITextLineInfo[] = this.getCache(\"lineInfo\");\r\n\t\tif (lines.length >= index) {\r\n\t\t\tfor (let i = index; i < lines.length; i++) {\r\n\t\t\t\tlet line = lines[i];\r\n\t\t\t\tif (line && line.element) {\r\n\t\t\t\t\tline.element.attr({ \"display\": \"none\" });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An SVG text.\r\n\t *\r\n\t * Please note that setting `html` will override this setting if browser\r\n\t * supports `foreignObject` in SGV, such as most modern browsers excluding\r\n\t * IEs.\r\n\t *\r\n\t * @param value SVG Text\r\n\t */\r\n\tpublic set text(value: string) {\r\n\t\t//this.setPropertyValue(\"html\", undefined);\r\n\t\tthis.setPropertyValue(\"text\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return SVG text\r\n\t */\r\n\tpublic get text(): string {\r\n\t\treturn this.getPropertyValue(\"text\");\r\n\t}\r\n\r\n\t/**\r\n\t * An SVG path string to position text along. If set, the text will follow\r\n\t * the curvature of the path.\r\n\t *\r\n\t * Location along the path can be set using `locationOnPath`.\r\n\t *\r\n\t * IMPORTANT: Only SVG text can be put on path. If you are using HTML text\r\n\t * this setting will be ignored.\r\n\t *\r\n\t * @since 4.1.2\r\n\t * @param value Path\r\n\t */\r\n\tpublic set path(value: string) {\r\n\t\tif (this.setPropertyValue(\"path\", value, true)) {\r\n\t\t\tif (this.pathElement) {\r\n\t\t\t\tthis.pathElement.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (this.textPathElement) {\r\n\t\t\t\tthis.textPathElement.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.pathElement = this.paper.add(\"path\");\r\n\t\t\tthis.pathElement.attr({ \"d\": value });\r\n\t\t\tthis.pathElement.attr({ \"id\": \"text-path-\" + this.uid });\r\n\t\t\tthis._disposers.push(this.pathElement);\r\n\r\n\t\t\tthis.textPathElement = this.paper.addGroup(\"textPath\");\r\n\t\t\tthis.textPathElement.attrNS($dom.XLINK, \"xlink:href\", \"#text-path-\" + this.uid);\r\n\t\t\t// TODO remove after https://bugzilla.mozilla.org/show_bug.cgi?id=455986 is fixed\r\n\t\t\tthis.textPathElement.attr({ \"path\": value });\r\n\t\t\tthis._disposers.push(this.textPathElement);\r\n\t\t\tthis.hardInvalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Path\r\n\t */\r\n\tpublic get path(): string {\r\n\t\treturn this.getPropertyValue(\"path\");\r\n\t}\r\n\r\n\t/**\r\n\t * Relative label location on `path`. Value range is from 0 (beginning)\r\n\t * to 1 (end).\r\n\t *\r\n\t * Works only if you set `path` setting to an SVG path.\r\n\t *\r\n\t * @since 4.1.2\r\n\t * @default 0\r\n\t * @param value Relatvie location on path\r\n\t */\r\n\tpublic set locationOnPath(value: number) {\r\n\t\tthis.setPropertyValue(\"locationOnPath\", value);\r\n\t\tif (this.textPathElement) {\r\n\t\t\tthis.textPathElement.attr({ \"startOffset\": (value * 100) + \"%\" })\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Relatvie location on path\r\n\t */\r\n\tpublic get locationOnPath(): number {\r\n\t\treturn this.getPropertyValue(\"locationOnPath\");\r\n\t}\r\n\r\n\t/**\r\n\t * A ratio to calculate text baseline. Ralative distance from the bottom of\r\n\t * the label.\r\n\t *\r\n\t * @since 4.4.2\r\n\t * @default -0.27\r\n\t * @param value Base line ratio\r\n\t */\r\n\tpublic set baseLineRatio(value: number) {\r\n\t\tthis.setPropertyValue(\"baseLineRatio\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Base line ratio\r\n\t */\r\n\tpublic get baseLineRatio(): number {\r\n\t\treturn this.getPropertyValue(\"baseLineRatio\");\r\n\t}\r\n\r\n\t/**\r\n\t * Enables or disables autowrapping of text.\r\n\t *\r\n\t * @param value Auto-wrapping enabled\r\n\t */\r\n\tpublic set wrap(value: boolean) {\r\n\t\tthis.resetBBox();\r\n\t\tthis.setPropertyValue(\"wrap\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Auto-wrap enabled or not\r\n\t */\r\n\tpublic get wrap(): boolean {\r\n\t\treturn this.getPropertyValue(\"wrap\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if text lines need to be truncated if they do not fit, using\r\n\t * configurable `ellipsis` string.\r\n\t *\r\n\t * `truncate` overrides `wrap` if both are set to `true`.\r\n\t *\r\n\t * NOTE: For HTML text, this setting **won't** trigger a parser and actual\r\n\t * line truncation with ellipsis. It will just hide everything that goes\r\n\t * outside the label.\r\n\t *\r\n\t * @param value trincate text?\r\n\t */\r\n\tpublic set truncate(value: boolean) {\r\n\t\tthis.resetBBox();\r\n\t\tthis.setPropertyValue(\"truncate\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Truncate text?\r\n\t */\r\n\tpublic get truncate(): boolean {\r\n\t\treturn this.getPropertyValue(\"truncate\");\r\n\t}\r\n\r\n\t/**\r\n\t * If `truncate` is enabled, should Label try to break only on full words\r\n\t * (`true`), or whenever needed, including middle of the word. (`false`)\r\n\t *\r\n\t * @default true\r\n\t * @param value Truncate on full words?\r\n\t */\r\n\tpublic set fullWords(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWords\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Truncate on full words?\r\n\t */\r\n\tpublic get fullWords(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWords\");\r\n\t}\r\n\r\n\t/**\r\n\t * Ellipsis character to use if `truncate` is enabled.\r\n\t *\r\n\t * @param value Ellipsis string\r\n\t * @default \"...\"\r\n\t */\r\n\tpublic set ellipsis(value: string) {\r\n\t\tthis.setPropertyValue(\"ellipsis\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Ellipsis string\r\n\t */\r\n\tpublic get ellipsis(): string {\r\n\t\treturn this.getPropertyValue(\"ellipsis\");\r\n\t}\r\n\r\n\t/**\r\n\t * Forces the text to be selectable. This setting will be ignored if the\r\n\t * object has some kind of interaction attached to it, such as it is\r\n\t * `draggable`, `swipeable`, `resizable`.\r\n\t *\r\n\t * @param value Text selectable?\r\n\t * @default false\r\n\t */\r\n\tpublic set selectable(value: boolean) {\r\n\t\tthis.setPropertyValue(\"selectable\", value, true);\r\n\t\tthis.setStyles();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Text selectable?\r\n\t */\r\n\tpublic get selectable(): boolean {\r\n\t\treturn this.getPropertyValue(\"selectable\");\r\n\t}\r\n\r\n\t/**\r\n\t * Horizontal text alignment.\r\n\t *\r\n\t * Available choices:\r\n\t * * \"start\"\r\n\t * * \"middle\"\r\n\t * * \"end\"\r\n\t *\r\n\t * @param value Alignment\r\n\t */\r\n\tpublic set textAlign(value: TextAlign) {\r\n\t\tthis.setPropertyValue(\"textAlign\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Alignment\r\n\t */\r\n\tpublic get textAlign(): TextAlign {\r\n\t\treturn this.getPropertyValue(\"textAlign\");\r\n\t}\r\n\r\n\t/**\r\n\t * Vertical text alignment.\r\n\t *\r\n\t * @ignore Exclude from docs (not used)\r\n\t * @param value Alignment\r\n\t * @deprecated\r\n\t */\r\n\tpublic set textValign(value: TextValign) {\r\n\t\tthis.setPropertyValue(\"textValign\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs (not used)\r\n\t * @return Alignment\r\n\t * @deprecated\r\n\t */\r\n\tpublic get textValign(): TextValign {\r\n\t\treturn this.getPropertyValue(\"textValign\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Raw HTML to be used as text.\r\n\t *\r\n\t * NOTE: HTML text is subject to browser support. It relies on browsers\r\n\t * supporting SVG `foreignObject` nodes. Some browsers (read IEs) do not\r\n\t * support it. On those browsers, the text will fall back to basic SVG text,\r\n\t * striping out all HTML markup and styling that goes with it.\r\n\t *\r\n\t * For more information about `foreignObject` and its browser compatibility\r\n\t * refer to [this page](https://developer.mozilla.org/en/docs/Web/SVG/Element/foreignObject#Browser_compatibility).\r\n\t *\r\n\t * @param value HTML text\r\n\t */\r\n\tpublic set html(value: string) {\r\n\t\tthis.setPropertyValue(\"html\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return HTML content\r\n\t */\r\n\tpublic get html(): string {\r\n\t\treturn this.getPropertyValue(\"html\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates whether the whole text should be hidden if it does not fit into\r\n\t * its allotted space.\r\n\t *\r\n\t * @param value Hide if text does not fit?\r\n\t */\r\n\tpublic set hideOversized(value: boolean) {\r\n\t\tthis.setPropertyValue(\"hideOversized\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hide if text does not fit?\r\n\t */\r\n\tpublic get hideOversized(): boolean {\r\n\t\treturn this.getPropertyValue(\"hideOversized\");\r\n\t}\r\n\r\n\t/**\r\n\t * If set to `true` square-bracket formatting blocks will be treated as\r\n\t * regular text.\r\n\t *\r\n\t * @default false\r\n\t * @param value Ignore formatting?\r\n\t */\r\n\tpublic set ignoreFormatting(value: boolean) {\r\n\t\tthis.setPropertyValue(\"ignoreFormatting\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Ignore formatting?\r\n\t */\r\n\tpublic get ignoreFormatting(): boolean {\r\n\t\treturn this.getPropertyValue(\"ignoreFormatting\");\r\n\t}\r\n\r\n\t/**\r\n\t * Override `mesaureElement` so it does not get measure again, because\r\n\t * internal `_bbox` is being updated by measuring routines in Text itself.\r\n\t */\r\n\tpublic measureElement(): void { }\r\n\r\n\t/**\r\n\t * Returns information about a line element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param index Line index\r\n\t * @return Line info object\r\n\t */\r\n\tpublic getLineInfo(index: number): ITextLineInfo {\r\n\t\tthis.initLineCache();\r\n\t\tlet lines = this.getCache(\"lineInfo\");\r\n\t\treturn lines.length > index ? lines[index] : undefined;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a line to line info cache.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param line Line info object\r\n\t * @param index Insert at specified index\r\n\t */\r\n\tpublic addLineInfo(line: ITextLineInfo, index: number): void {\r\n\t\tthis.initLineCache();\r\n\t\tthis.getCache(\"lineInfo\")[index] = line;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if line cache is initialized and initializes it.\r\n\t */\r\n\tprivate initLineCache(): void {\r\n\t\tif (!$type.hasValue(this.getCache(\"lineInfo\"))) {\r\n\t\t\tthis.setCache(\"lineInfo\", [], 0);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a [[DataItem]] to use for populating dynamic sections of the text.\r\n\t *\r\n\t * Check the description for [[Text]] class, for data binding.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic setDataItem(dataItem: DataItem): void {\r\n\t\tif (this._sourceDataItemEvents) {\r\n\t\t\tthis._sourceDataItemEvents.dispose();\r\n\t\t}\r\n\t\tif (dataItem) {\r\n\t\t\tthis._sourceDataItemEvents = new MultiDisposer([\r\n\t\t\t\tdataItem.events.on(\"valuechanged\", this.invalidate, this, false),\r\n\t\t\t\tdataItem.events.on(\"workingvaluechanged\", this.invalidate, this, false),\r\n\t\t\t\tdataItem.events.on(\"calculatedvaluechanged\", this.invalidate, this, false),\r\n\t\t\t\tdataItem.events.on(\"propertychanged\", this.invalidate, this, false)\r\n\t\t\t]);\r\n\t\t}\r\n\t\tsuper.setDataItem(dataItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns available horizontal space.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Available width (px)\r\n\t */\r\n\tpublic get availableWidth(): number {\r\n\t\treturn $type.hasValue(this.maxWidth) ? this.maxWidth : this.pixelWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns available vertical space.\r\n\t *\r\n\t * @return Available height (px)\r\n\t */\r\n\tpublic get availableHeight(): number {\r\n\t\treturn $type.hasValue(this.maxHeight) ? this.maxHeight : this.pixelHeight;\r\n\t}\r\n\r\n\t// temp, replacing textFormatter method\r\n\tpublic getSvgElement(text: string, style?: string): AMElement {\r\n\t\tlet element = this.paper.add(\"tspan\");\r\n\t\telement.textContent = text;\r\n\t\tif (style) {\r\n\t\t\telement.node.setAttribute(\"style\", style);\r\n\t\t}\r\n\t\treturn element;\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates the whole element, including layout AND all its child\r\n\t * elements.\r\n\t */\r\n\tpublic deepInvalidate() {\r\n\t\tsuper.deepInvalidate();\r\n\t\tthis.hardInvalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Screen reader title of the element.\r\n\t *\r\n\t * @param value Title\r\n\t */\r\n\tpublic set readerTitle(value: string) {\r\n\t\tvalue = $type.toText(value);\r\n\t\tif (this.setPropertyValue(\"readerTitle\", value)) {\r\n\t\t\tthis.applyAccessibility();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Title\r\n\t */\r\n\tpublic get readerTitle(): string {\r\n\t\tlet title = this.getPropertyValue(\"readerTitle\");\r\n\t\tif (!title) {\r\n\t\t\ttitle = this.populateString(\r\n\t\t\t\t$utils.plainText(\r\n\t\t\t\t\t$utils.isNotEmpty(this.html)\r\n\t\t\t\t\t\t? this.html\r\n\t\t\t\t\t\t: this.text\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn title;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Label\"] = Label;\r\n\r\n/**\r\n * Add default responsive rules\r\n */\r\n\r\n/**\r\n * Hide labels added directly to chart, like titles if chart is short.\r\n */\r\ndefaultRules.push({\r\n\trelevant: ResponsiveBreakpoints.heightXS,\r\n\tstate: function(target, stateId) {\r\n\t\tif (target instanceof Label && target.parent && target.parent.isBaseSprite) {\r\n\t\t\tlet state = target.states.create(stateId);\r\n\t\t\tstate.properties.disabled = true;\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n});\r\n","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","import Button from './button';\nexport default Button;","/**\r\n * A collection of easing functions\r\n *\r\n * Parts of this collection are taken from D3.js library (https://d3js.org/)\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $math from \"../utils/Math\";\r\nimport { registry } from \"../Registry\";\r\n\r\n/**\r\n * The functions below are from D3.js library (https://d3js.org/)\r\n *\r\n * ----------------------------------------------------------------------------\r\n * Copyright 2017 Mike Bostock\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are permitted provided that the following conditions are met:\r\n *\r\n * 1. Redistributions of source code must retain the above copyright notice,\r\n * this list of conditions and the following disclaimer.\r\n *\r\n * 2. Redistributions in binary form must reproduce the above copyright notice,\r\n * this list of conditions and the following disclaimer in the documentation\r\n * and/or other materials provided with the distribution.\r\n *\r\n * 3. Neither the name of the copyright holder nor the names of its\r\n * contributors may be used to endorse or promote products derived from this\r\n * software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r\n * POSSIBILITY OF SUCH DAMAGE.\r\n * ----------------------------------------------------------------------------\r\n * @hidden\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * LINEAR FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Easing function: \"linear\".\r\n */\r\nexport function linear(t: number): number {\r\n\treturn +t;\r\n}\r\nregistry.registeredClasses[\"ease.linear\"] = linear;\r\n\r\n/**\r\n * Easing function: \"quadIn\".\r\n */\r\nexport function quadIn(t: number): number {\r\n\treturn t * t;\r\n}\r\nregistry.registeredClasses[\"ease.quadIn\"] = quadIn;\r\n\r\n/**\r\n * Easing function: \"quadOut\".\r\n */\r\nexport function quadOut(t: number): number {\r\n\treturn t * (2 - t);\r\n}\r\nregistry.registeredClasses[\"ease.quadOut\"] = quadOut;\r\n\r\n/**\r\n * Easing function: \"quadInOut\".\r\n */\r\nexport function quadInOut(t: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? t * t : --t * (2 - t) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.quadInOut\"] = quadInOut;\r\n\r\n/**\r\n * Easing function: \"polyIn\".\r\n */\r\nexport function polyIn(t: number, e: number): number {\r\n\treturn Math.pow(t, e);\r\n}\r\nregistry.registeredClasses[\"ease.polyIn\"] = polyIn;\r\n\r\n/**\r\n * Easing function: \"polyOut\".\r\n */\r\nexport function polyOut(t: number, e: number): number {\r\n\treturn 1 - Math.pow(1 - t, e);\r\n}\r\nregistry.registeredClasses[\"ease.polyOut\"] = polyOut;\r\n\r\n/**\r\n * Easing function: \"polyInOut\".\r\n */\r\nexport function polyInOut(t: number, e: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.polyInOut\"] = polyInOut;\r\n\r\n/**\r\n * Easing function: \"polyIn3\".\r\n */\r\nexport function polyIn3(t: number): number {\r\n\treturn polyIn(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyIn3\"] = polyIn3;\r\n\r\n/**\r\n * Easing function: \"polyOut3\".\r\n */\r\nexport function polyOut3(t: number): number {\r\n\treturn polyOut(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyOut3\"] = polyOut3;\r\n\r\n/**\r\n * Easing function: \"polyInOut3\".\r\n */\r\nexport function polyInOut3(t: number): number {\r\n\treturn polyInOut(t, 3);\r\n}\r\nregistry.registeredClasses[\"ease.polyInOut3\"] = polyInOut3;\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * EXPONENTIAL FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Easing function: \"expIn\".\r\n */\r\nexport function expIn(t: number): number {\r\n\treturn Math.pow(2, 10 * t - 10);\r\n}\r\nregistry.registeredClasses[\"ease.expIn\"] = expIn;\r\n\r\n/**\r\n * Easing function: \"expOut\".\r\n */\r\nexport function expOut(t: number): number {\r\n\treturn 1 - Math.pow(2, -10 * t);\r\n}\r\nregistry.registeredClasses[\"ease.expOut\"] = expOut;\r\n\r\n/**\r\n * Easing function: \"expInOut\".\r\n */\r\nexport function expInOut(t: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.expInOut\"] = expInOut;\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * SINE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Easing function: \"sinIn\".\r\n */\r\nexport function sinIn(t: number): number {\r\n\treturn 1 - Math.cos(t * $math.HALFPI);\r\n}\r\nregistry.registeredClasses[\"ease.sinIn\"] = sinIn;\r\n\r\n/**\r\n * Easing function: \"sinOut\".\r\n */\r\nexport function sinOut(t: number): number {\r\n\treturn Math.sin(t * $math.HALFPI);\r\n}\r\nregistry.registeredClasses[\"ease.sinOut\"] = sinOut;\r\n\r\n/**\r\n * Easing function: \"sinInOut\".\r\n */\r\nexport function sinInOut(t: number): number {\r\n\treturn (1 - Math.cos($math.PI * t)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.sinInOut\"] = sinInOut;\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * CUBIC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Easing function: \"cubicIn\".\r\n */\r\nexport function cubicIn(t: number): number {\r\n\treturn t * t * t;\r\n}\r\nregistry.registeredClasses[\"ease.cubicIn\"] = cubicIn;\r\n\r\n/**\r\n * Easing function: \"cubicOut\".\r\n */\r\nexport function cubicOut(t: number): number {\r\n\treturn --t * t * t + 1;\r\n}\r\nregistry.registeredClasses[\"ease.cubicOut\"] = cubicOut;\r\n\r\n/**\r\n * Easing function: \"cubicInOut\".\r\n */\r\nexport function cubicInOut(t: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.cubicInOut\"] = cubicInOut;\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * CIRCLE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Easing function: \"circleIn\".\r\n */\r\nexport function circleIn(t: number): number {\r\n\treturn 1 - Math.sqrt(1 - t * t);\r\n}\r\nregistry.registeredClasses[\"ease.circleIn\"] = circleIn;\r\n\r\n/**\r\n * Easing function: \"circleOut\".\r\n */\r\nexport function circleOut(t: number): number {\r\n\treturn Math.sqrt(1 - --t * t);\r\n}\r\nregistry.registeredClasses[\"ease.circleOut\"] = circleOut;\r\n\r\n/**\r\n * Easing function: \"circleInOut\".\r\n */\r\nexport function circleInOut(t: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.circleInOut\"] = circleInOut;\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * BOUNCE FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nlet b1 = 4 / 11,\r\n\tb2 = 6 / 11,\r\n\tb3 = 8 / 11,\r\n\tb4 = 3 / 4,\r\n\tb5 = 9 / 11,\r\n\tb6 = 10 / 11,\r\n\tb7 = 15 / 16,\r\n\tb8 = 21 / 22,\r\n\tb9 = 63 / 64,\r\n\tb0 = 1 / b1 / b1;\r\n\r\n/**\r\n * Easing function: \"bounceIn\".\r\n */\r\nexport function bounceIn(t: number): number {\r\n\treturn 1 - bounceOut(1 - t);\r\n}\r\nregistry.registeredClasses[\"ease.bounceIn\"] = bounceIn;\r\n\r\n/**\r\n * Easing function: \"bounceOut\".\r\n */\r\nexport function bounceOut(t: number): number {\r\n\tt = +t;\r\n\treturn t < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\r\n}\r\nregistry.registeredClasses[\"ease.bounceOut\"] = bounceOut;\r\n\r\n/**\r\n * Easing function: \"bounceInOut\".\r\n */\r\nexport function bounceInOut(t: number): number {\r\n\tt *= 2;\r\n\treturn (t <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.bounceInOut\"] = bounceInOut;\r\n\r\n/**\r\n * ============================================================================\r\n * ELASTIC FUNCTIONS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nlet tau = 2 * Math.PI;\r\nlet amplitude = 1;\r\nlet period = 0.3 / tau;\r\nlet s = Math.asin(1 / amplitude) * period;\r\n\r\n/**\r\n * Easing function: \"elasticIn\".\r\n *\r\n * @function elasticIn\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticIn(t: number): number {\r\n\treturn amplitude * Math.pow(2, 10 * --t) * Math.sin((s - t) / period);\r\n}\r\nregistry.registeredClasses[\"ease.elasticIn\"] = elasticIn;\r\n\r\n/**\r\n * Easing function: \"elasticOut\".\r\n *\r\n * @function elasticOut\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticOut(t: number): number {\r\n\treturn 1 - amplitude * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / period);\r\n}\r\nregistry.registeredClasses[\"ease.elasticOut\"] = elasticOut;\r\n\r\n/**\r\n * Easing function: \"elasticInOut\".\r\n *\r\n * @function elasticInOut\r\n * @param a Amplitude\r\n * @param p period\r\n */\r\nexport function elasticInOut(t: number): number {\r\n\tt = t * 2 - 1;\r\n\treturn (t < 0\r\n\t\t? amplitude * Math.pow(2, 10 * t) * Math.sin((s - t) / period)\r\n\t\t: 2 - amplitude * Math.pow(2, -10 * t) * Math.sin((s + t) / period)) / 2;\r\n}\r\nregistry.registeredClasses[\"ease.elasticInOut\"] = elasticInOut;\r\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _LoadingOutlined = _interopRequireDefault(require('./lib/icons/LoadingOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _LoadingOutlined;\n exports.default = _default;\n module.exports = _default;","import locale from '../locale/default';\nexport default locale;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport * as React from 'react';\nimport defaultLocaleData from './default';\nimport LocaleContext from './context';\n\nvar LocaleReceiver = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleReceiver, _React$Component);\n\n var _super = _createSuper(LocaleReceiver);\n\n function LocaleReceiver() {\n _classCallCheck(this, LocaleReceiver);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LocaleReceiver, [{\n key: \"getLocale\",\n value: function getLocale() {\n var _this$props = this.props,\n componentName = _this$props.componentName,\n defaultLocale = _this$props.defaultLocale;\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var antLocale = this.context;\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }\n }, {\n key: \"getLocaleCode\",\n value: function getLocaleCode() {\n var antLocale = this.context;\n var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n\n return localeCode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children(this.getLocale(), this.getLocaleCode(), this.context);\n }\n }]);\n\n return LocaleReceiver;\n}(React.Component);\n\nexport { LocaleReceiver as default };\nLocaleReceiver.defaultProps = {\n componentName: 'global'\n};\nLocaleReceiver.contextType = LocaleContext;","/**\r\n * A collection of color-related functions\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $math from \"./Math\";\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * Define named colors for easy resolution to RGB.\r\n */\r\nlet namedColors = {\r\n\taliceblue: { r: 240, g: 248, b: 255 },\r\n\tantiquewhite: { r: 250, g: 235, b: 215 },\r\n\taqua: { r: 0, g: 255, b: 255 },\r\n\taquamarine: { r: 127, g: 255, b: 212 },\r\n\tazure: { r: 240, g: 255, b: 255 },\r\n\tbeige: { r: 245, g: 245, b: 220 },\r\n\tbisque: { r: 255, g: 228, b: 196 },\r\n\tblack: { r: 0, g: 0, b: 0 },\r\n\tblanchedalmond: { r: 255, g: 235, b: 205 },\r\n\tblue: { r: 0, g: 0, b: 255 },\r\n\tblueviolet: { r: 138, g: 43, b: 226 },\r\n\tbrown: { r: 165, g: 42, b: 42 },\r\n\tburlywood: { r: 222, g: 184, b: 135 },\r\n\tcadetblue: { r: 95, g: 158, b: 160 },\r\n\tchartreuse: { r: 127, g: 255, b: 0 },\r\n\tchocolate: { r: 210, g: 105, b: 30 },\r\n\tcoral: { r: 255, g: 127, b: 80 },\r\n\tcornflowerblue: { r: 100, g: 149, b: 237 },\r\n\tcornsilk: { r: 255, g: 248, b: 220 },\r\n\tcrimson: { r: 220, g: 20, b: 60 },\r\n\tcyan: { r: 0, g: 255, b: 255 },\r\n\tdarkblue: { r: 0, g: 0, b: 139 },\r\n\tdarkcyan: { r: 0, g: 139, b: 139 },\r\n\tdarkgoldenrod: { r: 184, g: 134, b: 11 },\r\n\tdarkgray: { r: 169, g: 169, b: 169 },\r\n\tdarkgrey: { r: 169, g: 169, b: 169 },\r\n\tdarkgreen: { r: 0, g: 100, b: 0 },\r\n\tdarkkhaki: { r: 189, g: 183, b: 107 },\r\n\tdarkmagenta: { r: 139, g: 0, b: 139 },\r\n\tdarkolivegreen: { r: 85, g: 107, b: 47 },\r\n\tdarkorange: { r: 255, g: 140, b: 0 },\r\n\tdarkorchid: { r: 153, g: 50, b: 204 },\r\n\tdarkred: { r: 139, g: 0, b: 0 },\r\n\tdarksalmon: { r: 233, g: 150, b: 122 },\r\n\tdarkseagreen: { r: 143, g: 188, b: 143 },\r\n\tdarkslateblue: { r: 72, g: 61, b: 139 },\r\n\tdarkslategray: { r: 47, g: 79, b: 79 },\r\n\tdarkslategrey: { r: 47, g: 79, b: 79 },\r\n\tdarkturquoise: { r: 0, g: 206, b: 209 },\r\n\tdarkviolet: { r: 148, g: 0, b: 211 },\r\n\tdeeppink: { r: 255, g: 20, b: 147 },\r\n\tdeepskyblue: { r: 0, g: 191, b: 255 },\r\n\tdimgray: { r: 105, g: 105, b: 105 },\r\n\tdimgrey: { r: 105, g: 105, b: 105 },\r\n\tdodgerblue: { r: 30, g: 144, b: 255 },\r\n\tfirebrick: { r: 178, g: 34, b: 34 },\r\n\tfloralwhite: { r: 255, g: 250, b: 240 },\r\n\tforestgreen: { r: 34, g: 139, b: 34 },\r\n\tfuchsia: { r: 255, g: 0, b: 255 },\r\n\tgainsboro: { r: 220, g: 220, b: 220 },\r\n\tghostwhite: { r: 248, g: 248, b: 255 },\r\n\tgold: { r: 255, g: 215, b: 0 },\r\n\tgoldenrod: { r: 218, g: 165, b: 32 },\r\n\tgray: { r: 128, g: 128, b: 128 },\r\n\tgrey: { r: 128, g: 128, b: 128 },\r\n\tgreen: { r: 0, g: 128, b: 0 },\r\n\tgreenyellow: { r: 173, g: 255, b: 47 },\r\n\thoneydew: { r: 240, g: 255, b: 240 },\r\n\thotpink: { r: 255, g: 105, b: 180 },\r\n\tindianred: { r: 205, g: 92, b: 92 },\r\n\tindigo: { r: 75, g: 0, b: 130 },\r\n\tivory: { r: 255, g: 255, b: 240 },\r\n\tkhaki: { r: 240, g: 230, b: 140 },\r\n\tlavender: { r: 230, g: 230, b: 250 },\r\n\tlavenderblush: { r: 255, g: 240, b: 245 },\r\n\tlawngreen: { r: 124, g: 252, b: 0 },\r\n\tlemonchiffon: { r: 255, g: 250, b: 205 },\r\n\tlightblue: { r: 173, g: 216, b: 230 },\r\n\tlightcoral: { r: 240, g: 128, b: 128 },\r\n\tlightcyan: { r: 224, g: 255, b: 255 },\r\n\tlightgoldenrodyellow: { r: 250, g: 250, b: 210 },\r\n\tlightgray: { r: 211, g: 211, b: 211 },\r\n\tlightgrey: { r: 211, g: 211, b: 211 },\r\n\tlightgreen: { r: 144, g: 238, b: 144 },\r\n\tlightpink: { r: 255, g: 182, b: 193 },\r\n\tlightsalmon: { r: 255, g: 160, b: 122 },\r\n\tlightseagreen: { r: 32, g: 178, b: 170 },\r\n\tlightskyblue: { r: 135, g: 206, b: 250 },\r\n\tlightslategray: { r: 119, g: 136, b: 153 },\r\n\tlightslategrey: { r: 119, g: 136, b: 153 },\r\n\tlightsteelblue: { r: 176, g: 196, b: 222 },\r\n\tlightyellow: { r: 255, g: 255, b: 224 },\r\n\tlime: { r: 0, g: 255, b: 0 },\r\n\tlimegreen: { r: 50, g: 205, b: 50 },\r\n\tlinen: { r: 250, g: 240, b: 230 },\r\n\tmagenta: { r: 255, g: 0, b: 255 },\r\n\tmaroon: { r: 128, g: 0, b: 0 },\r\n\tmediumaquamarine: { r: 102, g: 205, b: 170 },\r\n\tmediumblue: { r: 0, g: 0, b: 205 },\r\n\tmediumorchid: { r: 186, g: 85, b: 211 },\r\n\tmediumpurple: { r: 147, g: 112, b: 219 },\r\n\tmediumseagreen: { r: 60, g: 179, b: 113 },\r\n\tmediumslateblue: { r: 123, g: 104, b: 238 },\r\n\tmediumspringgreen: { r: 0, g: 250, b: 154 },\r\n\tmediumturquoise: { r: 72, g: 209, b: 204 },\r\n\tmediumvioletred: { r: 199, g: 21, b: 133 },\r\n\tmidnightblue: { r: 25, g: 25, b: 112 },\r\n\tmintcream: { r: 245, g: 255, b: 250 },\r\n\tmistyrose: { r: 255, g: 228, b: 225 },\r\n\tmoccasin: { r: 255, g: 228, b: 181 },\r\n\tnavajowhite: { r: 255, g: 222, b: 173 },\r\n\tnavy: { r: 0, g: 0, b: 128 },\r\n\toldlace: { r: 253, g: 245, b: 230 },\r\n\tolive: { r: 128, g: 128, b: 0 },\r\n\tolivedrab: { r: 107, g: 142, b: 35 },\r\n\torange: { r: 255, g: 165, b: 0 },\r\n\torangered: { r: 255, g: 69, b: 0 },\r\n\torchid: { r: 218, g: 112, b: 214 },\r\n\tpalegoldenrod: { r: 238, g: 232, b: 170 },\r\n\tpalegreen: { r: 152, g: 251, b: 152 },\r\n\tpaleturquoise: { r: 175, g: 238, b: 238 },\r\n\tpalevioletred: { r: 219, g: 112, b: 147 },\r\n\tpapayawhip: { r: 255, g: 239, b: 213 },\r\n\tpeachpuff: { r: 255, g: 218, b: 185 },\r\n\tperu: { r: 205, g: 133, b: 63 },\r\n\tpink: { r: 255, g: 192, b: 203 },\r\n\tplum: { r: 221, g: 160, b: 221 },\r\n\tpowderblue: { r: 176, g: 224, b: 230 },\r\n\tpurple: { r: 128, g: 0, b: 128 },\r\n\trebeccapurple: { r: 102, g: 51, b: 153 },\r\n\tred: { r: 255, g: 0, b: 0 },\r\n\trosybrown: { r: 188, g: 143, b: 143 },\r\n\troyalblue: { r: 65, g: 105, b: 225 },\r\n\tsaddlebrown: { r: 139, g: 69, b: 19 },\r\n\tsalmon: { r: 250, g: 128, b: 114 },\r\n\tsandybrown: { r: 244, g: 164, b: 96 },\r\n\tseagreen: { r: 46, g: 139, b: 87 },\r\n\tseashell: { r: 255, g: 245, b: 238 },\r\n\tsienna: { r: 160, g: 82, b: 45 },\r\n\tsilver: { r: 192, g: 192, b: 192 },\r\n\tskyblue: { r: 135, g: 206, b: 235 },\r\n\tslateblue: { r: 106, g: 90, b: 205 },\r\n\tslategray: { r: 112, g: 128, b: 144 },\r\n\tslategrey: { r: 112, g: 128, b: 144 },\r\n\tsnow: { r: 255, g: 250, b: 250 },\r\n\tspringgreen: { r: 0, g: 255, b: 127 },\r\n\tsteelblue: { r: 70, g: 130, b: 180 },\r\n\ttan: { r: 210, g: 180, b: 140 },\r\n\tteal: { r: 0, g: 128, b: 128 },\r\n\tthistle: { r: 216, g: 191, b: 216 },\r\n\ttomato: { r: 255, g: 99, b: 71 },\r\n\tturquoise: { r: 64, g: 224, b: 208 },\r\n\tviolet: { r: 238, g: 130, b: 238 },\r\n\twheat: { r: 245, g: 222, b: 179 },\r\n\twhite: { r: 255, g: 255, b: 255 },\r\n\twhitesmoke: { r: 245, g: 245, b: 245 },\r\n\tyellow: { r: 255, g: 255, b: 0 },\r\n\tyellowgreen: { r: 154, g: 205, b: 50 }\r\n};\r\n\r\n\r\n/**\r\n * Tries to resolve a named color into a hex color representation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Color name\r\n * @return Color\r\n * @deprecated\r\n * @hidden\r\n */\r\n/*export function resolveNamedColor(value: string): Color {\r\n\treturn (<any>namedColors)[value] ? (<any>namedColors)[value] : undefined;\r\n}*/\r\n\r\n/**\r\n * Converts a proper color hex code (i.e. \"#FF5500\") or named color (i.e. \"red\")\r\n * into an {iRGB} object. If the code is not correctly formatted, an RGB of\r\n * black is returned.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Color code\r\n * @param alpha Alpha (0-1)\r\n * @return RGB\r\n */\r\nexport function rgb(color: string, alpha?: number): iRGB {\r\n\r\n\t// Init return value\r\n\tlet rgb: $type.Optional<iRGB>;\r\n\r\n\t// Try resolving color format\r\n\r\n\t// Named color?\r\n\tif ((<any>namedColors)[color]) {\r\n\t\trgb = (<any>namedColors)[color];\r\n\t}\r\n\r\n\t// Hex code?\r\n\telse if (color.charAt(0) === \"#\") {\r\n\t\trgb = hexToRgb(color);\r\n\t}\r\n\r\n\t// rgb() format?\r\n\telse if (color.match(/^rgba?\\(/)) {\r\n\t\trgb = rgbaToRgb(color);\r\n\t}\r\n\r\n\t// Was not able to resolve?\r\n\tif (!rgb) {\r\n\t\trgb = { r: 0, g: 0, b: 0, a: 1 };\r\n\t}\r\n\r\n\t// Set alpha\r\n\tif ($type.hasValue(alpha)) {\r\n\t\trgb.a = alpha;\r\n\t}\r\n\r\n\treturn rgb;\r\n}\r\n\r\n/**\r\n * Converts a hex color code (i.e. \"#FF5500\") to an [[iRGB]] object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param hex Hex color code\r\n * @return RGB\r\n */\r\nexport function hexToRgb(hex: string): $type.Optional<iRGB> {\r\n\t// Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n\tlet shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n\thex = hex.replace(shorthandRegex, function(m, r, g, b) {\r\n\t\treturn r + r + g + g + b + b;\r\n\t});\r\n\r\n\tlet result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\treturn result ? {\r\n\t\tr: parseInt(result[1], 16),\r\n\t\tg: parseInt(result[2], 16),\r\n\t\tb: parseInt(result[3], 16)\r\n\t} : hexToRgbWithAlpha(hex);\r\n}\r\n\r\n/**\r\n * Converts a hex color code with alpha (i.e. \"#FF5500128\") to an [[iRGB]] object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param hex Hex color code\r\n * @return RGB\r\n */\r\nexport function hexToRgbWithAlpha(hex: string): $type.Optional<iRGB> {\r\n\t// Expand shorthand form (e.g. \"03FA\") to full form (e.g. \"0033FFAA\")\r\n\tlet shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n\thex = hex.replace(shorthandRegex, function(m, r, g, b, a) {\r\n\t\treturn r + r + g + g + b + b + a + a;\r\n\t});\r\n\r\n\tlet result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\treturn result ? {\r\n\t\tr: parseInt(result[1], 16),\r\n\t\tg: parseInt(result[2], 16),\r\n\t\tb: parseInt(result[3], 16),\r\n\t\ta: parseInt(result[4], 16) / 256\r\n\t} : undefined;\r\n}\r\n\r\n/**\r\n * Converts color strings in format like `rgb()` and `rgba()` to [[iRGB]].\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Color code\r\n * @return RGB\r\n */\r\nexport function rgbaToRgb(color: string): $type.Optional<iRGB> {\r\n\tcolor = color.replace(/[ ]/g, \"\");\r\n\r\n\t// Init\r\n\tlet matches: string[] | null = color.match(/^rgb\\(([0-9]*),([0-9]*),([0-9]*)\\)/i);\r\n\r\n\t// Try rgb() format\r\n\tif (matches) {\r\n\t\tmatches.push(\"1\");\r\n\r\n\t} else {\r\n\t\tmatches = color.match(/^rgba\\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\\)/i);\r\n\r\n\t\tif (!matches) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tr: parseInt(matches[1]),\r\n\t\tg: parseInt(matches[2]),\r\n\t\tb: parseInt(matches[3]),\r\n\t\ta: parseFloat(matches[4])\r\n\t};\r\n}\r\n\r\n/**\r\n * Converts an [[iRGB]] object into a hex color code.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rgb RGB\r\n * @return Hex color code\r\n */\r\nexport function rgbToHex(rgb: iRGB): string {\r\n\treturn \"#\" + pad2(rgb.r.toString(16)) + pad2(rgb.g.toString(16)) + pad2(rgb.b.toString(16));\r\n}\r\n\r\n/**\r\n * Converts an [[iRGB]] object into its `rgb()` or `rgba()` representation.\r\n *\r\n * @ignore Exclude from docs\r\n * @param rgb RGB\r\n * @return `rgba()` syntax\r\n */\r\nexport function rgbToRGBA(rgb: iRGB): string {\r\n\tif ($type.hasValue(rgb.a) && rgb.a !== 1) {\r\n\t\treturn \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",\" + rgb.a + \")\";\r\n\t}\r\n\telse {\r\n\t\treturn \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\";\r\n\t}\r\n}\r\n\r\n/**\r\n * Pads a 1-digit string with a zero.\r\n *\r\n * @ignore Exclude from docs\r\n * @param c Input string\r\n * @return Padded string\r\n */\r\nexport function pad2(c: string): string {\r\n\treturn c.length == 1 ? \"0\" + c : \"\" + c;\r\n}\r\n\r\n/**\r\n * Returns an intermediate color between two colors based on the relative\r\n * position. Position needs to be in range between 0 and 1. Zero meaning the\r\n * resulting color will be closest to the first reference color.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color1 First reference color\r\n * @param color2 Second reference color\r\n * @param percent Relative position (0-1)\r\n * @return Interpolated color\r\n */\r\nexport function interpolate(rgb1: $type.Optional<iRGB>, rgb2: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\r\n\tpercent = $math.fitToRange(percent, 0, 1);\r\n\r\n\tif (rgb1) {\r\n\t\tif (rgb2) {\r\n\t\t\treturn {\r\n\t\t\t\tr: rgb1.r + Math.round((rgb2.r - rgb1.r) * percent),\r\n\t\t\t\tg: rgb1.g + Math.round((rgb2.g - rgb1.g) * percent),\r\n\t\t\t\tb: rgb1.b + Math.round((rgb2.b - rgb1.b) * percent),\r\n\t\t\t\ta: (rgb1.a || 1) + Math.round(((rgb2.a || 1) - (rgb1.a || 1)) * percent)\r\n\t\t\t};\r\n\r\n\t\t} else {\r\n\t\t\treturn rgb1;\r\n\t\t}\r\n\r\n\t} else if (rgb2) {\r\n\t\treturn rgb2;\r\n\r\n\t} else {\r\n\t\treturn rgb1;\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns a color that is `percent` brighter than the reference color.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Reference color\r\n * @param percent Brightness percent\r\n * @return Hex code of the new color\r\n */\r\nexport function lighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\r\n\tif (rgb) {\r\n\t\treturn {\r\n\t\t\tr: Math.max(0, Math.min(255, rgb.r + getLightnessStep(rgb.r, percent))),\r\n\t\t\tg: Math.max(0, Math.min(255, rgb.g + getLightnessStep(rgb.g, percent))),\r\n\t\t\tb: Math.max(0, Math.min(255, rgb.b + getLightnessStep(rgb.b, percent))),\r\n\t\t\ta: rgb.a\r\n\t\t};\r\n\r\n\t} else {\r\n\t\t// TODO is this correct ?\r\n\t\treturn rgb;\r\n\t}\r\n};\r\n\r\n/**\r\n * Gets lightness step.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Value\r\n * @param percent Percent\r\n * @return Step\r\n */\r\nexport function getLightnessStep(value: number, percent: number): number {\r\n\tlet base = percent > 0 ? 255 - value : value;\r\n\treturn Math.round(base * percent);\r\n}\r\n\r\n/**\r\n * Returns a color that is `percent` brighter than the source `color`.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Source color\r\n * @param percent Brightness percent\r\n * @return New color\r\n */\r\nexport function brighten(rgb: $type.Optional<iRGB>, percent: number): $type.Optional<iRGB> {\r\n\tif (rgb) {\r\n\t\tlet base = Math.min(Math.max(rgb.r, rgb.g, rgb.b), 230);\r\n\t\t//let base = Math.max(rgb.r, rgb.g, rgb.b);\r\n\t\tlet step = getLightnessStep(base, percent);\r\n\t\treturn {\r\n\t\t\tr: Math.max(0, Math.min(255, Math.round(rgb.r + step))),\r\n\t\t\tg: Math.max(0, Math.min(255, Math.round(rgb.g + step))),\r\n\t\t\tb: Math.max(0, Math.min(255, Math.round(rgb.b + step))),\r\n\t\t\ta: rgb.a\r\n\t\t};\r\n\r\n\t} else {\r\n\t\t// TODO is this correct ?\r\n\t\treturn rgb;\r\n\t}\r\n};\r\n\r\n/**\r\n * Returns brightness step.\r\n *\r\n * @ignore Exclude from docs\r\n * @param value Value\r\n * @param percent Percent\r\n * @return Step\r\n */\r\nexport function getBrightnessStep(value: number, percent: number): number {\r\n\tlet base = 255; //percent > 0 ? 255 - value : value;\r\n\treturn Math.round(base * percent);\r\n}\r\n\r\n/**\r\n * Returns a new [[iRGB]] object based on `rgb` parameter with specific\r\n * saturation applied.\r\n *\r\n * `saturation` can be in the range of 0 (fully desaturated) to 1 (fully\r\n * saturated).\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Base color\r\n * @param saturation Saturation (0-1)\r\n * @return New color\r\n */\r\nexport function saturate(rgb: $type.Optional<iRGB>, saturation: number): $type.Optional<iRGB> {\r\n\tif (rgb == null || saturation == 1) {\r\n\t\treturn rgb;\r\n\t}\r\n\r\n\tlet hsl = rgbToHsl(rgb);\r\n\thsl.s = saturation;\r\n\treturn hslToRgb(hsl);\r\n}\r\n\r\n/*\r\n// not used\r\nexport function rgbToMatrix(rgb: iRGB): string {\r\n\tlet r = $type.toText($math.round((rgb.r || 0) / 255, 10));\r\n\tlet g = $type.toText($math.round((rgb.g || 0) / 255, 10));\r\n\tlet b = $type.toText($math.round((rgb.b || 0) / 255, 10));\r\n\tlet a = $type.toText(rgb.a || 1);\r\n\treturn\t r + \" 0 0 0 0\" +\r\n\t\t\t\t\t\" 0 \" + g + \" 0 0 0\" +\r\n\t\t\t\t\t\" 0 0 \" + b + \" 0 0\" +\r\n\t\t\t\t\t\" 0 0 0 \" + a + \" 0\";\r\n}\r\n*/\r\n\r\n/**\r\n * The functions below are taken and adapted from Garry Tan's blog post:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * The further attributions go mjijackson.com, which now seems to be defunct.\r\n */\r\n\r\n/**\r\n * Converts an HSL color value to RGB. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\r\n * Assumes h, s, and l are contained in the set [0, 1] and\r\n * returns r, g, and b in the set [0, 255].\r\n *\r\n * Function adapted from:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * @ignore Exclude from docs\r\n * @param h The hue\r\n * @param s The saturation\r\n * @param l The lightness\r\n * @return The RGB representation\r\n */\r\nexport function hslToRgb(color: iHSL): iRGB {\r\n\tlet r, g, b;\r\n\tlet h = color.h;\r\n\tlet s = color.s;\r\n\tlet l = color.l;\r\n\r\n\tif (s == 0) {\r\n\t\tr = g = b = l; // achromatic\r\n\t} else {\r\n\t\tlet hue2rgb = function hue2rgb(p: number, q: number, t: number) {\r\n\t\t\tif (t < 0) { t += 1; }\r\n\t\t\tif (t > 1) { t -= 1; }\r\n\t\t\tif (t < 1 / 6) { return p + (q - p) * 6 * t; }\r\n\t\t\tif (t < 1 / 2) { return q; }\r\n\t\t\tif (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; }\r\n\t\t\treturn p;\r\n\t\t}\r\n\r\n\t\tlet q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n\t\tlet p = 2 * l - q;\r\n\t\tr = hue2rgb(p, q, h + 1 / 3);\r\n\t\tg = hue2rgb(p, q, h);\r\n\t\tb = hue2rgb(p, q, h - 1 / 3);\r\n\t}\r\n\r\n\treturn {\r\n\t\tr: Math.round(r * 255),\r\n\t\tg: Math.round(g * 255),\r\n\t\tb: Math.round(b * 255)\r\n\t};\r\n}\r\n\r\n/**\r\n * Converts an RGB color value to HSL. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\r\n * Assumes r, g, and b are contained in the set [0, 255] and\r\n * returns h, s, and l in the set [0, 1].\r\n *\r\n * Function adapted from:\r\n * http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\r\n *\r\n * @ignore Exclude from docs\r\n * @param r The red color value\r\n * @param g The green color value\r\n * @param b The blue color value\r\n * @return The HSL representation\r\n */\r\nexport function rgbToHsl(color: iRGB): iHSL {\r\n\tlet r = color.r / 255;\r\n\tlet g = color.g / 255;\r\n\tlet b = color.b / 255;\r\n\tlet max = Math.max(r, g, b);\r\n\tlet min = Math.min(r, g, b);\r\n\tlet h = 0;\r\n\tlet s = 0;\r\n\tlet l = (max + min) / 2;\r\n\r\n\tif (max === min) {\r\n\t\th = s = 0; // achromatic\r\n\r\n\t} else {\r\n\t\tlet d = max - min;\r\n\r\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n\t\tswitch (max) {\r\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n\t\t\tcase g: h = (b - r) / d + 2; break;\r\n\t\t\tcase b: h = (r - g) / d + 4; break;\r\n\t\t}\r\n\r\n\t\th /= 6;\r\n\t}\r\n\r\n\treturn {\r\n\t\th: h,\r\n\t\ts: s,\r\n\t\tl: l\r\n\t};\r\n}\r\n\r\n/**\r\n * Converts an RGB color value to HSV. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSV_color_space.\r\n * Assumes r, g, and b are contained in the set [0, 255] and\r\n * returns h, s, and v in the set [0, 1].\r\n *\r\n * @ignore Exclude from docs\r\n * @param Number r The red color value\r\n * @param Number g The green color value\r\n * @param Number b The blue color value\r\n * @return Array The HSV representation\r\n */\r\nexport function rgbToHsv(color: iRGB): iHSV {\r\n\tlet r = color.r / 255;\r\n\tlet g = color.g / 255;\r\n\tlet b = color.b / 255;\r\n\tlet max = Math.max(r, g, b), min = Math.min(r, g, b);\r\n\tlet h = 0;\r\n\tlet s = 0;\r\n\tlet v = max;\r\n\r\n\tlet d = max - min;\r\n\ts = max == 0 ? 0 : d / max;\r\n\r\n\tif (max == min) {\r\n\t\th = 0; // achromatic\r\n\r\n\t} else {\r\n\t\tswitch (max) {\r\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n\t\t\tcase g: h = (b - r) / d + 2; break;\r\n\t\t\tcase b: h = (r - g) / d + 4; break;\r\n\t\t}\r\n\t\th /= 6;\r\n\t}\r\n\r\n\treturn {\r\n\t\th: h,\r\n\t\ts: s,\r\n\t\tv: v\r\n\t};\r\n}\r\n\r\n/**\r\n * Converts an HSV color value to RGB. Conversion formula\r\n * adapted from http://en.wikipedia.org/wiki/HSV_color_space.\r\n * Assumes h, s, and v are contained in the set [0, 1] and\r\n * returns r, g, and b in the set [0, 255].\r\n *\r\n * @ignore Exclude from docs\r\n * @param Number h The hue\r\n * @param Number s The saturation\r\n * @param Number v The value\r\n * @return Array The RGB representation\r\n */\r\nexport function hsvToRgb(color: iHSV): iRGB {\r\n\tlet r = 0;\r\n\tlet g = 0;\r\n\tlet b = 0;\r\n\tlet h = color.h;\r\n\tlet s = color.s;\r\n\tlet v = color.v;\r\n\r\n\tlet i = Math.floor(h * 6);\r\n\tlet f = h * 6 - i;\r\n\tlet p = v * (1 - s);\r\n\tlet q = v * (1 - f * s);\r\n\tlet t = v * (1 - (1 - f) * s);\r\n\r\n\tswitch (i % 6) {\r\n\t\tcase 0:\r\n\t\t\tr = v;\r\n\t\t\tg = t;\r\n\t\t\tb = p;\r\n\t\t\tbreak;\r\n\t\tcase 1:\r\n\t\t\tr = q;\r\n\t\t\tg = v;\r\n\t\t\tb = p;\r\n\t\t\tbreak;\r\n\t\tcase 2:\r\n\t\t\tr = p;\r\n\t\t\tg = v;\r\n\t\t\tb = t;\r\n\t\t\tbreak;\r\n\t\tcase 3:\r\n\t\t\tr = p;\r\n\t\t\tg = q;\r\n\t\t\tb = v;\r\n\t\t\tbreak;\r\n\t\tcase 4:\r\n\t\t\tr = t;\r\n\t\t\tg = p;\r\n\t\t\tb = v;\r\n\t\t\tbreak;\r\n\t\tcase 5:\r\n\t\t\tr = v;\r\n\t\t\tg = p;\r\n\t\t\tb = q;\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\treturn {\r\n\t\tr: Math.round(r * 255),\r\n\t\tg: Math.round(g * 255),\r\n\t\tb: Math.round(b * 255)\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns `true` if color is \"light\". Useful indetermining which contrasting\r\n * color to use for elements over this color. E.g.: you would want to use\r\n * black text over light background, and vice versa.\r\n *\r\n * @ignore Exclude from docs\r\n * @param color Source color\r\n * @return Light?\r\n */\r\nexport function isLight(color: iRGB): boolean {\r\n\treturn ((color.r * 299) + (color.g * 587) + (color.b * 114)) / 1000 >= 128;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * COLOR CONVERSION\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents an interface for an object that represents an RGB color.\r\n */\r\nexport interface iRGB {\r\n\tr: number;\r\n\tg: number;\r\n\tb: number;\r\n\ta?: number;\r\n}\r\n\r\n/**\r\n * Represents an interface for an object that represents an HSL color.\r\n */\r\nexport interface iHSL {\r\n\th: number;\r\n\ts: number;\r\n\tl: number;\r\n\ta?: number;\r\n}\r\n\r\n/**\r\n * Represents an interface for an object that represents an HSV color.\r\n */\r\nexport interface iHSV {\r\n\th: number;\r\n\ts: number;\r\n\tv: number;\r\n\ta?: number;\r\n}\r\n","/**\r\n * Contains code and logic for generating linear gradients.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { Group } from \"../Group\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Paper, getGhostPaper } from \"../Paper\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport { registry } from \"../../Registry\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $math from \"../../utils/Math\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents an object describing color switching point in a gradiend.\r\n */\r\nexport interface IGradientStop {\r\n\r\n\t/**\r\n\t * Color.\r\n\t */\r\n\tcolor: Color;\r\n\r\n\t/**\r\n\t * Offset defines where in the gradient the color should kick in. Values\r\n\t * from 0 to 1 are possible with 0 meaning start, 0.5 half-way through the\r\n\t * gradient, etc.\r\n\t */\r\n\toffset?: number;\r\n\r\n\t/**\r\n\t * Transparency of the color. 0 - completely transparent, 1 - fully opaque.\r\n\t */\r\n\topacity?: number;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Linear gradient class.\r\n */\r\nexport class LinearGradient extends BaseObject {\r\n\r\n\t/**\r\n\t * List of colors switch definitions in a gradient.\r\n\t */\r\n\tprotected _stops: List<IGradientStop> = new List<IGradientStop>();\r\n\r\n\t/**\r\n\t * An SVG `<group>` element used to draw gradient.\r\n\t */\r\n\tpublic element: Group;\r\n\r\n\t/**\r\n\t * Reference to Paper to add element to.\r\n\t */\r\n\tprotected _paper: $type.Optional<Paper>;\r\n\r\n\t/**\r\n\t * Gradient direction.\r\n\t */\r\n\tprotected _rotation: number = 0;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"LinearGradient\";\r\n\r\n\t\tthis._stops.events.on(\"setIndex\", this.validate, this);\r\n\t\tthis._stops.events.on(\"inserted\", this.validate, this);\r\n\t\t// Create element\r\n\t\tthis.element = this.paper.addGroup(\"linearGradient\");\r\n\t\tthis.id = \"gradient-\" + registry.getUniqueId();\r\n\t\tthis.element.attr({ \"id\": this.id });\r\n\t\tthis._disposers.push(this.element);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Draws gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tlet rotation = (this._rotation + 90) * $math.RADIANS;\r\n\r\n\t\tlet x1: string = Math.round(50 + Math.sin(rotation + Math.PI) * 50) + '%';\r\n\t\tlet y1: string = Math.round(50 + Math.cos(rotation) * 50) + '%';\r\n\r\n\t\tlet x2: string = Math.round(50 + Math.sin(rotation) * 50) + '%';\r\n\t\tlet y2: string = Math.round(50 + Math.cos(rotation + Math.PI) * 50) + '%';\r\n\r\n\r\n\t\tlet gradientElement: Group = this.element;\r\n\t\tgradientElement.removeChildNodes();\r\n\t\tgradientElement.attr({\"x1\": x1, \"x2\":x2, \"y1\": y1, \"y2\":y2});\r\n\r\n\t\t$iter.each($iter.indexed(this._stops.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet stop = a[1];\r\n\t\t\tlet offset: $type.Optional<number> = stop.offset;\r\n\r\n\t\t\tif (!$type.isNumber(offset)) {\r\n\t\t\t\toffset = i / (this._stops.length - 1)\r\n\t\t\t}\r\n\r\n\t\t\tlet gradientStop: AMElement = this.paper.add(\"stop\");\r\n\t\t\tif ($type.hasValue(stop.color)) {\r\n\t\t\t\tgradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n\t\t\t}\r\n\t\t\tif ($type.isNumber(stop.opacity)) {\r\n\t\t\t\tgradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(offset)) {\r\n\t\t\t\tgradientStop.attr({ \"offset\": offset });\r\n\t\t\t}\r\n\r\n\t\t\tgradientElement.add(gradientStop);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tthis._stops.clear();\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a color step to the gradient.\r\n\t *\r\n\t * @param color Color (hex code or named color)\r\n\t * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n\t * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n\t */\r\n\tpublic addColor(color: Color, opacity?: number, offset?: number): void {\r\n\t\tthis._stops.push({ color: color, opacity: opacity, offset: offset });\r\n\t}\r\n\r\n\t/**\r\n\t * A list of color stops in the gradient.\r\n\t *\r\n\t * @return Stops\r\n\t */\r\n\tpublic get stops(): List<IGradientStop> {\r\n\t\treturn this._stops;\r\n\t}\r\n\r\n\t/**\r\n\t * [[Paper]] instace to use for the gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param paper Paper\r\n\t */\r\n\tpublic set paper(paper: Paper) {\r\n\t\tif (this._paper != paper) {\r\n\t\t\tthis._paper = paper;\r\n\t\t\tthis.validate();\r\n\t\t\tpaper.appendDef(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Paper\r\n\t */\r\n\tpublic get paper(): Paper {\r\n\t\tif (this._paper) {\r\n\t\t\treturn this._paper;\r\n\t\t}\r\n\t\treturn getGhostPaper();\r\n\t}\r\n\r\n\t/**\r\n\t * Rotation (direction) of the gradient in degrees.\r\n\t *\r\n\t * @param value Rotation\r\n\t */\r\n\tpublic set rotation(value: number) {\r\n\t\t//this.element.attr({ \"gradientTransform\": \"rotate(\" + value + \" 10 100)\" });\r\n\t\tthis._rotation = value;\r\n\t\tthis.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rotation\r\n\t */\r\n\tpublic get rotation(): number {\r\n\t\treturn this._rotation;\r\n\t}\r\n\r\n\r\n\tpublic copyFrom(source:this){\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\tthis.stops.copyFrom(source.stops);\r\n\r\n\t\tthis._rotation = source.rotation;\r\n\t}\r\n\r\n\t/**\r\n\t * Which units are used when drawing gradient filter.\r\n\t *\r\n\t * Use `\"userSpaceOnUse\"` when applying gradient on a perfectly straight line.\r\n\t *\r\n\t * @since 4.9.17\r\n\t * @default objectBoundingBox\r\n\t * @param value Filter units\r\n\t */\r\n\tpublic set gradientUnits(value: \"objectBoundingBox\" | \"userSpaceOnUse\") {\r\n\t\tthis.element.attr({gradientUnits:value});\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"LinearGradient\"] = LinearGradient;\r\n","/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport { registry } from \"../Registry\";\nimport * as $path from \"./Path\";\nimport * as $array from \"../utils/Array\";\nimport * as $utils from \"../utils/Utils\";\nimport * as $math from \"../utils/Math\";\nimport { IPoint } from \"../defs/IPoint\";\n\n\n/**\n * ============================================================================\n * PATH FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface ISmoothing {\n\tsmooth(points: Array<IPoint>): string;\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class Tension implements ISmoothing {\n\n\t/**\n\t * [_tensionX description]\n\t *\n\t * @todo Description\n\t */\n\tprivate _tensionX: number;\n\n\t/**\n\t * [_tensionY description]\n\t *\n\t * @todo Description\n\t */\n\tprivate _tensionY: number;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param tensionX [description]\n\t * @param tensionY [description]\n\t */\n\tconstructor(tensionX: number, tensionY: number) {\n\t\tthis._tensionX = tensionX;\n\t\tthis._tensionY = tensionY;\n\t}\n\n\t/**\n\t * [smooth description]\n\t *\n\t * @ignore Exclude from docs\n\t * @todo Description\n\t * @param points [description]\n\t * @return [description]\n\t */\n\tpublic smooth(points: Array<IPoint>): string {\n\n\t\tfor (let i = points.length - 1; i > 0; i--) {\n\t\t\tlet p0 = points[i];\n\t\t\tlet p1 = points[i - 1];\n\n\t\t\tif (Math.abs(p0.x - p1.x) < 0.1 && Math.abs(p0.y - p1.y) < 0.1) {\n\t\t\t\tpoints.splice(i, 1);\n\t\t\t}\n\t\t}\n\n\n\t\tlet tensionX = this._tensionX;\n\t\tlet tensionY = this._tensionY;\n\n\t\tif (points.length < 3 || (tensionX >= 1 && tensionY >= 1)) {\n\t\t\treturn $path.polyline(points);\n\t\t}\n\n\t\tlet first: IPoint = points[0];\n\t\tlet last: IPoint = points[points.length - 1];\n\n\t\tlet closed: boolean = false;\n\n\t\tif ($math.round(first.x, 3) == $math.round(last.x) && $math.round(first.y) == $math.round(last.y)) {\n\t\t\tclosed = true;\n\t\t}\n\n\t\t// Can't moveTo here, as it wont be possible to have fill then.\n\t\tlet path: string = \"\";\n\n\t\tfor (let i = 0, len = points.length - 1; i < len; i++) {\n\t\t\tlet p0: IPoint = points[i - 1];\n\n\t\t\tlet p1: IPoint = points[i];\n\n\t\t\tlet p2: IPoint = points[i + 1];\n\n\t\t\tlet p3: IPoint = points[i + 2];\n\n\t\t\tif (i === 0) {\n\t\t\t\tif (closed) {\n\t\t\t\t\tp0 = points[points.length - 2];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tp0 = points[i];\n\t\t\t\t}\n\t\t\t} else if (i == points.length - 2) {\n\t\t\t\tif (closed) {\n\t\t\t\t\tp3 = points[1];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tp3 = points[i + 1];\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tlet controlPointA: IPoint = $math.getCubicControlPointA(p0, p1, p2, p3, tensionX, tensionY);\n\t\t\tlet controlPointB: IPoint = $math.getCubicControlPointB(p0, p1, p2, p3, tensionX, tensionY);\n\n\t\t\tpath += $path.cubicCurveTo(p2, controlPointA, controlPointB);\n\t\t}\n\n\t\treturn path;\n\t}\n}\n\n\n/**\n * Returns a waved line SVG path between two points.\n *\n * @ignore Exclude from docs\n * @param point1 Starting point\n * @param point2 Ending point\n * @param waveLength Wave length\n * @param waveHeight Wave height\n * @param adjustWaveLength Adjust wave length based on the actual line length\n * @return SVG path\n */\nexport function wavedLine(point1: IPoint, point2: IPoint, waveLength: number, waveHeight: number, tension: number, adjustWaveLength?: boolean): string {\n\n\tlet x1: number = point1.x;\n\tlet y1: number = point1.y;\n\n\tlet x2: number = point2.x;\n\tlet y2: number = point2.y;\n\n\tlet distance: number = $math.getDistance(point1, point2);\n\n\tif (adjustWaveLength) {\n\t\twaveLength = distance / Math.round(distance / waveLength);\n\t}\n\n\tlet d: string = registry.getCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]));\n\tif (!d) {\n\t\tif (distance > 0) {\n\t\t\tlet angle: number = Math.atan2(y2 - y1, x2 - x1);\n\n\t\t\tlet cos: number = Math.cos(angle);\n\t\t\tlet sin: number = Math.sin(angle);\n\n\t\t\tlet waveLengthX: number = waveLength * cos;\n\t\t\tlet waveLengthY: number = waveLength * sin;\n\n\t\t\tif (waveLength <= 1 || waveHeight <= 1) {\n\t\t\t\td = $path.lineTo(point2);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet halfWaveCount: number = Math.round(2 * distance / waveLength);\n\n\t\t\t\tlet points: IPoint[] = [];\n\t\t\t\tlet sign: number = 1;\n\n\t\t\t\tif (x2 < x1) {\n\t\t\t\t\tsign *= -1;\n\t\t\t\t}\n\n\t\t\t\tif (y2 < y1) {\n\t\t\t\t\tsign *= -1;\n\t\t\t\t}\n\n\t\t\t\tfor (let i: number = 0; i <= halfWaveCount; i++) {\n\t\t\t\t\tsign *= -1;\n\t\t\t\t\tlet x: number = x1 + i * waveLengthX / 2 + sign * waveHeight / 2 * sin;\n\t\t\t\t\tlet y: number = y1 + i * waveLengthY / 2 - sign * waveHeight / 2 * cos;\n\t\t\t\t\tpoints.push({ x: x, y: y });\n\t\t\t\t}\n\n\t\t\t\td = new Tension(tension, tension).smooth(points);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\td = \"\";\n\t\t}\n\n\t\tregistry.setCache($utils.stringify([\"wavedLine\", point1.x, point2.x, point1.y, point2.y, waveLength, waveHeight]), d);\n\t}\n\n\treturn d;\n}\n\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport class Basis implements ISmoothing {\n\n\t/**\n\t * [_closed description]\n\t *\n\t * @ignore Exclude from docs\n\t * @todo Description\n\t */\n\tprivate _closed: boolean;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param info [description]\n\t */\n\tconstructor(info: { closed: boolean }) {\n\t\tthis._closed = info.closed;\n\t}\n\n\t/**\n\t * [smooth description]\n\t *\n\t * @ignore Exclude from docs\n\t * @todo Description\n\t * @param points [description]\n\t * @return [description]\n\t */\n\tpublic smooth(points: Array<IPoint>): string {\n\t\tlet x0: number = NaN;\n\t\tlet x1: number = NaN;\n\t\tlet x2: number = NaN;\n\t\tlet x3: number = NaN;\n\t\tlet x4: number = NaN;\n\t\tlet y0: number = NaN;\n\t\tlet y1: number = NaN;\n\t\tlet y2: number = NaN;\n\t\tlet y3: number = NaN;\n\t\tlet y4: number = NaN;\n\t\tlet point: number = 0;\n\n\t\tlet output = \"\";\n\n\t\tconst pushCurve = (x: number, y: number): void => {\n\t\t\toutput += $path.cubicCurveTo(\n\t\t\t\t{\n\t\t\t\t\tx: (x0 + 4 * x1 + x) / 6\n\t\t\t\t\t, y: (y0 + 4 * y1 + y) / 6\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tx: (2 * x0 + x1) / 3\n\t\t\t\t\t, y: (2 * y0 + y1) / 3\n\t\t\t\t},\n\n\t\t\t\t{\n\t\t\t\t\tx: (x0 + 2 * x1) / 3\n\t\t\t\t\t, y: (y0 + 2 * y1) / 3\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\n\t\tconst pushPoint = ({ x, y }: IPoint): void => {\n\t\t\tswitch (point) {\n\t\t\t\tcase 0:\n\t\t\t\t\tpoint = 1;\n\n\t\t\t\t\tif (this._closed) {\n\t\t\t\t\t\tx2 = x;\n\t\t\t\t\t\ty2 = y;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += $path.lineTo({ x, y });\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1:\n\t\t\t\t\tpoint = 2;\n\n\t\t\t\t\tif (this._closed) {\n\t\t\t\t\t\tx3 = x;\n\t\t\t\t\t\ty3 = y;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\t\t\t\t\tpoint = 3;\n\n\t\t\t\t\tif (this._closed) {\n\t\t\t\t\t\tx4 = x;\n\t\t\t\t\t\ty4 = y;\n\t\t\t\t\t\toutput += $path.moveTo({ x: (x0 + 4 * x1 + x) / 6, y: (y0 + 4 * y1 + y) / 6 });\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += $path.lineTo({ x: (5 * x0 + x1) / 6, y: (5 * y0 + y1) / 6 });\n\t\t\t\t\t\t// fall-through\n\t\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tpushCurve(x, y);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tx0 = x1;\n\t\t\tx1 = x;\n\t\t\ty0 = y1;\n\t\t\ty1 = y;\n\t\t};\n\n\t\t$array.each(points, pushPoint);\n\n\t\tif (this._closed) {\n\t\t\tswitch (point) {\n\t\t\t\tcase 1:\n\t\t\t\t\toutput += $path.moveTo({ x: x2, y: y2 });\n\t\t\t\t\toutput += $path.closePath();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\toutput += $path.moveTo({ x: (x2 + 2 * x3) / 3, y: (y2 + 2 * y3) / 3 });\n\t\t\t\t\toutput += $path.lineTo({ x: (x3 + 2 * x2) / 3, y: (y3 + 2 * y2) / 3 });\n\t\t\t\t\toutput += $path.closePath();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tpushPoint({ x: x2, y: y2 });\n\t\t\t\t\tpushPoint({ x: x3, y: y3 });\n\t\t\t\t\tpushPoint({ x: x4, y: y4 });\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t} else {\n\t\t\tswitch (point) {\n\t\t\t\tcase 3:\n\t\t\t\t\tpushCurve(x1, y1);\n\t\t\t\t// fall-through\n\t\t\t\tcase 2:\n\t\t\t\t\toutput += $path.lineTo({ x: x1, y: y1 });\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\toutput += $path.closePath();\n\t\t}\n\n\t\treturn output;\n\t}\n\n}\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport * as React from 'react';\nexport default function useControlledState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n var _React$useState = React.useState(function () {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerValue = _React$useState2[0],\n setInnerValue = _React$useState2[1];\n\n var mergedValue = value !== undefined ? value : innerValue;\n\n if (postState) {\n mergedValue = postState(mergedValue);\n }\n\n function triggerChange(newValue) {\n setInnerValue(newValue);\n\n if (mergedValue !== newValue && onChange) {\n onChange(newValue, mergedValue);\n }\n } // Effect of reset value to `undefined`\n\n\n var firstRenderRef = React.useRef(true);\n React.useEffect(function () {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (value === undefined) {\n setInnerValue(value);\n }\n }, [value]);\n return [mergedValue, triggerChange];\n}","/**\r\n * Rounded rectangle module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport { Percent } from \"../utils/Percent\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[RoundedRectangle]].\r\n */\r\nexport interface IRoundedRectangleProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Radius of the top-left corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t */\r\n\tcornerRadiusTopLeft?: number;\r\n\r\n\t/**\r\n\t * Radius of the top-right corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t */\r\n\tcornerRadiusTopRight?: number;\r\n\r\n\t/**\r\n\t * Radius of the bottom-right corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t */\r\n\tcornerRadiusBottomRight?: number;\r\n\r\n\t/**\r\n\t * Radius of the bottom-left corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t */\r\n\tcornerRadiusBottomLeft?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[RoundedRectangle]].\r\n */\r\nexport interface IRoundedRectangleEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[RoundedRectangle]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRoundedRectangleAdapters extends ISpriteAdapters, IRoundedRectangleProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a rectangle with rounded corners.\r\n *\r\n * @see {@link IRoundedRectangleEvents} for a list of available events\r\n * @see {@link IRoundedRectangleAdapters} for a list of available Adapters\r\n */\r\nexport class RoundedRectangle extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRoundedRectangleProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRoundedRectangleAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRoundedRectangleEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"RoundedRectangle\";\r\n\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\r\n\t\tthis.cornerRadius(3, 3, 3, 3);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tlet w: number = this.innerWidth;\r\n\t\tlet h: number = this.innerHeight;\r\n\r\n\t\tif ($type.isNumber(w) && $type.isNumber(h)) {\r\n\r\n\t\t\tlet minSide = $math.min(w, h) / 2;\r\n\r\n\t\t\tlet cornerRadiusTopLeft = $utils.relativeToValue(this.cornerRadiusTopLeft, minSide);\r\n\t\t\tlet cornerRadiusTopRight = $utils.relativeToValue(this.cornerRadiusTopRight, minSide);\r\n\t\t\tlet cornerRadiusBottomRight = $utils.relativeToValue(this.cornerRadiusBottomRight, minSide);\r\n\t\t\tlet cornerRadiusBottomLeft = $utils.relativeToValue(this.cornerRadiusBottomLeft, minSide);\r\n\r\n\t\t\tlet maxcr: number = $math.min(Math.abs(w / 2), Math.abs(h / 2));\r\n\t\t\tlet crtl: number = $math.fitToRange(cornerRadiusTopLeft, 0, maxcr);\r\n\t\t\tlet crtr: number = $math.fitToRange(cornerRadiusTopRight, 0, maxcr);\r\n\t\t\tlet crbr: number = $math.fitToRange(cornerRadiusBottomRight, 0, maxcr);\r\n\t\t\tlet crbl: number = $math.fitToRange(cornerRadiusBottomLeft, 0, maxcr);\r\n\r\n\t\t\tlet lineT: string = \"M\" + crtl + \",0 L\" + (w - crtr) + \",0\";\r\n\t\t\tlet lineB: string = \" L\" + crbl + \",\" + h;\r\n\t\t\tlet lineL: string = \" L0,\" + crtl;\r\n\t\t\tlet lineR: string = \" L\" + w + \",\" + (h - crbr);\r\n\r\n\t\t\tlet arcTR: string = \" a\" + crtr + \",\" + crtr + \" 0 0 1 \" + crtr + \",\" + crtr;\r\n\t\t\tlet arcBR: string = \" a\" + crbr + \",\" + crbr + \" 0 0 1 -\" + crbr + \",\" + crbr;\r\n\t\t\tlet arcBL: string = \" a\" + crbl + \",\" + crbl + \" 0 0 1 -\" + crbl + \",-\" + crbl;\r\n\t\t\tlet arcTL: string = \" a\" + crtl + \",\" + crtl + \" 0 0 1 \" + crtl + \",-\" + crtl;\r\n\r\n\r\n\t\t\tlet path: string = lineT + arcTR + lineR + arcBR + lineB + arcBL + lineL + arcTL + \" Z\";\r\n\r\n\t\t\tthis.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets radius for all four corners at ones.\r\n\t *\r\n\t * All numbers are in pixels.\r\n\t *\r\n\t * @param tl Top-left corner\r\n\t * @param tr Top-right corner\r\n\t * @param bl Bottom-left corner\r\n\t * @param br Bottom-right corner\r\n\t */\r\n\tpublic cornerRadius(tl: number | Percent, tr: number | Percent, bl: number | Percent, br: number | Percent) {\r\n\t\tthis.cornerRadiusTopLeft = tl;\r\n\t\tthis.cornerRadiusTopRight = tr;\r\n\t\tthis.cornerRadiusBottomLeft = bl;\r\n\t\tthis.cornerRadiusBottomRight = br;\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the top-left corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t * @param value Radius (px or Percent)\r\n\t */\r\n\tpublic set cornerRadiusTopLeft(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"cornerRadiusTopLeft\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or Percent)\r\n\t */\r\n\tpublic get cornerRadiusTopLeft(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"cornerRadiusTopLeft\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the top-right corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t * @param value Radius (px or Percent)\r\n\t */\r\n\tpublic set cornerRadiusTopRight(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"cornerRadiusTopRight\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or Percent)\r\n\t */\r\n\tpublic get cornerRadiusTopRight(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"cornerRadiusTopRight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the bottom-right corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t * @param value Radius (px or Percent)\r\n\t */\r\n\tpublic set cornerRadiusBottomRight(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"cornerRadiusBottomRight\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or Percent)\r\n\t */\r\n\tpublic get cornerRadiusBottomRight(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"cornerRadiusBottomRight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the bottom-left corner in pixels.\r\n\t *\r\n\t * @default 3\r\n\t * @param value Radius (px or Percent)\r\n\t */\r\n\tpublic set cornerRadiusBottomLeft(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"cornerRadiusBottomLeft\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or Percent)\r\n\t */\r\n\tpublic get cornerRadiusBottomLeft(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"cornerRadiusBottomLeft\");\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic measureElement(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\r\n\t\tif (this.isMeasured) {\r\n\t\t\treturn {\r\n\t\t\t\tx: 0,\r\n\t\t\t\ty: 0,\r\n\t\t\t\twidth: this.innerWidth,\r\n\t\t\t\theight: this.innerHeight\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn { x: 0, y: 0, width: 0, height: 0 };\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RoundedRectangle\"] = RoundedRectangle;\r\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseCircleFilled = _interopRequireDefault(require('./lib/icons/CloseCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseCircleFilled;\n exports.default = _default;\n module.exports = _default;","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/**\r\n * A collection of low-level async operation stuff.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $array from \"./Array\";\r\n\r\n/**\r\n * [Listener description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport type Listener = (now: number) => void;\r\n\r\nlet pendingFrame = false;\r\n\r\nconst nextQueue: Array<Listener> = [];\r\nconst readQueue: Array<Listener> = [];\r\nconst writeQueue: Array<Listener> = [];\r\nconst idleQueue: Array<Listener> = [];\r\n\r\n\r\nconst fps = 1000 / 60;\r\n\r\n/**\r\n * [raf description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nexport const raf =\r\n\t(typeof requestAnimationFrame === \"function\"\r\n\t\t? function(fn: () => void): void {\r\n\t\t\trequestAnimationFrame(fn);\r\n\t\t}\r\n\t\t: function(fn: () => void): void {\r\n\t\t\tsetTimeout(fn, fps);\r\n\t\t});\r\n\r\n/**\r\n * [frameLoop description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nfunction frameLoop(): void {\r\n\tconst now = Date.now();\r\n\r\n\r\n\tconst length = nextQueue.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\tnextQueue[i](now);\r\n\t}\r\n\r\n\t$array.shiftLeft(nextQueue, length);\r\n\r\n\r\n\tfor (let i = 0; i < readQueue.length; ++i) {\r\n\t\treadQueue[i](now);\r\n\t}\r\n\r\n\treadQueue.length = 0;\r\n\r\n\r\n\tfor (let i = 0; i < writeQueue.length; ++i) {\r\n\t\twriteQueue[i](now);\r\n\t}\r\n\r\n\twriteQueue.length = 0;\r\n\r\n\r\n\tif (nextQueue.length === 0 && readQueue.length === 0) {\r\n\t\tpendingFrame = false;\r\n\r\n\t} else {\r\n\t\traf(frameLoop);\r\n\t}\r\n}\r\n\r\n/**\r\n * [pendFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\nfunction pendFrame(): void {\r\n\tif (!pendingFrame) {\r\n\t\tpendingFrame = true;\r\n\r\n\t\traf(frameLoop);\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * [nextFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function nextFrame(fn: Listener): void {\r\n\tnextQueue.push(fn);\r\n\tpendFrame();\r\n}\r\n\r\n/**\r\n * [readFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function readFrame(fn: Listener): void {\r\n\treadQueue.push(fn);\r\n\tpendFrame();\r\n}\r\n\r\n/**\r\n * [writeFrame description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function writeFrame(fn: Listener): void {\r\n\twriteQueue.push(fn);\r\n\tpendFrame();\r\n}\r\n\r\n/**\r\n * [whenIdle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param fn [description]\r\n */\r\nexport function whenIdle(fn: Listener): void {\r\n\tidleQueue.push(fn);\r\n}\r\n\r\n/**\r\n * [triggerIdle description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @todo Maybe don't trigger a callback which was added while in the middle of triggering?\r\n */\r\nexport function triggerIdle(): void {\r\n\tconst now = Date.now();\r\n\r\n\tconst length = idleQueue.length;\r\n\r\n\tfor (let i = 0; i < length; ++i) {\r\n\t\t(<any>idleQueue.shift())(now);\r\n\t}\r\n}\r\n","/**\r\n * Event Dispatcher module is used for registering listeners and dispatching\r\n * events across amCharts system.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Disposer, IDisposer } from \"./Disposer\";\r\nimport * as $array from \"./Array\";\r\nimport * as $async from \"./AsyncPending\";\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * Defines a universal type for the event object.\r\n */\r\nexport type AMEvent<Target, T> = {\r\n\t[K in keyof T]: { type: K, target: Target } & T[K];\r\n};\r\n\r\n/**\r\n * A universal interface for event listeners.\r\n */\r\nexport interface EventListener<T> {\r\n\tkilled: boolean;\r\n\tonce: boolean;\r\n\ttype: any;\r\n\tcallback: any;\r\n\tcontext: any;\r\n\tshouldClone: boolean;\r\n\tdispatch: any;\r\n\tdisposer: IDisposer;\r\n}\r\n\r\n/*export interface IEventDispatcher<T> {\r\n\tisDisposed(): boolean;\r\n\tdispose(): void;\r\n\thasListeners(): boolean;\r\n\tenable(): void;\r\n\tdisable(): void;\r\n\tenableType<Key extends keyof T>(type: Key): void;\r\n\tdisableType<Key extends keyof T>(type: Key, amount?: number): void;\r\n\tisEnabled<Key extends keyof T>(type: Key): boolean;\r\n\thas<C, Key extends keyof T>(type: Key, callback?: (this: C, event: T[Key]) => void, context?: C): boolean;\r\n\tdispatchImmediately<Key extends keyof T>(type: Key, event: T[Key]): void;\r\n\tdispatch<Key extends keyof T>(type: Key, event: T[Key]): void;\r\n\tonAll<C, Key extends keyof T>(callback: (this: C, type: Key, event: T[Key]) => void, context?: C): IDisposer;\r\n\ton<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): IDisposer;\r\n\tonce<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): IDisposer;\r\n\toff<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): void;\r\n\toff<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C): void;\r\n\tcopyFrom(source: this): void;\r\n}*/\r\n\r\n/**\r\n * Universal Event Dispatcher.\r\n *\r\n * @important\r\n */\r\nexport class EventDispatcher<T> implements IDisposer {\r\n\r\n\tprotected _listeners: Array<EventListener<T>>;\r\n\tprotected _killed: Array<EventListener<T>>;\r\n\tprotected _disabled: { [key in keyof T]?: number };\r\n\tprotected _iterating: number;\r\n\tprotected _enabled: boolean;\r\n\tprotected _disposed: boolean;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tthis._listeners = [];\r\n\t\tthis._killed = [];\r\n\t\tthis._disabled = {};\r\n\t\tthis._iterating = 0;\r\n\t\tthis._enabled = true;\r\n\t\tthis._disposed = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if this object has been already disposed.\r\n\t *\r\n\t * @return Disposed?\r\n\t */\r\n\tpublic isDisposed(): boolean {\r\n\t\treturn this._disposed;\r\n\t}\r\n\r\n\t/**\r\n\t * Dispose (destroy) this object.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tif (!this._disposed) {\r\n\t\t\tthis._disposed = true;\r\n\r\n\t\t\tconst a = this._listeners;\r\n\r\n\t\t\tthis._iterating = 1;\r\n\t\t\tthis._listeners = <any>null;\r\n\t\t\tthis._disabled = <any>null;\r\n\r\n\t\t\ttry {\r\n\t\t\t\t$array.each(a, (x) => {\r\n\t\t\t\t\tx.disposer.dispose();\r\n\t\t\t\t});\r\n\r\n\t\t\t} finally {\r\n\t\t\t\tthis._killed = <any>null;\r\n\t\t\t\tthis._iterating = <any>null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if this particular event dispatcher has any listeners set.\r\n\t *\r\n\t * @return Has listeners?\r\n\t */\r\n\tpublic hasListeners(): boolean {\r\n\t\treturn this._listeners.length !== 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if this particular event dispatcher has any particular listeners set.\r\n\t *\r\n\t * @return Has particular event listeners?\r\n\t */\r\n\tpublic hasListenersByType<Key extends keyof T>(type: Key): boolean {\r\n\t\treturn $array.any(this._listeners, (x) => (x.type === null || x.type === type) && !x.killed);\r\n\t}\r\n\r\n\t/**\r\n\t * Enable dispatching of events if they were previously disabled by\r\n\t * `disable()`.\r\n\t */\r\n\tpublic enable(): void {\r\n\t\tthis._enabled = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Disable dispatching of events until re-enabled by `enable()`.\r\n\t */\r\n\tpublic disable(): void {\r\n\t\tthis._enabled = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Enable dispatching particular event, if it was disabled before by\r\n\t * `disableType()`.\r\n\t *\r\n\t * @param type Event type\r\n\t */\r\n\tpublic enableType<Key extends keyof T>(type: Key): void {\r\n\t\tdelete this._disabled[type];\r\n\t}\r\n\r\n\t/**\r\n\t * Disable dispatching of events for a certain event type.\r\n\t *\r\n\t * Optionally, can set how many dispatches to skip before automatically\r\n\t * re-enabling the dispatching.\r\n\t *\r\n\t * @param type Event type\r\n\t * @param amount Number of event dispatches to skip\r\n\t */\r\n\tpublic disableType<Key extends keyof T>(type: Key, amount: number = Infinity): void {\r\n\t\tthis._disabled[type] = amount;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes listener from dispatcher.\r\n\t *\r\n\t * Will throw an exception if such listener does not exists.\r\n\t *\r\n\t * @param listener Listener to remove\r\n\t */\r\n\tprotected _removeListener(listener: EventListener<T>): void {\r\n\t\tif (this._iterating === 0) {\r\n\t\t\tconst index = this._listeners.indexOf(listener);\r\n\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tthrow new Error(\"Invalid state: could not remove listener\");\r\n\t\t\t}\r\n\r\n\t\t\tthis._listeners.splice(index, 1);\r\n\r\n\t\t} else {\r\n\t\t\tthis._killed.push(listener);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes existing listener by certain parameters.\r\n\t *\r\n\t * @param once Listener's once setting\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t */\r\n\tprotected _removeExistingListener<A, B, Key extends keyof T>(once: boolean, type: Key | null, callback?: A, context?: B): void {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\tthis._eachListener((info) => {\r\n\t\t\tif (info.once === once && // TODO is this correct ?\r\n\t\t\t\tinfo.type === type &&\r\n\t\t\t\t(callback == null || info.callback === callback) &&\r\n\t\t\t\tinfo.context === context) {\r\n\t\t\t\tinfo.disposer.dispose();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if dispatching for particular event type is enabled.\r\n\t *\r\n\t * @param type Event type\r\n\t * @return Enabled?\r\n\t */\r\n\tpublic isEnabled<Key extends keyof T>(type: Key): boolean {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\t// TODO is this check correct ?\r\n\t\treturn this._enabled && this._listeners.length > 0 && this.hasListenersByType(type) && this._disabled[type] == null;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if there's already a listener with specific parameters.\r\n\t *\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t * @return Has listener?\r\n\t */\r\n\tpublic has<C, Key extends keyof T>(type: Key, callback?: (this: C, event: T[Key]) => void, context?: C): boolean {\r\n\t\tconst index = $array.findIndex(this._listeners, (info) => {\r\n\t\t\treturn info.once !== true && // Ignoring \"once\" listeners\r\n\t\t\t\tinfo.type === type &&\r\n\t\t\t\t(callback == null || info.callback === callback) &&\r\n\t\t\t\tinfo.context === context;\r\n\t\t});\r\n\r\n\t\treturn index !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether event of the particular type should be dispatched.\r\n\t *\r\n\t * @param type Event type\r\n\t * @return Dispatch?\r\n\t */\r\n\tprotected _shouldDispatch<Key extends keyof T>(type: Key): boolean {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\tconst count = this._disabled[type];\r\n\r\n\t\tif (!$type.isNumber(count)) {\r\n\t\t\treturn this._enabled;\r\n\r\n\t\t} else {\r\n\t\t\tif (count <= 1) {\r\n\t\t\t\tdelete this._disabled[type];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t--this._disabled[type];\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [_eachListener description]\r\n\t *\r\n\t * All of this extra code is needed when a listener is removed while iterating\r\n\t *\r\n\t * @todo Description\r\n\t * @param fn [description]\r\n\t */\r\n\tprotected _eachListener(fn: (listener: EventListener<T>) => void): void {\r\n\t\t++this._iterating;\r\n\r\n\t\ttry {\r\n\t\t\t$array.each(this._listeners, fn);\r\n\r\n\t\t} finally {\r\n\t\t\t--this._iterating;\r\n\r\n\t\t\t// TODO should this be inside or outside the finally ?\r\n\t\t\tif (this._iterating === 0 && this._killed.length !== 0) {\r\n\t\t\t\t// Remove killed listeners\r\n\t\t\t\t$array.each(this._killed, (killed) => {\r\n\t\t\t\t\tthis._removeListener(killed);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._killed.length = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Dispatches an event immediately without waiting for next cycle.\r\n\t *\r\n\t * @param type Event type\r\n\t * @param event Event object\r\n\t * @todo automatically add in type and target properties if they are missing\r\n\t */\r\n\tpublic dispatchImmediately<Key extends keyof T>(type: Key, event: T[Key]): void {\r\n\t\tif (this._shouldDispatch(type)) {\r\n\t\t\t// TODO check if it's faster to use an object of listeners rather than a single big array\r\n\t\t\t// TODO if the function throws, maybe it should keep going ?\r\n\t\t\tthis._eachListener((listener) => {\r\n\t\t\t\tif (!listener.killed && (listener.type === null || listener.type === type)) {\r\n\t\t\t\t\tlistener.dispatch(type, event);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Shelves the event to be dispatched within next update cycle.\r\n\t *\r\n\t * @param type Event type\r\n\t * @param event Event object\r\n\t * @todo automatically add in type and target properties if they are missing\r\n\t */\r\n\tpublic dispatch<Key extends keyof T>(type: Key, event: T[Key]): void {\r\n\t\tif (this._shouldDispatch(type)) {\r\n\t\t\tthis._eachListener((listener) => {\r\n\t\t\t\t// TODO check if it's faster to use an object of listeners rather than a single big array\r\n\t\t\t\tif (!listener.killed && (listener.type === null || listener.type === type)) {\r\n\t\t\t\t\t// TODO if the function throws, maybe it should keep going ?\r\n\t\t\t\t\t// TODO dispatch during the update cycle, rather than using whenIdle\r\n\t\t\t\t\t$async.whenIdle(() => {\r\n\t\t\t\t\t\tif (!listener.killed) {\r\n\t\t\t\t\t\t\tlistener.dispatch(type, event);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates, catalogs and returns an [[EventListener]].\r\n\t *\r\n\t * Event listener can be disposed.\r\n\t *\r\n\t * @param once Listener's once setting\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n\t * @param dispatch\r\n\t * @returns An event listener\r\n\t */\r\n\tprotected _on<A, B, Key extends keyof T>(once: boolean, type: Key | null, callback: A, context: B, shouldClone: boolean, dispatch: (type: Key, event: T[Key]) => void): EventListener<T> {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\tthis._removeExistingListener(once, type, callback, context);\r\n\r\n\t\tconst info: EventListener<T> = {\r\n\t\t\ttype: type,\r\n\t\t\tcallback: callback,\r\n\t\t\tcontext: context,\r\n\t\t\tshouldClone: shouldClone,\r\n\t\t\tdispatch: <any>dispatch,\r\n\t\t\tkilled: false,\r\n\t\t\tonce: once,\r\n\t\t\tdisposer: new Disposer(() => {\r\n\t\t\t\tinfo.killed = true;\r\n\t\t\t\tthis._removeListener(info);\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\tthis._listeners.push(info);\r\n\r\n\t\treturn info;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an event listener to be invoked on **any** event.\r\n\t *\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n\t * @returns A disposable event listener\r\n\t * @todo what if `listen` is called on the same function twice ?\r\n\t */\r\n\tpublic onAll<C, Key extends keyof T>(callback: (this: C, type: Key, event: T[Key]) => void, context?: C, shouldClone: boolean = true): IDisposer {\r\n\t\treturn this._on(false, null, callback, context, shouldClone, (type, event) => callback.call(context, type, event)).disposer;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an event listener to be invoked on a specific event type.\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.events.on(\"hidden\", (ev) => {\r\n\t * console.log(\"Series hidden: \" + ev.target.name);\r\n\t * }, this);\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.events.on(\"hidden\", function(ev) {\r\n\t * console.log(\"Series hidden: \" + ev.target.name);\r\n\t * }, this);\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"events\": {\r\n\t * \t\"hidden\": function(ev) {\r\n\t * \t console.log(\"Series hidden: \" + ev.target.name);\r\n\t * \t}\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * The above will invoke our custom event handler whenever series we put\r\n\t * event on is hidden.\r\n\t *\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n\t * @returns A disposable event listener\r\n\t * @todo what if `listen` is called on the same function twice ?\r\n\t */\r\n\tpublic on<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C, shouldClone: boolean = true): IDisposer {\r\n\t\treturn this._on(false, type, callback, context, shouldClone, (type, event) => callback.call(context, event)).disposer;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an event listener to be invoked on a specific event type once.\r\n\t *\r\n\t * Once the event listener is invoked, it is automatically disposed.\r\n\t *\r\n\t * ```TypeScript\r\n\t * series.events.on(\"hidden\", (ev) => {\r\n\t * console.log(\"Series hidden: \" + ev.target.name);\r\n\t * }, this);\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * series.events.on(\"hidden\", function(ev) {\r\n\t * console.log(\"Series hidden: \" + ev.target.name);\r\n\t * }, this);\r\n\t * ```\r\n\t * ```JSON\r\n\t * {\r\n\t * // ...\r\n\t * \"series\": [{\r\n\t * // ...\r\n\t * \"events\": {\r\n\t * \t\"hidden\": function(ev) {\r\n\t * \t console.log(\"Series hidden: \" + ev.target.name);\r\n\t * \t}\r\n\t * }\r\n\t * }]\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * The above will invoke our custom event handler the first time series we\r\n\t * put event on is hidden.\r\n\t *\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t * @param shouldClone Whether the listener should be copied when the EventDispatcher is copied\r\n\t * @returns A disposable event listener\r\n\t * @todo what if `listen` is called on the same function twice ?\r\n\t */\r\n\tpublic once<C, Key extends keyof T>(type: Key, callback: (this: C, event: T[Key]) => void, context?: C, shouldClone: boolean = true): IDisposer {\r\n\t\tconst x = this._on(true, type, callback, context, shouldClone, (type, event) => {\r\n\t\t\tx.disposer.dispose();\r\n\t\t\tcallback.call(context, event)\r\n\t\t});\r\n\r\n\t\t// TODO maybe this should return a different Disposer ?\r\n\t\treturn x.disposer;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the event listener with specific parameters.\r\n\t *\r\n\t * @param type Listener's type\r\n\t * @param callback Callback function\r\n\t * @param context Callback context\r\n\t */\r\n\tpublic off<C, Key extends keyof T>(type: Key, callback?: (this: C, event: T[Key]) => void, context?: C): void {\r\n\t\tthis._removeExistingListener(false, type, callback, context);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies all dispatcher parameters, including listeners, from another event\r\n\t * dispatcher.\r\n\t *\r\n\t * @param source Source event dispatcher\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\tif (source === this) {\r\n\t\t\tthrow new Error(\"Cannot copyFrom the same TargetedEventDispatcher\");\r\n\t\t}\r\n\r\n\t\t$array.each(source._listeners, (x) => {\r\n\t\t\t// TODO is this correct ?\r\n\t\t\tif (!x.killed && x.shouldClone) {\r\n\t\t\t\tif (x.type === null) {\r\n\t\t\t\t\tthis.onAll(x.callback, x.context);\r\n\r\n\t\t\t\t} else if (x.once) {\r\n\t\t\t\t\tthis.once(x.type, x.callback, x.context);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.on(x.type, x.callback, x.context);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A version of the [[EventDispatcher]] that dispatches events for a specific\r\n * target object.\r\n *\r\n * @important\r\n */\r\nexport class TargetedEventDispatcher<Target, T> extends EventDispatcher<T> {\r\n\r\n\t/**\r\n\t * A target object which is originating events using this dispatcher.\r\n\t */\r\n\tpublic target: Target;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param target Event dispatcher target\r\n\t */\r\n\tconstructor(target: Target) {\r\n\t\tsuper();\r\n\t\tthis.target = target;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all dispatcher parameters, including listeners, from another event\r\n\t * dispatcher.\r\n\t *\r\n\t * @param source Source event dispatcher\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tif (this._disposed) {\r\n\t\t\tthrow new Error(\"EventDispatcher is disposed\");\r\n\t\t}\r\n\r\n\t\tif (source === this) {\r\n\t\t\tthrow new Error(\"Cannot copyFrom the same TargetedEventDispatcher\");\r\n\t\t}\r\n\r\n\t\t$array.each(source._listeners, (x) => {\r\n\t\t\t// TODO very hacky\r\n\t\t\tif (x.context === source.target) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t// TODO is this correct ?\r\n\t\t\tif (!x.killed && x.shouldClone) {\r\n\t\t\t\tif (x.type === null) {\r\n\t\t\t\t\tthis.onAll(x.callback, x.context);\r\n\r\n\t\t\t\t} else if (x.once) {\r\n\t\t\t\t\tthis.once(x.type, x.callback, x.context);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.on(x.type, x.callback, x.context);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","function tzlookup(Y,W){\"use strict\";var U=\"XIXHXHXGXGXQXQXPXPXOXOXN##U6U6UW#$U%U%U%U%U%XFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSXTXTXUXIXHXHXGXGXQXQVAVA#%#&V'#'U6#(#)U%U%U%U%U%#*U%XEXEVLVLVLVLYGYGYGYG#+W=W=W=W=W=W=Y$X+X+X+X+X+XTXUVPUQ#,T*T*#-VAVA#.#/#0#1#2U6U6UWU%U%U%U%U%#3VLVLXEYH#4#5#6YGYGYG#7X.#8W=W=W=#9X,X,#:#;#<#=#>VPVP#?#@#AT*T*#B#C#D#E#F#GV'#H#I#JUWU%U%U%U%X6X6#K#LYH#M#N#O#PYG#Q#R#SX.#T#UW=W=#V#WX,#X#Y#Z$#$$$%$&T)$'$(T*T*$)$*$+TW$,$-$.$/$0$1$2$3U%U%XJXJXF$4$5$6$7$8$9$:YG$;$<$=$>$?$@$A$BW3$C$D$E$F$G$HW8$IT)T)T)XHXGXGXQV=$J$K$L$M$N$O$P$Q$R$SV2XKXJXJXFY4$T$U$V$W$X$Y$Z%#%$%%VN%&%'%(%)%*%+%,%-%.%/%0W8XTT)XIXHXHXGXGXQXQU>%1%2%3TL%4%5%6%7U-XKXKX0X0XF%8%9%:%;%<%=%>%?%@%A%B%C%DX(%E%F%GWU%H%I%J%KXSXTXTXUXIXHXHXGXGXQXQU>%L%M%NTL%OUPXMX1XLXKXKXJX0X5%P%QS0%R%S%T%U%V%W%X%Y%Z&#WUWUWUWUWU&$&%X%XSXSXTXTXU&&ZDZDXGXGXQXQXP&'&(&)&*&+&,UOXLXLXKXKXJXJ&-&.&/S0&0T&&1&2WQ&3&4&5&6&7&8&9&:&;&<&=X%X%XSX%XTXTXUXIZDZDZDXGXQXQXPUI&>&?&@&A&B&C&DXLXKXKXJX3&E&F&G&H&I&J&K&L&M&N&OWEW<W<&P&Q&R&S&T&UY%X%ZUXSXTZYXUXIXHXHXGXGXQXQXPXPXOXO&V&W&X&Y&Z'#XKXKXJX3'$'%'&'''(')'*'+','-VMXXW<'.XZ'/'0'1'2WDZPZ9'3'4ZH'5XUXIXHZEZEXGXQXQXPXPXOXOZ@'6'7'8'9':';XKXJXJXF'<'='>'?'@'A'B'C'DXXXXZ1W'XZ'E'F'G'H'I'JW5Z9'K'L'MZWZ<Z<XHZEXGXQXQXPXPXOXOZ@'N'O'PUB'Q'R'S'TXJXFXFXESQ'U'V'W'X'YXWZ0XX'ZXYXZXZW4(#($(%W5(&ZS('ZB((()(*(+ZTZE(,(-XQXPXPXOXOXNU=U=(.(/(0(1(2(3XJXFX8XEXESN(4(5(6(7(8Z2XXZ+XYXZZ-Y#(9(:(;(<(=(>(?ZB(@(A(BZLZT(CZV(DXQXPXPXOXOXNXNU=(E(F(G(H(IXJXJXFXFX8XE(J(K(L(M(NZ*(OZ2XYXYXZXZY#Y#XCXC(P(QX;X;ZN(RZ>(SXHXHZVZVZA(TZQXPZ:XOXNXNV,(U(V(WV.V.XJXJXFXFXEXET((X(Y(ZZ*Z*XXXXXYXYXZXZY#Y#XCXC)#)$)%)&XT)'XUZ6XHXHXGXGXQXQXPXPXOXOXNXNV,)()))*V.XKXJXJXFX8XEXEXRSE)+SEXWXWXXXXXYXYXZXZY#Y#XC),)-).)/XDXAZ6Z6Z8XHXHXGXGXQXQXPXPXOXOXNXNV,)0)1T.XKXKXJXJXFX8XEXEXRXRXVXVXWXWXXXXXYZ/XZXZY#Y#Y$Y$Y%)2)3XDXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXN)4)5)6X9XKXKXJXJXFXFXEXEXRXRXVSESEZ/Z/XXZ/XYXZXZY#Y#Y$Y$Y%Y%XSXSXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXNV&)7)8X9XKX7X7X7XFXFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSVEZ6XUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVH)9):T9T9XJXJXFXFXEXEXRXRVIVIVIVI);VFVFVC)<VKVBVBVBVDVDVDVDVD)=VGXUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)>VH)?Y&)@VJVJVJ)AVIVIVI)BVFVF)C)DVK)E)F)G)H)I)J)K)L)MVGVGVGVGVGVGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)NVH)OY&)PVJVJVJ)QVIVIVI)RVFVF)S)TVKVKVK)UXCXCXCXCXC)VVGVGVGVGVGVGVGVGVGVGVGVGVGVGVG)W)X)Y)Z*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?VGVGXNXNV'*?XLXLUWU%*>TF*?TFTFV'TFV'V'*>V'*?U6*?V8V8*?U%V8*@U%U%U%*@XYW=YGXYXHT*UQT*XQXQ*>*?VAVA*?*@*@TF*ATFTF*ATFTF*AV'TFTFV'*A*B*C*CTRV/XFVLVLYH*CYHYH*C*DXVXV*DYGYGX.YG*D*DW=X.*EW=*E*F*GX,X+X,*GX+X+X+*G*G*HWWWW*HWWWWWWXTXTWW*HVPVPVPUQ*GUQUQUQUQT*UQT**FV>*GV>*GVAV>*HVAVA*HVAVA*HVAVA*H*IVAVATFV'VAV'V'*HV'*IU6U6U6*IU6U6*IU6X6XFXFX4XEXEX4Y@YH*GYH*HYUYUYU*H*HY7Y7*I*IYGYGYGYGYG*IYGYGYG*I*J*J*KX.X.X.X.*K*L*LW=*MW=*MX,*N*OX,X,*OX,X,*OX,*P*P*QW;*R*RWW*SWB*S*TWBWB*T*UWB*VVPVPW8*VVPVP*VVPUQUQT)UQ*UT*UQT**U*VXQV0*VV=*WV=*W*XV=*Y*YV)*ZV)V)V?*ZV?V?*ZV?V?V'*ZV;+#U6+#U6V;V;+#V;V;+#U&+$U&XLXLU&V2Y@Y@XF+#Y@Y@+#Y@XEYHY@+#+#+$+%+&YU+&+'+(+(+)+*++YGYG++YG+++,+-+.+.X.+/X.X.X.+/+0X.+0+1+2+2+3+4+5+5+6+7+8W=W=W=+8+8+9W3W3W3+9+:W%X,X,+:+;X,+;X,X+X+X+X++;X+WBWRXSWB+:XSW8W8W8W8T)V=+9+:+;+;+<+=+>+>V)TTTTV)V?+>+?V?V?TL+?V;V;+?+@+@V;V;V;V;V;V;+@V;+@+A+B+BV2+CV2+C+DYIYI+D+EYI+F+F+G+H+I+I+J+K+L+L+M+N+O+O+P+Q+R+R+S+T+U+U+V+W+X+X+Y+ZVR+Z,#,$,%VN,%VNVN,%,&,'X(,',(,)W2X',),*X',*,+X'X',+,,W&,-,-,.WUWU,.,/,0,1X+,1X+,2WRXSWRX)WW,1,2WW,2,3U>,4,4TTTTTTTT,4TTTL,4,5,6,7,7,8UPUP,8UPUPUP,8U-XLXLXF,8XFY>,8,9,:YB,:,;YBYB,;,<YMYM,<,=YM,>,>,?,@,A,A,BY9Y9,B,CY9,D,D,E,F,G,G,HVS,I,I,J,K,L,L,M,N,O,O,P,QX(X(,QWUWU,Q,RWUWU,R,SWUWUWU,SWU,T,TX+,UY%X+X%X%X%,TX)XSXSU>,T,U,V,VTT,W,X,XTL,YTLTL,YTL,ZXF,ZXFS:,Z-#S:-$-$-%-&-'YMY*T&T&Y*-&-'S9-'-(S9-)-)-*-+-,-,X#--X#---.X#X#-.-/-0-1-1-2-3-4-4-5-6-7WUWTWUWT-6X%X%X%ZJZDXIZDV:-5XPUF-5-6UF-7-7-8-9-:TLTL-:UHTL-:UH-;-;UO-<UOXFX2XFSA-;-<-=SZS0S0-=->->T&-?-@-@S9-AS9S9-AS9-B-B-CWQ-DX#-D-E-F-FW9-GW9-G-H-IW<W<-IW<W<-I-JW<-K-K-L-M-N-NWU-O-PWUWU-PWUWUWU-P-QWUX%-QX%UI-QUIXO-Q-RUIUIUIUHUI-R-RU.-SV7-S-T-U-V-VV--W-XV<T+-X-YXF-YX3-Z-ZSZ.#SZ.#S2.$S2.$.%S2SY.%SYSYSYSX.%SXSX.%SH.&SH.&SHSH.'.'WQ.(.)WQWQ.)VM.)WE.*WEW<.*W<XZ.*X-X-X-.*.+.,.-.-WU..././WXWU.0.0Y$WDY$XN.0XNXN.0UAXNTNTDTDUV.0TD.0.1TITI.1TI.2T?XLU,XLXF.1XFS5.1.2.3.4.4.5.6.7.7.8.9SK.9.:SK.;.;SX.<.=SHSH.=.>SH.>.?S/.?.@S/.A.A.BSUSUW<W<W<.BW<.BW<.C.C.D.E.F.FW0W0W0W0WD.FWDZCXSZ9Z9XSXSZ9ZRZHZH.DZHTNXNZ@XN.CTD.DTDTD.DTD.ETI.E.F.G.G.H.I.J.JXKT@T@SB.JXFXFS-.JXEXE.JSKXET%.JS@.K.L.L.M.NSJ.N.O.P.QSF.Q.R.SS/.SSWSU.SSUSUXWW<.SXZW4.S.TW4.UW4W4W4.U.U.V.WWCWD.WWC.XY%ZP.X.YZ9ZRXSZRZRZFXTXTZHZHXTZWZ@U=XNU=.U.V.WU=.W.X.Y.Z.ZV+/#V+T@/#T@/$U#U#U#/$XJURU#URSL/#SL/$/$/%/&/'/'/(SO/)/)/*S>S>/*/+/,XWXYZ1Z+Z+W4/+W4/,/,WC/-WCWCW5WC/-W5/-W5/.ZSZ7ZS/.ZKZWXTXTZWZWZ?Z?Z?Z=ZZ/,/,ZT/-ZTZEXGZVZVZIZIZVZV/+/,U=/-/-/.U</////0TPTP/0/1/2/3/3/4T=/5/5XJT=XJSN/5SNSNSO/5/6/7/7S>/8/9S>Z.SR/9Z0Z0/9Z*/9W4Y#Y#/9WCY$Y$WC/9XCXC/9/:/;X>/;/<X>X;/<ZSX;XSZS/<ZSZSZBXT/<ZBXUZ?XUZ>Z>ZX/;ZXZVZV/;ZVZVZVZV/;U=/;U=/<U<U</</=/=/>/?/@/@V./AV.V./AV.V.XR/AXRT(/ASNT(/B/B/CSC/D/D/E/FSRSRZ*XWZ*XXZ2Z4Z2/DX>/EX>X>X;/EX;Z;Z;ZN/EZXZXZ6XIZAZQXQXQXMV,V,/C/C/D/ET0/E/F/G/HT(/H/I/J/J/KSE/L/LSR/MXV/MX>/NX:X>X;X:/NX;X;/N/OX;XS/OXSZNZNZMXTV,/NV,/O/O/P/Q/R/R/S/T/USE/USESEXC/UXCXC/UX:Y%X:X:/UX:/VXDXD/V/W/W/X/YT/T5/Y/ZT5Y%/ZY%Y%/Z0#X@X@XMV,XMV&/Z0#0$0%0%XLT4X9V&0%XMV&T90%XLXLV&V&T9T90$T9T9T9XXXX0$VFXZXZVCVKXTXT0#VGXJXJ0#VHXF0#VH0$0$SE0%SE0%VI0&VI0&VF0'VF0'VC0(VCVCVKVCVK0'0(VKVK0(0)VKVK0)0*0+XC0+0,XCXC0,0-XCXC0-0.XCXC0.0/XCXC0/00XCXC00VG01VG01VH02VHVH02VH0303SE04SE04VI05VI05VF06VF06VC07VCVCVKVCVK06XC07XC07VG08VG08VHVGVGVHVHVGVGT9T9VGVGT9T9VGVGT9T9VGVGT9T9VGVG03VHVGVGVHVHVGVGVH02VGVGY&Y&VGVG01SEVGVGVJVJVGVGVJVJVGVGVJVJVGVG0.VIVGVGVIVIVGVGVIVIVGVGVIVIVGVG0+VFVGVGVFVFVGVGVFVFVGVG0)VCVGVGVCVKVGVGVKVKVGVGVKVKVGVGVKVKVGVG0%XCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVG/XVGVGVGXNXNV'U6XOXOVATFVATFVATFV'U6V'U6V'U6V'U6U6U6U6V8UWUWU%U%V8U%V8U%U%U%U%TRT*V>T*V>V>VAV>VAVAVATFTFVAVATFTFVATFVATFVATFTFTFV'V'TFTFV'V'TFTFV'U6V'U6V'V'TFV'V'U6V'U6TRTRU%TRYHYHYUYUYHYH/BY7YHYHY7YG/AYGYGYGYGX./AX.X.W=X.X.X.W=X.X.W=X,W=X,W=W=W=X,W=X,X,X,X,X+X,X+X+X+X+WWX+X+X+WWX+X+WWWWX+XSWWWWWWVPVPVPVPVPVPUQT*V>T*V>T*V>T*V>V>VAV>V>V>VAV>V>VAVAV>VATFTFVAVATFTFVAVATFTFVATFV'U6T<T<V'U6V'U6U6U6U6V;U6U6V;V;YHYH/)YUYUYU/)YUYU/)/*/+YUY7/+Y7Y7Y7/+/,YGYG/,YGYGYGYG/,YGYGYGX.YGYGX.X.YGYGX.X./)X.X.X.X.X.X./)X.X./)X.W=W=X.W=X.W=X.W=W=X,W=X,W=W3W3W3X,X,W3X,X,X,X,/$X+X+X,W;X,/#X,W;X+X+W;W;WWWWW;X)W;X)X+X+WWWWX)WWX)WBX+X+WWWWWWWBWWWWWBWBWWVPWBWBVPVPWBW8WBW8W8W8W8VPW8W8VPVPW8VPUQT*XHXHT*V@XQXQV=U8U8V0.LV=V0V=V0V0V=V=TZTZV=V=TZTZTSTSV=TSV=V=TWV)TWV)TWV)TW.GV).GV).HV'V'V?V'V'U6V'U6V;U6V;V;V;V;U6V;V;U6V;V;UWV;V;V;V;V;U&U&Y4.AY4Y4.AY@.B.CXEXEY'.CYH.C.D.E.EYU.FYU.F.GY,Y,.G.HY,.I.I.JYU.K.K.LZ&Z&.L.MZ&Z&.MYV.N.O.O.P.QYG.Q.R.S.T.T.UYEYE.UYG.V.WYGY=YG.W.W.X.Y.Z.Z/#/$/%YG/%/&/'/'X./(/)/)X./*X.X.X./*WOX.X.WOVNX.X.WIWI/(/)VNVNWIWIVNVN/(X&/)/*X&X&/*X&/*WHVN/+WHWHVY/+X&X&X&/+X&W=X&W=/*/+/,/-WG/-/.//W=//W=W=W=W=//W3W=W=W3W3W3X,W%W%W3W3W3W%W%X,W%/,X,X,/,X,X,X+X+X+X+WRX+WRWBWBW8W8V=V=/)V=V=U>XPU>/(U>U>U>V=/(/)/*TWTW/*/+U>U>U>/+TTTTU>TTTWV)TWV)TT/)TTTTTLTL/)TL/)TLTL/*/*TU/+/,V;V;/,/-V;U6V;V;V;/,/-/.V;TBV;TB/-UKUK/.U-U-U-/.TB/.V2V2V2V2U$UJ/-Y@Y@/.Y@Y@/./////0YI/1/1/2/3/4YI/4YI/5Y,Y,/5Y,Y,/5/6/7/7/8/9/:/:/;/</=/=Z&/>/?Z&Z&/?/@/@/A/B/C/C/D/E/F/F/G/HY</H/IY<Y</I/JY/Y//J/KY//L/L/MY<Y</MYG/N/OY<Y<Y</O/O/P/Q/RYGYG/R/S/S/T/UZ%/U/VYGYG/V/WYGYG/WYQZ%/X/X/YWJWJ/Y/ZYG0#VTVTVT0#0#X.WJVR0#0$VRVRVTVR0$0%X.WOVRWOWOVNWOWOVRVRWPWPVNVNWPWPVY/YVNVNVYVYVNVNVYW=VYVYVNVN/WX(W=W=W2W2W=W=W2W2W2W2X(W2W3W3X'X'W2X'X'X'W3W3/RX'/RW%W%W%W%W%W&W&W%W%/Q/RW&WUWUWU/QWUWUWUWUWUWU/QX,X,/QX,/QX+X+X+WU/QWUWU/QWU/R/SX+WRX+WRX+WRX+/RWWW8WWWWX)WWX)X)U>/PU>U>TETE/P/QU>/QU>TT/QTT/RTT/RTLTLTLTL/RTL/STUTU/S/TTL/TTL/U/UUP/VUPV;/V/W/X/X/YUPUP/YUPUPUP/YU-XLXLYBYBYB/YYBYB/YYBYB/YYB/Z/ZYB0#YBYIYI0#0$YI0$YIYI0$YM0%0&0&0'YMYM0'0(0)0*0*0+0,0-0-0.Y*Y*0.0/000101020304Y*04Y*05Y9Y905Y9XVYRY9Y9YR04Y9Y9YG04Y905YGYG0506Y906Y907YGYG0708VQVQVWVQ0708090:VWVW0:XWVQVQVSVQWSWSWS09VSVS090:WSWP0:WSWPWPWSVNVS09VS0:WS0:0;0<0<VN0=0>VNVN0>0?0?0@0A0B0B0CW,W,VNVN0C0DVNX(X(X(0CX(X(X(X(W2WUWUX'X'WUWUX'X'WUX'X'X'X'0@X'WU0@WUWUWUWU0@0@0AWM0BWU0B0C0DWMWM0DWTX%0DX%X%0D0E0F0GU>0GXPV:0GUYV:U/0GTT0H0IUY0I0J0KTTTTUU0KTT0KTTTLTT0KTLTL0KUP0LUP0LUP0MUPXFY>XFS:0L0MS:S:YB0M0N0OS:0OS0S00OT'0PT'YM0PT'YC0PT'S0T&0PT&T&T&0P0QY*XVT&T&T&S9Y9Y9XV0P0P0Q0R0S0S0T0UVO0U0VW(0W0W0XVUVUVOVUWQ0XVUVUWQVU0WX#0XX#0X0YVU0Z0ZX#X#X#X#0ZX#X#0ZVS1#1$1$1%W7W7W7W71%W7W7W7W71%1%1&W71'1'1(1)1*1*1+W9W9W91+W91,X(X(W9W<X(WUWUWU1*W<W<W<WUWUW<WUWTWT1)1*V:1*UFUFU/U/1*U/TM1*TM1+UFULUF1+1+UE1,1-1-TL1.1/ULUL1/UI1/1011UL11XNULXN11UPXNUPXNUPU.U.UPUPUP10UP1011UOX2S:1112S:S:SA12SASASASZSZS0SZS2S0S0S2S0S0T&S0T&S0T&S0S0T&T&SYT&T&1,T&S9T&S9T&S91+1,1-WQS91-S9S91-1.WQWQ1.X#1/X#1/10WQWQX#X#10X#1011W+1212X#WEWE12W9X#13X#W9WEXXW9W9W9121213W<W<W913W<W<13W:W<1414WU1516WUWU16171718W<19WUWU19W<W<WU19X-191:1;W<1;X-X-X-WUWUX-WU1:WU1;WUWUWUWU1;WUWU1;WUWUWU1;1<WU1<WU1=1=1>WXX%UF1>XOUI1>UIUIUIUI1>UIUIUI1>UIU*UH1>1?TH1?TAU*V7U.U.TKTKU.UOU.U.XMXMV7TDU71<U7XMUOU'U.UZUZ1;XMXMV-1;XMXMV%1;XLTI1;T,UN1<1<SASASZXFSZS=1<SASZSZSZSZSZS=SZSZS2SZS2SZS2SZS2S0S0S2S2S0S0S017S0SYSYSYSXT&SXSXT&SHSXSHSXSHSXSH13SHSHSHSHSHSH1313WQSHWQ13WQS1S1WQ1314VMWQWQVMVMWQWQWQWEWEWEVMWEW<11W<XZW)11XZX-X-111213X*VXX*X*12VX13VX1314VX15VX15VX1616W0X*17WUWUW0WU16WUY$Y$Y$WDWUWD15WDWDWD15U*XNXN1516TYUAUVTDUVTDXMXM1516TD16TD17XL17TIU(TI17TITIS=17S=18S=18S5S<S2S2S218S<S<18SBS<1819S<S2S2S21919T#T#T#191:S-S-T#1:1;S.1;SYT#SY1;SY1<SK1<T$1=1>SYSYSK1>SYSXSK1>SK1>1?S@SXSX1?SX1?SXSX1@SXSXS3S3SHSHS3SFSH1>SFSFSH1>SHS/SHSFSFSF1=1>S/S/1>VM1?1@S/SUS/S/VMVMVMSUVMVMSUSU1=W'1>W'W<XZW<X-XZX-W<VXX-VXX-1<1<1=1>WK1>VXVXVXWKWKVXW0WK1=WK1>WDWDW0Y$ZHZGZHZGUVUVTDXMXMTDU+U+TD1:TDTDTDTDTDUBTIU,TITCTITIUBUBTCTCUBTCU,16U,UXUXUXUXTJU,U,TCV+UXTJV+T@XKXK13XKSV13SVSV13S.14S.1415S.XESK1516S@SQS@SL16S@S@SLS7S3S3S315S3S3SJS3S@S7S714S3S314SOSFSFSO1414SOSOSOSOSOSO14S/S/SFS/13SG14SGSGSW14SWS/S/S/SUS/SUSUSUW<W4W4W4VX11W4W>11W>W>W>11W>1213W4W?13WLY$W?1314W?WD14W?W?WCWLWCWD13WCWCWCWCWCW5W5ZPW5W5ZPY%W5W5U+U+1011U+U+11U=U=11U=U=TDTDU=U=TDUBTDUBU=U=U=TXTXUBTXUBUBV+UBUBUBV+UBV+T@U#T@U#1*U#1+U#U#U#1+U#SL1+S7S71+1,1-1.S71.S7SJSJSJSJSO1-SJSNSJ1-SOSJSOSJSOSOSOSO1,SO1-SO1-SOSO1-SG1.S>1.SWS>1/SWSW1/SWSUSUSWXW1.1/S>S>1/WLWLWLW4WLW4W4WLWLWL1.WLWCW4W4WCW5WCW5W5Y%W5ZSW5ZSW5ZSZ7Z7Z7ZBZZXIZZZ5Z=XHZOXHZOXHZ5ZO1&V*U=U=V*TXV*1&U=U<U=U<UB1%U<V$V$UBV$TPV$1$U<U<UBV+TPTPV+V+TPTPT@T@TPT-T-U#T-U#TPT-TPV.T-0W0XT=U#U#T=T=0W0X0Y0ZT=0ZT=T=0Z1#U@U@SNSNSN1#SOSOSOSPSNSPSPSP0Y0ZSPSP0Z1#SPSPSP1#SP1$1$SR1%SRZ.Z.XWZ3Z3Z*Z3Z*W4W4Z,Y#W40ZY$Y$WCW*WCW*W5W5Y%X>W5Y%X>Y%Y%X>XCX>Y%W5X>Y%W5ZSY%X;ZSZSX;XSZBZBZSXSZBZBZ;Z;Z>Z>Z>ZXZTXGXGZVZVZVZVZAU=U<0NU<V,0NV,0OU<U<U<0OU<T;0OT;TPTPU<TGTPTPTGTGT;0MT;TGTGTG0MTG0MV.V.V.0MV.0NV.0NT=0OT=SNSNT(T(SNSN0NT(T(SCT(SCSPSPSC0MSP0M0NSDSDSD0N0OSDSRSDSD0NSRSRSRSD0N0OSRXCX>XCX>XCX>XCX>X>0MX>X>Z;XTZNZNV,T/0L0MT10MT50N0NT;T0T00N0O0P0QT;T;0Q0R0R0S0TV.T0T;T00T0T0U0VV.T(SCT(SCT(T(T(SET(SESESESCSCSC0S0SSESESESESE0S0TSESR0TSR0TSESESEXCX>XCX>XCX:XCX:X:X;X:XDX;X;XDXDX;X;XD0PX;X;0P0Q0QT60R0S0ST30T0UT2T0T70UT0T0T00UT70UT5T50U0V0WT.T00W0X0Y0YV.UM0Z0Z1#T.T.UMUMT.XL0ZSESESEXCXCXCX?0YX:X?Y%X:XDX:0YX:0YX:0ZXDXDXB0ZXDXD0ZXDV,V,V,0Z0ZT5T5T5V,0ZV,V,T.T.0ZT.T/0ZT/T/X:0ZY%Y%XBXBX=0ZXBXBX@X@V,0YV,T40Y0ZT4T4V&T4V&V&T4T40YT40YT/T4T4V&T9V&V&XLX9T9XLT9T9V&T9VIVFVIVFVDVGVDVGXJXJT9VHXFXFVHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKXCVBVBXCXCVKXCVKXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVGXCVGXCVGXCVGT9VHT9VHT9VHT9VHVHY&VHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVKXCVKXCVKXCVKXCXCVGXCVGXCVGXCVGXMVHVGVHT9VHT9VHVHY&VHY&Y&SEY&SEVJVIVJVIVIVFVIVFVFVCVFVCVKXCVKXCXCVGXCVGYHYH/U/VYHYH/VYGYGX.YGYGYHYHYH/UYH/UYHYU/UY7Y7Y7XRY7/UYDY7Y7/UY7YU/UY7Y7Y7Y7/U/VY7/VYGYGYGYG/VYGYGYG/VY=YGX.X.X.X.X./U/VX.X.X&X&X,X,/UW3X,W;X,X,V=V=U8V=TWV)TWV)V)V?V)V?V)/QV)V)Y4Y4Y4/QY@Y@/QY@/Q/RY4Y4Y8/RY@Y@Y'Y,Y'/RYHYHYH/RYHY3Y3Y3Y3/QY3Y3/QYUYUYUYUYUY3YUY3Y3/P/QY3Y3/Q/RY3/RY3Y3YUYU/R/SY,/SY,/TYUYDYUYUYDY7YVYV/R/SYL/T/TYUY3Z&YUXRZ&Z&XRY;/SY;/SZ$Y;/TY7/TYVYVYLYLYL/TYL/TYLYL/T/UYVYG/UYGYGYG/UYGYL/VZ$Z$/VZ$Z$Z$Z$/V/V/WZ&/X/X/YYEYE/YYEYEYE/YYEYEYEYGYGYEYGYE/XYEYEYGYG/XYG/XY=/YYG/YY=Y=Y=Y=Y=Y=/YY=Y=YGY=Y=YN/XYNYGYGYG/XYGYGYG/XYG/XYGYGYXYXYX/X/X/Y/Z0#0#0$YNYNYN0$YN0%Y=X.0%X.YN0%0&0'X.X.0'X.0'0(0)0*0*X.X.X.X.0*X.WOX.X.VNVNX.WIVN0)0)0*0+X&WIX&WIWHX&X&WHWHX&X&WHX&WHWHWIWHWH0'VN0(0(WHVYVYX&X&X&0(WH0(WHWH0(WG0)WGWH0)VYVYVY0)VYVY0)0*W=W=0*WGVYWGWGW=WGW=W=0)W=W30)W3W3W3X,X,WUWUX,X,WUWUV=V=0'0(0(U>U>U>TWTWV=TWV=V=0'0(V=V=0(TOTWTW0(TWTWTWTW0(U>U>U>0(TLTL0(US0(TLTTTL0(TLTLTLTL0(TLTL0(V;TUTU0(TUTLTL0(TU0)0*TU0*TUTU0*V;TU0+V;V;UP0+V;UPV;UPUP0*UP0+V;V;UKUKUKU-UKU-U-0)U-U-U&V20)V2Y4Y4XEY@Y@Y@YIYIY@0'YI0(Y@Y@YIYIY@Y@Y@0'Y@Y'0'0(YI0(YIYIY'Y'0(0)0)0*0+Y,0+0,YIYI0,Y,0-0.YIYIYI0.0.0/YI00Y,Y,00Y,Y,000102Y,02Y,0303YK04YK04Y,0506Y,Y,06070708YM09090:YMYMY,0:0;0<0<0=Z#Z#YM0=YMYM0=0>0?0@Z&Z&0@Z&YK0@0A0B0B0C0D0EZ&Z&0E0FZ&Z&0F0GZ#0GZ#0H0HY-0I0J0J0K0L0M0MY00N0O0O0PY0Y00P0QY00R0R0S0TY+0TY/0UY/0U0VZ&0W0W0XY<Y<0X0YY<Y<0YYEY<Y<YEYEY<Y<0X0YY/Y/Y<0YY/Y/0Y0ZY/1#1#Y<Y21$1$1%1&1'1'1(1)Y<1)Y<Y<Y<YGYGY<1)Y<1)Y<Y<1)1*Y<Y<Y<1*YRYRY<1*1+1,1,Y<Z(1-1-1.YRYRZ(1.YRYG1.1/Y<Y<YGYG1/YGYG1/101111121314Z%Z%YGZ%Y<Y<131414YGYGYGYG14YG15Z%1516YG16YQ171818YQWJWJYQ18YQWJ18X.WJWJ1819YGYGWJWJY)19Y)Y)YGY)VTVTVQVQX.X.17WJX.X.X.17X.X.17X.1718VQVQ18VQVQVQVYVY18VYX(X(18X(X'18X'X'W3W318W%18W%WU1919WUWUWUW%WUWUWUWU18WUWU18X,WUWUX,X+X+X+WUX+WUWUX+X+WUWUWUWU15WU15X+16X+WRWRX%16U>TETETETETEU>U>TETETTTT13TTTTTTTETTTETETETE12TT12TLTLTLTL12TLTUTLTUTL12TUTU12TUTU121314141516U016171819U019U01:U01:1;UPV;V;V;1;1;V;1<UP1<1=UPUPV;V;1=1>V;1>UPUP1>UPUPUP1>U-XLU-YBYB1>1?YBYB1?1@YIYI1@YI1@1AYBYB1AYB1BYB1BYBYBYB1B1CYBYB1C1DYBYBYI1DYI1E1EYM1FYMYIYIYI1F1FYM1GYMYMYMYM1GZ'Z'YMZ'1F1GZ'Z'YPYP1GYPZ'Z'YMYM1F1GYMYJ1GY+YPY+Y+1GY+1H1H1I1J1KY+1K1LYSYWYWY*Y*1K1LY*Y*1LY/1M1NY/Y/1N1OYTYT1O1PYTYT1PYT1P1Q1R1SY/Y/1SXVYTYT1SY9YTXVY9Y9Y*1RY*Y*Y*Y*Y*1R1RY91SY9YRYGXVXVYGYG1RYGWZWZY9Y9WZWZWZ1QWZ1QWZWZ1QX/1R1SY91SY91T1TYG1UWZYGYG1U1V1VVW1W1XVWVWVW1X1X1YX#X#1Y1ZX#X#1ZXW2#X#2#2$VSVSVSVSX#2$VSVS2$2%WSWS2%WSWSWS2%2&VS2&VSVSWSWYWS2&2&2'VSVSWSWSVSWS2&VN2'VNVNVNVN2'VNVN2'2(2(2)2*W#2*2+W#W#WY2+2,2-2-2.2/2020W,21W,W,W,21W7212223W#W#W#W#X(22W#W#W#W#22W#W#W#W#X(X(X'X'WUWUX'WUWUWUWUWUWU2/WU2/20WM20WMWMWMWMWM2021WU21WUWUWUWU21WM2122WMWM22WT23WTX%X)X%X)U>U>U>2222TTUYUYU>22U>U>UYUY22UYU>U>2223U>U>2324TT24UYTTUY24UYUYUY24UY25UY25UYUYU/25U/U/2526U/U/26TTTMUUTTTLTLTLTLTL25TL2526TL272728TLUPTL28TL29TL29TL2:2:YBYB2;YBYB2;YBYBYBS0S02:2;S:S:2;S02<S0S0S0S:S0S0T'2;T'2;T'2<T'YMYMYCYCT'T'S0T'2:T&T&T&Y*2:Y*2;Y9Y92;2<2<2=WFWFY9Y92=Y9Y92=2>2?2?W(WFVZW(W(2?W(XV2?W62@2@W(2A2B2B2CS9W62CY9W(W(2C2DW(W(W(2DW(2E2E2F2GVU2GVUVUVUWQ2GWQWQ2GX#2H2IVU2I2JX#VU2JVUVUX#X#2JX#2JX#VU2KX#2KX#X#X#2KX#X#2K2LX#2MX#W72MW72MW7W7W7VS2MW7W7W72MW7W7X#2MX#X#W7W7W7W9W72LW7W72LW7W7W7W7W72L2MW,W,2MW9W7W9W9W92LW9W9W9W9W9W9W<W7W7W72K2KW92LW92L2MW92NW92N2O2PW<W<2PW<WT2PWTX%2PX%X%X%V:U/V:V:UFU/UFUFTMUUTMTMTMTMTM2MUFULUFUF2LTLTMUETM2L2M2NUEULULULTLTL2MTLUL2MULULTLTL2MTLULUIULUIULUL2LULUL2LULUL2LULUIUL2LXNUEXN2LUPXNXNUPUOUPUOUPUOUPUOUPU.U.U.X2SASASAS:S:SASASAS0SASZ2FS9T&S9S9VO2F2GVOWQWQWQS9WQS9S9WQWQS9WQVUVUWQWQW@2CWQ2DX#X#WQX#WQWQWQ2CWQ2CWQWQ2CWN2D2EX#X#2EX#WNX#W+W+X#2DW+2EW+2EW+WE2EX#2FXXX#2FX#2GX#W9X#W92FW<W<W<W92FW92G2GW<W<W<W9W<W9W9W<2FW<2GW<2GW<W<W:WUW:W:W:W:W<W<W:W:2EW:2EW:W:2FW<X$2F2GW<W<W<2G2G2H2IW)2IW)W<W)X$X$2IW<W<W<W<2IW<W<W)2IW<W<2IW<W)2IW)2JW<X-W<X-X-WU2IWU2IWUX-X-WUWUWU2IWUWUVXWUWUWUWU2HWUWU2HWUWUWU2HWUWUWXY$WXWUWX2GWXWXY$2GX%UFUFUF2GUFUI2GUIUI2GUIUIUHUHUIU*UHTH2FTHUH2FUHTHUH2FU*TAU7UZU7U7UZV-XMV-V-V%XMXM2CV<V5V52CV1U;2DU)U)TVUDXFSAXF2C2CS=S=S=S0SYSYSYS92BSHSHSHS1SHS1XWWQSHWQSHSHS1S1WQWQVM2?WQ2?VMVMW<W)W<W)W)X-2>X-WUWUX-X*X-X-VXVX2<X*VXVXVXVXX-VXX-2;X-VXX*2;VXVXVXX*VX2;VX2;VXVXWUWUVXVXVXVXY#WU29VXX*VX29W0X*W0WU29WUWUWXWXWXWDUI28XNXNU*V7TYTYV7V72728TI28TITITQU;28TITDTITITITITI27TIUDUDV6V4V#V#26TIS=S=262727S=S5S5S=S2S=S2S2S2S<S2XF25XFSBS<S2S<S-SBS<24SVS2T#S2T#S2S2S2T#S2S2S-S-T#T#21T#S.21S.S.S-S.S-21SYSY21SYSYSYSY2121SKSKSK21T$SMT$S.21S.SMT$SKT$SK20SKSKSKSKS@SK2020S@21SXSK21SKS@SXSX21SX21SX22SXSXSXSXS3SHSHSHSFSHS1SHS/S/2/S/S/2/S1S/S/S1VMS1S1S/2.S/S?VMVM2.XWW<W<2.W'W<W'W'W'VXVX2-Y#VXVXVXWK2,VXWKWKVX2,VXVXX-2,X-VXX*W0WKW0WKW0W0W0TITITD2*U,XLU,UXTJXKTJT@SV2(SVSV2(S.S-S.2(S.XES.2(2)2*2+2+SK2,SKSKSKS@S@SKS@2+2,SQSQSLSLS3S3S32+S7SJS7SJ2*S3SOSOSFSF2*SOSOSOSJSOSOSOSO2)SOSGSO2)2)SGSGSGSG2)2*SWVXVXW>2*VXVXVXW>W>W>2)W>W42)W4W42)W4W4W4WL2)WLWLY$W$W?2)2)W?W?W?W?W?WC2)WDWDWDWCXMU+U=U+U+U+2'U+U+U+2'U=U=U+U=U=T@U#T@2&T-U#T-U#U#U#U#2%SLS7SLS7S72$2%2&S7S7SJ2&SN2&XRSN2&SNSNSNS7SJSJSJ2%SJSJSJSJSJSJSOSO2$SO2%2%2&SO2'SOS8SO2'SGSG2'S>2'S>S8S>2'SW2(2)S>SWS>S>SWSW2(SWS>SWS>S>SWXW2'XWWLWLW4WLWLWC2&WCU=V*U=U=V*V*V*U<UBUBUB2$V$V$V$2$T-T=T-T=2#V.V.V.U#V(2#T=V(V(T=2#2#T=T=T=T=2#T=U@T=2#T=T=2#2$2%2&V(V(2&XJSNSNSN2&SO2&SP2'SPSP2'SOSOS>SPSPS>S>2&S>SPSPSP2&2&2'SR2(S6SRS6SRS6SR2'S6WCWC2'WCU=U=2'2(2(U<V,U<V,U<V,U<U<U<2'U<U<U<2'T;2'TGTGTGTGTG2'TG2'V.V.V.TGV.TG2'2'V.V.V.T=T=V.2'V.T=V.V.2&SNT(T(SPSPSC2&SPSPSPSDSPSDSDSDSC2$SCSCSDSDSC2$SRS6SR2$2$SRSDSRSDSD2$SDX>X;X>X;V,V,V,T6T2T2T6T2T1T5T1T51XT5T5T5T51XT5T5T/T/T/1XT8T01XT0T21XT2T21XT0T/T0T0T0T01X1XT;1YT;1YTGT;TGTGV.V.V.T;T;T;1XT0T0T01XT;T01X1YT0V.V.V.1XV.V.V.SC1XSE1YSC1YSCSESE1YSE1Z1ZSESSSESESESE1ZSESTSESEX;X;XDXDX;X;XDXD1W1XXDXDV,T6V,T6V,T6V,T31VT3T3T3V,T3V,T3V,T3T51UT3T31UT51UT01VT0T0T0T01VT7T0T71VT01V1WT.1WT.T.T.1WT.T.T.1W1X1YUMT01Y1Z2#2#UMUMUM2#V.UM2$2$2%UMV.T.2%T.T.2%UMT.2&SE2&SESEXCXCX?2&2&XDXDXDXB2&XBXBXBXB2&XB2&2'XBXB2'XBXBXBV,2'V,2(2(T5T5T5V,T5V,T/T.T.2'T.T5T5T/T/2&XBXBXBX=XSX@X@V,2%V,T4T/T/T42%T/T/2%2&T4T4V&T4T/T/T4T4YU2$YUYU2$Y72%Y7YHYH2%2&YHYHYHYUYUYUYH2%YUY7Y7Y7YUYDYUYDYDY7YDY7YUY7Y7Y7Y7Y7Y71YY7Y7YGYGY7Y7YGYGYGYGY7YG1VY=Y=Y=1V1WX&X&X&1WX&X&X,X,X,W3V?V?V)V?Y4Y4Y41U1UY@Y@1V1V1WY4Y4Y@Y@Y4Y4Y8Y8Y@Y@1U1V1W1XYH1XYUYUY3YUY3Y3YHYU1WYUY,1WY,Y,1WY3Y,1XY3Y31XY,Y3Y3Y31X1XYUY31YYUYUY,Y,Y3Y3Y,Y3Z&Z&1WZ&1WZ&1X1YXRYVYLYLYVYVYLYLYLYLYL1WYUYUY3YUZ&Y;Z&Z&Z$1UZ$Z$Y;Z$Y;Y;Y7Y7YVYVYLYL1SYLYL1SYLYLYVYGYVYVYGYGYV1RYGYG1RYGYVYVYLYLYLYGYLYLZ$Z$Y;Z$Z$Z$Z$YEZ&1NZ&Z&Z$Z$1NYE1NYEZ&YEZ$1NYEYE1NYEYEYEYLYLZ$YEYEYGYEYEYEYGYE1LYEYGYGYG1KY=Y=Y=Y=Y=YGYGYGYGY=1JY=Y=Y=1JY=Y=Y=1JYGYGYG1JYGYGYX1JYGYX1JYX1J1KYQYN1K1LYGYGYN1LYGYGYGYGYG1LYGYGYG1LYXYX1LYNYXYN1LYNYNYNYN1LYNX.X.X.Y=Y=1KYNYNX.YNYNYNYN1J1KYN1KYN1LX.X.1LX.1LYGYGYGYN1LYG1MYGYGYG1MX.X.1MX.X.1MX.X.X.1MX.WOVN1MVNVNX.X.X.1MX.X.X&X&X.1LX&X&WHWH1LWHVYVYVN1LVYWHVYVYX&X&X&WGX&WHWHWHWGWG1IWGWHWGWHWGWHVYVYVYVY1GVYVYWGWGWGW=W=W=1FW=WGWG1FWGW=1FW=W3W=W=1FW3V=V=V=1FV=V=1F1GV=1GU>U>V=V=U>U>V=V=U>1FV=V=1FU>TWTWTTTTTWTWTTTTU>TEU>1DTT1DTTTT1D1ETLTL1ETLTLTLTL1ETLTLV;1EV;V;1ETU1F1GTUTUUGTU1FUG1G1HTUTUTLTLTU1GTUTU1GV;TUV;V;V;TUTU1FUKUPUKUP1FUPUKUP1FUPUPU-U-U-1FTBTBTBV2Y@Y@Y61E1EY6YI1FY@Y@1FYIYI1FYI1G1G1H1IY.YI1IYIYI1I1JY.Y.1J1KY.Y.Y'Y'1K1L1L1M1NY,1N1O1P1Q1QY.YI1RY.Y.1RY.Y.Y,1R1S1S1TYIYI1TY,1U1V1V1WZ)Z)YI1W1X1Y1YZ)1ZZ)1Z2#2$2%Y,Y,2%2&Y,2&Y,2'Y,Y,Y,2'Y,2'2(2)2)2*2+YKY,YKY,Y,2*YKYKYKYKYKY,YK2)Y,2*Y,2*2+Z)Z)2+2,Z)Z)2,2-2.Z#2.Y,Z#2/Z)Z)Z)2/Z)Z)2/20YM20YMYMZ)20212222YMYMYMY,Y,Y,2222232425Z#25Z#Z#25Z#Z#Z#2526Z#Z#2627YMYM2728292:2:2;Y?Y?2;2<Z'Z'Y?Y?Z'Z'Z&Z&2;2<YKZ&YKYKYKYKYK2;YKYK2;2<2<Z&YKYKZ&Z&2<2=YKYK2=2>YK2>2?Y-2?2@Y-Y-Z&Z&Y-Y-2?2@Y-Y-2@Z&Y-Y-Z#2@Z#Z#Z#2@2A2B2BY-2C2DY02DY0Y02D2EY0Y0Y?2EY?Y?2E2FZ'Z'2F2GZ'Z'Z'Z'2G2HY0Y0Y02HZ'Z'Z'2HZ'2H2I2JY-Y-2J2KY-2K2L2M2M2NY0Y02N2OY0Y0Y0Y/2OY/Y0Y02O2PY0Y02P2Q2QY+2RY+Y02RY/2SY/Y/Y+2SZ&2SZ&Z&2SYEYEYE2SY<Z&2TYEYE2TY<YEYEY<Y<Z&Z&2SY<2SY<Y<Y<YEYEY<YEYYYY2RYYYYY<2R2SY<Y<Y<2SY<Y<Y/Y/Y<2RY2Y2Y2Y2Y/2RY<Y<2R2S2SY<Y22TY2Y2Y22TY22TY<Y<2TY<2U2VY<Y<2VY/YEYEYE2VYEYEY<Y<2U2VY<Y<YGY<Y<Y<YGYGY<Y<Y<2TY<Y<2T2UY<Y<2UY<Y<Y<Y<Y<Y<2UY<Y<2U2VY<2VY<Y<2VZ(Z(Z(Y<Y<Z(Y<Z(Y<Z(Y<Y<Y<2TY<Z(Z(Y<Z(Z(Y<XVXVYGYGY<2RYGYGY<YGY<2QY<YGYGYGYGYQYGYG2PZ%2P2QZ%Z%YQ2QYQYQ2QYQYQYQYQYQZ%2QYQYQZ%Z%Y<2PY<Y<2PYGYGYGY<2P2Q2R2RZ%Z%Z%YG2RYGYGZ%Z%Z%YG2QYGYGYG2QYQYQYQYQYQ2Q2RYQYQ2RYQZ%WJ2RWJYNYNYQYQYNYNYN2Q2Q2RYGY)Y)WJY)Y)Y)VTY)Y)WJ2PWJWJX.X.VRVR2OX.VRX.VTVTVT2OVTVT2O2PVTVT2PVQVYVYVNVNX(X(2OX(2O2PX'X'2PW%W%W%W%W%W&W%2O2PWUWUW%W%2PWUWU2PWUWU2PX,X,X,WUWUWUX+WUWUWUX+2NX+X+X+WRWRX%X%2MTT2NTTTT2NTTTTTTTTTT2NTLTUTLTU2M2NTL2O2OTUU0U0TUTU2O2PTU2PUPUP2PV;UPUPTLTLTLU0TLU0U0U0TL2NTL2OTLU0TL2OU0U0U5U0TL2NTLTL2NU22OTLU0UPU0UPU02NU02OU0UPUPUP2N2OUPUPV;V;V;2O2OV;V;V;V;UPUPUPV;V;V;UPV;2MUPUPV;V;UPUPV;V;UPUP2KUPUPUP2KUPUPUPUPUKUPUKYB2JY>Y>Y>2JY>Y>2J2KY>Y>YBYB2KYBYIYI2KYIYB2KYBYBYIYIYBYBY>2JY>2KY>2KY>YBY>2KY>YBYIYIYBYBYIYIYB2JYIYI2J2KYIYI2K2L2LYM2M2NYI2NYIYIYMYM2NYM2NYMYIXRYIYIYI2N2NYMYIYMYIYMYIXR2MYMYMYMZ'2MZ'Z'YPYP2MYPYPYPZ'2MZ'2MZ'Z'2M2N2O2P2P2Q2R2SY/Y/Y+Y+Y+2RY+Y+YJYJYJ2RYJ2RYW2SYJ2SXRYWYWYWYW2SY+Y+2SY+2S2TYSYS2T2UYWY*2UY*Y*Y*2UY/Y/Y/2U2V2WYTY/Y/YTYTY/2VYTYT2V2WYTYTYSYTYSYTYTYTYTY*YTYT2UYTY/Y/2UY/Y/Y/2UY/2UYTYTYTYT2UYTYT2U2VYTYT2VY92WY9Y*Y*Y*Y9Y*2VY*Y*Y*Y9Y9Y92UY9Y*Y*YGYGYG2UWZWZY9WZYGYGWZWZY92SY92TY92TY9Y92T2U2VX#2VX#X#X#Y9X#Y9X#YGYGWZYGWZWZ2TWZYGYG2TYGYG2TYGVWX/VWX/VWX/X/2SX/VWVWX/VWVWVW2RVW2R2SX#X#2S2TX#X#2TX#X#X#X#VWX#2TVWVW2TVWX#VWX#X#WSWSVSVSWSWS2R2SVSVSX#X#VSVS2RVSVSVS2RVS2RWS2SWSVS2SVSVSWSWSVSWSVS2RVSVSWSWYWS2R2R2SVS2TWSWS2TWSVNVN2TVNWP2TWPVNVNVNVN2TVNVN2TWYWYW#W#W#2SVNW#W#VNVNW#W#W#W#2R2SVNW#W#W#W#2RW#W#2R2S2TWYWYWY2T2U2U2V2WW,WY2W2X2Y2Y2Z3#3$3$3%W#3&3&3'W#W#W,3'WS3(WS3(WSW,W,W,3(W,3(3)3*3+3+3,3-3.3.3/W#W#3/30W#W#VNVNW#W#3/WUWMWMWUWU3/WMWU3/30WMWU30WMWMWMWMWM30303132WTWUWUWU32WUWUWU32WU32WMWM32X+WMX+WMWMWM323233WTWTU>U>U>33U>TTU>UYU>32U>3333UYUYUYU>33XPV:3334V:V:V:34V:V:V:34V:U/TTTT34TT34TTUYUYTTTTUYTTUYTTUY33UYTTUYTTUYUYU/32UYUYU/U/UYTT31U/3132UUUU32TLTLTLTL32TLTLUPUP3233TLUPTLUPTLTLTL3232UPUPUPUPUP32UP32UP33UP33UPTLUPTLUPUPUP32YBYBYBYBYBS:3232YB33S:S:33S:S:S:S0S:33S0S033S033S0S0S0S033S034S0S0S034S034T'T'T'T&34T&Y9Y93435Y*35Y*Y*35Y9Y*XV35Y9Y*Y9WFW-WFWFW-34WF35Y9Y9W-W-Y9Y93435Y935363737W(W(W(W-W-37WF3738393:VZVZ3:3;3;3<3=W/3=W(3>W(3>3?VOVOW(W(VOVOW.3>S93?3?3@W63AY9Y93A3BY9Y9Y9W(Y93AW(W(W(W(W(3AW(3AVUVU3AY9W(W(3A3BVUVU3BVUVUVU3B3CVUVUWQVUWQWQX#X#3BX#3BX#VU3CX#X#3CX#3CX#X#X#VU3C3D3E3EX#3FX#3FX#VU3GVUVUVU3G3GX#3H3IVSX#X#X#3HVSX#X#VSVSVS3HVSVS3HVS3HVSX#VSX#X#X#W7VSVSW7W73F3GW7W7W73GW7W7W7W7X#3GW,3GW7W73GW7W7W7W7W7W73GW7W73G3HW7W93HW9W7W9W9W9W73GW7W7W73G3H3I3IW9W9W9W93IW93J3JW<3KW<W93KW9W9W93K3L3MW93MW93N3NW<W<W<W<W<3NW<WTWTWT3NWTY%X%Y%TMTMULULUU3LUUUUULUEUL3LTM3LTMUL3LULULULUE3LULUEUETLUE3LTLTLUE3LULUL3LUL3L3MUEUEUIULUI3M3MTLUEUETL3MXNUPT&S9T&3MS9S9S93M3MWQWQWQW@3MW@W@W@W@WQ3MWQWQWQ3MWQ3MWQWQVVWN3MWNWNWNWQWNWNWNW+W+X#X#WEX#X#3JW+3KW+W+W+WE3J3KWEWEWEX#3KX#3KXXWEWE3KW7X#3LX#3LX#X#W9W9W9W<W9W9W93KW9W<W<W<3JW<W<W<W<W<3JW:3JW:W<W<W<W:W<W<3I3JW<W<W:3JW:W:W:W:3JW:W<W<3JW<X$X$W<W<W<W<W<3IW)W)3I3J3JW<W)W)3J3K3LW)3L3MW<W)X$X$W<W<W<W<W<X-W)3KW)W)3KW<W)W<W)W)3KW<W)W<W)W)X-WUWUWU3IWUX-X-WUWUVXVXWUWUWU3HWUWU3HWUWUWU3HWUWUWXWXWXWXY$WXX%UFUFT>3FUFUFUIUIUI3EUIUIUH3EUH3FUHUH3FTHTH3FTHTAV%3FV%V5T+T+T+3FV3T,3FT,XFSASA3FSZSZ3FS=S9S9SHSH3EWQVMVMWQWQVMVM3DX-W)X-X-3DVXVXVXVXX-VXX*X*3C3DVX3DVXVXVX3DVXVXVXVXX*VXW0W0X*W03B3CWUWUUI3CUIU*TYV7TYV7V7V7V7UAT:T:3AT:3ATQTITITDTDTD3A3AV#TITIS=S=3AS4S=3A3B3CS=S=S=3CS<S<XFSBSBSBSBSVS-T#S-S-T#3@S.S.3@S.S.S.T#SYT#T#SYSYSKSKSYSKSKSKSMT#SM3=SMT$SMT$SYSKSKSKSK3;SKS@SKS@SKS@3:S@S@S@SKS@SKS@39SXSXSXSXSX39SX39SXSXSXS1S1S/S/S1S1S/S/S1S1S?S?S?S?36SUW<W<W<W'35VXVXVXVXVXWKWKVXWKVXWKX-VXX-VXTITITD3232S-S-S-S-S-S-S.S-S-S-S.S.30S.31SMSMSM31S.31S.S.313233SMT$T$T$33T$33T$XESKSKXRSQS@S@SQS@S331S3S3S3S331S331SOSOSOSOSOSO3131SG32SGSOSO32SGSGSWSWSW3132SGSWW>VXW>W>W>W>W431W431W4W4W>31W432W?W?WLW?W?31W?W?Y$W?W$31W?W?WCWCU+U+U=U+U+U+U+U=U#U#3.U#U#U#U#3.S7S7S73.S73.XRSNSNSJ3.SJ3.SJSJSJ3.SJSNSN3.SJSNSNS7S73.SJSOSGSO3.SO3.3/SISOSOSO3/SISISI3/S8S83/S8SOS>SOS>3.S>SISISI3.3/3030SWSWSWS>30S>S>30SWS>SWSWSW30SW30S>S>S>30WCWCWCUB30V$V$V$V$V$30V.30V.V.V(V(T=30V(V(30U@T=30T=T=30U@T=U@T=U@T=T=V(U#3/V(3/U#V(V(V(V(3/V(V(V(V(U@3.V(U@U@SN3.SNSOSOSO3.SOSP3.SPSP3.SO3/30S>S>SP30SPS6S6S6SPSPSP3/S6S6S63/SR3/SR30S630SRSRW4WCW4WCU=U=U=3/U=V,V,V,V,U<V,V,U<U<3-T5U<U<T5T53,TGTGTGTGTGTG3,TPTP3,V.TGV.3,V.TG3,TGV.V.T=T=T=SNSNT(T(SD3*SCSDSCSDSCSDSDSDSE3)S6S63)SRSD3)SDSDSDSD3)SDT53)T5T5T5T;T53)T/3)T/T/T83)T8T0T/T/T2T/T/T03(3)T0T0T03)T;T;3)T;3)3*T;T;T;3*T;TGT;3*T;T0T03*3+V.3+T0T0T0T0T0V.V.T0V.3*V.SC3*3+SESCSESESESCSCSC3*SESESE3*3*SSSSSSSESESSSSSESE3)ST3)XDXDXDXD3)XDXDT3T6T3T3T53(T53)T3T33)3*3*3+T73,T7T0T7T0T0T0T03+T0T0T5T5T0T03*T.T0T.T5T.T03)T.T.T5T.T5T.T03(3)UMUM3)UMUM3)UM3*UMT03*T03+T0T03+T0T03+T0UM3+UMUMUMV.V.V.3+V.V.UMUMUMV.UMUMV.V.3)V.3)UMT.T.UMUM3)UMUMUMT.T.3(SSSESEXCX:X?X:X:3'X:XDXD3'XBXBX:XB3'XBXDXD3'XBXDXDXBXBXD3&XB3'V,T5V,T5V,T5V,T5T5T5V,T5T5T.T53$3$XBX:XBV,V,V,T/T43#T4T43#T4T4T4T43#T4T4Y7Y73#3$Y7Y73$Y73$Y7Y7Y7YHYH3$YGYHYH3$3%YHYUYUYUY7Y7YGYGYGY=Y=Y=2Z3#X.X&3#3$X&X&3$X.X&X&Y43$3%Y@Y4Y43%Y@Y@Y@3%Y@Y@Y43%Y4Y43%Y4Y4Y'3%Y'Y'3%Y,3&Y,Y'Y'Y'3&3&Y,3'Y,YH3'YUYUYHYH3'YHY3Y3Y,Y,Y3Y3Y,3&Y,3&Y,Y,3&Y,Y,Y,Y3Y3Y,Y,Y33%Y3Y33%YUYUYUY,Z&Y,Z&Y,3$3%3&3&Z&Y,Y,Z&Z&3&Z&YLYL3&3'YLZ$Z$Z$YLYL3&YLYVYV3&3'YV3'YVYG3'YGYGYGZ&Z$Z&Z&Z&YEZ&YEZ&YEZ&Z&Z$Z$YEYEYEZ$YEYEYE2ZYEYE2Z3#YGYGY=YGY=Y=Y=Y=YNYNYNYN2YYN2YYGYXYXYGYGYXYXYG2XYGYGYXYNYX2XYNYN2XYNYG2XYGYG2XYNYGYGYNYN2XYGYGYGYNYNYGYGYG2WYXYNYNYNYN2VYNYNYN2V2WX.Y=Y=YNYNYN2VYNYG2VYNYNYNYNYN2VX.2VX.YNYNX.X.2VX.YNYGYGYGYN2UX.X.2UX.X.X.YGYGYG2U2UX.2VX.2VYGX.2WX.X.2WX.WIWIVNWIX.X.2V2WX.X&X&X&WHWHWHVYVYVYVNVYWHWGWHWHWGWGVYWG2RW=W=W=WGWGVYWG2QW=W3W3W=W32QW3V=2QV=U>2Q2RU>U>2RV=U>U>U>U>2RU>2RV=U>U>V=V=U>U>2QTETETETLTLTTTTUT2PUTUTTLTLUTTLV?2OTLTLTLTUTL2OV;V;2O2PTUTUUGTUTL2OTLTLUG2OTLTL2OUGTLUGTLTLTL2OUGTU2OTLV;V;TU2OV;V;2OV;UKUK2OUKUPUK2OUKUPUKUP2O2OU$U$U$Y6YIY6YIY6Y6Y62NY:Y:YIYIY@2MY@YIY.Y.2MY.2MY.YI2NY.2NY.Y.2NY'2O2PY.Y.2P2Q2Q2RYI2SY'Y'2S2T2T2UY.Y.2U2VY.Y.Y'Y'2V2WY'2WY'2X2X2Y2ZY,2Z3#Y'3$3$Y,3%Y,3%Y,Y,Y,Y'Y'3%3&3&Y,3'Y,3'3(3)3*Y,Y,3*Y,Y.Y.3*3+Y.Y.YIYI3*Y.YI3+Y.YA3+3,Y,Y,YAY,3+3,YIYI3,3-YIYIY,Y,3-Y,3-3.YIYI3.YIYIYIYIYIYI3.YIYIZ)YIYIZ)Z)3-YI3-YI3.3.YI3/YIZ)Z)3/Z)YIZ)YI3/YI3/YI3030YM31YMYIYI3132YMYM32YM3233YIYI33Y,343535Z&36Z&36Z&37Z&Y,Y,3738Y,Y,Y,38Y,3839YK393:YKYKY,Y,Y,YKY,39YKYK39YKY,YK39YKYKYKYI39YI3:3:Y,3;Y,3;3<3=3>3>3?3@Z)3@3AZ)Z)3A3BZ)Z)3BY,3C3DY,Y,Z#Y,3CZ#Z)Z)Y,Y,Y,Z#Z#Z#Z#3B3BYM3CYMZ)Z)YM3CZ)YM3CYM3CYMYMYMZ)Z)3C3D3DYMYMYM3D3EYMYMZ)YM3EYM3E3FY,3GY,Y,Y,3GY,Y,Z#Z#Z#Z#Z#YMZ#Z#YMYMY,3DZ#Z#Y,3D3EZ#YKYKZ#Z#YKZ#Z#Z#YMZ#YMYMZ#Z#YMYMZ#Z#YMYMZ#Z#3@3AYMY?YM3AY?Y?3AY?Z#Z#3AZ#Z#Z#Z#Y?YM3@3A3B3BY?3C3DYKZ&YKYKZ&Z&3CZ&YKYKZ#YKYKYK3BYKYKYK3B3CZ&Z&YKYK3B3CYKYK3CZ&3D3EYKYK3E3FYKYK3FY-YKYKY-Y-YK3EY-Y-Z&Z&Y-Y-3DZ&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z#3AZ#Z#3A3BZ#Y0Z#Z#Z#3B3BY03CY03CY-Y-Y-3CY-3D3EY-Y-3EY-Y03EY0Y03E3FY0Y03F3GY0Y03GZ#Y?Y?3G3HY?3I3IY03JY0Y?Y?Y?Z'3IZ'Z'Z'Z'Z'YPZ'Z'Z'YPYPY0Y03GY0Z'Z'YPZ'Y0Z'Z'Z'Z'Z'3E3FZ'Z'Z'3FY-Y-3FY03FY0Y0Y0Y-Y-Y-3F3FY0Y0Y03FY0Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-3D3E3E3F3G3HY03H3IY/Y0Y0Y03IY03IY03J3JY0Y+Y+Y03J3K3LZ'Y+Z'Y+Z'Y+Z'3KY0Y03KY/3KY/Y/Y/Y/Y/Y+3KZ&YEZ&3KYEYE3KYEZ&Y<Z&Y<Y<Y<Z&Y<YE3IY<Y<Z&Z&Z&3IZ&Z&Z&Y<YYYYY03HYYYYY/3HYYYY3HYYY<Y<Y/Y/Y<Y<3GY<3GY2Y/Y/3GY<Y2Y2Y<Y<Y23G3GY<3HY<Y<Y<3HY<Y23HY2Y2Y23HY23IY2Y23IY23IY<Y/Y/3I3J3KY/3KY/Y/Y/YEY<Y<Y<3JYEY<Y<YEY<Y<Y<Y<YGY<Y<YGYGY<Y<3GYG3HY<YGYGYG3HY<Y<Y<3HY<Y<Y<Z(Y<Y<Z(Z(Y<Y<3F3GY<Z(3GZ(Y<Y<YRYRYGY<Y<Y<Y<YGY<3EYG3EZ%Z%YGYG3EYGYQYQZ%YQ3D3EYQYQ3EYQYQYQ3EZ%Z%Z%Y<Y<Y<YG3D3EYGYGYGYG3EYGY<Y<Y<3E3EYGYGYGYG3EZ%Z%YGZ%YGYGZ%Z%YGYGYG3CYQYQZ%YQZ%YQYQYQYQZ%YQYQ3AYQZ%Z%WJWJ3@X.X.X.Z%Z%Y)Y)3?3@Y)Y)WJ3@WJWJX.X.3@X.VTVTVT3@VTVT3@VQVT3@VQVQ3@VQVQVQ3@X(3AX(W3W33AX'W3W33AX'W3W%W%W%3@3AWUWU3AWUWUWUW%W%W%WUWUX,WU3@X,X,3@X,WUWUWU3@U>TTU>3@U>3@U>TTTETETTTTTTTLTLTLTUTUTU3>TUTUTU3>3>U0U1U0TUTU3>3?TUTUTU3?TUV;3?V;TUTU3?3@TU3@3AUP3AU0TLU03AU03BU03BU53CU5TLU3TLTLU5U5TL3BTL3BTLTLUPUP3BUP3BUPUPUPU9U9U93B3B3C3D3EV;UP3EUP3EV;3FV;3F3G3H3IV;V;3I3J3JUPUPUPYB3J3KY>YBYBY>3KYBYB3KY>YBYBY>Y>Y>3JY>3K3KYI3LYBYBYIYBYBY>YBY>YBY>YBY>YBYBYBY>YBYBYB3HYB3H3IYBYB3IYI3JYBYIYI3JYB3J3KYBYBYIYBYBYB3J3KYIYIYIYMYIYIYMYM3JYMYIYIYI3JYMYM3JYM3JYM3KYMYIYIYI3KYIYMYIYI3J3KYMYMZ'YPZ'Z'Z'YPZ'3JYPYP3JYPZ'3JZ'Z'YPYP3J3KYPYJYPYJZ'3JZ'Z'3JYJZ'YJZ'3JYP3K3KY+3LY+YP3LYPYPY+Y+YPY+Y+3KY+3LYJYJ3LYWY+Y+3LY+Y+Y+3L3M3MYW3NYWYW3NYWYWY+Y+3NYSY+3NYSYS3NYSYSYSYSYSYWYSYSYS3M3NYSYSY*Y*Y/Y/3MY/YT3MYTYT3MY/YTYTYTYTY+Y+Y/Y/YT3LY/Y/3LY/3L3M3NYTYTYTY*Y*Y/Y/Y/3MY/Y/3MY/YT3MYTYTYTY/YTYTY/Y/YT3LY/Y/3LY/YTYTYT3LY*3LY*3MY*3MY*Y*Y9Y9Y*Y93LWZWZWZWZX/3LX/Y9X/X/X/X/X/Y93KX/X/3K3LX/X/3LX/Y9Y9Y93LX#X#Y9X#WZWZWZVWVWYGVW3JYGYGYGVWX/X/3IVW3IVWX#X#3IVWX#X#VWVW3IVWX/X/VWX/3HVWX/X#VWX#X#X#VWVW3GVWVWVW3GVWWSWSVS3GWSWS3GWSVSVSX#X#VSVS3FVSWSWS3FWSVSWSVS3F3FWSVSWSVS3FVSVSWS3FWS3GWSWSVS3GWSWS3GWSVS3GVSVS3GWSVSVSVNVNWP3G3GVNVNVNVNVN3G3H3HWY3IWYVNVN3I3JW#W#3J3KW#W#3KW#3K3LW#W#VNVN3L3M3MWYWYWYVNWYWYWY3L3MW,W,WYWY3M3N3N3OWYWY3O3PW,W,WYW,3PW,WYWYWY3PW,3PW,W,3PW,W,W,WYWY3P3QWY3QWYWYW,3Q3R3S3SWYWY3T3T3UW#W#3UW,W#W#W#W#W,W,W,3T3U3V3V3WW#3XW,W,3XW,WSW,3XW,3XW,WSWSW,W,3XW,3XWYWYWY3X3YWYWYWYWY3YWYWYWYWY3Y3YW#WY3ZW#W#3Z4#4#4$4%W#4%4&W#W#W#4&W#W#4&4'W#W#VNVN4'4(VNVN4(4)WUWUWU4)WUWUWUWM4(4)4*WMWU4*WUWM4*WMWMWMWM4*WTWTWMWMWM4*4*4+WTWT4+WTWTWTWU4+WUWUWUWM4+WM4+WUWMWMWUWU4+X+WMWMWM4+WT4+WTWT4+WTWTWT4+UYU>UYU>UYU>4+4+4,U>UYUYUYU>UYU>U>V:V:U>U>4*4+U>U>V:V:4*4+V:V:4+4,4-UY4-TTTTTTUYTTUYTT4,TTUYTT4,U/U/U/4,U/U/U/UU4,UUUU4,TT4-TT4-TLTLTLTL4-TLTLTL4-TLU:4-UPU:UPTL4-TLUPTLUP4-UPUPUP4-UPUPUP4-4.TLUP4.UP4.UPTLUPYBYB4.YBYBYBS:S:YBYBYB4-YB4-S:S:S:S:S:4-4-4.S:4/S0S04/S04/S0S:S0S0T'S0S0S0T'S0T'S0S0S0T'S0T'T'T'T'T&T'T&4*Y9Y9Y9Y9Y94*Y9Y*4*Y*Y*Y*Y9Y*XVY9Y9Y94)W-W-4)W-4)4*WFWFY9Y9W(W(Y9Y94)Y9Y9Y9Y94)W(4)W(W(Y9W(W(W(W(W(4(W(4(WFWFWFVZ4(VZVZ4(4)VZVZVZVZVZ4)VZVZ4)W(W6VZW6W6VZ4(W6W6W6W6W64(W6W64(4)W64)W64*VZ4*4+W(4+W(W6W(4+4,VO4-W(W(4-W(W6W6W.4-4-W6W6W6W6W6W6W/4,W/W/VOW6VOW64,Y9Y9W(W(4+Y9W(W(Y9Y9Y94+W(4+W(W(W(VU4+VUY9Y94+Y9Y9Y9W(4+Y9Y9VUVU4*VUVUVUY9Y9VU4*Y9Y94*VUX#X#4*X#VUX#VU4*X#X#VUVUX#X#VUX#4(X#VUX#4(X#X#X#VU4(VU4)4)X#4*X#X#X#VUX#4)X#VUVUX#X#VU4)VUX#VUVUVUX#VUVUVUX#VUX#VU4&4'VU4'X#4(X#X#VSX#X#VSVS4'4(VSVS4(4)4)4*X#VSVSVSVSW7VSVSW7W74(WS4)4*X#W7X#X#4)W,4*4+4+W7W7W7W7W74+W9W7W7W9W9W74*W9W9W9W9W7W9W7W7W74)4)4*W7W74*4+4,W9W7W9W9W94+W9W9W9W94+W9W9W94+W9W9W<W<4+W<W<W<W9W<4*W<4+W9W<W<4+W<W9W9W94+W<W<4+W<W9W9W94+W94+W9W<W9W<W<W<W9W<W<W<WTWTWTX%TLTL4(TLUEUEULUETMTMTM4'TM4'TM4(UETLUE4(UE4(UEUETLTL4(TLULUL4(UI4(4)UEUETLTLUE4)UIULUIULTLTL4(UETL4(UPUPS9S9T&S9S94'S9WQ4'WQWQWQ4'4(W@VU4(WQWQWQWQVV4(VV4(VVWQVVVVWNWNWNW+WEW+4'W+4'W+W+W+4'W+WE4'WEWEWE4'W+W+W+4'W+4(WEW7W74(W9W9W94(W94(W9X#W9W9W9W94(W9W<4(W<W<W<W<4(W<4(W<W<W<4(W<W<4(W:W<W:4(WUW:W:W:W:4(W<W<4(W<W)W<4(W<W<W<4(W<W<W)W)W<W)W)W<W)W)W<W<4&W)4&4'W)W)W)W)4'W)W<4'W<W<4'W)W<W)W<W<W)W)W<W<W)W)4%4&4'4(X-WUX-4(WUWU4(4)WUWU4)WUWUWU4)4*UFUF4*UIULUL4*UIUHTH4*TH4*THTHTHUHTHTHTHTHTHTA4)V5V<V54)4)4*4+4,V3V3V3T,SA4+SASZSZSZS=4+WQWQ4+WQW)W)W)X-4*X*VXVXX*X*VX4*X*X*4*VXX*X*4*4+VXX*4+X*WU4+4,WU4,W14-4.4.U*UIU*T:T:TI4.TQTQTITI4-TITDTIV#V#TITIS4S4S44,S=S=4,S4S44,S=S=S4S=S=S=S=S=S5S54*4+S.S.S-S.4+S.SMT$SMT$S@4*S@S@SKS@SKS@4)SXSXSXS@SX4)SXS@4)SXS@4)SUSUSUX-VXX-VXTDTDTD4(S-S-SVS-S.SM4'SM4'SM4(SMSMT$SMT$S.SMS.S.SMSM4&4'SM4'4(4)S.SMS.S.T$T$T$4(T$4(T$T$S3S3S34(S3S3S34(SFSFSOSFSO4'SOSGSGSG4'SG4'SGSOSGSOSOSOSGSGSGSG4&4&SW4'SWW>W>W4W4W>W>W4W>W>W>4%4&4&4'W4W4W?W$W?W?W$W?4&W$U#U#T-4&U#U#V(U#S7S7SNS7S7S7S7SNSNSJSNSJSJ3ZSJSJ3ZSJ4#4$SJSJSNSN4#4$4%SJ4%SG4&SGSGSGSG4&SO4&4'SISO4'SO4(SI4(SISI4(S8SOS8SGSG4(SISISISI4(4(S8S84)S>4)S>S>SGSWSGSWSWSWS>4(SWSW4(SW4(SWS>SWSWS>S>S>WLWC4'WCUBV$V$V$V$4&V$TPV.T-V.V.V(V(4%4&V(V(4&4'4'4(T=T=T=4(T=T=V(U#V(V(U#U#U#4'V(V(U@4'V(V(4'V(SNSOSNSO4&SOSPSO4&SOSPSPSOSOSPSOSPSPSP4%SOSOSPSOS>S>SP4$SP4$SPSPS6S64$S64$S6SR4%SR4%SRSRS6S64%S6U=4%V,V,4%T1T1T5U<U<U<4%TGTG4%TGTPTPTP4%TGTGV.V.TG4$TGV.4$SPSDSDSESDSESES64#SRS6SD4#SDSDSDSD4#SE4#T1T5T5T04#T0T0T8T8T/T8T8T0T8T0T/3YT/T/3YT0T/T0T0T0T03YT;T;T03YT03YT0T03YT;T;T;3YTGT;TG3Y3ZT;4#4#V.V.V.4#V.V.V.T;4#T0T04#V.V.V.SCSC4#SESCSCSC4#SCSESESESESE3Z4#SE4#SE4$SESTSTSTX;X;X;XD3Z4#XDXDT3T34#T34#4$T5T54$T3T54%T3T34%T3T74%T7T7T0T04%T0T7T0T7T04$4%T.T.4%T0T.T.T04%T.T.4%V.4&UMT0UMT0UMV.V.4%4&T0UM4&UM4&UMUMUMT0T0T04&T04&T0T04&T0T.4'T0T0T0UMUMUM4&UMV.V.4&4'V.V.4'V.T0T0T.T.4&UMT.UM4&SSSESSX<X<XDX<XDXD4%XDX:XBX:XBXB4$XBXBXDXD4$4%4%XBXBXBT54%T5T5X:XBX:XB4$4%T4T44%4&T4T4T44&T4T4YU4&YUYU4&4'YU4(Y7Y74(Y74(4)Y7Y7YHYGYGYGYHYHYGYGYHYHYGYGX.4&X.X.4&X.X&X&X.X.4&4'X.X.X&X&X.X.X&4&Y44&Y@Y@Y44&Y@Y@Y44&Y@Y@Y@Y@4&Y@Y44&Y4Y4Y@Y@4&Y@Y'4&Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,4$Y'Y,Y,Y'Y,4$Y,4$Y,Y,Y,YHYUYUYUYHYH4#4$Y3Y3Y34$Y,4$Y,Y,4$Y,Y,Y,4$YUY34%Y3YUY3Y3Y,Z&Y,Z&Y,Y,Y,4#4#Z&4$Z&4$Z&Y,Y,Z&Z&4$Z&4$4%Z$Z$YLYLZ$Z$YLYLZ$Z$YL4#YLYL4#YV4$YVYVYGYVYVYGYG4#YGYEYGYEYEY=Y=YGYGY=Y=YGYGY=YNY=Y=YGYGYGYXYXYXYGYXYXYNYXYXYNYN3TYNYGY=YGYGY=Y=YGYGYNYGYGYGYGYGYGYNYXYNYNYNYNX.3OX.YN3OYNX.YNYNYN3OYNYN3O3PYNYN3P3Q3QX.YNYNX.X.3QX.3QX.X.X.YG3QYGYGYG3QYG3RYGYG3RX.3RX.X.X.3R3SYGYG3SYGX.X.3SX.WOWOX.3SX.X.3S3TX&X&3T3UW=W=W=W=W=3U3UW3W3W3V=V=V=3UV=V=3UV=V=V=V=3UV=V=3UV=V=U>V=U>V=V=3T3UU>TETETEUT3TUTUTV?V?3T3UUGUG3UUGV;V9V;3UV93U3VV;UGUGTLTLTUTUUGUG3TUG3UTLTL3UTLTL3UTU3VTLV;V;TUTUV;V;3UTUUKUK3U3VUPUPUP3VUK3VUPUPU-U$U$U$Y6Y6Y6Y:Y@Y@Y@YIYIY.YI3SYI3SYIYIYIY.YIYIY.Y'Y.Y.Y'Y'3QY'Y.Y'Y.Y.3PY.Y.Y.Y.3P3Q3R3R3SYI3TY.3TYIYIY.Y.3T3UYI3UYIYI3UY'Y.Y.3U3VY.Y.Y'Y'3V3W3WY'Y.Y.3WY'Y.3XY'Y'3X3Y3Y3ZY.Y.3Z4#Y.Y.Y'Y'Y'4#4#4$Y'4%Y'Y'4%4&Y'Y'4&Y,Y,Y,4&Y,Y'4&Y'Y'Y'4&Y'Y'4&4'4(Y,4(Y,Y,Y,4(Y,Y,Y,Y'4(4)4*Y'Y'4*4+Y'4+Y'4,4,4-4.4/4/Y,40Y,Y.40414242Y,Y'434344Y.Y.Y'44Y.Y.Y,Y,44Y,YI44YIYI4445YIYI4546YIY.Y.Y.YIYIY.YAY.45YAYA45YAY.45464747YA4849YAYA49YA49Y,4:Y,Y,Y,4:4;YI4;YIYI4;4<YIYI4<Y,YIYIYIYIYIZ)Z)Z)Z)4;YIYIYI4;YI4;YIYI4;4<4=4>4>YIYIYIZ)Z)4>4?Z)Z)YIYIYI4>YMYMYIYMYI4>4>YMYMYMYMYM4>YMYI4>4?YMYIYMYMYM4>YMYMYMY,Y,YIYIY,Y,YI4=Y,Y,4=Y,YI4=4>4?4?Y,Y,Y,4?Z&4@Z&Y,4@Y,4AY,4A4BZ&Y,4BY,Y,Y,Y,YKYKY,YK4AYKY,Y,Y,4A4A4BYKYK4BYKYKYK4BY,4CY,Y,4C4D4EY,Y,Y,YKYKYKY,Y,Y,YKYKYK4B4C4DY,4DY,Y,Y,YIY,4DY,4DY,4EY,4EY,4F4GY,Y,4GY,4G4HZ)Z)4H4IZ)Z)Y,Y,Y,4IY,Y,4IY,4IZ)Z)Z)Z)4IZ)4J4J4KZ)4LY,Y,4LZ)Y,Y,4LZ)Y,Y,4LY,Z)4LZ)Z)4LZ#4MZ#Z)4MZ)4NZ#Z#4NYMZ)Z)Z)YM4MYMYMYM4M4NYMZ)Z)4N4OYM4O4PYMYMZ)4PZ)Z)4PYMYMYM4PZ)YMYMYMZ)YMYMYMYM4OYM4O4PYMYMY,4PY,4Q4Q4RZ#Z#Z#Z#4RZ#Y,Z#Z#Z#4QZ#Y,Y,Y,Y,4Q4RY,Y,Y,4RZ#Z#YMY?Z#Z#Y?4QYM4QYM4RY?Y?4RY?Z#Z#4RZ#YM4RYMYMYMYMYMZ'YMYMZ'4Q4QY?4R4SYM4SY?Y?4SY?Y?Y?Z&Z&YKYKYKYK4RYKYKYK4R4SYKYK4SYKZ&Z&4S4TZ&Z&YK4TZ&Z&4T4UYK4UYKYK4UZ&4V4WYKYKYK4W4WYK4X4YYKYKY-Y-YKY-4XY-Z&Z&Y-Y-Z#4WZ#Z#4W4X4Y4Z4ZZ#Y0Y0Z#4Z5#Y0Z#Y0Y0Y0Z#Y0Y0Y04YY-Z#Y-4YY-Z#4ZZ#4ZZ#5#5#5$Y0Y0Y-Y-Y05$5$5%Y0Y0Y-5%Y0Y05%5&Y0Y05&5'Y0Y05'5(Y0Y0Z#Z#Z#5(Z#Y?5(Y?Y?Y0Y?Y?Y?Y?Y?Z'Y0Y05&Y05&Y0Z'Z'Y?5&Z'Z'Y0Y05&Y0Z'5&Z'YP5&Z'YPYPZ'Z'YP5&Y0Y05&Y0Y-Y-5&Y-Y-Y0Y0Y0Y-Y-5%Y05%5&Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-5$Y-5%5%YYYYYY5%5&5'Y0YYYY5'YYY0Y/5'Y/Y05'Y0Y/Y0Y0Y0Y+Y0Y0Y05&5&Y+Y+Y+Y0Y05&Y0Y0Y05&Y0Y+Y/Y+5&Y/Y/5&Y/Z'Z'Z'Y+Y05%Y0Y0Y0Y/Y/Y/Y+Y/5$Y/Z&YEZ&Z&YEYEZ&5#YEYE5#5$Z&Z&Z&Y<Y0YY5#Y/Y/5#Y/Y/5#YYY/Y/5#5$Y2Y2Y2Y2Y/5$Y25$Y25%Y2Y<Y2Y2Y2Y<Y2Y<Y2Y<Y2Y2Y2Y<4Z5#Y25#Y2Y2Y25#Y25$Y25$Y2Y2Y2Y2Y25$Y/5$Y/Y/Y<Y<Y<5$Y<Y<5$Y/Y/5$Y/Y/Y<5$Y/Y/YEYEY<Y<YGYG5#YGY<5#Y<Y<5#5$Y<Y<Y<YRYRYR5#5$Z(Z(5$5%Z(Z(5%Z(Z(Z(5%YGY<YGYGYGZ%Z%YGYG5$YGYGYGYQYQYGYGYQYQYGYGYQYG4YZ%Z%Z%Y<Y<YGYGY<YGYGYG4WYG4X4YY<Y<Y<4YY<YG4YYGYGYG4YYGYGYGYQYQYQYQ4XYQYNX.X.X.Z%Z%Y)Y)4VY)Y)Y)X.4VWJWJX.X.X.4VVTVT4V4WVTVTVQVQVTVTVQ4VVTVT4VVQX(X(4VX(4VX(X(X(X'4VX'X'4VX'X'X'WU4VWUWU4V4WWUWUW%W%4W4XWUX,WU4XX,X,4XX,WUX+X+X+U>TT4WTT4WTTU>TTTUTU4WTUTUTUTU4WTL4WTLTLTUTU4WTUTUTU4WTUTU4W4XV;4X4YV;V;TUTUTU4YTUTU4Y4Z4ZV;TUV;TUTU4ZUPTLU0TLU0TLU0TLU0TLU0TLU0TLU5TL4W4WU5U5TLTLU4TL4WTL4WTLTLUPUP4WUP4WUPUPUPU9U9U9UPU94VU9U9UPUP4VUPU9U9UPUPU9UPUPUPV;UPV;4T4TV;4UV;4UV;4VV;V;4VV;V;UPUP4VUPV;V;UPUP4UUPUPUPV;V;V;4UV;V;4UUP4UUPUPUPYBYB4UY>4UY>Y>Y>YBYBY>Y>YBYBY>Y>YBYB4SYB4SYBYBYBYBYI4SYI4S4TYBYBYBYB4TYBY(4TY(Y(4TYIYBYBYIYI4T4U4UYIYBYBYBYIYBYBYIYI4T4UYIYI4U4VYI4VYIYIYMYMYIYIYM4UYIYIYI4UYIYIYMYMYIYIYIYM4TYM4TYMYIYMYIYIYIYMYM4SYM4T4TYM4UYMYPYPZ'YPYPYPZ'YP4SYPZ'YPZ'YPZ'Z'YPYP4RYPZ'4RZ'Z'Z'YPZ'4RZ'Y+YPYPYPYPYP4QY+Y+YPY+4PY+Y+Y+YP4PYPY+Y+Y+Y+YTY+YTY+Y+YJYJYJYWYJY+Y+Y+YWY+YWYWY+Y+YWY+YJYWYJYWYJYWYJYWYWYS4H4IY+Y+YS4IY+YSYSYSYSY+YSYSYSYSY*Y*YSYSY*Y*4EY/4F4GYT4GYTY/4GY/Y/Y/Y/Y/YT4GY/Y/4GY/Y/Y/Y/4GY/Y/4GYTY/4GYTYTY/Y/Y/4GY/Y/4GY/YT4GYTYTY/Y/YTYTY/Y/YTYTYTY9Y9Y94DY94EY9Y*Y9Y9Y9Y*4DY*4EYGYGYG4EX/X/Y9X/Y94DY9Y94DY9Y9Y9Y9X/Y9Y9X/X/4CX/Y9X#4C4DVWYGVWVWVWVW4CVWVWVW4C4D4DVWX#X#VWVW4D4EX/VW4EVWVWVWX#X#VWVW4DVW4DWSVSVSWSWSVSVSVSVS4CVS4CWS4DWSWSWSVSWS4CWSVSWSVSWSVS4CWSWSWSWYWS4BWSWSWSWSVSVSWSWSVS4AVS4AVS4BWSWS4BWSVNVN4B4CWPVNVNVNVN4BVN4C4C4DWYWYVNVNVN4D4DWYWYWYVNVNW#W#VNVNW#W#W#W#W#4BW#W#4B4CW#W#WY4CW#4CW#W#VNVN4C4DVNWYVNWY4CWYWYWY4CWYWYWYWYWYWY4CWYWY4CWY4C4DW,W,4D4EW,W,WYWY4E4FWY4FW,W,4F4GW,W,4G4HW,W,WYW,W,W,WYWYWYW,WY4FW,W,4FW,W,W,WYW,W,W,WYWYW,WY4D4EWYWYW,4E4F4GW,WY4G4HWYWY4HWY4HWYWYWYWYWY4H4IW,W,W,4IW,W,4I4JW,W,W#W#WYWY4I4JW#4JW#W#4JW#W#W#4JWY4KW#4KW#4LW#4L4M4N4OW,W,WSWSWSW,WSW,4M4NWSWSW,W,W,4NW#4NWYWYWY4NWYWYW#4N4O4PWYWY4PWYWY4P4QW#W#W#W#4Q4Q4RWYWYW#W#4R4SW#W#4S4TWYWYWY4TWYWY4TWY4TWYW#W#4T4U4V4W4W4XW#W#4X4YW#4ZWY4Z5#W#5#W#W#W#W#5#W#W#5#W#W#W#W#5#W#W#5#W#W#W#WUWU5#5$WUWUWU5$WUWM5$WMWU5$WMWMWU5$WUWMWUWU5$WMWMWMWT5$WM5$WTWTWM5$5%5&WMWMWTWTWMWT5%5&WUX+WU5&WU5&WMWMWUWU5&WMWUWUWUX+WMWT5%WTWM5%WTWTWM5%5&WTU>UYU>UYUYUY5%UYU>5%U>U>5%UYUYUY5%5&V:V:5&V:V:V:U>U>V:5&U>U>5&5'U>5'V:UY5'UYUYUY5'UYU/U/5'5(5)5*UYTTUYTT5)5*U/U/5*5+U/U/5+5,UU5-TTTT5-TT5-TTUUUU5-TLTTTLUPUPTLUPTLTLU:U:U:UPU:U:TL5*UPUPTLUPUPUPTLUP5)UPTLUPTLTLUPUP5(UPTLTLTL5(TL5(TLTL5(YBY>YBYBYB5(YBYBS:5(S:5(S:S:S:S:S0S:5(S0S05(S0S:S0S:S:S0S05'S05'S0S:S0Y9Y9Y*Y*Y9Y9Y*Y*Y*Y9Y*Y*Y9Y9Y9Y*W-W-5#5$WF5$WFWFW-W-WFWFY9Y95#W(Y95#W(W(Y9Y9W(Y94ZW(W(W(W-4ZWFWF4Z5#VZVZ5#5$VZVZ5$5%VZW(VZVZVZ5%VZVZ5%W(VZ5%VZW6W6W6W6W/5$5%W/W/W6W6W6VOW6W/5$W/W6W/W6W6VZW(VZW(VZVZ4Z5#W65#W6W6W6W(VOVOW(W(VO4ZVO4ZVOVO4Z5#VOVO5#W65$W6W.5$S9W6W6W/5$W/5$VO5%VOY9Y9Y9W(Y9Y9W(5$W(W(W(5$W(5$VUVUY9Y95$Y9Y95$VUVUW(VUW(VUVU5#VUVU5#VUVUVU5#X#5$X#X#X#VUX#VUX#VUX#VUVU4Z5#VUVUVU5#VU5#VUVUVUX#5#X#5#X#VUX#VUVUVU5#5#5$VUVU5$5%VU5&VUVU5&VUX#X#5&X#VUX#VU5&VSVSX#5&VSVS5&X#VSVSX#5&VSVS5&VSX#5&X#X#5&VSVSVSWSWSW7WSW75%W7W75%W7W7W7W,W,5%W,W75%W7W75%W,5&W7W7W75&W75&W95'W95'W95(W9W7W9W7W9W75'W7W75'W9W7W9W7W7W75'W7W7W75'W75'5(5)5)W95*W9W9W<W95*W95*W9W9W9W<5*W<W9W<W9W<W9W<W9W95(W<W9W<W95(W95)W<W<5)W<W9W95)5*5*W<W9W<TLTL5*5+TMTMULTMULUL5*UL5*ULTMUL5*TL5+TL5+TL5,5-TLTLUETLUI5,UIUI5,TLUE5-TLTL5-TLUE5-UE5.TLTL5.UETL5.UPUPS9S9S9WQ5-WQWQWQVU5-W@VU5-X#VUVUW@5-WQWQWQWQWQVVWQVVWQVVW+WEW+WEW+WEW+5*W+5*W+5+5+WE5,WEWEWE5,W+5,W+W+W+W+W+W+WEX#W9X#W9W9W95*W95*W9X#X#W9W9W9W<W9W9W9W<W<W<W<5(W<5(W<W:W<W:W<5(W:W:5(W:WUWUW:5(5(5)W<W<W<W<W)W<W<W<W<W)W)W)W<W)W<W<W)W<W<W<W)W)W<W)W)W)W)W)W<W<W<4ZW<W<4ZW)W<W)W)W)W)4Z4ZW<5#W<W)5#W)W)5#W<5$W<WUWU5$5%WUWU5%5&WUWU5&5'WUWU5'WUWUWU5'WX5'WUWXWUT>T>T>5'5'5(UIUIUHTHUHTHUHTHUHTH5&THTATAV<V<V5V5T+T+T+5%T+T+5%UCUCU?U?U?5$V1V1V1SASZ5$SZSZSZS=S=WQWQWQVMX-X-4ZX-X*4ZVX5#X*5#5$VXVX5$VX5%X*X*5%X*VX5%VXVXWU5%WUWU5%5&5'5(5(W1W1W1W1W1WUWUW1W1WUWUUIUIUIU*T:T:TITITD5$TD5%S4S45%S4S=S4S4S4S45$S4S4T#T#S.S.T#T#S.S.S-S-S-S.S@4YS@S@4YSX4ZSXS@4ZS@S@4Z5#S@S@S?S?S?SUTDTI4ZTIS.SMS.SMS.SMS.SMS.SMS.S.4WSMS.4XSMSM4XSM4XT$SMT$SM4XSMSM4XT$T$T$T$4XT$4YT$4YT$4Z4Z5#SJSJS3S35#5$SO5$SOSGSGSG5$SGSO5$SOSOSG5$SGSWSGSGSGSW5#SWSWSWW>W>5#5$W>W>5$5%5%WVWVWVWVWV5%5&W$5&W?W?5&U#5'U#SJS75'S7SNSNSJSJSJSJSNSJSJSJSJSNS75$S75%5%5&SJSJS7SJSJSJSOSG5%5&5&SGSOSGSGSGSISGSOSO5%SISO5%SOSISOSI5%SI5%SISOSOSISISIS8SO5$SOS8SGSGSG5$SIS>SIS>5#5$S8S8S85$S8S85$S>S>S>SWSWS>5$SWSW5$SWS>S>5$SWWLWCWCWCV$5#V$TPT=V(V(V(V(V(4ZV(T=V(T=4ZV(U@U@U@V(4YT=T=4YT=T=T=4YU@T=T=U#V(V(V(V(V(U@U@V(V(U@U@4VSOSPSPSOSPSPSPSP4USPSPS>S>SP4U4US6SPSPS6S64US64US6SRS6S6S6SR4USR4USRSR4US64V4WU=V,V,V,4VT1T1T1U<4VTGTGTGTG4VTGTPTP4VTPTGTGTG4V4VSPSDSPS6S6S64VSDSDSD4V4VSESESET1T1T5T1T0T;T0T0T/4TT/T/4TT0T/T0T0T0T04TT0T;T04TT04TT0T04TT;4UT;4UTGT;TGT;T;T;4UV.V.4UV.4UV.T0T0T04UT0V.T0T04U4VT;T;4V4WT04WV.V.SCSCSCSESCSCSC4VSE4VSSSS4VSSSSSSSESE4VSS4VSSSSSSX;4VXDXD4VXDXDXDT3T3T5T3T54UT5T5T3T34UT5T3T3T54U4U4VT5T5T3T34VT5T0T0T7T0T0T04U4VT04VT0T.4V4WT.4XT0T0T.T.4WT.T.T.T0T04WV.4WUMUMUMUMV.UM4WV.V.4WV.T0T0T04W4WUMT0UMT04WT0T0T04WT04XT0T04XT0T0T0T.4XUMUM4XUMV.V.V.4XV.V.4XV.4XUMUMUMUMUMT.4XSESSSE4XXDXD4X4YXB4YXBXBXDXD4Y4ZXDXD4ZXBXB4ZXBXB4ZT.T5T54Z5#T4T4T/T/T4T4T/4ZT4T44ZT/T4T4T/4ZT4T4YUY7YU4ZY7Y7YUYUY7Y74YY7YU4YYUYU4YY7YUYUYUYUYUY7YU4XY7Y7X.X.X.4XX.X.4X4YX&4YX&X&4YX&X&X&4Y4ZX&X&Y4Y44Z5#5#5$5%Y@5%5&Y@Y@Y@Y@5&5'5'Y4Y4Y4Y@Y@5'5(Y,Y,5(Y,Y'Y'Y,Y,5'Y,5(Y,5(Y,5)Y,YHYH5)5*YHYH5*YHY3Y3Y,Y,Y35)Y,Y,5)Y,Y,Y,YUYUY3YUY3YUY35(Y,Y,Y,Z&Y,Z&Y,Z&5&Z&Z&Z&Y,Z&Y,5&Y,5&Y,Z&YLYLZ$Z$YLYLZ$5%YV5%YLYLYVYV5%YV5%YLYLYL5%5&5'YG5'5(YXYNYNX.X.X.YN5'YNX.YNYNYN5'YNYN5'5(YNYN5(YNYNYN5(5)5)X.5*X.X.X.YNYNX.X.5)X.YNYN5)X.5)5*YGYGYGYGYG5*YG5*YGX.YGYGYG5*5*X.X.X.YG5*X.X.YGYGX.YGYGYGX.5)X.X.WO5)X.X.X.X&5(5)X&X&5)X&X&X&WGWGW=5)5)WGW=W=W35)W3W3W=W=W=W3V=V=V=5(V=V=5(V=V=V=V=5(V=V=5(5)V=V=V=5)V=V=5)V=5)TLUT5*5*5+V?TL5+TLTLTL5+UG5,5-5-V9V;5.5.V;V;V;5.5/V;V;UGUG5/UG5/50TLTLTLUGTL50UGUG50TU50TLTLTL5051TUTUUKUKUK51UKUK51UKUPUKUPUKUKUK50UKY.Y.YI50YI50YIYIY.Y'Y.50Y'Y'Y.Y.Y.Y.5/505051YIYI51YIYIYIY.Y.5152Y.Y.52Y.5253YI54Y.Y.Y.545455YIYI55Y.56Y.56Y.YIYIY'Y'56Y'Y'Y'56575758Y.Y.Y'Y'5859Y'Y.595:Y'Y'Y.Y'Y'Y'Y'Y.Y.Y'Y.Y.57Y.Y.Y.Y.Y'Y.57Y.57Y.Y.Y'Y'57Y.Y'57Y.Y.57Y'5859Y'Y'Y,Y,Y'58Y'Y'Y,Y,Y'Y,Y'57Y'Y'Y'57Y,Y,5758Y,Y,Y'Y'Y,Y,Y,Y,57Y,Y'Y,Y'Y'Y,56Y'57Y'Y'Y'57Y'5758Y,Y'Y,Y,Y,Y,Y,57Y,57Y,Y,Y,Y'57Y'Y'5758Y,Y,58Y,Y,Y,58Y.Y.Y.Y'58Y.59Y'Y'Y'59Y'59Y'5:Y'5:Y'Y'Y,Y,5:Y,Y'Y'Y'5:Y,Y,5:Y,5:5;Y,Y,5;Y,5<Y,5<Y'5=Y'Y.5=5>5?5?Y'Y'Y'5?Y'5@5A5A5BY'5C5C5DY.5EY'Y'5EY'5E5FY'Y,Y,Y,Y.Y,Y.Y.YIYIY.Y.YI5DY.Y.5DY.Y.5DYIYIYIY.YIY.Y.YAY.5CYAYA5CYAY.Y.Y.5CYI5CYIYI5C5DYIYI5DYAYAYAYAYA5D5EYAYAYA5EYAYA5EYIYAYA5E5F5FY,YAY,YI5FYI5GY,Y,5GY,5GY,YIYI5G5H5IYI5I5JYIYIY,Y,5J5KZ)Z)YIYIYI5JZ)Z)Z)5JYIYI5J5K5LZ)5L5MYIYI5MZ)Z)5NZ)YI5N5O5O5PYIYIZ)Z)YIYIZ)Z)YIYIYIYIYMYMYIYMYI5MZ)Z)YMYMYMYM5LYMYIYI5L5MYIYMYIYI5LYMYMYMY,5LYIYIY,Y,5LY,YI5L5M5NYIYI5NY,5NY,Y,Y,5NY,Y,Y,Y,Z&5NZ&5NZ&5OZ&Y,Z&5OZ&5OZ&Y,Y,Y,5OY,5PY,Y,Y,Z&5OZ&5PZ&5PYKYKYKY,Y,Y,5PY,Y,YKYKY,Y,YKYKY,YKYKYKY,Y,5MY,YKY,YKYKY,5L5MZ&Y,5MY,5N5NZ&Z&Z&YIYIYI5NYI5N5OY,YI5OYI5P5P5Q5RY,YIYIYI5RYI5RYIYIYIY,5RY,5RY,YIY,5RY,YI5SY,Y,5SY,Y,Y,Y,5S5SZ)Z)Z)5S5TZ)Z)5T5UZ)Z)Z)5UZ)Z)Y,Y,Y,5UY,Y,5UY,5U5VZ)Z)Z)Y,Z)Z)5UZ)Z)Z)Y,Y,5UY,Y,Y,5UY,Z)Y,Z)Z)Y,Z)Z)Z)5S5TZ)Z)Y,Y,Z)Y,Y,Y,Z)5SY,Y,Z#Z#5RZ#5SZ#Z)Z#Z)5S5SZ#5TYZZ#Z#Z#YMZ)Z)Z)YMZ)Z)YMYMZ)Z)YMZ)Z)Z)Z)YMZ)Z)Z)5O5OZ)5P5QZ)YM5QYMZ)Z)Z)5Q5QYM5RYMYM5RYMYMZ)5RYMYMZ)Z)Z)5RZ)YM5RYMY,Y,Y,5R5RZ#Z#Z#Y,Y,Z#Z#5QZ#Z#Z#Y,Z#Y,5QY,5QY,Z#Y,Y,Y,5QY,Y,5QZ#Y,Y,Y,Z#Y?Z#Y?Y?YMYMYMY?5NY?5O5PY?Y?5PY?Z#Z#Y?Y?YMYMYM5OY?Y?Z'5O5OY?Y?Y?5O5PYMYMY?Y?5P5QYMYM5QYM5QY?5R5SYKYKZ#YKYKYKYKZ#YKYKZ#5QYKYK5QYKZ&Z&YKYKZ&YKYKYKZ&Z&YK5OZ&Z&5O5PZ&Z&5PZ&YK5PYKYK5PZ&YK5QYK5QYKYKZ&Z&5QZ&YKYKYKY-YKYKYK5P5PY-Y-Y-5PY-Y-Y-YKY-Y-Y-YK5OZ#Z#Z#Z#Z#5OZ#Z#5OY0Z#Y0Z#Z#Y0Y0Z#Z#Z#Z#5MZ#Z#Z#5MZ#Z#5MY0Y05MYKZ#YKZ#5MZ#5N5N5OZ#5PZ#5PZ#5QZ#5QZ#Y05QY-Y0Y0Y-Y-Y0Y0Y-Y-Y05PY05PY0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y05NY-Y-5N5OY-Y-5O5PY-5PY0Y05PY-Y0Y05P5QY0Y0Z#5QY?Y?Z#5Q5R5SY0Y05SY05SY0Y?Y?Y?Y?Y?5SY0Y05SY0Z'Z'5S5TZ'Z'5TZ'5TZ'YP5UY0Y05UY0Y-Y-5U5VY05VY0Y0Y-Y0Y0Y05UY0Y0Y0Y-Y-Y-5UY-YYYYYYY-YY5TYYY-Y-Y-5TYYYY5T5U5U5VY0Y0YYYYY0YYY0Y/Y/Y/Y0Y/Y/Y/Y0Y0Y05SY05SY+Y+Y0Y05SY0Y0Y0Y05SY+Y/Y+Y+Y/Y/5R5SY05SY0Y/Y+Y+Y+Y/5RYEZ&5SY<5SY<Y<5SY<Y<Y<Y0Y/Y/Y/YYYYY/5RYYYY5RY/Y<Y<Y2Y2Y<Y<5QY<5QY2Y/Y2Y<Y<Y2Y2Y25PY2Y2Y2Y<Y2Y2Y<Y<Y2Y<5NY<5OY<Y<Y<Y25OY25OY25PY25PY2Y<Y2Y2Y<Y<5OY<5PY<Y<5PY<Y/5PY<Y/Y/5PY/Y/Y/Y<5PY/Y/YGYGY<5P5PYGY<YGYGYGY<Y<YGYGY<Y<Y<Y<Z(Z(Y<5MZ(Z(5MZ(Z(Z(5M5NZ(Z(Y<Y<Z(Z(YGYG5M5NYGYGZ%Z%YQZ%Z%Z%YGYGY<YGY<5K5L5MYGYG5MYGY<YGYGYGY<YG5LYGYGYGYG5LYQYQZ%Z%Z%Z%5KY)X.X.WJWJX.X.VRVRVTVTVQVQVTVTVQVQVT5GVQVQ5GVQVQVQVNX(VN5G5G5HX(X(5HW3X'X'W35H5I5JW%W%WUWUW%W%WU5IW%W%5IW%WUW%WUWUW%W%WUWUWU5GWUWU5G5HWUWUU>U>U>5H5H5IU>U>TUTU5I5JTUTU5J5KTL5KTL5LTUTU5L5MTUTU5M5NTUTU5N5OTU5OTU5PTUTU5PV;TUV;V;V;TUTUTU5OTUTU5O5PTUTU5P5QTU5QTU5RTUTU5RUPTLU55RU5TLU5U5U5TLU4TLU4TL5PTLTLU0UP5PUP5PUPU0UPU9UPU95P5PUPU9U95PUP5QUPTUTUTU5QTU5Q5RV;5RV;5SV;5SV;V;V;5SUPV;V;5SUPV;5TV;UPUPUPV;V;V;5SV;UP5SUPUP5SUPUP5S5TY>Y>YB5T5UY>Y>Y>Y>5U5UYBYBYBYBYBYB5UYB5UYBYB5UYIYBYBY>YB5UYBY(5UY(Y(YIYIY(Y(YI5T5U5VYIYI5VYIYB5VYBYBYIYI5V5WYIYIYBYBYIYI5V5WYIYI5WYIYIYMYIYMYMYM5VYMYIYI5V5WYIYM5WYM5WYMYIYMYMYMYM5WYM5WYMYMYMYM5W5X5X5YYMYM5Y5ZZ'6#6#YPZ'6$6$YPZ'Z'6$YJZ'6%YPYPYP6%YPYPYPY+YPY+YPY+YW6#YW6$6$YSYSYSY+Y+YSYSY/Y/6#Y/Y+6#Y+Y+6#6$Y+Y+YTYT6$Y/YTY/Y/Y/YTY/YTYTY/Y/5Z6#Y/Y/6#6$6$YTYTYT6$YTYTYTY/Y/Y/6$Y/Y/YT6$6$YTYTYT6$Y96%Y9Y*6%Y*6&Y*Y*Y*Y9Y*Y9Y*Y9YGWZYGWZX/X/Y9Y9X/X/Y9Y9X/X/Y9X/Y9Y95X5YX#X#5YX#VWVW5YVWVWVWX#X#5XVWX#X#X#5XX#X#VWVWX#X#VWVW5W5XX/X/5XVWVWVW5X5YWSWSVSVSX#VSX#X#5WWSVSVSVSVSVSWS5VWS5WWSVSWSVSVSWSWS5VW,5VWSVS5WWSWS5WWSVS5WVSVS5WWSVSVSWP5WWPWPVNVNWP5WVNVNVN5WWY5WWYWY5W5X5YWY5Y5ZWYWYVNWYWYWY5Y5ZWYWYW#W#W#5ZW#W#5Z6#6#WYWYWY6#W#WYW#VNVN6#6$W#6$W#W#VNVNW#W#6#6$WYWYVNVNWYWYWYWYWY6#WYWY6#W,W,6#W,W,WYWYW,W,WYWYW,W,WYWYW,W,WY5XWY5Y5YW,W,W,WYWYWY5YWYWY5YWYWYWYW,5YWY5Y5Z6#6#W,6$W,WYWYWY6$WYWYW,W,W#W#WY6#W#W#6#WYW,W,W,6#W,6#W,WY6#6$WYWYW,WYW,W,WYWY6#6$WYWY6$WY6$WYWYWYWYWYWY6$WYWYWY6$W,W,W,W#W,W,W#W#5Z6#W#W#W,6#W,W,6#6$6%W#W#W,W#6%W,W,6%6&WYWY6&W,6&W#W#W#6&W#6'W#6'W#WYW#WYWYW#6'W#W#6'W#W#6'W#W#6'W#W#W#WS6'WSWS6'W,WSWSW,6'W7W7W#6'W#WY6'W#WYW#W#W#6'6(WY6(WYWY6(6)WYWYWYWY6)WYWYWYWYW#WYWY6(6)W#W#6)6*WY6*WYWYW#W#6*W#W#6*WYWY6*W#WYWYW#W#6*6+W#W#WYWYWYWYWYW#WYWYW#WYWYWYW#6(WYWYWY6(WYWY6(6)WY6)6*6+6+W#W#W#6+6,W#W#6,W#W#W#6,WYW#6-6-WY6.W#W#6.W#W#WYWYW#W#6-W#W#W#6-6.W#W#W#6.W#W#6.6/W#W#VNVN6/60VNW#60W#WU60WUWM60WUWMWMWU6061WM61WMWMWM61WM62WMWUWMWUWMWU61WMWM61WMWT6262WT63WTWMWMWM63WM63WTWT63WTWTWTWM63646565WTWTWTWUX+WUX+WUWUWU6464WMWMWMWM64WMWMWMWM64WMWMWM64WTWT64WTWT64UY65UYU>65U>6666UYUYUYU>66V:V:6667V:V:6768V:V:U>68V:V:6869V:V:696:V:V:U>U>6:6;U>UY6;UY6;UY6<6=TTTTUYUYTTTT6<TTUY6<TTTT6<TTTTTTUYUYU/6<UYUY6<6=UYUYU/6=UYUY6=U/TTTT6=6>TTTT6>TT6>6?UUUU6?TTUU6@UU6@UUUUTTTLTTTLTLUPTLUPTLUPTLUPUPUPUP6=TLTLTL6=TLUPTLUPY>6<Y>6=YBYBY5Y5S:S:6<6=S:S:S:6=S:6=S:S:S0S06=S0S:S0S:S:S:S0S:S0W-W-6;6<W-W-6<W-6<W-WFWF6<6=W(W(Y9Y9Y96=Y9Y96=Y96=W-WF6>W(W(VZVZ6=W(VZVZ6=W(VZVZW(W(VZVZVZW(VZ6<W(W(6<W(VZ6<6=W(VZW(W(W(VZW66<W6W6W6W/W/W6W6W/W66:W6W6W6VZVZVZW6VZW(W6W(6869W66:W(W(6:6;VO6;VOVOW(W(VOVOW(W(VOW(69W6W.W.69W6W6W669W6W.W6696:W/W/W6VO6:VO6:VOVOVOY9Y9W(6:W(W(W(6:W(6:VUVUY9Y96:W(Y9Y96:VUVU6:VUVU6:Y9VUVUX#X#VUX#VUX#VUX#VU68VUX#68X#X#X#VUVUVU68VU68VUVU68X#X#X#68X#VUX#VU68VU69X#X#69X#X#X#696:VU6:VUVUX#X#6:X#6:6;VUVUVUVUW@6;6;X#VU6<X#X#6<X#VSVSX#X#VSVSX#X#VS6:X#6;VSVS6;VSX#6;X#X#6;VSVSVS6;6<W76=WSWS6=W7W,W,W76=6=6>W76?W,W,6?W,6?6@W7W76@W76AW76AW96B6CW76CW7W7W7W7W76CW7W9W9W9W76BW7W76B6CW76DW7W7W7W96CW7W9W96CW9W9W9W7W7W76CW9W96CW9W9W96CW9W7W9W7W9W9W<W9W9W96AW9W9W9W96A6B6BW<W9W<W96BW9W9W9W96B6C6CW<W<W<W9W9W96CW9W96CW<W96CW9W<UUTLUUUUTLTL6BTLTMUL6BULULUL6BULTLTL6BTL6BTLUEUETL6BUE6CUE6CUEUE6CTL6DTLUIULUIUITLTLUE6C6CTLUEUETLTLUEUETLTL6B6CUE6CUEUE6CTLUEUE6CTL6DUPS9WQS9WQVU6CVUVU6CX#VUVUW@WQWQWQW+WEW+W+W+W+W+6AW+6AW+W+W+WE6AWE6A6BW+W+6B6CW+W+WE6CW+W+W9W9X#6CX#6CX#X#W<W<W<6CW<6CW<W:W:W:W<W<W:W:6BW:W:6BW:W:W:W:W<W:W:W:W:W<W)W)W<W<W)W)W<W<W)W)W)6>W)6>W)6?W)W<6?W<W)6?W)W)6?W<W<W<W)W<W)W<WUWUWUX-6=X-X-X-WUWUWU6=WUWU6=6>WUWU6>W1WUWUW1W1WUWUW1WUWU6<6=WXWUWUWXWXT>T>T>6<UI6<UIUI6<UIUIUI6<6=TATAT+6=UC6>UCUC6>UCU?UCU?V1SASZ6=SZX-6=6>VXX*X*6>6?VX6?VXX*X*X*6?VX6?6@6AVXX*X*VX6AVX6AVXVX6AX*6BX*VXVXVX6BWUWUWU6BWU6BWU6CWUWUWAWUWU6BWUWU6BWUWUWU6B6CW1W1TD6CTD6DTDTITDTIS4S4S=S=S46BS4S4SXSXS@6BSXSX6BSXS@SXS@SX6ASXS@S@S@6AS@S@6ASX6BSXTDTDTD6BS.SMS.6B6B6CS.S.6CSM6DSM6DT$SMSMSMSMSM6DSMSM6DT$T$SKT$6D6DSK6ESK6ESK6FSKSKSK6FSKS3S3S36FS3S36FSJS3S36F6G6GSO6HSO6HSGSGSGSGSGSO6H6HSG6I6JSGSGSG6JSGSWSWSWW>W>W>6IW>6I6J6K6KW>6L6MW>W>6MWVW>WV6MWVWVWVWVW4WVW4W4W46KW$6LW$U#U#T-U#T-6KT-T-SJ6KSJ6LS7S7S76LS7SJSJSJS7S76KSJS7S7SJSJSOSOSO6J6JSGSGSGSO6JSOSOSOSISISISO6ISOSISOSISO6ISO6ISOSI6IS86JS86JSISISIS8SIS8S8SI6ISIS8S86IS8S>6I6JS>S>S>SWS>6JSWSW6JSWS>6JS>S>6JTP6KTPV(V(V(6KT=V(T=6KV(V(V(6K6K6LT=T=6LU@T=T=6LSO6M6NSP6NSPSP6N6OSP6PSP6PSPSPS6S66PS6SRS6S6S6S6S6S66OS66O6PSRS6S6S66P6PSRSRSRSRS6SRSR6O6PT1T1U<6PTGTGT;TG6PTGTPTP6PV.TGV.TGV.SPSP6O6PS66PS6S6SRSR6PSRSE6PSESET/6PT/T/6PT06QT0T06QT06R6RT;6S6TT06TT0T0T;T;6T6UT06UT0T;6UTGT;6VT;6VT;T;V.V.6VV.6V6W6XT0T06X6YV.T0T0T06Y6YV.6ZV.T;6ZT0T06ZT;7#T;T07#V.V.SCSESCSESESESS6Z6ZSESSSSSESESE6Z6ZSSSSSSX;6ZXDXD6ZXDXDXDT3T36Z7#T57#T5T5T5T3T5T5T56ZT57#T3T3T37#7#T5T5T5T0T0T07#T0T07#T0T07#T.T.7#T0T.7$T0T07$T0T.T0T.7$T0T0T0T.T0T07#7$7$7%UMUMUM7%UMUM7%V.7&7'7'UM7(UMT07(T0UMT0UMT07(T0UM7(UM7(UMT0UMT0T07(T07(T.T.T.7(UM7)UMV.7)UMUMV.V.7)V.UM7)UMUMUMUMT.UMSE7(SE7)XDXDXB7)7)XD7*7+7+7,XBXBXDXDXB7,XDXD7,XDXDXD7,XDXB7,XBXB7,7-T5T5T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T47(YUYUYUY7Y77(Y7Y7Y7YU7(Y7Y77(Y7YUY7YUY7X.X.X.X&7&7'X&X&X.X.X&X&7&7'X&X&7'X&X&X&X.X.7'7(X.X.X.7(Y4Y4Y@7(7(Y@7)Y@Y4Y4Y47)Y47)Y@Y@7)Y@Y@Y@Y4Y47)Y@Y4Y4Y@Y@Y@Y@Y4Y4Y@Y@7'Y@7'7(Y4Y4Y47(Y4Y47(Y4Y4Y4Y'Y,Y'Y'Y'Y'Y'7'Y'7'Y'Y,Y'Y,Y'Y,Y'Y,Y,Y,YH7%YUYU7%YUYUYUYHYHYUYHY3Y37$Y,Y,7$Y,Y,Y3YUY3Y3Y,Y,7#Z&Y,7#7$Z&7$Z&Y,7%7%YLZ$Z$YVYVYLYLYLYV7$YVYL7$YLYLYV7$YVYV7$YG7%YGYV7%YVYG7%7&YXYXYNYN7&YNYN7&7'X.YN7'YNYG7'7(YGYG7(7)YGYG7)YNYNYNX.7)X.X.YNYNX.X.YNYNYN7(7(X.X.X.YNX.7(X.YNX.X.X.X.YGYGYGYGX.YGYGYG7%YG7&YG7&YGX.YGYGYGX.YG7%X.X.YGYGX.7%X.YGX.YGX.X.WOX.X.X.X.7#X.X.7#X&X.X&X&X&WGW=W=W=WGWG6Y6ZW=W=W3W=V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>6RTLUT6S6STLTLTLV?V?V?6SV?V?6STLV?V?TLTLUGUGTL6RTL6RTLTLUGUGTLUGV;V9V;V9V96PV;V;V;V;6PV;V9V96P6QV9V9V9V;TL6P6QUG6QUGTLTLUGUGTLTLUGUGTL6PUGUGUG6P6P6QTLTLV;6QTUTUV;V;TUTUUKUK6P6QUKUK6QUKUKUKUPUKY.Y.6PY.YI6PYIYI6PY'Y.Y'Y.Y.Y.6PY.Y.6PYIY.Y.YIYIY.Y.6O6P6PYIYIYI6P6QYIYI6Q6RYIYIY.Y.6RY.YI6RYIYIY.Y.YIY.6QY.YIY.Y.Y.YIYIYI6PYIYI6P6QYIYIY.Y.6QY.YI6QYI6RYIY.YIY.Y.6QY.6RY'Y'Y.Y.Y'6QY.Y.Y'Y'Y'6QY'6QY.Y.Y.6Q6RY.6R6SY.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.6PY'Y.Y'Y'Y'6PY'6PY.Y.Y.Y'Y'6PY.Y'Y'6PY'Y.6PY.6QY'Y'6QY'Y'Y'Y'6QY'Y,Y'Y'Y,Y'Y,6PY'Y'6P6QY'Y'6QY'Y,Y,Y'6QY,Y,Y'Y,Y'6PY'Y'Y'Y'Y'Y,Y'Y'Y,6OY'6OY,Y,Y,Y,6OY,6OY,6PY,Y'Y,Y'Y'Y'6OY,Y,6OY,Y,Y,Y,Y'Y,Y,Y.Y'Y.Y.Y'Y'6MY'Y.6M6NY'Y'Y'Y'Y,Y'Y,Y'6MY'Y'6MY,Y'Y,Y'6M6MY,6NY,Y'Y'Y'6N6NY,Y,Y,Y'Y'Y'6N6NY,Y,Y,Y,Y,6NY'6N6OY,Y,Y.Y.Y.Y'Y.Y'6NY'Y.6NY.6OY.Y.6O6P6P6QY'Y'6QY'Y'Y'Y'Y'6Q6R6RY,Y'6SY,Y,6SY,Y'6SY'6TY,Y,6TY,Y'6TY'6U6UY'Y.6VY'Y'6VY'6VY'6W6X6XY'Y.Y.Y'6XY'Y,6X6YY,Y,YI6YYIYIY.Y.6YY.Y.6YYIYIY.YAY.Y.YAYA6XYAY.Y.Y.6XY.Y.YIYI6W6XYIYI6X6YYI6Z6Z7#Y.7$7$7%YIYI7%7&YIYIYAYA7&7'YAYA7'YIYAYAYA7'YAY,Y,Y,YA7&YAY,Y,Y,7&Y,YI7&YIYIY,Y,7&Y,YI7&YI7'Y,7'Y,7(YI7(YIYIYI7(YIYIYI7(YIYI7(Y,YIYI7(Y,7)7*7*7+YIYIYIYI7+7,7,7-YIYIYIZ)YIYIZ)Z)7,Z)YI7,YIZ)Z)Z)Z)7,Z)YIYIYI7+Z)7,Z)Z)Z)Z)7,Z)7,YIYI7,YIYIYIZ)Z)YIYI7+YIYIYIYIYMYIYIYMYM7*YMYIYIYM7*YIYIYMYMYMYIYMYMY,Y,Y,7(7(Y,YIYIYI7(YIY,YIYIYI7(7(Y,Y,Y,YIYI7(YIYIY,YIY,7'Y,Y,Y,Y,Z&7'Z&7'Z&Y,Z&Y,7'Y,Y,Y,7'Y,7(Y,Z&Y,Y,7'Z&7(Z&7(Z&Z&Z&Z&Z&7(Z&7(Z&Y,Y,Y,YKYKYKY,Y,Y,7'Y,Y,YK7'Y,7'Y,Z&Y,Y,Y,7'Y,Y,Y,7'7'Z&7(7)7)Z&7*Z&YIYIYI7*YIYIYIY,YIYI7)Y,YI7)7*Y,7*Y,7+Y,YI7+YIY,7+Y,Y,Y,YIY,Y,Y,7*Y,7+Y,7+Y,YIYIYIYIYI7+YI7+YIY,7+Y,YI7,7,Y,YI7-Y,Y,7-7.Y,Y,Y,7.YI7.Z)Z)Z)7.Z)7/Y,Y,7/70Y,Y,Z)Z)7/Z)Z)Z)Y,7/Z)Z)Y,7/Z)Z)7/Y,Z)Z)Y,Y,Z)Z)7.7/Z)Z)Z)Z)Y,Y,Z)Z)7.Z)Y,Y,Z)Z)Y,Y,Z)7-Y,Y,7-Z)7-Z#Z)7.Z)7.Z)7/Z)Z)7/Z#Z#Z#7/Z#7/YZYZYZ7/YZ70YZ70YMZ)Z)Z)Z)70Z)YMZ)7071Z)Z)71Z)Z)YM71YMZ)Z)Z)YMZ)Z)70YM70YMYMYMYMZ)YM70Z)YM70YMZ)Z)YMYMZ)Z)7/70Y,7071Z#Y,71Z#Z#7172Z#Z#Y,72Y,7373Z#Z#Z#7374Y,Z#74Z#Z#Z#YMY?74Y?74Y?YMYMY?74YMYM7475YM76YM76YM77Y?Y?Z'77YM7778Y?78Y?YMYMY?Y?YM78YM78YMYM78Y?YM79YMYM797:7:Y?YM7;YMYMYM7;7;Y?Y?Y?YKYKZ#Z#YKYKZ#YKYKZ&YKYKZ&Z&78Z&Z&Z&7879Z&Z&797:7:7;YKYK7;YKYKYK7;Z&7<Z&7<Z&YK7=Z&Z&YK7=YKYKYK7=YK7=Y-Y-Y-7=Y-Y-YKYKZ#Z#Z#Z#Z#7<7<Y07=Y07=7>Y0Y0Z#Z#7>Z#Z#7>7?Y0YKYKZ#YKY-Y-7>Y-Z#Y-Z#Z#7=Y-Z#Z#Y-Y-7=Y-Z#7=Z#Y-Z#Y-Z#Z#Z#Z#Z#7<Z#7<Z#Y0Y-Y-Z#Y07;Y-Y0Y-Y-Y-Y07;Y07;Y0Y07;7<Y0Y07<7=Y0Y07=Y-Y0Y07=Y0Y0Y0Y-Y-7=Y-Y-Y-7=Y-Y-Y-Y-7=Y-7=Y0Y0Z#Z#7=Z#Y?Y?7=Y?7=7>Y?Y?Z#7>Y?Y?Y?Y07>Y07>Y0Y?Y?Y?Y?Z'7>7>Y07?7@Z'Z'Z'7@Z'Z'YP7@Z'Z'YPZ'Z'Z'Z'7?7?Z'YPZ'Y-Y-Y-7?Y-Y-Y-Y07>7?Y0Y0Y07?Y0Y07?7@Y0Y0Y-Y-Y-7@Y-7@YYYYY-7@Y-7AYYYY7A7BYYYY7BYYY-Y-Y0Y07A7BY0Y0Y0Y07B7CY07CY+Y+Y0Y07CY0Y0Y0Y07CY/Y/Y+Y+Y/Y/7BY/Y07BY0Y/YEYEZ&Z&Z&7AZ&YEYE7AY<Y<YEYEY<Y<YYYYYY7@YYYY7@7A7AY<Y2Y27AY2Y/Y2Y<Y<Y2Y2Y<Y<Y2Y<Y27?Y2Y<Y<Y<Y2Y<Y2Y<Y2Y<Y2Y<7=Y<7=Y<Y2Y<7=Y<Y/7>Y/7>Y/Y/7>7?Y<Y/Y<Y<Y/Y/7>Y/Y/Y/Y<Y<Y/Y/YGYG7=7>YGYGY<Y<Y<Y<7=Y<Y<Y<Y<Z(Y<Y<Z(Z(Y<Y<Z(Z(Y<7:Y<Y<7:YGY<Y<7:YG7;YGYGYGY<Y<YGYG7:7;YGYGY<YGY<YG7:YGYGYGYG7:Z%Y)Y)Y)VT79VQVQ797:VQVQVNX(VNX(VNVN797:7:X(X(X(X'W3X'W3W3W3W379W379X'X'79X'X'X'797:WUWUW%W%WUW%797:WUWU7:X,WUWUX,X,WU7:U>TTU>7:U>U>U>TTU>79TTTTTUTUTLTLTUTUTLTLTUTUU0U07677U0U0TLU077U07778TLTL78TUU0U0TUTUU0U07778U0U0TUTUU0U0TUTU7778TUTUV;V;TU77TU7878V;79V;797:V;V;TUTUTU7:TUTU7:7;TUTU7;7<TUTU7<7=TUTU7=7>7>V;7?V;7?V;V;V;TUTUUPUP7>U57?U5U4U4TLU4U0UPU0UPU0UPU0UPUPUPU97<U97<U9U9V;7<V;7=V;7=V;7>TUTUTU7>7>V;7?V;TU7?TU7@TUV;TUV;7?V;TUV;TUV;TUV;V;7>V;7?UPUP7?7@7@UP7AUPV;V;V;UP7@UPUPUPV;UPUPUPYB7?YBY>7?YBY>Y>YBYB7?Y>YB7?Y>Y>Y>YB7?YBY>7?Y>YBYBYBYBYIYB7>YBYBYIYIYBYIY>YBYBYBYIYIY(Y(YIYIYI7;YIYIYBYBYIYB7:YI7:YIYIYIYBYIYBYIYIYIYBYBYIYIYBYBYIYIYBYIYIYI7677YIYI77YIYMYMYI77YI77YI78YIYIYFYIYMYM77YM77YMYIYMYMYMYM77YM77YMYMYMYM77YO77YMYOYMYOYO777878YMYMYM78YPZ'Z'YPYP78YP78YPZ'YPYPYPZ'YPYPYPZ'77Z'YPZ'Z'Z'YJZ'7676YJZ'YJYP76YPY+YWYWYW76YSYSYWYSYW7576YS76Y/Y+7777Y/Y+Y+Y/Y/Y+Y+Y/Y/Y+Y/YT7576Y/76Y/YTYTY/Y/YTYTY/Y/Y/7575YTYTYTY/Y/757676YTYTYTY/Y/76Y/YTY/YTYT75YTYTYTY9Y975Y9Y*Y9Y*Y*Y*Y*Y*74Y*74Y*Y*Y9Y9Y9X#Y973X#X#73X#X#X#VWVWX#73VW7374X#74VWX#VWX#74X#X#7475X#X#X/VWX/X/VWVWVW74VWVW7475VSWSVS75VSVSVS75VS75VSVS75WSWSW,WSWS75WSWSWSVSWSWSWS74757576VSVSWSWSVSWSWPVNWPWP74VNWP75VNVN75WY75WYWYWYVNVN7576VN76WYWY76WYWYWYVNVN7677VN77WYWY7778WYWYVNWYWYWYW#77W#WYWY77WYWY7778WYWYW#WYWYWYW#WYWYWYVNVNW#W#VNVN75VNW#VNW#W#VNVNVN7474WY75WYWY75W,W,75WYW,W,WYWYW,W,WYWYWY74WY74WYWYWYWYW,W,WYWY7374WYWY74W,WYWYW,W,WYWYWY73WYWY7374WYWY747575WYW,W,WY75WY76WYWYW,W,W#W#WY75W#W#75WYW,W,7576W,W,W,7676WYWYWY76WYWYWYW,76W,W,76WYW,W,WYWYW,WYWYWY75WYWYWYWY75WYWYW#W#W,W,W#W#73W#W#W#7374W,W,7475W,W,75W,W,W,W,W,W#W#W#W#W#74W#W,74W,W,W,W,W#WYWY73WYW,W,W,W#WYWYW#W#71W#W#W#7172WYWYW#727374WYWYWYW#W#WYWYWY72WYWYWYWS72WS73W,W,73WSW,W,7374W#WYW#WYWY73WYW#W#W#W#73W#W#WYW#WY72WYWY72WYWYWYWYW#WYWYWYWY7172WYWY72W#72W#W#W#W#W#WYWYW#W#71W#W#W#717272W#WYWYW#W#W#72W#W#727373W#WY747475WYWYWYWYW#WYWYWYWY74WYWYWY74WY7475W#WYWYWY757576W#W#7677W#W#77W#W#W#WYWYWY77WY7778W#78W#W#W#WYWYW#WYWYWYW#W#WYWY767777W#W#W#W#77W#W#WY7778W#WY78WY7979W#7:W#VNVNW#W#VNVNW#W#VNVNW#78W#78W#W#78VNW#W#VNW#W#W#WUWUWU77WUWU77WUWUWUWU77WUWU77WM77WMWMWMWMWM77WMWUWMWMWMWU76WMWMWMWMWT76WT76WTWTWMWMWM767677WTWTWMWMWM77WM7778WT78WTWTWTWMWMWM78WM78WTWT78WTWTWT78WTWTWTWU78WMWMWUWM7879WM79WM7:WMWMWM7:WMWM7:7;WT7;WTWTU>UYU>UYU>7:U>7;U>U>U>7;U>7;U>U>U>UYUYUYU>U>7:7;U>U>7;V:U>U>V:V:U>U>V:V:U>79V:V:U>U>79V:U>U>V:V:U>U>V:V:U>77V:V:77U>V:V:U>77UYUY77U>UYUY7778UYUYV:UYV:78V:UY78U/UYUY7879UYUYUYTTUYUYTTTT77TTTTTTUY77U/U/7778U/U/78U/U/U/U/78U/U/7879U/U/TTTTUUUUTTTTUUUUTTTT77TTUU77UUUUUU77UUUU77TTUU78TTTT78TTUUTTUUUUUPUP77UPTLUP77UP77YBY>YBY>YBY>777778S:79797:S:S:S:7:7;S;S0S07;7<7<S0S:S:W-W-7<7=W-7=7>WFW-W-7>W-WFW-WFWFY9Y9W(7=7=W(W(W(Y9Y9W(7=Y9Y97=Y9W-W-WFW-W-W-WFWFW(W(7;7<W(W(7<7=VZ7=VZW(7=W(W(W(VZVZVZW(VZVZVZW(VZW6VZW6W6W6W6W/W679W6W6W(W(79W(79W(W6W(VO79VOVOW(W(79W(VOW(VOW(W6W6W.78W.W.78W6W.W.W.W6W6W6W/W/W6W/W/W/W6W6W675W6VOW6VO7475W(W(W(VUW(VUW(74W(VU74W(W(W(Y9Y9Y974VU74VUVUY9Y9VUY9X#73X#X#7374X#X#VUVU747575X#VUVU75X#76X#X#X#VUX#VU7576X#X#X#VUX#X#X#7576X#X#X#76X#X#VUVUX#X#VU7575X#VUX#VUX#VUVU7475VUVUVUVUW@W@X#X#74X#X#X#VUX#VU73VU74VSVSX#VSX#73X#X#VSVS73VSX#X#X#7373VSVSVSW773W7W773WSW7WSW773W7W77374W7W77475W77676W,W777W,W,77W,77W,W778W,W,78W,W778W7W778W,W7W,W7W7W,W7W,W7W,W,W7W9W7W9W775W7W7W9W975W975W9W7W7W775W9W97576W7W7W9W9W7W7W9W975W975W9W7W9W7W775W975W9W9W9W7W9W7W974W9W9W9W7W9W7W773W<W<W<W9W9W97373W<W<W<73W<W9W9W9W<W9W9W9W9W972W972W<W<W9W<W<W<W9W9W971W9W9W9W<W970W9W970TLUU71TM7172UL72UL737474TLUE75UE75UEUETLTL75TL75TLUE76UETLUE76TLTL76TL76TLTLTLTLTLUE767677UE78UE78UEUE78TL79TLUE79UEUE797:UEUETLUPTL7:TL7:UPUP7:X#VUVUX#X#7:7;W+W+W+7;W+WEW+W+7:WE7;WEWEWE7;7<WEWE7<7=WEWE7=W+WEW+W+W+WE7<WEW+W9W97<W9X#7<X#W9W<7<W<7=W<W:W<W:7<W:W<W<7<WUW:7=W)W<W)7=W<W<7=W<7=W<W<W<W<W<7=W<W)7=W)7>7>W<W<W<WU7>7?7@WUWUWU7@WUWUWU7@WU7@W1W17@W1W1W1WUWUWUWXWUWXWXWX7>UIUIUIULUL7>7?UL7?7@UITHTHTATATHTHTATHT+T+UCUCUCUCUC7=UCUC7=UCSA7=SASZX-X-X-7=7=VXVXVX7=X*VXVXX*X*7=X*7=X*X*X*X*X*7=X*X*X*X*7=X*X*7=7>X*VXX*VXX*X*VXX*VX7<VXVXX*X*7<X*VX7<VX7=VXX*VXX*WUW1WUW1WUWUWU7;WU7;WU7<WU7<WUWUWAWA7<WAWU7<W1W17<W1W1W17<TI7=TI7=TITDTI7=S4S4S4SX7=S@7>7>SXS@7?S@7?S@S@S@7?S@S@SXSX7?SXS@7?S@S@TD7?TD7@S.SMS.S.S.SMS.S.SMSM7>7?SMSM7?SMS.SMS.SMSM7>SMSMSMSMSM7>7>7?T$T$T$SK7?SKT$7?T$7@T$7@T$7AT$7A7BSKT$SKSKSK7ASKT$SKS3S37A7BS3S3SJSJS3S3S37A7AS3SO7BS3SOS3SO7ASOSOSOSO7A7BSG7BSGSOSOSOSGSOSGSO7ASOSO7ASOSOSOSGSGSWSWW>W>W>WVW>W>W>7?WV7?WVWV7?WVWVWVW>W>7?W>WV7?WVWVW>W>7?7@W>W>WVWVW>WVW>WVW$W$W$W?W$W?W?W?7<U#T-U#SJSJSJ7<SJ7<SJSJS7S77<7=S77=7>SJSOSOSO7>SGSG7>SGSO7>SOSG7>SISISISISI7>SISISISOSISOS8SOS8SOS8SOS8SG7;SG7<SISISIS8S8S8S8S>SISIS>S>SISIS>S>S>78S>S>78SWS>79S>S>S>SWV$TPV$78V$TPV$TPV(V(V(7777U@T=78V(V(T=T=V(V(77T=V(7778T=U@U@78U@SPSOSP78SP78SPSP78SOSPSPSP78SPSPS>S>SPSPS>S>77S>SP77SPSPSPS6SPSPS6S6SRS6S6S6S6SRSRSR74SR7475SRSRS6S67576S676SRSRU<U<U<76U<U<76U<U<TGTGTGT;TGT;TG747576V.SD76SDSDSPSP76SPS6S6S676SRSR76SRSESDSESET/75T/7676T077T077T0T/T0T0T0T077T077T0T0T0T;T077T077T0T0T;T;77T;T0T;T0T07677T0T0T;T;77T;T077T0T;T;77T;78T;TGT;T;T;T;T;7777V.78V.78V.797:V.V.7:V.T0T0T;T0T0T079V.79V.V.V.T0T079V.T0T0T0V.78V.V.V.T;T;7879T;T;79T;T079T0T0T0T079V.SESESSSSSESESESSSESE7778SE78SESSX;X;7879X;X;797:T57:T5T5T3T37:7;7;7<T5T5T5T3T5T3T5T3T5T5T3T37:T3T57:T5T5T0T0T7T7T0T0T7T7T0T.T.T.T.T0T.T.7677T.T.T0T077T0T.77T.T.UMUMT0UMV.V.UMV.T075T0UMUMV.UMUMUMV.UM74V.V.74V.UM74UMUMV.V.UMV.T0UMT0UM72UM73UM7374UMUM74UMT075T0T0T0UMT0UMT0T073T.T.T.T0T073T073UMT0UMT0UM73UMV.V.UM7373V.UM747475UMUMSSSSSE75SESSSSSS74XBXBXBXDXD74XD7475XBXB75XD76XD76XDXBXBXDXBXBXBXDXDXB75XDXD7576XDXD76XD7677XBXB7778T5T5T.T.T5T.YUY7YUYUYUY7YUYUY7Y7YUYUY7Y7YUY7X.X.X&X&X.X.X&X&X&X.X&X&X.X.X&X&X.X&X&X&X.X.X&X&X.X.X&X&X.X.X.X&Y4Y4Y@Y@Y4Y@Y4Y@Y4Y@Y@Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y@Y@Y@Y4Y@Y@Y@Y4Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y4Y4Y@Y4Y4Y@Y@Y4Y4Y'Y,Y'Y,Y'Y,Y'Y,YHYHYUYUYHYHYUYUY3Y3Y,Y,Y,Y3Y,Y,Y,Y,Y,Z&Z&Z&Y,Z&Y,Y,Y,Z&Z&Z&Y,Z&Z&Z&Y,Z&YLYLZ$Z$YLYVYLYVYVYVYLYLYVYGYVYVYGYGYVYGYVYVYVYGYVYVYVYGYNYNYXYXYNYNYXYNYXYXYXYNYNYNX.X.YNYNYNX.YNYGYNYNYGYNYGYGYNYNYGYGYGYNYGYGYNYNYGYGYNYNYNYGYNYNX.X.YNX.X.X.YNYNX.X.YNX.YNX.YGYGYGX.YGX.YGX.YGYGYGX.YGYGX.X.X.YGX.YGX.X.X.X&X.X&X&X&WGWGW=W=WGWGW=W=UTTLUTUTUTTLUTUTUTTLUTTLV?V?V?TLV?V?TLTLUGUGTLUGTLUGTLTLV9V;V9V;V9V9V9V;V9V9V;V;V9V9V;V;TLUGUGUGTLUGUGUGUGUGTLUGUGUGTLUGUGUGUGTUUGUGTLTLUGTUTLTLV;V;TUV;UKUKUKUPUKUKUPUPUKUKUPUPY.Y.YIY.Y.Y.YIY.Y.Y'Y.Y.Y.Y.YIYIY.YIYIYIY.Y.YIYIY.Y.YIYIY.YIYIYIY.Y.YIY.Y.Y.Y.YIY.Y.YIYIY.Y.YIY.Y.Y.YIY.Y.Y.YIY.YIYIYIY.Y.Y.YIYIY.Y.YIYIY.Y.YIY.Y.Y.YIYIY.Y.YIY.YIY.YIY.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y'Y'Y'Y,Y,Y,Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y,Y,Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y'Y'Y,Y,Y,Y'Y'Y'Y,Y'Y'Y'Y,Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y.Y.Y.Y'Y'Y'Y.Y'Y.Y.Y'Y,Y'Y'Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y,Y'Y'Y'Y'Y'Y,Y,Y'Y,Y,Y,Y.Y.Y.Y'Y.Y'Y.Y.Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y'Y'Y.Y'Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y'Y'Y'Y,Y'Y,Y,Y,Y,Y'Y'Y,Y,Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y,Y'Y,Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y'Y.Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y.Y.YIYIYIY.YIYIY.Y.YIYIY.Y.Y.YAY.YAY.Y.Y.Y.Y.YIY.Y.YIYIY.Y.YIYAY.YAYAYAYIYAYIYAYAYAY.Y.YAYAY.YAY.YAY.YAYAYAYIYIYAYAYIYIYAYAYIYIYAYAYIYAYAYAYAYIYAYAYIYAYAYAYIYIYAY,YAY,YAY,YAY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,YIY,Y,Y,YIYIY,YIY,Y,Y,Y,Y,YIY,YIYIYIY,YIYIYIY,Y,YIYIY,Y,YIYIY,Y,YIY,YIY,YIYIY,YIYIYIYIY,YIYIY,Y,YIY,YIYIYIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIYIZ)Z)Z)YIZ)YIZ)Z)Z)Z)YIYIZ)YIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIZ)YIYIYIZ)Z)YIYIYIYMYIYMYMYIYMYMY,Y,YIY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,Y,Y,YIYIY,Y,Y,Y,YIY,Y,Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Y,Y,Z&Y,Z&Z&Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Z&YKY,YKYKY,Z&Z&Z&Y,Z&Z&Z&Y,Y,Y,Z&Y,Y,Y,Z&Z&Z&YKYKZ&Z&YKYKY,Y,Y,Z&Y,Z&Z&Z&YIYIYIY,YIY,Y,Y,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,Y,Y,YIY,YIY,YIY,Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Y,Y,Z)Y,YIYIZ)Z)Z)Z)Y,Y,Z)Y,Z)Z)Y,Y,Z)Z)Y,Z)Z)Z)Y,Z)Z)Z)Y,Y,Y,Z)Y,Y,Y,Z)Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Z)Z)Y1Y1Y,Y,Z)Z)Y,Y,Z)Z)Z)Z#Z)Z#Z#Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z#Z#YZZ#YZZ#Z)YZYZYZYZYZZ)YZZ)YZZ)Z)Z)Z)YMZ)YMZ)YMYMYMZ)YMYMZ)Z)YMYMZ)Z)YMYMZ)YMZ)YMZ)Z)Z)YMZ)YMYMYMYMZ)YMYMZ)Z)Z)YMZ)Z)YMYMZ)YMYMYMY,Y,Y,Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Y,Y,Y,Z#Z#Z#Y,Z#Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Z#Z#YMY?Y?Y?YMY?YMYMY?Y?Y?YMY?Y?YMYMY?Y?YMY?YMY?YMY?YMYMYMY?YMY?YMYMZ'Y?Z'Z'YMY?Y?Y?YMY?Y?Y?Y?Y?YMYMYMY?YMYMYMY?YMYMY?Y?YMYMYMY?YMYMYMYMY?Y?YMYMY?YMY?Y?YMY?Y?Y?YMYMYMY?Y?Y?YMYMYMY?Z&Z&YKZ&Z&Z&YKYKZ&Z&YKYKZ&Z&YKYKZ&Z&YKZ&YKZ&YKYKZ&Z&YKYKZ&Z&YKYKYKYKYKZ&Z&Z&YKZ&YKZ&YKYKZ&Z&YKZ&Z&Z&YKYKYKYKY-YKYKYKYKY-Y-YKY-Y-Z#Z#Y0Y0Z#Z#Z#Y0Z#Y0Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Y0Z#Y0Z#Y0Y0Y0Z#Y-Z#Y-Z#Y-Z#Z#Z#Y-Z#Z#Z#Y-Y-Y-Z#Z#Z#Y0Z#Z#Z#Y0Y0Y-Y0Y0Y0Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y-Y-Y0Y-Y-Y-Y-Y0Y-Y-Y0Y0Y-Y0Y0Y0Z#Z#Z#Y?Y?Y?Z#Z#Z#Z#Y?Y?Z#Z#Y?Y?Z#Y?Z#Y?Y?Y0Y0Y0Y0Y0Y?Y0Y?Z'Z'Z'Y0Z'Z'Z'Z'Y0Y0Y0Y0Y0Z'Y0Z'Z'Z'YPYPZ'YPYPYPYPYPZ'Z'Z'YPYPY-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y-Y-Y-YYY-Y-YYYYY-YYY-YYY-YYY-Y-YYYYY0Y0YYY0Y0Y0Y0YYY0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y0Y0Y0Y+Y0Y0Y+Y+Y0Y+Y+Y+Y0Y0Y+Y+Y0Y0Y0Y/Y+Y/Y+Y+Y0Y0Y0Y/YEYEZ&YEYEYEY<Y<YYYYY/Y/YYYYY/Y/YYY/Y/Y/Y<Y<Y2Y2Y2Y2Y/Y2Y2Y<Y2Y2Y2Y<Y<Y<Y2Y<Y2Y<Y<Y<Y/Y/Y/Y<Y/Y<Y/Y<Y/Y/Y<Y<Y<Y/Y<Y<Y/Y/Y<Y/Y/Y/Y<YGY<Y<YGYGY<YGY<Y<Z(Z(YGYGY<Y<YGYGY<YGY<YGY<YGY<Y<Y<YGYGYGY<YGYGYGY<Y<YGYGY<YGYGYGZ%Z%VTVTVTVQVTVTVQVQVTVQVQVQVNVNX(X(VNX(X(X(VNVNVNX(W3W3W3X'W3W3X'X'W3W3X'X'W%W%WUWUW%W%WUW%WUX,WUWUX,X,WUWUX,X,WUWUWUX,WUX,U>TTU>TTU>TTTTTTTUTUU0U0TUTUU0U0TLU0TLU0TLU0TLTLU0U0TLTLTUTUU0U0TUTUU0U0TUTUU0U0TUTUTUV;TUTUV;V;TUTUTUV;TUV;V;V;TUV;TUV;TUV;TUV;TUTUTUV;TUTUV;V;TUTUTUUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUV;TUV;TUV;TUV;TUTUTUV;TLTLTLU5TLU5U5U5UPUPU9U9UPUPU9U9V;UPV;UPV;UPV;UPV;UPV;V;V;V;V;UPTUV;V;V;TUV;TUV;TUTUTUV;TUTUTUV;TUV;V;V;TUTUTUV;V;UPV;UPUPUPV;V;UPUPV;V;UPUPV;UPV;UPV;UPV;UPV;UPV;V;UPUPYBYBYBY>YBYBY>Y>YBYBYBY>YBYBYBY>Y>YBYBYBY>YBYBYBYIYIYBYBYIYIYIYBYBYIYBYIYIYIYBYIYIYIYBYBYIYIYBYBYIYIYBYBYMYMYIYMYIYIYIYFYFYFYIYFYMYMYIYMYIYMYIYMYMYMYMYOYMYOYMYOYMYMYOYOYMYMYOYOYOYOYMYMYOYOYMYMYOYOYOYMYPYPZ'Z'YPYPZ'YPZ'YPZ'Z'YPYPZ'YPZ'YJZ'YJYJYJZ'YJYPY+Y+Y+YWYWYSYSYWYSYWYSYWYSYSYSY/Y/Y+Y/Y/Y/Y+Y/Y+Y/Y+Y+YTYTY/Y/YTYTYTY/Y/Y/YTYTY/YTYTYTY/Y/YTYTY/Y/Y/YTY/YTYTYTY/YTYTYTY/Y/Y/YTY/YTYTYTY9Y9Y*Y9Y*Y9Y*Y*Y*Y*Y*Y9Y9Y9X#X#Y9X#X#X#VWVWX#VWVWVWVWX#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#WSWSVSVSVSWSVSWSVSWSVSWSWSWSWSW,WSWSVSVSVSWSVSVSWSWSVSWSVSWSVSVSWSWSVSWSVNVNWPVNVNVNWPWPVNVNVNWYVNWYWYWYVNVNVNWYVNWYWYWYVNVNVNWYVNWYVNVNWYVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYW#WYWYWYWYW#WYWYW#W#WYWYW#WYWYWYVNVNW#VNVNVNWYWYVNWYVNWYVNWYWYWYWYWYW,W,WYWYW,WYWYWYWYW,W,W,WYW,WYWYW,W,WYWYW,W,WYW,W,W,WYW,WYWYWYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,W,W,WYW,W,W,WYW,W#W#WYWYW#WYWYWYW,W,W,WYW,WYWYWYW,WYWYWYW,W,W,WYW,WYWYWYWYWYW,W,WYWYW,W,WYWYW,WYWYWYW#W#W,W,W#W#W,WYW,W,WYWYW,W,WYWYW,W,WYW,W,W,W,WYW,W,W#W#W#W,W#W,W,W,WYWYWYW,W#WYW#WYW#W#WYWYW#W#WYW#W#WYW#WYW#WYW#W#WYWYW#WYWYW#WYWYWSWSWSW,W,W,WSWSW,W,WSWSW,W,W7W7W,W,W7W7WYW#WYW#W#W#WYWYWYW#WYWYW#WYWYWYWYW#W#W#W#WYW#WYWYWYWYW#WYWYW#W#WYW#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYW#W#W#WYW#WYWYWYWYWYWYW#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYWYW#WYWYW#W#WYWYW#WYW#W#WYW#WYW#W#W#WYWYWYW#WYWYW#W#WYW#W#W#WYWYW#W#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYW#W#W#WYW#W#W#W#W#WYWYWYWYW#W#W#W#WYWYWYWYW#W#W#VNW#W#VNVNW#W#VNVNW#VNWUWUWMWMWMWMWMWUWUWUWUWMWUWUWUWMWUWUWUWMWUWMWUWUWUWUWMWMWMWMWTWTWMWMWTWTWMWTWMWTWMWMWMWTWMWTWTWTWMWMWTWMWMWMWTWTWMWTWTWTWMWMWTWTWMWTWTWTWMWMWMWTWMWMWTWTWMWTWTWTWUWUWMWMWUWMWMWMWMWUWMWMWMWTWMWMWMWTWMWTWMWMWTWMWMWMWMWTWMWMWTWTWMWTWTWTUYUYU>UYU>UYU>UYU>UYUYUYU>UYU>U>U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>U>V:U>U>V:V:U>U>UYUYU>U>UYUYU>U>UYUYU>UYUYUYV:UYV:UYV:V:U/U/U/UYU/U/UYUYU/U/UYUYUYTTUYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/TTTTUUTTTTUUUUUUUUTTUUUUTTTTUUTTTTTTUUTTUUTTUUUUUPUPTLUPTLTLUPUPY>YBY>YBY>YBY>YBS:S;S:S;S:S:S;S;S;S;S:S:S:S:S;S:S:S:S;S:S:S:S;S:S:S;S:S:S:S0S:S:S0S0S:S0S0S0S:S0W-W-WFWFW-WFWFWFW-W-W-WFWFW-WFWFWFW-WFW-Y9Y9W(W(Y9Y9Y9W(W(Y9W(W(W(Y9W(W(W(W(VZVZW(W(VZW(W(W(W(VZW(W(VZW(VZVZW(VZVZW(VZW(W6W(W6W6W6W(W6W(W6W(W6W6VOW(VOW(W(W(VOW(W6W6W.W6W.W.W.W6W6W6W6VOY9Y9W(Y9Y9Y9W(W(W(W(W(VUY9Y9W(W(Y9VUY9VUY9Y9VUY9X#VUX#X#VUVUX#X#VUVUX#X#VUVUVUX#VUX#X#X#X#X#VUX#VUVUVUX#X#X#VUX#VUVUVUX#VUVUX#X#VUX#VUVUX#X#VUX#X#VUVUVUVUX#VUVUVUX#VUX#X#X#X#VUX#X#VUVUVUX#VUVUVUX#VUX#VUX#VUX#X#VSX#X#VSVSX#VSX#X#X#VSX#VSVSVSW7WSW7W7WSWSW7WSWSWSW7WSWSWSWSW7WSWSW7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W9W7W7W7W9W7W9W7W9W7W7W7W9W9W9W9W9W7W7W9W9W7W9W9W9W7W9W7W9W7W9W7W7W7W9W7W7W7W9W7W9W9W9W9W9W9W<W9W9W<W<W9W9W9W<W9W<W9W<W9W<W<W<W9W9W9W<W9W9W9W<W9W<W9W<TLTLUUTLTLTLUUTLTMULTMULTMTMTMULULULTMULTMULTMTMULULTMULUETLUEUEUETLUETLTLTLUETLTLTLUETLUETLUEUEUETLTLTLTLTLUEUETLTLUETLUETLTLTLUETLUETLTLTLUEUETLTLUETLUETLUEUETLTLUETLTLTLUETLUETLUEUEUETLUEUETLTLUEUETLTLUETLTLUPTLUPTLUPUPUPX#X#VUVUX#X#VUVUX#X#VUX#W+W+W+WEW+W+W+WEW+WEWEWEW+WEW+W+WEWEW+WEWEWEW+W+WEWEW+W+WEW+WEW+W+W+WEW+X#W9X#X#X#W9W9W9W<W<W<W:W<W:W:W:W<W:W<W:WUWUW:W:W:WUW:W:W)W<W)W)W)W<W)W<W)W)W)W<W<W<W)W)W)W)W)W<W)W<W)W<W)W)W<W)WUX-X-X-WUWUX-X-WUX-X-X-WUWUW1WUWUW1W1W1WUWUWUW1WUW1W1W1T>UIUIUIUIULUIUIULULUIULULULUIUIULUIULUIUCUCU?U?UCUCU?U?SASZSASZX-X-X-VXX-VXX-VXX*X*VXVXVXX*VXX*VXX*VXX*X*X*X*VXX*X*X*VXX*X*VXVXX*VXVXVXVXX*VXVXVXX*VXVXX*X*VXX*VXX*VXX*WUWUWUWAWUWAWAWAWUWAWUWAWUWUWUWAWAWAWUWAWUWUWUW1WUW1W1W1TDTITITITITITDTITDTITDTDS4S=S4S4SXSXSXS@SXSXS@S@SXSXS@S@SXSXS@SXSXSXS@SXSXSXS@S@S@SXS@S@S@SXS@SXTDTITDTITDTITDTISMSMS.S.SMSMS.S.SMSMS.S.SMT$SMSMSMT$SMSMSMSMSMT$SMSMT$T$T$T$T$SKT$T$T$SKT$SKT$SKT$SKT$SKT$SKT$T$T$SKSKSKT$SKT$SKT$SKT$SKS3SJSJSJSJS3SJSJS3SOS3SOS3S3SOSOSOS3SOSOS3SOS3SOSOSGSGSGSOSOSOSGSOSGSOSOSOSGSOSOSGSGSOSOW>W>WVWVW>W>WVWVW>WVWVWVW>W>WVW>WVW>WVWVWVW>WVWVW>WVWVWVT-U#T-U#SJS7SJS7SJS7SJSJS7S7S7SJS7S7SJSJS7S7S7SJS7S7SJSJSOSGSOSGSOSGSGSGSOSGSOSGSOSOSOSISISISOSISGSGSGSISGSISGSIS>SWS>S>SWSWS>SWSWSWS>S>V$TPTPTPV(V(V(T=T=V(T=T=T=U@T=T=V(V(T=T=V(T=T=T=V(V(T=T=U@U@T=T=SOSOSPSOSPSOSPSPSOSOSOSPSOSPSPSPS>S>SPS>SPS>SPSPS6S6S6SRSRS6SRSRS6S6S6SRS6S6S6SRS6S6SRSRS6S6SRSRU<U<U<T1U<U<T1U<TPTPTPV.TPTPV.V.TPV.V.V.SPSPSDSPSDSPSDSPS6SRS6S6SDSRSDSRT/T/T0T0T/T0T/T/T/T/T0T0T0T0T/T0T/T0T/T0T0T0T;T;T0T;T0T0T;T;T0T;T0T;T0T0T0T;T0T;T0T;T0T0T;T;T0T;T;T;T0T;T;T;T0T;TGTGT;TGT;TGT;T;T;V.T;T;V.V.T;V.T;V.T;V.T;V.T;V.T;V.T;T0V.V.T0T0V.V.T0V.T0T0V.V.T0V.V.V.T0T0T0V.T0V.V.V.T;T;T0T0T;T;T0T0T;T;T0T;T;T;T0T;T0V.V.V.SESESESSSESSSSSSSESSSESSX;XDXDXDXDX;XDXDX;X;XDXDX;XDXDXDT3T3T5T3T5T3T5T5T3T3T5T3T3T3T5T3T3T3T5T5T3T3T5T5T3T3T5T5T.T0T.T.T0T0T.T0T.T0T.T.T.T0T.T.UMUMT0UMUMV.UMUMV.UMUMUMV.V.UMV.T0UMT0UMT0T0T0UMT0T0T0UMT0UMUMUMT0UMT0T0T0UMT0T0T0T0T.T.T.T0T.T.T0UMT0UMT0UMUMUMUMV.UMV.V.V.UMUMUMV.UMUMUMV.UMUMV.V.UMUMSESSSSSSXDXDXBXBXDXDXBXDXBXDXBXDXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXDXBXDXBXBXDXDXBXBXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXBT5T.T5T5T.T.T5T5\",T=[\"Africa/Abidjan\",\"Africa/Accra\",\"Africa/Addis_Ababa\",\"Africa/Algiers\",\"Africa/Asmara\",\"Africa/Bamako\",\"Africa/Bangui\",\"Africa/Banjul\",\"Africa/Bissau\",\"Africa/Blantyre\",\"Africa/Brazzaville\",\"Africa/Bujumbura\",\"Africa/Cairo\",\"Africa/Casablanca\",\"Africa/Ceuta\",\"Africa/Conakry\",\"Africa/Dakar\",\"Africa/Dar_es_Salaam\",\"Africa/Djibouti\",\"Africa/Douala\",\"Africa/El_Aaiun\",\"Africa/Freetown\",\"Africa/Gaborone\",\"Africa/Harare\",\"Africa/Johannesburg\",\"Africa/Juba\",\"Africa/Kampala\",\"Africa/Khartoum\",\"Africa/Kigali\",\"Africa/Kinshasa\",\"Africa/Lagos\",\"Africa/Libreville\",\"Africa/Lome\",\"Africa/Luanda\",\"Africa/Lubumbashi\",\"Africa/Lusaka\",\"Africa/Malabo\",\"Africa/Maputo\",\"Africa/Maseru\",\"Africa/Mbabane\",\"Africa/Mogadishu\",\"Africa/Monrovia\",\"Africa/Nairobi\",\"Africa/Ndjamena\",\"Africa/Niamey\",\"Africa/Nouakchott\",\"Africa/Ouagadougou\",\"Africa/Porto-Novo\",\"Africa/Sao_Tome\",\"Africa/Tripoli\",\"Africa/Tunis\",\"Africa/Windhoek\",\"America/Adak\",\"America/Anchorage\",\"America/Anguilla\",\"America/Antigua\",\"America/Araguaina\",\"America/Argentina/Buenos_Aires\",\"America/Argentina/Catamarca\",\"America/Argentina/Cordoba\",\"America/Argentina/Jujuy\",\"America/Argentina/La_Rioja\",\"America/Argentina/Mendoza\",\"America/Argentina/Rio_Gallegos\",\"America/Argentina/Salta\",\"America/Argentina/San_Juan\",\"America/Argentina/San_Luis\",\"America/Argentina/Tucuman\",\"America/Argentina/Ushuaia\",\"America/Aruba\",\"America/Asuncion\",\"America/Atikokan\",\"America/Bahia\",\"America/Bahia_Banderas\",\"America/Barbados\",\"America/Belem\",\"America/Belize\",\"America/Blanc-Sablon\",\"America/Boa_Vista\",\"America/Bogota\",\"America/Boise\",\"America/Cambridge_Bay\",\"America/Campo_Grande\",\"America/Cancun\",\"America/Caracas\",\"America/Cayenne\",\"America/Cayman\",\"America/Chicago\",\"America/Chihuahua\",\"America/Costa_Rica\",\"America/Creston\",\"America/Cuiaba\",\"America/Curacao\",\"America/Danmarkshavn\",\"America/Dawson_Creek\",\"America/Denver\",\"America/Detroit\",\"America/Dominica\",\"America/Edmonton\",\"America/Eirunepe\",\"America/El_Salvador\",\"America/Fort_Nelson\",\"America/Fortaleza\",\"America/Glace_Bay\",\"America/Godthab\",\"America/Goose_Bay\",\"America/Grand_Turk\",\"America/Grenada\",\"America/Guadeloupe\",\"America/Guatemala\",\"America/Guayaquil\",\"America/Guyana\",\"America/Halifax\",\"America/Havana\",\"America/Hermosillo\",\"America/Indiana/Indianapolis\",\"America/Indiana/Knox\",\"America/Indiana/Marengo\",\"America/Indiana/Petersburg\",\"America/Indiana/Tell_City\",\"America/Indiana/Vincennes\",\"America/Iqaluit\",\"America/Jamaica\",\"America/Juneau\",\"America/Kentucky/Louisville\",\"America/Kentucky/Monticello\",\"America/Kralendijk\",\"America/La_Paz\",\"America/Lima\",\"America/Los_Angeles\",\"America/Lower_Princes\",\"America/Maceio\",\"America/Managua\",\"America/Manaus\",\"America/Marigot\",\"America/Martinique\",\"America/Matamoros\",\"America/Mazatlan\",\"America/Menominee\",\"America/Merida\",\"America/Mexico_City\",\"America/Miquelon\",\"America/Moncton\",\"America/Monterrey\",\"America/Montevideo\",\"America/Montserrat\",\"America/Nassau\",\"America/New_York\",\"America/Nome\",\"America/Noronha\",\"America/North_Dakota/Beulah\",\"America/North_Dakota/New_Salem\",\"America/Ojinaga\",\"America/Panama\",\"America/Pangnirtung\",\"America/Paramaribo\",\"America/Phoenix\",\"America/Port-au-Prince\",\"America/Port_of_Spain\",\"America/Porto_Velho\",\"America/Puerto_Rico\",\"America/Punta_Arenas\",\"America/Rankin_Inlet\",\"America/Recife\",\"America/Regina\",\"America/Rio_Branco\",\"America/Santarem\",\"America/Santiago\",\"America/Santo_Domingo\",\"America/Sao_Paulo\",\"America/Scoresbysund\",\"America/Sitka\",\"America/St_Barthelemy\",\"America/St_Johns\",\"America/St_Kitts\",\"America/St_Lucia\",\"America/St_Thomas\",\"America/St_Vincent\",\"America/Tegucigalpa\",\"America/Thule\",\"America/Thunder_Bay\",\"America/Tijuana\",\"America/Toronto\",\"America/Tortola\",\"America/Vancouver\",\"America/Whitehorse\",\"America/Winnipeg\",\"America/Yakutat\",\"America/Yellowknife\",\"Antarctica/Casey\",\"Antarctica/Davis\",\"Antarctica/DumontDUrville\",\"Antarctica/Macquarie\",\"Antarctica/Mawson\",\"Antarctica/McMurdo\",\"Antarctica/Rothera\",\"Antarctica/Syowa\",\"Antarctica/Troll\",\"Antarctica/Vostok\",\"Arctic/Longyearbyen\",\"Asia/Aden\",\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Bahrain\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Brunei\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Colombo\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kathmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuala_Lumpur\",\"Asia/Kuching\",\"Asia/Kuwait\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Muscat\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Phnom_Penh\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Riyadh\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ulaanbaatar\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vientiane\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\",\"Atlantic/Azores\",\"Atlantic/Bermuda\",\"Atlantic/Canary\",\"Atlantic/Cape_Verde\",\"Atlantic/Faroe\",\"Atlantic/Madeira\",\"Atlantic/Reykjavik\",\"Atlantic/South_Georgia\",\"Atlantic/St_Helena\",\"Atlantic/Stanley\",\"Australia/Adelaide\",\"Australia/Brisbane\",\"Australia/Broken_Hill\",\"Australia/Currie\",\"Australia/Darwin\",\"Australia/Eucla\",\"Australia/Hobart\",\"Australia/Lord_Howe\",\"Australia/Melbourne\",\"Australia/Perth\",\"Australia/Sydney\",\"Etc/GMT\",\"Etc/GMT+1\",\"Etc/GMT+10\",\"Etc/GMT+11\",\"Etc/GMT+12\",\"Etc/GMT+2\",\"Etc/GMT+3\",\"Etc/GMT+4\",\"Etc/GMT+5\",\"Etc/GMT+6\",\"Etc/GMT+7\",\"Etc/GMT+8\",\"Etc/GMT+9\",\"Etc/GMT-1\",\"Etc/GMT-10\",\"Etc/GMT-11\",\"Etc/GMT-12\",\"Etc/GMT-2\",\"Etc/GMT-3\",\"Etc/GMT-4\",\"Etc/GMT-5\",\"Etc/GMT-6\",\"Etc/GMT-7\",\"Etc/GMT-8\",\"Etc/GMT-9\",\"Etc/UTC\",\"Europe/Amsterdam\",\"Europe/Andorra\",\"Europe/Astrakhan\",\"Europe/Athens\",\"Europe/Belgrade\",\"Europe/Berlin\",\"Europe/Bratislava\",\"Europe/Brussels\",\"Europe/Bucharest\",\"Europe/Budapest\",\"Europe/Busingen\",\"Europe/Chisinau\",\"Europe/Copenhagen\",\"Europe/Dublin\",\"Europe/Gibraltar\",\"Europe/Guernsey\",\"Europe/Helsinki\",\"Europe/Isle_of_Man\",\"Europe/Istanbul\",\"Europe/Jersey\",\"Europe/Kaliningrad\",\"Europe/Kiev\",\"Europe/Kirov\",\"Europe/Lisbon\",\"Europe/Ljubljana\",\"Europe/London\",\"Europe/Luxembourg\",\"Europe/Madrid\",\"Europe/Malta\",\"Europe/Mariehamn\",\"Europe/Minsk\",\"Europe/Monaco\",\"Europe/Moscow\",\"Europe/Oslo\",\"Europe/Paris\",\"Europe/Podgorica\",\"Europe/Prague\",\"Europe/Riga\",\"Europe/Rome\",\"Europe/Samara\",\"Europe/San_Marino\",\"Europe/Sarajevo\",\"Europe/Saratov\",\"Europe/Simferopol\",\"Europe/Skopje\",\"Europe/Sofia\",\"Europe/Stockholm\",\"Europe/Tallinn\",\"Europe/Tirane\",\"Europe/Ulyanovsk\",\"Europe/Uzhgorod\",\"Europe/Vaduz\",\"Europe/Vienna\",\"Europe/Vilnius\",\"Europe/Volgograd\",\"Europe/Warsaw\",\"Europe/Zagreb\",\"Europe/Zaporozhye\",\"Europe/Zurich\",\"Indian/Antananarivo\",\"Indian/Chagos\",\"Indian/Christmas\",\"Indian/Cocos\",\"Indian/Comoro\",\"Indian/Kerguelen\",\"Indian/Mahe\",\"Indian/Maldives\",\"Indian/Mauritius\",\"Indian/Mayotte\",\"Indian/Reunion\",\"Pacific/Apia\",\"Pacific/Auckland\",\"Pacific/Bougainville\",\"Pacific/Chatham\",\"Pacific/Chuuk\",\"Pacific/Easter\",\"Pacific/Efate\",\"Pacific/Enderbury\",\"Pacific/Fakaofo\",\"Pacific/Fiji\",\"Pacific/Funafuti\",\"Pacific/Galapagos\",\"Pacific/Gambier\",\"Pacific/Guadalcanal\",\"Pacific/Guam\",\"Pacific/Honolulu\",\"Pacific/Kiritimati\",\"Pacific/Kosrae\",\"Pacific/Kwajalein\",\"Pacific/Majuro\",\"Pacific/Marquesas\",\"Pacific/Midway\",\"Pacific/Nauru\",\"Pacific/Niue\",\"Pacific/Norfolk\",\"Pacific/Noumea\",\"Pacific/Pago_Pago\",\"Pacific/Palau\",\"Pacific/Pitcairn\",\"Pacific/Pohnpei\",\"Pacific/Port_Moresby\",\"Pacific/Rarotonga\",\"Pacific/Saipan\",\"Pacific/Tahiti\",\"Pacific/Tarawa\",\"Pacific/Tongatapu\",\"Pacific/Wake\",\"Pacific/Wallis\"];if(W=+W,!(-90<=(Y=+Y)&&Y<=90&&-180<=W&&W<=180))throw new RangeError(\"invalid coordinates\");if(90<=Y)return\"Etc/GMT\";var S=-1,V=48*(180+W)/360.00000000000006,X=24*(90-Y)/180.00000000000003,Z=0|V,M=0|X,G=96*M+2*Z;for(G=56*U.charCodeAt(G)+U.charCodeAt(G+1)-1995;G+T.length<3136;)G=56*U.charCodeAt(G=8*(S=S+G+1)+4*(M=0|(X=2*(X-M)%2))+2*(Z=0|(V=2*(V-Z)%2))+2304)+U.charCodeAt(G+1)-1995;return T[G+T.length-3136]}\"undefined\"!=typeof module&&(module.exports=tzlookup);\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { EventDispatcher, AMEvent } from \"./EventDispatcher\";\r\nimport { Ordering } from \"./Order\";\r\nimport { IClone } from \"./Clone\";\r\nimport * as $array from \"./Array\";\r\nimport * as $iter from \"./Iterator\";\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * Defines evends for [[SortedList]].\r\n */\r\nexport interface ISortedListEvents<A> {\r\n\r\n\t/**\r\n\t * Invoked when new value is inserted into the list.\r\n\t */\r\n\tinserted: {\r\n\t\t/**\r\n\t\t * Index where the element was inserted.\r\n\t\t */\r\n\t\tindex: number;\r\n\r\n\t\t/**\r\n\t\t * Inserted value.\r\n\t\t */\r\n\t\tnewValue: A;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when a value is removed from the list.\r\n\t */\r\n\tremoved: {\r\n\t\t/**\r\n\t\t * Index of the element which was removed.\r\n\t\t */\r\n\t\tindex: number;\r\n\r\n\t\t/**\r\n\t\t * Removed value.\r\n\t\t */\r\n\t\toldValue: A;\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * Ordered list contains values of any type in an indexed array.\r\n */\r\nexport class OrderedList<T> {\r\n\r\n\t/**\r\n\t * Holds list values.\r\n\t */\r\n\tprotected _values: Array<T> = [];\r\n\r\n\t/**\r\n\t * Event dispatcher.\r\n\t */\r\n\tpublic events: EventDispatcher<AMEvent<OrderedList<T>, ISortedListEvents<T>>> = new EventDispatcher();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param initial Inital list of values to add to list\r\n\t */\r\n\tconstructor(initial?: Array<T>) {\r\n\t\tif (initial != null) {\r\n\t\t\tthis.setAll(initial);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * All items of the list.\r\n\t *\r\n\t * Do not modify the list directly. Rather use `insert()` and `remove()`\r\n\t * methods.\r\n\t *\r\n\t * @return List values\r\n\t */\r\n\tpublic get values(): Array<T> {\r\n\t\treturn this._values;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a value into list item array.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tprotected _insert(value: T): number {\r\n\t\tthis._values.push(value);\r\n\t\treturn this._values.length - 1;\r\n\t}\r\n\r\n\t/**\r\n\t * Number of items in the list.\r\n\t *\r\n\t * @readonly\r\n\t * @return Length\r\n\t */\r\n\tpublic get length(): number {\r\n\t\treturn this._values.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the index of the specific `value`.\r\n\t *\r\n\t * -1 if not found.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic indexOf(value: T): number {\r\n\t\treturn $array.indexOf(this._values, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if list contains the `value`.\r\n\t *\r\n\t * @param value Value\r\n\t * @return In the list?\r\n\t */\r\n\tpublic contains(value: T): boolean {\r\n\t\treturn this.indexOf(value) !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an item at specific `index`.\r\n\t *\r\n\t * @param index Index\r\n\t * @return Item\r\n\t */\r\n\tpublic getIndex(index: number): T | undefined {\r\n\t\treturn this._values[index];\r\n\t}\r\n\r\n\t/**\r\n\t * First item in the list.\r\n\t *\r\n\t * @return Item\r\n\t */\r\n\tpublic get first(): T | undefined {\r\n\t\treturn this._values[0];\r\n\t}\r\n\r\n\t/**\r\n\t * Last item in the list.\r\n\t *\r\n\t * @return Item\r\n\t */\r\n\tpublic get last(): T | undefined {\r\n\t\treturn this._values[this._values.length - 1];\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a value into list.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic insert(value: T): void {\r\n\t\tconst index = this._insert(value);\r\n\r\n\t\tif (this.events.isEnabled(\"inserted\")) {\r\n\t\t\tthis.events.dispatchImmediately(\"inserted\", {\r\n\t\t\t\ttype: \"inserted\",\r\n\t\t\t\ttarget: this,\r\n\t\t\t\tindex: index,\r\n\t\t\t\tnewValue: value\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an item with the `value` from the list.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic remove(value: T): void {\r\n\t\tconst index = this.indexOf(value);\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tconst oldValue = this._values[index];\r\n\r\n\t\t\t$array.removeIndex(this._values, index);\r\n\r\n\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: index,\r\n\t\t\t\t\toldValue: oldValue,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets multiple items to the list.\r\n\t *\r\n\t * All current items are removed.\r\n\t *\r\n\t * @param newArray New items\r\n\t */\r\n\tpublic setAll(newArray: Array<T>): void {\r\n\t\t$array.eachReverse(this._values, (x, i) => {\r\n\t\t\tthis._values.pop();\r\n\r\n\t\t\tif (this.events.isEnabled(\"removed\")) {\r\n\t\t\t\tthis.events.dispatchImmediately(\"removed\", {\r\n\t\t\t\t\ttype: \"removed\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tindex: i,\r\n\t\t\t\t\toldValue: x\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$array.each(newArray, (value) => {\r\n\t\t\tthis.insert(value);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all items from the list.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tthis.setAll([]);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns part of the list between `start` and `end` indexes, as a new\r\n\t * [[OrderedList]].\r\n\t *\r\n\t * @param start Start index\r\n\t * @param end End index\r\n\t * @return Items in range\r\n\t */\r\n\tpublic slice(start: number, end: number): OrderedList<T> {\r\n\t\tconst out = new OrderedList<T>();\r\n\r\n\t\tout._values = this._values.slice(start, end);\r\n\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t * Finds a closest available index to the `value` in specified direction.\r\n\t *\r\n\t * @ignore exclude from docs\r\n\t * @param value value to search for\r\n\t * @param fn A callback function that returns value of the item\r\n\t * @param direction Direciton\r\n\t * @return Index\r\n\t */\r\n\tpublic findClosestIndex(value: number, fn: (value: T) => number, direction: \"left\" | \"right\" | \"any\" = \"any\"): number {\r\n\t\t// Init temporary values\r\n\t\tlet closestIndex: number = -1;\r\n\t\tlet closestValue: number;\r\n\t\tlet closestDifference: number;\r\n\r\n\t\tlet i = 0;\r\n\r\n\t\t$iter.eachContinue(this.iterator(), (element) => {\r\n\t\t\tconst item: number = fn(element);\r\n\r\n\t\t\t// Calc difference\r\n\t\t\tif (direction === \"any\") {\r\n\r\n\t\t\t\t// Exact match?\r\n\t\t\t\tif (item === value) {\r\n\t\t\t\t\t// Found exact value - don't bother searching further\r\n\t\t\t\t\tclosestIndex = i;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet difference = Math.abs(value - item);\r\n\t\t\t\tif (!$type.hasValue(closestDifference) || (closestDifference > difference)) {\r\n\t\t\t\t\tclosestIndex = i;\r\n\t\t\t\t\tclosestValue = item;\r\n\t\t\t\t\tclosestDifference = difference;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (direction === \"left\" && (item < value)) {\r\n\t\t\t\tif (!$type.hasValue(closestValue) || (closestValue < item)) {\r\n\t\t\t\t\tclosestIndex = i;\r\n\t\t\t\t\tclosestValue = item;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (direction === \"right\" && (item >= value)) {\r\n\t\t\t\tif (!$type.hasValue(closestValue) || (closestValue >= item)) {\r\n\t\t\t\t\tclosestIndex = i;\r\n\t\t\t\t\tclosestValue = item;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t++i;\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\t// Found nothing?\r\n\t\tif (closestIndex === -1) {\r\n\t\t\tif (direction === \"left\") {\r\n\t\t\t\t// Use First one\r\n\t\t\t\tclosestIndex = 0;\r\n\t\t\t}\r\n\t\t\telse if (direction === \"right\") {\r\n\t\t\t\t// Use last item\r\n\t\t\t\tclosestIndex = this.length - 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn closestIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list iterator.\r\n\t *\r\n\t * @return Iterator\r\n\t */\r\n\tpublic iterator(): $iter.Iterator<T> {\r\n\t\treturn $iter.fromArray(this._values);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an ES6 iterator for the list.\r\n\t */\r\n\tpublic *[Symbol.iterator](): Iterator<T> {\r\n\t\tconst length = this._values.length;\r\n\r\n\t\tfor (let i = 0; i < length; ++i) {\r\n\t\t\tyield this._values[i];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Calls `f` for each element in the list.\r\n\t */\r\n\tpublic each(f: (value: T, index: number) => void): void {\r\n\t\t$array.each(this._values, f);\r\n\t}\r\n}\r\n\r\n/**\r\n * A list where all items are ordered according to specific ordering function,\r\n * which is passed in via constructor parameter, when creating an instance of\r\n * [[SortedList]].\r\n */\r\nexport class SortedList<T> extends OrderedList<T> {\r\n\r\n\t/**\r\n\t * A reference to the ordering function.\r\n\t */\r\n\tprivate _ordering: any;\r\n\r\n\t/**\r\n\t * Constructor.\r\n\t *\r\n\t * @param sort Ordering function\r\n\t */\r\n\tconstructor(sort: (left: T, right: T) => Ordering) {\r\n\t\tsuper();\r\n\t\tthis._ordering = sort;\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts item into the list.\r\n\t *\r\n\t * @param value Item\r\n\t */\r\n\tprotected _insert(value: T): number {\r\n\t\tconst { index } = $array.getSortedIndex(this._values, this._ordering, value);\r\n\r\n\t\t$array.insertIndex(this._values, index, value);\r\n\r\n\t\treturn index;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns index of the item in list if found.\r\n\t *\r\n\t * -1 if item is not in the list.\r\n\t *\r\n\t * @param value Item to search for\r\n\t * @return Index\r\n\t */\r\n\tpublic indexOf(value: T): number {\r\n\t\tconst { found, index } = $array.getSortedIndex(this._values, this._ordering, value);\r\n\r\n\t\tif (found) {\r\n\t\t\treturn index;\r\n\r\n\t\t} else {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [udpate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic update(value: T): void {\r\n\t\t// @todo test this\r\n\t\tconst index = $array.indexOf(this._values, value);\r\n\r\n\t\t// @todo throw an error if it doesn't exist ?\r\n\t\tif (index !== -1) {\r\n\t\t\tconst last = this._values.length - 1;\r\n\r\n\t\t\t// Check if the current ordering is correct\r\n\t\t\tif (!((index === 0 || this._ordering(this._values[index - 1], value) < 0) &&\r\n\t\t\t\t(index === last || this._ordering(value, this._values[index + 1]) < 0))) {\r\n\t\t\t\t// TODO send remove/insert/move events\r\n\t\t\t\t$array.removeIndex(this._values, index);\r\n\t\t\t\tthis._insert(value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * A version of a [[OrderedList]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nexport class OrderedListTemplate<T extends IClone<T> & { isTemplate: boolean }> extends OrderedList<T> {\r\n\r\n\t/**\r\n\t * A template object.\r\n\t *\r\n\t * @todo Make this private\r\n\t */\r\n\tpublic _template!: T;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param t Template object\r\n\t */\r\n\tpublic constructor(t: T) {\r\n\t\tsuper();\r\n\t\tthis.template = t;\r\n\t}\r\n\r\n\t/**\r\n\t * A \"template\" object to copy all properties from when creating new list\r\n\t * items.\r\n\t *\r\n\t * @param v Template object\r\n\t */\r\n\tpublic set template(v: T) {\r\n\t\tv.isTemplate = true;\r\n\t\tthis._template = v;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Template object\r\n\t */\r\n\tpublic get template(): T {\r\n\t\treturn this._template;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all elements from other list.\r\n\t *\r\n\t * @param source Source list\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source.iterator(), (value) => {\r\n\t\t\tthis.insert(value.clone());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns part of the list, starting at `start` and ending at `end` indexes,\r\n\t * as a new [[OrderedListTemplate]].\r\n\t *\r\n\t * @param start Start index\r\n\t * @param end End index\r\n\t * @return New list\r\n\t */\r\n\tpublic slice(start: number, end: number): OrderedListTemplate<T> {\r\n\t\tconst out = new OrderedListTemplate<T>(this.template);\r\n\r\n\t\tout._values = this._values.slice(start, end);\r\n\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t * Instantiates a new object of the specified type, adds it to the end of\r\n\t * the list, and returns it.\r\n\t *\r\n\t * @param make Item type to use. Will use the default type for the list if not specified.\r\n\t * @return Newly created item\r\n\t */\r\n\tpublic create<T>(make: { new(): T; }): T;\r\n\tpublic create(): T;\r\n\tpublic create(make?: { new(): T; }): T {\r\n\t\tconst clone =\r\n\t\t\t(make != null\r\n\t\t\t\t? new make()\r\n\t\t\t\t: this.template.clone());\r\n\r\n\t\tthis.insert(clone);\r\n\r\n\t\treturn clone;\r\n\t}\r\n}\r\n\r\n/**\r\n * A version of a [[SortedList]] that has a \"template\".\r\n *\r\n * A template is an instance of an object, that can be used to create new\r\n * elements in the list without actually needing to create instances for those.\r\n *\r\n * When new element is created in the list, e.g. by calling its `create()`\r\n * method, an exact copy of the element is created (including properties and\r\n * other attributes), inserted into the list and returned.\r\n */\r\nexport class SortedListTemplate<T extends IClone<T> & { isTemplate: boolean }> extends SortedList<T> {\r\n\r\n\t// @todo code duplication\r\n\r\n\t/**\r\n\t * A template object.\r\n\t *\r\n\t * @todo Make this private\r\n\t */\r\n\tpublic _template!: T;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param t Template object\r\n\t * @param sort Ordering function\r\n\t */\r\n\tpublic constructor(t: T, sort: (left: T, right: T) => Ordering) {\r\n\t\tsuper(sort);\r\n\t\tthis.template = t;\r\n\t}\r\n\r\n\t/**\r\n\t * A \"template\" object to copy all properties from when creating new list\r\n\t * items.\r\n\t *\r\n\t * @param v Template object\r\n\t */\r\n\tpublic set template(v: T) {\r\n\t\tv.isTemplate = true;\r\n\t\tthis._template = v;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Template object\r\n\t */\r\n\tpublic get template(): T {\r\n\t\treturn this._template;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all elements from other list.\r\n\t *\r\n\t * @param source Source list\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\t$iter.each(source.iterator(), (value) => {\r\n\t\t\tthis.insert(value.clone());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Instantiates a new object of the specified type, adds it to the end of\r\n\t * the list, and returns it.\r\n\t *\r\n\t * @param make Item type to use. Will use the default type for the list if not specified.\r\n\t * @return Newly created item\r\n\t */\r\n\tpublic create<T>(make: { new(): T; }): T;\r\n\tpublic create(): T;\r\n\tpublic create(make?: { new(): T; }): T {\r\n\t\tconst clone =\r\n\t\t\t(make != null\r\n\t\t\t\t? new make()\r\n\t\t\t\t: this.template.clone());\r\n\r\n\t\tthis.insert(clone);\r\n\r\n\t\treturn clone;\r\n\t}\r\n\r\n}\r\n","/**\r\n * Line drawing functionality.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { color } from \"../utils/Color\";\r\nimport { LinearGradient } from \"../rendering/fills/LinearGradient\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $math from \"../utils/Math\";\r\nimport { IOrientationPoint } from \"../defs/IPoint\";\r\n\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Line]].\r\n */\r\nexport interface ILineProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * X coordinate of first end.\r\n\t */\r\n\tx1?: number;\r\n\r\n\t/**\r\n\t * Y coordinate of first end.\r\n\t */\r\n\ty1?: number;\r\n\r\n\t/**\r\n\t * X coordinate of second end.\r\n\t */\r\n\tx2?: number;\r\n\r\n\t/**\r\n\t * Y coordinate of second end.\r\n\t */\r\n\ty2?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Line]].\r\n */\r\nexport interface ILineEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Line]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ILineAdapters extends ISpriteAdapters, ILineProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a line.\r\n *\r\n * @see {@link ILineEvents} for a list of available events\r\n * @see {@link ILineAdapters} for a list of available Adapters\r\n */\r\nexport class Line extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ILineProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ILineAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILineEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Line\";\r\n\t\tthis.element = this.paper.add(\"line\");\r\n\t\tthis.fill = color(); //\"none\";\r\n\r\n\t\tthis.x1 = 0;\r\n\t\tthis.y1 = 0;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the line.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tif (this.x1 == this.x2 || this.y1 == this.y2) {\r\n\t\t\tthis.pixelPerfect = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.pixelPerfect = false;\r\n\t\t}\r\n\r\n\t\tthis.x1 = this.x1;\r\n\t\tthis.x2 = this.x2;\r\n\r\n\t\tthis.y1 = this.y1;\r\n\t\tthis.y2 = this.y2;\r\n\t}\r\n\r\n\t/**\r\n\t * X coordinate of first end.\r\n\t *\r\n\t * @param value X\r\n\t */\r\n\tpublic set x1(value: number) {\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tlet delta = 0;\r\n\t\tif (this.pixelPerfect && this.stroke instanceof LinearGradient) {\r\n\t\t\tdelta = 0.00001;\r\n\t\t}\r\n\r\n\t\tthis.setPropertyValue(\"x1\", value, true);\r\n\t\tthis.element.attr({ \"x1\": value + delta });\r\n\t}\r\n\r\n\t/**\r\n\t * @return X\r\n\t */\r\n\tpublic get x1(): number {\r\n\t\treturn this.getPropertyValue(\"x1\");\r\n\t}\r\n\r\n\t/**\r\n\t * X coordinate of second end.\r\n\t *\r\n\t * @param value X\r\n\t */\r\n\tpublic set x2(value: number) {\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tthis.setPropertyValue(\"x2\", value, true);\r\n\t\tthis.element.attr({ \"x2\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return X\r\n\t */\r\n\tpublic get x2(): number {\r\n\t\tlet value = this.getPropertyValue(\"x2\");\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.pixelWidth;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate of first end.\r\n\t *\r\n\t * @param value Y\r\n\t */\r\n\tpublic set y1(value: number) {\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\r\n\t\tlet delta = 0;\r\n\t\tif (this.pixelPerfect && this.stroke instanceof LinearGradient) {\r\n\t\t\tdelta = 0.00001;\r\n\t\t}\r\n\r\n\t\tthis.setPropertyValue(\"y1\", value, true);\r\n\t\tthis.element.attr({ \"y1\": value + delta });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y\r\n\t */\r\n\tpublic get y1(): number {\r\n\t\treturn this.getPropertyValue(\"y1\");\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate of second end.\r\n\t *\r\n\t * @param value Y\r\n\t */\r\n\tpublic set y2(value: number) {\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tthis.setPropertyValue(\"y2\", value, true);\r\n\t\tthis.element.attr({ \"y2\": value });\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y\r\n\t */\r\n\tpublic get y2(): number {\r\n\t\tlet value = this.getPropertyValue(\"y2\");\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.pixelHeight;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position along the line (0-1) into pixel coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinates\r\n\t */\r\n\tpublic positionToPoint(position: number): IOrientationPoint {\r\n\t\tlet point1 = { x: this.x1, y: this.y1 };\r\n\t\tlet point2 = { x: this.x2, y: this.y2 };\r\n\t\tlet point = $math.getMidPoint(point1, point2, position);\r\n\t\tlet angle = $math.getAngle(point1, point2);\r\n\r\n\t\treturn {x:point.x, y:point.y, angle:angle};\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Line\"] = Line;\r\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseOutlined = _interopRequireDefault(require('./lib/icons/CloseOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseOutlined;\n exports.default = _default;\n module.exports = _default;","/**\n * amCharts 4 locale\n * \n * Locale: en\n * Language: International English\n * Author: Martynas Majeris\n *\n * Follow instructions in [on this page](https://www.amcharts.com/docs/v4/tutorials/creating-translations/) to make corrections or add new translations.\n *\n * ---\n * Edit but leave the header section above this line. You can remove any\n * subsequent comment sections.\n * ---\n *\n * Use this file as a template to create translations. Leave the key part in\n * English intact. Fill the value with a translation.\n *\n * Empty string means no translation, so default \"International English\"\n * will be used.\n *\n * If you need the translation to literally be an empty string, use `null`\n * instead.\n *\n * IMPORTANT:\n * When translating make good effort to keep the translation length\n * at least the same chartcount as the English, especially for short prompts.\n *\n * Having significantly longer prompts may distort the actual charts.\n *\n * NOTE:\n * Some prompts - like months or weekdays - come in two versions: full and\n * shortened.\n *\n * If there's no official shortened version of these in your language, and it\n * would not be possible to invent such short versions that don't seem weird\n * to native speakers of that language, fill those with the same as full\n * version.\n *\n * PLACEHOLDERS:\n * Some prompts have placeholders like \"%1\". Those will be replaced by actual\n * values during translation and should be retained in the translated prompts.\n *\n * Placeholder positions may be changed to better suit structure of the\n * sentence.\n *\n * For example \"From %1 to %2\", when actually used will replace \"%1\" with an\n * actual value representing range start, and \"%2\" will be replaced by end\n * value.\n *\n * E.g. in a Scrollbar for Value axis \"From %1 to %2\" will become\n * \"From 100 to 200\". You may translate \"From\" and \"to\", as well as re-arrange\n * the order of the prompt itself, but make sure the \"%1\" and \"%2\" remain, in\n * places where they will make sense.\n *\n * Save the file as language_LOCALE, i.e. `en_GB.ts`, `fr_FR.ts`, etc.\n */\nexport default {\n\t// Number formatting options.\n\t// \n\t// Please check with the local standards which separator is accepted to be\n\t// used for separating decimals, and which for thousands.\n\t\"_decimalSeparator\": \".\",\n\t\"_thousandSeparator\": \",\",\n\n\t// Suffixes for numbers\n\t// When formatting numbers, big or small numers might be reformatted to\n\t// shorter version, by applying a suffix.\n\t// \n\t// For example, 1000000 might become \"1m\".\n\t// Or 1024 might become \"1KB\" if we're formatting byte numbers.\n\t// \n\t// This section defines such suffixes for all such cases.\n\t\"_big_number_suffix_3\": \"k\",\n\t\"_big_number_suffix_6\": \"M\",\n\t\"_big_number_suffix_9\": \"G\",\n\t\"_big_number_suffix_12\": \"T\",\n\t\"_big_number_suffix_15\": \"P\",\n\t\"_big_number_suffix_18\": \"E\",\n\t\"_big_number_suffix_21\": \"Z\",\n\t\"_big_number_suffix_24\": \"Y\",\n\n\t\"_small_number_suffix_3\": \"m\",\n\t\"_small_number_suffix_6\": \"μ\",\n\t\"_small_number_suffix_9\": \"n\",\n\t\"_small_number_suffix_12\": \"p\",\n\t\"_small_number_suffix_15\": \"f\",\n\t\"_small_number_suffix_18\": \"a\",\n\t\"_small_number_suffix_21\": \"z\",\n\t\"_small_number_suffix_24\": \"y\",\n\n\t\"_byte_suffix_B\": \"B\",\n\t\"_byte_suffix_KB\": \"KB\",\n\t\"_byte_suffix_MB\": \"MB\",\n\t\"_byte_suffix_GB\": \"GB\",\n\t\"_byte_suffix_TB\": \"TB\",\n\t\"_byte_suffix_PB\": \"PB\",\n\n\t// Default date formats for various periods.\n\t// \n\t// This should reflect official or de facto formatting universally accepted\n\t// in the country translation is being made for\n\t// Available format codes here:\n\t// https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/#Format_codes\n\t// \n\t// This will be used when formatting date/time for particular granularity,\n\t// e.g. \"_date_hour\" will be shown whenever we need to show time as hours.\n\t// \n\t// \"date\" is used as in default date format when showing standalone dates.\n\t\"_date\": \"yyyy-MM-dd\",\n\t\"_date_millisecond\": \"mm:ss SSS\",\n\t\"_date_second\": \"HH:mm:ss\",\n\t\"_date_minute\": \"HH:mm\",\n\t\"_date_hour\": \"HH:mm\",\n\t\"_date_day\": \"MMM dd\",\n\t\"_date_week\": \"ww\",\n\t\"_date_month\": \"MMM\",\n\t\"_date_year\": \"yyyy\",\n\n\t// Default duration formats for various base units.\n\t// \n\t// This will be used by DurationFormatter to format numeric values into\n\t// duration.\n\t// \n\t// Notice how each duration unit comes in several versions. This is to ensure\n\t// that each base unit is shown correctly.\n\t// \n\t// For example, if we have baseUnit set to \"second\", meaning our duration is\n\t// in seconds.\n\t// \n\t// If we pass in `50` to formatter, it will know that we have just 50 seconds\n\t// (less than a minute) so it will use format in `\"_duration_second\"` (\"ss\"),\n\t// and the formatted result will be in like `\"50\"`.\n\t// \n\t// If we pass in `70`, which is more than a minute, the formatter will switch\n\t// to `\"_duration_second_minute\"` (\"mm:ss\"), resulting in \"01:10\" formatted\n\t// text.\n\t// \n\t// Available codes here:\n\t// https://www.amcharts.com/docs/v4/concepts/formatters/formatting-duration/#Available_Codes\n\t\"_duration_millisecond\": \"SSS\",\n\t\"_duration_millisecond_second\": \"ss.SSS\",\n\t\"_duration_millisecond_minute\": \"mm:ss SSS\",\n\t\"_duration_millisecond_hour\": \"hh:mm:ss SSS\",\n\t\"_duration_millisecond_day\": \"d'd' mm:ss SSS\",\n\t\"_duration_millisecond_week\": \"d'd' mm:ss SSS\",\n\t\"_duration_millisecond_month\": \"M'm' dd'd' mm:ss SSS\",\n\t\"_duration_millisecond_year\": \"y'y' MM'm' dd'd' mm:ss SSS\",\n\n\t\"_duration_second\": \"ss\",\n\t\"_duration_second_minute\": \"mm:ss\",\n\t\"_duration_second_hour\": \"hh:mm:ss\",\n\t\"_duration_second_day\": \"d'd' hh:mm:ss\",\n\t\"_duration_second_week\": \"d'd' hh:mm:ss\",\n\t\"_duration_second_month\": \"M'm' dd'd' hh:mm:ss\",\n\t\"_duration_second_year\": \"y'y' MM'm' dd'd' hh:mm:ss\",\n\n\t\"_duration_minute\": \"mm\",\n\t\"_duration_minute_hour\": \"hh:mm\",\n\t\"_duration_minute_day\": \"d'd' hh:mm\",\n\t\"_duration_minute_week\": \"d'd' hh:mm\",\n\t\"_duration_minute_month\": \"M'm' dd'd' hh:mm\",\n\t\"_duration_minute_year\": \"y'y' MM'm' dd'd' hh:mm\",\n\n\t\"_duration_hour\": \"hh'h'\",\n\t\"_duration_hour_day\": \"d'd' hh'h'\",\n\t\"_duration_hour_week\": \"d'd' hh'h'\",\n\t\"_duration_hour_month\": \"M'm' dd'd' hh'h'\",\n\t\"_duration_hour_year\": \"y'y' MM'm' dd'd' hh'h'\",\n\n\t\"_duration_day\": \"d'd'\",\n\t\"_duration_day_week\": \"d'd'\",\n\t\"_duration_day_month\": \"M'm' dd'd'\",\n\t\"_duration_day_year\": \"y'y' MM'm' dd'd'\",\n\n\t\"_duration_week\": \"w'w'\",\n\t\"_duration_week_month\": \"w'w'\",\n\t\"_duration_week_year\": \"w'w'\",\n\n\t\"_duration_month\": \"M'm'\",\n\t\"_duration_month_year\": \"y'y' MM'm'\",\n\n\t\"_duration_year\": \"y'y'\",\n\n\t// Era translations\n\t\"_era_ad\": \"AD\",\n\t\"_era_bc\": \"BC\",\n\n\t// Day part, used in 12-hour formats, e.g. 5 P.M.\n\t// Please note that these come in 3 variants:\n\t// * one letter (e.g. \"A\")\n\t// * two letters (e.g. \"AM\")\n\t// * two letters with dots (e.g. \"A.M.\")\n\t// \n\t// All three need to to be translated even if they are all the same. Some\n\t// users might use one, some the other.\n\t\"A\": \"\",\n\t\"P\": \"\",\n\t\"AM\": \"\",\n\t\"PM\": \"\",\n\t\"A.M.\": \"\",\n\t\"P.M.\": \"\",\n\n\t// Date-related stuff.\n\t// \n\t// When translating months, if there's a difference, use the form which is\n\t// best for a full date, e.g. as you would use it in \"2018 January 1\".\n\t// \n\t// Note that May is listed twice. This is because in English May is the same\n\t// in both long and short forms, while in other languages it may not be the\n\t// case. Translate \"May\" to full word, while \"May(short)\" to shortened\n\t// version.\n\t// \n\t// Should month names and weekdays be capitalized or not?\n\t// \n\t// Rule of thumb is this: if the names should always be capitalized,\n\t// regardless of name position within date (\"January\", \"21st January 2018\",\n\t// etc.) use capitalized names. Otherwise enter all lowercase.\n\t// \n\t// The date formatter will automatically capitalize names if they are the\n\t// first (or only) word in resulting date.\n\t\"January\": \"\",\n\t\"February\": \"\",\n\t\"March\": \"\",\n\t\"April\": \"\",\n\t\"May\": \"\",\n\t\"June\": \"\",\n\t\"July\": \"\",\n\t\"August\": \"\",\n\t\"September\": \"\",\n\t\"October\": \"\",\n\t\"November\": \"\",\n\t\"December\": \"\",\n\t\"Jan\": \"\",\n\t\"Feb\": \"\",\n\t\"Mar\": \"\",\n\t\"Apr\": \"\",\n\t\"May(short)\": \"May\",\n\t\"Jun\": \"\",\n\t\"Jul\": \"\",\n\t\"Aug\": \"\",\n\t\"Sep\": \"\",\n\t\"Oct\": \"\",\n\t\"Nov\": \"\",\n\t\"Dec\": \"\",\n\n\t// Weekdays.\n\t\"Sunday\": \"\",\n\t\"Monday\": \"\",\n\t\"Tuesday\": \"\",\n\t\"Wednesday\": \"\",\n\t\"Thursday\": \"\",\n\t\"Friday\": \"\",\n\t\"Saturday\": \"\",\n\t\"Sun\": \"\",\n\t\"Mon\": \"\",\n\t\"Tue\": \"\",\n\t\"Wed\": \"\",\n\t\"Thu\": \"\",\n\t\"Fri\": \"\",\n\t\"Sat\": \"\",\n\n\t// Date ordinal function.\n\t// \n\t// This is used when adding number ordinal when formatting days in dates.\n\t// \n\t// E.g. \"January 1st\", \"February 2nd\".\n\t// \n\t// The function accepts day number, and returns a string to be added to the\n\t// day, like in default English translation, if we pass in 2, we will receive\n\t// \"nd\" back.\n\t\"_dateOrd\": function(day: number): string {\n\t\tlet res = \"th\";\n\t\tif ((day < 11) || (day > 13)) {\n\t\t\tswitch (day % 10) {\n\t\t\t\tcase 1:\n\t\t\t\t\tres = \"st\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tres = \"nd\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tres = \"rd\"\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t},\n\n\t// Various chart controls.\n\t// Shown as a tooltip on zoom out button.\n\t\"Zoom Out\": \"\",\n\n\t// Timeline buttons\n\t\"Play\": \"\",\n\t\"Stop\": \"\",\n\n\t// Chart's Legend screen reader title.\n\t\"Legend\": \"\",\n\n\t// Legend's item screen reader indicator.\n\t\"Click, tap or press ENTER to toggle\": \"\",\n\n\t// Shown when the chart is busy loading something.\n\t\"Loading\": \"\",\n\n\t// Shown as the first button in the breadcrumb navigation, e.g.:\n\t// Home > First level > ...\n\t\"Home\": \"\",\n\n\t// Chart types.\n\t// Those are used as default screen reader titles for the main chart element\n\t// unless developer has set some more descriptive title.\n\t\"Chart\": \"\",\n\t\"Serial chart\": \"\",\n\t\"X/Y chart\": \"\",\n\t\"Pie chart\": \"\",\n\t\"Gauge chart\": \"\",\n\t\"Radar chart\": \"\",\n\t\"Sankey diagram\": \"\",\n\t\"Flow diagram\": \"\",\n\t\"Chord diagram\": \"\",\n\t\"TreeMap chart\": \"\",\n\t\"Force directed tree\": \"\",\n\t\"Sliced chart\": \"\",\n\n\t// Series types.\n\t// Used to name series by type for screen readers if they do not have their\n\t// name set.\n\t\"Series\": \"\",\n\t\"Candlestick Series\": \"\",\n\t\"OHLC Series\": \"\",\n\t\"Column Series\": \"\",\n\t\"Line Series\": \"\",\n\t\"Pie Slice Series\": \"\",\n\t\"Funnel Series\": \"\",\n\t\"Pyramid Series\": \"\",\n\t\"X/Y Series\": \"\",\n\n\t// Map-related stuff.\n\t\"Map\": \"\",\n\t\"Press ENTER to zoom in\": \"\",\n\t\"Press ENTER to zoom out\": \"\",\n\t\"Use arrow keys to zoom in and out\": \"\",\n\t\"Use plus and minus keys on your keyboard to zoom in and out\": \"\",\n\n\t// Export-related stuff.\n\t// These prompts are used in Export menu labels.\n\t// \n\t// \"Export\" is the top-level menu item.\n\t// \n\t// \"Image\", \"Data\", \"Print\" as second-level indicating type of export\n\t// operation.\n\t// \n\t// Leave actual format untranslated, unless you absolutely know that they\n\t// would convey more meaning in some other way.\n\t\"Export\": \"\",\n\t\"Image\": \"\",\n\t\"Data\": \"\",\n\t\"Print\": \"\",\n\t\"Click, tap or press ENTER to open\": \"\",\n\t\"Click, tap or press ENTER to print.\": \"\",\n\t\"Click, tap or press ENTER to export as %1.\": \"\",\n\t'To save the image, right-click this link and choose \"Save picture as...\"': \"\",\n\t'To save the image, right-click thumbnail on the left and choose \"Save picture as...\"': \"\",\n\t\"(Press ESC to close this message)\": \"\",\n\t\"Image Export Complete\": \"\",\n\t\"Export operation took longer than expected. Something might have gone wrong.\": \"\",\n\t\"Saved from\": \"\",\n\t\"PNG\": \"\",\n\t\"JPG\": \"\",\n\t\"GIF\": \"\",\n\t\"SVG\": \"\",\n\t\"PDF\": \"\",\n\t\"JSON\": \"\",\n\t\"CSV\": \"\",\n\t\"XLSX\": \"\",\n\n\t// Scrollbar-related stuff.\n\t// \n\t// Scrollbar is a control which can zoom and pan the axes on the chart.\n\t// \n\t// Each scrollbar has two grips: left or right (for horizontal scrollbar) or\n\t// upper and lower (for vertical one).\n\t// \n\t// Prompts change in relation to whether Scrollbar is vertical or horizontal.\n\t// \n\t// The final section is used to indicate the current range of selection.\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\": \"\",\n\t\"Use left and right arrows to move selection\": \"\",\n\t\"Use left and right arrows to move left selection\": \"\",\n\t\"Use left and right arrows to move right selection\": \"\",\n\t\"Use TAB select grip buttons or up and down arrows to change selection\": \"\",\n\t\"Use up and down arrows to move selection\": \"\",\n\t\"Use up and down arrows to move lower selection\": \"\",\n\t\"Use up and down arrows to move upper selection\": \"\",\n\t\"From %1 to %2\": \"\",\n\t\"From %1\": \"\",\n\t\"To %1\": \"\",\n\n\t// Data loader-related.\n\t\"No parser available for file: %1\": \"\",\n\t\"Error parsing file: %1\": \"\",\n\t\"Unable to load file: %1\": \"\",\n\t\"Invalid date\": \"\",\n\n\t// Common actions\n\t\"Close\": \"\",\n\t\"Minimize\": \"\"\n\n};","/**\r\n * Language module contains everything related to language-specific operations:\r\n * * Translating prompts\r\n * * Translating functions\r\n * * Date format localizations\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents, IBaseObjectEvents } from \"../Base\";\r\nimport { Adapter } from \"./Adapter\";\r\nimport { AMEvent } from \"./EventDispatcher\";\r\nimport * as $array from \"./Array\";\r\nimport * as $type from \"./Type\";\r\nimport en from \"../../../lang/en\";\r\nimport { options } from \"../Options\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines events for [[Language]].\r\n */\r\nexport interface ILanguageEvents extends IBaseObjectEvents {\r\n\r\n\t/**\r\n\t * Invoked when locale is changed by user.\r\n\t */\r\n\tlocalechanged: {\r\n\t\tlocale: ILocale;\r\n\t};\r\n\r\n};\r\n\r\n\r\n/**\r\n * Defines properties that exist for the locale.\r\n */\r\nexport interface ILocaleProperties {\r\n\t// number formatter related\r\n\t\"_decimalSeparator\"?: string;\r\n\t\"_thousandSeparator\"?: string;\r\n\r\n\t\"_big_number_suffix_3\"?: string;\r\n\t\"_big_number_suffix_6\"?: string;\r\n\t\"_big_number_suffix_9\"?: string;\r\n\t\"_big_number_suffix_12\"?: string;\r\n\t\"_big_number_suffix_15\"?: string;\r\n\t\"_big_number_suffix_18\"?: string;\r\n\t\"_big_number_suffix_21\"?: string;\r\n\t\"_big_number_suffix_24\"?: string;\r\n\r\n\t\"_small_number_suffix_24\"?: string;\r\n\t\"_small_number_suffix_21\"?: string;\r\n\t\"_small_number_suffix_18\"?: string;\r\n\t\"_small_number_suffix_15\"?: string;\r\n\t\"_small_number_suffix_12\"?: string;\r\n\t\"_small_number_suffix_9\"?: string;\r\n\t\"_small_number_suffix_6\"?: string;\r\n\t\"_small_number_suffix_3\"?: string;\r\n\r\n\t\"_byte_suffix_B\"?: string;\r\n\t\"_byte_suffix_KB\"?: string;\r\n\t\"_byte_suffix_MB\"?: string;\r\n\t\"_byte_suffix_GB\"?: string;\r\n\t\"_byte_suffix_TB\"?: string;\r\n\t\"_byte_suffix_PB\"?: string;\r\n\r\n\t// Default date formats for various periods\r\n\t\"_date\"?: string;\r\n\t\"_date_millisecond\"?: string;\r\n\t\"_date_second\"?: string;\r\n\t\"_date_minute\"?: string;\r\n\t\"_date_hour\"?: string;\r\n\t\"_date_day\"?: string;\r\n\t\"_date_week\"?: string;\r\n\t\"_date_month\"?: string;\r\n\t\"_date_year\"?: string;\r\n\r\n\t// Default duration formats for various base units\r\n\t\"_duration_millisecond\"?: string;\r\n\t\"_duration_millisecond_second\"?: string;\r\n\t\"_duration_millisecond_minute\"?: string;\r\n\t\"_duration_millisecond_hour\"?: string;\r\n\t\"_duration_millisecond_day\"?: string;\r\n\t\"_duration_millisecond_week\"?: string;\r\n\t\"_duration_millisecond_month\"?: string;\r\n\t\"_duration_millisecond_year\"?: string;\r\n\r\n\t\"_duration_second\"?: string;\r\n\t\"_duration_second_minute\"?: string;\r\n\t\"_duration_second_hour\"?: string;\r\n\t\"_duration_second_day\"?: string;\r\n\t\"_duration_second_week\"?: string;\r\n\t\"_duration_second_month\"?: string;\r\n\t\"_duration_second_year\"?: string;\r\n\r\n\t\"_duration_minute\"?: string;\r\n\t\"_duration_minute_hour\"?: string;\r\n\t\"_duration_minute_day\"?: string;\r\n\t\"_duration_minute_week\"?: string;\r\n\t\"_duration_minute_month\"?: string;\r\n\t\"_duration_minute_year\"?: string;\r\n\r\n\t\"_duration_hour\"?: string;\r\n\t\"_duration_hour_day\"?: string;\r\n\t\"_duration_hour_week\"?: string;\r\n\t\"_duration_hour_month\"?: string;\r\n\t\"_duration_hour_year\"?: string;\r\n\r\n\t\"_duration_day\"?: string;\r\n\t\"_duration_day_week\"?: string;\r\n\t\"_duration_day_month\"?: string;\r\n\t\"_duration_day_year\"?: string;\r\n\r\n\t\"_duration_week\"?: string;\r\n\t\"_duration_week_month\"?: string;\r\n\t\"_duration_week_year\"?: string;\r\n\r\n\t\"_duration_month\"?: string;\r\n\t\"_duration_month_year\"?: string;\r\n\r\n\t\"_duration_year\"?: string;\r\n\r\n\t// Era\r\n\t\"_era_ad\"?: string;\r\n\t\"_era_bc\"?: string;\r\n\r\n\t// Period\r\n\t\"A\"?: string;\r\n\t\"P\"?: string;\r\n\t\"AM\"?: string;\r\n\t\"PM\"?: string;\r\n\t\"A.M.\"?: string;\r\n\t\"P.M.\"?: string;\r\n\r\n\t// Dates\r\n\t\"January\"?: string;\r\n\t\"February\"?: string;\r\n\t\"March\"?: string;\r\n\t\"April\"?: string;\r\n\t\"May\"?: string;\r\n\t\"June\"?: string;\r\n\t\"July\"?: string;\r\n\t\"August\"?: string;\r\n\t\"September\"?: string;\r\n\t\"October\"?: string;\r\n\t\"November\"?: string;\r\n\t\"December\"?: string;\r\n\t\"Jan\"?: string;\r\n\t\"Feb\"?: string;\r\n\t\"Mar\"?: string;\r\n\t\"Apr\"?: string;\r\n\t\"May(short)\"?: string;\r\n\t\"Jun\"?: string;\r\n\t\"Jul\"?: string;\r\n\t\"Aug\"?: string;\r\n\t\"Sep\"?: string;\r\n\t\"Oct\"?: string;\r\n\t\"Nov\"?: string;\r\n\t\"Dec\"?: string;\r\n\t\"Sunday\"?: string;\r\n\t\"Monday\"?: string;\r\n\t\"Tuesday\"?: string;\r\n\t\"Wednesday\"?: string;\r\n\t\"Thursday\"?: string;\r\n\t\"Friday\"?: string;\r\n\t\"Saturday\"?: string;\r\n\t\"Sun\"?: string;\r\n\t\"Mon\"?: string;\r\n\t\"Tue\"?: string;\r\n\t\"Wed\"?: string;\r\n\t\"Thu\"?: string;\r\n\t\"Fri\"?: string;\r\n\t\"Sat\"?: string;\r\n\r\n\t// Chart elements\r\n\t\"Zoom Out\"?: string;\r\n\t\"Play\"?: string;\r\n\t\"Stop\"?: string;\r\n\t\"Legend\"?: string;\r\n\t\"Click, tap or press ENTER to toggle\"?: string;\r\n\t\"Loading\"?: string;\r\n\t\"%1 shown\"?: string;\r\n\t\"%1 hidden\"?: string;\r\n\r\n\t// Chart types\r\n\t\"Chart\"?: string;\r\n\t\"Serial chart\"?: string;\r\n\t\"X/Y chart\"?: string;\r\n\t\"Pie chart\"?: string;\r\n\t\"Sunburst chart\"?: string;\r\n\t\"Gauge chart\"?: string;\r\n\t\"Radar chart\"?: string;\r\n\t\"Sankey diagram\"?: string;\r\n\t\"Flow diagram\"?: string;\r\n\t\"Chord diagram\"?: string;\r\n\t\"TreeMap chart\"?: string;\r\n\t\"Force directed tree\"?: string;\r\n\t\"Sliced chart\"?: string;\r\n\r\n\t// Series types\r\n\t\"Series\"?: string;\r\n\t\"Candlestick Series\"?: string;\r\n\t\"OHLC Series\"?: string;\r\n\t\"Column Series\"?: string;\r\n\t\"Line Series\"?: string;\r\n\t\"Pie Slice Series\"?: string;\r\n\t\"Funnel Series\"?: string;\r\n\t\"Pyramid Series\"?: string;\r\n\t\"X/Y Series\"?: string;\r\n\r\n\t// Map-related\r\n\t\"Map\"?: string;\r\n\t\"Press ENTER to zoom in\"?: string;\r\n\t\"Press ENTER to zoom out\"?: string;\r\n\t\"Use arrow keys to zoom in and out\"?: string;\r\n\t\"Use plus and minus keys on your keyboard to zoom in and out\"?: string;\r\n\t\"Home\"?: string;\r\n\t\"Zoom level changed to %1\"?: string;\r\n\r\n\t// Export-related\r\n\t\"Export\"?: string;\r\n\t\"Image\"?: string;\r\n\t\"Data\"?: string;\r\n\t\"Print\"?: string;\r\n\t\"Click, tap or press ENTER to open\"?: string;\r\n\t\"Click, tap or press ENTER to print.\"?: string;\r\n\t\"Click, tap or press ENTER to export as %1.\"?: string;\r\n\t'To save the image, right-click this link and choose \"Save picture as...\"': string;\r\n\t'To save the image, right-click thumbnail on the left and choose \"Save picture as...\"': string;\r\n\t\"(Press ESC to close this message)\"?: string;\r\n\t\"Image Export Complete\"?: string;\r\n\t\"Export operation took longer than expected. Something might have gone wrong.\"?: string;\r\n\t\"Saved from\"?: string;\r\n\t\"PNG\"?: string;\r\n\t\"JPG\"?: string;\r\n\t\"GIF\"?: string;\r\n\t\"SVG\"?: string;\r\n\t\"PDF\"?: string;\r\n\t\"JSON\"?: string;\r\n\t\"CSV\"?: string;\r\n\t\"XLSX\"?: string;\r\n\r\n\t// Scrollbar-related\r\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\"?: string;\r\n\t\"Use left and right arrows to move selection\"?: string;\r\n\t\"Use left and right arrows to move left selection\"?: string;\r\n\t\"Use left and right arrows to move right selection\"?: string;\r\n\t\"Use TAB select grip buttons or up and down arrows to change selection\"?: string;\r\n\t\"Use up and down arrows to move selection\"?: string;\r\n\t\"Use up and down arrows to move lower selection\"?: string;\r\n\t\"Use up and down arrows to move upper selection\"?: string;\r\n\t\"From %1 to %2\"?: string;\r\n\t\"From %1\"?: string;\r\n\t\"To %1\"?: string;\r\n\r\n\t// Data loader-related\r\n\t\"No parser available for file: %1\"?: string;\r\n\t\"Error parsing file: %1\"?: string;\r\n\t\"Unable to load file: %1\"?: string;\r\n\t\"Invalid date\"?: string;\r\n\r\n\t// Common actions\r\n\t\"Close\"?: string;\r\n\t\"Minimize\"?: string;\r\n\r\n\t\"Venn Series\"?: string;\r\n\t\"Venn Diagram\"?: string;\r\n}\r\n\r\n/**\r\n * Defines functions that exist for the locale.\r\n */\r\nexport interface ILocaleFunctions {\r\n\t// ordinal function\r\n\t\"_dateOrd\": (day: number) => string;\r\n}\r\n\r\n/**\r\n * Defines all of the defaults for locale properties.\r\n */\r\nexport interface ILocaleDefault extends ILocaleProperties, ILocaleFunctions { }\r\n\r\n/**\r\n * Defines locale interface.\r\n */\r\nexport interface ILocale extends Partial<ILocaleDefault> { };\r\n\r\n/**\r\n * Represents a list of available adapters for Language.\r\n */\r\nexport interface ILanguageAdapters {\r\n\r\n\t/**\r\n\t * Applied to result whenever retrieving currently set locale.\r\n\t */\r\n\tlocale: {\r\n\t\tlocale: ILocale\r\n\t},\r\n\r\n\t/**\r\n\t * Applied to a translation.\r\n\t */\r\n\ttranslate: {\r\n\t\ttranslation: string,\r\n\t\tlocale?: ILocale\r\n\t},\r\n\r\n\t/**\r\n\t * Applied to all of the locale translations.\r\n\t */\r\n\ttranslations: {\r\n\t\ttranslations: any,\r\n\t\tlocale?: ILocale\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Handles all language-related tasks, like loading and storing translations,\r\n * translating prompts, lists of prompts and even functions.\r\n *\r\n * Almost every object in amCharts4 universe will have a `language` property,\r\n * which can be accessed for prompt translation.\r\n *\r\n * @see {@link ILanguageAdapters} for a list of available Adapters\r\n * @todo Make prompt keys case-insensitive\r\n * @important\r\n */\r\nexport class Language extends BaseObjectEvents {\r\n\t/**\r\n\t * Defines type used in the Sprite.\r\n\t */\r\n\tpublic _adapter!: ILanguageAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ILanguageEvents;\r\n\r\n\t/**\r\n\t * Adapter.\r\n\t */\r\n\tpublic adapter: Adapter<this, this[\"_adapter\"]> = new Adapter(this);\r\n\r\n\t/**\r\n\t * Current locale.\r\n\t */\r\n\tprotected _locale: ILocale = en;\r\n\r\n\t/**\r\n\t * Default locale. A locale to fall back to if none is specified, or\r\n\t * if there's no translation for the prompt for the current language.\r\n\t */\r\n\tprotected _defaultLocale: ILocaleDefault = en;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Language\";\r\n\r\n\t\t// Set default language if necessary\r\n\t\tif ($type.hasValue(options.defaultLocale)) {\r\n\t\t\tthis.locale = options.defaultLocale;\r\n\t\t}\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns locale that is currently used.\r\n\t *\r\n\t * @param locale Force locale. Will use current language if not set.\r\n\t * @return Locale\r\n\t */\r\n\tprotected getLocale(locale?: ILocale): ILocale {\r\n\t\tif (locale == null) {\r\n\t\t\tlocale = this._locale;\r\n\t\t}\r\n\r\n\t\treturn this.adapter.apply(\"locale\", {\r\n\t\t\tlocale: locale\r\n\t\t}).locale;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the translation of the string.\r\n\t *\r\n\t * If the translation is empty, it will return untranslated prompt.\r\n\t *\r\n\t * Third parameter and up are strings that can be used to replace \"%X\"\r\n\t * placeholders in prompt.\r\n\t *\r\n\t * E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * // Results in \"This is a first translation test\"\r\n\t * chart.language.translate(\"This is a %1 translation %2\", null, \"first\", \"test\");\r\n\t * ```\r\n\t * ```JavaScriptScript\r\n\t * // Results in \"This is a first translation test\"\r\n\t * chart.language.translate(\"This is a %1 translation %2\", null, \"first\", \"test\");\r\n\t * ```\r\n\t *\r\n\t * @param prompt A string to translate\r\n\t * @param locale Force translation into specific locale, e.g. fr_FR\r\n\t * @param rest Parameters to replace in string\r\n\t * @return Translation\r\n\t */\r\n\tpublic translate<Key extends keyof ILocaleProperties>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\r\n\r\n\t\t// Get langauge\r\n\t\tlocale = this.getLocale(locale);\r\n\r\n\t\t// Init translation\r\n\t\tlet translation: string = prompt;\r\n\r\n\t\t// Get translations for the locale\r\n\t\tlet translations = this.getTranslations(locale);\r\n\r\n\t\tlet value: $type.Optional<ILocaleDefault[Key]> = translations[prompt];\r\n\r\n\t\t// Try to look for the translation\r\n\t\tif (value === null) {\r\n\t\t\tvalue = \"\";\r\n\t\t}\r\n\t\telse if ($type.hasValue(value)) {\r\n\t\t\t// It might be an empty string\r\n\t\t\tif (value) {\r\n\t\t\t\ttranslation = value!;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (locale !== this._defaultLocale) {\r\n\t\t\t// Try to look in default language\r\n\t\t\treturn this.translate(prompt, this._defaultLocale, ...rest);\r\n\t\t}\r\n\r\n\t\t// Replace %1, %2, etc params\r\n\t\tif (rest.length) {\r\n\t\t\tfor (let len = rest.length, i = 0; i < len; ++i) {\r\n\t\t\t\ttranslation = translation.split(\"%\" + (i + 1)).join(rest[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Return the translation\r\n\t\treturn this.adapter.apply(\"translate\", {\r\n\t\t\ttranslation: translation,\r\n\t\t\tlocale: locale\r\n\t\t}).translation;\r\n\t}\r\n\r\n\t/**\r\n\t * Non-type-checked translation.\r\n\t *\r\n\t * Can be used by plugins and other code that may have their own non-standard\r\n\t * translation prompts.\r\n\t *\r\n\t * @since 4.5.5\r\n\t * @param prompt A string to translate\r\n\t * @param locale Force translation into specific locale, e.g. fr_FR\r\n\t * @param rest Parameters to replace in string\r\n\t * @return Translation\r\n\t */\r\n\tpublic translateAny(prompt: string, locale?: ILocale, ...rest: Array<string>): string {\r\n\t\treturn this.translate(<any>prompt, locale, ...rest);\r\n\t}\r\n\r\n\t/**\r\n\t * Translates prompt.\r\n\t *\r\n\t * If translation is empty, it will return empty string, which is a different\r\n\t * behavior than that of regular `translate`.\r\n\t *\r\n\t * @param prompt A string to translate\r\n\t * @param locale Force translation into specific locale, e.g. fr_FR\r\n\t * @param ...rest Parameters to replace in string\r\n\t * @return Translation\r\n\t */\r\n\tpublic translateEmpty<Key extends keyof ILocaleProperties>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\r\n\t\tlet translation = this.translate(prompt, locale, ...rest);\r\n\t\treturn translation == prompt ? \"\" : translation;\r\n\t}\r\n\r\n\t/**\r\n\t * Translates a function.\r\n\t *\r\n\t * This method will return a function reference, but will not run it. It's\r\n\t * up to the caller script to run the function.\r\n\t *\r\n\t * @param prompt A function id to translate\r\n\t * @param locale Force translation into specific locale. e.g. fr_FR\r\n\t * @return A language-specific version of the function\r\n\t * @todo Apply adapter\r\n\t */\r\n\tpublic translateFunc<Key extends keyof ILocaleFunctions>(prompt: Key, locale?: ILocale): ILocaleFunctions[Key] {\r\n\r\n\t\t// Get langauge\r\n\t\tlocale = this.getLocale(locale);\r\n\r\n\t\t// Get translations for the locale\r\n\t\tlet translations = this.getTranslations(locale);\r\n\r\n\t\tlet value: $type.Optional<ILocaleFunctions[Key]> = translations[prompt];\r\n\r\n\t\t// Try to look for the translation\r\n\t\tif (value != null) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\t// Try to look in default language\r\n\t\tif (locale !== this._defaultLocale) {\r\n\t\t\treturn this.translateFunc(prompt, this._defaultLocale);\r\n\t\t}\r\n\r\n\t\t// Fail - return empty function\r\n\t\treturn (): string => {\r\n\t\t\treturn \"\";\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Translates a list of prompts in one go.\r\n\t *\r\n\t * @param list An array of strings to translate\r\n\t * @param locale Force translation into specific locale. e.g. fr_FR\r\n\t * @return An array of translated strings in the same order as source list\r\n\t */\r\n\tpublic translateAll<Key extends keyof ILocaleProperties>(list: Array<Key>, locale?: ILocale): Array<string> {\r\n\t\t// Translate all items in the list\r\n\t\tif (!this.isDefault()) {\r\n\t\t\treturn $array.map(list, (x) => this.translate(x, locale));\r\n\r\n\t\t} else {\r\n\t\t\treturn list;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the currently selected locale is a default locale.\r\n\t *\r\n\t * @return `true` if locale is default; `false` if it is not.\r\n\t */\r\n\tpublic isDefault(): boolean {\r\n\t\treturn this._defaultLocale === this._locale;\r\n\t}\r\n\r\n\t/**\r\n\t * Current locale.\r\n\t *\r\n\t * @param value Locale definition (translations)\r\n\t */\r\n\tpublic set locale(value: ILocale) {\r\n\t\tif (this._locale != value) {\r\n\t\t\tthis._locale = value;\r\n\r\n\r\n\t\t\tif (this.events.isEnabled(\"localechanged\")) {\r\n\t\t\t\tconst event: AMEvent<this, ILanguageEvents>[\"localechanged\"] = {\r\n\t\t\t\t\ttype: \"localechanged\",\r\n\t\t\t\t\tlocale: value,\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"localechanged\", event);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Locale definition\r\n\t */\r\n\tpublic get locale(): ILocale {\r\n\t\treturn this._locale;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns translations for a given locale.\r\n\t *\r\n\t * @ignore\r\n\t * @deprecated\r\n\t * @param locale Locale\r\n\t * @return Translations\r\n\t */\r\n\tpublic getTranslations(locale: ILocale): ILocale {\r\n\t\treturn this.adapter.apply(\"translations\", {\r\n\t\t\ttranslations: locale,\r\n\t\t\tlocale: locale\r\n\t\t}).translations;\r\n\t}\r\n\r\n}\r\n","/**\r\n * A collection of keyboard-related utilities accessible via `keyboard`\r\n * instance.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport * as $type from \"./Type\";\r\n\r\n/**\r\n * Represents named (usually frequently used) keyboard keys for easy referece.\r\n */\r\nexport type KeyboardKeys =\r\n\t\"up\"\r\n\t| \"down\"\r\n\t| \"left\"\r\n\t| \"right\"\r\n\t| \"enter\"\r\n\t| \"esc\"\r\n\t| \"home\"\r\n\t| \"tab\"\r\n\t| \"end\"\r\n\t| \"ctrl\"\r\n\t| \"alt\"\r\n\t| \"shift\"\r\n\t| \"space\"\r\n\t| \"home\"\r\n\t| \"end\"\r\n\t| \"pgup\"\r\n\t| \"pgdn\"\r\n\t| \"ins\"\r\n\t| \"del\"\r\n\t| \"plus\"\r\n\t| \"minus\"\r\n\t| \"other\";\r\n\r\n/**\r\n * A class that represents collection of keyboard-related utilities.\r\n *\r\n * Do not instantiate this class directly, but rather use `keyboard` variable.\r\n */\r\nexport class Keyboard {\r\n\r\n\t/**\r\n\t * Returns a named key based on information contained in the event or\r\n\t * \"other\".\r\n\t *\r\n\t * @param ev A keyboard event\r\n\t * @return Keyboard named key\r\n\t */\r\n\tpublic getEventKey(ev: KeyboardEvent): KeyboardKeys {\r\n\r\n\t\t// Get the key code\r\n\t\tlet code: number = ev.keyCode || ev.which,\r\n\t\t\tkey: KeyboardKeys;\r\n\r\n\t\t// Map to internal key\r\n\t\tswitch (code) {\r\n\t\t\tcase 38: key = \"up\"; break;\r\n\t\t\tcase 40: key = \"down\"; break;\r\n\t\t\tcase 37: key = \"left\"; break;\r\n\t\t\tcase 39: key = \"right\"; break;\r\n\t\t\tcase 13: key = \"enter\"; break;\r\n\t\t\tcase 27: key = \"esc\"; break;\r\n\t\t\tcase 36: key = \"home\"; break;\r\n\t\t\tcase 35: key = \"end\"; break;\r\n\t\t\tcase 9: key = \"tab\"; break;\r\n\t\t\tcase 17: key = \"ctrl\"; break;\r\n\t\t\tcase 18: key = \"alt\"; break;\r\n\t\t\tcase 16: key = \"shift\"; break;\r\n\t\t\tcase 32: key = \"space\"; break;\r\n\t\t\tcase 36: key = \"home\"; break;\r\n\t\t\tcase 35: key = \"end\"; break;\r\n\t\t\tcase 33: key = \"pgup\"; break;\r\n\t\t\tcase 34: key = \"pgdn\"; break;\r\n\t\t\tcase 45: key = \"ins\"; break;\r\n\t\t\tcase 46: key = \"del\"; break;\r\n\t\t\tcase 107: key = \"plus\"; break;\r\n\t\t\tcase 109: key = \"minus\"; break;\r\n\t\t\tdefault: key = \"other\"; break;\r\n\t\t}\r\n\r\n\t\treturn key;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if event key is one or more of the selected named keys.\r\n\t *\r\n\t * @param ev Keyboard event\r\n\t * @param key Named key or array of keys\r\n\t * @return Is event key one of the list?\r\n\t */\r\n\tpublic isKey(ev: KeyboardEvent, key: string | string[]): boolean {\r\n\t\tlet eventKey = this.getEventKey(ev);\r\n\t\tif ($type.isString(key)) {\r\n\t\t\tkey = [key];\r\n\t\t}\r\n\t\treturn key.indexOf(eventKey) !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if shift key was presset at the moment of the event.\r\n\t *\r\n\t * @param ev Event object\r\n\t * @return Was shift pressed?\r\n\t */\r\n\tpublic shiftKey(ev: KeyboardEvent | MouseEvent): boolean {\r\n\t\treturn ev.shiftKey;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if ctrl key was presset at the moment of the event.\r\n\t *\r\n\t * @param ev Event object\r\n\t * @return Was ctrl pressed?\r\n\t */\r\n\tpublic ctrlKey(ev: KeyboardEvent | MouseEvent): boolean {\r\n\t\treturn ev.ctrlKey;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if alt key was presset at the moment of the event\r\n\t * @param ev Event object\r\n\t * @return Was alt pressed?\r\n\t */\r\n\tpublic altKey(ev: KeyboardEvent | MouseEvent): boolean {\r\n\t\treturn ev.altKey;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if meta key was presset at the moment of the event\r\n\t * @param ev Event object\r\n\t * @return Was meta pressed?\r\n\t */\r\n\tpublic metaKey(ev: KeyboardEvent | MouseEvent): boolean {\r\n\t\treturn ev.metaKey;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * A single [[Keyboard]] instance to be reused across all elements so that\r\n * they don't need to instantiate their own.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport let keyboard = new Keyboard();\r\n","/**\r\n * Handles formatting of pseudo-markup in text.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { AMElement } from \"../rendering/AMElement\";\r\nimport { Adapter } from \"../utils/Adapter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * Defines an interface for an object that holds a chunk of text.\r\n */\r\nexport interface ITextChunk {\r\n\r\n\t/**\r\n\t * Type of the chunk.\r\n\t */\r\n\t\"type\": \"value\" | \"text\" | \"format\" | \"image\",\r\n\r\n\t/**\r\n\t * Text.\r\n\t */\r\n\t\"text\": string\r\n\r\n}\r\n\r\n/**\r\n * A list of Adapters for [[TextFormatter]].\r\n */\r\nexport interface ITextFormatterAdapters {\r\n\r\n\t/**\r\n\t * Applied to each chunk of text when it is parsed and added to chunk list.\r\n\t */\r\n\tchunk: string\r\n\r\n}\r\n\r\n/**\r\n * Handles formatting of pseudo-markdown in text.\r\n *\r\n * @todo Encode < > in output\r\n * @todo Add more adapters\r\n * @important\r\n */\r\nexport class TextFormatter extends BaseObject {\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ITextFormatterAdapters;\r\n\r\n\t/**\r\n\t * Adapter.\r\n\t */\r\n\tpublic adapter = new Adapter<TextFormatter, ITextFormatterAdapters>(this);\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"TextFormatter\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\tprotected debug(): void { }\r\n\r\n\t/**\r\n\t * Formats the text according to specifications passed in.\r\n\t *\r\n\t * @param text Text to format\r\n\t * @param output Output format (svg, html)\r\n\t * @return Formatted text\r\n\t */\r\n\tpublic format(text: string, output?: string): string {\r\n\r\n\t\t// Apply default\r\n\t\tif (!$type.hasValue(output)) {\r\n\t\t\toutput = \"svg\";\r\n\t\t}\r\n\r\n\t\t// Init return value\r\n\t\tlet formatted: string = \"\";\r\n\r\n\t\t// Replace double (escaped) square spaces with remporary codes\r\n\t\ttext = this.escape(text);\r\n\r\n\t\t// Divvy up the string by style tags\r\n\t\tlet styles: string[] | null = text.match(/\\[([^\\]]*?)\\]/gm);\r\n\r\n\t\tif (!styles) {\r\n\t\t\t// Nothing to do here - no formatting elements\r\n\t\t\treturn this.wrap(text, \"\", output);\r\n\t\t}\r\n\r\n\t\t// Get pure text - no style tags\r\n\t\tlet texts: string[] = text.split(/\\[[^\\[\\]]*\\]/);\r\n\r\n\t\t// Go through each of the texts and wrap it in style tags\r\n\t\tfor (let i = 0, len = texts.length; i < len; i++) {\r\n\r\n\t\t\t// Get text bit\r\n\t\t\tlet t: string = texts[i];\r\n\r\n\t\t\t// Check if string is empty\r\n\t\t\tif (t === \"\") {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// Run through an adapter\r\n\t\t\tt = this.adapter.apply(\"chunk\", t);\r\n\r\n\t\t\t// Get related style\r\n\t\t\tlet s: string = \"\";\r\n\t\t\tif (i > 0) {\r\n\t\t\t\ts = styles[i - 1].replace('[', '').replace(']', '');\r\n\t\t\t}\r\n\r\n\t\t\t// Wrap text in tag\r\n\t\t\tformatted += this.wrap(t, s, output);\r\n\t\t}\r\n\r\n\t\t// Replace placeholders back\r\n\t\tformatted = this.unescape(formatted);\r\n\r\n\t\t// Return result\r\n\t\treturn this.cleanUp(formatted);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Replaces brackets with temporary placeholders.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Input text\r\n\t * @return Escaped text\r\n\t */\r\n\tpublic escape(text: string): string {\r\n\t\treturn text.\r\n\t\t\treplace(/\\[\\[/g, registry.getPlaceholder(\"1\")).\r\n\t\t\treplace(/([^\\/]{1})\\]\\]/g, \"$1\" + registry.getPlaceholder(\"2\")).\r\n\t\t\treplace(/\\]\\]/g, registry.getPlaceholder(\"2\")).\r\n\t\t\treplace(/\\{\\{/g, registry.getPlaceholder(\"3\")).\r\n\t\t\treplace(/\\}\\}/g, registry.getPlaceholder(\"4\")).\r\n\t\t\treplace(/\\'\\'/g, registry.getPlaceholder(\"5\"));\r\n\t}\r\n\r\n\t/**\r\n\t * Replaces placeholders back to brackets.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Escaped text\r\n\t * @return Unescaped text\r\n\t */\r\n\tpublic unescape(text: string): string {\r\n\t\treturn text.\r\n\t\t\treplace(new RegExp(registry.getPlaceholder(\"1\"), \"g\"), \"[[\").\r\n\t\t\treplace(new RegExp(registry.getPlaceholder(\"2\"), \"g\"), \"]]\").\r\n\t\t\treplace(new RegExp(registry.getPlaceholder(\"3\"), \"g\"), \"{{\").\r\n\t\t\treplace(new RegExp(registry.getPlaceholder(\"4\"), \"g\"), \"}}\").\r\n\t\t\treplace(new RegExp(registry.getPlaceholder(\"5\"), \"g\"), \"'\");\r\n\t}\r\n\r\n\t/**\r\n\t * Cleans up the text text for leftover double square brackets.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Input text\r\n\t * @return Cleaned up text\r\n\t */\r\n\tpublic cleanUp(text: string): string {\r\n\t\treturn text.\r\n\t\t\treplace(/\\[\\[/g, \"[\").\r\n\t\t\treplace(/\\]\\]/g, \"]\").\r\n\t\t\treplace(/\\{\\{/g, \"{\").\r\n\t\t\treplace(/\\}\\}/g, \"}\").\r\n\t\t\treplace(/\\'\\'/g, \"'\");\r\n\t}\r\n\r\n\t/**\r\n\t * Wraps text into corresponding tags.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to wrap\r\n\t * @param style Styles\r\n\t * @param output Format to output in (svg, html)\r\n\t * @return Formatted string\r\n\t */\r\n\tpublic wrap(text: string, style: string, output: string): string {\r\n\r\n\t\tif (style === \"\" || style === \"/\") {\r\n\t\t\t//return text;\r\n\t\t\tstyle = \"\";\r\n\t\t}\r\n\r\n\t\tswitch (output) {\r\n\t\t\tcase \"html\":\r\n\t\t\t\treturn this.wrapHtml(text, this.translateStyleShortcuts(style));\r\n\t\t\tdefault:\r\n\t\t\t\treturn this.wrapSvg(text, this.translateStyleShortcuts(style));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Wraps text in styled SVG tag.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to wrap\r\n\t * @param style Style property\r\n\t * @return Formatted tag\r\n\t */\r\n\tpublic wrapSvg(text: string, style: string): string {\r\n\t\tif (style === \"\") {\r\n\t\t\treturn \"<tspan>\" + text + \"</tspan>\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn \"<tspan style='\" + style + \"'>\" + text + \"</tspan>\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an SVG `<tspan>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text\r\n\t * @param style Style\r\n\t * @return Element\r\n\t */\r\n\tpublic getSvgElement(text: string, style?: string): AMElement {\r\n\t\tlet element = new AMElement(\"tspan\");\r\n\t\telement.textContent = text;\r\n\t\tif (style) {\r\n\t\t\telement.node.setAttribute(\"style\", style);\r\n\t\t}\r\n\t\treturn element;\r\n\t}\r\n\r\n\t/**\r\n\t * Wraps text in HTML <span> tag.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to wrap\r\n\t * @param style Style property\r\n\t * @return Formatted tag\r\n\t * @todo Translate SVG styles into HTML ones\r\n\t */\r\n\tpublic wrapHtml(text: string, style: string): string {\r\n\t\tif (style === \"\") {\r\n\t\t\treturn \"<span>\" + text + \"</span>\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn \"<span style='\" + this.styleSvgToHtml(style) + \"'>\" + text + \"</span>\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an HTML `<span>` element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text/HTML\r\n\t * @param style Style definition\r\n\t * @return HTML element\r\n\t */\r\n\tpublic getHtmlElement(text: string, style?: string): HTMLElement {\r\n\t\tlet element = document.createElement(\"span\");\r\n\t\telement.innerHTML = text;\r\n\t\tif (style) {\r\n\t\t\telement.setAttribute(\"style\", style);\r\n\t\t}\r\n\t\treturn element;\r\n\t}\r\n\r\n\t/**\r\n\t * Trabslates SVG CSS into HTML CSS.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param style SVG CSS\r\n\t * @return HTML CSS\r\n\t * @todo Implement actual translation\r\n\t */\r\n\tpublic styleSvgToHtml(style: string): string {\r\n\t\tstyle = style.replace(/fill:/, \"color:\");\r\n\t\treturn style;\r\n\t}\r\n\r\n\t/**\r\n\t * Translates style shortcuts into full styles, i.e.:\r\n\t * \"bold\" => \"font-weight: bold\"\r\n\t * \"#f00\" => \"fill: #f00\"\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param style Untranslated style\r\n\t * @return Translated style\r\n\t * @todo Implement actual translation\r\n\t */\r\n\tpublic translateStyleShortcuts(style: string): string {\r\n\r\n\r\n\t\tif (style == \"\" || style == \"[ ]\") {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tlet cached = registry.getCache(\"translateStyleShortcuts_\" + style);\r\n\t\tif (cached) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\r\n\t\t// Pre-process quoted text\r\n\t\tconst q = style.match(/('[^']*')|(\"[^\"]*\")/gi);\r\n\t\tif (q) {\r\n\t\t\tfor (let i: number = 0; i < q.length; i++) {\r\n\t\t\t\tstyle = style.replace(q[i], q[i].replace(/['\"]*/g, \"\").replace(/[ ]+/g, \"+\"));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get style parts\r\n\t\tlet b: string[] | null = style.match(/([\\w\\-]*:[\\s]?[^;\\s\\]]*)|(\\#[\\w]{1,6})|([\\w]+)|(\\/)/gi);\r\n\r\n\t\t// Empty?\r\n\t\tif (!b) {\r\n\t\t\treturn style;\r\n\t\t}\r\n\r\n\t\t// Check each part\r\n\t\tfor (let i: number = 0; i < b.length; i++) {\r\n\r\n\t\t\tif (b[i].match(/^bold$/i)) {\r\n\t\t\t\t// Bold\r\n\t\t\t\tb[i] = \"font-weight:\" + b[i];\r\n\t\t\t}\r\n\t\t\telse if (b[i] == \"/\") {\r\n\t\t\t\t// Just closing tag\r\n\t\t\t\t// Do nothing\r\n\t\t\t\tb[i] = \"\";\r\n\t\t\t}\r\n\t\t\telse if (!b[i].match(/:/)) {\r\n\t\t\t\t// Color\r\n\t\t\t\tb[i] = \"fill:\" + b[i];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tb[i] = b[i].replace(/\\+/g, \" \");\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tlet res = b.join(';');\r\n\t\tregistry.setCache(\"translateStyleShortcuts_\" + style, res);\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Splits string into chunks. (style blocks, quoted blocks, regular blocks)\r\n\t *\r\n\t * If the second parameter `quotedBlocks` is set to `true` this method will\r\n\t * also single out text blocks enclosed within single quotes that no\r\n\t * formatting should be applied to, and they should be displayed as is.\r\n\t *\r\n\t * Default for the above is `false`, so that you can use single quote in text\r\n\t * without escaping it.\r\n\t *\r\n\t * If enabled, single quotes can be escaped by doubling it - adding two\r\n\t * single quotes, which will be replaced by a one single quote in the final\r\n\t * output.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Text to chunk\r\n\t * @param quotedBlocks Use quoted blocks\r\n\t * @param noFormatting Formatting blocks will be treated as regular text\r\n\t * @return Array of string chunks\r\n\t */\r\n\tpublic chunk(text: string, quotedBlocks: boolean = false, noFormatting: boolean = false): ITextChunk[] {\r\n\r\n\t\t// Init result\r\n\t\tlet res: ITextChunk[] = [];\r\n\r\n\t\t// Replace double (escaped) square spaces and quotes with temporary codes\r\n\t\ttext = this.escape(text);\r\n\r\n\t\t// Deal with style blocks\r\n\t\tlet chunks = quotedBlocks ? text.split(\"'\") : [text];\r\n\t\tfor (let i: number = 0; i < chunks.length; i++) {\r\n\t\t\tlet chunk = chunks[i];\r\n\r\n\t\t\t// Empty?\r\n\t\t\tif (chunk === \"\") {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif ((i % 2) === 0) {\r\n\r\n\t\t\t\t// Text outside quotes\r\n\t\t\t\t// Parse for style blocks which are \"text\" chunks, the rest chunks are\r\n\t\t\t\t// \"value\"\r\n\r\n\t\t\t\tchunk = chunk.replace(/\\]\\[/g, \"]\" + $strings.PLACEHOLDER + \"[\");\r\n\t\t\t\tchunk = chunk.replace(/\\[\\]/g, \"[ ]\");\r\n\t\t\t\tlet chunks2 = chunk.split(/[\\[\\]]+/);\r\n\t\t\t\tfor (let i2: number = 0; i2 < chunks2.length; i2++) {\r\n\t\t\t\t\tlet chunk2 = this.cleanUp(this.unescape(chunks2[i2]));\r\n\r\n\t\t\t\t\t// Placeholder?\r\n\t\t\t\t\tif (chunk2 === $strings.PLACEHOLDER) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Empty?\r\n\t\t\t\t\tif (chunk2 === \"\") {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Block or value\r\n\t\t\t\t\tif ((i2 % 2) === 0) {\r\n\t\t\t\t\t\tres.push({\r\n\t\t\t\t\t\t\t\"type\": \"value\",\r\n\t\t\t\t\t\t\t\"text\": this.adapter.apply(\"chunk\", chunk2)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tres.push({\r\n\t\t\t\t\t\t\t\"type\": noFormatting ? \"value\" : \"format\",\r\n\t\t\t\t\t\t\t\"text\": \"[\" + chunk2 + \"]\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// A text within doublequotes\r\n\t\t\t\t// All chunks are \"text\"\r\n\r\n\t\t\t\tlet chunks2 = chunk.split(/[\\[\\]]+/);\r\n\t\t\t\tfor (let i2: number = 0; i2 < chunks2.length; i2++) {\r\n\t\t\t\t\tlet chunk2 = this.cleanUp(this.unescape(chunks2[i2]));\r\n\r\n\t\t\t\t\t// Empty?\r\n\t\t\t\t\tif (chunk2 === \"\") {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Block or text\r\n\t\t\t\t\tif ((i2 % 2) === 0) {\r\n\t\t\t\t\t\tres.push({\r\n\t\t\t\t\t\t\t\"type\": \"text\",\r\n\t\t\t\t\t\t\t\"text\": chunk2\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (this.isImage(chunk2)) {\r\n\t\t\t\t\t\tres.push({\r\n\t\t\t\t\t\t\t\"type\": \"image\",\r\n\t\t\t\t\t\t\t\"text\": \"[\" + chunk2 + \"]\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tres.push({\r\n\t\t\t\t\t\t\t\"type\": \"format\",\r\n\t\t\t\t\t\t\t\"text\": \"[\" + chunk2 + \"]\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if supplied format contains image information and should be\r\n\t * formatted as such.\r\n\t * I.e.: `[img: myImage.png]`\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param text Format\r\n\t * @return `true` if it is an image\r\n\t */\r\n\tpublic isImage(text: string): boolean {\r\n\t\treturn text.match(/img[ ]?:/) ? true : false;\r\n\t}\r\n\r\n}\r\n\r\n\r\nlet formatter: TextFormatter;\r\n\r\n/**\r\n * Returns the global instance of [[TextFormatter]].\r\n *\r\n * All classes and instances should reuse this universal text formatter,\r\n * rather than create their own instance of it.\r\n */\r\nexport function getTextFormatter(): TextFormatter {\r\n\tif (formatter == null) {\r\n\t\tformatter = new TextFormatter();\r\n\t}\r\n\r\n\treturn formatter;\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TextFormatter\"] = TextFormatter;\r\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport ResizeObserver from 'resize-observer-polyfill';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver =\n/** @class */\nfunction () {\n var ReactResizeObserver = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n var _super = _createSuper(ReactResizeObserver);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n onResize(_objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n }));\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray(children);\n\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if (React.isValidElement(childNode) && supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = React.cloneElement(childNode, {\n ref: composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (!React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n }(React.Component);\n\n ReactResizeObserver.displayName = 'ResizeObserver';\n return ReactResizeObserver;\n}();\n\nexport default ReactResizeObserver;","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport { Ordering } from \"./Order\";\n\n\n/**\n * ============================================================================\n * COMPARING FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Comparing function used for ordering.\n *\n * @ignore Exclude from docs\n * @param a Number 1\n * @param b Number 2\n * @return Result\n */\nexport function order(a: number, b: number): Ordering {\n\tif (a === b) {\n\t\treturn 0;\n\n\t} else if (a < b) {\n\t\treturn -1;\n\n\t} else {\n\t\treturn 1;\n\t}\n}\n","import raf from 'raf';\nvar id = 0;\nvar ids = {}; // Support call raf with delay specified frame\n\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n\n function internalCallback() {\n restFrames -= 1;\n\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n\n ids[myId] = raf(internalCallback);\n return myId;\n}\n\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\n\nwrapperRaf.ids = ids; // export this for test usage","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { insertCss } from 'insert-css';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n useEffect(function () {\n if (!cssInjectedFlag) {\n insertCss(styleStr, {\n prepend: true\n });\n cssInjectedFlag = true;\n }\n }, []);\n};","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","/**\r\n * Paper class just like the white sheet of pressed fiber it draws its name\r\n * inspiration from is used as a starting point to start a drawing.\r\n *\r\n * Before we can start adding elements (drawing) we need to take out a new sheet\r\n * of paper, or in this instance create a blank SVG element.\r\n *\r\n * This class creates such element, as well as implements methods needed to\r\n * start adding elements to it.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { AMElement } from \"./AMElement\";\r\nimport { Group } from \"./Group\";\r\nimport { SVGContainer } from \"./SVGContainer\";\r\nimport * as $dom from \"../utils/DOM\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents available SVG elements that can be added to paper.\r\n *\r\n * @todo Review if we can remove commented out methods\r\n */\r\nexport type SVGElementNames = \"a\" | \"altGlyph\" | \"altGlyphDef\" | \"altGlyphItem\" | \"animate\" | \"animateColor\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"color-profile\" | \"cursor\" | \"defs\" | \"desc\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"feConvolveMatrix\" | \"filter\" | \"font\" | \"font-face\" | \"font-face-format\" | \"font-face-name\" | \"font-face-src\" | \"font-face-uri\" | \"foreignObject\" | \"g\" | \"glyph\" | \"glyphRef\" | \"hkern\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"missing-glyph\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"script\" | \"set\" | \"stop\" | \"style\" | \"svg\" | \"switch\" | \"symbol\" | \"text\" | \"textPath\" | \"title\" | \"tref\" | \"tspan\" | \"use\" | \"view\" | \"vkern\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Paper class which when instantiated will create an SVG element as well as\r\n * some of the sub-elements like `<desc>`, `<defs>`.\r\n *\r\n * Use its methods like `addGroup` and `append` to add elements to the paper.\r\n */\r\nexport class Paper {\r\n\r\n\t/**\r\n\t * A reference `<svg>` element.\r\n\t */\r\n\tpublic svg: SVGSVGElement;\r\n\r\n\t/**\r\n\t * A reference to the HTML container the `<svg>` element is placed in.\r\n\t */\r\n\tpublic container: HTMLElement;\r\n\r\n\t/**\r\n\t * A reference to the `<defs>` element.\r\n\t */\r\n\tpublic defs: SVGDefsElement;\r\n\r\n\t/**\r\n\t * An id of the element.\r\n\t */\r\n\tpublic id: string;\r\n\r\n\t/**\r\n\t * Creates main `<svg>` container and related elements.\r\n\t *\r\n\t * @param container A reference to HTML element to create `<svg>` in\r\n\t */\r\n\tconstructor(container: HTMLElement, id: string) {\r\n\r\n\t\t// Store container reference\r\n\t\tthis.container = container;\r\n\t\tthis.id = id;\r\n\r\n\t\t// Create SVG element\r\n\t\tlet svg = <SVGSVGElement>document.createElementNS($dom.SVGNS, \"svg\");\r\n\t\tsvg.setAttribute(\"version\", \"1.1\");\r\n\t\tsvg.setAttributeNS($dom.XMLNS, \"xmlns\", $dom.SVGNS);\r\n\t\tsvg.setAttributeNS($dom.XMLNS, \"xmlns:xlink\", $dom.XLINK);\r\n\t\tsvg.setAttribute(\"role\", \"group\");\r\n\t\tthis.container.appendChild(svg);\r\n\r\n\t\t// Add description\r\n\t\t//let desc: SVGElement = <SVGElement>document.createElementNS($dom.SVGNS, \"desc\");\r\n\t\t//desc.appendChild(document.createTextNode(\"JavaScript chart by amCharts\"));\r\n\t\t//svg.appendChild(desc);\r\n\r\n\t\t// Add defs\r\n\t\tthis.defs = <SVGDefsElement>document.createElementNS($dom.SVGNS, \"defs\");\r\n\t\tsvg.appendChild(this.defs);\r\n\r\n\t\t// Set width and height to fit container\r\n\t\tsvg.style.width = \"100%\";\r\n\t\tsvg.style.height = \"100%\";\r\n\t\tsvg.style.overflow = \"visible\";\r\n\r\n\t\t// Store variable\r\n\t\tthis.svg = svg;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new element. Does not attach it to Paper yet.\r\n\t *\r\n\t * @param elementName Element name\r\n\t * @return New element\r\n\t */\r\n\tpublic add(elementName: SVGElementNames): AMElement {\r\n\t\treturn new AMElement(elementName);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns a new Group element. Does not attach it to Paper.\r\n\t *\r\n\t * @param groupName Element name\r\n\t * @return New Group\r\n\t */\r\n\tpublic addGroup(groupName: SVGElementNames): Group {\r\n\t\treturn new Group(groupName);\r\n\t}\r\n\r\n\t/**\r\n\t * Appends an element to Paper.\r\n\t *\r\n\t * @param element Element to append\r\n\t */\r\n\tpublic append(element: AMElement): void {\r\n\t\tif (element) {\r\n\t\t\tthis.svg.appendChild(element.node);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Appends an element to `<defs>` block of the Paper.\r\n\t *\r\n\t * @param element Element\r\n\t */\r\n\tpublic appendDef(element: AMElement): void {\r\n\t\tif (element) {\r\n\t\t\tthis.defs.appendChild(element.node);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and returns new `<foreignObject>` element. Does not append it to\r\n\t * Paper.\r\n\t *\r\n\t * @return A foreignObject element\r\n\t */\r\n\tpublic foreignObject(): AMElement {\r\n\t\tlet element = new AMElement(\"foreignObject\");\r\n\t\t//this.append(element);\r\n\t\treturn element;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if browser supports `<foreignObject>` elements.\r\n\t *\r\n\t * @return Supports `foreignObject`?\r\n\t */\r\n\tpublic supportsForeignObject(): boolean {\r\n\t\treturn document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Extensibility\", \"1.1\");\r\n\t}\r\n\r\n}\r\n\r\n\r\nlet ghostPaper: Paper | null = null;\r\n\r\n/**\r\n * A [[Paper]] instance to create elements, that are not yet ready to be\r\n * placed in visible DOM.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport function getGhostPaper(): Paper {\r\n\tif (ghostPaper === null) {\r\n\t\t// ghost is used to draw elements while real paper is not yet created or Sprite doesn't know parent yet\r\n\t\tlet ghostDiv: HTMLDivElement = document.createElement(\"div\");\r\n\t\tghostDiv.hidden = true;\r\n\t\tdocument.body.appendChild(ghostDiv);\r\n\t\tlet ghostSvgContainer = new SVGContainer(ghostDiv, true);\r\n\t\tghostPaper = new Paper(ghostSvgContainer.SVGContainer, \"ghost\");\r\n\r\n\t}\r\n\r\n\treturn ghostPaper;\r\n}\r\n","/**\r\n * Functionality for drawing simple buttons.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Label } from \"./Label\";\r\nimport { RoundedRectangle } from \"../elements/RoundedRectangle\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Button]].\r\n */\r\nexport interface IButtonProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Icon (if available) position - left or right.\r\n\t */\r\n\ticonPosition?: \"left\" | \"right\";\r\n\r\n\t/**\r\n\t * Icon sprite\r\n\t */\r\n\ticon?: Sprite;\r\n}\r\n\r\n/**\r\n * Defines events for [[Button]].\r\n */\r\nexport interface IButtonEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Button]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IButtonAdapters extends IContainerAdapters, IButtonProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Button class is capable of drawing a simple rectangular button with\r\n * optionally rounded corners and an icon in it.\r\n *\r\n * @see {@link IButtonEvents} for a list of available events\r\n * @see {@link IButtonAdapters} for a list of available Adapters\r\n */\r\nexport class Button extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IButtonProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IButtonAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IButtonEvents;\r\n\r\n\t/**\r\n\t * Icon reference.\r\n\t */\r\n\tprotected _icon: Sprite;\r\n\r\n\t/**\r\n\t * [[Label]] element for button content.\r\n\t */\r\n\tprotected _label: $type.Optional<Label>;\r\n\r\n\t/**\r\n\t * A type for background.\r\n\t */\r\n\tpublic _background: RoundedRectangle;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Button\";\r\n\r\n\t\tthis.tooltipY = 0;\r\n\r\n\t\t// Set defaults\r\n\t\tthis.iconPosition = \"left\";\r\n\t\tthis.layout = \"horizontal\";\r\n\t\tthis.contentAlign = \"center\";\r\n\t\tthis.contentValign = \"middle\";\r\n\t\tthis.padding(8, 16, 8, 16);\r\n\t\tthis.setStateOnChildren = true;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create background\r\n\t\tlet background = this.background;\r\n\t\tbackground.fill = interfaceColors.getFor(\"secondaryButton\");\r\n\t\tbackground.stroke = interfaceColors.getFor(\"secondaryButtonStroke\");\r\n\t\tbackground.fillOpacity = 1;\r\n\t\tbackground.strokeOpacity = 1;\r\n\t\tbackground.cornerRadius(3, 3, 3, 3);\r\n\r\n\t\t// Create the label element\r\n\t\tthis.label = new Label();\r\n\t\tthis.label.fill = interfaceColors.getFor(\"secondaryButtonText\");;\r\n\t\tthis.label.shouldClone = false;\r\n\r\n\t\t// Create default states\r\n\t\tlet hoverState = background.states.create(\"hover\");\r\n\t\thoverState.properties.fillOpacity = 1;\r\n\t\thoverState.properties.fill = interfaceColors.getFor(\"secondaryButtonHover\");\r\n\r\n\t\tlet downState = background.states.create(\"down\");\r\n\t\tdownState.transitionDuration = 100;\r\n\t\tdownState.properties.fill = interfaceColors.getFor(\"secondaryButtonDown\");\r\n\t\tdownState.properties.fillOpacity = 1;\r\n\t\t// Set up accessibility\r\n\t\t// A button should be always focusable\r\n\t\tthis.role = \"button\";\r\n\t\tthis.focusable = true;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Sprite]] to be used as an icon on button.\r\n\t *\r\n\t * @param icon Icon Sprite\r\n\t */\r\n\tpublic set icon(icon: Sprite) {\r\n\t\tlet currentIcon = this._icon;\r\n\t\tif (currentIcon) {\r\n\t\t\t//this._icon.dispose();\r\n\t\t\t//this.removeDispose(currentIcon);\r\n\t\t\tcurrentIcon.parent = undefined;\r\n\t\t}\r\n\t\tif (icon) {\r\n\t\t\tthis._icon = icon;\r\n\t\t\ticon.parent = this;\r\n\t\t\ticon.interactionsEnabled = false;\r\n\t\t\ticon.shouldClone = false;\r\n\t\t\tthis.iconPosition = this.iconPosition;\r\n\t\t\tthis._disposers.push(icon);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Icon Sprite\r\n\t */\r\n\tpublic get icon(): Sprite {\r\n\t\treturn this._icon;\r\n\t}\r\n\r\n\t/**\r\n\t * Icon position: \"left\" or \"right\".\r\n\t *\r\n\t * @default \"left\"\r\n\t * @param position Icon position\r\n\t */\r\n\tpublic set iconPosition(position: \"left\" | \"right\") {\r\n\t\tthis.setPropertyValue(\"iconPosition\", position);\r\n\r\n\t\tif (this.icon) {\r\n\t\t\tif (position == \"left\") {\r\n\t\t\t\tthis.icon.toBack();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.icon.toFront();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Icon position\r\n\t */\r\n\tpublic get iconPosition(): \"left\" | \"right\" {\r\n\t\treturn this.getPropertyValue(\"iconPosition\");\r\n\t}\r\n\r\n\t/**\r\n\t * [[Label]] element to be used for text.\r\n\t *\r\n\t * @param label element\r\n\t */\r\n\tpublic set label(label: $type.Optional<Label>) {\r\n\t\tif (this._label) {\r\n\t\t\t//this._label.dispose();\r\n\t\t\tthis.removeDispose(this._label);\r\n\t\t}\r\n\t\tthis._label = label;\r\n\t\tif (label) {\r\n\t\t\tlabel.parent = this;\r\n\t\t\tlabel.interactionsEnabled = false;\r\n\t\t\tthis._disposers.push(this._label);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Label element\r\n\t */\r\n\tpublic get label(): $type.Optional<Label> {\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a background element for the button.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Background element\r\n\t */\r\n\tpublic createBackground(): this[\"_background\"] {\r\n\t\treturn new RoundedRectangle();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Copies properties and other attributes.\r\n\t *\r\n\t * @param source Source\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tif (source.label) {\r\n\t\t\tthis.label.copyFrom(source.label)\r\n\t\t}\r\n\t\tif (source.icon) {\r\n\t\t\tthis.icon = source.icon.clone();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Button\"] = Button;\r\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n // Function component node\n if (nodeOrComponent.type && nodeOrComponent.type.prototype && !nodeOrComponent.type.prototype.render) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && nodeOrComponent.prototype && !nodeOrComponent.prototype.render) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","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}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport ClearableLabeledInput, { hasPrefixSuffix } from './ClearableLabeledInput';\nimport { ConfigConsumer } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport devWarning from '../_util/devWarning';\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n\n return value;\n}\nexport function resolveOnChange(target, e, onChange) {\n if (onChange) {\n var event = e;\n\n if (e.type === 'click') {\n // click clear icon\n event = Object.create(e);\n event.target = target;\n event.currentTarget = target;\n var originalInputValue = target.value; // change target ref value cause e.target.value should be '' when clear input\n\n target.value = '';\n onChange(event); // reset target ref value\n\n target.value = originalInputValue;\n return;\n }\n\n onChange(event);\n }\n}\nexport function getInputClassName(prefixCls, size, disabled, direction) {\n var _classNames;\n\n return classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames));\n}\n\nvar Input = /*#__PURE__*/function (_React$Component) {\n _inherits(Input, _React$Component);\n\n var _super = _createSuper(Input);\n\n function Input(props) {\n var _this;\n\n _classCallCheck(this, Input);\n\n _this = _super.call(this, props);\n _this.direction = 'ltr';\n\n _this.focus = function () {\n _this.input.focus();\n };\n\n _this.saveClearableInput = function (input) {\n _this.clearableInput = input;\n };\n\n _this.saveInput = function (input) {\n _this.input = input;\n };\n\n _this.onFocus = function (e) {\n var onFocus = _this.props.onFocus;\n\n _this.setState({\n focused: true\n }, _this.clearPasswordValueAttribute);\n\n if (onFocus) {\n onFocus(e);\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n _this.setState({\n focused: false\n }, _this.clearPasswordValueAttribute);\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.handleReset = function (e) {\n _this.setValue('', function () {\n _this.focus();\n });\n\n resolveOnChange(_this.input, e, _this.props.onChange);\n };\n\n _this.renderInput = function (prefixCls, size) {\n var input = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _this$props = _this.props,\n className = _this$props.className,\n addonBefore = _this$props.addonBefore,\n addonAfter = _this$props.addonAfter,\n customizeSize = _this$props.size,\n disabled = _this$props.disabled; // Fix https://fb.me/react-unknown-prop\n\n var otherProps = omit(_this.props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'size', 'inputType']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: input.autoComplete\n }, otherProps, {\n onChange: _this.handleChange,\n onFocus: _this.onFocus,\n onBlur: _this.onBlur,\n onKeyDown: _this.handleKeyDown,\n className: classNames(getInputClassName(prefixCls, customizeSize || size, disabled, _this.direction), _defineProperty({}, className, className && !addonBefore && !addonAfter)),\n ref: _this.saveInput\n }));\n };\n\n _this.clearPasswordValueAttribute = function () {\n // https://github.com/ant-design/ant-design/issues/20541\n _this.removePasswordTimeout = setTimeout(function () {\n if (_this.input && _this.input.getAttribute('type') === 'password' && _this.input.hasAttribute('value')) {\n _this.input.removeAttribute('value');\n }\n });\n };\n\n _this.handleChange = function (e) {\n _this.setValue(e.target.value, _this.clearPasswordValueAttribute);\n\n resolveOnChange(_this.input, e, _this.props.onChange);\n };\n\n _this.handleKeyDown = function (e) {\n var _this$props2 = _this.props,\n onPressEnter = _this$props2.onPressEnter,\n onKeyDown = _this$props2.onKeyDown;\n\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n\n _this.renderComponent = function (_ref) {\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction,\n input = _ref.input;\n var _this$state = _this.state,\n value = _this$state.value,\n focused = _this$state.focused;\n var customizePrefixCls = _this.props.prefixCls;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n _this.direction = direction;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (size) {\n return /*#__PURE__*/React.createElement(ClearableLabeledInput, _extends({\n size: size\n }, _this.props, {\n prefixCls: prefixCls,\n inputType: \"input\",\n value: fixControlledValue(value),\n element: _this.renderInput(prefixCls, size, input),\n handleReset: _this.handleReset,\n ref: _this.saveClearableInput,\n direction: direction,\n focused: focused,\n triggerFocus: _this.focus\n }));\n });\n };\n\n var value = typeof props.value === 'undefined' ? props.defaultValue : props.value;\n _this.state = {\n value: value,\n focused: false,\n // eslint-disable-next-line react/no-unused-state\n prevValue: props.value\n };\n return _this;\n }\n\n _createClass(Input, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.clearPasswordValueAttribute();\n } // Since polyfill `getSnapshotBeforeUpdate` need work with `componentDidUpdate`.\n // We keep an empty function here.\n\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {}\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n if (hasPrefixSuffix(prevProps) !== hasPrefixSuffix(this.props)) {\n devWarning(this.input !== document.activeElement, 'Input', \"When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ\");\n }\n\n return null;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.removePasswordTimeout) {\n clearTimeout(this.removePasswordTimeout);\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.input.blur();\n }\n }, {\n key: \"select\",\n value: function select() {\n this.input.select();\n }\n }, {\n key: \"setValue\",\n value: function setValue(value, callback) {\n if (this.props.value === undefined) {\n this.setState({\n value: value\n }, callback);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderComponent);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, _ref2) {\n var prevValue = _ref2.prevValue;\n var newState = {\n prevValue: nextProps.value\n };\n\n if (nextProps.value !== undefined || prevValue !== nextProps.value) {\n newState.value = nextProps.value;\n }\n\n return newState;\n }\n }]);\n\n return Input;\n}(React.Component);\n\nInput.defaultProps = {\n type: 'text'\n};\nexport default Input;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = [];\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (item) {\n item.func(screens);\n });\n return subscribers.length >= 1;\n },\n subscribe: function subscribe(func) {\n if (subscribers.length === 0) {\n this.register();\n }\n\n var token = (++subUid).toString();\n subscribers.push({\n token: token,\n func: func\n });\n func(screens);\n return token;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers = subscribers.filter(function (item) {\n return item.token !== token;\n });\n\n if (subscribers.length === 0) {\n this.unregister();\n }\n },\n unregister: function unregister() {\n var _this = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n\n if (handler && handler.mql && handler.listener) {\n handler.mql.removeListener(handler.listener);\n }\n });\n },\n register: function register() {\n var _this2 = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isMediaStream = isMediaStream;\nexports.isBlobUrl = isBlobUrl;\nexports.supportsWebKitPresentationMode = supportsWebKitPresentationMode;\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return undefined;\n }\n\n var match = url.match(pattern);\n\n if (match) {\n var stamp = match[1];\n\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n\n return undefined;\n}\n\nfunction parseTimeString(stamp) {\n var seconds = 0;\n var array = MATCH_START_STAMP.exec(stamp);\n\n while (array !== null) {\n var _array = array,\n _array2 = _slicedToArray(_array, 3),\n count = _array2[1],\n period = _array2[2];\n\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n if (period === 'm') seconds += parseInt(count, 10) * 60;\n if (period === 's') seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n\n return seconds;\n}\n\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(key, \"=\").concat(object[key]);\n }).join('&');\n}\n\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n\n return null;\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n return true;\n };\n var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n var existingGlobal = getGlobal(sdkGlobal);\n\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n\n return new Promise(function (resolve, reject) {\n // If we are already loading the SDK, add the resolve and reject\n // functions to the existing array of requests\n if (requests[url]) {\n requests[url].push({\n resolve: resolve,\n reject: reject\n });\n return;\n }\n\n requests[url] = [{\n resolve: resolve,\n reject: reject\n }];\n\n var onLoaded = function onLoaded(sdk) {\n // When loaded, resolve all pending request promises\n requests[url].forEach(function (request) {\n return request.resolve(sdk);\n });\n };\n\n if (sdkReady) {\n var previousOnReady = window[sdkReady];\n\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n\n fetchScript(url, function (err) {\n if (err) {\n // Loading the SDK failed – reject all requests and\n // reset the array of requests for this SDK\n requests[url].forEach(function (request) {\n return request.reject(err);\n });\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n}\n\nfunction getConfig(props, defaultProps) {\n return (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n}\n\nfunction omit(object) {\n var _ref;\n\n for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n var output = {};\n var keys = Object.keys(object);\n\n for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n var key = _keys[_i2];\n\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n\n return output;\n}\n\nfunction callPlayer(method) {\n var _this$player;\n\n // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n if (!this.player || !this.player[method]) {\n var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n if (!this.player) {\n message += 'The player was not available';\n } else if (!this.player[method]) {\n message += 'The method was not available';\n }\n\n console.warn(message, 'font-weight: bold', '');\n return null;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isMediaStream(url) {\n return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}\n\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\n\nfunction supportsWebKitPresentationMode() {\n var video = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('video');\n // Check if Safari supports PiP, and is not on mobile (other than iPad)\n // iPhone safari appears to \"support\" PiP through the check, however PiP does not function\n var notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === 'function' && notMobile;\n}","/**\r\n * Defines functionality for \"Data Item\"\r\n *\r\n * A Data Item can be any object that can hold data. For example [[LineSeries]]\r\n * holds a number of values, that comprise a line graph. Each of those values\r\n * (data points) is a {DataItem}.\r\n *\r\n * Furthermore the [[LineSeries]] itself can be represented as a entry in the\r\n * legend. Since legend needs access to Line Series' value, a DataItem is\r\n * created for the series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObjectEvents, IBaseObjectEvents } from \"./Base\";\r\nimport { AMEvent } from \"./utils/EventDispatcher\";\r\nimport { Adapter } from \"./utils/Adapter\";\r\nimport { Component, CalculatedValue } from \"./Component\";\r\nimport { IAnimatable, Animation, IAnimationOptions, IAnimationEvents, AnimationDisposer } from \"./utils/Animation\";\r\nimport { Sprite } from \"./Sprite\";\r\nimport { IDisposer } from \"./utils/Disposer\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $array from \"./utils/Array\";\r\n//import * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n *\r\n * @todo Description\r\n */\r\nexport interface IValues { }\r\n\r\n/**\r\n * Defines data events for [[DataItem]]\r\n */\r\nexport interface IDataItemEvents extends IBaseObjectEvents {\r\n\r\n\t/**\r\n\t * Invoked when the visibility of the Data Item changes, i.e. Series is\r\n\t * hidden\r\n\t */\r\n\tvisibilitychanged: {\r\n\t\tvisible: boolean;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when the value is changed\r\n\t */\r\n\tvaluechanged: {\r\n\t\tproperty: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when the internal/intermediate value has changed\r\n\t */\r\n\tworkingvaluechanged: {\r\n\t\tproperty: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when the calculated value has changed\r\n\t */\r\n\tcalculatedvaluechanged: {\r\n\t\tproperty: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when the location of Data Item changes\r\n\t */\r\n\tlocationchanged: {\r\n\t\tproperty: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when working location of Data Item changes\r\n\t */\r\n\tworkinglocationchanged: {\r\n\t\tproperty: string;\r\n\t};\r\n\r\n\t/**\r\n\t * Invoked when a property of the Data Item changes\r\n\t */\r\n\tpropertychanged: {\r\n\t\tproperty: string;\r\n\t\tvalue: any; // TODO don't make this any\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[DataItem]]\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDataItemAdapters {\r\n\r\n\tduration: number;\r\n\r\n\tvalue: {\r\n\t\tvalue: number,\r\n\t\tfield: string\r\n\t};\r\n\r\n\tworkingValue: {\r\n\t\tworkingValue: number,\r\n\t\tfield: string\r\n\t};\r\n\r\n\tdate: {\r\n\t\tdate: Date,\r\n\t\tfield: string\r\n\t};\r\n\r\n}\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * DataItem represents single element in data, for example a data point in a\r\n * Serial Chart Series, e.g. a column.\r\n *\r\n * DataItem defines relationship between structured data, required for specific\r\n * chart type or task, and raw source data.\r\n *\r\n * It also implements required calculations, updates related visual elements,\r\n * etc.\r\n *\r\n * @todo Description\r\n * @important\r\n */\r\nexport class DataItem extends BaseObjectEvents implements IAnimatable {\r\n\r\n\t/**\r\n\t * When we are using a nested data structure, like for example in a TreeMap,\r\n\t * this property points to a parent Data Item of this one.\r\n\t */\r\n\tpublic parent: $type.Optional<this>;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDataItemEvents;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDataItemAdapters;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _adapterO: Adapter<this, this[\"_adapter\"]>;\r\n\r\n\t/**\r\n\t * Holds Adapter.\r\n\t */\r\n\tpublic get adapter(): Adapter<this, this[\"_adapter\"]> {\r\n\t\tif (!this._adapterO) {\r\n\t\t\tthis._adapterO = new Adapter<this, this[\"_adapter\"]>(this);\r\n\t\t}\r\n\t\treturn this._adapterO;\r\n\t}\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this Data Item is used for.\r\n\t */\r\n\tpublic _component!: Component;\r\n\r\n\t/**\r\n\t * A reference to a [[Component]] this Data Item belongs to.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic component: $type.Optional<this[\"_component\"]>;\r\n\r\n\t/**\r\n\t * A reference to the original Data Item in raw data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _dataContext: Object;\r\n\r\n\t/**\r\n\t * This Data Item is currently disabled.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _disabled: boolean = false;\r\n\r\n\t/**\r\n\t * Indicates whether Data Item has any properties set.\r\n\t *\r\n\t * If it does not have any, the code can use this property to check whether\r\n\t * they need to apply costly operation of re-applying properties, whenever\r\n\t * Data Item-related element is redrawn, e.g. series.\r\n\t */\r\n\tpublic hasProperties: boolean = false;\r\n\r\n\t/**\r\n\t * An object containing calculated values.\r\n\t */\r\n\tpublic readonly values: { [index: string]: { [index: string]: number } } = {};\r\n\r\n\t/**\r\n\t * An object container current working values.\r\n\t */\r\n\t//public readonly workingValues: { [index: string]: { [index: string]: number } } = {};\r\n\r\n\t/**\r\n\t * An object containing categories.\r\n\t */\r\n\tpublic readonly categories: { [index: string]: string } = {};\r\n\r\n\t/**\r\n\t * An object containing dates.\r\n\t */\r\n\tpublic readonly dates: { [index: string]: Date } = {};\r\n\r\n\t/**\r\n\t * An object containing locations for the Data Item.\r\n\t *\r\n\t * A location is a position within date or category, or, in some other cases,\r\n\t * where there is no single point but rather some period.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/series/#Data_item_locations} for info how data item locations work\r\n\t */\r\n\tpublic readonly locations: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * Current working locations.\r\n\t */\r\n\tpublic readonly workingLocations: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * An object containing Data Item specific appearance properties in key-value\r\n\t * pairs.\r\n\t *\r\n\t * Sometimes a single Data Item needs to apply different properties than the\r\n\t * rest of the data [[Series]] it is part of. E.g. a single column,\r\n\t * represented by a Data Item needs to be filled with a different color than\r\n\t * the reset of the [[ColumnSeries]] it belongs to.\r\n\t *\r\n\t * That's where Data Item's `properties` come into play.\r\n\t *\r\n\t * Please note that you should set Data Item-specific properties using\r\n\t * `setProperty()` method, rather than access `properties` object directly.\r\n\t */\r\n\tpublic readonly properties: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * A list of [[Sprite]] elements that are associated with this Data Item.\r\n\t *\r\n\t * E.g. an [[Axis]] Data Item has several separate elements associated with\r\n\t * it, like [[AxisTick]], [[AxisLabel]], and [[Grid]].\r\n\t *\r\n\t * Data Item keeps track of all of them, so it can toggle all related visual\r\n\t * elements when it itself is toggled.\r\n\t */\r\n\tpublic sprites: Sprite[] = [];\r\n\r\n\t/**\r\n\t * Identifies if this object is a \"template\" and should not be treated as\r\n\t * real object that is drawn or actually used in the chart.\r\n\t */\r\n\tpublic isTemplate: boolean = false;\r\n\r\n\t/**\r\n\t * List of animations currently animating Data Item's values.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _animations: $type.Optional<Array<Animation>>;\r\n\r\n\t/**\r\n\t * The current index within the dataItems\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _index: number | null = null;\r\n\r\n\t/**\r\n\t * Is Data Item currently visible?\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _visible: boolean = true;\r\n\r\n\t/**\r\n\t * Is Data Item currently hidden?\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _hidden: boolean = false;\r\n\r\n\t/**\r\n\t * Should this Data Item be used when calculating data ranges and scales?\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _ignoreMinMax: boolean = false;\r\n\r\n\t/**\r\n\t * Some of the Data Item's data fields may contain an array of children. This\r\n\t * property contains an object indicating which fields hold an array, so that\r\n\t * they can be processed properly.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic hasChildren: { [index: string]: boolean } = {};\r\n\r\n\t/**\r\n\t * Indicates whether Data Item is currently animiting from visible to hidden\r\n\t * state.\r\n\t */\r\n\tpublic isHiding: boolean = false;\r\n\r\n\t/**\r\n\t * Holds a Disposer reference to hiding [[Animation]] currently playing.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _hideDisposer: $type.Optional<IDisposer>;\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _valueAnimations: { [key: string]: Animation } = {};\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _locationAnimations: { [key: string]: Animation } = {};\r\n\r\n\t/**\r\n\t * Constructor\r\n\t * @todo Adding events to disposers produces errors in some cases, which means that chart is using disposed Data Items which is not right\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Data Item's position index in Component's data.\r\n\t *\r\n\t * @return Index\r\n\t */\r\n\tpublic get index(): number {\r\n\t\tif (this.component) {\r\n\t\t\tif (this._index != null) {\r\n\t\t\t\treturn this._index;\r\n\t\t\t} else {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A list of [[Animations]] objects currently mutating Data Item's values.\r\n\t *\r\n\t * @return [description]\r\n\t */\r\n\tpublic get animations(): Array<Animation> {\r\n\t\tif (!this._animations) {\r\n\t\t\tthis._animations = [];\r\n\t\t\tthis._disposers.push(new AnimationDisposer(this._animations));\r\n\t\t}\r\n\t\treturn this._animations;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets visibility of the Data Item.\r\n\t *\r\n\t * @param value Visible?\r\n\t */\r\n\tpublic set visible(value: boolean) {\r\n\t\tif (value) {\r\n\t\t\tthis.hidden = false;\r\n\t\t}\r\n\t\tif (this._visible != value) {\r\n\t\t\tthis.setVisibility(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets hidden flag for data item. Mostly used to initially hide data item.\r\n\t *\r\n\t * @param value Hidden?\r\n\t */\r\n\tpublic set hidden(value: boolean) {\r\n\t\tif (this._hidden != value) {\r\n\t\t\tthis._hidden = value;\r\n\t\t\tif (value) {\r\n\t\t\t\tthis.setVisibility(false);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.setVisibility(true, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if this Data Item is currently hidden.\r\n\t *\r\n\t * @return Hidden?\r\n\t */\r\n\tpublic get hidden(): boolean {\r\n\t\treturn this._hidden;\r\n\t}\r\n\r\n\t/**\r\n\t * Disables all Sprites associated with this Data Item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {boolean}\r\n\t */\r\n\tpublic set __disabled(value: boolean) {\r\n\t\t//\tif (this._disabled != value) { // not good\r\n\t\tthis._disabled = value;\r\n\r\n\t\t$array.each(this.sprites, (sprite) => {\r\n\t\t\tsprite.__disabled = value;\r\n\t\t});\r\n\t\t//\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Is this Data Item currently disabled?\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param {boolean}\r\n\t */\r\n\tpublic get __disabled(): boolean {\r\n\t\treturn this._disabled;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets visibility of the Data Item.\r\n\t *\r\n\t * @param value Data Item\r\n\t */\r\n\tpublic setVisibility(value: boolean, noChangeValues?: boolean): void {\r\n\t\t$array.each(this.sprites, (sprite) => {\r\n\t\t\tif (value) {\r\n\t\t\t\tsprite.visible = sprite.defaultState.properties.visible;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (sprite.hiddenState) {\r\n\t\t\t\t\tsprite.visible = sprite.hiddenState.properties.visible;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsprite.visible = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._visible = value;\r\n\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\tif (this.events.isEnabled(\"visibilitychanged\")) {\r\n\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"visibilitychanged\"] = {\r\n\t\t\t\t\ttype: \"visibilitychanged\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tvisible: value\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"visibilitychanged\", event);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if this Data Item is currently visible.\r\n\t *\r\n\t * @return Visible?\r\n\t */\r\n\tpublic get visible(): boolean {\r\n\t\tif (this._hidden) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this._visible;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param fields A list of fields to set values of\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tif (!this.hidden) {\r\n\t\t\tthis.setVisibility(true, true);\r\n\r\n\t\t\tthis.isHiding = false;\r\n\r\n\t\t\tif (this._hideDisposer) {\r\n\t\t\t\tthis.removeDispose(this._hideDisposer);\r\n\t\t\t}\r\n\r\n\t\t\tlet animation: $type.Optional<Animation>;\r\n\r\n\t\t\tif (fields) {\r\n\t\t\t\t$array.each(fields, (field) => {\r\n\t\t\t\t\tanimation = this.setWorkingValue(field, this.values[field].value, duration, delay);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.sprites, (sprite) => {\r\n\t\t\t\tlet animation = sprite.show(duration);\r\n\r\n\t\t\t\tif (animation != null && !animation.isFinished()) {\r\n\t\t\t\t\tthis._disposers.push(animation);\r\n\r\n\t\t\t\t\tif (delay != null && delay > 0) {\r\n\t\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn animation;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\tsuper.dispose();\r\n\r\n\t\t$array.each(this.sprites, (sprite) => {\r\n\t\t\tsprite.dispose();\r\n\t\t});\r\n\r\n\t\tthis.sprites = [];\r\n\t}\r\n\r\n\t/**\r\n\t * Hides the Data Item and related visual elements.\r\n\t *\r\n\t * @param duration Animation duration (ms)\r\n\t * @param delay Delay animation (ms)\r\n\t * @param toValue A value to set to `fields` when hiding\r\n\t * @param fields A list of data fields to set value to `toValue`\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\t\tthis.isHiding = true;\r\n\r\n\t\t$array.each(this.sprites, (sprite) => {\r\n\r\n\t\t\tlet animation = sprite.hide(duration);\r\n\r\n\t\t\tif (animation != null && !animation.isFinished()) {\r\n\t\t\t\tthis._disposers.push(animation);\r\n\r\n\t\t\t\tif (delay != null && delay > 0) {\r\n\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ($type.isNumber(toValue) && fields) {\r\n\t\t\tlet animation: $type.Optional<Animation>;\r\n\r\n\t\t\t$array.each(fields, (field) => {\r\n\t\t\t\tlet anim = this.setWorkingValue(field, toValue, duration, delay);\r\n\t\t\t\tif (anim) {\r\n\t\t\t\t\tanimation = anim;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (animation && !animation.isFinished()) {\r\n\t\t\t\tthis._hideDisposer = animation.events.on(\"animationended\", () => {\r\n\t\t\t\t\tthis.setVisibility(false, true);\r\n\t\t\t\t\tthis.isHiding = false;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis._disposers.push(this._hideDisposer);\r\n\t\t\t\treturn animation;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.isHiding = false;\r\n\t\t\t\tthis.setVisibility(false, true);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isHiding = false;\r\n\t\t\tthis.setVisibility(false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a duration (ms) the Data Item should take to animate from one\r\n\t * value to another.\r\n\t *\r\n\t * If the duration is not specified via parameter, this method will try to\r\n\t * request a default duration from the related `Component`.\r\n\t *\r\n\t * @param duration Default duration (ms)\r\n\t * @return Duration (ms)\r\n\t */\r\n\tpublic getDuration(duration?: number): $type.Optional<number> {\r\n\t\tif (!$type.isNumber(duration)) {\r\n\t\t\tlet component: $type.Optional<Component> = this.component;\r\n\t\t\tif (component) {\r\n\t\t\t\tduration = component.interpolationDuration;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (duration != null) {\r\n\t\t\tif (!this._adapterO) {\r\n\t\t\t\treturn duration;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this._adapterO.apply(\"duration\", duration);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a numeric value for specific data field.\r\n\t *\r\n\t * If `calculated` is not set, it will return a raw value, as it is in\r\n\t * source data.\r\n\t *\r\n\t * If `calculated` is set, it will return a pre-calculated specific value.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @param calculated A calculated value name\r\n\t * @return Value\r\n\t */\r\n\tpublic getValue(name: string, calculated?: CalculatedValue): $type.Optional<number> {\r\n\t\tif (name && this.component) {\r\n\t\t\tif (!calculated) {\r\n\t\t\t\tcalculated = (<any>this.component.dataFields)[name + \"Show\"];\r\n\t\t\t\tif (!calculated) {\r\n\t\t\t\t\tcalculated = \"value\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst value = this.values[name][calculated];\r\n\r\n\t\t\tif (this._adapterO && this._adapterO.isEnabled(\"value\")) {\r\n\t\t\t\treturn this._adapterO.apply(\"value\", {\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tfield: name\r\n\t\t\t\t}).value;\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a current working value for a specific data field.\r\n\t *\r\n\t * The actual value may differ from the one returned by `getValue()`. The\r\n\t * latter returns static values from the data source.\r\n\t *\r\n\t * `getWorkingValue()` returns current value, which is usually different if\r\n\t * Data Item is animating from one state to another.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @return Value\r\n\t */\r\n\tpublic getWorkingValue(name: string): $type.Optional<number> {\r\n\t\tif (name && this.component) {\r\n\t\t\tlet realName = (<any>this.component.dataFields)[name + \"Show\"];\r\n\r\n\t\t\tif (!realName) {\r\n\t\t\t\trealName = \"workingValue\";\r\n\t\t\t}\r\n\t\t\tif (this._adapterO) {\r\n\t\t\t\treturn this._adapterO.apply(\"workingValue\", {\r\n\t\t\t\t\tworkingValue: this.values[name][realName],\r\n\t\t\t\t\tfield: name\r\n\t\t\t\t}).workingValue;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.values[name][realName];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @return Value\r\n\t */\r\n\tpublic getActualWorkingValue(name: string): $type.Optional<number> {\r\n\t\treturn this.values[name].workingValue;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets a numeric value for specific data field.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @param value Value\r\n\t * @param calculated Calculated data field name\r\n\t * @param duration Duration (ms) to animate to new value to\r\n\t * @param delay Delay animation (ms)\r\n\t */\r\n\tpublic setValue(name: string, value: number, duration?: number, delay?: number): void {\r\n\t\tlet currentValue: number = this.values[name].value;\r\n\t\tlet newDuration: $type.Optional<number> = this.getDuration(duration);\r\n\t\tvalue = $type.toNumber(value);\r\n\t\tif (currentValue !== value) {\r\n\t\t\tthis.values[name].value = value;\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"valuechanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"valuechanged\"] = {\r\n\t\t\t\t\t\ttype: \"valuechanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: name\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"valuechanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemValueChange(this, name);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setWorkingValue(name, value, newDuration, delay);\r\n\t}\r\n\r\n\tsetCalculatedValue(name: string, value: number, calculated: CalculatedValue): void {\r\n\t\tlet currentValue: number = this.values[name][calculated];\r\n\r\n\t\tif (currentValue !== value && $type.isNumber(value)) {\r\n\t\t\tthis.values[name][calculated] = value;\r\n\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"calculatedvaluechanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"calculatedvaluechanged\"] = {\r\n\t\t\t\t\t\ttype: \"calculatedvaluechanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: name\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"calculatedvaluechanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemCalculatedValueChange(this, name);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set current working numeric value for a specific data field.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @param value Value\r\n\t * @param calculated Calculated data field name\r\n\t * @param duration Duration (ms) to animate to new value to\r\n\t * @param delay Delay animation (ms)\r\n\t * @return An [[Animation]] object used for transition to new values\r\n\t */\r\n\tpublic setWorkingValue(name: string, value: number, duration?: number, delay?: number): $type.Optional<Animation> {\r\n\t\tif ($type.isNumber(this.values[name].value)) {\r\n\t\t\tlet newDuration: $type.Optional<number> = this.getDuration(duration);\r\n\r\n\t\t\tlet workingValue: number = this.values[name].workingValue;\r\n\r\n\t\t\tif (newDuration != null && newDuration > 0 && $type.isNumber(workingValue) && this.component) { // sometimes NaN is passed, so only change this to != null if all cases of NaN are handled, otherwise animation won't stop\r\n\r\n\t\t\t\tif (workingValue != value) {\r\n\t\t\t\t\tlet animation: Animation = this.animate({ childObject: this.values[name], property: \"workingValue\", from: workingValue, to: value, dummyData: name }, newDuration, this.component.interpolationEasing);\r\n\t\t\t\t\tif (delay != null) {\r\n\t\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tanimation.events.on(\"animationstarted\", this.handleInterpolationProgress, this);\r\n\t\t\t\t\tanimation.events.on(\"animationprogress\", this.handleInterpolationProgress, this);\r\n\t\t\t\t\tanimation.events.on(\"animationended\", this.handleInterpolationProgress, this);\r\n\t\t\t\t\tthis._valueAnimations[name] = animation;\r\n\t\t\t\t\treturn animation;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet valueAnimation = this._valueAnimations[name];\r\n\t\t\t\t\tif (valueAnimation) {\r\n\t\t\t\t\t\tvalueAnimation.stop();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.values[name].workingValue = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\tlet valueAnimation = this._valueAnimations[name];\r\n\t\t\t\tif (valueAnimation) {\r\n\t\t\t\t\tvalueAnimation.stop();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.values[name].workingValue = value;\r\n\t\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\t\tif (this.events.isEnabled(\"workingvaluechanged\")) {\r\n\t\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"workingvaluechanged\"] = {\r\n\t\t\t\t\t\t\ttype: \"workingvaluechanged\",\r\n\t\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\t\tproperty: name\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tthis.events.dispatchImmediately(\"workingvaluechanged\", event);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.component) {\r\n\t\t\t\t\tthis.component.handleDataItemWorkingValueChange(this, name);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a relative location for a data field.\r\n\t *\r\n\t * A location is always relative on a 0 to 1 scale, with 0 being beginning,\r\n\t * 0.5 middle and 1 end.\r\n\t *\r\n\t * @todo Rewiew description\r\n\t * @param name Data field name\r\n\t * @param value Location (0-1)\r\n\t * @param duration Duration (ms) to animate to new value to\r\n\t * @param delay Delay animation (ms)\r\n\t */\r\n\tpublic setLocation(name: string, value: number, duration?: number, delay?: number) {\r\n\t\tlet currentLocation: number = this.locations[name];\r\n\r\n\t\tif (currentLocation !== value) {\r\n\t\t\tthis.locations[name] = value;\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"locationchanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"locationchanged\"] = {\r\n\t\t\t\t\t\ttype: \"locationchanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: name\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"locationchanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemValueChange(this, name); // correct\r\n\t\t\t}\r\n\r\n\t\t\tthis.setWorkingLocation(name, value, duration, delay);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a current working location for a data field.\r\n\t *\r\n\t * @todo Rewiew description\r\n\t * @param name Data field name\r\n\t * @param value Location (0-1)\r\n\t * @param duration Duration (ms) to animate to new value to\r\n\t * @param delay Delay animation (ms)\r\n\t */\r\n\tpublic setWorkingLocation(name: string, value: number, duration?: number, delay?: number): $type.Optional<Animation> {\r\n\t\tlet newDuration: $type.Optional<number> = this.getDuration(duration);\r\n\t\tlet workingLocation: number = this.workingLocations[name];\r\n\r\n\t\tif (newDuration != null && newDuration > 0 && $type.isNumber(workingLocation) && this.component) { // sometimes NaN is passed, so only change this to != null if all cases of NaN are handled, otherwise animation won't stop\r\n\t\t\tif (workingLocation != value) {\r\n\t\t\t\tlet animation: Animation = this.animate({ childObject: this.workingLocations, property: name, from: workingLocation, to: value, dummyData: name }, newDuration, this.component.interpolationEasing);\r\n\t\t\t\tif (delay != null) {\r\n\t\t\t\t\tanimation.delay(delay);\r\n\t\t\t\t}\r\n\t\t\t\tanimation.events.on(\"animationstarted\", this.handleInterpolationProgress, this);\r\n\t\t\t\tanimation.events.on(\"animationprogress\", this.handleInterpolationProgress, this);\r\n\t\t\t\tanimation.events.on(\"animationended\", this.handleInterpolationProgress, this);\r\n\t\t\t\tthis._locationAnimations[name] = animation;\r\n\t\t\t\treturn animation;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet locationAnimation = this._locationAnimations[name];\r\n\t\t\t\tif (locationAnimation) {\r\n\t\t\t\t\tlocationAnimation.stop();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.workingLocations[name] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet locationAnimation = this._locationAnimations[name];\r\n\t\t\tif (locationAnimation) {\r\n\t\t\t\tlocationAnimation.stop();\r\n\t\t\t}\r\n\r\n\t\t\tthis.workingLocations[name] = value;\r\n\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"workinglocationchanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"workinglocationchanged\"] = {\r\n\t\t\t\t\t\ttype: \"workinglocationchanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: name\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"workinglocationchanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemWorkingLocationChange(this, name);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets Date value to a data field.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @param date Date object\r\n\t * @param duration Duration (ms) to animate to new value to\r\n\t */\r\n\tpublic setDate(name: string, date: Date, duration?: number) {\r\n\r\n\t\tif (!$type.isDate(date) && this.component) {\r\n\t\t\tdate = this.component.dateFormatter.parse(date);\r\n\t\t}\r\n\r\n\t\tlet currentDate: Date = this.dates[name];\r\n\t\tif (currentDate !== date) {\r\n\t\t\tthis.dates[name] = date;\r\n\t\t\tthis.setValue(name, date.getTime(), duration);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a Date value of the data field.\r\n\t *\r\n\t * @param name Data field name\r\n\t * @return Date object\r\n\t */\r\n\tpublic getDate(name: string): Date {\r\n\t\tif (this._adapterO) {\r\n\t\t\treturn this._adapterO.apply(\"date\", {\r\n\t\t\t\tdate: this.dates[name],\r\n\t\t\t\tfield: name\r\n\t\t\t}).date;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.dates[name];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a Data Item-specific visual properties to apply to related elements.\r\n\t *\r\n\t * @param name Property name\r\n\t * @param value Property value\r\n\t */\r\n\tpublic setProperty(name: string, value: any) {\r\n\t\tif (this.properties[name] !== value) {\r\n\t\t\tthis.hasProperties = true;\r\n\t\t\tthis.properties[name] = value;\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"propertychanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"propertychanged\"] = {\r\n\t\t\t\t\t\ttype: \"propertychanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: name,\r\n\t\t\t\t\t\tvalue: value\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"propertychanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemPropertyChange(this, name);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a related category for this Data Item.\r\n\t *\r\n\t * @todo Review description\r\n\t * @param name Data field name\r\n\t * @param value Category\r\n\t */\r\n\tpublic setCategory(name: string, value: string) {\r\n\t\tif (!$type.isString(value)) {\r\n\t\t\tvalue = $type.castString(value);\r\n\t\t}\r\n\r\n\t\tif (this.categories[name] !== value) {\r\n\t\t\tthis.categories[name] = value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Clones the Data Item, including all related data.\r\n\t *\r\n\t * @return New Data Item clone\r\n\t */\r\n\t//public clone(cloneId?: string): this {\r\n\t//\tlet dataItem: this = super.clone(cloneId);\r\n\t//\tdataItem.copyFrom(this);\r\n\t//\treturn dataItem;\r\n\t//}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from different data item.\r\n\t *\r\n\t * @param object Source data item\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\tif (source.dataContext) {\r\n\t\t\tthis.dataContext = $utils.copy(source.dataContext, {});\r\n\t\t}\r\n\r\n\t\t$utils.copyProperties(source.locations, this.locations);\r\n\t\t/*\r\n\t\t$utils.copyProperties(source.properties, this.properties);\r\n\t\t$utils.copyProperties(source.categories, this.categories);\r\n\t\t$utils.copyProperties(source.values, this.values);\r\n\t\t$utils.copyProperties(source.dates, this.dates);\r\n\r\n\t\t$object.each(source.values, (name, value) => {\r\n\t\t\tthis.values[name] = $object.copy(value);\r\n\t\t});*/\r\n\t\tif (source._adapterO) {\r\n\t\t\tthis.adapter.copyFrom(source._adapterO);\r\n\t\t}\r\n\t\t//this.events.copyFrom(source.events); // because copied in Base\r\n\t\tthis.component = source.component;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets opacity for all Data Item's related elements (Sprites).\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set opacity(value: number) {\r\n\t\t$array.each(this.sprites, (sprite) => {\r\n\t\t\tsprite.opacity = value;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets whether this data point should not be included in the scale and\r\n\t * minimum/maximum calculations.\r\n\t *\r\n\t * E.g. some we may want to exclude a particular data point from influencing\r\n\t * [[ValueAxis]] scale.\r\n\t *\r\n\t * @param value Exclude from min/max calculations?\r\n\t */\r\n\tpublic set ignoreMinMax(value: boolean) {\r\n\t\tthis._ignoreMinMax = value;\r\n\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\tif (this.events.isEnabled(\"propertychanged\")) {\r\n\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"propertychanged\"] = {\r\n\t\t\t\t\ttype: \"propertychanged\",\r\n\t\t\t\t\ttarget: this,\r\n\t\t\t\t\tproperty: \"ignoreMinMax\",\r\n\t\t\t\t\tvalue: value\r\n\t\t\t\t};\r\n\t\t\t\tthis.events.dispatchImmediately(\"propertychanged\", event);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.handleDataItemPropertyChange(this, \"ignoreMinMax\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Exclude from min/max calculations?\r\n\t * @return Exclude from min/max calculations?\r\n\t */\r\n\tpublic get ignoreMinMax(): boolean {\r\n\t\treturn this._ignoreMinMax;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates and starts an [[Animation]] to interpolate (morph) Data Item's\r\n\t * properties and/or values.\r\n\t *\r\n\t * @see {@link Animation}\r\n\t * @param animationOptions Animation options\r\n\t * @param duration Animation duration (ms)\r\n\t * @param easing Easing function\r\n\t * @return Animation\r\n\t */\r\n\tpublic animate(animationOptions: IAnimationOptions[] | IAnimationOptions, duration: number, easing?: (value: number) => number): Animation {\r\n\t\treturn new Animation(this, animationOptions, duration, easing).start();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles intermediate steps when Data Item is interpolating (morphing) from\r\n\t * one value to another.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event object\r\n\t */\r\n\tpublic handleInterpolationProgress(event: AMEvent<Animation, IAnimationEvents>[\"animationstarted\" | \"animationended\" | \"animationprogress\"]) {\r\n\t\tlet animation: Animation = event.target;\r\n\r\n\t\t// it's always only one options, no need cycle\r\n\t\tlet animationOptions: IAnimationOptions = animation.animationOptions[0];\r\n\t\tif (animationOptions) {\r\n\t\t\tif (this._eventDispatcher && !this.__disabled) {\r\n\t\t\t\tif (this.events.isEnabled(\"workingvaluechanged\")) {\r\n\t\t\t\t\tconst event: AMEvent<this, IDataItemEvents>[\"workingvaluechanged\"] = {\r\n\t\t\t\t\t\ttype: \"workingvaluechanged\",\r\n\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\tproperty: animationOptions.dummyData\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tthis.events.dispatchImmediately(\"workingvaluechanged\", event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.component) {\r\n\t\t\t\tthis.component.handleDataItemWorkingValueChange(this, animationOptions.dummyData);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether Data Item has values set for all of the data fields,\r\n\t * supplied via argument.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fields Field list to check\r\n\t * @return Has values for all fields?\r\n\t */\r\n\tpublic hasValue(fields: string[]): boolean {\r\n\t\t// todo: what about categories?\r\n\t\tfor (let i = 0, len = fields.length; i < len; i++) {\r\n\t\t\tlet values = this.values[fields[i]];\r\n\t\t\tif (!values || !$type.hasValue(values.value)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Depth of the Data Item.\r\n\t *\r\n\t * In nested data structures, like TreeMap, this indicates the level this\r\n\t * data point is at, in relation to the parent Data Item.\r\n\t *\r\n\t * @return Depth\r\n\t */\r\n\tpublic get depth(): number {\r\n\t\tif (!this.parent) {\r\n\t\t\treturn 0;\r\n\r\n\t\t} else {\r\n\t\t\treturn this.parent.depth + 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets to a reference to an original object from Component's data.\r\n\t *\r\n\t * @return [description]\r\n\t */\r\n\tpublic get dataContext(): Object {\r\n\t\treturn this._dataContext;\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to an original object in Component's data, that this Data Item\r\n\t * is derived from.\r\n\t *\r\n\t * @param value Original data object\r\n\t */\r\n\tpublic set dataContext(value: Object) {\r\n\t\tthis._dataContext = value;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * adds a sprite to dataItem.sprites array\r\n\t * @ignore\r\n\t */\r\n\taddSprite(sprite: Sprite) {\r\n\t\tif (sprite.dataItem && sprite.dataItem != this) {\r\n\t\t\t$array.remove(sprite.dataItem.sprites, sprite);\r\n\t\t}\r\n\t\tif (!this.visible) {\r\n\t\t\tsprite.hide(0);\r\n\t\t}\r\n\r\n\t\tif (this.isHiding) {\r\n\t\t\tsprite.hide();\r\n\t\t}\r\n\t\tthis.sprites.push(sprite);\r\n\t\tsprite.dataItem = this;\r\n\t}\r\n}\r\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"./Container\";\r\nimport { List, IListEvents, ListDisposer } from \"./utils/List\";\r\nimport { OrderedListTemplate, ISortedListEvents } from \"./utils/SortedList\";\r\nimport { Animation } from \"./utils/Animation\";\r\nimport { Dictionary } from \"./utils/Dictionary\";\r\nimport { IDisposer, Disposer, MultiDisposer } from \"./utils/Disposer\";\r\nimport { Export, IExportAdapters } from \"./export/Export\";\r\nimport { DataSource } from \"./data/DataSource\";\r\nimport { Responsive } from \"./utils/Responsive\";\r\nimport { system } from \"./System\";\r\n\r\nimport { DataItem } from \"./DataItem\";\r\nimport { registry } from \"./Registry\";\r\nimport { Preloader } from \"./elements/Preloader\";\r\nimport { IRange } from \"./defs/IRange\";\r\n\r\nimport * as $math from \"./utils/Math\";\r\nimport * as $array from \"./utils/Array\";\r\nimport * as $ease from \"./utils/Ease\";\r\nimport * as $utils from \"./utils/Utils\";\r\nimport * as $iter from \"./utils/Iterator\";\r\nimport * as $object from \"./utils/Object\";\r\nimport * as $type from \"./utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A list of available types for calculated values.\r\n */\r\nexport type CalculatedValue =\r\n\t\"value\" |\r\n\t\"percent\" |\r\n\t\"change\" |\r\n\t\"changePercent\" |\r\n\t\"startChangePercent\" |\r\n\t\"startChange\" |\r\n\t\"previousChangePercent\" |\r\n\t\"previousChange\" |\r\n\t\"sum\" |\r\n\t\"absoluteSum\" |\r\n\t\"average\" |\r\n\t\"open\" |\r\n\t\"close\" |\r\n\t\"low\" |\r\n\t\"high\" |\r\n\t\"count\" |\r\n\t\"total\" |\r\n\t\"totalPercent\" |\r\n\t\"stack\";\r\n\r\n/**\r\n * Defines properties for [[Component]].\r\n */\r\nexport interface IComponentProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Maximum zoom factor of a component.\r\n\t */\r\n\tmaxZoomFactor?: number;\r\n\r\n\t/**\r\n\t * Maximum zoom declination (how much out of 0-1 range it will allow to step out)\r\n\t *\r\n\t * @ignore\r\n\t * @default 0.5\r\n\t */\r\n\tmaxZoomDeclination?: number;\r\n\r\n\t/**\r\n\t * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * Allows restricting zoom in beyond certain number of categories or base\r\n\t * intervals.\r\n\t *\r\n\t * The chart will not zoom in beyond this number of items.\r\n\t *\r\n\t * @default 1\r\n\t */\r\n\tminZoomCount?: number;\r\n\r\n\t/**\r\n\t * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * Limits how many categories or base intervals can be shown at the same\r\n\t * time.\r\n\t *\r\n\t * If there are more items in the chart, the chart will auto-zoom.\r\n\t *\r\n\t * @default 0 (no limit)\r\n\t */\r\n\tmaxZoomCount?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines data fields for [[Component]].\r\n */\r\nexport interface IComponentDataFields {\r\n\r\n\t/**\r\n\t * Data.\r\n\t */\r\n\tdata?: string;\r\n\r\n\t/**\r\n\t * ID.\r\n\t */\r\n\tid?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Component]].\r\n */\r\nexport interface IComponentEvents extends IContainerEvents {\r\n\r\n\t/**\r\n\t * Invoked when range of the currently selected data is validated.\r\n\t *\r\n\t * @todo: change to datarangevalidated?\r\n\t */\r\n\tdatarangechanged: {};\r\n\r\n\t/**\r\n\t * Invoked when the raw data for the component changes.\r\n\t */\r\n\tdatavalidated: {};\r\n\r\n\t/**\r\n\t * Invoked when value(s) of the element's data items are validated.\r\n\t */\r\n\tdataitemsvalidated: {};\r\n\r\n\t/**\r\n\t * Invoked just before element is validated (after changes).\r\n\t */\r\n\tbeforedatavalidated: {};\r\n\r\n\t/**\r\n\t * Invoked when range change animation starts\r\n\t */\r\n\trangechangestarted: {};\r\n\r\n\t/**\r\n\t * Invoked when range change animation ends\r\n\t */\r\n\trangechangeended: {};\r\n\r\n\t/**\r\n\t * Invoked when start position changes.\r\n\t *\r\n\t * Please note that `startchanged` event is dispatched immediately after\r\n\t * zoom occurs, so some related properties (e.g. `minZoomed` on [[ValueAxis]])\r\n\t * might not be yet updated.\r\n\t *\r\n\t * Use `startendchanged` event instead if you need to rely on updated\r\n\t * zoom-related values.\r\n\t */\r\n\tstartchanged: {};\r\n\r\n\t/**\r\n\t * Invoked when end position changes\r\n\t *\r\n\t * Please note that `endhanged` event is dispatched immediately after\r\n\t * zoom occurs, so some related properties (e.g. `maxZoomed` on [[ValueAxis]])\r\n\t * might not be yet updated.\r\n\t *\r\n\t * Use `startendchanged` event instead if you need to rely on updated\r\n\t * zoom-related values.\r\n\t */\r\n\tendchanged: {};\r\n\r\n\t/**\r\n\t * Invoked when start or end position changes, unlike startchanged/endchanged\r\n\t * this event is fired not immediately but at the end of a cycle.\r\n\t */\r\n\tstartendchanged: {};\r\n}\r\n\r\n/**\r\n * Defines adapters\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface IComponentAdapters extends IContainerAdapters, IComponentProperties {\r\n\r\n\t/**\r\n\t * Applied after [[Component]] retrieves data value from data context\r\n\t * (raw data), but before it is provided to [[DataItem]].\r\n\t */\r\n\tdataContextValue: {\r\n\t\tvalue: any,\r\n\t\tfield: string,\r\n\t\tdataItem: DataItem\r\n\t};\r\n\r\n\t/**\r\n\t * Applied to chart's data before it is retrieved for use.\r\n\t */\r\n\tdata: any[];\r\n\r\n\tstart: number;\r\n\r\n\tend: number;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A Component represents an independent functional element or control, that\r\n * can have it's own behavior, children, data, etc.\r\n *\r\n * A few examples of a Component: [[Legend]], [[Series]], [[Scrollbar]].\r\n *\r\n * @see {@link IComponentEvents} for a list of available events\r\n * @see {@link IComponentAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class Component extends Container {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields!: IComponentDataFields;\r\n\r\n\t/**\r\n\t * Holds data field names.\r\n\t *\r\n\t * Data fields define connection beween [[DataItem]] and actual properties\r\n\t * in raw data.\r\n\t */\r\n\tpublic dataFields: this[\"_dataFields\"] = {};\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IComponentProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IComponentAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IComponentEvents;\r\n\r\n\t/**\r\n\t * Holds the data for the component.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _data: $type.Optional<any[]>;\r\n\r\n\t/**\r\n\t * A [[Component]] which provides data to this component (like Chart provides\r\n\t * data for Series).\r\n\t */\r\n\tpublic dataProvider: $type.Optional<Component>;\r\n\r\n\t/**\r\n\t * A list of [[DataSource]] definitions of external data source.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _dataSources: { [index: string]: DataSource } = {};\r\n\r\n\t/**\r\n\t * An instance of [[Responsive]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _responsive: $type.Optional<Responsive>;\r\n\r\n\t/**\r\n\t * This is used when only new data is invalidated (if added using `addData`\r\n\t * method).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _parseDataFrom: number = 0;\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _dataUsers: $type.Optional<List<Component>>;\r\n\r\n\t/**\r\n\t * Holds the disposers for the dataItems and dataUsers\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _dataDisposers: Array<IDisposer> = [];\r\n\r\n\r\n\t/**\r\n\t * Identifies the type of the [[DataItem]] used in this element.\r\n\t */\r\n\tpublic _dataItem!: DataItem;\r\n\r\n\t/**\r\n\t * List of element's source data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _dataItems: $type.Optional<OrderedListTemplate<this[\"_dataItem\"]>>;\r\n\r\n\t/**\r\n\t * Holds aggregated data items.\r\n\t *\r\n\t * @ignore\r\n\t */\r\n\tpublic _dataSets: Dictionary<string, OrderedListTemplate<this[\"_dataItem\"]>>;\r\n\r\n\t/**\r\n\t * Currently selected \"data set\".\r\n\t *\r\n\t * If it's set to `\"\"`, main data set (unaggregated data) is used.\r\n\t */\r\n\tprotected _currentDataSetId: string = \"\";\r\n\r\n\t/**\r\n\t * [_startIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _startIndex: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * [_endIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _endIndex: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * [_start description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _start: number = 0;\r\n\r\n\t/**\r\n\t * [_end description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _end: number = 1;\r\n\r\n\t/**\r\n\t * [_finalStart description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _finalStart: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * [_finalEnd description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _finalEnd: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * If set to `true`, changing data range in element will not trigger\r\n\t * `daterangechanged` event.\r\n\t */\r\n\tpublic skipRangeEvent: boolean = false;\r\n\r\n\t/**\r\n\t * Whenever selected scope changes (chart is zoomed or panned), for example\r\n\t * by interaction from a Scrollbar, or API, a chart needs to reposition\r\n\t * its contents.\r\n\t *\r\n\t * `rangeChangeDuration` influences how this is performed.\r\n\t *\r\n\t * If set to zero (0), the change will happen instantenously.\r\n\t *\r\n\t * If set to non-zero value, the chart will gradually animate into new\r\n\t * position for the set amount of milliseconds.\r\n\t *\r\n\t * @default 0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tpublic rangeChangeDuration: number = 0;\r\n\r\n\t/**\r\n\t * An easing function to use for range change animation.\r\n\t *\r\n\t * @see {@link Ease}\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tpublic rangeChangeEasing: (value: number) => number = $ease.cubicOut;\r\n\r\n\t/**\r\n\t * A reference to a currently playing range change [[Animation]] object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic rangeChangeAnimation: $type.Optional<Animation>;\r\n\r\n\t/**\r\n\t * A duration (ms) of each data parsing step. A Component parses its data in\r\n\t * chunks in order to avoid completely freezing the machine when large data\r\n\t * sets are used. This setting will control how many milliseconds should pass\r\n\t * when parsing data until parser stops for a brief moment to let other\r\n\t * processes catch up.\r\n\t */\r\n\tpublic parsingStepDuration: number = 50;\r\n\r\n\t/**\r\n\t * [dataInvalid description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataInvalid: boolean = false;\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic rawDataInvalid: boolean = false;\r\n\r\n\t/**\r\n\t * [dataRangeInvalid description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataRangeInvalid: boolean = false;\r\n\r\n\t/**\r\n\t * [dataItemsInvalid description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic dataItemsInvalid: boolean = false;\r\n\r\n\t/**\r\n\t * If set to a non-zero number the element will \"animate\" data values of its\r\n\t * children.\r\n\t *\r\n\t * This will happen on first load and whenever data values change.\r\n\t *\r\n\t * Enabling interpolation will mean that elements will transit smoothly into\r\n\t * new values rather than updating instantly.\r\n\t *\r\n\t * @default 0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tpublic interpolationDuration: number = 0;\r\n\r\n\t/**\r\n\t * An easing function to use for interpolating values when transiting from\r\n\t * one source value to another.\r\n\t *\r\n\t * @default cubicOut\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t * @see {@link Ease}\r\n\t */\r\n\tpublic interpolationEasing: (value: number) => number = $ease.cubicOut;\r\n\r\n\t/**\r\n\t * Indicates whether transition between data item's values should start and\r\n\t * play out all at once, or with a small delay (as defined by\r\n\t * `sequencedInterpolationDelay`) for each subsequent data item.\r\n\t *\r\n\t * @default true\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tpublic sequencedInterpolation: boolean = true;\r\n\r\n\t/**\r\n\t * A delay (ms) to wait between animating each subsequent data item's\r\n\t * interpolation animation.\r\n\t *\r\n\t * Relative only if `sequencedInterpolation = true`.\r\n\t *\r\n\t * @default 0\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tpublic sequencedInterpolationDelay: number = 0;\r\n\r\n\t/**\r\n\t * A progress (0-1) for the data validation process.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic dataValidationProgress: number = 0;\r\n\r\n\t/**\r\n\t * [_prevStartIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _prevStartIndex: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * [_prevEndIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _prevEndIndex: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * Sometimes we need to process more dataItems then actually is\r\n\t * selected (for example, not to cut lines at the end/beginning).\r\n\t * However when calculating averages, min, max, etc we need not to include\r\n\t * them. So we store `workingStartIndex` and `workingEndIndex` to know which\r\n\t * dataItems should be included and which should not.\r\n\t */\r\n\r\n\t/**\r\n\t * [_workingStartIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _workingStartIndex: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * [_workingEndIndex description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected _workingEndIndex: $type.Optional<number>;\r\n\r\n\tprotected _addAllDataItems: boolean = true;\r\n\r\n\tprotected _showOnInitDisposer2: IDisposer;\r\n\r\n\tprotected _usesData: boolean = true;\r\n\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Component\";\r\n\r\n\t\tthis.minZoomCount = 1;\r\n\t\tthis.maxZoomCount = 0;\r\n\r\n\t\tthis._dataItems = new OrderedListTemplate<DataItem>(this.createDataItem());\r\n\t\tthis._dataItems.events.on(\"inserted\", this.handleDataItemAdded, this, false);\r\n\t\tthis._dataItems.events.on(\"removed\", this.handleDataItemRemoved, this, false);\r\n\t\tthis._disposers.push(new ListDisposer(this._dataItems));\r\n\t\tthis._disposers.push(this._dataItems.template);\r\n\r\n\t\tthis.invalidateData();\r\n\r\n\t\t// TODO what about remove ?\r\n\t\tthis.dataUsers.events.on(\"inserted\", this.handleDataUserAdded, this, false);\r\n\r\n\t\t// Set up disposers\r\n\t\tthis._disposers.push(new MultiDisposer(this._dataDisposers));\r\n\r\n\t\tthis._start = 0;\r\n\t\tthis._end = 1;\r\n\r\n\t\tthis.maxZoomDeclination = 1;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new DataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataUserAdded description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param event Event object\r\n\t */\r\n\tprotected handleDataUserAdded(event: IListEvents<Component>[\"inserted\"]) {\r\n\t\tlet dataUser = event.newValue;\r\n\t\tdataUser.dataProvider = this;\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic handleDataItemValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tif (!this.dataItemsInvalid) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingLocationChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingLocationChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemCalculatedValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemCalculatedValueChange(dataItem?: this[\"_dataItem\"], name?: string) {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemPropertyChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemPropertyChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Populates a [[DataItem]] width data from data source.\r\n\t *\r\n\t * Loops through all the fields and if such a field is found in raw data\r\n\t * object, a corresponding value on passed in `dataItem` is set.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param item\r\n\t */\r\n\tprotected processDataItem(dataItem: this[\"_dataItem\"], dataContext?: Object): void {\r\n\t\tif (dataItem) {\r\n\t\t\tif (!dataContext) {\r\n\t\t\t\tdataContext = {};\r\n\t\t\t}\r\n\r\n\t\t\t// store reference to original data item\r\n\t\t\tdataItem.dataContext = dataContext;\r\n\r\n\t\t\tlet hasSomeValues = false;\r\n\r\n\t\t\t$object.each(this.dataFields, (key, fieldValue) => {\r\n\t\t\t\tconst fieldName: string = <string>key;\r\n\r\n\t\t\t\tlet value: any = (<any>dataContext)[fieldValue];\r\n\t\t\t\t// Apply adapters to a retrieved value\r\n\t\t\t\tif (this._adapterO) {\r\n\t\t\t\t\tif (this._adapterO.isEnabled(\"dataContextValue\")) {\r\n\t\t\t\t\t\tvalue = this._adapterO.apply(\"dataContextValue\", {\r\n\t\t\t\t\t\t\tfield: fieldName,\r\n\t\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\t\tdataItem: dataItem\r\n\t\t\t\t\t\t}).value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\thasSomeValues = true;\r\n\r\n\t\t\t\t\tif (dataItem.hasChildren[fieldName]) {\r\n\t\t\t\t\t\tlet template = this.createDataItem();\r\n\t\t\t\t\t\ttemplate.copyFrom(this.mainDataSet.template);\r\n\t\t\t\t\t\tlet children = new OrderedListTemplate<DataItem>(template);\r\n\t\t\t\t\t\tchildren.events.on(\"inserted\", this.handleDataItemAdded, this, false);\r\n\t\t\t\t\t\tchildren.events.on(\"removed\", this.handleDataItemRemoved, this, false);\r\n\t\t\t\t\t\tthis._dataDisposers.push(new ListDisposer(children));\r\n\t\t\t\t\t\tlet count = value.length;\r\n\t\t\t\t\t\tfor (let i = 0; i < count; i++) {\r\n\t\t\t\t\t\t\tlet rawDataItem = value[i];\r\n\t\t\t\t\t\t\tlet childDataItem: this[\"_dataItem\"] = children.create();\r\n\t\t\t\t\t\t\tchildDataItem.parent = dataItem;\r\n\t\t\t\t\t\t\tthis.processDataItem(childDataItem, rawDataItem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlet anyDataItem = <any>dataItem;\r\n\t\t\t\t\t\tanyDataItem[fieldName] = <any>children;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// data is converted to numbers/dates in each dataItem\r\n\t\t\t\t\t\t(<any>dataItem)[fieldName] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$object.each(this.propertyFields, (key, fieldValue) => {\r\n\t\t\t\tconst f: string = <string>key;\r\n\t\t\t\tlet value: any = (<any>dataContext)[fieldValue];\r\n\r\n\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\thasSomeValues = true;\r\n\t\t\t\t\tdataItem.setProperty(f, value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// @todo we might need some flag which would tell whether we should create empty data items or not.\r\n\t\t\tif (!this._addAllDataItems && !hasSomeValues) {\r\n\t\t\t\tthis.mainDataSet.remove(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * When validating raw data, instead of processing data item, we update it\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param item\r\n\t */\r\n\tprotected updateDataItem(dataItem: this[\"_dataItem\"]): void {\r\n\t\tif (dataItem) {\r\n\r\n\t\t\tlet dataContext = dataItem.dataContext;\r\n\r\n\t\t\t$object.each(this.dataFields, (key, fieldValue) => {\r\n\t\t\t\tconst fieldName: string = <string>key;\r\n\r\n\t\t\t\tlet value: any = (<any>dataContext)[fieldValue];\r\n\t\t\t\t// Apply adapters to a retrieved value\r\n\t\t\t\tif (this._adapterO) {\r\n\t\t\t\t\tvalue = this._adapterO.apply(\"dataContextValue\", {\r\n\t\t\t\t\t\tfield: fieldName,\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tdataItem: dataItem\r\n\t\t\t\t\t}).value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\tif (dataItem.hasChildren[fieldName]) {\r\n\t\t\t\t\t\tlet anyDataItem = <any>dataItem;\r\n\t\t\t\t\t\tlet children = <OrderedListTemplate<this[\"_dataItem\"]>><any>(anyDataItem[fieldName]);\r\n\t\t\t\t\t\tchildren.each((child) => {\r\n\t\t\t\t\t\t\tthis.updateDataItem(child);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// data is converted to numbers/dates in each dataItem\t\t\t\t\t\r\n\t\t\t\t\t\t(<any>dataItem)[fieldName] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$object.each(this.propertyFields, (key, fieldValue) => {\r\n\t\t\t\tconst f: string = <string>key;\r\n\t\t\t\tlet value: any = (<any>dataContext)[fieldValue];\r\n\t\t\t\tif ($type.hasValue(value)) {\r\n\t\t\t\t\tdataItem.setProperty(f, value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [validateDataElements description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected validateDataElements() {\r\n\t\tlet count = this.endIndex;\r\n\r\n\t\tfor (let i = this.startIndex; i < count; i++) {\r\n\t\t\tconst dataItem = this.dataItems.getIndex(i);\r\n\r\n\t\t\t// TODO is this correct\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates this element and its related elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tthis.validateDataElements();\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElement description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem [description]\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Adds one or several (array) of data items to the existing data.\r\n\t *\r\n\t * @param rawDataItem One or many raw data item objects\r\n\t */\r\n\tpublic addData(rawDataItem: Object | Object[], removeCount?: number, skipRaw?:boolean): void {\r\n\r\n\t\t// need to check if data is invalid, as addData might be called multiple times\r\n\t\tif (!this.dataInvalid && this.inited) {\r\n\t\t\tthis._parseDataFrom = this.data.length; // save length of parsed data\r\n\t\t}\r\n\r\n\t\tif(!skipRaw){\r\n\t\t\tif (rawDataItem instanceof Array) {\r\n\t\t\t\t// can't use concat because new array is returned\r\n\t\t\t\t$array.each(rawDataItem, (dataItem) => {\r\n\t\t\t\t\tthis.data.push(dataItem);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.data.push(rawDataItem); // add to raw data array\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.inited) {\r\n\t\t\tthis.removeData(removeCount, skipRaw);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif ($type.isNumber(removeCount)) {\r\n\t\t\t\twhile (removeCount > 0) {\r\n\t\t\t\t\tthis.data.shift();\r\n\t\t\t\t\tremoveCount--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.invalidateData();\r\n\t}\r\n\r\n\t/**\r\n\t * Removes elements from the beginning of data\r\n\t *\r\n\t * @param count number of elements to remove\r\n\t */\r\n\tpublic removeData(count: $type.Optional<number>, skipRaw?:boolean) {\r\n\t\tif ($type.isNumber(count) && count > 0) {\r\n\t\t\twhile (count > 0) {\r\n\t\t\t\tlet dataItem = this.mainDataSet.getIndex(0);\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tthis.mainDataSet.remove(dataItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dataUsers.each((dataUser) => {\r\n\t\t\t\t\tif (!dataUser.data || dataUser.data.length == 0) {\r\n\t\t\t\t\t\tlet dataItem = dataUser.mainDataSet.getIndex(0);\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tdataUser.mainDataSet.remove(dataItem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif(!skipRaw){\r\n\t\t\t\t\tthis.data.shift();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._parseDataFrom > 0) {\r\n\t\t\t\t\tthis._parseDataFrom--;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcount--;\r\n\t\t\t}\r\n\t\t\t// changed from invalidateData since 4.7.19 to solve #51551\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers a data (re)parsing.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateData(): void {\r\n\t\tif (this.disabled || this.isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//if(!this.dataInvalid){\r\n\t\tregistry.addToInvalidComponents(this);\r\n\t\tsystem.requestFrame();\r\n\t\tthis.dataInvalid = true;\r\n\r\n\t\t$iter.each(this.dataUsers.iterator(), (x) => {\r\n\t\t\tx.invalidateDataItems();\r\n\t\t});\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * [invalidateDataUsers description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic invalidateDataUsers(): void {\r\n\t\t$iter.each(this.dataUsers.iterator(), (x) => {\r\n\t\t\tx.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates data values. When data array is not changed, but values within\r\n\t * it changes, we invalidate data so that component would process changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateDataItems(): void {\r\n\t\tif (this.disabled || this.isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//if(!this.dataItemsInvalid){\r\n\t\t$array.move(registry.invalidDataItems, this);\r\n\t\tsystem.requestFrame();\r\n\r\n\t\tthis.dataItemsInvalid = true;\r\n\r\n\t\t$iter.each(this.dataUsers.iterator(), (x) => {\r\n\t\t\tx.invalidateDataItems();\r\n\t\t});\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates data range. This is done when data which must be shown\r\n\t * changes (chart is zoomed for example).\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateDataRange(): void {\r\n\t\tif (this.disabled || this.isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//if(!this.dataRangeInvalid){\r\n\t\tthis.dataRangeInvalid = true;\r\n\t\t$array.move(registry.invalidDataRange, this);\r\n\t\tsystem.requestFrame();\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes data range.\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataRange(): void {\r\n\t\t$array.remove(registry.invalidDataRange, this);\r\n\t\tthis.dataRangeInvalid = false;\r\n\r\n\t\tif (this.startIndex != this._prevStartIndex || this.endIndex != this._prevEndIndex) {\r\n\t\t\tthis.rangeChangeUpdate();\r\n\t\t\tthis.appendDataItems();\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.dispatchImmediately(\"datarangechanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [sliceData description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected sliceData() {\r\n\t\tthis._workingStartIndex = this.startIndex;\r\n\t\tthis._workingEndIndex = this.endIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * [rangeChangeUpdate description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected rangeChangeUpdate() {\r\n\t\tthis.sliceData();\r\n\t\tthis._prevStartIndex = this.startIndex;\r\n\t\tthis._prevEndIndex = this.endIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * [appendDataItems description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected appendDataItems() {\r\n\t\t// TODO use an iterator instead\r\n\t\tlet count = this.endIndex;\r\n\t\tfor (let i: number = this.startIndex; i < count; i++) {\r\n\r\n\t\t\t// data item\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < this.startIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\r\n\t\tfor (let i = this.endIndex; i < this.dataItems.length; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * If you want to have a smooth transition from one data values to another, you change your raw data and then you must call this method.\r\n\t * then instead of redrawing everything, the chart will check raw data and smoothly transit from previous to new data\r\n\t */\r\n\tpublic invalidateRawData(): void {\r\n\t\tif (this.disabled || this.isTemplate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//if(!this.rawDataInvalid){\r\n\t\t$array.move(registry.invalidRawDatas, this);\r\n\t\tsystem.requestFrame();\r\n\r\n\t\tthis.rawDataInvalid = true;\r\n\r\n\t\t$iter.each(this.dataUsers.iterator(), (x) => {\r\n\t\t\tx.invalidateRawData();\r\n\t\t});\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic validateRawData() {\r\n\t\t$array.remove(registry.invalidRawDatas, this);\r\n\t\t$iter.each(this.mainDataSet.iterator(), (dataItem) => {\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tthis.updateDataItem(dataItem);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose() {\r\n\t\tthis.mainDataSet.template.clones.clear();\r\n\t\t$object.each(this._dataSources, (key, source) => {\r\n\t\t\tthis.removeDispose(source);\r\n\t\t});\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tthis.mainDataSet.template.clones.clear();\r\n\r\n\t\t$array.each(this._dataDisposers, (x) => {\r\n\t\t\tx.dispose();\r\n\t\t});\r\n\r\n\t\t// and for all components\r\n\t\t$iter.each(this.dataUsers.iterator(), (dataUser) => {\r\n\t\t\tdataUser.disposeData();\r\n\t\t});\r\n\r\n\t\tthis._dataDisposers.length = 0;\r\n\r\n\t\tthis._startIndex = undefined;\r\n\t\tthis._endIndex = undefined;\r\n\r\n\t\t// dispose old\r\n\t\tthis.mainDataSet.clear();\r\n\r\n\t\tthis.mainDataSet.template.clones.clear();\r\n\r\n\t\tif (this._dataSets) {\r\n\t\t\tthis._dataSets.clear();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected getDataItem(dataContext?: any): this[\"_dataItem\"] {\r\n\t\treturn this.mainDataSet.create();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates (processes) data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tthis.dispatchImmediately(\"beforedatavalidated\");\r\n\r\n\t\tthis.dataInvalid = false;\r\n\r\n\t\tregistry.removeFromInvalidComponents(this);\r\n\r\n\t\tif (this.__disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.dataValidationProgress = 0;\r\n\t\t// need this to slice new data\r\n\t\tthis._prevStartIndex = undefined;\r\n\t\tthis._prevEndIndex = undefined;\r\n\r\n\t\t// todo: this needs some overthinking, maybe some extra settings like zoomOotonDataupdate like in v3 or so. some charts like pie chart probably should act like this always\r\n\t\tthis._startIndex = undefined;\r\n\t\tthis._endIndex = undefined;\r\n\r\n\t\tif (this.dataFields.data && this.dataItem) {\r\n\t\t\tlet dataContext = <any>this.dataItem.dataContext;\r\n\t\t\tthis._data = dataContext[this.dataFields.data];\r\n\t\t}\r\n\r\n\t\t// data items array is reset only if all data is validated, if _parseDataFrom is not 0, we append new data only\r\n\t\t// check heatmap demo if uncommented\r\n\t\t// fixed both issues by adding && this.data.length > 0\r\n\t\t// check adding series example if changed\r\n\t\tif (this._parseDataFrom === 0 && this.data.length > 0) {\r\n\t\t\tthis.disposeData();\r\n\t\t}\r\n\r\n\t\tif (this.data.length > 0) {\r\n\t\t\tlet preloader: $type.Optional<Preloader> = this.preloader;\r\n\r\n\t\t\t// and for all components\r\n\t\t\t$iter.each(this.dataUsers.iterator(), (dataUser) => {\r\n\t\t\t\t// todo: this needs some overthinking, maybe some extra settings like zoomOUtonDataupdate like in v3 or so. some charts like pie chart probably should act like this always\r\n\t\t\t\tdataUser._startIndex = undefined;\r\n\t\t\t\tdataUser._endIndex = undefined;\r\n\t\t\t});\r\n\r\n\t\t\tlet counter: number = 0;\r\n\t\t\tlet startTime: number = Date.now();\r\n\t\t\t// parse data\r\n\t\t\tlet i = this._parseDataFrom;\r\n\t\t\tlet n = this.data.length;\r\n\r\n\t\t\tfor (i; i < n; i++) {\r\n\t\t\t\tlet rawDataItem = this.data[i];\r\n\t\t\t\tif (this._usesData) {\r\n\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.getDataItem(rawDataItem);\r\n\t\t\t\t\tthis.processDataItem(dataItem, rawDataItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dataUsers.each((dataUser) => {\r\n\t\t\t\t\tif (dataUser.data.length == 0) { // checking if data is not set directly\r\n\t\t\t\t\t\tlet dataUserDataItem: DataItem = dataUser.getDataItem(rawDataItem);\r\n\t\t\t\t\t\tdataUser.processDataItem(dataUserDataItem, rawDataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tcounter++;\r\n\r\n\t\t\t\t// show preloader if this takes too many time\r\n\t\t\t\tif (counter == 100) { // no need to check it on each data item\r\n\t\t\t\t\tcounter = 0;\r\n\t\t\t\t\tlet elapsed: number = Date.now() - startTime;\r\n\r\n\t\t\t\t\tif (elapsed > this.parsingStepDuration) {\r\n\t\t\t\t\t\tif (i < this.data.length - 10) {\r\n\t\t\t\t\t\t\tthis._parseDataFrom = i + 1;\r\n\r\n\t\t\t\t\t\t\t// update preloader\r\n\t\t\t\t\t\t\tif (preloader) {\r\n\t\t\t\t\t\t\t\tif (i / this.data.length > 0.5 && !preloader.visible) {\r\n\t\t\t\t\t\t\t\t\t// do not start showing\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tpreloader.progress = i / this.data.length;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.dataValidationProgress = i / this.data.length;\r\n\r\n\t\t\t\t\t\t\ti = this.data.length; // stops cycle\r\n\t\t\t\t\t\t\tthis.invalidateData();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dataUsers.each((dataUser) => {\r\n\t\t\t\tif (dataUser.hidden) {\r\n\t\t\t\t\tdataUser.hide(0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.dataValidationProgress = 1;\r\n\t\tthis._parseDataFrom = 0; // reset this index, it is set to dataItems.length if addData() method was used.\r\n\r\n\t\tthis.invalidateDataItems();\r\n\r\n\t\tif (!this._internalDefaultsApplied) {\r\n\t\t\tthis.applyInternalDefaults();\r\n\t\t}\r\n\r\n\t\tthis.dispatch(\"datavalidated\"); // can't zoom chart if dispatched immediately\r\n\t}\r\n\r\n\t/**\r\n\t * Validates (processes) data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems(): void {\r\n\t\t$array.remove(registry.invalidDataItems, this);\r\n\r\n\t\tthis.dataItemsInvalid = false;\r\n\r\n\t\tthis.invalidateDataRange();\r\n\t\tthis.invalidate();\r\n\t\tthis.dispatch(\"dataitemsvalidated\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets source (raw) data for the element. The \"data\" is always an `Array`\r\n\t * of objects.\r\n\t *\r\n\t * IMPORTANT: The order of data items in `data` array is important as it\r\n\t * might affect chart look and behavior. [More details](https://www.amcharts.com/docs/v4/concepts/data/#Order_of_data_items).\r\n\t *\r\n\t * @param value Data\r\n\t */\r\n\tpublic set data(value: any[]) {\r\n\t\tthis.setData(value);\r\n\t}\r\n\r\n\tprotected setData(value: any[]) {\r\n\t\t// array might be the same, but there might be items added\r\n\t\t// todo: check if array changed, toString maybe?\r\n\t\t//if (this._data != value) {\r\n\t\tthis._parseDataFrom = 0;\r\n\t\tthis.disposeData();\r\n\t\tthis._data = value;\r\n\t\tif (value && value.length > 0) {\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dispatchImmediately(\"beforedatavalidated\");\r\n\t\t\tthis.dispatch(\"datavalidated\");\r\n\t\t}\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's source (raw) data.\r\n\t *\r\n\t * @return Data\r\n\t */\r\n\tpublic get data(): any[] {\r\n\t\tif (!this._data) {\r\n\t\t\tthis._data = [];\r\n\t\t}\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._data;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"data\", this._data);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns (creates if necessary) a [[DataSource]] bound to any specific\r\n\t * property.\r\n\t *\r\n\t * For example if I want to bind `data` to an external JSON file, I'd create\r\n\t * a DataSource for it.\r\n\t *\r\n\t * @param property Property to bind external data to\r\n\t * @return A DataSource for property\r\n\t */\r\n\tpublic getDataSource(property: string): DataSource {\r\n\t\tif (!$type.hasValue(this._dataSources[property])) {\r\n\t\t\tthis._dataSources[property] = new DataSource();\r\n\t\t\tthis._dataSources[property].component = this;\r\n\t\t\tthis.setDataSourceEvents(this._dataSources[property], property);\r\n\t\t\tthis._dataSources[property].adapter.add(\"dateFields\", (val) => {\r\n\t\t\t\treturn this.dataSourceDateFields(val);\r\n\t\t\t});\r\n\t\t\tthis._dataSources[property].adapter.add(\"numberFields\", (val) => {\r\n\t\t\t\treturn this.dataSourceNumberFields(val);\r\n\t\t\t});\r\n\t\t\tthis.events.on(\"inited\", () => {\r\n\t\t\t\tthis.loadData(property);\r\n\t\t\t}, this, false);\r\n\t\t}\r\n\t\treturn this._dataSources[property];\r\n\t}\r\n\r\n\t/**\r\n\t *A [[DataSource]] to be used for loading Component's data.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/loading-external-data/} for more on loading external data\r\n\t * @param value Data source\r\n\t */\r\n\tpublic set dataSource(value: DataSource) {\r\n\t\tif (this._dataSources[\"data\"]) {\r\n\t\t\tthis.removeDispose(this._dataSources[\"data\"]);\r\n\t\t}\r\n\t\tthis._dataSources[\"data\"] = value;\r\n\t\tthis._dataSources[\"data\"].component = this;\r\n\t\tthis.events.on(\"inited\", () => {\r\n\t\t\tthis.loadData(\"data\")\r\n\t\t}, this, false);\r\n\t\tthis.setDataSourceEvents(value, \"data\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Data source\r\n\t */\r\n\tpublic get dataSource(): DataSource {\r\n\t\tif (!this._dataSources[\"data\"]) {\r\n\t\t\tthis.getDataSource(\"data\");\r\n\t\t}\r\n\t\treturn this._dataSources[\"data\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates loading of the external data via [[DataSource]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected loadData(property: string): void {\r\n\t\tthis._dataSources[property].load();\r\n\t}\r\n\r\n\t/**\r\n\t * This function is called by the [[DataSource]]'s `dateFields` adapater\r\n\t * so that particular chart types can popuplate this setting with their\r\n\t * own type-specific data fields so they are parsed properly.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Array of date fields\r\n\t * @return Array of date fields populated with chart's date fields\r\n\t */\r\n\tprotected dataSourceDateFields(value: string[]): string[] {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * This function is called by the [[DataSource]]'s `numberFields` adapater\r\n\t * so that particular chart types can popuplate this setting with their\r\n\t * own type-specific data fields so they are parsed properly.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Array of number fields\r\n\t * @return Array of number fields populated with chart's number fields\r\n\t */\r\n\tprotected dataSourceNumberFields(value: string[]): string[] {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param list [description]\r\n\t * @param dataFields [description]\r\n\t * @param targetList [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected populateDataSourceFields(list: string[], dataFields: { [index: string]: string }, targetList: string[]): string[] {\r\n\t\t$array.each(targetList, (value: string) => {\r\n\t\t\tif (dataFields[value] && $array.indexOf(list, dataFields[value]) === -1) {\r\n\t\t\t\tlist.push(dataFields[value]);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn list;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets events on a [[DataSource]].\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected setDataSourceEvents(ds: DataSource, property?: string): void {\r\n\t\tds.events.on(\"started\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 0;\r\n\t\t\t\t//preloader.label.text = this.language.translate(\"Loading\");\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\t\tds.events.on(\"loadstarted\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 0.25;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\t\tds.events.on(\"loadended\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 0.5;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\t\tds.events.on(\"parseended\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 0.75;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\t\tds.events.on(\"ended\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 1;\r\n\t\t\t}\r\n\t\t}, undefined, false);\r\n\t\tds.events.on(\"error\", (ev) => {\r\n\t\t\tconst preloader = this.preloader;\r\n\t\t\tif (preloader) {\r\n\t\t\t\tpreloader.progress = 1;\r\n\t\t\t}\r\n\t\t\tthis.openModal(ev.message);\r\n\t\t}, undefined, false);\r\n\r\n\t\tif (property) {\r\n\t\t\tds.events.on(\"done\", (ev) => {\r\n\t\t\t\tconst preloader = this.preloader;\r\n\t\t\t\tif (preloader) {\r\n\t\t\t\t\tpreloader.progress = 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (property == \"data\" && !$type.isArray(ev.data)) {\r\n\t\t\t\t\tev.data = [ev.data];\r\n\t\t\t\t}\r\n\t\t\t\tif (ds.incremental && property == \"data\" && this.data.length) {\r\n\t\t\t\t\tthis.addData(ev.data, ds.keepCount ? ev.data.length : 0);\r\n\t\t\t\t}\r\n\t\t\t\telse if (ds.updateCurrentData && property == \"data\" && this.data.length) {\r\n\t\t\t\t\t// cycle through existing data items\r\n\t\t\t\t\t$array.each(this.data, (item, index) => {\r\n\t\t\t\t\t\tif ($type.hasValue(ev.data[index])) {\r\n\t\t\t\t\t\t\t$object.each(item, (key, val) => {\r\n\t\t\t\t\t\t\t\tif ($type.hasValue(ev.data[index][key])) {\r\n\t\t\t\t\t\t\t\t\titem[key] = ev.data[index][key];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.invalidateRawData();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t(<any>this)[property] = ev.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Responsive]] instance to be used when applying conditional\r\n\t * property values.\r\n\t *\r\n\t * NOTE: Responsive features are currently in development and may not work\r\n\t * as expected, if at all.\r\n\t *\r\n\t * @param value Responsive rules handler\r\n\t */\r\n\tpublic set responsive(value: Responsive) {\r\n\t\tthis._responsive = value;\r\n\t\tthis._responsive.component = this;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Responsive rules handler\r\n\t */\r\n\tpublic get responsive(): Responsive {\r\n\t\tif (!this._responsive) {\r\n\t\t\tthis._responsive = new Responsive();\r\n\t\t\tthis._responsive.component = this;\r\n\t\t}\r\n\t\treturn this._responsive;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current zoom.\r\n\t *\r\n\t * The range uses relative values from 0 to 1, with 0 marking beginning and 1\r\n\t * marking end of the available data range.\r\n\t *\r\n\t * This method will not have any effect when called on a chart object.\r\n\t * Since the chart can have a number of axes and series, each with its own\r\n\t * data, the meaning of \"range\" is very ambiguous.\r\n\t *\r\n\t * To zoom the chart use `zoom*` methods on its respective axes.\r\n\t *\r\n\t * @param range Range\r\n\t * @param skipRangeEvent Should rangechanged event not be triggered?\r\n\t * @param instantly Do not animate?\r\n\t * @return Actual modidied range (taking `maxZoomFactor` into account)\r\n\t */\r\n\tpublic zoom(range: IRange, skipRangeEvent: boolean = false, instantly: boolean = false, declination?: number): IRange {\r\n\t\tlet start: $type.Optional<number> = range.start;\r\n\t\tlet end = range.end;\r\n\t\tlet priority = range.priority;\r\n\r\n\t\tif (range.start == range.end) {\r\n\t\t\trange.start = range.start - 0.5 / this.maxZoomFactor;\r\n\t\t\trange.end = range.end + 0.5 / this.maxZoomFactor;\r\n\t\t}\r\n\r\n\t\tif (priority == \"end\" && end == 1 && start != 0) {\r\n\t\t\tif (start < this.start) {\r\n\t\t\t\tpriority = \"start\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (priority == \"start\" && start == 0) {\r\n\t\t\tif (end > this.end) {\r\n\t\t\t\tpriority = \"end\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(declination)) {\r\n\t\t\tdeclination = this.maxZoomDeclination;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(start) || !$type.isNumber(end)) {\r\n\t\t\treturn { start: this.start, end: this.end };\r\n\t\t}\r\n\r\n\t\tif (this._finalStart != start || this._finalEnd != end) {\r\n\r\n\t\t\tlet maxZoomFactor: number = this.maxZoomFactor / this.minZoomCount;\r\n\t\t\tlet minZoomFactor: number = this.maxZoomFactor / this.maxZoomCount;\r\n\r\n\t\t\t// most likely we are dragging left scrollbar grip here, so we tend to modify end\r\n\r\n\t\t\tif (priority == \"start\") {\r\n\r\n\t\t\t\tif (this.maxZoomCount > 0) {\r\n\t\t\t\t\t// add to the end\r\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\r\n\t\t\t\t\t\tend = start + 1 / minZoomFactor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// add to the end\r\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\r\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\r\n\t\t\t\t}\r\n\t\t\t\t//unless end is > 0\r\n\t\t\t\tif (end > 1 && end - start < 1 / maxZoomFactor) {\r\n\t\t\t\t\t//end = 1;\r\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// most likely we are dragging right, so we modify left\r\n\t\t\telse {\r\n\r\n\t\t\t\tif (this.maxZoomCount > 0) {\r\n\t\t\t\t\t// add to the end\r\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\r\n\t\t\t\t\t\tstart = end - 1 / minZoomFactor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// remove from start\r\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\r\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\r\n\t\t\t\t}\r\n\t\t\t\tif (start < 0 && end - start < 1 / maxZoomFactor) {\r\n\t\t\t\t\t//start = 0;\r\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (start < - declination) {\r\n\t\t\t\tstart = - declination;\r\n\t\t\t}\r\n\r\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\r\n\t\t\t\tend = start + 1 / maxZoomFactor;\r\n\t\t\t}\r\n\r\n\t\t\tif (end > 1 + declination) {\r\n\t\t\t\tend = 1 + declination;\r\n\t\t\t}\r\n\r\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\r\n\t\t\t\tstart = end - 1 / maxZoomFactor;\r\n\t\t\t}\r\n\r\n\t\t\tthis._finalEnd = end;\r\n\t\t\tthis._finalStart = start;\r\n\r\n\t\t\tthis.skipRangeEvent = skipRangeEvent;\r\n\r\n\t\t\tthis.dispatchImmediately(\"rangechangestarted\");\r\n\r\n\t\t\tif (this.rangeChangeDuration > 0 && !instantly) {\r\n\r\n\t\t\t\t// todo: maybe move this to Animation\r\n\t\t\t\tlet rangeChangeAnimation: $type.Optional<Animation> = this.rangeChangeAnimation;\r\n\t\t\t\tif (rangeChangeAnimation && rangeChangeAnimation.progress < 1) {\r\n\t\t\t\t\tlet options = rangeChangeAnimation.animationOptions;\r\n\t\t\t\t\tif (options.length > 1) {\r\n\t\t\t\t\t\tif (options[0].to == start && options[1].to == end) {\r\n\t\t\t\t\t\t\treturn { start: start, end: end };\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (!rangeChangeAnimation.isDisposed()) {\r\n\t\t\t\t\t\t\t\trangeChangeAnimation.stop();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.rangeChangeAnimation) {\r\n\t\t\t\t\tthis.rangeChangeAnimation.kill();\r\n\t\t\t\t}\r\n\r\n\t\t\t\trangeChangeAnimation = this.animate([{ property: \"start\", to: start }, { property: \"end\", to: end }], this.rangeChangeDuration, this.rangeChangeEasing);\r\n\t\t\t\tthis.rangeChangeAnimation = rangeChangeAnimation;\r\n\r\n\t\t\t\tif (rangeChangeAnimation && !rangeChangeAnimation.isFinished()) {\r\n\t\t\t\t\trangeChangeAnimation.events.on(\"animationended\", () => {\r\n\t\t\t\t\t\tthis.dispatchImmediately(\"rangechangeended\");\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.dispatchImmediately(\"rangechangeended\");\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.start = start;\r\n\t\t\t\tthis.end = end;\r\n\t\t\t\tthis.dispatch(\"rangechangeended\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn { start: start, end: end };\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms to specific data items using their index in data.\r\n\t *\r\n\t * This method will not have any effect when called on a chart object.\r\n\t * Since the chart can have a number of axes and series, each with its own\r\n\t * data, the meaning of \"index\" is very ambiguous.\r\n\t *\r\n\t * To zoom the chart use `zoom*` methods on its respective axes.\r\n\t *\r\n\t * @param startIndex Index of the starting data item\r\n\t * @param endIndex Index of the ending data item\r\n\t * @param skipRangeEvent Should rangechanged event not be triggered?\r\n\t * @param instantly Do not animate?\r\n\t */\r\n\tpublic zoomToIndexes(startIndex: number, endIndex: number, skipRangeEvent?: boolean, instantly?: boolean) {\r\n\t\tif (!$type.isNumber(startIndex) || !$type.isNumber(endIndex)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet start: number = startIndex / this.dataItems.length;\r\n\t\tlet end: number = endIndex / this.dataItems.length;\r\n\r\n\t\tthis.zoom({ start: start, end: end }, skipRangeEvent, instantly);\r\n\t}\r\n\r\n\t/**\r\n\t * A current zoom factor (0-1). 1 meaning fully zoomed out. (showing all of\r\n\t * the available data)\r\n\t *\r\n\t * @return Zoom factor\r\n\t */\r\n\tpublic get zoomFactor(): number {\r\n\t\treturn $math.fitToRange(1 / (this.end - this.start), 1, this.maxZoomFactor);\r\n\t}\r\n\r\n\t/**\r\n\t * Max available `zoomFactor`.\r\n\t *\r\n\t * The element will not allow zoom to occur beyond this factor.\r\n\t *\r\n\t * [[DateAxis]] and [[CategoryAxis]] calculate this atutomatically so that\r\n\t * category axis could be zoomed to one category and date axis allows to be\r\n\t * zoomed up to one base interval.\r\n\t *\r\n\t * In case you want to restrict category or date axis to be zoomed to more\r\n\t * than one category or more than one base interval, use `minZoomCount`\r\n\t * property (set it to `> 1`).\r\n\t *\r\n\t * Default value of [[ValueAxis]]'s `maxZoomFactor` is `1000`.\r\n\t *\r\n\t * Feel free to modify it to allow bigger zoom or to restrict zooming.\r\n\t *\r\n\t * @param value Maximum zoomFactor\r\n\t */\r\n\tpublic set maxZoomFactor(value: number) {\r\n\t\tif (this.setPropertyValue(\"maxZoomFactor\", value)) {\r\n\t\t\tif (value == 1) {\r\n\t\t\t\tthis.maxZoomDeclination = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.invalidateDataRange();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Maximum zoomFactor\r\n\t */\r\n\tpublic get maxZoomFactor(): number {\r\n\t\treturn this.getPropertyValue(\"maxZoomFactor\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Max zoom declination.\r\n\t *\r\n\t * @ignore\r\n\t * @default 1\r\n\t * @param value Maximum zoom declination\r\n\t */\r\n\tpublic set maxZoomDeclination(value: number) {\r\n\t\tif (this.setPropertyValue(\"maxZoomDeclination\", value)) {\r\n\t\t\tthis.invalidateDataRange();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @return Maximum zoom declination\r\n\t */\r\n\tpublic get maxZoomDeclination(): number {\r\n\t\treturn this.getPropertyValue(\"maxZoomDeclination\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current starting index.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Start index\r\n\t */\r\n\tpublic set startIndex(value: number) {\r\n\t\tthis._startIndex = $math.fitToRange(Math.round(value), 0, this.dataItems.length);\r\n\t\t//this._workingStartIndex = this._startIndex; // not good, breaks adjusted working start index of line series\r\n\t\tthis.start = this.indexToPosition(this._startIndex);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @todo:review description\r\n\t * returns item's relative position by the index of the item\r\n\t * @param index\r\n\t */\r\n\tpublic indexToPosition(index: number) {\r\n\t\treturn index / this.dataItems.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Current starting index.\r\n\t *\r\n\t * @return Start index\r\n\t */\r\n\tpublic get startIndex(): number {\r\n\t\tif (!$type.isNumber(this._startIndex)) {\r\n\t\t\tthis._startIndex = 0;\r\n\t\t}\r\n\r\n\t\treturn this._startIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current ending index.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value End index\r\n\t */\r\n\tpublic set endIndex(value: number) {\r\n\t\tthis._endIndex = $math.fitToRange(Math.round(value), 0, this.dataItems.length);\r\n\t\t//this._workingEndIndex = this._endIndex; // not good, breaks adjusted workingend index of line series\r\n\t\tthis.end = this.indexToPosition(this._endIndex);\r\n\t}\r\n\r\n\t/**\r\n\t * Current ending index.\r\n\t *\r\n\t * @return End index\r\n\t */\r\n\tpublic get endIndex(): number {\r\n\t\tlet count = this.dataItems.length;\r\n\t\tif (!$type.isNumber(this._endIndex) || this._endIndex > count) {\r\n\t\t\tthis._endIndex = count;\r\n\t\t}\r\n\t\treturn this._endIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Start of the current data range (zoom).\r\n\t *\r\n\t * These are relative values from 0 (beginning) to 1 (end).\r\n\t *\r\n\t * @param value Start (0-1)\r\n\t */\r\n\tpublic set start(value: number) {\r\n\t\t// value = $math.round(value, 10); not good\r\n\r\n\t\t//if (1 / (this.end - value) > this.maxZoomFactor) {\r\n\t\t//\tvalue = this.end - 1 / this.maxZoomFactor;\r\n\t\t//}\r\n\t\tif (this._start != value) {\r\n\t\t\tthis._start = value;\r\n\t\t\tlet startIndex = Math.max(0, Math.floor(this.dataItems.length * value) || 0);\r\n\t\t\tthis._startIndex = Math.min(startIndex, this.dataItems.length);\r\n\t\t\tthis.invalidateDataRange();\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.dispatchImmediately(\"startchanged\");\r\n\t\t\tthis.dispatch(\"startendchanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start (0-1)\r\n\t */\r\n\tpublic get start(): number {\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._start;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"start\", this._start);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * End of the current data range (zoom).\r\n\t *\r\n\t * These are relative values from 0 (beginning) to 1 (end).\r\n\t *\r\n\t * @param value End (0-1)\r\n\t */\r\n\tpublic set end(value: number) {\r\n\t\t// value = $math.round(value, 10); // not good\r\n\r\n\t\t//if (1 / (value - this.start) > this.maxZoomFactor) {\r\n\t\t//\tvalue = 1 / this.maxZoomFactor + this.start;\r\n\t\t//}\r\n\r\n\t\tif (this._end != value) {\r\n\t\t\tthis._end = value;\r\n\t\t\tthis._endIndex = Math.min(this.dataItems.length, Math.ceil(this.dataItems.length * value) || 0);\r\n\t\t\tthis.invalidateDataRange();\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.dispatchImmediately(\"endchanged\");\r\n\t\t\tthis.dispatch(\"startendchanged\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End (0-1)\r\n\t */\r\n\tpublic get end(): number {\r\n\t\tif (!this._adapterO) {\r\n\t\t\treturn this._end;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._adapterO.apply(\"end\", this._end);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [removeFromInvalids description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tprotected removeFromInvalids(): void {\r\n\t\tsuper.removeFromInvalids();\r\n\t\tregistry.removeFromInvalidComponents(this);\r\n\t\t$array.remove(registry.invalidDataItems, this);\r\n\t\t$array.remove(registry.invalidDataRange, this);\r\n\t\t$array.remove(registry.invalidRawDatas, this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a list of source [[DataItem]] objects currently used in the chart.\r\n\t *\r\n\t * @return List of data items\r\n\t */\r\n\tpublic get dataItems(): OrderedListTemplate<this[\"_dataItem\"]> {\r\n\t\tif (this._currentDataSetId != \"\") {\r\n\t\t\tlet dataItems = this.dataSets.getKey(this._currentDataSetId);\r\n\t\t\tif (dataItems) {\r\n\t\t\t\treturn dataItems;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._dataItems;\r\n\t}\r\n\r\n\t/**\r\n\t * Holds data items for data sets (usually aggregated data).\r\n\t *\r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t * @return Data sets\r\n\t */\r\n\tpublic get dataSets(): Dictionary<string, OrderedListTemplate<this[\"_dataItem\"]>> {\r\n\t\tif (!this._dataSets) {\r\n\t\t\tthis._dataSets = new Dictionary();\r\n\t\t}\r\n\t\treturn this._dataSets;\r\n\t}\r\n\r\n\t/**\r\n\t * Makes the chart use particular data set.\r\n\t *\r\n\t * If `id` is not provided or there is no such data set, main data will be\r\n\t * used.\r\n\t *\r\n\t * @ignore\r\n\t * @since 4.7.0\r\n\t * @param id Data set id\r\n\t */\r\n\tpublic setDataSet(id: string): boolean {\r\n\r\n\t\tif (this._currentDataSetId != id) {\r\n\t\t\tlet dataSet = this.dataSets.getKey(id);\r\n\t\t\tif (!dataSet) {\r\n\t\t\t\tif (this._currentDataSetId != \"\") {\r\n\t\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tthis._currentDataSetId = \"\";\r\n\r\n\t\t\t\t\tthis.invalidateDataRange();\r\n\r\n\t\t\t\t\tthis._prevStartIndex = undefined;\r\n\r\n\t\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t\t})\r\n\r\n\t\t\t\tthis._currentDataSetId = id;\r\n\r\n\t\t\t\tthis.invalidateDataRange();\r\n\r\n\t\t\t\tthis._prevStartIndex = undefined;\r\n\r\n\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t})\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false\r\n\t}\r\n\r\n\t/**\r\n\t * Returns id of the currently used data set, or `undefined` if main data set\r\n\t * is in use.\r\n\t *\r\n\t * @since 4.7.0\r\n\t * @return Current data set id\r\n\t */\r\n\tpublic get currentDataSetId(): string {\r\n\t\treturn this._currentDataSetId;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns reference to \"main\" data set (unaggregated data as it was supplied\r\n\t * in `data`).\r\n\t *\r\n\t * @since 4.7.0\r\n\t * @return Main data set\r\n\t */\r\n\tpublic get mainDataSet(): OrderedListTemplate<this[\"_dataItem\"]> {\r\n\t\treturn this._dataItems;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the indexes for the dataItems\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected _updateDataItemIndexes(startIndex: number): void {\r\n\t\tconst dataItems = this.mainDataSet.values;\r\n\t\tconst length = dataItems.length;\r\n\r\n\t\tfor (let i = startIndex; i < length; ++i) {\r\n\t\t\tdataItems[i]._index = i;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes newly added [[DataItem]] as well as triggers data re-validation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event [description]\r\n\t */\r\n\tprotected handleDataItemAdded(event: ISortedListEvents<DataItem>[\"inserted\"]) {\r\n\t\tevent.newValue.component = this;\r\n\r\n\t\tthis._updateDataItemIndexes(event.index);\r\n\r\n\t\tif (!this.dataItemsInvalid) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * removes [[DataItem]] as well as triggers data re-validation.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event [description]\r\n\t */\r\n\tprotected handleDataItemRemoved(event: ISortedListEvents<DataItem>[\"removed\"]) {\r\n\t\t//\t\tevent.oldValue.component = undefined; // not good, as some items might be not removed from component lists\r\n\r\n\t\tthis._updateDataItemIndexes(event.index);\r\n\r\n\t\tif (!this.dataItemsInvalid) {\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Binds a data element's field to a specific field in raw data.\r\n\t * For example, for the very basic column chart you'd want to bind a `value`\r\n\t * field to a field in data, such as `price`.\r\n\t *\r\n\t * Some more advanced Components, like [[CandlestickSeries]] need several\r\n\t * data fields bound to data, such as ones for open, high, low and close\r\n\t * values.\r\n\t *\r\n\t * @todo Example\r\n\t * @param field Field name\r\n\t * @param value Field name in data\r\n\t */\r\n\tpublic bindDataField<Key extends keyof this[\"_dataFields\"]>(field: Key, value: this[\"_dataFields\"][Key]) {\r\n\t\tthis.dataFields[field] = value;\r\n\t\tthis.invalidateDataRange();\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates processed data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic invalidateProcessedData(): void {\r\n\t\tthis.resetProcessedRange();\r\n\t\tthis.invalidateDataRange();\r\n\t}\r\n\r\n\t/**\r\n\t * [resetProcessedRange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic resetProcessedRange(): void {\r\n\t\tthis._prevEndIndex = null;\r\n\t\tthis._prevStartIndex = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns all other [[Component]] objects that are using this element's\r\n\t * data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @return [description]\r\n\t */\r\n\tpublic get dataUsers(): List<Component> {\r\n\t\tif (!this._dataUsers) {\r\n\t\t\tthis._dataUsers = new List<Component>();\r\n\r\n\t\t\t//this._disposers.push(new ListDisposer(this._dataUsers));\r\n\r\n\t\t\t// TODO better way of handling this? e.g. move into another module ?\r\n\t\t\tthis._disposers.push(new Disposer(() => {\r\n\t\t\t\t// TODO clear the list ?\r\n\t\t\t\t$iter.each(this._dataUsers.iterator(), (x) => {\r\n\t\t\t\t\tx.dispose();\r\n\t\t\t\t});\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\treturn this._dataUsers;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a clone of this element.\r\n\t *\r\n\t * @return Clone\r\n\t */\r\n\tpublic clone(): this {\r\n\t\tlet component: this = super.clone();\r\n\t\tcomponent.dataFields = $utils.copyProperties(this.dataFields, {});\r\n\t\treturn component;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all parameters from another [[Component]].\r\n\t *\r\n\t * @param source Source Component\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.data = source.data;\r\n\t\tthis.sequencedInterpolation = source.sequencedInterpolation;\r\n\t\tthis.sequencedInterpolationDelay = source.sequencedInterpolationDelay;\r\n\t\tthis.interpolationDuration = source.interpolationDuration;\r\n\t\tthis.interpolationEasing = source.interpolationEasing;\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates the whole element, including all its children, causing\r\n\t * complete re-parsing of data and redraw.\r\n\t *\r\n\t * Use sparingly!\r\n\t */\r\n\tpublic reinit(): void {\r\n\t\tthis._inited = false;\r\n\t\tthis.deepInvalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * Add an adapter for data.\r\n\t *\r\n\t * @return Exporting\r\n\t */\r\n\tprotected getExporting(): Export {\r\n\t\tconst _export = super.getExporting();\r\n\t\tif (!_export.adapter.has(\"data\", this._exportData, -1, this)) {\r\n\t\t\t_export.adapter.add(\"data\", this._exportData, -1, this);\r\n\t\t\tthis.events.on(\"datavalidated\", (ev) => {\r\n\t\t\t\t_export.handleDataUpdated();\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn _export;\r\n\t}\r\n\r\n\tprivate _exportData(arg: IExportAdapters[\"data\"]): IExportAdapters[\"data\"] {\r\n\t\targ.data = this.data;\r\n\t\treturn arg;\r\n\t}\r\n\r\n\tprotected setDisabled(value: boolean): boolean {\r\n\t\tlet changed = super.setDisabled(value);\r\n\t\tif (changed) {\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t\treturn changed;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setShowOnInit(value: boolean) {\r\n\t\tif (value != this.getPropertyValue(\"showOnInit\")) {\r\n\t\t\tif (value && !this.inited && !this.hidden) {\r\n\t\t\t\tthis._showOnInitDisposer2 = this.events.once(\"dataitemsvalidated\", this.hideInitially, this, false);\r\n\t\t\t\tthis._disposers.push(this._showOnInitDisposer2);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._showOnInitDisposer2) {\r\n\t\t\t\t\tthis.removeDispose(this._showOnInitDisposer2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t// important order here\r\n\t\tsuper.setShowOnInit(value);\r\n\t}\r\n\r\n\tprotected setBaseId(value: string) {\r\n\t\tif (value != this._baseId) {\r\n\t\t\tif (this.dataInvalid) {\r\n\t\t\t\tthis.dataInvalid = false;\r\n\t\t\t\tregistry.removeFromInvalidComponents(this);\r\n\t\t\t\tthis._baseId = value;\r\n\t\t\t\tthis.invalidateData();\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper.setBaseId(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * Allows restricting zoom in beyond certain number of categories or base\r\n\t * intervals.\r\n\t *\r\n\t * @default 1\r\n\t * @param value Min zoom count\r\n\t */\r\n\tpublic set minZoomCount(value: number) {\r\n\t\tthis.setPropertyValue(\"minZoomCount\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Min zoom count\r\n\t */\r\n\tpublic get minZoomCount(): number {\r\n\t\treturn this.getPropertyValue(\"minZoomCount\");\r\n\t}\r\n\r\n\t/**\r\n\t * Use this for [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * Limits how many categories or base intervals can be shown at the same\r\n\t * time.\r\n\t *\r\n\t * If there are more items in the chart, the chart will auto-zoom.\r\n\t *\r\n\t * @default 0 (no limit)\r\n\t * @since 4.6.2\r\n\t * @param value Max zoom count\r\n\t */\r\n\tpublic set maxZoomCount(value: number) {\r\n\t\tthis.setPropertyValue(\"maxZoomCount\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Max zoom count\r\n\t */\r\n\tpublic get maxZoomCount(): number {\r\n\t\treturn this.getPropertyValue(\"maxZoomCount\");\r\n\t}\r\n\r\n\t/**\r\n\t * Called during the System.update method\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _systemCheckIfValidate(): boolean {\r\n\t\tif (this.dataInvalid || (this.dataProvider && this.dataProvider.dataInvalid)) {\r\n\t\t\treturn false;\r\n\r\n\t\t} else {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds easing functions to \"function\" fields.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as function?\r\n\t */\r\n\tprotected asFunction(field: string): boolean {\r\n\t\treturn field == \"interpolationEasing\" || field == \"rangeChangeEasing\" || super.asIs(field);\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Component\"] = Component;\r\n","/**\r\n * Functionality for drawing circles.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { percent, Percent } from \"../utils/Percent\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $math from \"../utils/Math\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Circle]].\r\n */\r\nexport interface ICircleProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * Radius of the circle.\r\n\t *\r\n\t * Can be either absolute (pixels) or relative ([Percent]).\r\n\t */\r\n\tradius?: number | Percent;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Circle]].\r\n */\r\nexport interface ICircleEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Circle]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICircleAdapters extends ISpriteAdapters, ICircleProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a circle\r\n * @see {@link ICircleEvents} for a list of available events\r\n * @see {@link ICircleAdapters} for a list of available Adapters\r\n */\r\nexport class Circle extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICircleProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICircleAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICircleEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"Circle\";\r\n\t\tthis.element = this.paper.add(\"circle\");\r\n\r\n\t\tthis.setPercentProperty(\"radius\", percent(100));\r\n\t\tthis.setPropertyValue(\"horizontalCenter\", \"middle\");\r\n\t\tthis.setPropertyValue(\"verticalCenter\", \"middle\");\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the circle.\r\n\t */\r\n\tprotected draw(): void {\r\n\t\tsuper.draw();\r\n\t\tthis.element.attr({ \"r\": this.pixelRadius });\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the circle.\r\n\t *\r\n\t * Can be either absolute (pixels) or relative ([Percent]).\r\n\t *\r\n\t * @param value Radius\r\n\t */\r\n\tpublic set radius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"radius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius\r\n\t */\r\n\tpublic get radius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"radius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the circle in pixels.\r\n\t *\r\n\t * This is a read-only property. To set radius in pixels, use `radius`\r\n\t * property.\r\n\t *\r\n\t * @readonly\r\n\t * @return Radius (px)\r\n\t */\r\n\tpublic get pixelRadius(): number {\r\n\t\treturn $utils.relativeToValue(this.radius, $math.min(this.innerWidth / 2, this.innerHeight / 2));\r\n\t}\r\n\r\n\t/**\r\n\t * Updates bounding box.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic measureElement(): void {\r\n\t\tlet pixelRadius = this.pixelRadius;\r\n\t\tthis._bbox = {\r\n\t\t\tx: -pixelRadius,\r\n\t\t\ty: -pixelRadius,\r\n\t\t\twidth: pixelRadius * 2,\r\n\t\t\theight: pixelRadius * 2\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Circle\"] = Circle;\r\n","/**\r\n * This module contains a base class for an SVG filter.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { Paper, getGhostPaper } from \"../Paper\";\r\nimport { Group } from \"../Group\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Animation, IAnimatable, IAnimationOptions, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { List } from \"../../utils/List\";\r\nimport { Sprite } from \"../../Sprite\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for a base filter\r\n */\r\nexport interface FilterProperties {\r\n\r\n\t/**\r\n\t * Width of the filter in percent.\r\n\t *\r\n\t * @default 120\r\n\t */\r\n\twidth: number;\r\n\r\n\t/**\r\n\t * Height of the filter in percent.\r\n\t *\r\n\t * @default 120\r\n\t */\r\n\theight: number;\r\n\r\n /**\r\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/filterUnits\r\n */\r\n\tfilterUnits: \"userSpaceOnUse\" | \"objectBoundingBox\";\r\n\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base filter class.\r\n *\r\n * This class while can be instantiated will not do anything. It is just a base\r\n * functionality for any other \"real\" filters to extend.\r\n *\r\n * Filters can be used to decorate, change and transform just about any DOM\r\n * element.\r\n *\r\n * A Filter works by applying one or more effects (primitives) to SVG element.\r\n *\r\n * For more information on how SVG filters work, refer to\r\n * [this MDN tutorial](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Filters_Tutorial).\r\n *\r\n * @todo Example\r\n */\r\nexport class Filter extends BaseObject implements IAnimatable {\r\n\r\n\t/**\r\n\t * List of animations currently running for the filter.\r\n\t */\r\n\tprotected _animations: $type.Optional<Array<Animation>>;\r\n\r\n\t/**\r\n\t * Contains a list of filter primitives (effects) applied by the filter.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic filterPrimitives: List<AMElement>;\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: FilterProperties;\r\n\r\n\t/**\r\n\t * A storage for Filter property/value pairs.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link FilterProperties}\r\n\t */\r\n\tpublic properties: this[\"_properties\"] = <any>{};\r\n\t//public propertyValues = new Dictionary<FilterProperties, any>();\r\n\r\n\t/**\r\n\t * An SVG `<group>` element hold primitive (effect) definitions.\r\n\t */\r\n\tpublic filterElement: $type.Optional<Group>;\r\n\r\n\t/**\r\n\t * Identifies if this object is a \"template\" and should not be treated as\r\n\t * real object that is drawn or actually used in the chart.\r\n\t */\r\n\tpublic isTemplate: boolean = false;\r\n\r\n\t/**\r\n\t * A Paper instance to add element to.\r\n\t */\r\n\tprotected _paper: $type.Optional<Paper>;\r\n\r\n\t/**\r\n\t * [_scale description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _scale: number = 1;\r\n\r\n\t/**\r\n\t * [_nonScaling description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _nonScaling: boolean = true;\r\n\r\n\t/**\r\n\t * A target element this filter is currently attached to.\r\n\t *\r\n\t * We need to keep track of it because one filter can be used for just one\r\n\t * element, so we have to remove it from the old \"parent\" when attaching to\r\n\t * the new one.\r\n\t */\r\n\tprotected _sprite: $type.Optional<Sprite>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Filter\";\r\n\r\n\t\t// Create a list to hold primitives (effect elements)\r\n\t\tthis.filterPrimitives = new List<any>();\r\n\t\tthis.properties.filterUnits = \"objectBoundingBox\";\r\n\r\n\t\t// Automatically add added primitives to `_disposers` so they are discarded\r\n\t\t// when Filter object is destroyed (disposed)\r\n\t\tthis.filterPrimitives.events.on(\"inserted\", (ev) => {\r\n\t\t\tthis._disposers.push(ev.newValue);\r\n\t\t});\r\n\r\n\t\t// Set default dimensions\r\n\t\tthis.width = 120;\r\n\t\tthis.height = 120;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Appends actual filter elements to the filter group.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param filterElement An SVG `<group>` element to add filter element to\r\n\t */\r\n\tpublic appendPrimitives(filterElement: Group): void {\r\n\t\t$iter.each(this.filterPrimitives.iterator(), (filterPrimitive) => {\r\n\t\t\tfilterElement.add(filterPrimitive);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uses Transitions filter's values from current to target. This is used to\r\n\t * smoothly appear filter, rather than it pop into effect.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param animationOptions Animation options\r\n\t * @param duration Duration in milliseconds\r\n\t * @param easing Easing function\r\n\t * @return Animation instance\r\n\t */\r\n\tpublic animate(animationOptions: IAnimationOptions[] | IAnimationOptions, duration: number, easing?: (value: number) => number): Animation {\r\n\t\tlet animation: Animation = new Animation(this, animationOptions, duration, easing).start();\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Width of the filter element in percent.\r\n\t *\r\n\t * If the filter is designed to \"bleed out\" of the original target element,\r\n\t * like for example a shadow, you need this bigger than 100, or the\r\n\t * non-fitting parts will be clipped.\r\n\t *\r\n\t * @default 120\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set width(value: number) {\r\n\t\tthis.properties[\"width\"] = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (%)\r\n\t */\r\n\tpublic get width(): number {\r\n\t\treturn this.properties[\"width\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Height of the filter element in percent.\r\n\t *\r\n\t * If the filter is designed to \"bleed out\" of the original target element,\r\n\t * like for example a shadow, you need this bigger than 100, or the\r\n\t * non-fitting parts will be clipped.\r\n\t *\r\n\t * @default 120\r\n\t * @param value Height (%)\r\n\t */\r\n\tpublic set height(value: number) {\r\n\t\tthis.properties[\"height\"] = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Height\r\n\t */\r\n\tpublic get height(): number {\r\n\t\treturn this.properties[\"height\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Copies properties from another [[Filter]] object.\r\n\t *\r\n\t * @param filter Source [[Filter]] object\r\n\t */\r\n\tpublic copyFrom(filter: this): void {\r\n\t\tsuper.copyFrom(filter);\r\n\t\t$object.each(filter.properties, (key, value) => {\r\n\t\t\t(<any>this)[key] = value;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Sets [[Paper]] instance to create filter's elements in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param paper Paper\r\n\t */\r\n\tpublic set paper(paper: Paper) {\r\n\t\tif (this._paper != paper) {\r\n\t\t\tthis._paper = paper;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Paper\r\n\t */\r\n\tpublic get paper(): Paper {\r\n\t\tif (this._paper) {\r\n\t\t\treturn this._paper;\r\n\t\t}\r\n\t\treturn getGhostPaper();\r\n\t}\r\n\r\n\t/**\r\n\t * All animations currently in play.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return List of animations\r\n\t */\r\n\tpublic get animations(): Array<Animation> {\r\n\t\tif (!this._animations) {\r\n\t\t\tthis._animations = [];\r\n\t\t\tthis._disposers.push(new AnimationDisposer(this._animations));\r\n\t\t}\r\n\t\treturn this._animations;\r\n\t}\r\n\r\n\t/**\r\n\t * [[Sprite]] uses this method to inform filter about it's scale.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic set scale(value: number) {\r\n\t\tthis._scale = value;\r\n\t\tthis.updateScale();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get scale(): number {\r\n\t\treturn this._scale;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates filter properties which depend on scale.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateScale() {\r\n\t\t// Dummy method for extending classes to override.\r\n\t}\r\n\r\n\t/**\r\n\t * Which units are used when drawing filter.\r\n\t *\r\n\t * Use `\"userSpaceOnUse\"` when applying filters on a perfectly straight line.\r\n\t *\r\n\t * @since 4.9.17\r\n\t * @default objectBoundingBox\r\n\t * @param value Filter units\r\n\t */\r\n\tpublic set filterUnits(value: \"objectBoundingBox\" | \"userSpaceOnUse\") {\r\n\t\tthis.properties.filterUnits = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Filter units\r\n\t */\r\n\tpublic get filterUnits(): \"objectBoundingBox\" | \"userSpaceOnUse\" {\r\n\t\treturn this.properties.filterUnits;\r\n\t}\r\n\r\n\t/**\r\n\t * If a filter is non scaling, it will look the same even if the sprite is\r\n\t * scaled, otherwise filter will scale together with a [[Sprite]].\r\n\t *\r\n\t * @default false\r\n\t * @param value Non scaling?\r\n\t */\r\n\tpublic set nonScaling(value: boolean) {\r\n\t\tthis._nonScaling = value;\r\n\t\tif (!value) {\r\n\t\t\tthis._scale = 1;\r\n\t\t}\r\n\t\tthis.updateScale();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Non scaling?\r\n\t */\r\n\tpublic get nonScaling(): boolean {\r\n\t\treturn this._nonScaling;\r\n\t}\r\n\r\n\t/**\r\n\t * A target element this filter is currently attached to.\r\n\t *\r\n\t * We need to keep track of it because one filter can be used for just one\r\n\t * element, so we have to remove it from the old \"parent\" when attaching to\r\n\t * the new one.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Target element\r\n\t */\r\n\tpublic set sprite(value: Sprite) {\r\n\t\tthis.setSprite(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets filter's target element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Element filter is being attached to\r\n\t */\r\n\tprotected setSprite(value: Sprite): void {\r\n\t\tif (this._sprite && this._sprite != value) {\r\n\t\t\tthis._sprite.filters.removeValue(this);\r\n\t\t}\r\n\t\tthis._sprite = value;\r\n\t}\r\n}\r\n","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nexport default function set(entity, paths, value) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n clone[path] = set(clone[path], restPath, value);\n return clone;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\n\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var newStore = set(store, namePath, value);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\n\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\n\n\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n\n if (!values) {\n return newStore;\n }\n\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key]; // If both are object (but target is not array), we use recursion to set deep value\n\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : value;\n });\n return newStore;\n}\n\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n\n if (!source && target || source && !target) {\n return false;\n }\n\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(_toConsumableArray(sourceKeys), _toConsumableArray(targetKeys)));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n\n if (event && event.target && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\n\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n\n return array;\n}","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n var kv = _objectSpread({}, rule, {\n name: name,\n enum: (rule.enum || []).join(', ')\n });\n\n var replaceFunc = function replaceFunc(template, additionalKV) {\n return function () {\n return replaceMessage(template, _objectSpread({}, kv, {}, additionalKV));\n };\n };\n /* eslint-disable no-param-reassign */\n\n\n function fillTemplate(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(source).forEach(function (ruleName) {\n var value = source[ruleName];\n\n if (typeof value === 'string') {\n target[ruleName] = replaceFunc(value, messageVariables);\n } else if (value && _typeof(value) === 'object') {\n target[ruleName] = {};\n fillTemplate(value, target[ruleName]);\n } else {\n target[ruleName] = value;\n }\n });\n return target;\n }\n /* eslint-enable */\n\n\n return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(name, value, rule, options, messageVariables) {\n var cloneRule, subRuleField, validator, messages, result, subResults;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n subRuleField = null;\n\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n validator.messages(messages);\n result = [];\n _context.prev = 7;\n _context.next = 10;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n case 10:\n _context.next = 15;\n break;\n\n case 12:\n _context.prev = 12;\n _context.t0 = _context[\"catch\"](7);\n\n if (_context.t0.errors) {\n result = _context.t0.errors.map(function (_ref, index) {\n var message = _ref.message;\n return (// Wrap ReactNode with `key`\n React.isValidElement(message) ? React.cloneElement(message, {\n key: \"error_\".concat(index)\n }) : message\n );\n });\n } else {\n console.error(_context.t0);\n result = [messages.default()];\n }\n\n case 15:\n if (!(!result.length && subRuleField)) {\n _context.next = 20;\n break;\n }\n\n _context.next = 18;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n\n case 18:\n subResults = _context.sent;\n return _context.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n\n case 20:\n return _context.abrupt(\"return\", result);\n\n case 21:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[7, 12]]);\n }));\n return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.'); // Fill rule with context\n\n var filledRules = rules.map(function (currentRule) {\n var originValidatorFunc = currentRule.validator;\n\n if (!originValidatorFunc) {\n return currentRule;\n }\n\n return _objectSpread({}, currentRule, {\n validator: function validator(rule, val, callback) {\n var hasPromise = false; // Wrap callback only accept when promise not provided\n\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n }; // Get promise\n\n\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err);\n });\n }\n }\n });\n });\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables);\n });\n var summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n if (!errors.length) {\n return [];\n }\n\n return Promise.reject(errors);\n }); // Internal catch error to avoid console error log.\n\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x6) {\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(rulePromises) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref2;\n\n var errors = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(errorsList));\n\n return errors;\n }));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x7) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n var count;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n count = 0;\n return _context3.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (errors) {\n if (errors.length) {\n resolve(errors);\n }\n\n count += 1;\n\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\n\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n\n return prevValue !== nextValue;\n} // We use Class instead of Hooks here since it will cost much code by using Hooks.\n\n\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n\n var _super = _createSuper(Field);\n\n function Field() {\n var _this;\n\n _classCallCheck(this, Field);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.destroy = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n _this.touched = false;\n /** Mark when touched & validated. Currently only used for `dependencies` */\n\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n _this.cancelRegister = function () {\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc();\n }\n\n _this.cancelRegisterFunc = null;\n }; // ================================== Utils ==================================\n\n\n _this.getNamePath = function () {\n var name = _this.props.name;\n var _this$context$prefixN = _this.context.prefixName,\n prefixName = _this$context$prefixN === void 0 ? [] : _this$context$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n\n _this.getRules = function () {\n var _this$props$rules = _this.props.rules,\n rules = _this$props$rules === void 0 ? [] : _this$props$rules;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(_this.context);\n }\n\n return rule;\n });\n };\n\n _this.refresh = function () {\n if (_this.destroy) return;\n /**\n * Clean up current node.\n */\n\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n }; // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n\n\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props = _this.props,\n shouldUpdate = _this$props.shouldUpdate,\n _this$props$dependenc = _this$props.dependencies,\n dependencies = _this$props$dependenc === void 0 ? [] : _this$props$dependenc,\n onReset = _this$props.onReset;\n var store = info.store;\n\n var namePath = _this.getNamePath();\n\n var prevValue = _this.getValue(prevStore);\n\n var curValue = _this.getValue(store);\n\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath); // `setFieldsValue` is a quick access to update related status\n\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = [];\n }\n\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n if (onReset) {\n onReset();\n }\n\n _this.refresh();\n\n return;\n }\n\n break;\n\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n\n if ('errors' in data) {\n _this.errors = data.errors || [];\n }\n\n _this.dirty = true;\n\n _this.reRender();\n\n return;\n } // Handle update by `setField` with `shouldUpdate`\n\n\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n\n if (namePathMatch || dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n default:\n /**\n * - If `namePath` exists in `namePathList`, means it's related value and should update.\n * - If `dependencies` exists in `namePathList`, means upstream trigger update.\n * - If `shouldUpdate` provided, use customize logic to update the field\n * - else to check if value changed\n */\n if (namePathMatch || dependencies.some(function (dependency) {\n return containsNamePath(namePathList, getNamePath(dependency));\n }) || requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n\n _this.validateRules = function (options) {\n var _this$props2 = _this.props,\n _this$props2$validate = _this$props2.validateFirst,\n validateFirst = _this$props2$validate === void 0 ? false : _this$props2$validate,\n messageVariables = _this$props2.messageVariables;\n\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n\n var namePath = _this.getNamePath();\n\n var filteredRules = _this.getRules();\n\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n\n if (!validateTrigger) {\n return true;\n }\n\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n var promise = validateRules(namePath, _this.getValue(), filteredRules, options, validateFirst, messageVariables);\n _this.dirty = true;\n _this.validatePromise = promise;\n _this.errors = [];\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (_this.validatePromise === promise) {\n _this.validatePromise = null;\n _this.errors = errors;\n\n _this.reRender();\n }\n });\n return promise;\n };\n\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n\n _this.isFieldDirty = function () {\n return _this.dirty;\n };\n\n _this.getErrors = function () {\n return _this.errors;\n }; // ============================= Child Component =============================\n\n\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n name: _this.getNamePath()\n };\n return meta;\n }; // Only return validate child node. If invalidate, will do nothing about field.\n\n\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n\n return _objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.context)), {\n isFunction: true\n });\n } // Filed element only\n\n\n var childList = toChildrenArray(children);\n\n if (childList.length !== 1 || !React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n\n return {\n child: childList[0],\n isFunction: false\n };\n }; // ============================== Field Control ==============================\n\n\n _this.getValue = function (store) {\n var getFieldsValue = _this.context.getFieldsValue;\n\n var namePath = _this.getNamePath();\n\n return getValue(store || getFieldsValue(true), namePath);\n };\n\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props3 = _this.props,\n trigger = _this$props3.trigger,\n validateTrigger = _this$props3.validateTrigger,\n getValueFromEvent = _this$props3.getValueFromEvent,\n normalize = _this$props3.normalize,\n valuePropName = _this$props3.valuePropName,\n getValueProps = _this$props3.getValueProps;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : _this.context.validateTrigger;\n\n var namePath = _this.getNamePath();\n\n var _this$context = _this.context,\n getInternalHooks = _this$context.getInternalHooks,\n getFieldsValue = _this$context.getFieldsValue;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n\n var value = _this.getValue();\n\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n }; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var originTriggerFunc = childProps[trigger];\n\n var control = _objectSpread({}, childProps, {}, mergedGetValueProps(value)); // Add trigger\n\n\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n var newValue;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n }; // Add validateTrigger\n\n\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n } // Always use latest rules\n\n\n var rules = _this.props.rules;\n\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n\n return _this;\n } // ============================== Subscriptions ==============================\n\n\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var shouldUpdate = this.props.shouldUpdate;\n var getInternalHooks = this.context.getInternalHooks;\n\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks2.registerField;\n\n this.cancelRegisterFunc = registerField(this); // One more render for component in case fields not ready\n\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.destroy = true;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (this.destroy) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction; // Not need to `cloneElement` since user can handle this in render function self\n\n\n var returnChildNode;\n\n if (isFunction) {\n returnChildNode = child;\n } else if (React.isValidElement(child)) {\n returnChildNode = React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n\n return React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n\n return Field;\n}(React.Component);\n\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\n\nvar WrapperField = function WrapperField(_ref4) {\n var name = _ref4.name,\n isListField = _ref4.isListField,\n restProps = _objectWithoutProperties(_ref4, [\"name\", \"isListField\"]);\n\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n\n if (!isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n\n return React.createElement(Field, Object.assign({\n key: key,\n name: namePath\n }, restProps));\n};\n\nexport default WrapperField;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\n\nvar List = function List(_ref) {\n var name = _ref.name,\n children = _ref.children;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current; // User should not pass `children` as other type.\n\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n\n var parentPrefixName = getNamePath(context.prefixName) || [];\n var prefixName = [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n\n if (source === 'internal') {\n return false;\n }\n\n return prevValue !== nextValue;\n };\n\n return React.createElement(FieldContext.Provider, {\n value: _objectSpread({}, context, {\n prefixName: prefixName\n })\n }, React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate\n }, function (_ref3) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n\n\n var operations = {\n add: function add(defaultValue) {\n // Mapping keys\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n keyManager.id += 1;\n var newValue = getNewValue();\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n },\n remove: function remove(index) {\n var newValue = getNewValue(); // Do not handle out of range\n\n if (index < 0 || index >= newValue.length) {\n return;\n } // Update key mapping\n\n\n var newKeys = keyManager.keys.map(function (key, id) {\n if (id < index) {\n return key;\n }\n\n return keyManager.keys[id + 1];\n });\n keyManager.keys = newKeys.slice(0, -1); // Trigger store change\n\n onChange(newValue.filter(function (_, id) {\n return id !== index;\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n\n var newValue = getNewValue(); // Do not handle out of range\n\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n\n keyManager.keys = _move(keyManager.keys, from, to); // Trigger store change\n\n onChange(_move(newValue, from, to));\n }\n };\n return children(value.map(function (__, index) {\n var key = keyManager.keys[index];\n\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations);\n }));\n};\n\nexport default List;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { matchNamePath } from './valueUtil';\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.list = [];\n }\n\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n var index = this.list.findIndex(function (item) {\n return matchNamePath(item.key, key);\n });\n\n if (index !== -1) {\n this.list[index].value = value;\n } else {\n this.list.push({\n key: key,\n value: value\n });\n }\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var result = this.list.find(function (item) {\n return matchNamePath(item.key, key);\n });\n return result && result.value;\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.list = this.list.filter(function (item) {\n return !matchNamePath(item.key, key);\n });\n }\n }, {\n key: \"map\",\n value: function map(callback) {\n return this.list.map(callback);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref) {\n var key = _ref.key,\n value = _ref.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n\n return NameMap;\n}();\n\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport NameMap from './utils/NameMap';\nimport { defaultValidateMessages } from './utils/messages';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = function FormStore(forceRootUpdate) {\n var _this = this;\n\n _classCallCheck(this, FormStore);\n\n this.formHooked = false;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.lastValidatePromise = null;\n\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n getInternalHooks: _this.getInternalHooks\n };\n }; // ======================== Internal Hooks ========================\n\n\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields\n };\n }\n\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * First time `setInitialValues` should update store with initial value\n */\n\n\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n\n if (init) {\n _this.store = setValues({}, initialValues, _this.store);\n }\n };\n\n this.getInitialValue = function (namePath) {\n return getValue(_this.initialValues, namePath);\n };\n\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n }; // ========================== Dev Warning =========================\n\n\n this.timeoutId = null;\n\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = window.setTimeout(function () {\n _this.timeoutId = null;\n\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n }; // ============================ Fields ============================\n\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n\n\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!pure) {\n return _this.fieldEntities;\n }\n\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n\n return cache;\n };\n\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n\n var cache = _this.getFieldsMap(true);\n\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors()\n };\n }\n\n return {\n name: getNamePath(nameList[index]),\n errors: []\n };\n });\n };\n\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.errors;\n };\n\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n\n var testTouched = function testTouched(field) {\n // Not provide `nameList` will check all the fields\n if (!namePathList) {\n return field.isFieldTouched();\n }\n\n var fieldNamePath = field.getNamePath();\n\n if (containsNamePath(namePathList, fieldNamePath)) {\n return field.isFieldTouched();\n }\n\n return isAllFieldsTouched;\n };\n\n return isAllFieldsTouched ? _this.getFieldEntities(true).every(testTouched) : _this.getFieldEntities(true).some(testTouched);\n };\n\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsTouched([name]);\n };\n\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntities();\n\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n\n\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n\n var fieldEntities = _this.getFieldEntities(true);\n\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath(); // Record only if has `initialValue`\n\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n }); // Reset\n\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n\n var formInitialValue = _this.getInitialValue(namePath);\n\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath); // Set `initialValue`\n\n\n if (!info.skipExist || originValue === undefined) {\n _this.store = setValue(_this.store, namePath, _toConsumableArray(records)[0].value);\n }\n }\n }\n }\n });\n };\n\n var requiredFieldEntities;\n\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n\n if (records) {\n var _requiredFieldEntitie;\n\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n\n resetWithFields(requiredFieldEntities);\n };\n\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (!nameList) {\n _this.store = setValues({}, _this.initialValues);\n\n _this.resetWithFieldInitialValue();\n\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n\n return;\n } // Reset by `nameList`\n\n\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n\n _this.store = setValue(_this.store, namePath, initialValue);\n });\n\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n };\n\n this.setFields = function (fields) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, [\"name\", \"errors\"]);\n\n var namePath = getNamePath(name); // Value\n\n if ('value' in data) {\n _this.store = setValue(_this.store, namePath, data.value);\n }\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n };\n\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n\n var fieldData = _objectSpread({}, meta, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n }; // =========================== Observer ===========================\n\n\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity); // Set initial values\n\n\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n } // un-register field callback\n\n\n return function () {\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n };\n };\n\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n\n _this.updateValue(namePath, value);\n\n break;\n }\n\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n\n break;\n }\n\n default: // Currently we don't have other action. Do nothing.\n\n }\n };\n\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread({}, info, {\n store: _this.getFieldsValue(true)\n });\n\n _this.getFieldEntities().forEach(function (_ref) {\n var onStoreChange = _ref.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.store = setValue(_this.store, namePath, value);\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n }); // Notify dependencies children with parent update\n\n\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n _this.validateFields(childrenFields);\n\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n }); // trigger callback function\n\n\n var onValuesChange = _this.callbacks.onValuesChange;\n\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.store);\n }\n\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n }; // Let all child Field get update.\n\n\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (store) {\n _this.store = setValues(_this.store, store);\n }\n\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n };\n\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n\n fillChildren(rootNamePath);\n return childrenFields;\n };\n\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n\n\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref2) {\n var name = _ref2.name,\n errors = _ref2.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n\n var changedFields = fields.filter(function (_ref3) {\n var fieldName = _ref3.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n }; // =========================== Validate ===========================\n\n\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : []; // Collect result in promise list\n\n var promiseList = [];\n\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n } // Skip if without rule\n\n\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n var fieldNamePath = field.getNamePath(); // Add field validate rule in to promise list\n\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread({}, defaultValidateMessages, {}, _this.validateMessages)\n }, options)); // Wrap promise with field\n\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: []\n };\n }).catch(function (errors) {\n return Promise.reject({\n name: fieldNamePath,\n errors: errors\n });\n }));\n }\n });\n\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise; // Notify fields with rule that validate has finished and need update\n\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref4) {\n var name = _ref4.name;\n return name;\n });\n\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n }); // Do not throw in console\n\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n }; // ============================ Submit ============================\n\n\n this.submit = function () {\n _this.warningUnhooked();\n\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n\n this.forceRootUpdate = forceRootUpdate;\n};\n\nfunction useForm(form) {\n var formRef = React.useRef();\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n\n if (count > 0) {\n return;\n }\n\n if (hasError) {\n reject(results);\n }\n\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nvar FormContext = React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\n\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return React.createElement(FormContext.Provider, {\n value: _objectSpread({}, formContext, {\n validateMessages: _objectSpread({}, formContext.validateMessages, {}, validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread({}, formsRef.current, _defineProperty({}, name, form));\n }\n\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\n\nexport { FormProvider };\nexport default FormContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\n\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, [\"name\", \"initialValues\", \"fields\", \"form\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"]);\n\n var formContext = React.useContext(FormContext); // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages; // Pass ref with form instance\n\n\n React.useImperativeHandle(ref, function () {\n return formInstance;\n }); // Register form into Context\n\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]); // Pass props to store\n\n setValidateMessages(_objectSpread({}, formContext.validateMessages, {}, validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n }); // Set initial value, init store value when first mount\n\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n\n if (!mountRef.current) {\n mountRef.current = true;\n } // Prepare children by `children` type\n\n\n var childrenNode = children;\n var childrenRenderProps = typeof children === 'function';\n\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } // Not use subscribe when using render props\n\n\n useSubscribe(!childrenRenderProps); // Listen if fields provided. We use ref to save prev data here to avoid additional render\n\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread({}, formInstance, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\n\n return React.createElement(Component, Object.assign({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n }\n }), wrapperNode);\n};\n\nexport default Form;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nvar InternalForm = React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nexport { Field, List, useForm, FormProvider };\nexport default RefForm;","/**\r\n * Contains code and logic for generating radial gradients.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { List } from \"../../utils/List\";\r\nimport { Group } from \"../Group\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Paper, getGhostPaper } from \"../Paper\";\r\nimport { registry } from \"../../Registry\";\r\nimport { IGradientStop } from \"./LinearGradient\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $type from \"../../utils/Type\";\r\nimport { Percent } from \"../../utils/Percent\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Radial gradient class.\r\n */\r\nexport class RadialGradient extends BaseObject {\r\n\r\n\t/**\r\n\t * List of colors switch definitions in a gradient.\r\n\t */\r\n\tprotected _stops: List<IGradientStop> = new List<IGradientStop>();\r\n\r\n\t/**\r\n\t * An SVG `<group>` element used to draw gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic element: Group;\r\n\r\n\t/**\r\n\t * Reference to Paper to add element to.\r\n\t */\r\n\tprotected _paper: $type.Optional<Paper>;\r\n\r\n\t/**\r\n\t * A center x coordinate for the radial gradient, can be set in pixels or as Percent\r\n\t */\r\n\tprotected _cx: $type.Optional<number | Percent>;\r\n\r\n\t/**\r\n\t * A center y coordinate for the radial gradient, can be set in pixels or as Percent\r\n\t */\r\n\tprotected _cy: $type.Optional<number | Percent>;\r\n\r\n\t/**\r\n\t * A y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n\t */\r\n\tprotected _fx: $type.Optional<number | Percent>;\r\n\r\n\t/**\r\n\t * A y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n\t */\r\n\tprotected _fy: $type.Optional<number | Percent>;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.element = this.paper.addGroup(\"radialGradient\");\r\n\t\tthis.id = \"gradient-\" + registry.getUniqueId();\r\n\t\tthis.element.attr({ \"id\": this.id });\r\n\t\tthis._disposers.push(this.element);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws gradient.\r\n\t */\r\n\tprotected draw(): void {\r\n\r\n\t\tlet gradientElement = this.element;\r\n\r\n\t\tif ($type.isNumber(this.cx)) {\r\n\t\t\tlet value:any = this.cx;\r\n\t\t\tif(value instanceof Percent){\r\n\t\t\t\tvalue = value.percent + \"%\";\r\n\t\t\t}\r\n\t\t\tgradientElement.attr({ \"cx\": value });\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(this.cy)) {\r\n\t\t\tlet value:any = this.cy;\r\n\t\t\tif(value instanceof Percent){\r\n\t\t\t\tvalue = value.percent + \"%\";\r\n\t\t\t}\r\n\t\t\tgradientElement.attr({ \"cy\": value });\r\n\t\t}\r\n\r\n\t\tif (this.fx) {\r\n\t\t\tlet value:any = this.fx;\r\n\t\t\tif(value instanceof Percent){\r\n\t\t\t\tvalue = value.percent + \"%\";\r\n\t\t\t}\r\n\t\t\tgradientElement.attr({ \"fx\": value});\r\n\t\t}\r\n\r\n\t\tif (this.fy) {\r\n\t\t\tlet value:any = this.fy;\r\n\t\t\tif(value instanceof Percent){\r\n\t\t\t\tvalue = value.percent + \"%\";\r\n\t\t\t}\r\n\t\t\tgradientElement.attr({ \"fy\": value});\r\n\t\t}\r\n\r\n\t\tgradientElement.removeChildNodes();\r\n\r\n\t\t$iter.each($iter.indexed(this._stops.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet stop = a[1];\r\n\t\t\tlet offset: $type.Optional<number> = stop.offset;\r\n\r\n\t\t\tif (!$type.isNumber(offset)) {\r\n\t\t\t\toffset = i / (this._stops.length - 1)\r\n\t\t\t}\r\n\r\n\t\t\tlet gradientStop: AMElement = this.paper.add(\"stop\");\r\n\t\t\tif ($type.hasValue(stop.color)) {\r\n\t\t\t\tgradientStop.attr({ \"stop-color\": stop.color.toString() });\r\n\t\t\t}\r\n\t\t\tif ($type.isNumber(stop.opacity)) {\r\n\t\t\t\tgradientStop.attr({ \"stop-opacity\": stop.opacity });\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.isNumber(offset)) {\r\n\t\t\t\tgradientStop.attr({ \"offset\": offset });\r\n\t\t\t}\r\n\r\n\t\t\tgradientElement.add(gradientStop);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a color step to the gradient.\r\n\t *\r\n\t * @param color Color (hex code or named color)\r\n\t * @param opacity Opacity (value from 0 to 1; 0 completely transaprent, 1 fully opaque)\r\n\t * @param offset Position of color in the gradient (value 0 to 1; 0 meaning start of the gradient and 1 end)\r\n\t */\r\n\tpublic addColor(color: Color, opacity?: number, offset?: number): void {\r\n\t\tthis._stops.push({ color: color, opacity: opacity, offset: offset });\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * A [[Paper]] instace to use for the gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param paper Paper\r\n\t */\r\n\tpublic set paper(paper: Paper) {\r\n\t\tif (this._paper != paper) {\r\n\t\t\tthis._paper = paper;\r\n\t\t\tthis.draw();\r\n\t\t\tpaper.appendDef(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Paper\r\n\t */\r\n\tpublic get paper(): Paper {\r\n\t\tif (this._paper) {\r\n\t\t\treturn this._paper;\r\n\t\t}\r\n\t\treturn getGhostPaper();\r\n\t}\r\n\r\n\t/**\r\n\t * Center x coordinate of the gradient, can be set as number or Percent\r\n\t *\r\n\t * @param point Center point\r\n\t */\r\n\tpublic set cx(value: $type.Optional<number | Percent>) {\r\n\t\tthis._cx = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\tpublic get cx(): $type.Optional<number | Percent> {\r\n\t\treturn this._cx;\r\n\t}\r\n\r\n\t/**\r\n\t * Center y coordinate of the gradient, can be set as number or Percent\r\n\t *\r\n\t * @param point Center point\r\n\t */\r\n\tpublic set cy(value: $type.Optional<number | Percent>) {\r\n\t\tthis._cy = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\tpublic get cy(): $type.Optional<number | Percent> {\r\n\t\treturn this._cy;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n\t *\r\n\t * @param point Center point\r\n\t */\r\n\tpublic set fx(value: $type.Optional<number | Percent>) {\r\n\t\tthis._fx = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\tpublic get fx(): $type.Optional<number | Percent> {\r\n\t\treturn this._fx;\r\n\t}\r\n\r\n\t/**\r\n\t * y coordinate of the focal point of a gradient, can be set in pixels or as Percent\r\n\t *\r\n\t * @param point Center point\r\n\t */\r\n\tpublic set fy(value: $type.Optional<number | Percent>) {\r\n\t\tthis._fy = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\tpublic get fy(): $type.Optional<number | Percent> {\r\n\t\treturn this._fy;\r\n\t}\r\n\r\n\r\n\r\n\tpublic copyFrom(source:this){\r\n\t\tsuper.copyFrom(source);\r\n\r\n\t\tthis.stops.copyFrom(source.stops);\r\n\r\n\t\tthis.cx = source.cx;\r\n\t\tthis.cy = source.cy;\r\n\r\n\t\tthis.fx = source.fx;\r\n\t\tthis.fy = source.fy;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of color stops in the gradient.\r\n\t *\r\n\t * @return Stops\r\n\t */\r\n\tpublic get stops(): List<IGradientStop> {\r\n\t\treturn this._stops;\r\n\t}\r\n\r\n\t/**\r\n\t * Clears the gradient.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tthis._stops.clear();\r\n\t}\r\n\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"RadialGradient\"] = RadialGradient;\r\n","import React from 'react';\n\nvar unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n } // only handle componentWillReceiveProps\n\n\n if (typeof prototype.componentWillReceiveProps !== 'function') {\n return Component;\n } // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps\n // https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler\n\n\n if (!React.Profiler) {\n return Component;\n } // Here polyfill get started\n\n\n prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;\n delete prototype.componentWillReceiveProps;\n return Component;\n};\n\nexport default unsafeLifecyclesPolyfill;","import React from 'react';\n\nexport function toArrayChildren(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nexport function findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for <rc-animate> children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nexport function isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nexport function mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}","var util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexport default util;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport cssAnimate, { isCssAnimationSupported } from '@ant-design/css-animation';\nimport animUtil from './util/animate';\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments));\n }\n\n _createClass(AnimateChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stop();\n }\n }, {\n key: 'componentWillEnter',\n value: function componentWillEnter(done) {\n if (animUtil.isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillAppear',\n value: function componentWillAppear(done) {\n if (animUtil.isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillLeave',\n value: function componentWillLeave(done) {\n if (animUtil.isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n }\n }, {\n key: 'transition',\n value: function transition(animationType, finishCallback) {\n var _this2 = this;\n\n var node = ReactDOM.findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = typeof transitionName === 'object';\n this.stop();\n var end = function end() {\n _this2.stopper = null;\n finishCallback();\n };\n if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = cssAnimate(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return AnimateChild;\n}(React.Component);\n\nexport default AnimateChild;","var _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; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill';\nimport { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils';\nimport AnimateChild from './AnimateChild';\nimport animUtil from './util/animate';\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (React.isValidElement(children)) {\n if (!children.key) {\n return React.cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n function Animate(props) {\n _classCallCheck(this, Animate);\n\n var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentlyAnimatingKeys = {};\n _this.keysToEnter = [];\n _this.keysToLeave = [];\n\n _this.state = {\n children: toArrayChildren(getChildrenFromProps(props))\n };\n\n _this.childrenRefs = {};\n return _this;\n } // eslint-disable-line\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this2.performAppear(child.key);\n }\n });\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n this.nextProps = nextProps;\n var nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this3.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = mergeChildren(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && findChildInChildrenByKey(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this3.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && findChildInChildrenByKey(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this3.keysToLeave.push(key);\n }\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n }, {\n key: 'isValidChildByKey',\n value: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return findShownChildInChildrenByKey(currentChildren, key, showProp);\n }\n return findChildInChildrenByKey(currentChildren, key);\n }\n }, {\n key: 'stop',\n value: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.childrenRefs[key];\n if (component) {\n component.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for <rc-animate> children');\n }\n return React.createElement(\n AnimateChild,\n {\n key: child.key,\n ref: function ref(node) {\n _this4.childrenRefs[child.key] = node;\n },\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: props.className,\n style: props.style\n }, props.componentProps);\n }\n return React.createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n }]);\n\n return Animate;\n}(React.Component);\n\nAnimate.isAnimate = true;\nAnimate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.performEnter = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter'));\n }\n };\n\n this.performAppear = function (key) {\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear'));\n }\n };\n\n this.handleDoneAdding = function (key, type) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n if (!_this5.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n _this5.performLeave(key);\n } else if (type === 'appear') {\n if (animUtil.allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else if (animUtil.allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n };\n\n this.performLeave = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key));\n }\n };\n\n this.handleDoneLeaving = function (key) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n // in case state change is too fast\n if (_this5.isValidChildByKey(currentChildren, key)) {\n _this5.performEnter(key);\n } else {\n var end = function end() {\n if (animUtil.allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) {\n _this5.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n };\n};\n\nexport default unsafeLifecyclesPolyfill(Animate);","import * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS'; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\n\nvar Context = React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n setCallbacks: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc\n };\n }\n});\nexport default Context;","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","/**\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","'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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canPlay = exports.FLV_EXTENSIONS = exports.DASH_EXTENSIONS = exports.HLS_EXTENSIONS = exports.VIDEO_EXTENSIONS = exports.AUDIO_EXTENSIONS = exports.MATCH_URL_KALTURA = exports.MATCH_URL_VIDYARD = exports.MATCH_URL_MIXCLOUD = exports.MATCH_URL_DAILYMOTION = exports.MATCH_URL_TWITCH_CHANNEL = exports.MATCH_URL_TWITCH_VIDEO = exports.MATCH_URL_WISTIA = exports.MATCH_URL_STREAMABLE = exports.MATCH_URL_FACEBOOK_WATCH = exports.MATCH_URL_FACEBOOK = exports.MATCH_URL_VIMEO = exports.MATCH_URL_SOUNDCLOUD = exports.MATCH_URL_YOUTUBE = void 0;\n\nvar _utils = require(\"./utils\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nexports.MATCH_URL_YOUTUBE = MATCH_URL_YOUTUBE;\nvar MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nexports.MATCH_URL_SOUNDCLOUD = MATCH_URL_SOUNDCLOUD;\nvar MATCH_URL_VIMEO = /vimeo\\.com\\/.+/;\nexports.MATCH_URL_VIMEO = MATCH_URL_VIMEO;\nvar MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nexports.MATCH_URL_FACEBOOK = MATCH_URL_FACEBOOK;\nvar MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nexports.MATCH_URL_FACEBOOK_WATCH = MATCH_URL_FACEBOOK_WATCH;\nvar MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nexports.MATCH_URL_STREAMABLE = MATCH_URL_STREAMABLE;\nvar MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?(.*)$/;\nexports.MATCH_URL_WISTIA = MATCH_URL_WISTIA;\nvar MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nexports.MATCH_URL_TWITCH_VIDEO = MATCH_URL_TWITCH_VIDEO;\nvar MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nexports.MATCH_URL_TWITCH_CHANNEL = MATCH_URL_TWITCH_CHANNEL;\nvar MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/;\nexports.MATCH_URL_DAILYMOTION = MATCH_URL_DAILYMOTION;\nvar MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nexports.MATCH_URL_MIXCLOUD = MATCH_URL_MIXCLOUD;\nvar MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-]+)/;\nexports.MATCH_URL_VIDYARD = MATCH_URL_VIDYARD;\nvar MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_]+)$/;\nexports.MATCH_URL_KALTURA = MATCH_URL_KALTURA;\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nexports.AUDIO_EXTENSIONS = AUDIO_EXTENSIONS;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)($|\\?)/i;\nexports.VIDEO_EXTENSIONS = VIDEO_EXTENSIONS;\nvar HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nexports.HLS_EXTENSIONS = HLS_EXTENSIONS;\nvar DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nexports.DASH_EXTENSIONS = DASH_EXTENSIONS;\nvar FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nexports.FLV_EXTENSIONS = FLV_EXTENSIONS;\n\nvar canPlayFile = function canPlayFile(url) {\n if (url instanceof Array) {\n var _iterator = _createForOfIteratorHelper(url),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (typeof item === 'string' && canPlayFile(item)) {\n return true;\n }\n\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n\n if ((0, _utils.isMediaStream)(url) || (0, _utils.isBlobUrl)(url)) {\n return true;\n }\n\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\n\nvar canPlay = {\n youtube: function youtube(url) {\n if (url instanceof Array) {\n return url.every(function (item) {\n return MATCH_URL_YOUTUBE.test(item);\n });\n }\n\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: function soundcloud(url) {\n return MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url);\n },\n vimeo: function vimeo(url) {\n return MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url);\n },\n facebook: function facebook(url) {\n return MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url);\n },\n streamable: function streamable(url) {\n return MATCH_URL_STREAMABLE.test(url);\n },\n wistia: function wistia(url) {\n return MATCH_URL_WISTIA.test(url);\n },\n twitch: function twitch(url) {\n return MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url);\n },\n dailymotion: function dailymotion(url) {\n return MATCH_URL_DAILYMOTION.test(url);\n },\n mixcloud: function mixcloud(url) {\n return MATCH_URL_MIXCLOUD.test(url);\n },\n vidyard: function vidyard(url) {\n return MATCH_URL_VIDYARD.test(url);\n },\n kaltura: function kaltura(url) {\n return MATCH_URL_KALTURA.test(url);\n },\n file: canPlayFile\n};\nexports.canPlay = canPlay;","/**\r\n * Slice module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { Sprite } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport { Percent } from \"../utils/Percent\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { RadialGradient } from \"../rendering/fills/RadialGradient\";\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Slice]].\r\n */\r\nexport interface ISliceProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Radius of the slice in pixels.\r\n\t */\r\n\tradius?: number;\r\n\r\n\t/**\r\n\t * Vertical radius for creating skewed slices.\r\n\t *\r\n\t * This is relevant to `radius`, e.g. 0.5 will set vertical radius to half\r\n\t * the `radius`.\r\n\t */\r\n\tradiusY?: number;\r\n\r\n\t/**\r\n\t * Inner radius of the slice for creating cut out (donut) slices, in px or %\r\n\t */\r\n\tinnerRadius?: number | Percent;\r\n\r\n\t/**\r\n\t * The angle at which left edge of the slice is drawn. (0-360)\r\n\t *\r\n\t * 0 is to the right of the center.\r\n\t */\r\n\tstartAngle?: number;\r\n\r\n\t/**\r\n\t * [arc description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tarc?: number;\r\n\r\n\t/**\r\n\t * [shiftRadius description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tshiftRadius?: number;\r\n\r\n\t/**\r\n\t * Radius of slice's outer corners in pixels.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tcornerRadius?: number;\r\n\r\n\t/**\r\n\t * Radius of slice's inner corners in pixels.\r\n\t *\r\n\t * @default 0\r\n\t */\r\n\tinnerCornerRadius?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Slice]].\r\n */\r\nexport interface ISliceEvents extends IContainerEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Slice]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ISliceAdapters extends IContainerAdapters, ISliceProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a wedged semi-circle - slice. Usually used for Pie/Donut charts.\r\n *\r\n * @see {@link ISliceEvents} for a list of available events\r\n * @see {@link ISliceAdapters} for a list of available Adapters\r\n */\r\nexport class Slice extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ISliceProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ISliceAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ISliceEvents;\r\n\r\n\t/**\r\n\t * Main slice element.\r\n\t *\r\n\t * Slice itself is a [[Container]] so that [[Slice3D]] could extend it and\r\n\t * add 3D elements to it.\r\n\t */\r\n\tpublic slice: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Slice\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.setPropertyValue(\"cornerRadius\", 0);\r\n\t\tthis.setPropertyValue(\"startAngle\", 0);\r\n\t\tthis.setPercentProperty(\"innerRadius\", 0);\r\n\t\tthis.setPercentProperty(\"radius\", 0);\r\n\t\tthis.setPropertyValue(\"arc\", 0);\r\n\t\tthis.setPropertyValue(\"shiftRadius\", 0);\r\n\t\tthis.strokeOpacity = 1;\r\n\t\tthis.setPropertyValue(\"layout\", \"none\");\r\n\r\n\t\t// Create a slice wedge element\r\n\t\tthis.slice = this.createChild(Sprite);\r\n\t\tthis.slice.isMeasured = false;\r\n\r\n\t\tthis._disposers.push(this.slice);\r\n\r\n\t\t//this.element.attr({ \"stroke-linejoin\": \"round\" });\r\n\t\t//this.element.attr({ \"stroke-linecap\": \"round\" });\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\t\tlet radiusY = this.radiusY;\r\n\t\tif(this.radius > 0 && radiusY == 0){\r\n\t\t\tradiusY = 0.01;\r\n\t\t}\r\n\t\tthis.slice.path = $path.arc(this.startAngle, this.arc, this.radius, this.pixelInnerRadius, radiusY, this.cornerRadius, this.innerCornerRadius);\r\n\t\tthis.slice.invalidate();\r\n\t\tthis.shiftRadius = this.shiftRadius;\r\n\r\n\t\tif (this.realFill instanceof RadialGradient) {\r\n\t\t\tthis.updateGradient(this.realFill);\r\n\t\t}\r\n\t\tif (this.realStroke instanceof RadialGradient) {\r\n\t\t\tthis.updateGradient(this.realStroke);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected updateGradient(gradient: RadialGradient) {\r\n\t\tgradient.element.attr({ \"gradientUnits\": \"userSpaceOnUse\" });\r\n\t\tgradient.element.attr({ \"r\": this.radius });\r\n\t\tgradient.cx = 0;\r\n\t\tgradient.cy = 0;\r\n\t\tgradient.element.attr({ radius: this.radius });\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\r\n\t\tif (this.isMeasured) {\r\n\t\t\tlet innerRect = $math.getArcRect(this.startAngle, this.startAngle + this.arc, this.pixelInnerRadius);\r\n\t\t\tlet outerRect = $math.getArcRect(this.startAngle, this.startAngle + this.arc, this.radius);\r\n\t\t\treturn $math.getCommonRectangle([innerRect, outerRect]);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn { x: 0, y: 0, width: 0, height: 0 };\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The angle at which left edge of the slice is drawn. (0-360)\r\n\t *\r\n\t * 0 is to the right of the center.\r\n\t *\r\n\t * @param value Angle (0-360)\r\n\t */\r\n\tpublic set startAngle(value: number) {\r\n\t\tthis.setPropertyValue(\"startAngle\", $math.normalizeAngle(value), true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Angle (0-360)\r\n\t */\r\n\tpublic get startAngle(): number {\r\n\t\treturn this.getPropertyValue(\"startAngle\");\r\n\t}\r\n\r\n\t/**\r\n\t * [arc description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set arc(value: number) {\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = 0;\r\n\t\t}\r\n\t\tthis.setPropertyValue(\"arc\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return [description]\r\n\t */\r\n\tpublic get arc(): number {\r\n\t\treturn this.getPropertyValue(\"arc\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of the slice in pixels.\r\n\t *\r\n\t * @param value Radius (px)\r\n\t */\r\n\tpublic set radius(value: number) {\r\n\t\tthis.setPropertyValue(\"radius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px)\r\n\t */\r\n\tpublic get radius(): number {\r\n\t\tlet radius: number = this.getPropertyValue(\"radius\");\r\n\t\tif (!$type.isNumber(radius)) {\r\n\t\t\tradius = 0;\r\n\t\t}\r\n\t\treturn radius;\r\n\t}\r\n\r\n\t/**\r\n\t * Vertical radius for creating skewed slices.\r\n\t *\r\n\t * This is relevant to `radius`, e.g. 0.5 will set vertical radius to half\r\n\t * the `radius`.\r\n\t *\r\n\t * @param value Vertical radius (0-1)\r\n\t */\r\n\tpublic set radiusY(value: number) {\r\n\t\tthis.setPropertyValue(\"radiusY\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Vertical radius (0-1)\r\n\t */\r\n\tpublic get radiusY(): number {\r\n\t\tlet value: number = this.getPropertyValue(\"radiusY\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.radius;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Inner radius of the slice for creating cut out (donut) slices.\r\n\t *\r\n\t * @default 0\r\n\t * @param value Radius (px or %)\r\n\t */\r\n\tpublic set innerRadius(value: number | Percent) {\r\n\t\tthis.setPercentProperty(\"innerRadius\", value, true, false, 10, false);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px or %)\r\n\t */\r\n\tpublic get innerRadius(): number | Percent {\r\n\t\treturn this.getPropertyValue(\"innerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius px\r\n\t */\r\n\tpublic get pixelInnerRadius(): number {\r\n\t\treturn $utils.relativeToValue(this.innerRadius, this.radius);\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of slice's outer corners in pixels.\r\n\t *\r\n\t * @default 0\r\n\t * @param value Radius (px)\r\n\t */\r\n\tpublic set cornerRadius(value: number) {\r\n\t\tthis.setPropertyValue(\"cornerRadius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px)\r\n\t */\r\n\tpublic get cornerRadius(): number {\r\n\t\treturn this.getPropertyValue(\"cornerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Radius of slice's inner corners in pixels.\r\n\t *\r\n\t * @default 0\r\n\t * @param value Radius (px)\r\n\t */\r\n\tpublic set innerCornerRadius(value: number) {\r\n\t\tthis.setPropertyValue(\"innerCornerRadius\", value, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius (px)\r\n\t */\r\n\tpublic get innerCornerRadius(): number {\r\n\t\treturn this.getPropertyValue(\"innerCornerRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates how far (relatively to center) a slice should be moved.\r\n\t *\r\n\t * The value is relative to the radius of the slice. Meaning 0 no shift,\r\n\t * 1 - slice shifted outside by whole of its radius.\r\n\t *\r\n\t * @param value Radius shift\r\n\t */\r\n\tpublic set shiftRadius(value: number) {\r\n\t\tthis.setPropertyValue(\"shiftRadius\", value);\r\n\t\tthis.dx = value * this.radius * this.ix;\r\n\t\tthis.dy = value * this.radiusY * this.iy;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Radius shift\r\n\t */\r\n\tpublic get shiftRadius(): number {\r\n\t\treturn this.getPropertyValue(\"shiftRadius\");\r\n\t}\r\n\r\n\t/**\r\n\t * [ix description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get ix(): number {\r\n\t\treturn $math.cos(this.middleAngle);\r\n\t}\r\n\r\n\t/**\r\n\t * [iy description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get iy(): number {\r\n\t\tif (this.radius > 0) {\r\n\t\t\treturn $math.sin(this.middleAngle);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn $math.sin(this.middleAngle);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * An angle of the slice's middle.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Angle\r\n\t */\r\n\tpublic get middleAngle(): number {\r\n\t\treturn this.startAngle + this.arc / 2;\r\n\t}\r\n\r\n\t/**\r\n\t * X coordinate for the slice tooltip.\r\n\t *\r\n\t * @return X\r\n\t */\r\n\tpublic getTooltipX(): number {\r\n\t\tlet value = this.getPropertyValue(\"tooltipX\");\r\n\r\n\t\tif($type.isNumber(value)){\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\tlet p = 0.5;\r\n\t\tif(value instanceof Percent){\r\n\t\t\tp = value.value;\r\n\t\t}\r\n\t\tlet innerRadius = $utils.relativeToValue(this.innerRadius, this.radius);\r\n\t\treturn this.ix * (innerRadius + (this.radius - innerRadius) * p);\r\n\t}\r\n\r\n\t/**\r\n\t * Y coordinate for the slice tooltip.\r\n\t *\r\n\t * @return Y\r\n\t */\r\n\tpublic getTooltipY(): number {\r\n\t\tlet value = this.getPropertyValue(\"tooltipY\");\r\n\r\n\t\tif($type.isNumber(value)){\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\tlet p = 0.5;\r\n\t\tif(value instanceof Percent){\r\n\t\t\tp = value.value;\r\n\t\t}\r\n\t\tlet innerRadius = $utils.relativeToValue(this.innerRadius, this.radius);\r\n\t\treturn this.iy * (innerRadius + (this.radius - innerRadius) * p) + this.slice.dy;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Slice\"] = Slice;\r\n","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return React.createElement(Trigger, Object.assign({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default forwardRef(Tooltip);","import Tooltip from './Tooltip';\nexport default Tooltip;","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 { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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 * as React from 'react';\nimport RcTooltip from 'rc-tooltip';\nimport classNames from 'classnames';\nimport getPlacements from './placements';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\n\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\")); // Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\n\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n\n if ((elementType.__ANT_BUTTON === true || elementType.__ANT_SWITCH === true || elementType.__ANT_CHECKBOX === true || element.type === 'button') && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n\n return element;\n}\n\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\n\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState(!!props.visible || !!props.defaultVisible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n\n React.useEffect(function () {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onVisibleChange = function onVisibleChange(vis) {\n if (!('visible' in props)) {\n setVisible(isNoTitle() ? false : vis);\n }\n\n if (props.onVisibleChange && !isNoTitle()) {\n props.onVisibleChange(vis);\n }\n };\n\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n arrowPointAtCenter = props.arrowPointAtCenter,\n autoAdjustOverflow = props.autoAdjustOverflow;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n }; // 动态设置动画点\n\n\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements(); // 当前返回的位置\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n\n if (title === 0) {\n return title;\n }\n\n return overlay || title || '';\n };\n\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getPopupContainer = props.getPopupContainer,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle;\n var children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var tempVisible = visible; // Hide tooltip when there is no title\n\n if (!('visible' in props) && isNoTitle()) {\n tempVisible = false;\n }\n\n var child = getDisabledCompatibleChildren(isValidElement(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true));\n var customOverlayClassName = classNames(overlayClassName, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)), _classNames2));\n var formattedOverlayInnerStyle;\n var arrowContentStyle;\n\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n arrowContentStyle = {\n background: color\n };\n }\n\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, props, {\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempVisible,\n onVisibleChange: onVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n })\n }), tempVisible ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big-fast',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true\n};\nexport default Tooltip;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click sort by descend',\n triggerAsc: 'Click sort by ascend',\n cancelSort: 'Click to cancel sort'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n defaultValidateMessages: {\n \"default\": 'Field validation error ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} at least ${min} characters',\n max: '${label} up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} minimum value is ${min}',\n max: '${label} maximum value is ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n }\n};\nexport default localeValues;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\n/**\n * Convert outer props value into internal value\n */\n\nexport function toInnerValue(value, _ref) {\n var labelInValue = _ref.labelInValue,\n combobox = _ref.combobox;\n\n if (value === undefined || value === '' && combobox) {\n return [];\n }\n\n var values = Array.isArray(value) ? value : [value];\n\n if (labelInValue) {\n return values.map(function (_ref2) {\n var key = _ref2.key,\n val = _ref2.value;\n return val !== undefined ? val : key;\n });\n }\n\n return values;\n}\n/**\n * Convert internal value into out event value\n */\n\nexport function toOuterValues(valueList, _ref3) {\n var optionLabelProp = _ref3.optionLabelProp,\n labelInValue = _ref3.labelInValue,\n prevValue = _ref3.prevValue,\n options = _ref3.options,\n getLabeledValue = _ref3.getLabeledValue;\n var values = valueList;\n\n if (labelInValue) {\n values = values.map(function (val) {\n return getLabeledValue(val, {\n options: options,\n prevValue: prevValue,\n labelInValue: labelInValue,\n optionLabelProp: optionLabelProp\n });\n });\n }\n\n return values;\n}\nexport function removeLastEnabledValue(measureValues, values) {\n var newValues = _toConsumableArray(values);\n\n var removeIndex;\n\n for (removeIndex = measureValues.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!measureValues[removeIndex].disabled) {\n break;\n }\n }\n\n var removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue: removedValue\n };\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nvar uuid = 0;\n/** Get unique id for accessibility usage */\n\nexport function getUUID() {\n var retId; // Test never reach\n\n /* istanbul ignore if */\n\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n\n return retId;\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 * 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\nmodule.exports = isObject;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ConfigConsumer\", {\n enumerable: true,\n get: function get() {\n return _context.ConfigConsumer;\n }\n});\nObject.defineProperty(exports, \"ConfigContext\", {\n enumerable: true,\n get: function get() {\n return _context.ConfigContext;\n }\n});\nexports[\"default\"] = exports.configConsumerProps = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _rcFieldForm = require(\"rc-field-form\");\n\nvar _localeProvider = _interopRequireWildcard(require(\"../locale-provider\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _context = require(\"./context\");\n\nvar _SizeContext = require(\"./SizeContext\");\n\nvar _message = _interopRequireDefault(require(\"../message\"));\n\nvar _notification = _interopRequireDefault(require(\"../notification\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nexports.configConsumerProps = configConsumerProps;\n\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n _message[\"default\"].config({\n rtl: props.direction === 'rtl'\n });\n\n _notification[\"default\"].config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n\n var getPrefixClsWrapper = function getPrefixClsWrapper(context) {\n return function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || context.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n };\n };\n\n var renderProvider = function renderProvider(context, legacyLocale) {\n var children = props.children,\n getTargetContainer = props.getTargetContainer,\n getPopupContainer = props.getPopupContainer,\n renderEmpty = props.renderEmpty,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n input = props.input,\n locale = props.locale,\n pageHeader = props.pageHeader,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth;\n\n var config = _extends(_extends({}, context), {\n getPrefixCls: getPrefixClsWrapper(context),\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n });\n\n if (getTargetContainer) {\n config.getTargetContainer = getTargetContainer;\n }\n\n if (getPopupContainer) {\n config.getPopupContainer = getPopupContainer;\n }\n\n if (renderEmpty) {\n config.renderEmpty = renderEmpty;\n }\n\n if (pageHeader) {\n config.pageHeader = pageHeader;\n }\n\n if (input) {\n config.input = input;\n }\n\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale && locale.Form && locale.Form.defaultValidateMessages) {\n validateMessages = locale.Form.defaultValidateMessages;\n }\n\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(_rcFieldForm.FormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(_SizeContext.SizeContextProvider, {\n size: componentSize\n }, /*#__PURE__*/React.createElement(_context.ConfigContext.Provider, {\n value: config\n }, /*#__PURE__*/React.createElement(_localeProvider[\"default\"], {\n locale: locale || legacyLocale,\n _ANT_MARK__: _localeProvider.ANT_MARK\n }, childNode)));\n };\n\n return /*#__PURE__*/React.createElement(_LocaleReceiver[\"default\"], null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(_context.ConfigConsumer, null, function (context) {\n return renderProvider(context, legacyLocale);\n });\n });\n};\n\nvar _default = ConfigProvider;\nexports[\"default\"] = _default;","/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport { Ordering } from \"./Order\";\n\n\n/**\n * ============================================================================\n * COMPARING FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Comparing function used for ordering.\n *\n * @ignore Exclude from docs\n * @todo Use localeCompare\n * @param a Item 1\n * @param b Item 2\n * @return Result\n */\nexport function order(a: string, b: string): Ordering {\n\tif (a === b) {\n\t\treturn 0;\n\n\t} else if (a < b) {\n\t\treturn -1;\n\n\t} else {\n\t\treturn 1;\n\t}\n}\n\n\n/**\n * ============================================================================\n * OTHER FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Repeats a `string` number of times as set in `amount`.\n *\n * @ignore Exclude from docs\n * @todo Make this faster\n * @param string Source string\n * @param amount Number of times to repeat string\n * @return New string\n */\nexport function repeat(string: string, amount: number): string {\n\treturn new Array(amount + 1).join(string);\n}\n\n/**\n * Generates a random string `characters` length.\n *\n * @param chars Number of characters\n * @return Random string\n */\nexport function random(chars: number): string {\n\tlet res = \"\";\n\tlet choice = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\tfor (let i = 0; i < chars; i++) {\n\t\tres += choice.charAt(Math.floor(Math.random() * choice.length));\n\t}\n\treturn res;\n}\n","var _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; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport React from 'react';\nimport findDOMNode from 'rc-util/es/Dom/findDOMNode';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util/motion';\n\nvar STATUS_NONE = 'none';\nvar STATUS_APPEAR = 'appear';\nvar STATUS_ENTER = 'enter';\nvar STATUS_LEAVE = 'leave';\n\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n var forwardRef = !!React.forwardRef;\n\n if (typeof config === 'object') {\n transitionSupport = config.transitionSupport;\n forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = function (_React$Component) {\n _inherits(CSSMotion, _React$Component);\n\n function CSSMotion() {\n _classCallCheck(this, CSSMotion);\n\n var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this));\n\n _this.onDomUpdate = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n newStatus = _this$state.newStatus;\n var _this$props = _this.props,\n onAppearStart = _this$props.onAppearStart,\n onEnterStart = _this$props.onEnterStart,\n onLeaveStart = _this$props.onLeaveStart,\n onAppearActive = _this$props.onAppearActive,\n onEnterActive = _this$props.onEnterActive,\n onLeaveActive = _this$props.onLeaveActive,\n motionAppear = _this$props.motionAppear,\n motionEnter = _this$props.motionEnter,\n motionLeave = _this$props.motionLeave;\n\n\n if (!isSupportTransition(_this.props)) {\n return;\n }\n\n // Event injection\n var $ele = _this.getElement();\n if (_this.$cacheEle !== $ele) {\n _this.removeEventListener(_this.$cacheEle);\n _this.addEventListener($ele);\n _this.$cacheEle = $ele;\n }\n\n // Init status\n if (newStatus && status === STATUS_APPEAR && motionAppear) {\n _this.updateStatus(onAppearStart, null, null, function () {\n _this.updateActiveStatus(onAppearActive, STATUS_APPEAR);\n });\n } else if (newStatus && status === STATUS_ENTER && motionEnter) {\n _this.updateStatus(onEnterStart, null, null, function () {\n _this.updateActiveStatus(onEnterActive, STATUS_ENTER);\n });\n } else if (newStatus && status === STATUS_LEAVE && motionLeave) {\n _this.updateStatus(onLeaveStart, null, null, function () {\n _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE);\n });\n }\n };\n\n _this.onMotionEnd = function (event) {\n var _this$state2 = _this.state,\n status = _this$state2.status,\n statusActive = _this$state2.statusActive;\n var _this$props2 = _this.props,\n onAppearEnd = _this$props2.onAppearEnd,\n onEnterEnd = _this$props2.onEnterEnd,\n onLeaveEnd = _this$props2.onLeaveEnd;\n\n if (status === STATUS_APPEAR && statusActive) {\n _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_ENTER && statusActive) {\n _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_LEAVE && statusActive) {\n _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event);\n }\n };\n\n _this.setNodeRef = function (node) {\n var internalRef = _this.props.internalRef;\n\n _this.node = node;\n\n if (typeof internalRef === 'function') {\n internalRef(node);\n } else if (internalRef && 'current' in internalRef) {\n internalRef.current = node;\n }\n };\n\n _this.getElement = function () {\n try {\n return findDOMNode(_this.node || _this);\n } catch (e) {\n /**\n * Fallback to cache element.\n * This is only happen when `motionDeadline` trigger but element removed.\n */\n return _this.$cacheEle;\n }\n };\n\n _this.addEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.addEventListener(transitionEndName, _this.onMotionEnd);\n $ele.addEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.removeEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.removeEventListener(transitionEndName, _this.onMotionEnd);\n $ele.removeEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.updateStatus = function (styleFunc, additionalState, event, callback) {\n var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null;\n\n if (statusStyle === false || _this._destroyed) return;\n\n var nextStep = void 0;\n if (callback) {\n nextStep = function nextStep() {\n _this.nextFrame(callback);\n };\n }\n\n _this.setState(_extends({\n statusStyle: typeof statusStyle === 'object' ? statusStyle : null,\n newStatus: false\n }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount`\n };\n\n _this.updateActiveStatus = function (styleFunc, currentStatus) {\n // `setState` use `postMessage` to trigger at the end of frame.\n // Let's use requestAnimationFrame to update new state in next frame.\n _this.nextFrame(function () {\n var status = _this.state.status;\n\n if (status !== currentStatus) return;\n\n var motionDeadline = _this.props.motionDeadline;\n\n\n _this.updateStatus(styleFunc, { statusActive: true });\n\n if (motionDeadline > 0) {\n setTimeout(function () {\n _this.onMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n });\n };\n\n _this.nextFrame = function (func) {\n _this.cancelNextFrame();\n _this.raf = raf(func);\n };\n\n _this.cancelNextFrame = function () {\n if (_this.raf) {\n raf.cancel(_this.raf);\n _this.raf = null;\n }\n };\n\n _this.state = {\n status: STATUS_NONE,\n statusActive: false,\n newStatus: false,\n statusStyle: null\n };\n _this.$cacheEle = null;\n _this.node = null;\n _this.raf = null;\n return _this;\n }\n\n _createClass(CSSMotion, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._destroyed = true;\n this.removeEventListener(this.$cacheEle);\n this.cancelNextFrame();\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _state = this.state,\n status = _state.status,\n statusActive = _state.statusActive,\n statusStyle = _state.statusStyle;\n var _props = this.props,\n children = _props.children,\n motionName = _props.motionName,\n visible = _props.visible,\n removeOnLeave = _props.removeOnLeave,\n leavedClassName = _props.leavedClassName,\n eventProps = _props.eventProps;\n\n\n if (!children) return null;\n\n if (status === STATUS_NONE || !isSupportTransition(this.props)) {\n if (visible) {\n return children(_extends({}, eventProps), this.setNodeRef);\n } else if (!removeOnLeave) {\n return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef);\n }\n\n return null;\n }\n\n return children(_extends({}, eventProps, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), this.setNodeRef);\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, _ref) {\n var prevProps = _ref.prevProps,\n prevStatus = _ref.status;\n\n if (!isSupportTransition(props)) return {};\n\n var visible = props.visible,\n motionAppear = props.motionAppear,\n motionEnter = props.motionEnter,\n motionLeave = props.motionLeave,\n motionLeaveImmediately = props.motionLeaveImmediately;\n\n var newState = {\n prevProps: props\n };\n\n // Clean up status if prop set to false\n if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) {\n newState.status = STATUS_NONE;\n newState.statusActive = false;\n newState.newStatus = false;\n }\n\n // Appear\n if (!prevProps && visible && motionAppear) {\n newState.status = STATUS_APPEAR;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Enter\n if (prevProps && !prevProps.visible && visible && motionEnter) {\n newState.status = STATUS_ENTER;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Leave\n if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) {\n newState.status = STATUS_LEAVE;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n return newState;\n }\n }]);\n\n return CSSMotion;\n }(React.Component);\n\n CSSMotion.defaultProps = {\n visible: true,\n motionEnter: true,\n motionAppear: true,\n motionLeave: true,\n removeOnLeave: true\n };\n\n\n if (!forwardRef) {\n return CSSMotion;\n }\n\n return React.forwardRef(function (props, ref) {\n return React.createElement(CSSMotion, _extends({ internalRef: ref }, props));\n });\n}\n\nexport default genCSSMotion(supportTransition);","module.exports = require('./lib/index.js');\n","/**\r\n * Functionality for drawing waved lines.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Line, ILineProperties, ILineAdapters, ILineEvents } from \"./Line\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { IWavedShape } from \"../defs/IWavedShape\";\r\nimport { color } from \"../utils/Color\";\r\nimport { wavedLine } from \"../rendering/Smoothing\";\r\nimport * as $path from \"../rendering/Path\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available properties for [[WavedLine]].\r\n */\r\nexport interface IWavedLineProperties extends ILineProperties {\r\n\r\n\t/**\r\n\t * Wave length in pixels.\r\n\t *\r\n\t * @default 16\r\n\t */\r\n\twaveLength?: number;\r\n\r\n\t/**\r\n\t * Wave height in pixels.\r\n\t *\r\n\t * @default 4\r\n\t */\r\n\twaveHeight?: number;\r\n\r\n\t/**\r\n\t * Wave tension.\r\n\t *\r\n\t * @default 0.8\r\n\t */\r\n\ttension?: number;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[WavedLine]].\r\n */\r\nexport interface IWavedLineEvents extends ILineEvents { }\r\n\r\n/**\r\n * Defines adapters for [[WavedLine]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IWavedLineAdapters extends ILineAdapters, IWavedLineProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a waved line.\r\n *\r\n * @see {@link IWavedLineEvents} for a list of available events\r\n * @see {@link IWavedLineAdapters} for a list of available Adapters\r\n */\r\nexport class WavedLine extends Line implements IWavedShape {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IWavedLineProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IWavedLineAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IWavedLineEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"WavedLine\";\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\t\tthis.waveLength = 16;\r\n\t\tthis.waveHeight = 4;\r\n\t\tthis.tension = 0.8;\r\n\t\tthis.pixelPerfect = false;\r\n\r\n\t\tthis.fill = color();\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the waved line.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\t//super.draw();\r\n\t\tlet p1: IPoint = { x: this.x1, y: this.y1 };\r\n\t\tlet p2: IPoint = { x: this.x2, y: this.y2 };\r\n\r\n\t\tthis.path = $path.moveTo(p1) + wavedLine(p1, p2, this.waveLength, this.waveHeight, this.tension, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Wave length in pixels.\r\n\t *\r\n\t * @default 16\r\n\t * @param value Wave length (px)\r\n\t */\r\n\tpublic set waveLength(value: number) {\r\n\t\tthis.setPropertyValue(\"waveLength\", value);\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Wave length (px)\r\n\t */\r\n\tpublic get waveLength(): number {\r\n\t\treturn this.getPropertyValue(\"waveLength\");\r\n\t}\r\n\r\n\t/**\r\n\t * Wave height in pixels.\r\n\t *\r\n\t * @default 4\r\n\t * @param value Wave height (px)\r\n\t */\r\n\tpublic set waveHeight(value: number) {\r\n\t\tthis.setPropertyValue(\"waveHeight\", value);\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Wave height (px)\r\n\t */\r\n\tpublic get waveHeight(): number {\r\n\t\treturn this.getPropertyValue(\"waveHeight\");\r\n\t}\r\n\r\n\t/**\r\n\t * Tension of the wave.\r\n\t *\r\n\t * @default 0.8\r\n\t * @param value Tension\r\n\t */\r\n\tpublic set tension(value: number) {\r\n\t\tthis.setPropertyValue(\"tension\", value);\r\n\t\tthis.invalidate();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Tension\r\n\t */\r\n\tpublic get tension(): number {\r\n\t\treturn this.getPropertyValue(\"tension\");\r\n\t}\r\n\r\n}\r\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","/**\n * A collection of functions for ordering.\n */\n\n/**\n * ============================================================================\n * UTILITY FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Defines values that ordering functions can return.\n */\nexport type Ordering = -1 | 0 | 1;\n\n/**\n * [reverse description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param a [description]\n * @return [description]\n */\nexport function reverse(a: Ordering): Ordering {\n\tswitch (a) {\n\t\tcase 0:\n\t\t\treturn 0;\n\t\tcase -1:\n\t\t\treturn 1;\n\t\tcase 1:\n\t\t\treturn -1;\n\t}\n}\n\n/**\n * [or description]\n *\n * @ignore Exclude from docs\n * @todo Description\n * @param a Item 1\n * @param b Item 2\n * @return [description]\n */\nexport function or(a: Ordering, b: Ordering): Ordering {\n\tif (a === 0) {\n\t\treturn b;\n\n\t} else {\n\t\treturn a;\n\t}\n}\n","/**\r\n * Pattern module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../../Base\";\r\nimport { Group } from \"../Group\";\r\nimport { AMElement } from \"../AMElement\";\r\nimport { Paper, getGhostPaper } from \"../Paper\";\r\nimport { ShapeRendering } from \"../../defs/ShapeRendering\";\r\nimport { List, ListDisposer } from \"../../utils/List\";\r\nimport { Animation, IAnimatable, IAnimationOptions, AnimationDisposer } from \"../../utils/Animation\";\r\nimport { registry } from \"../../Registry\";\r\nimport { Color } from \"../../utils/Color\";\r\nimport { InterfaceColorSet } from \"../../utils/InterfaceColorSet\";\r\nimport * as $iter from \"../../utils/Iterator\";\r\nimport * as $object from \"../../utils/Object\";\r\nimport * as $type from \"../../utils/Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available units to measure patterns.\r\n */\r\nexport type PatternUnits = \"userSpaceOnUse\" | \"objectBoundingBox\";\r\n\r\n/**\r\n * Defines properties for [[Pattern]].\r\n */\r\nexport interface PatternProperties {\r\n\tx: number;\r\n\ty: number;\r\n\twidth: number;\r\n\theight: number;\r\n\tbackgroundOpacity: number;\r\n\tbackgroundFill: Color;\r\n\tfillOpacity: number;\r\n\tfill: Color;\r\n\tstroke: Color;\r\n\tstrokeOpacity: number;\r\n\tstrokeWidth: number;\r\n\tshapeRendering: ShapeRendering;\r\n\trotation: number;\r\n\trotationX: number;\r\n\trotationY: number;\r\n\tpatternUnits: PatternUnits;\r\n\tstrokeDashArray:string;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base class to define patterns.\r\n */\r\nexport class Pattern extends BaseObject implements IAnimatable {\r\n\r\n\t/**\r\n\t * List of available animations currently running on a pattern.\r\n\t */\r\n\tprotected _animations: $type.Optional<Array<Animation>>;\r\n\r\n\t/**\r\n\t * An SVG `<group>` element to put sub-elements into.\r\n\t */\r\n\tpublic element: Group;\r\n\r\n\t/**\r\n\t * Reference to [[Paper]] instance.\r\n\t */\r\n\tprotected _paper: $type.Optional<Paper>;\r\n\r\n\t/**\r\n\t * List of elements the pattern consists of.\r\n\t */\r\n\tprotected _elements: List<AMElement> = new List<AMElement>();\r\n\r\n\t/**\r\n\t * Defines property types.\r\n\t */\r\n\tpublic _properties!: PatternProperties;\r\n\r\n\t/**\r\n\t * A storage for Filter property/value pairs.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @see {@link PatternProperties}\r\n\t */\r\n\tpublic properties: this[\"_properties\"] = <any>{};\r\n\t//public propertyValues = new Dictionary<PatternProperties, any>();\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Pattern\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.width = 10;\r\n\t\tthis.height = 10;\r\n\t\tthis.x = 0;\r\n\t\tthis.y = 0;\r\n\t\tthis.patternUnits = \"userSpaceOnUse\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tthis.backgroundFill = interfaceColors.getFor(\"background\");\r\n\t\tthis.backgroundOpacity = 0;\r\n\r\n\t\tthis.fillOpacity = 1;\r\n\t\tthis.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tthis.stroke = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tthis.strokeOpacity = 1;\r\n\t\tthis.strokeWidth = 1;\r\n\t\tthis.shapeRendering = \"crispEdges\";\r\n\t\tthis.rotation = 0;\r\n\r\n\t\t// Create main group to store pattern elements inelements\r\n\t\tthis.element = this.paper.addGroup(\"pattern\");\r\n\t\tthis.id = \"pattern-\" + registry.getUniqueId();\r\n\t\tthis.element.attr({ \"id\": this.id });\r\n\t\tthis._disposers.push(this.element);\r\n\r\n\t\t// Make elements disposable\r\n\t\tthis._disposers.push(new ListDisposer(this._elements));\r\n\r\n\t\t// Request again to trigger getter/setter code\r\n\t\tthis.patternUnits = this.patternUnits;\r\n\t\tthis.width = this.width;\r\n\t\tthis.height = this.height;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the pattern.\r\n\t */\r\n\tprotected draw(): void {\r\n\r\n\t\tlet patternElement: Group = this.element;\r\n\t\tif (patternElement) {\r\n\r\n\t\t\tpatternElement.removeChildNodes();\r\n\r\n\t\t\tlet background = this.paper.add(\"rect\");\r\n\t\t\tbackground.attr({ \"width\": this.width, \"height\": this.height, \"shape-rendering\": \"crispEdges\", \"fill\": this.backgroundFill.hex, \"fill-opacity\": this.backgroundOpacity, \"stroke\": this.backgroundFill.hex, \"stroke-opacity\": 0 });\r\n\t\t\tpatternElement.add(background);\r\n\r\n\t\t\tpatternElement.attr({ \"x\": this.x, \"y\": this.y, \"width\": this.width, \"height\": this.height, \"stroke\": this.stroke.hex, \"fill\": this.fill.hex, \"fill-opacity\": this.fillOpacity, \"stroke-opacity\": this.strokeOpacity, \"stroke-width\": this.strokeWidth, \"shape-rendering\": this.shapeRendering, \"patternUnits\": this.patternUnits, \"stroke-dasharray\":this.strokeDasharray });\r\n\r\n\t\t\t$iter.each(this._elements.iterator(), (element) => {\r\n\t\t\t\telement.rotation = this.rotation;\r\n\t\t\t\telement.rotationX = this.properties[\"rotationX\"];\r\n\t\t\t\telement.rotationY = this.properties[\"rotationY\"];\r\n\t\t\t\tthis.element.add(element);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Animate pattern properties.\r\n\t *\r\n\t * @see {@link Animation}\r\n\t * @param animationOptions Animation options\r\n\t * @param duration Duration (ms)\r\n\t * @param easing Easing function\r\n\t * @return Animation instance\r\n\t */\r\n\tpublic animate(animationOptions: IAnimationOptions[] | IAnimationOptions, duration: number, easing?: (value: number) => number): Animation {\r\n\t\treturn new Animation(this, animationOptions, duration, easing).start();\r\n\t}\r\n\r\n\t/**\r\n\t * Adds an element to the pattern.\r\n\t *\r\n\t * @param element Element\r\n\t */\r\n\tpublic addElement(element: AMElement): void {\r\n\t\tthis._elements.push(element);\r\n\t\tthis._disposers.push(element);\r\n\t}\r\n\r\n\t/**\r\n\t * Remove an element from the pattern.\r\n\t *\r\n\t * @param element Element\r\n\t */\r\n\tpublic removeElement(element: AMElement): void {\r\n\t\tthis._elements.removeValue(element);\r\n\t\tthis.removeDispose(element);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the list of SVG elements comprising the pattern.\r\n\t *\r\n\t * @return Pattern elements\r\n\t */\r\n\tpublic get elements(): List<AMElement> {\r\n\t\treturn this._elements;\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern fill opacity. (0-1)\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set fillOpacity(value: number) {\r\n\t\tthis.properties[\"fillOpacity\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Opacity (0-1)\r\n\t */\r\n\tpublic get fillOpacity(): number {\r\n\t\treturn this.properties[\"fillOpacity\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Fill color of the pattern.\r\n\t *\r\n\t * @param value Fill color\r\n\t */\r\n\tpublic set fill(value: Color) {\r\n\t\tthis.properties[\"fill\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Fill color\r\n\t */\r\n\tpublic get fill(): Color {\r\n\t\treturn this.properties[\"fill\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern background fill color.\r\n\t *\r\n\t * @param value Background color\r\n\t */\r\n\tpublic set backgroundFill(value: Color) {\r\n\t\tthis.properties[\"backgroundFill\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Background color\r\n\t */\r\n\tpublic get backgroundFill(): Color {\r\n\t\treturn this.properties[\"backgroundFill\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern backgorund opacity. (0-1)\r\n\t *\r\n\t * @param value Background opacity (0-1)\r\n\t */\r\n\tpublic set backgroundOpacity(value: number) {\r\n\t\tthis.properties[\"backgroundOpacity\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Background opacity (0-1)\r\n\t */\r\n\tpublic get backgroundOpacity(): number {\r\n\t\treturn this.properties[\"backgroundOpacity\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern stroke (border) color.\r\n\t *\r\n\t * @param value Color\r\n\t */\r\n\tpublic set stroke(value: Color) {\r\n\t\tthis.properties[\"stroke\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Color\r\n\t */\r\n\tpublic get stroke(): Color {\r\n\t\treturn this.properties[\"stroke\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern stroke opacity. (0-1)\r\n\t *\r\n\t * @param value Opacity (0-1)\r\n\t */\r\n\tpublic set strokeOpacity(value: number) {\r\n\t\tthis.properties[\"strokeOpacity\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Opacity (0-1)\r\n\t */\r\n\tpublic get strokeOpacity(): number {\r\n\t\treturn this.properties[\"strokeOpacity\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern stroke thickness in pixels.\r\n\t *\r\n\t * @param value Stroke thickness (px)\r\n\t */\r\n\tpublic set strokeWidth(value: number) {\r\n\t\tthis.properties[\"strokeWidth\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Stroke thickness (px)\r\n\t */\r\n\tpublic get strokeWidth(): number {\r\n\t\treturn this.properties[\"strokeWidth\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Shape rendering\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set shapeRendering(value: ShapeRendering) {\r\n\t\tthis.properties[\"shapeRendering\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\tpublic get shapeRendering(): ShapeRendering {\r\n\t\treturn this.properties[\"shapeRendering\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern rotation in degrees.\r\n\t *\r\n\t * @param value Rotation\r\n\t */\r\n\tpublic set rotation(value: number) {\r\n\t\tthis.properties[\"rotation\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rotation\r\n\t */\r\n\tpublic get rotation(): number {\r\n\t\treturn this.properties[\"rotation\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern measuring units.\r\n\t *\r\n\t * Available options: \"userSpaceOnUse\" | \"objectBoundingBox\".\r\n\t *\r\n\t * @param value Units\r\n\t */\r\n\tpublic set patternUnits(value: \"userSpaceOnUse\" | \"objectBoundingBox\") {\r\n\t\tthis.properties[\"patternUnits\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Units\r\n\t */\r\n\tpublic get patternUnits(): \"userSpaceOnUse\" | \"objectBoundingBox\" {\r\n\t\treturn this.properties[\"patternUnits\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern width in pixels.\r\n\t *\r\n\t * @param value Width (px)\r\n\t */\r\n\tpublic set width(value: number) {\r\n\t\tthis.properties[\"width\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Width (px)\r\n\t */\r\n\tpublic get width(): number {\r\n\t\treturn this.properties[\"width\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Pattern height in pixels.\r\n\t *\r\n\t * @param value Height (px)\r\n\t */\r\n\tpublic set height(value: number) {\r\n\t\tthis.properties[\"height\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Height (px)\r\n\t */\r\n\tpublic get height(): number {\r\n\t\treturn this.properties[\"height\"];\r\n\t}\r\n\r\n\t/**\r\n\t * X position. (pixels)\r\n\t *\r\n\t * @param value X (px)\r\n\t */\r\n\tpublic set x(value: number) {\r\n\t\tthis.properties[\"x\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return X (px)\r\n\t */\r\n\tpublic get x(): number {\r\n\t\treturn this.properties[\"x\"];\r\n\t}\r\n\r\n\t/**\r\n\t * Y position (px).\r\n\t *\r\n\t * @param value Y (px)\r\n\t */\r\n\tpublic set y(value: number) {\r\n\t\tthis.properties[\"y\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y (px)\r\n\t */\r\n\tpublic get y(): number {\r\n\t\treturn this.properties[\"y\"];\r\n\t}\r\n\r\n\t/**\r\n\t * [[Paper]] instance to draw pattern in.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param paper Paper\r\n\t */\r\n\tpublic set paper(paper: Paper) {\r\n\t\tif (this._paper != paper) {\r\n\t\t\tthis._paper = paper;\r\n\t\t\tthis.draw();\r\n\t\t\tpaper.appendDef(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Paper\r\n\t */\r\n\tpublic get paper(): Paper {\r\n\t\tif (this._paper) {\r\n\t\t\treturn this._paper;\r\n\t\t}\r\n\t\treturn getGhostPaper();\r\n\t}\r\n\r\n\t/**\r\n\t * Copies properties from another Pattern instance.\r\n\t *\r\n\t * @param source Source pattern\r\n\t */\r\n\tpublic copyFrom(source: this) {\r\n\t\tsuper.copyFrom(source);\r\n\t\t$object.each(source.properties, (key, value) => {\r\n\t\t\t(<any>this)[key] = value;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * A list of animations currently running on the patter.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Animation list\r\n\t */\r\n\tpublic get animations(): Array<Animation> {\r\n\t\tif (!this._animations) {\r\n\t\t\tthis._animations = [];\r\n\t\t\tthis._disposers.push(new AnimationDisposer(this._animations));\r\n\t\t}\r\n\t\treturn this._animations;\r\n\t}\r\n\r\n\t/**\r\n\t * A `stroke-dasharray` for the stroke (outline).\r\n\t *\r\n\t * \"Dasharray\" allows setting rules to make lines dashed, dotted, etc.\r\n\t *\r\n\t * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more info on `stroke-dasharray`\r\n\t * @param value `stroke-dasharray`\r\n\t */\r\n\tpublic set strokeDasharray(value: string) {\r\n\t\tthis.properties[\"strokeDashArray\"] = value;\r\n\t\tthis.draw();\r\n\t}\r\n\r\n\t/**\r\n\t * @return `stroke-dasharray`\r\n\t */\r\n\tpublic get strokeDasharray(): string {\r\n\t\treturn this.properties[\"strokeDashArray\"];\r\n\t}\t\t\r\n\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up series\r\n\t\t\tif ($type.hasValue(config.elements) && $type.isArray(config.elements)) {\r\n\t\t\t\tfor (let i = 0, len = config.elements.length; i < len; i++) {\r\n\t\t\t\t\tlet element = config.elements[i];\r\n\t\t\t\t\tif ($type.hasValue(element[\"type\"])) {\r\n\t\t\t\t\t\tlet sprite = this.createEntryInstance(element);\r\n\t\t\t\t\t\tif (sprite instanceof BaseObject) {\r\n\t\t\t\t\t\t\tsprite.config = element;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.addElement(\r\n\t\t\t\t\t\t\t$type.hasValue(element[\"typeProperty\"])\r\n\t\t\t\t\t\t\t? sprite[element[\"typeProperty\"]]\r\n\t\t\t\t\t\t\t: sprite.element\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Pattern\"] = Pattern;\r\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CheckCircleFilled = _interopRequireDefault(require('./lib/icons/CheckCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CheckCircleFilled;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _ExclamationCircleFilled = _interopRequireDefault(require('./lib/icons/ExclamationCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _ExclamationCircleFilled;\n exports.default = _default;\n module.exports = _default;","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nexport var MiniStoreContext = React.createContext(null);\nvar Provider = /** @class */ (function (_super) {\n __extends(Provider, _super);\n function Provider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Provider.prototype.render = function () {\n return (React.createElement(MiniStoreContext.Provider, { value: this.props.store }, this.props.children));\n };\n return Provider;\n}(React.Component));\nexport { Provider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { MiniStoreContext } from './Provider';\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\nvar defaultMapStateToProps = function () { return ({}); };\nexport function connect(mapStateToProps, options) {\n if (options === void 0) { options = {}; }\n var shouldSubscribe = !!mapStateToProps;\n var finalMapStateToProps = mapStateToProps || defaultMapStateToProps;\n return function wrapWithConnect(WrappedComponent) {\n var Connect = /** @class */ (function (_super) {\n __extends(Connect, _super);\n function Connect(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this.unsubscribe = null;\n _this.handleChange = function () {\n if (!_this.unsubscribe) {\n return;\n }\n var nextState = finalMapStateToProps(_this.store.getState(), _this.props);\n _this.setState({ subscribed: nextState });\n };\n _this.store = _this.context;\n _this.state = {\n subscribed: finalMapStateToProps(_this.store.getState(), props),\n store: _this.store,\n props: props,\n };\n return _this;\n }\n Connect.getDerivedStateFromProps = function (props, prevState) {\n // using ownProps\n if (mapStateToProps && mapStateToProps.length === 2 && props !== prevState.props) {\n return {\n subscribed: finalMapStateToProps(prevState.store.getState(), props),\n props: props,\n };\n }\n return { props: props };\n };\n Connect.prototype.componentDidMount = function () {\n this.trySubscribe();\n };\n Connect.prototype.componentWillUnmount = function () {\n this.tryUnsubscribe();\n };\n Connect.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (!shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state.subscribed, nextState.subscribed));\n };\n Connect.prototype.trySubscribe = function () {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n };\n Connect.prototype.tryUnsubscribe = function () {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n Connect.prototype.render = function () {\n var props = __assign(__assign(__assign({}, this.props), this.state.subscribed), { store: this.store });\n return React.createElement(WrappedComponent, __assign({}, props, { ref: this.props.miniStoreForwardedRef }));\n };\n Connect.displayName = \"Connect(\" + getDisplayName(WrappedComponent) + \")\";\n Connect.contextType = MiniStoreContext;\n return Connect;\n }(React.Component));\n if (options.forwardRef) {\n var forwarded = React.forwardRef(function (props, ref) {\n return React.createElement(Connect, __assign({}, props, { miniStoreForwardedRef: ref }));\n });\n return hoistStatics(forwarded, WrappedComponent);\n }\n return hoistStatics(Connect, WrappedComponent);\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport function create(initialState) {\n var state = initialState;\n var listeners = [];\n function setState(partial) {\n state = __assign(__assign({}, state), partial);\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n }\n function getState() {\n return state;\n }\n function subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n return {\n setState: setState,\n getState: getState,\n subscribe: subscribe,\n };\n}\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// MIT License from https://github.com/kaimallea/isMobile\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\n\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\n\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : ''); // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n\n var tmp = ua.split('[FBAN');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n } // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n\n\n tmp = ua.split('Twitter');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device; // excludes 'other' devices and ipods, targeting touchscreen phones\n\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n return result;\n}\n\nvar defaultResult = _objectSpread(_objectSpread({}, isMobile()), {}, {\n isMobile: isMobile\n});\n\nexport default defaultResult;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport isMobile from './utils/isMobile';\nexport function noop() {}\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key || \"\".concat(prefix, \"item_\").concat(index);\n}\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return \"\".concat(eventKey, \"-menu-\");\n}\nexport function loopMenuItem(children, cb) {\n var index = -1;\n React.Children.forEach(children, function (c) {\n index += 1;\n\n if (c && c.type && c.type.isMenuItemGroup) {\n React.Children.forEach(c.props.children, function (c2) {\n index += 1;\n cb(c2, index);\n });\n } else {\n cb(c, index);\n }\n });\n}\nexport function loopMenuItemRecursively(children, keys, ret) {\n /* istanbul ignore if */\n if (!children || ret.find) {\n return;\n }\n\n React.Children.forEach(children, function (c) {\n if (c) {\n var construct = c.type;\n\n if (!construct || !(construct.isSubMenu || construct.isMenuItem || construct.isMenuItemGroup)) {\n return;\n }\n\n if (keys.indexOf(c.key) !== -1) {\n ret.find = true;\n } else if (c.props.children) {\n loopMenuItemRecursively(c.props.children, keys, ret);\n }\n }\n });\n}\nexport var menuAllProps = ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'onSelect', 'onDeselect', 'onDestroy', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'onOpenChange', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'onItemHover', 'onTitleMouseEnter', 'onTitleMouseLeave', 'onTitleClick', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator', 'motion', // the following keys found need to be removed from test regression\n'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon']; // ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\n\nexport var getWidth = function getWidth(elem) {\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n\n if (width) {\n width = +width.toFixed(6);\n }\n\n return width || 0;\n};\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n elem.style[styleProperty] = value;\n }\n};\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport CSSMotion from \"rc-animate/es/CSSMotion\";\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport { placements, placementsRtl } from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _objectSpread(_objectSpread({}, state.defaultActiveFirst), {}, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nvar SubMenu =\n/** @class */\nfunction () {\n var SubMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n var _super = _createSuper(SubMenu);\n\n function SubMenu(props) {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _super.call(this, props);\n\n _this.onDestroy = function (key) {\n _this.props.onDestroy(key);\n };\n /**\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n var menu = _this.menuInstance;\n var _this$props = _this.props,\n isOpen = _this$props.isOpen,\n store = _this$props.store;\n\n if (keyCode === KeyCode.ENTER) {\n _this.onTitleClick(e);\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (isOpen) {\n menu.onKeyDown(e);\n } else {\n _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n }\n\n return true;\n }\n\n if (keyCode === KeyCode.LEFT) {\n var handled;\n\n if (isOpen) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n\n if (!handled) {\n _this.triggerOpenChange(false);\n\n handled = true;\n }\n\n return handled;\n }\n\n if (isOpen && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n\n return undefined;\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onPopupVisibleChange = function (visible) {\n _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props2 = _this.props,\n key = _this$props2.eventKey,\n onMouseEnter = _this$props2.onMouseEnter,\n store = _this$props2.store;\n updateDefaultActiveFirst(store, _this.props.eventKey, false);\n onMouseEnter({\n key: key,\n domEvent: e\n });\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props3 = _this.props,\n parentMenu = _this$props3.parentMenu,\n eventKey = _this$props3.eventKey,\n onMouseLeave = _this$props3.onMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleMouseEnter = function (domEvent) {\n var _this$props4 = _this.props,\n key = _this$props4.eventKey,\n onItemHover = _this$props4.onItemHover,\n onTitleMouseEnter = _this$props4.onTitleMouseEnter;\n onItemHover({\n key: key,\n hover: true\n });\n onTitleMouseEnter({\n key: key,\n domEvent: domEvent\n });\n };\n\n _this.onTitleMouseLeave = function (e) {\n var _this$props5 = _this.props,\n parentMenu = _this$props5.parentMenu,\n eventKey = _this$props5.eventKey,\n onItemHover = _this$props5.onItemHover,\n onTitleMouseLeave = _this$props5.onTitleMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onItemHover({\n key: eventKey,\n hover: false\n });\n onTitleMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleClick = function (e) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n props.onTitleClick({\n key: props.eventKey,\n domEvent: e\n });\n\n if (props.triggerSubMenuAction === 'hover') {\n return;\n }\n\n _this.triggerOpenChange(!props.isOpen, 'click');\n\n updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n };\n\n _this.onSubMenuClick = function (info) {\n // in the case of overflowed submenu\n // onClick is not copied over\n if (typeof _this.props.onClick === 'function') {\n _this.props.onClick(_this.addKeyPath(info));\n }\n };\n\n _this.onSelect = function (info) {\n _this.props.onSelect(info);\n };\n\n _this.onDeselect = function (info) {\n _this.props.onDeselect(info);\n };\n\n _this.getPrefixCls = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n };\n\n _this.getActiveClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-active\");\n };\n\n _this.getDisabledClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n };\n\n _this.getSelectedClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-selected\");\n };\n\n _this.getOpenClassName = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n };\n\n _this.saveMenuInstance = function (c) {\n // children menu instance\n _this.menuInstance = c;\n };\n\n _this.addKeyPath = function (info) {\n return _objectSpread(_objectSpread({}, info), {}, {\n keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n });\n };\n\n _this.triggerOpenChange = function (open, type) {\n var key = _this.props.eventKey;\n\n var openChange = function openChange() {\n _this.onOpenChange({\n key: key,\n item: _assertThisInitialized(_this),\n trigger: type,\n open: open\n });\n };\n\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n _this.mouseenterTimeout = setTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n };\n\n _this.isChildrenSelected = function () {\n var ret = {\n find: false\n };\n loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n return ret.find;\n };\n\n _this.isOpen = function () {\n return _this.props.openKeys.indexOf(_this.props.eventKey) !== -1;\n };\n\n _this.adjustWidth = function () {\n /* istanbul ignore if */\n if (!_this.subMenuTitle || !_this.menuInstance) {\n return;\n }\n\n var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n return;\n }\n /* istanbul ignore next */\n\n\n popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n };\n\n _this.saveSubMenuTitle = function (subMenuTitle) {\n _this.subMenuTitle = subMenuTitle;\n };\n\n _this.getBaseProps = function () {\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n props = _assertThisInitialize2.props;\n\n return {\n mode: props.mode === 'horizontal' ? 'vertical' : props.mode,\n visible: _this.props.isOpen,\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n onClick: _this.onSubMenuClick,\n onSelect: _this.onSelect,\n onDeselect: _this.onDeselect,\n onDestroy: _this.onDestroy,\n selectedKeys: props.selectedKeys,\n eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n openKeys: props.openKeys,\n motion: props.motion,\n onOpenChange: _this.onOpenChange,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: _assertThisInitialized(_this),\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n id: _this.internalMenuId,\n manualRef: _this.saveMenuInstance,\n itemIcon: props.itemIcon,\n expandIcon: props.expandIcon,\n direction: props.direction\n };\n };\n\n _this.getMotion = function (mode, visible) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n haveRendered = _assertThisInitialize3.haveRendered;\n\n var _this$props6 = _this.props,\n motion = _this$props6.motion,\n rootPrefixCls = _this$props6.rootPrefixCls; // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n\n var mergedMotion = _objectSpread(_objectSpread({}, motion), {}, {\n leavedClassName: \"\".concat(rootPrefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: haveRendered || !visible || mode !== 'inline'\n });\n\n return mergedMotion;\n };\n\n var store = props.store,\n eventKey = props.eventKey;\n\n var _store$getState = store.getState(),\n defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n _this.isRootMenu = false;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this2 = this;\n\n var _this$props7 = this.props,\n mode = _this$props7.mode,\n parentMenu = _this$props7.parentMenu,\n manualRef = _this$props7.manualRef; // invoke customized ref to expose component to mixin\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !parentMenu.isRootMenu || !this.props.isOpen) {\n return;\n }\n\n this.minWidthTimeout = setTimeout(function () {\n return _this2.adjustWidth();\n }, 0);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$props8 = this.props,\n onDestroy = _this$props8.onDestroy,\n eventKey = _this$props8.eventKey;\n\n if (onDestroy) {\n onDestroy(eventKey);\n }\n /* istanbul ignore if */\n\n\n if (this.minWidthTimeout) {\n clearTimeout(this.minWidthTimeout);\n }\n /* istanbul ignore if */\n\n\n if (this.mouseenterTimeout) {\n clearTimeout(this.mouseenterTimeout);\n }\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n var baseProps = this.getBaseProps(); // [Legacy] getMotion must be called before `haveRendered`\n\n var mergedMotion = this.getMotion(baseProps.mode, baseProps.visible);\n this.haveRendered = true;\n this.haveOpened = this.haveOpened || baseProps.visible || baseProps.forceSubMenuRender; // never rendered not planning to, don't render\n\n if (!this.haveOpened) {\n return React.createElement(\"div\", null);\n }\n\n var direction = baseProps.direction;\n return React.createElement(CSSMotion, Object.assign({\n visible: baseProps.visible\n }, mergedMotion), function (_ref) {\n var className = _ref.className,\n style = _ref.style;\n var mergedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), className, _defineProperty({}, \"\".concat(baseProps.prefixCls, \"-rtl\"), direction === 'rtl'));\n return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n id: _this3.internalMenuId,\n className: mergedClassName,\n style: style\n }), children);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames2;\n\n var props = _objectSpread({}, this.props);\n\n var isOpen = props.isOpen;\n var prefixCls = this.getPrefixCls();\n var isInlineMode = props.mode === 'inline';\n var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.mode), (_classNames2 = {}, _defineProperty(_classNames2, props.className, !!props.className), _defineProperty(_classNames2, this.getOpenClassName(), isOpen), _defineProperty(_classNames2, this.getActiveClassName(), props.active || isOpen && !isInlineMode), _defineProperty(_classNames2, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames2, this.getSelectedClassName(), this.isChildrenSelected()), _classNames2));\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n } else {\n guid += 1;\n this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n\n if (!props.disabled) {\n mouseEvents = {\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter\n }; // only works in title, not outer li\n\n titleClickEvents = {\n onClick: this.onTitleClick\n };\n titleMouseEvents = {\n onMouseEnter: this.onTitleMouseEnter,\n onMouseLeave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n var direction = props.direction;\n\n if (isInlineMode) {\n if (direction === 'rtl') {\n style.paddingRight = props.inlineIndent * props.level;\n } else {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n }\n\n var ariaOwns = {}; // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n\n if (this.props.isOpen) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n var icon = null;\n\n if (props.mode !== 'horizontal') {\n icon = this.props.expandIcon; // ReactNode\n\n if (typeof this.props.expandIcon === 'function') {\n icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n }\n }\n\n var title = React.createElement(\"div\", Object.assign({\n ref: this.saveSubMenuTitle,\n style: style,\n className: \"\".concat(prefixCls, \"-title\"),\n role: \"button\"\n }, titleMouseEvents, titleClickEvents, {\n \"aria-expanded\": isOpen\n }, ariaOwns, {\n \"aria-haspopup\": \"true\",\n title: typeof props.title === 'string' ? props.title : undefined\n }), props.title, icon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }));\n var children = this.renderChildren(props.children);\n var getPopupContainer = props.parentMenu.isRootMenu ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[props.mode];\n var popupAlign = props.popupOffset ? {\n offset: props.popupOffset\n } : {};\n var popupClassName = props.mode === 'inline' ? '' : props.popupClassName;\n popupClassName += direction === 'rtl' ? \" \".concat(prefixCls, \"-rtl\") : '';\n var disabled = props.disabled,\n triggerSubMenuAction = props.triggerSubMenuAction,\n subMenuOpenDelay = props.subMenuOpenDelay,\n forceSubMenuRender = props.forceSubMenuRender,\n subMenuCloseDelay = props.subMenuCloseDelay,\n builtinPlacements = props.builtinPlacements;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n var placement = direction === 'rtl' ? Object.assign({}, placementsRtl, builtinPlacements) : Object.assign({}, placements, builtinPlacements);\n delete props.direction;\n return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n className: className,\n role: \"menuitem\"\n }), isInlineMode && title, isInlineMode && children, !isInlineMode && React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), popupClassName),\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: isOpen,\n popupAlign: popupAlign,\n popup: children,\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: this.onPopupVisibleChange,\n forceRender: forceSubMenuRender\n }, title));\n }\n }]);\n\n return SubMenu;\n }(React.Component);\n\n SubMenu.defaultProps = {\n onMouseEnter: noop,\n onMouseLeave: noop,\n onTitleMouseEnter: noop,\n onTitleMouseLeave: noop,\n onTitleClick: noop,\n manualRef: noop,\n mode: 'vertical',\n title: ''\n };\n return SubMenu;\n}();\n\nexport { SubMenu };\nvar connected = connect(function (_ref2, _ref3) {\n var openKeys = _ref2.openKeys,\n activeKey = _ref2.activeKey,\n selectedKeys = _ref2.selectedKeys;\n var eventKey = _ref3.eventKey,\n subMenuKey = _ref3.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport { getWidth, setStyle, menuAllProps } from './util';\nvar MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\nvar FLOAT_PRECISION_ADJUST = 0.5;\n\nvar DOMWrap =\n/** @class */\nfunction () {\n var DOMWrap = /*#__PURE__*/function (_React$Component) {\n _inherits(DOMWrap, _React$Component);\n\n var _super = _createSuper(DOMWrap);\n\n function DOMWrap() {\n var _this;\n\n _classCallCheck(this, DOMWrap);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.mutationObserver = null; // original scroll size of the list\n\n _this.originalTotalWidth = 0; // copy of overflowed items\n\n _this.overflowedItems = []; // cache item of the original items (so we can track the size and order)\n\n _this.menuItemSizes = [];\n _this.cancelFrameId = null;\n _this.state = {\n lastVisibleIndex: undefined\n }; // get all valid menuItem nodes\n\n _this.getMenuItemNodes = function () {\n var prefixCls = _this.props.prefixCls;\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return [];\n } // filter out all overflowed indicator placeholder\n\n\n return [].slice.call(ul.children).filter(function (node) {\n return node.className.split(' ').indexOf(\"\".concat(prefixCls, \"-overflowed-submenu\")) < 0;\n });\n };\n\n _this.getOverflowedSubMenuItem = function (keyPrefix, overflowedItems, renderPlaceholder) {\n var _this$props = _this.props,\n overflowedIndicator = _this$props.overflowedIndicator,\n level = _this$props.level,\n mode = _this$props.mode,\n prefixCls = _this$props.prefixCls,\n theme = _this$props.theme;\n\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n } // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n\n\n var copy = _this.props.children[0];\n\n var _copy$props = copy.props,\n throwAway = _copy$props.children,\n title = _copy$props.title,\n propStyle = _copy$props.style,\n rest = _objectWithoutProperties(_copy$props, [\"children\", \"title\", \"style\"]);\n\n var style = _objectSpread({}, propStyle);\n\n var key = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n var eventKey = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n display: 'none'\n });\n } else if (renderPlaceholder) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute'\n });\n key = \"\".concat(key, \"-placeholder\");\n eventKey = \"\".concat(eventKey, \"-placeholder\");\n }\n\n var popupClassName = theme ? \"\".concat(prefixCls, \"-\").concat(theme) : '';\n var props = {};\n menuAllProps.forEach(function (k) {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n return React.createElement(SubMenu, Object.assign({\n title: overflowedIndicator,\n className: \"\".concat(prefixCls, \"-overflowed-submenu\"),\n popupClassName: popupClassName\n }, props, {\n key: key,\n eventKey: eventKey,\n disabled: false,\n style: style\n }), overflowedItems);\n }; // memorize rendered menuSize\n\n\n _this.setChildrenWidthAndResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n var lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1]; // need last overflowed indicator for calculating length;\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n var menuItemNodes = _this.getMenuItemNodes(); // reset display attribute for all hidden elements caused by overflow to calculate updated width\n // and then reset to original state after width calculation\n\n\n var overflowedItems = menuItemNodes.filter(function (c) {\n return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'inline-block');\n });\n _this.menuItemSizes = menuItemNodes.map(function (c) {\n return getWidth(c);\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'none');\n });\n _this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1]);\n _this.originalTotalWidth = _this.menuItemSizes.reduce(function (acc, cur) {\n return acc + cur;\n }, 0);\n\n _this.handleResize(); // prevent the overflowed indicator from taking space;\n\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n };\n\n _this.handleResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var width = getWidth(ul);\n _this.overflowedItems = [];\n var currentSumWidth = 0; // index for last visible child in horizontal mode\n\n var lastVisibleIndex; // float number comparison could be problematic\n // e.g. 0.1 + 0.2 > 0.3 =====> true\n // thus using FLOAT_PRECISION_ADJUST as buffer to help the situation\n\n if (_this.originalTotalWidth > width + FLOAT_PRECISION_ADJUST) {\n lastVisibleIndex = -1;\n\n _this.menuItemSizes.forEach(function (liWidth) {\n currentSumWidth += liWidth;\n\n if (currentSumWidth + _this.overflowedIndicatorWidth <= width) {\n lastVisibleIndex += 1;\n }\n });\n }\n\n _this.setState({\n lastVisibleIndex: lastVisibleIndex\n });\n };\n\n return _this;\n }\n\n _createClass(DOMWrap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.setChildrenWidthAndResize();\n\n if (this.props.level === 1 && this.props.mode === 'horizontal') {\n var menuUl = ReactDOM.findDOMNode(this);\n\n if (!menuUl) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function () {\n var cancelFrameId = _this2.cancelFrameId;\n cancelAnimationFrame(cancelFrameId);\n _this2.cancelFrameId = requestAnimationFrame(_this2.setChildrenWidthAndResize);\n });\n });\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n this.mutationObserver = new MutationObserver(function () {\n _this2.resizeObserver.disconnect();\n\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n _this2.setChildrenWidthAndResize();\n });\n this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n cancelAnimationFrame(this.cancelFrameId);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n // need to take care of overflowed items in horizontal mode\n var lastVisibleIndex = this.state.lastVisibleIndex;\n return (children || []).reduce(function (acc, childNode, index) {\n var item = childNode;\n\n if (_this3.props.mode === 'horizontal') {\n var overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, []);\n\n if (lastVisibleIndex !== undefined && _this3.props.className.indexOf(\"\".concat(_this3.props.prefixCls, \"-root\")) !== -1) {\n if (index > lastVisibleIndex) {\n item = React.cloneElement(childNode, // 这里修改 eventKey 是为了防止隐藏状态下还会触发 openkeys 事件\n {\n style: {\n display: 'none'\n },\n eventKey: \"\".concat(childNode.props.eventKey, \"-hidden\"),\n\n /**\n * Legacy code. Here `className` never used:\n * https://github.com/react-component/menu/commit/4cd6b49fce9d116726f4ea00dda85325d6f26500#diff-e2fa48f75c2dd2318295cde428556a76R240\n */\n className: \"\".concat(MENUITEM_OVERFLOWED_CLASSNAME)\n });\n }\n\n if (index === lastVisibleIndex + 1) {\n _this3.overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c) {\n return React.cloneElement(c, // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n {\n key: c.props.eventKey,\n mode: 'vertical-left'\n });\n });\n overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, _this3.overflowedItems);\n }\n }\n\n var ret = [].concat(_toConsumableArray(acc), [overflowed, item]);\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(_this3.getOverflowedSubMenuItem(childNode.props.eventKey, [], true));\n }\n\n return ret;\n }\n\n return [].concat(_toConsumableArray(acc), [item]);\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n visible = _this$props2.visible,\n prefixCls = _this$props2.prefixCls,\n overflowedIndicator = _this$props2.overflowedIndicator,\n mode = _this$props2.mode,\n level = _this$props2.level,\n tag = _this$props2.tag,\n children = _this$props2.children,\n theme = _this$props2.theme,\n rest = _objectWithoutProperties(_this$props2, [\"visible\", \"prefixCls\", \"overflowedIndicator\", \"mode\", \"level\", \"tag\", \"children\", \"theme\"]);\n\n var Tag = tag;\n return React.createElement(Tag, Object.assign({}, rest), this.renderChildren(children));\n }\n }]);\n\n return DOMWrap;\n }(React.Component);\n\n DOMWrap.defaultProps = {\n tag: 'div',\n className: ''\n };\n return DOMWrap;\n}();\n\nexport default DOMWrap;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport { connect } from 'mini-store';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport createChainedFunction from \"rc-util/es/createChainedFunction\";\nimport shallowEqual from 'shallowequal';\nimport classNames from 'classnames';\nimport { getKeyFromChildrenIndex, loopMenuItem, noop, menuAllProps, isMobileDevice } from './util';\nimport DOMWrap from './DOMWrap';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n\n return arr.every(function (c) {\n return !!c.props.disabled;\n });\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n var state = store.getState();\n store.setState({\n activeKey: _objectSpread(_objectSpread({}, state.activeKey), {}, _defineProperty({}, menuId, activeKey))\n });\n}\n\nfunction getEventKey(props) {\n // when eventKey not available ,it's menu and return menu id '0-menu-'\n return props.eventKey || '0-menu-';\n}\n\nexport function getActiveKey(props, originalActiveKey) {\n var activeKey = originalActiveKey;\n var children = props.children,\n eventKey = props.eventKey;\n\n if (activeKey) {\n var found;\n loopMenuItem(children, function (c, i) {\n if (c && c.props && !c.props.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n\n if (found) {\n return activeKey;\n }\n }\n\n activeKey = null;\n\n if (props.defaultActiveFirst) {\n loopMenuItem(children, function (c, i) {\n if (!activeKey && c && !c.props.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n\n return activeKey;\n}\nexport function saveRef(c) {\n if (c) {\n var index = this.instanceArray.indexOf(c);\n\n if (index !== -1) {\n // update component if it's already inside instanceArray\n this.instanceArray[index] = c;\n } else {\n // add component if it's not in instanceArray yet;\n this.instanceArray.push(c);\n }\n }\n}\n\nvar SubPopupMenu =\n/** @class */\nfunction () {\n var SubPopupMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubPopupMenu, _React$Component);\n\n var _super = _createSuper(SubPopupMenu);\n\n function SubPopupMenu(props) {\n var _this;\n\n _classCallCheck(this, SubPopupMenu);\n\n _this = _super.call(this, props);\n /**\n * all keyboard events callbacks run from here at first\n *\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n _this.onKeyDown = function (e, callback) {\n var keyCode = e.keyCode;\n var handled;\n\n _this.getFlatInstanceArray().forEach(function (obj) {\n if (obj && obj.props.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n\n if (handled) {\n return 1;\n }\n\n var activeItem = null;\n\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = _this.step(keyCode === KeyCode.UP ? -1 : 1);\n }\n\n if (activeItem) {\n e.preventDefault();\n updateActiveKey(_this.props.store, getEventKey(_this.props), activeItem.props.eventKey);\n\n if (typeof callback === 'function') {\n callback(activeItem);\n }\n\n return 1;\n }\n\n return undefined;\n };\n\n _this.onItemHover = function (e) {\n var key = e.key,\n hover = e.hover;\n updateActiveKey(_this.props.store, getEventKey(_this.props), hover ? key : null);\n };\n\n _this.onDeselect = function (selectInfo) {\n _this.props.onDeselect(selectInfo);\n };\n\n _this.onSelect = function (selectInfo) {\n _this.props.onSelect(selectInfo);\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onDestroy = function (key) {\n /* istanbul ignore next */\n _this.props.onDestroy(key);\n };\n\n _this.getFlatInstanceArray = function () {\n return _this.instanceArray;\n };\n\n _this.step = function (direction) {\n var children = _this.getFlatInstanceArray();\n\n var activeKey = _this.props.store.getState().activeKey[getEventKey(_this.props)];\n\n var len = children.length;\n\n if (!len) {\n return null;\n }\n\n if (direction < 0) {\n children = children.concat().reverse();\n } // find current activeIndex\n\n\n var activeIndex = -1;\n children.every(function (c, ci) {\n if (c && c.props.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n\n return true;\n });\n\n if (!_this.props.defaultActiveFirst && activeIndex !== -1 && allDisabled(children.slice(activeIndex, len - 1))) {\n return undefined;\n }\n\n var start = (activeIndex + 1) % len;\n var i = start;\n\n do {\n var child = children[i];\n\n if (!child || child.props.disabled) {\n i = (i + 1) % len;\n } else {\n return child;\n }\n } while (i !== start);\n\n return null;\n };\n\n _this.renderCommonMenuItem = function (child, i, extraProps) {\n var state = _this.props.store.getState();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var key = getKeyFromChildrenIndex(child, props.eventKey, i);\n var childProps = child.props; // https://github.com/ant-design/ant-design/issues/11517#issuecomment-477403055\n\n if (!childProps || typeof child.type === 'string') {\n return child;\n }\n\n var isActive = key === state.activeKey;\n\n var newChildProps = _objectSpread(_objectSpread({\n mode: childProps.mode || props.mode,\n level: props.level,\n inlineIndent: props.inlineIndent,\n renderMenuItem: _this.renderMenuItem,\n rootPrefixCls: props.prefixCls,\n index: i,\n parentMenu: props.parentMenu,\n // customized ref function, need to be invoked manually in child's componentDidMount\n manualRef: childProps.disabled ? undefined : createChainedFunction(child.ref, saveRef.bind(_assertThisInitialized(_this))),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n onClick: function onClick(e) {\n (childProps.onClick || noop)(e);\n\n _this.onClick(e);\n },\n onItemHover: _this.onItemHover,\n motion: props.motion,\n subMenuOpenDelay: props.subMenuOpenDelay,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n onOpenChange: _this.onOpenChange,\n onDeselect: _this.onDeselect,\n onSelect: _this.onSelect,\n builtinPlacements: props.builtinPlacements,\n itemIcon: childProps.itemIcon || _this.props.itemIcon,\n expandIcon: childProps.expandIcon || _this.props.expandIcon\n }, extraProps), {}, {\n direction: props.direction\n }); // ref: https://github.com/ant-design/ant-design/issues/13943\n\n\n if (props.mode === 'inline' || isMobileDevice()) {\n newChildProps.triggerSubMenuAction = 'click';\n }\n\n return React.cloneElement(child, newChildProps);\n };\n\n _this.renderMenuItem = function (c, i, subMenuKey) {\n /* istanbul ignore if */\n if (!c) {\n return null;\n }\n\n var state = _this.props.store.getState();\n\n var extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: _this.props.triggerSubMenuAction,\n subMenuKey: subMenuKey\n };\n return _this.renderCommonMenuItem(c, i, extraProps);\n };\n\n props.store.setState({\n activeKey: _objectSpread(_objectSpread({}, props.store.getState().activeKey), {}, _defineProperty({}, props.eventKey, getActiveKey(props, props.activeKey)))\n });\n _this.instanceArray = [];\n return _this;\n }\n\n _createClass(SubPopupMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return this.props.visible || nextProps.visible || this.props.className !== nextProps.className || !shallowEqual(this.props.style, nextProps.style);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var props = this.props;\n var originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n var activeKey = getActiveKey(props, originalActiveKey);\n\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n } else if ('activeKey' in prevProps) {\n // If prev activeKey is not same as current activeKey,\n // we should set it.\n var prevActiveKey = getActiveKey(prevProps, prevProps.activeKey);\n\n if (activeKey !== prevActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props);\n\n this.instanceArray = [];\n var className = classNames(props.prefixCls, props.className, \"\".concat(props.prefixCls, \"-\").concat(props.mode));\n var domProps = {\n className: className,\n // role could be 'select' and by default set to menu\n role: props.role || 'menu'\n };\n\n if (props.id) {\n domProps.id = props.id;\n }\n\n if (props.focusable) {\n domProps.tabIndex = 0;\n domProps.onKeyDown = this.onKeyDown;\n }\n\n var prefixCls = props.prefixCls,\n eventKey = props.eventKey,\n visible = props.visible,\n level = props.level,\n mode = props.mode,\n overflowedIndicator = props.overflowedIndicator,\n theme = props.theme;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Otherwise, the propagated click event will trigger another onClick\n\n delete props.onClick;\n return React.createElement(DOMWrap, Object.assign({}, props, {\n prefixCls: prefixCls,\n mode: mode,\n tag: \"ul\",\n level: level,\n theme: theme,\n visible: visible,\n overflowedIndicator: overflowedIndicator\n }, domProps), React.Children.map(props.children, function (c, i) {\n return _this2.renderMenuItem(c, i, eventKey || '0-menu-');\n }));\n }\n }]);\n\n return SubPopupMenu;\n }(React.Component);\n\n SubPopupMenu.defaultProps = {\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n level: 1,\n inlineIndent: 24,\n visible: true,\n focusable: true,\n style: {},\n manualRef: noop\n };\n return SubPopupMenu;\n}();\n\nexport { SubPopupMenu };\nvar connected = connect()(SubPopupMenu);\nexport default connected;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nexport function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName;\n\n if (motion) {\n return motion;\n }\n\n if (_typeof(openAnimation) === 'object' && openAnimation) {\n warning(false, 'Object type of `openAnimation` is removed. Please use `motion` instead.');\n } else if (typeof openAnimation === 'string') {\n return {\n motionName: \"\".concat(prefixCls, \"-open-\").concat(openAnimation)\n };\n }\n\n if (openTransitionName) {\n return {\n motionName: openTransitionName\n };\n }\n\n return null;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport { Provider, create } from 'mini-store';\nimport SubPopupMenu, { getActiveKey } from './SubPopupMenu';\nimport { noop } from './util';\nimport { getMotion } from './utils/legacyUtil';\n\nvar Menu =\n/** @class */\nfunction () {\n var Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n\n var _super = _createSuper(Menu);\n\n function Menu(props) {\n var _this;\n\n _classCallCheck(this, Menu);\n\n _this = _super.call(this, props);\n\n _this.onSelect = function (selectInfo) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n if (props.selectable) {\n // root menu\n var _this$store$getState = _this.store.getState(),\n _selectedKeys = _this$store$getState.selectedKeys;\n\n var selectedKey = selectInfo.key;\n\n if (props.multiple) {\n _selectedKeys = _selectedKeys.concat([selectedKey]);\n } else {\n _selectedKeys = [selectedKey];\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys\n });\n }\n\n props.onSelect(_objectSpread(_objectSpread({}, selectInfo), {}, {\n selectedKeys: _selectedKeys\n }));\n }\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n }; // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n\n\n _this.onKeyDown = function (e, callback) {\n _this.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n };\n\n _this.onOpenChange = function (event) {\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n props = _assertThisInitialize2.props;\n\n var openKeys = _this.store.getState().openKeys.concat();\n\n var changed = false;\n\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n\n changed = changed || oneChanged;\n };\n\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n\n if (changed) {\n if (!('openKeys' in _this.props)) {\n _this.store.setState({\n openKeys: openKeys\n });\n }\n\n props.onOpenChange(openKeys);\n }\n };\n\n _this.onDeselect = function (selectInfo) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n props = _assertThisInitialize3.props;\n\n if (props.selectable) {\n var _selectedKeys2 = _this.store.getState().selectedKeys.concat();\n\n var selectedKey = selectInfo.key;\n\n var index = _selectedKeys2.indexOf(selectedKey);\n\n if (index !== -1) {\n _selectedKeys2.splice(index, 1);\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys2\n });\n }\n\n props.onDeselect(_objectSpread(_objectSpread({}, selectInfo), {}, {\n selectedKeys: _selectedKeys2\n }));\n }\n };\n\n _this.getOpenTransitionName = function () {\n var _assertThisInitialize4 = _assertThisInitialized(_this),\n props = _assertThisInitialize4.props;\n\n var transitionName = props.openTransitionName;\n var animationName = props.openAnimation;\n\n if (!transitionName && typeof animationName === 'string') {\n transitionName = \"\".concat(props.prefixCls, \"-open-\").concat(animationName);\n }\n\n return transitionName;\n };\n\n _this.setInnerMenu = function (node) {\n _this.innerMenu = node;\n };\n\n _this.isRootMenu = true;\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n _this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(props, props.activeKey)\n }\n });\n return _this;\n }\n\n _createClass(Menu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateMiniStore();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateMiniStore();\n }\n }, {\n key: \"updateMiniStore\",\n value: function updateMiniStore() {\n if ('selectedKeys' in this.props) {\n this.store.setState({\n selectedKeys: this.props.selectedKeys || []\n });\n }\n\n if ('openKeys' in this.props) {\n this.store.setState({\n openKeys: this.props.openKeys || []\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = _objectSpread({}, this.props);\n\n props.className += \" \".concat(props.prefixCls, \"-root\");\n\n if (props.direction === 'rtl') {\n props.className += \" \".concat(props.prefixCls, \"-rtl\");\n }\n\n props = _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick,\n onOpenChange: this.onOpenChange,\n onDeselect: this.onDeselect,\n onSelect: this.onSelect,\n parentMenu: this,\n motion: getMotion(this.props)\n });\n delete props.openAnimation;\n delete props.openTransitionName;\n return React.createElement(Provider, {\n store: this.store\n }, React.createElement(SubPopupMenu, Object.assign({}, props, {\n ref: this.setInnerMenu\n }), this.props.children));\n }\n }]);\n\n return Menu;\n }(React.Component);\n\n Menu.defaultProps = {\n selectable: true,\n onClick: noop,\n onSelect: noop,\n onOpenChange: noop,\n onDeselect: noop,\n defaultSelectedKeys: [],\n defaultOpenKeys: [],\n subMenuOpenDelay: 0.1,\n subMenuCloseDelay: 0.1,\n triggerSubMenuAction: 'hover',\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n style: {},\n builtinPlacements: {},\n overflowedIndicator: React.createElement(\"span\", null, \"\\xB7\\xB7\\xB7\")\n };\n return Menu;\n}();\n\nexport default Menu;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport { noop, menuAllProps } from './util';\n\nvar MenuItem =\n/** @class */\nfunction () {\n var MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n var _super = _createSuper(MenuItem);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n _this.onClick(e);\n\n return true;\n }\n\n return undefined;\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props = _this.props,\n eventKey = _this$props.eventKey,\n onItemHover = _this$props.onItemHover,\n onMouseLeave = _this$props.onMouseLeave;\n onItemHover({\n key: eventKey,\n hover: false\n });\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props2 = _this.props,\n eventKey = _this$props2.eventKey,\n onItemHover = _this$props2.onItemHover,\n onMouseEnter = _this$props2.onMouseEnter;\n onItemHover({\n key: eventKey,\n hover: true\n });\n onMouseEnter({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onClick = function (e) {\n var _this$props3 = _this.props,\n eventKey = _this$props3.eventKey,\n multiple = _this$props3.multiple,\n onClick = _this$props3.onClick,\n onSelect = _this$props3.onSelect,\n onDeselect = _this$props3.onDeselect,\n isSelected = _this$props3.isSelected;\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: _assertThisInitialized(_this),\n domEvent: e\n };\n onClick(info);\n\n if (multiple) {\n if (isSelected) {\n onDeselect(info);\n } else {\n onSelect(info);\n }\n } else if (!isSelected) {\n onSelect(info);\n }\n };\n\n _this.saveNode = function (node) {\n _this.node = node;\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n this.callRef();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.callRef();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var props = this.props;\n\n if (props.onDestroy) {\n props.onDestroy(props.eventKey);\n }\n }\n }, {\n key: \"getPrefixCls\",\n value: function getPrefixCls() {\n return \"\".concat(this.props.rootPrefixCls, \"-item\");\n }\n }, {\n key: \"getActiveClassName\",\n value: function getActiveClassName() {\n return \"\".concat(this.getPrefixCls(), \"-active\");\n }\n }, {\n key: \"getSelectedClassName\",\n value: function getSelectedClassName() {\n return \"\".concat(this.getPrefixCls(), \"-selected\");\n }\n }, {\n key: \"getDisabledClassName\",\n value: function getDisabledClassName() {\n return \"\".concat(this.getPrefixCls(), \"-disabled\");\n }\n }, {\n key: \"callRef\",\n value: function callRef() {\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var props = _objectSpread({}, this.props);\n\n var className = classNames(this.getPrefixCls(), props.className, (_classNames = {}, _defineProperty(_classNames, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_classNames, this.getSelectedClassName(), props.isSelected), _defineProperty(_classNames, this.getDisabledClassName(), props.disabled), _classNames));\n\n var attrs = _objectSpread(_objectSpread({}, props.attribute), {}, {\n title: typeof props.title === 'string' ? props.title : undefined,\n className: className,\n // set to menuitem by default\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n\n if (props.role === 'option') {\n // overwrite to option\n attrs = _objectSpread(_objectSpread({}, attrs), {}, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside <li/> element\n // <li><a role='menuitem'>Link</a></li> would be a good example\n // in this case the role on <li/> should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n } // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n\n\n var mouseEvent = {\n onClick: props.disabled ? null : this.onClick,\n onMouseLeave: props.disabled ? null : this.onMouseLeave,\n onMouseEnter: props.disabled ? null : this.onMouseEnter\n };\n\n var style = _objectSpread({}, props.style);\n\n if (props.mode === 'inline') {\n if (props.direction === 'rtl') {\n style.paddingRight = props.inlineIndent * props.level;\n } else {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n }\n\n menuAllProps.forEach(function (key) {\n return delete props[key];\n });\n delete props.direction;\n var icon = this.props.itemIcon;\n\n if (typeof this.props.itemIcon === 'function') {\n // TODO: This is a bug which should fixed after TS refactor\n icon = React.createElement(this.props.itemIcon, this.props);\n }\n\n return React.createElement(\"li\", Object.assign({}, props, attrs, mouseEvent, {\n style: style,\n ref: this.saveNode\n }), props.children, icon);\n }\n }]);\n\n return MenuItem;\n }(React.Component);\n\n MenuItem.isMenuItem = true;\n MenuItem.defaultProps = {\n onSelect: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n manualRef: noop\n };\n return MenuItem;\n}();\n\nexport { MenuItem };\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\nexport default connected;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport { menuAllProps } from './util';\n\nvar MenuItemGroup =\n/** @class */\nfunction () {\n var MenuItemGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItemGroup, _React$Component);\n\n var _super = _createSuper(MenuItemGroup);\n\n function MenuItemGroup() {\n var _this;\n\n _classCallCheck(this, MenuItemGroup);\n\n _this = _super.apply(this, arguments);\n\n _this.renderInnerMenuItem = function (item) {\n var _this$props = _this.props,\n renderMenuItem = _this$props.renderMenuItem,\n index = _this$props.index;\n return renderMenuItem(item, index, _this.props.subMenuKey);\n };\n\n return _this;\n }\n\n _createClass(MenuItemGroup, [{\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n\n var _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n rootPrefixCls = props.rootPrefixCls;\n var titleClassName = \"\".concat(rootPrefixCls, \"-item-group-title\");\n var listClassName = \"\".concat(rootPrefixCls, \"-item-group-list\");\n var title = props.title,\n children = props.children;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n delete props.direction;\n return React.createElement(\"li\", Object.assign({}, props, {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-group\")\n }), React.createElement(\"div\", {\n className: titleClassName,\n title: typeof title === 'string' ? title : undefined\n }, title), React.createElement(\"ul\", {\n className: listClassName\n }, React.Children.map(children, this.renderInnerMenuItem)));\n }\n }]);\n\n return MenuItemGroup;\n }(React.Component);\n\n MenuItemGroup.isMenuItemGroup = true;\n MenuItemGroup.defaultProps = {\n disabled: true\n };\n return MenuItemGroup;\n}();\n\nexport default MenuItemGroup;","import React from 'react';\n\nvar Divider = function Divider(_ref) {\n var className = _ref.className,\n rootPrefixCls = _ref.rootPrefixCls,\n style = _ref.style;\n return React.createElement(\"li\", {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-divider\"),\n style: style\n });\n};\n\nDivider.defaultProps = {\n // To fix keyboard UX.\n disabled: true,\n className: '',\n style: {}\n};\nexport default Divider;","import Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\nexport default Menu;","var START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexport default TransitionEvents;","import { Col } from '../grid';\nexport default Col;","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\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\nmodule.exports = isObjectLike;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexports.default = exports;","/**\r\n * Handles date and time formatting\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite } from \"../Sprite\";\r\nimport { Language, ILocaleProperties } from \"../utils/Language\";\r\nimport { BaseObject } from \"../Base\";\r\nimport { ITextChunk, getTextFormatter } from \"../formatters/TextFormatter\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $strings from \"../utils/Strings\";\r\nimport * as $utils from \"../utils/Utils\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * Interface describing parsed date format definition.\r\n */\r\nexport interface DateFormatInfo {\r\n\t\"template\": string;\r\n\t\"parts\": any[];\r\n}\r\n\r\n/**\r\n * Month names.\r\n */\r\nexport type MonthNames = \"January\" | \"February\" | \"March\" | \"April\" | \"May\" | \"June\" | \"July\" | \"August\" | \"September\" | \"October\" | \"November\" | \"December\";\r\n\r\n/**\r\n * Short month names.\r\n *\r\n * @param {string}\r\n */\r\nexport type ShortMonthNames = \"Jan\" | \"Feb\" | \"Mar\" | \"Apr\" | \"May(short)\" | \"Jun\" | \"Jul\" | \"Aug\" | \"Sep\" | \"Oct\" | \"Nov\" | \"Dec\";\r\n\r\n/**\r\n * Weekedays.\r\n */\r\nexport type Weekdays = \"Sunday\" | \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"Saturday\";\r\n\r\n/**\r\n * Short weekday names.\r\n */\r\nexport type ShortWeekdays = \"Sun\" | \"Mon\" | \"Tue\" | \"Wed\" | \"Thu\" | \"Fri\" | \"Sat\";\r\n\r\n/**\r\n * Handles date and time formatting.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/} Tutorial on date/time formatting\r\n * @todo Better type casting of passed in date?\r\n * @todo Quarter support?\r\n * @todo When parsing named months make the search case-insensitive\r\n * @todo Escape a.m./p.m. properly when used in RegEx\r\n */\r\nexport class DateFormatter extends BaseObject {\r\n\r\n\t/**\r\n\t * Date format.\r\n\t */\r\n\tprotected _dateFormat: string | Intl.DateTimeFormatOptions = \"yyyy-MM-dd\";\r\n\r\n\t/**\r\n\t * Locales to use when formatting using Intl.DateFormatter\r\n\t */\r\n\tprotected _intlLocales: string;\r\n\r\n\t/**\r\n\t * Input date format.\r\n\t */\r\n\tprotected _inputDateFormat: string = \"yyyy-MM-dd\";\r\n\r\n\t/**\r\n\t * Assume UTC time zone.\r\n\t */\r\n\tprotected _utc: boolean = false;\r\n\r\n\t/**\r\n\t * Timezone offset.\r\n\t */\r\n\tprotected _timezoneOffset: $type.Optional<number>;\r\n\r\n\t/**\r\n\t * First day of week.\r\n\t *\r\n\t * 0 - Sunday\r\n\t * 1 - Monday\r\n\t *\r\n\t * Etc.\r\n\t */\r\n\tprotected _firstDayOfWeek: number = 1;\r\n\r\n\t/**\r\n\t * A list of month names.\r\n\t */\r\n\tpublic months: Array<MonthNames> = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n\r\n\t/**\r\n\t * A list of short month names.\r\n\t */\r\n\tpublic monthsShort: Array<ShortMonthNames> = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May(short)\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n\r\n\t/**\r\n\t * A list of weekday names.\r\n\t */\r\n\tpublic weekdays: Array<Weekdays> = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\n\r\n\t/**\r\n\t * A list of short weekday names.\r\n\t */\r\n\tpublic weekdaysShort: Array<ShortWeekdays> = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\r\n\r\n\t/**\r\n\t * Output format to produce. If the format calls for applying color to the\r\n\t * formatted value, this setting will determine what markup to use: SVG or\r\n\t * HTML.\r\n\t *\r\n\t * Available options: svg, html.\r\n\t *\r\n\t * @default \"svg\"\r\n\t */\r\n\tprotected _outputFormat: string = \"svg\";\r\n\r\n\t/**\r\n\t * Holds reference to parent [[Sprite]] object.\r\n\t */\r\n\tpublic sprite: $type.Optional<Sprite>;\r\n\r\n\t/**\r\n\t * Holds reference to [[Language]] object.\r\n\t */\r\n\tpublic _language: $type.Optional<Language>;\r\n\r\n\t/**\r\n\t * Should the first letter of the formatted date be capitalized?\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tpublic capitalize: boolean = true;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DateFormatter\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to [[Language]] object.\r\n\t *\r\n\t * @param value Language\r\n\t */\r\n\tpublic set language(value: $type.Optional<Language>) {\r\n\t\tthis._language = value;\r\n\t\tthis.dateFormat = this._language.translate(\"_date\");\r\n\t}\r\n\r\n\t/**\r\n\t * @return Language\r\n\t */\r\n\tpublic get language(): $type.Optional<Language> {\r\n\t\treturn this._language;\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the date value according to specified format.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/} Tutorial on date/time formatting\r\n\t * @param source Date value\r\n\t * @param format Format\r\n\t * @return Formatted date string\r\n\t */\r\n\tpublic format(source: any, format?: string | Intl.DateTimeFormatOptions): string {\r\n\r\n\t\t// No language?\r\n\t\tif (!this.language) {\r\n\t\t\tif (this.sprite) {\r\n\t\t\t\tthis.language = this.sprite.language;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.language = new Language();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// No format passed in or it's empty\r\n\t\tif (typeof format === \"undefined\" || format === \"\") {\r\n\t\t\tformat = this._dateFormat;\r\n\t\t}\r\n\r\n\t\t// Init return value\r\n\t\tlet formatted;\r\n\r\n\t\t// Do casting if required\r\n\t\t// This will take care of timestamps as well as Date objects\r\n\t\tlet date: Date;\r\n\t\tif ($type.isString(source)) {\r\n\t\t\t// If it's a string, let's try parsing it using our own functionality\r\n\t\t\tdate = this.parse(source);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdate = $utils.anyToDate(source);\r\n\t\t}\r\n\r\n\t\t// Is it a built-in format or Intl.DateTimeFormat\r\n\t\tif (format instanceof Object) {\r\n\r\n\t\t\ttry {\r\n\t\t\t\tif (this.intlLocales) {\r\n\t\t\t\t\treturn new Intl.DateTimeFormat(this.intlLocales, <Intl.DateTimeFormatOptions>format).format(date);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn new Intl.DateTimeFormat(undefined, <Intl.DateTimeFormatOptions>format).format(date);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\treturn \"Invalid\";\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\t// Clean format\r\n\t\t\tformat = $utils.cleanFormat(format);\r\n\r\n\t\t\t// get format info (it will also deal with parser caching)\r\n\t\t\tlet info = this.parseFormat(format);\r\n\r\n\t\t\t// Should we apply custom time zone?\r\n\t\t\tif ($type.hasValue(this.timezoneOffset)) {\r\n\t\t\t\tdate.setMinutes(date.getMinutes() + date.getTimezoneOffset() - this.timezoneOffset);\r\n\t\t\t}\r\n\r\n\t\t\t// Check if it's a valid date\r\n\t\t\tif (!$type.isNumber(date.getTime())) {\r\n\t\t\t\treturn this.language.translate(\"Invalid date\");\r\n\t\t\t}\r\n\r\n\t\t\t// Apply format\r\n\t\t\tformatted = this.applyFormat(date, info, this.language);\r\n\r\n\t\t\t// Capitalize\r\n\t\t\tif (this.capitalize) {\r\n\t\t\t\tformatted = formatted.replace(\r\n\t\t\t\t\t/^.{1}/, formatted.substr(0, 1).toUpperCase()\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// We're done\r\n\t\treturn formatted;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses format into structured infromation.\r\n\t *\r\n\t * @param format Format template\r\n\t */\r\n\tprotected parseFormat(format: string): DateFormatInfo {\r\n\r\n\t\t// Check cache\r\n\t\tlet cached = this.getCache(format);\r\n\t\tif ($type.hasValue(cached)) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\r\n\t\t// Init format parse info holder\r\n\t\tlet info: DateFormatInfo = {\r\n\t\t\t\"template\": \"\",\r\n\t\t\t\"parts\": <any>[]\r\n\t\t};\r\n\r\n\t\t// Let TextFormatter split into chunks\r\n\t\tlet chunks: ITextChunk[] = getTextFormatter().chunk(format, true);\r\n\t\tfor (let i: number = 0; i < chunks.length; i++) {\r\n\t\t\tlet chunk: ITextChunk = chunks[i];\r\n\r\n\t\t\tif (chunk.type === \"value\") {\r\n\r\n\t\t\t\t// Just \"Date\"?\r\n\t\t\t\tif (chunk.text.match(/^date$/i) && $type.isString(this._dateFormat)) {\r\n\t\t\t\t\tchunk.text = this._dateFormat;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Find all possible parts\r\n\t\t\t\tlet matches = chunk.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);\r\n\r\n\t\t\t\t// Found?\r\n\t\t\t\tif (matches) {\r\n\r\n\t\t\t\t\t// Populate template\r\n\t\t\t\t\tfor (let x = 0; x < matches.length; x++) {\r\n\t\t\t\t\t\tinfo.parts.push(matches[x]);\r\n\t\t\t\t\t\tchunk.text = chunk.text.replace(matches[x], $strings.PLACEHOLDER);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Apply to template\r\n\t\t\tinfo.template += chunk.text;\r\n\t\t}\r\n\r\n\t\t// Apply style formatting\r\n\t\t//info.template = getTextFormatter().format(info.template, this.outputFormat);\r\n\r\n\t\t// Save cache\r\n\t\tthis.setCache(format, info);\r\n\r\n\t\treturn info;\r\n\t}\r\n\r\n\t/**\r\n\t * Applies format to Date.\r\n\t *\r\n\t * @param date Date object\r\n\t * @param info Parsed format information\r\n\t * @param language Language\r\n\t * @return Formatted date string\r\n\t */\r\n\tprotected applyFormat(date: Date, info: DateFormatInfo, language: Language): string {\r\n\r\n\t\t// Init return value\r\n\t\tlet res = info.template;\r\n\r\n\t\t// Get values\r\n\t\tlet fullYear: number,\r\n\t\t\tmonth: number,\r\n\t\t\tweekday: number,\r\n\t\t\tday: number,\r\n\t\t\thours: number,\r\n\t\t\tminutes: number,\r\n\t\t\tseconds: number,\r\n\t\t\tmilliseconds: number,\r\n\t\t\toffset: number = date.getTimezoneOffset(),\r\n\t\t\ttimestamp: number = date.getTime();\r\n\t\tif (this.utc) {\r\n\t\t\tfullYear = date.getUTCFullYear();\r\n\t\t\tmonth = date.getUTCMonth();\r\n\t\t\tweekday = date.getUTCDay();\r\n\t\t\tday = date.getUTCDate();\r\n\t\t\thours = date.getUTCHours();\r\n\t\t\tminutes = date.getUTCMinutes();\r\n\t\t\tseconds = date.getUTCSeconds();\r\n\t\t\tmilliseconds = date.getUTCMilliseconds();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfullYear = date.getFullYear();\r\n\t\t\tmonth = date.getMonth();\r\n\t\t\tweekday = date.getDay();\r\n\t\t\tday = date.getDate();\r\n\t\t\thours = date.getHours();\r\n\t\t\tminutes = date.getMinutes();\r\n\t\t\tseconds = date.getSeconds();\r\n\t\t\tmilliseconds = date.getMilliseconds();\r\n\t\t}\r\n\r\n\t\t// Go through each part and format/replace it in template\r\n\t\tfor (let i = 0, len = info.parts.length; i < len; i++) {\r\n\t\t\tlet value: string = \"\";\r\n\t\t\tswitch (info.parts[i]) {\r\n\r\n\t\t\t\tcase \"G\":\r\n\t\t\t\t\tvalue = language.translate(\r\n\t\t\t\t\t\tfullYear < 0\r\n\t\t\t\t\t\t\t? \"_era_bc\"\r\n\t\t\t\t\t\t\t: \"_era_ad\"\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"yyyy\":\r\n\t\t\t\t\tvalue = Math.abs(fullYear).toString();\r\n\t\t\t\t\tif (fullYear < 0) {\r\n\t\t\t\t\t\tvalue += language.translate(\"_era_bc\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"yyy\":\r\n\t\t\t\tcase \"yy\":\r\n\t\t\t\tcase \"y\":\r\n\t\t\t\t\tvalue = Math.abs(fullYear).toString().substr(-info.parts[i].length);\r\n\t\t\t\t\tif (fullYear < 0) {\r\n\t\t\t\t\t\tvalue += language.translate(\"_era_bc\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"YYYY\":\r\n\t\t\t\tcase \"YYY\":\r\n\t\t\t\tcase \"YY\":\r\n\t\t\t\tcase \"Y\":\r\n\t\t\t\t\tlet week = $utils.getWeek(date);\r\n\t\t\t\t\tlet year = fullYear;\r\n\t\t\t\t\tif (week == 1 && (weekday > 1)) {\r\n\t\t\t\t\t\tyear--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (info.parts[i] == \"YYYY\") {\r\n\t\t\t\t\t\tvalue = Math.abs(year).toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue = Math.abs(year).toString().substr(-info.parts[i].length);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (year < 0) {\r\n\t\t\t\t\t\tvalue += language.translate(\"_era_bc\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"u\":\r\n\t\t\t\t\t// @todo\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MMMMM\":\r\n\t\t\t\t\tvalue = language.translate(this.months[month]).substr(0, 1);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MMMM\":\r\n\t\t\t\t\tvalue = language.translate(this.months[month]);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MMM\":\r\n\t\t\t\t\tvalue = language.translate(this.monthsShort[month]);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MM\":\r\n\t\t\t\t\tvalue = $utils.padString(month + 1, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"M\":\r\n\t\t\t\t\tvalue = (month + 1).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ww\":\r\n\t\t\t\t\tvalue = $utils.padString($utils.getWeek(date, this.utc), 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"w\":\r\n\t\t\t\t\tvalue = $utils.getWeek(date, this.utc).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"W\":\r\n\t\t\t\t\tvalue = $utils.getMonthWeek(date, this.utc).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"dd\":\r\n\t\t\t\t\tvalue = $utils.padString(day, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"d\":\r\n\t\t\t\t\tvalue = day.toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"DD\":\r\n\t\t\t\tcase \"DDD\":\r\n\t\t\t\t\tvalue = $utils.padString($utils.getYearDay(date, this.utc).toString(), info.parts[i].length, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"D\":\r\n\t\t\t\t\tvalue = $utils.getYearDay(date, this.utc).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"F\":\r\n\t\t\t\t\t// @todo\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"g\":\r\n\t\t\t\t\t// @todo\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"t\":\r\n\t\t\t\t\tvalue = language.translateFunc(\"_dateOrd\").call(this, day);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"E\":\r\n\t\t\t\t\tvalue = (weekday || 7).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"EE\":\r\n\t\t\t\t\tvalue = $utils.padString((weekday || 7).toString(), 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"EEE\":\r\n\t\t\t\tcase \"eee\":\r\n\t\t\t\t\tvalue = language.translate(this.weekdaysShort[weekday]);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"EEEE\":\r\n\t\t\t\tcase \"eeee\":\r\n\t\t\t\t\tvalue = language.translate(this.weekdays[weekday]);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"EEEEE\":\r\n\t\t\t\tcase \"eeeee\":\r\n\t\t\t\t\tvalue = language.translate(this.weekdays[weekday]).substr(0, 1);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"e\":\r\n\t\t\t\tcase \"ee\":\r\n\t\t\t\t\tvalue = (weekday - this.firstDayOfWeek + 1).toString();\r\n\t\t\t\t\tif (info.parts[i] == \"ee\") {\r\n\t\t\t\t\t\tvalue = $utils.padString(value, 2, \"0\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"a\":\r\n\t\t\t\t\tif (hours >= 12) {\r\n\t\t\t\t\t\tvalue = language.translate(\"PM\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue = language.translate(\"AM\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"aa\":\r\n\t\t\t\t\tif (hours >= 12) {\r\n\t\t\t\t\t\tvalue = language.translate(\"P.M.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue = language.translate(\"A.M.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"aaa\":\r\n\t\t\t\t\tif (hours >= 12) {\r\n\t\t\t\t\t\tvalue = language.translate(\"P\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue = language.translate(\"A\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"h\":\r\n\t\t\t\t\tvalue = $utils.get12Hours(hours).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"hh\":\r\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours), 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"H\":\r\n\t\t\t\t\tvalue = hours.toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"HH\":\r\n\t\t\t\t\tvalue = $utils.padString(hours, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"K\":\r\n\t\t\t\t\tvalue = $utils.get12Hours(hours, 0).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"KK\":\r\n\t\t\t\t\tvalue = $utils.padString($utils.get12Hours(hours, 0), 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"k\":\r\n\t\t\t\t\tvalue = (hours + 1).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"kk\":\r\n\t\t\t\t\tvalue = $utils.padString(hours + 1, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"m\":\r\n\t\t\t\t\tvalue = minutes.toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"mm\":\r\n\t\t\t\t\tvalue = $utils.padString(minutes, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"s\":\r\n\t\t\t\t\tvalue = seconds.toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ss\":\r\n\t\t\t\t\tvalue = $utils.padString(seconds, 2, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"S\":\r\n\t\t\t\tcase \"SS\":\r\n\t\t\t\tcase \"SSS\":\r\n\t\t\t\t\tvalue = Math.round((milliseconds / 1000) * Math.pow(10, info.parts[i].length)).toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"x\":\r\n\t\t\t\t\tvalue = timestamp.toString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"n\":\r\n\t\t\t\tcase \"nn\":\r\n\t\t\t\tcase \"nnn\":\r\n\t\t\t\t\tvalue = $utils.padString(milliseconds, info.parts[i].length, \"0\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"z\":\r\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, false, this.utc);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"zz\":\r\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, false, this.utc);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"zzz\":\r\n\t\t\t\t\tvalue = $utils.getTimeZone(date, false, true, this.utc);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"zzzz\":\r\n\t\t\t\t\tvalue = $utils.getTimeZone(date, true, true, this.utc);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"Z\":\r\n\t\t\t\tcase \"ZZ\":\r\n\t\t\t\t\tlet tz = Math.abs(offset) / 60;\r\n\t\t\t\t\tlet tzh = Math.floor(tz);\r\n\t\t\t\t\tlet tzm = tz * 60 - tzh * 60;\r\n\r\n\t\t\t\t\tif (this.utc) {\r\n\t\t\t\t\t\ttzh = 0;\r\n\t\t\t\t\t\ttzm = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (info.parts[i] == \"Z\") {\r\n\t\t\t\t\t\tvalue = \"GMT\";\r\n\t\t\t\t\t\tvalue += offset > 0 ? \"-\" : \"+\";\r\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + \":\" + $utils.padString(tzm, 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalue = offset > 0 ? \"-\" : \"+\";\r\n\t\t\t\t\t\tvalue += $utils.padString(tzh, 2) + $utils.padString(tzm, 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"i\":\r\n\t\t\t\t\tvalue = date.toISOString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"I\":\r\n\t\t\t\t\tvalue = date.toUTCString();\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\r\n\t\t\tres = res.replace($strings.PLACEHOLDER, value);\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Parses any input value into Date object.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/#Parsing_Dates} Tutorial on date/time parsing\r\n\t * @param source Source value\r\n\t * @param format Source format\r\n\t * @return Date object\r\n\t */\r\n\tpublic parse(source: any, format?: string): Date {\r\n\r\n\t\t// Format set?\r\n\t\tif (!$type.hasValue(format)) {\r\n\t\t\tformat = this.inputDateFormat;\r\n\t\t}\r\n\r\n\t\t// Is it already a Date\r\n\t\tif (source instanceof Date) {\r\n\t\t\treturn source;\r\n\t\t}\r\n\r\n\t\t// Is it a numeric timestamp\r\n\t\tif (typeof source === \"number\") {\r\n\t\t\treturn new Date(source);\r\n\t\t}\r\n\r\n\t\t// No? Let's check if it's string, and try converting to it if nec\r\n\t\tif (typeof source !== \"string\") {\r\n\t\t\tsource = source.toString();\r\n\t\t}\r\n\r\n\t\t// no language?\r\n\t\tif (!this.language) {\r\n\t\t\tif (this.sprite) {\r\n\t\t\t\tthis.language = this.sprite.language;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.language = new Language;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Init return value\r\n\t\tlet res: Date;\r\n\r\n\t\t// Init RegEx for parsing\r\n\t\tlet reg: string = \"\";\r\n\r\n\t\t// Clean format\r\n\t\tformat = $utils.cleanFormat(format);\r\n\r\n\t\t// Clip format to length of the source string\r\n\t\tformat = format.substr(0, source.length);\r\n\r\n\t\t// Parse format\r\n\t\tlet info = this.parseFormat(format);\r\n\r\n\t\t// Init parsed items holder\r\n\t\tlet parsedIndexes = {\r\n\t\t\t\"year\": -1,\r\n\t\t\t\"year3\": -1,\r\n\t\t\t\"year2\": -1,\r\n\t\t\t\"year1\": -1,\r\n\t\t\t\"month\": -1,\r\n\t\t\t\"monthShort\": -1,\r\n\t\t\t\"monthLong\": -1,\r\n\t\t\t\"weekdayShort\": -1,\r\n\t\t\t\"weekdayLong\": -1,\r\n\t\t\t\"day\": -1,\r\n\t\t\t\"yearDay\": -1,\r\n\t\t\t\"week\": -1,\r\n\t\t\t\"hourBase0\": -1,\r\n\t\t\t\"hour12Base0\": -1,\r\n\t\t\t\"hourBase1\": -1,\r\n\t\t\t\"hour12Base1\": -1,\r\n\t\t\t\"minute\": -1,\r\n\t\t\t\"second\": -1,\r\n\t\t\t\"millisecond\": -1,\r\n\t\t\t\"millisecondDigits\": -1,\r\n\t\t\t\"am\": -1,\r\n\t\t\t\"zone\": -1,\r\n\t\t\t\"timestamp\": -1,\r\n\t\t\t\"iso\": -1\r\n\t\t};\r\n\r\n\t\t// Init values\r\n\t\tlet resValues = {\r\n\t\t\t\"year\": 1970,\r\n\t\t\t\"month\": 0,\r\n\t\t\t\"day\": 1,\r\n\t\t\t\"hour\": 0,\r\n\t\t\t\"minute\": 0,\r\n\t\t\t\"second\": 0,\r\n\t\t\t\"millisecond\": 0,\r\n\t\t\t\"timestamp\": <any>null,\r\n\t\t\t\"offset\": 0,\r\n\t\t\t\"utc\": this.utc\r\n\t\t}\r\n\r\n\t\t// Index adjuster\r\n\t\tlet indexAdjust: number = 0,\r\n\t\t\tindex: number = 0;\r\n\r\n\t\t// Iterate through all of the parts\r\n\t\tfor (let i: number = 0; i < info.parts.length; i++) {\r\n\r\n\t\t\t// Set current match index\r\n\t\t\tindex = i + indexAdjust + 1;\r\n\r\n\t\t\tswitch (info.parts[i]) {\r\n\r\n\t\t\t\tcase \"yyyy\":\r\n\t\t\t\tcase \"YYYY\":\r\n\t\t\t\t\treg += \"([0-9]{4})\";\r\n\t\t\t\t\tparsedIndexes.year = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"yyy\":\r\n\t\t\t\tcase \"YYY\":\r\n\t\t\t\t\treg += \"([0-9]{3})\";\r\n\t\t\t\t\tparsedIndexes.year3 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"yy\":\r\n\t\t\t\tcase \"YY\":\r\n\t\t\t\t\treg += \"([0-9]{2})\";\r\n\t\t\t\t\tparsedIndexes.year2 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"y\":\r\n\t\t\t\tcase \"Y\":\r\n\t\t\t\t\treg += \"([0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.year1 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MMMM\":\r\n\t\t\t\t\treg += \"(\" + this.getStringList(this.months).join(\"|\") + \")\";\r\n\t\t\t\t\tparsedIndexes.monthLong = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MMM\":\r\n\t\t\t\t\treg += \"(\" + this.getStringList(this.monthsShort).join(\"|\") + \")\";\r\n\t\t\t\t\tparsedIndexes.monthShort = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"MM\":\r\n\t\t\t\tcase \"M\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.month = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ww\":\r\n\t\t\t\tcase \"w\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.week = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"dd\":\r\n\t\t\t\tcase \"d\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.day = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"DDD\":\r\n\t\t\t\tcase \"DD\":\r\n\t\t\t\tcase \"D\":\r\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.yearDay = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\r\n\t\t\t\tcase \"dddd\":\r\n\t\t\t\t\treg += \"(\" + this.getStringList(this.weekdays).join(\"|\") + \")\";\r\n\t\t\t\t\tparsedIndexes.weekdayLong = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ddd\":\r\n\t\t\t\t\treg += \"(\" + this.getStringList(this.weekdaysShort).join(\"|\") + \")\";\r\n\t\t\t\t\tparsedIndexes.weekdayShort = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"aaa\":\r\n\t\t\t\tcase \"aa\":\r\n\t\t\t\tcase \"a\":\r\n\t\t\t\t\t// TODO: fix (escape regex)\r\n\t\t\t\t\treg += \"(\" + this.getStringList([\"AM\", \"PM\", \"A\\.M\\.\", \"P\\.M\\.\", \"A\", \"P\"]).join(\"|\") + \")\";\r\n\t\t\t\t\tparsedIndexes.am = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"hh\":\r\n\t\t\t\tcase \"h\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.hour12Base1 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"HH\":\r\n\t\t\t\tcase \"H\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.hourBase0 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"KK\":\r\n\t\t\t\tcase \"K\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.hour12Base0 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"kk\":\r\n\t\t\t\tcase \"k\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.hourBase1 = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"mm\":\r\n\t\t\t\tcase \"m\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.minute = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ss\":\r\n\t\t\t\tcase \"s\":\r\n\t\t\t\t\treg += \"([0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.second = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"SSS\":\r\n\t\t\t\tcase \"SS\":\r\n\t\t\t\tcase \"S\":\r\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.millisecond = index;\r\n\t\t\t\t\tparsedIndexes.millisecondDigits = info.parts[i].length;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"nnn\":\r\n\t\t\t\tcase \"nn\":\r\n\t\t\t\tcase \"n\":\r\n\t\t\t\t\treg += \"([0-9]{3}|[0-9]{2}|[0-9]{1})\";\r\n\t\t\t\t\tparsedIndexes.millisecond = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"x\":\r\n\t\t\t\t\treg += \"([0-9]{1,})\";\r\n\t\t\t\t\tparsedIndexes.timestamp = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"Z\":\r\n\t\t\t\t\treg += \"GMT([-+]+[0-9]{2}:[0-9]{2})\";\r\n\t\t\t\t\tparsedIndexes.zone = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"ZZ\":\r\n\t\t\t\t\treg += \"([\\\\-+]+[0-9]{2}[0-9]{2})\";\r\n\t\t\t\t\tparsedIndexes.zone = index;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"i\":\r\n\t\t\t\t\treg += \"([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})\\.([0-9]{3})[0-9]*([Zz]?)\";\r\n\t\t\t\t\tparsedIndexes.iso = index;\r\n\t\t\t\t\tindexAdjust += 7;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"G\":\r\n\t\t\t\tcase \"YYYY\":\r\n\t\t\t\tcase \"YYY\":\r\n\t\t\t\tcase \"YY\":\r\n\t\t\t\tcase \"Y\":\r\n\t\t\t\tcase \"MMMMM\":\r\n\t\t\t\tcase \"W\":\r\n\t\t\t\tcase \"EEEEE\":\r\n\t\t\t\tcase \"EEEE\":\r\n\t\t\t\tcase \"EEE\":\r\n\t\t\t\tcase \"EE\":\r\n\t\t\t\tcase \"E\":\r\n\t\t\t\tcase \"eeeee\":\r\n\t\t\t\tcase \"eeee\":\r\n\t\t\t\tcase \"eee\":\r\n\t\t\t\tcase \"ee\":\r\n\t\t\t\tcase \"e\":\r\n\t\t\t\tcase \"zzzz\":\r\n\t\t\t\tcase \"zzz\":\r\n\t\t\t\tcase \"zz\":\r\n\t\t\t\tcase \"z\":\r\n\t\t\t\tcase \"t\":\r\n\t\t\t\t\t// Ignore\r\n\t\t\t\t\tindexAdjust--;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treg += \"[^0-9]*\";\r\n\t\t}\r\n\r\n\t\t// Try matching\r\n\t\tlet regex = new RegExp(reg);\r\n\t\tlet matches: RegExpMatchArray = source.match(regex);\r\n\r\n\t\tif (matches) {\r\n\t\t\t// Populate the date object\r\n\r\n\t\t\t// Full year\r\n\t\t\tif (parsedIndexes.year > -1) {\r\n\t\t\t\tresValues.year = parseInt(matches[parsedIndexes.year]);\r\n\t\t\t}\r\n\r\n\t\t\t// 3-digit year\r\n\t\t\tif (parsedIndexes.year3 > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year3]);\r\n\t\t\t\tval += 1000;\r\n\t\t\t\tresValues.year = val;\r\n\t\t\t}\r\n\r\n\t\t\t// 2-digit year\r\n\t\t\tif (parsedIndexes.year2 > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year2]);\r\n\t\t\t\tif (val > 50) {\r\n\t\t\t\t\tval += 1000;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tval += 2000;\r\n\t\t\t\t}\r\n\t\t\t\tresValues.year = val;\r\n\t\t\t}\r\n\r\n\t\t\t// 1-digit year\r\n\t\t\tif (parsedIndexes.year1 > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.year1]);\r\n\t\t\t\tval = Math.floor((new Date().getFullYear()) / 10) * 10 + val;\r\n\t\t\t\tresValues.year = val;\r\n\t\t\t}\r\n\r\n\t\t\t// Full month\r\n\t\t\tif (parsedIndexes.monthLong > -1) {\r\n\t\t\t\tresValues.month = this.resolveMonth(<any>matches[parsedIndexes.monthLong]);\r\n\t\t\t}\r\n\r\n\t\t\t// Short month\r\n\t\t\tif (parsedIndexes.monthShort > -1) {\r\n\t\t\t\tresValues.month = this.resolveShortMonth(<any>matches[parsedIndexes.monthShort]);\r\n\t\t\t}\r\n\r\n\t\t\t// Numeric month\r\n\t\t\tif (parsedIndexes.month > -1) {\r\n\t\t\t\tresValues.month = parseInt(matches[parsedIndexes.month]) - 1;\r\n\t\t\t}\r\n\r\n\t\t\t// Weekday\r\n\t\t\t// @todo\r\n\r\n\t\t\t// Week\r\n\t\t\tif ((parsedIndexes.week > -1) && (parsedIndexes.day === -1)) {\r\n\t\t\t\t// We parse weeks ONLY if day is not explicitly set\r\n\t\t\t\t// TODO: this needs work\r\n\t\t\t\t// (but maybe later - I can hardly imagine anyone passing their dates in weeks)\r\n\t\t\t\tresValues.month = 0;\r\n\t\t\t\tresValues.day = $utils.getDayFromWeek(\r\n\t\t\t\t\tparseInt(matches[parsedIndexes.week]),\r\n\t\t\t\t\tresValues.year,\r\n\t\t\t\t\t1,\r\n\t\t\t\t\tthis.utc\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Day\r\n\t\t\tif (parsedIndexes.day > -1) {\r\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.day]);\r\n\t\t\t}\r\n\r\n\t\t\t// Year day\r\n\t\t\tif (parsedIndexes.yearDay > -1) {\r\n\t\t\t\tresValues.month = 0;\r\n\t\t\t\tresValues.day = parseInt(matches[parsedIndexes.yearDay]);\r\n\t\t\t}\r\n\r\n\t\t\t// 24 Hour (0-23)\r\n\t\t\tif (parsedIndexes.hourBase0 > -1) {\r\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase0]);\r\n\t\t\t}\r\n\r\n\t\t\t// 24 Hour (1-24)\r\n\t\t\tif (parsedIndexes.hourBase1 > -1) {\r\n\t\t\t\tresValues.hour = parseInt(matches[parsedIndexes.hourBase1]) - 1;\r\n\t\t\t}\r\n\r\n\t\t\t// 12 Hour (0-11)\r\n\t\t\tif (parsedIndexes.hour12Base0 > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base0]);\r\n\t\t\t\tif (val == 11) {\r\n\t\t\t\t\tval = 0;\r\n\t\t\t\t}\r\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\r\n\t\t\t\t\tval += 12;\r\n\t\t\t\t}\r\n\t\t\t\tresValues.hour = val;\r\n\t\t\t}\r\n\r\n\t\t\t// 12 Hour (1-12)\r\n\t\t\tif (parsedIndexes.hour12Base1 > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.hour12Base1]);\r\n\t\t\t\tif (val == 12) {\r\n\t\t\t\t\tval = 0;\r\n\t\t\t\t}\r\n\t\t\t\tif ((parsedIndexes.am > -1) && !this.isAm(matches[parsedIndexes.am])) {\r\n\t\t\t\t\tval += 12;\r\n\t\t\t\t}\r\n\t\t\t\tresValues.hour = val;\r\n\t\t\t}\r\n\r\n\t\t\t// Minute\r\n\t\t\tif (parsedIndexes.minute > -1) {\r\n\t\t\t\tresValues.minute = parseInt(matches[parsedIndexes.minute]);\r\n\t\t\t}\r\n\r\n\t\t\t// Second\r\n\t\t\tif (parsedIndexes.second > -1) {\r\n\t\t\t\tresValues.second = parseInt(matches[parsedIndexes.second]);\r\n\t\t\t}\r\n\r\n\t\t\t// Millisecond\r\n\t\t\tif (parsedIndexes.millisecond > -1) {\r\n\t\t\t\tlet val = parseInt(matches[parsedIndexes.millisecond]);\r\n\t\t\t\tif (parsedIndexes.millisecondDigits == 2) {\r\n\t\t\t\t\tval *= 10;\r\n\t\t\t\t}\r\n\t\t\t\telse if (parsedIndexes.millisecondDigits == 1) {\r\n\t\t\t\t\tval *= 100;\r\n\t\t\t\t}\r\n\t\t\t\tresValues.millisecond = val;\r\n\t\t\t}\r\n\r\n\t\t\t// Timestamp\r\n\t\t\tif (parsedIndexes.timestamp > -1) {\r\n\t\t\t\tresValues.timestamp = parseInt(matches[parsedIndexes.timestamp]);\r\n\t\t\t}\r\n\r\n\t\t\t// Adjust time zone\r\n\t\t\tif (parsedIndexes.zone > -1) {\r\n\t\t\t\tlet zone = matches[parsedIndexes.zone].replace(/:/, \"\");\r\n\t\t\t\tlet match = $type.getValue(zone.match(/([+\\-]?)([0-9]{2})([0-9]{2})/));\r\n\t\t\t\tlet dir = match[1];\r\n\t\t\t\tlet hour = match[2];\r\n\t\t\t\tlet minute = match[3];\r\n\t\t\t\tlet offset = parseInt(hour) * 60 + parseInt(minute);\r\n\r\n\t\t\t\t// Adjust offset\r\n\t\t\t\t// Making it negative does not seem to make sense, but it's right\r\n\t\t\t\t// because of how JavaScript calculates GTM offsets\r\n\t\t\t\tif (dir == \"+\") {\r\n\t\t\t\t\toffset *= -1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check the difference in offset\r\n\t\t\t\tlet originalOffset = new Date().getTimezoneOffset();\r\n\t\t\t\tlet diff = offset - originalOffset;\r\n\t\t\t\tresValues.offset = diff;\r\n\t\t\t}\r\n\r\n\t\t\t// ISO\r\n\t\t\tif (parsedIndexes.iso > -1) {\r\n\t\t\t\tif (matches[parsedIndexes.iso + 7] == \"Z\" || matches[parsedIndexes.iso + 7] == \"z\") {\r\n\t\t\t\t\tresValues.utc = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresValues.year = $type.toNumber(matches[parsedIndexes.iso + 0]);\r\n\t\t\t\tresValues.month = $type.toNumber(matches[parsedIndexes.iso + 1]) - 1;\r\n\t\t\t\tresValues.day = $type.toNumber(matches[parsedIndexes.iso + 2]);\r\n\t\t\t\tresValues.hour = $type.toNumber(matches[parsedIndexes.iso + 3]);\r\n\t\t\t\tresValues.minute = $type.toNumber(matches[parsedIndexes.iso + 4]);\r\n\t\t\t\tresValues.second = $type.toNumber(matches[parsedIndexes.iso + 5]);\r\n\t\t\t\tresValues.millisecond = $type.toNumber(matches[parsedIndexes.iso + 6]);\r\n\t\t\t}\r\n\r\n\t\t\t// Create Date object\r\n\t\t\tif (resValues.utc) {\r\n\t\t\t\tres = new Date(Date.UTC(\r\n\t\t\t\t\tresValues.year,\r\n\t\t\t\t\tresValues.month,\r\n\t\t\t\t\tresValues.day,\r\n\t\t\t\t\tresValues.hour,\r\n\t\t\t\t\tresValues.minute,\r\n\t\t\t\t\tresValues.second,\r\n\t\t\t\t\tresValues.millisecond\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tres = new Date(\r\n\t\t\t\t\tresValues.year,\r\n\t\t\t\t\tresValues.month,\r\n\t\t\t\t\tresValues.day,\r\n\t\t\t\t\tresValues.hour,\r\n\t\t\t\t\tresValues.minute + resValues.offset,\r\n\t\t\t\t\tresValues.second,\r\n\t\t\t\t\tresValues.millisecond\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Didn't match anything\r\n\t\t\t// Let's try dropping it into Date constructor and hope for the best\r\n\t\t\tres = new Date(source);\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Resolves month name (i.e. \"December\") into a month number (11).\r\n\t *\r\n\t * @param value Month name\r\n\t * @return Month number\r\n\t */\r\n\tprotected resolveMonth(value: MonthNames): number {\r\n\r\n\t\t// Let's try English first\r\n\t\tlet month: number = this.months.indexOf(value);\r\n\t\tif (month > -1) {\r\n\t\t\treturn month;\r\n\t\t}\r\n\r\n\t\t// Try the translation\r\n\t\tif (this.language && !this.language.isDefault()) {\r\n\t\t\tmonth = this.language.translateAll(this.months).indexOf(value);\r\n\t\t\tif (month > -1) {\r\n\t\t\t\treturn month\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Resolves short month name (i.e. \"Dec\") into a month number.\r\n\t *\r\n\t * @param value Short month name\r\n\t * @return Month number\r\n\t */\r\n\tprotected resolveShortMonth(value: ShortMonthNames): number {\r\n\r\n\t\t// Let's try English first\r\n\t\tlet month: number = this.monthsShort.indexOf(value);\r\n\t\tif (month > -1) {\r\n\t\t\treturn month;\r\n\t\t}\r\n\r\n\t\t// Maybe long month (workaround for May)\r\n\t\tmonth = this.months.indexOf(<any>value);\r\n\t\tif (month > -1) {\r\n\t\t\treturn month;\r\n\t\t}\r\n\r\n\t\t// Try the translation\r\n\t\tif (this.language && !this.language.isDefault()) {\r\n\t\t\tmonth = this.language.translateAll(this.monthsShort).indexOf(value);\r\n\t\t\tif (month > -1) {\r\n\t\t\t\treturn month\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if passed in string represents AM/PM notation in many of its\r\n\t * versions.\r\n\t *\r\n\t * @param value Source string\r\n\t * @return Is it AM/PM?\r\n\t */\r\n\tprotected isAm(value: string): boolean {\r\n\t\tlet list = this.getStringList([\"AM\", \"A.M.\", \"A\"]);\r\n\t\treturn list.indexOf(value.toUpperCase()) > -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Invalidates related [[Sprite]] causing it to redraw.\r\n\t */\r\n\tprotected invalidateSprite(): void {\r\n\t\tif (this.sprite) {\r\n\t\t\tthis.sprite.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Translates list of strings.\r\n\t *\r\n\t * @param list Source strings\r\n\t * @return Translated strings\r\n\t */\r\n\tprotected getStringList(list: Array<keyof ILocaleProperties>): Array<string> {\r\n\t\tlet res: string[] = [];\r\n\t\tfor (let i: number = 0; i < list.length; i++) {\r\n\t\t\t// translate?\r\n\t\t\tif (this.language) {\r\n\t\t\t\tres.push($utils.escapeForRgex(this.language.translate(list[i])));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tres.push($utils.escapeForRgex(list[i]));\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Date format to use.\r\n\t *\r\n\t * If format is not supplied in-line in the string, this setting will be\r\n\t * used.\r\n\t *\r\n\t * @default \"yyyy-MM-dd\"\r\n\t * @param value Date format\r\n\t */\r\n\tpublic set dateFormat(value: string | Intl.DateTimeFormatOptions) {\r\n\t\tthis._dateFormat = value;\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date format\r\n\t */\r\n\tpublic get dateFormat(): string | Intl.DateTimeFormatOptions {\r\n\t\treturn this._dateFormat;\r\n\t}\r\n\r\n\t/**\r\n\t * Date format to use when parsing dates.\r\n\t *\r\n\t * @default \"yyyy-MM-dd\"\r\n\t * @param value Date format\r\n\t */\r\n\tpublic set inputDateFormat(value: string) {\r\n\t\tthis._inputDateFormat = value;\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date format\r\n\t */\r\n\tpublic get inputDateFormat(): string {\r\n\t\treturn this._inputDateFormat;\r\n\t}\r\n\r\n\t/**\r\n\t * Locales if you are using date formats in `Intl.DateTimeFormatOptions` syntax.\r\n\t *\r\n\t * @param value Locales\r\n\t */\r\n\tpublic set intlLocales(value: string) {\r\n\t\tthis._intlLocales = value;\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date format\r\n\t */\r\n\tpublic get intlLocales(): string {\r\n\t\treturn this._intlLocales;\r\n\t}\r\n\r\n\t/**\r\n\t * Should formatter use UTC functions?\r\n\t *\r\n\t * If UTC is used, all date/time values will be independent on client's\r\n\t * time zone.\r\n\t *\r\n\t * @param value Use UTC?\r\n\t */\r\n\tpublic set utc(value: boolean) {\r\n\t\tthis._utc = value;\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use UTC?\r\n\t */\r\n\tpublic get utc(): boolean {\r\n\t\treturn this._utc;\r\n\t}\r\n\r\n\t/**\r\n\t * If set, will format date/time in specific time zone.\r\n\t *\r\n\t * The value is a number of minutes from target time zone to UTC.\r\n\t *\r\n\t * E.g. `300` will recalculate Dates in \"GMT-5\" time zone.\r\n\t *\r\n\t * @param value Offset (minutes)\r\n\t */\r\n\tpublic set timezoneOffset(value: $type.Optional<number>) {\r\n\t\tif (this._timezoneOffset != value) {\r\n\t\t\tthis._timezoneOffset = value;\r\n\t\t\tthis.invalidateSprite();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Offset (minutes)\r\n\t */\r\n\tpublic get timezoneOffset(): $type.Optional<number> {\r\n\t\treturn this._timezoneOffset;\r\n\t}\r\n\r\n\t/**\r\n\t * First day of the week:\r\n\t *\r\n\t * * 0 - Sunday\r\n\t * * 1 - Monday\r\n\t * * 2 - Tuesday\r\n\t *\r\n\t * Etc.\r\n\t *\r\n\t * @param value First day of week\r\n\t */\r\n\tpublic set firstDayOfWeek(value: number) {\r\n\t\tthis._firstDayOfWeek = value;\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @return First day of week\r\n\t */\r\n\tpublic get firstDayOfWeek(): number {\r\n\t\treturn this._firstDayOfWeek;\r\n\t}\r\n\r\n\t/**\r\n\t * Output format for the formatted date.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param value Format\r\n\t */\r\n\tpublic set outputFormat(value: string) {\r\n\t\tthis._outputFormat = value.toLowerCase();\r\n\t\tthis.invalidateSprite();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @return Format\r\n\t */\r\n\tpublic get outputFormat(): string {\r\n\t\treturn this._outputFormat;\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateFormatter\"] = DateFormatter;\r\n","/**\r\n * This module contains ColorSet object definition\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { BaseObject } from \"../Base\";\r\nimport { Color, color, iHSL } from \"./Color\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $colors from \"./Colors\";\r\nimport * as $type from \"./Type\";\r\nimport * as $utils from \"./Utils\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines an interface for objects identifying a color step.\r\n *\r\n * A \"color step\" object is used when [[ColorSet]] is generating colors, when\r\n * it has ran out of pre-set colors.\r\n *\r\n * It takes the last available color, then applies one or several of the\r\n * properties, like hue, or saturation with each subsequent generated color.\r\n */\r\nexport interface IColorSetStepOptions {\r\n\thue: number;\r\n\tbrighten: number;\r\n\tlighten: number;\r\n\tlightness: number;\r\n\tsaturation: number;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents a set of colors. Can also generate colors according to set rules.\r\n *\r\n * @important\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/colors/} for color-related info\r\n */\r\nexport class ColorSet extends BaseObject {\r\n\r\n\t/**\r\n\t * Holds the list of the colors in this set. (preset or auto-generated)\r\n\t */\r\n\tprotected _list: Color[] = [];\r\n\r\n\t/**\r\n\t * Current step in a color generator's cycle.\r\n\t */\r\n\tprotected _currentStep: number = 0;\r\n\r\n\t/**\r\n\t * If set to non-zero value, the ColorSet will start iterating colors from\r\n\t * that particular index, not the first color in the list.\r\n\t */\r\n\tprotected _startIndex: number = 0;\r\n\r\n\t/**\r\n\t * Current pass in the color generator's cycle. Normally a generator would\r\n\t * cycle through all available hue range, then repeat it, alternating other\r\n\t * color properties, to generate distinctive colors.\r\n\t */\r\n\tprotected _currentPass: number = 0;\r\n\r\n\t/**\r\n\t * A base color. If there are no colors pre-set in the color list, ColorSet\r\n\t * will use this color as a base when generating new ones, applying\r\n\t * `stepOptions` and `passOptions` to this base color.\r\n\t */\r\n\tpublic baseColor: Color = new Color({\r\n\t\tr: 103,\r\n\t\tg: 183,\r\n\t\tb: 220\r\n\t});\r\n\r\n\t/**\r\n\t * Modifications to apply with each new generated color.\r\n\t */\r\n\tpublic stepOptions: Partial<IColorSetStepOptions> = {};\r\n\r\n\t/**\r\n\t * Modifications to apply on top of `stepOptions` for each \"pass\" of the\r\n\t * color generation.\r\n\t *\r\n\t * A \"pass\" is when ColorSet generates `minColors` number of colors.\r\n\t */\r\n\tpublic passOptions: Partial<IColorSetStepOptions> = {\r\n\t\tbrighten: -0.2\r\n\t};\r\n\r\n\t/**\r\n\t * An index increment to use when iterating through color list.\r\n\t *\r\n\t * Default is 1, which means returning each and every color.\r\n\t *\r\n\t * Setting it to a bigger number will make ColorSet `next()` iterator skip\r\n\t * some colors.\r\n\t *\r\n\t * E.g. setting to 2, will return every second color in the list.\r\n\t *\r\n\t * This is useful, when the color list has colors that are too close each\r\n\t * other for contrast.\r\n\t *\r\n\t * However, having bigger number will mean that `next()` iterator will go\r\n\t * through the list quicker, and the generator will kick sooner.\r\n\t */\r\n\tpublic step: number = 1;\r\n\r\n\t/**\r\n\t * A number of colors to generate in one \"pass\".\r\n\t *\r\n\t * This setting can be automatically overridden, if ColorSet has a list of\r\n\t * pre-set colors. In such case ColorSet will generate exactly the same\r\n\t * number of colors with each pass as there were colors in original set.\r\n\t */\r\n\tpublic minColors: number = 20;\r\n\r\n\t/**\r\n\t * Do not let the \"lightness\" of generated color to fall below this\r\n\t * threshold.\r\n\t */\r\n\tpublic minLightness: number = 0.2;\r\n\r\n\t/**\r\n\t * Do not let the \"lightness\" of generated color to get above this threshold.\r\n\t */\r\n\tpublic maxLightness: number = 0.9;\r\n\r\n\t/**\r\n\t * Randomly shuffle generated colors.\r\n\t */\r\n\tpublic shuffle: boolean = false;\r\n\r\n\t/**\r\n\t * When colors are generated, based on `stepOptions`, each generated color\r\n\t * gets either lighter or darker.\r\n\t *\r\n\t * If this is set to `true`, color generator will switch to opposing spectrum\r\n\t * when reaching `minLightness` or `maxLightness`.\r\n\t *\r\n\t * E.g. if we start off with a red color, then gradually generate lighter\r\n\t * colors through rose shades, then switch back to dark red and gradually\r\n\t * increase the lightness of it until it reaches the starting red.\r\n\t *\r\n\t * If set to `false` it will stop there and cap lightness at whatever level\r\n\t * we hit `minLightness` or `maxLightness`, which may result in a number of\r\n\t * the same colors.\r\n\t */\r\n\tpublic wrap: boolean = true;\r\n\r\n\t/**\r\n\t * Re-use same colors in the pre-set list, when ColorSet runs out of colors,\r\n\t * rather than start generating new ones.\r\n\t */\r\n\tpublic reuse: boolean = false;\r\n\r\n\t/**\r\n\t * Saturation of colors. This will change saturation of all colors of color\r\n\t * set.\r\n\t *\r\n\t * It is recommended to set this in theme, as changing it at run time won't\r\n\t * make the items to redraw and change color.\r\n\t */\r\n\tpublic saturation: number = 1;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"ColorSet\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a list of pre-defined colors to use for the iterator.\r\n\t *\r\n\t * @param value Color list\r\n\t */\r\n\tpublic set list(value: Color[]) {\r\n\t\tthis._list = value;\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current list of colors.\r\n\t *\r\n\t * If there are none, a new list of colors is generated, based on various\r\n\t * ColorSet settings.\r\n\t *\r\n\t * @return Color list\r\n\t */\r\n\tpublic get list(): Color[] {\r\n\t\tif (!this._list) {\r\n\t\t\tthis.generate(this.minColors);\r\n\t\t}\r\n\t\treturn this._list;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets reusable color.\r\n\t * \r\n\t * @param index Index of color\r\n\t * @return Color\r\n\t */\r\n\tprotected getReusableColor(index: number): Color {\r\n\t\tif (this._list.length == 0) {\r\n\t\t\tthis.generate(1);\r\n\t\t\treturn this.list[0];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet tmpstep = index - (Math.floor(index / this._list.length) * this.list.length);\r\n\t\t\treturn this.list[tmpstep];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns next color in the list using internal iterator counter.\r\n\t *\r\n\t * If `step` is set to something other than 1, it may return other color than\r\n\t * exact next one in the list.\r\n\t *\r\n\t * @return Color\r\n\t */\r\n\tpublic next(): Color {\r\n\t\tlet color;\r\n\t\tif (this.list.length <= this._currentStep) {\r\n\t\t\tif (this.reuse) {\r\n\t\t\t\tcolor = this.getReusableColor(this._currentStep);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.generate(this.minColors);\r\n\t\t\t\tcolor = this.list[this._currentStep];\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcolor = this.list[this._currentStep];\r\n\t\t}\r\n\t\tthis._currentStep += this.step;\r\n\t\treturn color.saturate(this.saturation);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a color at specific index in the list.\r\n\t *\r\n\t * @param i Index\r\n\t * @return Color\r\n\t */\r\n\tpublic getIndex(i: number): Color {\r\n\t\tlet color;\r\n\t\tif (this.list.length <= i) {\r\n\t\t\tif (this.reuse) {\r\n\t\t\t\tcolor = this.getReusableColor(i);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.generate(this.minColors);\r\n\t\t\t\tcolor = this.getIndex(i);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcolor = this.list[i];\r\n\t\t}\r\n\t\treturn color.saturate(this.saturation);\r\n\t}\r\n\r\n\t/**\r\n\t * Resets internal iterator.\r\n\t *\r\n\t * Calling `next()` after this will return the very first color in the color\r\n\t * list, even if it was already returned before.\r\n\t */\r\n\tpublic reset(): void {\r\n\t\tthis._currentStep = this._startIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets current color iteration. You can use this property to skip some\r\n\t * colors from iteration. E.g. setting it to `10` will skip first ten\r\n\t * colors.\r\n\t *\r\n\t * Please note that the number is zero-based.\r\n\t *\r\n\t * @param value Step\r\n\t */\r\n\tpublic set currentStep(value: number) {\r\n\t\tthis._currentStep = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Step\r\n\t */\r\n\tpublic get currentStep(): number {\r\n\t\treturn this._currentStep;\r\n\t}\r\n\r\n\t/**\r\n\t * If set to non-zero value, the ColorSet will start iterating colors from\r\n\t * that particular index, not the first color in the list.\r\n\t *\r\n\t * @default 0\r\n\t * @since 4.4.9\r\n\t * @param value Index\r\n\t */\r\n\tpublic set startIndex(value: number) {\r\n\t\tthis._startIndex = value;\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Index\r\n\t */\r\n\tpublic get startIndex(): number {\r\n\t\treturn this._startIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Generates colors based on the various ColorSet settings.\r\n\t *\r\n\t * @param count Number of colors to generate\r\n\t */\r\n\tpublic generate(count: number): void {\r\n\r\n\t\t// Init\r\n\t\tlet curColor = this.currentColor;\r\n\t\tlet hsl = $colors.rgbToHsl($type.getValue(curColor.rgb));\r\n\t\tlet hueStep = $type.hasValue(this.stepOptions.hue) ? this.stepOptions.hue : 1 / count;\r\n\t\tlet mods: IColorSetStepOptions = {\r\n\t\t\tbrighten: 0,\r\n\t\t\tlighten: 0,\r\n\t\t\thue: hsl.h,\r\n\t\t\tlightness: hsl.l,\r\n\t\t\tsaturation: hsl.s\r\n\t\t};\r\n\r\n\t\t// Generate list of hues, and shuffle them\r\n\t\tlet hues: number[] = [];\r\n\t\tconst startIndex = this.list.length == 0 ? 0 : 1;\r\n\t\tif (this.reuse) {\r\n\t\t\tfor (let i = startIndex; i <= count; i++) {\r\n\t\t\t\thues.push($colors.rgbToHsl($type.getValue(this._list[i].rgb)).h);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfor (let i = startIndex; i <= count; i++) {\r\n\t\t\t\tlet h = hsl.h + hueStep * i;\r\n\t\t\t\tif (this.wrap && (h > 1)) {\r\n\t\t\t\t\th -= 1;\r\n\t\t\t\t}\r\n\t\t\t\thues.push(h);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Shuffle colors randomly\r\n\t\tif (this.shuffle) {\r\n\t\t\thues.sort((a: number, b: number) => {\r\n\t\t\t\treturn Math.random() - 0.5;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t// Generate colors by rotating hue\r\n\t\tfor (let i = 0; i < count; i++) {\r\n\r\n\t\t\t// Update hue\r\n\t\t\tif (this.reuse) {\r\n\t\t\t\thsl = $colors.rgbToHsl($type.getValue(this._list[i].rgb));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\thsl.h = <number>hues.shift();\r\n\t\t\t}\r\n\r\n\t\t\t// Apply HSL mods\r\n\t\t\tthis.applyStepOptions(hsl, mods, i, this._currentPass);\r\n\r\n\t\t\t// Convert back to Color\r\n\t\t\tlet c = color($colors.hslToRgb(hsl));\r\n\r\n\t\t\t// Apply regular color mods\r\n\t\t\tlet brighten = (this.stepOptions.brighten || 0) * i + (this.passOptions.brighten || 0) * this._currentPass;\r\n\t\t\tif (brighten != 0) {\r\n\t\t\t\tif (this.wrap) {\r\n\t\t\t\t\tbrighten = $utils.fitNumberRelative(brighten, this.minLightness, this.maxLightness);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tbrighten = $utils.fitNumber(brighten, this.minLightness, this.maxLightness);\r\n\t\t\t\t}\r\n\t\t\t\tc = c.brighten(brighten);\r\n\t\t\t}\r\n\r\n\t\t\tlet lighten = (this.stepOptions.lighten || 0) * i + (this.passOptions.lighten || 0) * this._currentPass;\r\n\t\t\tif (lighten != 0) {\r\n\t\t\t\tif (this.wrap) {\r\n\t\t\t\t\tlighten = $utils.fitNumberRelative(lighten, this.minLightness, this.maxLightness);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlighten = $utils.fitNumber(lighten, this.minLightness, this.maxLightness);\r\n\t\t\t\t}\r\n\t\t\t\tc = c.lighten(lighten);\r\n\t\t\t}\r\n\r\n\t\t\tthis._list.push(c);\r\n\t\t}\r\n\r\n\t\tthis._currentPass++;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns current last color. It's either the last color in the list of\r\n\t * colors, or `baseColor` if list is empty.\r\n\t *\r\n\t * @return Color\r\n\t */\r\n\tprotected get currentColor(): Color {\r\n\t\tif (this._list.length == 0) {\r\n\t\t\treturn this.baseColor.saturate(this.saturation);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._list[this._list.length - 1].saturate(this.saturation);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates modifiers for color, based on what step and pass.\r\n\t *\r\n\t * @param hsl Curren HSL value of the color to modify\r\n\t * @param base The modifiers that were before modification to use as a base\r\n\t * @param step Current step\r\n\t * @param pass Current pass\r\n\t */\r\n\tprotected applyStepOptions(hsl: iHSL, base: IColorSetStepOptions, step: number, pass: number): void {\r\n\r\n\t\t// Process lightness\r\n\t\thsl.l = base.lightness + (this.stepOptions.lightness || 0) * step + (this.passOptions.lightness || 0) * pass;\r\n\r\n\t\tif (this.wrap) {\r\n\t\t\tif (hsl.l > 1) {\r\n\t\t\t\thsl.l = hsl.l - Math.floor(hsl.l);\r\n\t\t\t}\r\n\t\t\telse if (hsl.l < 0) {\r\n\t\t\t\thsl.l = -(hsl.l - Math.floor(hsl.l));\r\n\t\t\t}\r\n\t\t\thsl.l = $utils.fitNumberRelative(hsl.l, this.minLightness, this.maxLightness);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (hsl.l > 1) {\r\n\t\t\t\thsl.l = 1\r\n\t\t\t}\r\n\t\t\telse if (hsl.l < 0) {\r\n\t\t\t\thsl.l = 0;\r\n\t\t\t}\r\n\t\t\thsl.l = $utils.fitNumber(hsl.l, this.minLightness, this.maxLightness);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axis ranges\r\n\t\t\tif ($type.hasValue(config.list) && $type.isArray(config.list)) {\r\n\t\t\t\tfor (let i = 0, len = config.list.length; i < len; i++) {\r\n\t\t\t\t\tif (!(config.list[i] instanceof Color)) {\r\n\t\t\t\t\t\tconfig.list[i] = color(config.list[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper.processConfig(config);\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"ColorSet\"] = ColorSet;","/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Dictionary } from \"./Dictionary\";\r\nimport * as $type from \"./Type\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines an interface for cache items.\r\n */\r\ninterface CacheItem<A> {\r\n\r\n\t/**\r\n\t * A timestamp of when the item was created/updated.\r\n\t */\r\n\t\"touched\": number,\r\n\r\n\t/**\r\n\t * TTL (time to live) in milliseconds.\r\n\t */\r\n\t\"ttl\"?: number,\r\n\r\n\t/**\r\n\t * Cached value.\r\n\t */\r\n\t\"value\": A,\r\n\r\n\t/**\r\n\t * Is this item expired?\r\n\t *\r\n\t * @todo a system process that would check chace element TTLs and expire them\r\n\t */\r\n\t\"expired\"?: boolean\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Represents object cache.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Better storage\r\n * @todo TTL logging\r\n * @todo Garbage collector\r\n */\r\nexport class Cache<A> {\r\n\r\n\t/**\r\n\t * Storage for cache items.\r\n\t */\r\n\tprivate _storage = new Dictionary<string, Dictionary<string, CacheItem<A>>>();\r\n\r\n\t/**\r\n\t * Default TTL in milliseconds.\r\n\t */\r\n\tpublic ttl: number = 1000;\r\n\r\n\t/**\r\n\t * Caches or updates cached value, resets TTL.\r\n\t *\r\n\t * If `ttl` is set to zero, item will never expire.\r\n\t *\r\n\t * @param owner An id of the object that owns this cache\r\n\t * @param key Index key\r\n\t * @param value Value\r\n\t * @param ttl TTL of the cache to live in milliseconds\r\n\t */\r\n\tpublic set(owner: string, key: string, value: A, ttl?: number): void {\r\n\r\n\t\t// Create if storage does not exist for this owner\r\n\t\tlet ownerStorage = this._storage.insertKeyIfEmpty(owner, () => new Dictionary<string, CacheItem<A>>());\r\n\r\n\t\t// Create cache item\r\n\t\tlet item: CacheItem<A> = {\r\n\t\t\t\"touched\": new Date().getTime(),\r\n\t\t\t\"ttl\": $type.isNumber(ttl) ? ttl : this.ttl,\r\n\t\t\t\"value\": value\r\n\t\t};\r\n\r\n\t\t// Set\r\n\t\townerStorage.setKey(key, item);\r\n\t}\r\n\r\n\t/**\r\n\t * Rerturns cached item, respecting TTL.\r\n\t *\r\n\t * @param owner An id of the object that owns this cache\r\n\t * @param key Index key\r\n\t * @param value Value to return if cache not available\r\n\t * @return Value, or `undefined` if not set\r\n\t */\r\n\tpublic get(owner: string, key: string, value: any = undefined): $type.Optional<A> {\r\n\t\t// \t\t || ypeof this._storage[owner][key] === \"undefined\" || this._storage[owner][key].expired === true) {\r\n\t\tif (this._storage.hasKey(owner)) {\r\n\t\t\tlet ownerStorage = <Dictionary<string, CacheItem<A>>>this._storage.getKey(owner);\r\n\r\n\t\t\tif (ownerStorage.hasKey(key)) {\r\n\t\t\t\tlet cacheItem: CacheItem<A> = <CacheItem<A>>ownerStorage.getKey(key);\r\n\t\t\t\tif (cacheItem.ttl && ((cacheItem.touched + cacheItem.ttl) < new Date().getTime())) {\r\n\t\t\t\t\tcacheItem.expired = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (cacheItem.expired) {\r\n\t\t\t\t\townerStorage.removeKey(key);\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t}\r\n\t\t\t\treturn cacheItem.value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Clears cache for specific owner or everything.\r\n\t *\r\n\t * @param owner Owner to clear cache for\r\n\t */\r\n\tpublic clear(owner?: string): void {\r\n\t\tif (owner) {\r\n\t\t\tthis._storage.removeKey(owner);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._storage.clear();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * ============================================================================\r\n * GLOBAL INSTANCE\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A global instance of cache. Use this instance to cache any values.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\nexport let cache: Cache<any> = new Cache();\r\n","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? elem.getBoundingClientRect().width\n : elem.getBoundingClientRect().height;\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem, computedStyle);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return (\n val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle)\n );\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which, computedStyle)\n : getPBMWidth(elem, ['margin'], which, computedStyle))\n );\n }\n return (\n cssBoxValue +\n getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle)\n );\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n parent && parent !== body;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (onAlign) {\n onAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","// export this package's api\nimport Align from './Align';\nexport default Align;","import React from 'react';\nimport classNames from 'classnames';\n\nvar PopupInner = function PopupInner(props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n visible = props.visible,\n style = props.style,\n children = props.children,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var childNode = children;\n\n if (React.Children.count(children) > 1) {\n childNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return React.createElement(\"div\", {\n ref: ref,\n className: classNames(className, !visible && \"\".concat(props.hiddenClassName)),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: style\n }, childNode);\n};\n\nvar RefPopupInner = React.forwardRef(PopupInner);\nRefPopupInner.displayName = 'PopupInner';\nexport default RefPopupInner;","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/* eslint-disable no-param-reassign */\nimport React, { Component } from 'react';\nimport raf from 'raf';\nimport Align from 'rc-align';\nimport { composeRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport RawCSSMotion from \"rc-animate/es/CSSMotion\";\nimport PopupInner from './PopupInner';\nimport { getMotion } from './utils/legacyUtil';\nvar CSSMotion = RawCSSMotion;\n\nfunction supportMotion(motion) {\n return motion && motion.motionName;\n}\n\nvar Popup = /*#__PURE__*/function (_Component) {\n _inherits(Popup, _Component);\n\n var _super = _createSuper(Popup);\n\n function Popup() {\n var _this;\n\n _classCallCheck(this, Popup);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n targetWidth: undefined,\n targetHeight: undefined,\n status: null,\n prevVisible: null,\n alignClassName: null\n };\n _this.popupRef = React.createRef();\n _this.alignRef = React.createRef();\n _this.nextFrameState = null;\n _this.nextFrameId = null;\n\n _this.onAlign = function (popupDomNode, align) {\n var status = _this.state.status;\n var _this$props = _this.props,\n getClassNameFromAlign = _this$props.getClassNameFromAlign,\n onAlign = _this$props.onAlign;\n var alignClassName = getClassNameFromAlign(align);\n\n if (status === 'align') {\n _this.setState({\n alignClassName: alignClassName,\n status: 'aligned'\n }, function () {\n _this.alignRef.current.forceAlign();\n });\n } else if (status === 'aligned') {\n _this.setState({\n alignClassName: alignClassName,\n status: 'afterAlign'\n });\n\n onAlign(popupDomNode, align);\n } else {\n _this.setState({\n alignClassName: alignClassName\n });\n }\n };\n\n _this.onMotionEnd = function () {\n var visible = _this.props.visible;\n\n _this.setState({\n status: visible ? 'AfterMotion' : 'stable'\n });\n };\n\n _this.setStateOnNextFrame = function (state) {\n _this.cancelFrameState();\n\n _this.nextFrameState = _objectSpread(_objectSpread({}, _this.nextFrameState), state);\n _this.nextFrameId = raf(function () {\n var submitState = _objectSpread({}, _this.nextFrameState);\n\n _this.nextFrameState = null;\n\n _this.setState(submitState);\n });\n };\n\n _this.getMotion = function () {\n return _objectSpread({}, getMotion(_this.props));\n }; // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n\n _this.getAlignTarget = function () {\n var _this$props2 = _this.props,\n point = _this$props2.point,\n getRootDomNode = _this$props2.getRootDomNode;\n\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n };\n\n _this.cancelFrameState = function () {\n raf.cancel(_this.nextFrameId);\n };\n\n _this.renderPopupElement = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n targetHeight = _this$state.targetHeight,\n targetWidth = _this$state.targetWidth,\n alignClassName = _this$state.alignClassName;\n var _this$props3 = _this.props,\n prefixCls = _this$props3.prefixCls,\n className = _this$props3.className,\n style = _this$props3.style,\n stretch = _this$props3.stretch,\n visible = _this$props3.visible,\n align = _this$props3.align,\n destroyPopupOnHide = _this$props3.destroyPopupOnHide,\n onMouseEnter = _this$props3.onMouseEnter,\n onMouseLeave = _this$props3.onMouseLeave,\n onMouseDown = _this$props3.onMouseDown,\n onTouchStart = _this$props3.onTouchStart,\n children = _this$props3.children;\n var mergedClassName = classNames(prefixCls, className, alignClassName);\n var hiddenClassName = \"\".concat(prefixCls, \"-hidden\"); // ================== Style ==================\n\n var sizeStyle = {};\n\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = targetHeight;\n }\n\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = targetWidth;\n }\n }\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, sizeStyle), _this.getZIndexStyle()), style), {}, {\n opacity: status === 'stable' || !visible ? undefined : 0\n }); // ================= Motions =================\n\n\n var mergedMotion = _this.getMotion();\n\n var mergedMotionVisible = visible;\n\n if (visible && status !== 'beforeMotion' && status !== 'motion' && status !== 'stable') {\n mergedMotion.motionAppear = false;\n mergedMotion.motionEnter = false;\n mergedMotion.motionLeave = false;\n }\n\n if (status === 'afterAlign' || status === 'beforeMotion') {\n mergedMotionVisible = false;\n } // ================== Align ==================\n\n\n var mergedAlignDisabled = !visible || status !== 'align' && status !== 'aligned' && status !== 'stable'; // ================== Popup ==================\n\n var mergedPopupVisible = true;\n\n if (status === 'stable') {\n mergedPopupVisible = visible;\n } // Only remove popup since mask may still need animation\n\n\n if (destroyPopupOnHide && !mergedPopupVisible) {\n return null;\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: mergedMotionVisible\n }, mergedMotion, {\n removeOnLeave: false,\n onEnterEnd: _this.onMotionEnd,\n onLeaveEnd: _this.onMotionEnd\n }), function (_ref, motionRef) {\n var motionStyle = _ref.style,\n motionClassName = _ref.className;\n return React.createElement(Align, {\n target: _this.getAlignTarget(),\n key: \"popup\",\n ref: _this.alignRef,\n monitorWindowResize: true,\n disabled: mergedAlignDisabled,\n align: align,\n onAlign: _this.onAlign\n }, React.createElement(PopupInner, {\n prefixCls: prefixCls,\n visible: mergedPopupVisible,\n hiddenClassName: hiddenClassName,\n className: classNames(mergedClassName, motionClassName),\n ref: composeRef(motionRef, _this.popupRef),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: _objectSpread(_objectSpread({}, mergedStyle), motionStyle)\n }, children));\n });\n };\n\n _this.renderMaskElement = function () {\n var _this$props4 = _this.props,\n mask = _this$props4.mask,\n maskMotion = _this$props4.maskMotion,\n maskTransitionName = _this$props4.maskTransitionName,\n maskAnimation = _this$props4.maskAnimation,\n prefixCls = _this$props4.prefixCls,\n visible = _this$props4.visible;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion && maskMotion.motionName) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return React.createElement(CSSMotion, Object.assign({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref2) {\n var className = _ref2.className;\n return React.createElement(\"div\", {\n style: _this.getZIndexStyle(),\n key: \"mask\",\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n };\n\n return _this;\n }\n\n _createClass(Popup, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var status = this.state.status;\n var _this$props5 = this.props,\n getRootDomNode = _this$props5.getRootDomNode,\n visible = _this$props5.visible,\n stretch = _this$props5.stretch; // If there is a pending state update, cancel it, a new one will be set if necessary\n\n this.cancelFrameState();\n\n if (visible && status !== 'stable') {\n switch (status) {\n case null:\n {\n this.setStateOnNextFrame({\n status: stretch ? 'measure' : 'align'\n });\n break;\n }\n\n case 'afterAlign':\n {\n this.setStateOnNextFrame({\n status: supportMotion(this.getMotion()) ? 'beforeMotion' : 'stable'\n });\n break;\n }\n\n case 'AfterMotion':\n {\n this.setStateOnNextFrame({\n status: 'stable'\n });\n break;\n }\n\n default:\n {\n // Go to next status\n var queue = ['measure', 'align', null, 'beforeMotion', 'motion'];\n var index = queue.indexOf(status);\n var nextStatus = queue[index + 1];\n\n if (index !== -1 && nextStatus) {\n this.setStateOnNextFrame({\n status: nextStatus\n });\n }\n }\n }\n } // Measure stretch size\n\n\n if (status === 'measure') {\n var $ele = getRootDomNode();\n\n if ($ele) {\n this.setStateOnNextFrame({\n targetHeight: $ele.offsetHeight,\n targetWidth: $ele.offsetWidth\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelFrameState();\n }\n }, {\n key: \"getZIndexStyle\",\n value: function getZIndexStyle() {\n var zIndex = this.props.zIndex;\n return {\n zIndex: zIndex\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(\"div\", null, this.renderMaskElement(), this.renderPopupElement());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var visible = _ref3.visible,\n props = _objectWithoutProperties(_ref3, [\"visible\"]);\n\n var prevVisible = _ref4.prevVisible,\n status = _ref4.status;\n var newState = {\n prevVisible: visible,\n status: status\n };\n var mergedMotion = getMotion(props);\n\n if (prevVisible === null && visible === false) {\n // Init render should always be stable\n newState.status = 'stable';\n } else if (visible !== prevVisible) {\n if (visible || supportMotion(mergedMotion) && ['motion', 'AfterMotion', 'stable'].includes(status)) {\n newState.status = null;\n } else {\n newState.status = 'stable';\n }\n\n if (visible) {\n newState.alignClassName = null;\n }\n }\n\n return newState;\n }\n }]);\n\n return Popup;\n}(Component);\n\nexport default Popup;\n/* eslint-enable */","import React from 'react';\nvar TriggerContext = React.createContext(null);\nexport default TriggerContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = React.createRef();\n _this.triggerRef = React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && _this.popupRef.current && _this.popupRef.current.popupRef.current && contains(_this.popupRef.current.popupRef.current, e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if (!contains(root, target) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return React.createElement(Popup, Object.assign({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.getContainer = function () {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var popupContainer = document.createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(_this.getRootDomNode()) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n // for test\n if (this.popupRef.current && this.popupRef.current.popupRef.current) {\n return this.popupRef.current.popupRef.current;\n }\n\n return null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props3 = this.props,\n action = _this$props3.action,\n showAction = _this$props3.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n hideAction = _this$props5.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n showAction = _this$props6.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n hideAction = _this$props7.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n showAction = _this$props8.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n hideAction = _this$props9.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible && this.popupRef.current && this.popupRef.current.alignRef.current) {\n this.popupRef.current.alignRef.current.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props10 = this.props,\n children = _this$props10.children,\n forceRender = _this$props10.forceRender,\n alignPoint = _this$props10.alignPoint,\n className = _this$props10.className,\n autoDestroy = _this$props10.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n };\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.15.6';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.10.3';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\tt[65535]= 'General';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\nvar general_fmt_num = (function make_general_fmt_num() {\nvar gnr1 = /\\.(\\d*[1-9])0+$/, gnr2 = /\\.0*$/, gnr4 = /\\.(\\d*[1-9])0+/, gnr5 = /\\.0*[Ee]/, gnr6 = /(E[+-])(\\d)$/;\nfunction gfn2(v) {\n\tvar w = (v<0?12:11);\n\tvar o = gfn5(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\nfunction gfn3(v) {\n\tvar o = v.toFixed(11).replace(gnr1,\".$1\");\n\tif(o.length > (v<0?12:11)) o = v.toPrecision(6);\n\treturn o;\n}\nfunction gfn4(o) {\n\tfor(var i = 0; i != o.length; ++i) if((o.charCodeAt(i) | 0x20) === 101) return o.replace(gnr4,\".$1\").replace(gnr5,\"E\").replace(\"e\",\"E\").replace(gnr6,\"$10$2\");\n\treturn o;\n}\nfunction gfn5(o) {\n\treturn o.indexOf(\".\") > -1 ? o.replace(gnr2,\"\").replace(gnr1,\".$1\") : o;\n}\nreturn function general_fmt_num(v) {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = gfn2(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = gfn3(v);\n\treturn gfn5(gfn4(o));\n};})();\nSSF._general_num = general_fmt_num;\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri() { return 0; }\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1;\n\t}\n\tif(outl > 0) return pad0(out, outl); else return \"\";\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 0;\n\t}\n\treturn Math.round((val-Math.floor(val))*Math.pow(10,d));\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) { if(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0)); return \"\"+Math.floor(val); }\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs]*\\]/;\nfunction fmt_is_date(fmt) {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while((++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && i < fmt.length - 2 && \"0#\".indexOf(fmt.charAt(i+2))>-1)) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase \"$\": out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '(': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('(', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n(?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j = 0, flen = 0;\n\tvar file = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nvar dnthresh = basedate.getTime() + (new Date().getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].toLowerCase();\n\t\tif(f == n || g == n) return zip.files[k[i]];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file, safe) {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i]);\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) CFB.utils.cfb_add(zip, path, content);\n\telse zip.file(path, content);\n}\n\nvar jszip;\n/*global JSZipSync:true */\nif(typeof JSZipSync !== 'undefined') jszip = JSZipSync;\nif(typeof exports !== 'undefined') {\n\tif(typeof module !== 'undefined' && module.exports) {\n\t\tif(typeof jszip === 'undefined') jszip = require('./jszip.js');\n\t}\n}\n\nfunction zip_new() {\n\tif(!jszip) return CFB.utils.cfb_new();\n\treturn new jszip();\n}\n\nfunction zip_read(d, o) {\n\tvar zip;\n\tif(jszip) switch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\telse switch(o.type) {\n\t\tcase \"base64\": zip = CFB.read(d, { type: \"base64\" }); break;\n\t\tcase \"binary\": zip = CFB.read(d, { type: \"binary\" }); break;\n\t\tcase \"buffer\": case \"array\": zip = CFB.read(d, { type: \"buffer\" }); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn zip;\n}\n\nfunction resolve_path(path, base) {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s?[\\/\\?]?>/g;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data, opts) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tvar res = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s) {\n\tswitch(typeof s) {\n\t\tcase 'string': return writextag('vt:lpwstr', escapexml(s));\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar ___toBuffer = __toBuffer;\nvar __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar ___utf16le = __utf16le;\nvar __hexlify = function(b,s,l) { var ss=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar ___hexlify = __hexlify;\nvar __utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar ___utf8 = __utf8;\nvar __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = Buffer(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction decode_range(range) { var x =range.split(\":\").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(4+2*data.length); }\n\to.write_shift(4, data.length);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor(var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ich:0, ifnt:0}];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(15+4*str.t.length); }\n\to.write_shift(1,0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(23+4*str.t.length); }\n\to.write_shift(1,1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4,1);\n\twrite_StrRun({ich:0,ifnt:0}, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif(o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l+4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l+=4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2;\n\treturn fX100 ? (RK/100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif(o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif((data == (data | 0)) && (data >= -(1<<29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if((d100 == (d100 | 0)) && (d100 >= -(1<<29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif(fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({s: {}, e: {}});\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch(xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif(icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif(nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif(!o) o = new_buf(8);\n\tif(!color||color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif(color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if(color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif(nTS > 0) nTS *= 32767;\n\telse if(nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif(!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif(typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0,2),16));\n\t\to.write_shift(1, parseInt(rgb.slice(2,4),16));\n\t\to.write_shift(1, parseInt(rgb.slice(4,6),16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif(!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = {2:\"BITMAP\",3:\"METAFILEPICT\",8:\"DIB\",14:\"ENHMETAFILE\"};\n\tvar m = o.read_shift(4);\n\tswitch(m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)]||\"\";\n\t}\n\tif(m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(Object.prototype.hasOwnProperty.call(SpecialProperties, y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [XML_HEADER, RELS_ROOT];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = unescapexml(xml||\"\"); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k]), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, +v);\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j]||\"\");\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = (function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, B:180,\n0:176, 1:177, 2:178,\n3:179, 5:181, 6:182,\n7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && SSF.is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) { arr[R][C] = val; next_cell_format = null; }\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\" && str.charCodeAt(5) == 10) { sep = str.charAt(4); str = str.slice(6); }\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return null;\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) throw new Error(x);\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"<author>\" + a + \"</author>\");\n\t}); });\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('</text></comment>');\n\t\t});\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif(sname.indexOf(\" \") > -1) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = data.codeName;\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = escapexml(cname);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCountpassword\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && cell.f === undefined || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ >]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=_xlfn(unescapexml(utf8read(cref[1])));\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, _xlfn(unescapexml(utf8read(cref[1]))), tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!opts.sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = y.codeName;\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_wb_xml(wb) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews */\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml) : cell.r;\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>!\\/:]*:|)([^\\s?>:\\/]+)[^>]*>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'Data':\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==\"Comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'Cell':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Row':\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Worksheet': /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Table':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Style':\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'NumberFormat':\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'Column':\n\t\t\tif(state[state.length-1][0] !== 'Table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'NamedRange':\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'NamedCell': break;\n\t\tcase 'B': break;\n\t\tcase 'I': break;\n\t\tcase 'U': break;\n\t\tcase 'S': break;\n\t\tcase 'Sub': break;\n\t\tcase 'Sup': break;\n\t\tcase 'Span': break;\n\t\tcase 'Alignment':\n\t\t\tbreak;\n\t\tcase 'Borders': break;\n\t\tcase 'Border': break;\n\t\tcase 'Font':\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Interior':\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'Protection': break;\n\n\t\tcase 'Author':\n\t\tcase 'Title':\n\t\tcase 'Description':\n\t\tcase 'Created':\n\t\tcase 'Keywords':\n\t\tcase 'Subject':\n\t\tcase 'Category':\n\t\tcase 'Company':\n\t\tcase 'LastAuthor':\n\t\tcase 'LastSaved':\n\t\tcase 'LastPrinted':\n\t\tcase 'Version':\n\t\tcase 'Revision':\n\t\tcase 'TotalTime':\n\t\tcase 'HyperlinkBase':\n\t\tcase 'Manager':\n\t\tcase 'ContentStatus':\n\t\tcase 'Identifier':\n\t\tcase 'Language':\n\t\tcase 'AppName':\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Paragraphs': break;\n\n\t\tcase 'Styles':\n\t\tcase 'Workbook':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'Comment':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'AutoFilter':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Name': break;\n\n\t\tcase 'DataValidation':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'ComponentOptions':\n\t\tcase 'DocumentProperties':\n\t\tcase 'CustomDocumentProperties':\n\t\tcase 'OfficeDocumentSettings':\n\t\tcase 'PivotTable':\n\t\tcase 'PivotCache':\n\t\tcase 'Names':\n\t\tcase 'MapInfo':\n\t\tcase 'PageBreaks':\n\t\tcase 'QueryTable':\n\t\tcase 'Sorting':\n\t\tcase 'Schema':\n\t\tcase 'data':\n\t\tcase 'ConditionalFormatting':\n\t\tcase 'SmartTagType':\n\t\tcase 'SmartTags':\n\t\tcase 'ExcelWorkbook':\n\t\tcase 'WorkbookOptions':\n\t\tcase 'WorksheetOptions':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"UOF\") return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'OfficeDocumentSettings': switch(Rn[3]) {\n\t\t\t\t\tcase 'AllowPNG': break;\n\t\t\t\t\tcase 'RemovePersonalInformation': break;\n\t\t\t\t\tcase 'DownloadComponents': break;\n\t\t\t\t\tcase 'LocationOfComponents': break;\n\t\t\t\t\tcase 'Colors': break;\n\t\t\t\t\tcase 'Color': break;\n\t\t\t\t\tcase 'Index': break;\n\t\t\t\t\tcase 'RGB': break;\n\t\t\t\t\tcase 'PixelsPerInch': break; // TODO: set PPI\n\t\t\t\t\tcase 'TargetScreenSize': break;\n\t\t\t\t\tcase 'ReadOnlyRecommended': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'ComponentOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Toolbar': break;\n\t\t\t\t\tcase 'HideOfficeLogo': break;\n\t\t\t\t\tcase 'SpreadsheetAutoFit': break;\n\t\t\t\t\tcase 'Label': break;\n\t\t\t\t\tcase 'Caption': break;\n\t\t\t\t\tcase 'MaxHeight': break;\n\t\t\t\t\tcase 'MaxWidth': break;\n\t\t\t\t\tcase 'NextSheetNumber': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'ExcelWorkbook': switch(Rn[3]) {\n\t\t\t\t\tcase 'Date1904':\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'WindowHeight': break;\n\t\t\t\t\tcase 'WindowWidth': break;\n\t\t\t\t\tcase 'WindowTopX': break;\n\t\t\t\t\tcase 'WindowTopY': break;\n\t\t\t\t\tcase 'TabRatio': break;\n\t\t\t\t\tcase 'ProtectStructure': break;\n\t\t\t\t\tcase 'ProtectWindow': break;\n\t\t\t\t\tcase 'ProtectWindows': break;\n\t\t\t\t\tcase 'ActiveSheet': break;\n\t\t\t\t\tcase 'DisplayInkNotes': break;\n\t\t\t\t\tcase 'FirstVisibleSheet': break;\n\t\t\t\t\tcase 'SupBook': break;\n\t\t\t\t\tcase 'SheetName': break;\n\t\t\t\t\tcase 'SheetIndex': break;\n\t\t\t\t\tcase 'SheetIndexFirst': break;\n\t\t\t\t\tcase 'SheetIndexLast': break;\n\t\t\t\t\tcase 'Dll': break;\n\t\t\t\t\tcase 'AcceptLabelsInFormulas': break;\n\t\t\t\t\tcase 'DoNotSaveLinkValues': break;\n\t\t\t\t\tcase 'Iteration': break;\n\t\t\t\t\tcase 'MaxIterations': break;\n\t\t\t\t\tcase 'MaxChange': break;\n\t\t\t\t\tcase 'Path': break;\n\t\t\t\t\tcase 'Xct': break;\n\t\t\t\t\tcase 'Count': break;\n\t\t\t\t\tcase 'SelectedSheets': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tcase 'Uncalced': break;\n\t\t\t\t\tcase 'StartupPrompt': break;\n\t\t\t\t\tcase 'Crn': break;\n\t\t\t\t\tcase 'ExternName': break;\n\t\t\t\t\tcase 'Formula': break;\n\t\t\t\t\tcase 'ColFirst': break;\n\t\t\t\t\tcase 'ColLast': break;\n\t\t\t\t\tcase 'WantAdvise': break;\n\t\t\t\t\tcase 'Boolean': break;\n\t\t\t\t\tcase 'Error': break;\n\t\t\t\t\tcase 'Text': break;\n\t\t\t\t\tcase 'OLE': break;\n\t\t\t\t\tcase 'NoAutoRecover': break;\n\t\t\t\t\tcase 'PublishObjects': break;\n\t\t\t\t\tcase 'DoNotCalculateBeforeSave': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'RefModeR1C1': break;\n\t\t\t\t\tcase 'EmbedSaveSmartTags': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'WorkbookOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'OWCVersion': break;\n\t\t\t\t\tcase 'Height': break;\n\t\t\t\t\tcase 'Width': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'WorksheetOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Visible':\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Header':\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Footer':\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'PageMargins':\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'DisplayRightToLeft':\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': break;\n\n\t\t\t\t\tcase 'SplitHorizontal':\n\t\t\t\t\tcase 'SplitVertical':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'DoNotDisplayGridlines':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': break;\n\n\t\t\t\t\tcase 'Unsynced': break;\n\t\t\t\t\tcase 'Print': break;\n\t\t\t\t\tcase 'Panes': break;\n\t\t\t\t\tcase 'Scale': break;\n\t\t\t\t\tcase 'Pane': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Layout': break;\n\t\t\t\t\tcase 'PageSetup': break;\n\t\t\t\t\tcase 'Selected': break;\n\t\t\t\t\tcase 'ProtectObjects': break;\n\t\t\t\t\tcase 'EnableSelection': break;\n\t\t\t\t\tcase 'ProtectScenarios': break;\n\t\t\t\t\tcase 'ValidPrinterInfo': break;\n\t\t\t\t\tcase 'HorizontalResolution': break;\n\t\t\t\t\tcase 'VerticalResolution': break;\n\t\t\t\t\tcase 'NumberofCopies': break;\n\t\t\t\t\tcase 'ActiveRow': break;\n\t\t\t\t\tcase 'ActiveCol': break;\n\t\t\t\t\tcase 'ActivePane': break;\n\t\t\t\t\tcase 'TopRowVisible': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'FitToPage': break;\n\t\t\t\t\tcase 'RangeSelection': break;\n\t\t\t\t\tcase 'PaperSizeIndex': break;\n\t\t\t\t\tcase 'PageLayoutZoom': break;\n\t\t\t\t\tcase 'PageBreakZoom': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'FitWidth': break;\n\t\t\t\t\tcase 'FitHeight': break;\n\t\t\t\t\tcase 'CommentsLayout': break;\n\t\t\t\t\tcase 'Zoom': break;\n\t\t\t\t\tcase 'LeftToRight': break;\n\t\t\t\t\tcase 'Gridlines': break;\n\t\t\t\t\tcase 'AllowSort': break;\n\t\t\t\t\tcase 'AllowFilter': break;\n\t\t\t\t\tcase 'AllowInsertRows': break;\n\t\t\t\t\tcase 'AllowDeleteRows': break;\n\t\t\t\t\tcase 'AllowInsertCols': break;\n\t\t\t\t\tcase 'AllowDeleteCols': break;\n\t\t\t\t\tcase 'AllowInsertHyperlinks': break;\n\t\t\t\t\tcase 'AllowFormatCells': break;\n\t\t\t\t\tcase 'AllowSizeCols': break;\n\t\t\t\t\tcase 'AllowSizeRows': break;\n\t\t\t\t\tcase 'NoSummaryRowsBelowDetail': break;\n\t\t\t\t\tcase 'TabColorIndex': break;\n\t\t\t\t\tcase 'DoNotDisplayHeadings': break;\n\t\t\t\t\tcase 'ShowPageLayoutZoom': break;\n\t\t\t\t\tcase 'NoSummaryColumnsRightDetail': break;\n\t\t\t\t\tcase 'BlackAndWhite': break;\n\t\t\t\t\tcase 'DoNotDisplayZeros': break;\n\t\t\t\t\tcase 'DisplayPageBreak': break;\n\t\t\t\t\tcase 'RowColHeadings': break;\n\t\t\t\t\tcase 'DoNotDisplayOutline': break;\n\t\t\t\t\tcase 'NoOrientation': break;\n\t\t\t\t\tcase 'AllowUsePivotTables': break;\n\t\t\t\t\tcase 'ZeroHeight': break;\n\t\t\t\t\tcase 'ViewableRange': break;\n\t\t\t\t\tcase 'Selection': break;\n\t\t\t\t\tcase 'ProtectContents': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'PivotTable': case 'PivotCache': switch(Rn[3]) {\n\t\t\t\t\tcase 'ImmediateItemsOnDrop': break;\n\t\t\t\t\tcase 'ShowPageMultipleItemLabel': break;\n\t\t\t\t\tcase 'CompactRowIndent': break;\n\t\t\t\t\tcase 'Location': break;\n\t\t\t\t\tcase 'PivotField': break;\n\t\t\t\t\tcase 'Orientation': break;\n\t\t\t\t\tcase 'LayoutForm': break;\n\t\t\t\t\tcase 'LayoutSubtotalLocation': break;\n\t\t\t\t\tcase 'LayoutCompactRow': break;\n\t\t\t\t\tcase 'Position': break;\n\t\t\t\t\tcase 'PivotItem': break;\n\t\t\t\t\tcase 'DataType': break;\n\t\t\t\t\tcase 'DataField': break;\n\t\t\t\t\tcase 'SourceName': break;\n\t\t\t\t\tcase 'ParentField': break;\n\t\t\t\t\tcase 'PTLineItems': break;\n\t\t\t\t\tcase 'PTLineItem': break;\n\t\t\t\t\tcase 'CountOfSameItems': break;\n\t\t\t\t\tcase 'Item': break;\n\t\t\t\t\tcase 'ItemType': break;\n\t\t\t\t\tcase 'PTSource': break;\n\t\t\t\t\tcase 'CacheIndex': break;\n\t\t\t\t\tcase 'ConsolidationReference': break;\n\t\t\t\t\tcase 'FileName': break;\n\t\t\t\t\tcase 'Reference': break;\n\t\t\t\t\tcase 'NoColumnGrand': break;\n\t\t\t\t\tcase 'NoRowGrand': break;\n\t\t\t\t\tcase 'BlankLineAfterItems': break;\n\t\t\t\t\tcase 'Hidden': break;\n\t\t\t\t\tcase 'Subtotal': break;\n\t\t\t\t\tcase 'BaseField': break;\n\t\t\t\t\tcase 'MapChildItems': break;\n\t\t\t\t\tcase 'Function': break;\n\t\t\t\t\tcase 'RefreshOnFileOpen': break;\n\t\t\t\t\tcase 'PrintSetTitles': break;\n\t\t\t\t\tcase 'MergeLabels': break;\n\t\t\t\t\tcase 'DefaultVersion': break;\n\t\t\t\t\tcase 'RefreshName': break;\n\t\t\t\t\tcase 'RefreshDate': break;\n\t\t\t\t\tcase 'RefreshDateCopy': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tcase 'VersionLastUpdate': break;\n\t\t\t\t\tcase 'VersionUpdateableMin': break;\n\t\t\t\t\tcase 'VersionRefreshableMin': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'PageBreaks': switch(Rn[3]) {\n\t\t\t\t\tcase 'ColBreaks': break;\n\t\t\t\t\tcase 'ColBreak': break;\n\t\t\t\t\tcase 'RowBreaks': break;\n\t\t\t\t\tcase 'RowBreak': break;\n\t\t\t\t\tcase 'ColStart': break;\n\t\t\t\t\tcase 'ColEnd': break;\n\t\t\t\t\tcase 'RowEnd': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'AutoFilter': switch(Rn[3]) {\n\t\t\t\t\tcase 'AutoFilterColumn': break;\n\t\t\t\t\tcase 'AutoFilterCondition': break;\n\t\t\t\t\tcase 'AutoFilterAnd': break;\n\t\t\t\t\tcase 'AutoFilterOr': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'QueryTable': switch(Rn[3]) {\n\t\t\t\t\tcase 'Id': break;\n\t\t\t\t\tcase 'AutoFormatFont': break;\n\t\t\t\t\tcase 'AutoFormatPattern': break;\n\t\t\t\t\tcase 'QuerySource': break;\n\t\t\t\t\tcase 'QueryType': break;\n\t\t\t\t\tcase 'EnableRedirections': break;\n\t\t\t\t\tcase 'RefreshedInXl9': break;\n\t\t\t\t\tcase 'URLString': break;\n\t\t\t\t\tcase 'HTMLTables': break;\n\t\t\t\t\tcase 'Connection': break;\n\t\t\t\t\tcase 'CommandText': break;\n\t\t\t\t\tcase 'RefreshInfo': break;\n\t\t\t\t\tcase 'NoTitles': break;\n\t\t\t\t\tcase 'NextId': break;\n\t\t\t\t\tcase 'ColumnInfo': break;\n\t\t\t\t\tcase 'OverwriteCells': break;\n\t\t\t\t\tcase 'DoNotPromptForFile': break;\n\t\t\t\t\tcase 'TextWizardSettings': break;\n\t\t\t\t\tcase 'Source': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Decimal': break;\n\t\t\t\t\tcase 'ThousandSeparator': break;\n\t\t\t\t\tcase 'TrailingMinusNumbers': break;\n\t\t\t\t\tcase 'FormatSettings': break;\n\t\t\t\t\tcase 'FieldType': break;\n\t\t\t\t\tcase 'Delimiters': break;\n\t\t\t\t\tcase 'Tab': break;\n\t\t\t\t\tcase 'Comma': break;\n\t\t\t\t\tcase 'AutoFormatName': break;\n\t\t\t\t\tcase 'VersionLastEdit': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'DataValidation':\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Sorting':\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) {\n\t\t\t\t\tcase 'Map': break;\n\t\t\t\t\tcase 'Entry': break;\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'XPath': break;\n\t\t\t\t\tcase 'Field': break;\n\t\t\t\t\tcase 'XSDType': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'Aggregate': break;\n\t\t\t\t\tcase 'ElementType': break;\n\t\t\t\t\tcase 'AttributeType': break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema':\n\t\t\t\t\tcase 'element':\n\t\t\t\t\tcase 'complexType':\n\t\t\t\t\tcase 'datatype':\n\t\t\t\t\tcase 'all':\n\t\t\t\t\tcase 'attribute':\n\t\t\t\t\tcase 'extends': break;\n\n\t\t\t\t\tcase 'row': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'SmartTags': break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]==='CustomDocumentProperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, Rn[3], cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\n//function write_biff_continue(ba, type, payload, length) {\n//\tvar len = length || (payload||[]).length || 0;\n//\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n//\tvar t = +type || +XLSRE[type];\n//\tif(isNaN(t)) return;\n//\tvar parts = payload.parts || [], sidx = 0;\n//\tvar i = 0, w = 0;\n//\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n//\tvar o = ba.next(4);\n//\to.write_shift(2, t);\n//\to.write_shift(2, w);\n//\tba.push(payload.slice(i, i + w));\n//\ti += w;\n//\twhile(i < len) {\n//\t\to = ba.next(4);\n//\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n//\t\tw = 0;\n//\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n//\t\to.write_shift(2, w);\n//\t\tba.push(payload.slice(i, i+w)); i+= w;\n//\t}\n//}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, 0x0009, write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, \"Font\", write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, \"Format\", write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, \"FeatHdr\", o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, \"Feat\", o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, \"XF\", write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, \"XF\", write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, \"HLink\", write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, \"HLinkTooltip\", write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_biff8_cell(ba, cell, R, C, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, \"Formula\", write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, \"Number\", write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, \"Label\", write_Label(R, C, cell.v, os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheet = ((_WB.Sheets||[])[idx]||{});\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref, rr = \"\", cols = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8 && _WB.Views) write_biff_rec(ba, \"Window2\", write_Window2(_WB.Views[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\t/* BIFF8: [SST *Continue] ExtSST */\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(/<!--.*?-->/g, \"\");\n\t\tvar mtch = str.match(/<table/i);\n\t\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\t\tvar m = cell, cc = 0;\n\t\t\t\t/* TODO: parse styles etc */\n\t\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"<tr>\";\n\t\treturn preamble + oo.join(\"\") + \"</tr>\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n\t}\n\tvar _BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"\" + footer);\n\t\treturn out.join(\"\");\n\t}\n\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar ws = opts.dense ? ([]) : ({});\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = opts.sheetRows || 10000000;\n\tvar range = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar merges = [], midx = 0;\n\tvar rowinfo = [];\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = htmldecode(elt.innerHTML);\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C && m.s.r <= R && R <= m.e.r) { C = m.e.c+1; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif((RS = +elt.getAttribute(\"rowspan\"))>0 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({c:C, r:R})] = o;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = merges;\n\tif(rowinfo.length) ws['!rows'] = rowinfo;\n\trange.e.r = R - 1;\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\t\t\tcase 'master-styles': break; // TODO: \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = fix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\n\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,24)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: return read_cfb(CFB.read(d, o), o);\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+format_cell(val, null, o);\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define('xlsx', function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n inlineCollapsed: false\n});\nexport default MenuContext;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport * as React from 'react';\nimport { SubMenu as RcSubMenu } from 'rc-menu';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport MenuContext from './MenuContext';\nimport { isValidElement } from '../_util/reactNode';\n\nvar SubMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n var _super = _createSuper(SubMenu);\n\n function SubMenu() {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n _this.subMenu.onKeyDown(e);\n };\n\n _this.saveSubMenu = function (subMenu) {\n _this.subMenu = subMenu;\n };\n\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"renderTitle\",\n value: function renderTitle(inlineCollapsed) {\n var _this$props = this.props,\n icon = _this$props.icon,\n title = _this$props.title,\n level = _this$props.level,\n rootPrefixCls = _this$props.rootPrefixCls;\n\n if (!icon) {\n return inlineCollapsed && level === 1 && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(rootPrefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0)) : title;\n } // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n\n\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n return /*#__PURE__*/React.createElement(React.Fragment, null, icon, titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", null, title));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n rootPrefixCls = _this$props2.rootPrefixCls,\n popupClassName = _this$props2.popupClassName;\n return /*#__PURE__*/React.createElement(MenuContext.Consumer, null, function (_ref) {\n var inlineCollapsed = _ref.inlineCollapsed,\n antdMenuTheme = _ref.antdMenuTheme;\n return /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(_this2.props, ['icon']), {\n title: _this2.renderTitle(inlineCollapsed),\n ref: _this2.saveSubMenu,\n popupClassName: classNames(rootPrefixCls, \"\".concat(rootPrefixCls, \"-\").concat(antdMenuTheme), popupClassName)\n }));\n });\n }\n }]);\n\n return SubMenu;\n}(React.Component);\n\nSubMenu.contextType = MenuContext; // fix issue:https://github.com/ant-design/ant-design/issues/8666\n\nSubMenu.isSubMenu = 1;\nexport default SubMenu;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport classNames from 'classnames';\nimport MenuContext from './MenuContext';\nimport Tooltip from '../tooltip';\nimport { SiderContext } from '../layout/Sider';\nimport { isValidElement } from '../_util/reactNode';\n\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n var _super = _createSuper(MenuItem);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n _this.menuItem.onKeyDown(e);\n };\n\n _this.saveMenuItem = function (menuItem) {\n _this.menuItem = menuItem;\n };\n\n _this.renderItem = function (_ref) {\n var siderCollapsed = _ref.siderCollapsed;\n var _this$props = _this.props,\n level = _this$props.level,\n className = _this$props.className,\n children = _this$props.children,\n rootPrefixCls = _this$props.rootPrefixCls;\n\n var _a = _this.props,\n title = _a.title,\n icon = _a.icon,\n danger = _a.danger,\n rest = __rest(_a, [\"title\", \"icon\", \"danger\"]);\n\n return /*#__PURE__*/React.createElement(MenuContext.Consumer, null, function (_ref2) {\n var _classNames;\n\n var inlineCollapsed = _ref2.inlineCollapsed,\n direction = _ref2.direction;\n var tooltipTitle = title;\n\n if (typeof title === 'undefined') {\n tooltipTitle = level === 1 ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n\n var tooltipProps = {\n title: tooltipTitle\n };\n\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null; // Reset `visible` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n\n tooltipProps.visible = false;\n }\n\n var childrenLength = toArray(children).length;\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(rootPrefixCls, \"-inline-collapsed-tooltip\")\n }), /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames(className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(rootPrefixCls, \"-item-danger\"), danger), _defineProperty(_classNames, \"\".concat(rootPrefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), _classNames)),\n title: title,\n ref: _this.saveMenuItem\n }), icon, _this.renderItemChildren(inlineCollapsed)));\n });\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children,\n level = _this$props2.level,\n rootPrefixCls = _this$props2.rootPrefixCls; // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && level === 1 && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(rootPrefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n\n return children;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", null, children);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n\n return MenuItem;\n}(React.Component);\n\nexport { MenuItem as default };\nMenuItem.isMenuItem = true;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport * as React from 'react';\nimport RcMenu, { Divider, ItemGroup } from 'rc-menu';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport SubMenu from './SubMenu';\nimport Item from './MenuItem';\nimport { ConfigConsumer } from '../config-provider';\nimport devWarning from '../_util/devWarning';\nimport { SiderContext } from '../layout/Sider';\nimport raf from '../_util/raf';\nimport collapseMotion from '../_util/motion';\nimport MenuContext from './MenuContext';\n\nvar InternalMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalMenu, _React$Component);\n\n var _super = _createSuper(InternalMenu);\n\n function InternalMenu(props) {\n var _this;\n\n _classCallCheck(this, InternalMenu);\n\n _this = _super.call(this, props); // Restore vertical mode when menu is collapsed responsively when mounted\n // https://github.com/ant-design/ant-design/issues/13104\n // TODO: not a perfect solution, looking a new way to avoid setting switchingModeFromInline in this situation\n\n _this.handleMouseEnter = function (e) {\n _this.restoreModeVerticalFromInline();\n\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter(e);\n }\n };\n\n _this.handleTransitionEnd = function (e) {\n // when inlineCollapsed menu width animation finished\n // https://github.com/ant-design/ant-design/issues/12864\n var widthCollapsed = e.propertyName === 'width' && e.target === e.currentTarget; // Fix SVGElement e.target.className.indexOf is not a function\n // https://github.com/ant-design/ant-design/issues/15699\n\n var className = e.target.className; // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during an animation.\n\n var classNameValue = Object.prototype.toString.call(className) === '[object SVGAnimatedString]' ? className.animVal : className; // Fix for , the width transition won't trigger when menu is collapsed\n // https://github.com/ant-design/ant-design-pro/issues/2783\n\n var iconScaled = e.propertyName === 'font-size' && classNameValue.indexOf('anticon') >= 0;\n\n if (widthCollapsed || iconScaled) {\n _this.restoreModeVerticalFromInline();\n }\n };\n\n _this.handleClick = function (e) {\n _this.handleOpenChange([]);\n\n var onClick = _this.props.onClick;\n\n if (onClick) {\n onClick(e);\n }\n };\n\n _this.handleOpenChange = function (openKeys) {\n _this.setOpenKeys(openKeys);\n\n var onOpenChange = _this.props.onOpenChange;\n\n if (onOpenChange) {\n onOpenChange(openKeys);\n }\n };\n\n _this.renderMenu = function (_ref) {\n var getPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n className = _this$props.className,\n theme = _this$props.theme,\n collapsedWidth = _this$props.collapsedWidth;\n var openKeys = _this.state.openKeys;\n var passProps = omit(_this.props, ['collapsedWidth', 'siderCollapsed']);\n\n var menuMode = _this.getRealMenuMode();\n\n var menuOpenMotion = _this.getOpenMotionProps(menuMode);\n\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var menuClassName = classNames(className, \"\".concat(prefixCls, \"-\").concat(theme), _defineProperty({}, \"\".concat(prefixCls, \"-inline-collapsed\"), _this.getInlineCollapsed()));\n\n var menuProps = _extends({\n openKeys: openKeys,\n onOpenChange: _this.handleOpenChange,\n className: menuClassName,\n mode: menuMode\n }, menuOpenMotion);\n\n if (menuMode !== 'inline') {\n // closing vertical popup submenu after click it\n menuProps.onClick = _this.handleClick;\n } // https://github.com/ant-design/ant-design/issues/8587\n\n\n var hideMenu = _this.getInlineCollapsed() && (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px');\n\n if (hideMenu) {\n menuProps.openKeys = [];\n }\n\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: {\n inlineCollapsed: _this.getInlineCollapsed() || false,\n antdMenuTheme: theme,\n direction: direction\n }\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer\n }, passProps, menuProps, {\n prefixCls: prefixCls,\n onTransitionEnd: _this.handleTransitionEnd,\n onMouseEnter: _this.handleMouseEnter,\n direction: direction\n })));\n };\n\n devWarning(!('inlineCollapsed' in props && props.mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.');\n devWarning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.');\n var openKeys;\n\n if ('openKeys' in props) {\n openKeys = props.openKeys;\n } else if ('defaultOpenKeys' in props) {\n openKeys = props.defaultOpenKeys;\n }\n\n _this.state = {\n openKeys: openKeys || [],\n switchingModeFromInline: false,\n inlineOpenKeys: [],\n prevProps: props\n };\n return _this;\n }\n\n _createClass(InternalMenu, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n raf.cancel(this.mountRafId);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props2 = this.props,\n siderCollapsed = _this$props2.siderCollapsed,\n inlineCollapsed = _this$props2.inlineCollapsed,\n onOpenChange = _this$props2.onOpenChange;\n\n if (!prevProps.inlineCollapsed && inlineCollapsed || !prevProps.siderCollapsed && siderCollapsed) {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange([]);\n }\n }\n }, {\n key: \"setOpenKeys\",\n value: function setOpenKeys(openKeys) {\n if (!('openKeys' in this.props)) {\n this.setState({\n openKeys: openKeys\n });\n }\n }\n }, {\n key: \"getRealMenuMode\",\n value: function getRealMenuMode() {\n var mode = this.props.mode;\n var switchingModeFromInline = this.state.switchingModeFromInline;\n var inlineCollapsed = this.getInlineCollapsed();\n\n if (switchingModeFromInline && inlineCollapsed) {\n return 'inline';\n }\n\n return inlineCollapsed ? 'vertical' : mode;\n }\n }, {\n key: \"getInlineCollapsed\",\n value: function getInlineCollapsed() {\n var _this$props3 = this.props,\n inlineCollapsed = _this$props3.inlineCollapsed,\n siderCollapsed = _this$props3.siderCollapsed;\n\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n\n return inlineCollapsed;\n }\n }, {\n key: \"getOpenMotionProps\",\n value: function getOpenMotionProps(menuMode) {\n var _this$props4 = this.props,\n openTransitionName = _this$props4.openTransitionName,\n openAnimation = _this$props4.openAnimation,\n motion = _this$props4.motion;\n var switchingModeFromInline = this.state.switchingModeFromInline; // Provides by user\n\n if (motion) {\n return {\n motion: motion\n };\n }\n\n if (openAnimation) {\n devWarning(typeof openAnimation === 'string', 'Menu', '`openAnimation` do not support object. Please use `motion` instead.');\n return {\n openAnimation: openAnimation\n };\n }\n\n if (openTransitionName) {\n return {\n openTransitionName: openTransitionName\n };\n } // Default logic\n\n\n if (menuMode === 'horizontal') {\n return {\n motion: {\n motionName: 'slide-up'\n }\n };\n }\n\n if (menuMode === 'inline') {\n return {\n motion: collapseMotion\n };\n } // When mode switch from inline\n // submenu should hide without animation\n\n\n return {\n motion: {\n motionName: switchingModeFromInline ? '' : 'zoom-big'\n }\n };\n }\n }, {\n key: \"restoreModeVerticalFromInline\",\n value: function restoreModeVerticalFromInline() {\n var switchingModeFromInline = this.state.switchingModeFromInline;\n\n if (switchingModeFromInline) {\n this.setState({\n switchingModeFromInline: false\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderMenu);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: nextProps\n };\n\n if (prevProps.mode === 'inline' && nextProps.mode !== 'inline') {\n newState.switchingModeFromInline = true;\n }\n\n if ('openKeys' in nextProps) {\n newState.openKeys = nextProps.openKeys;\n } else {\n // [Legacy] Old code will return after `openKeys` changed.\n // Not sure the reason, we should keep this logic still.\n if (nextProps.inlineCollapsed && !prevProps.inlineCollapsed || nextProps.siderCollapsed && !prevProps.siderCollapsed) {\n newState.switchingModeFromInline = true;\n newState.inlineOpenKeys = prevState.openKeys;\n newState.openKeys = [];\n }\n\n if (!nextProps.inlineCollapsed && prevProps.inlineCollapsed || !nextProps.siderCollapsed && prevProps.siderCollapsed) {\n newState.openKeys = prevState.inlineOpenKeys;\n newState.inlineOpenKeys = [];\n }\n }\n\n return newState;\n }\n }]);\n\n return InternalMenu;\n}(React.Component);\n\nInternalMenu.defaultProps = {\n className: '',\n theme: 'light',\n focusable: false\n}; // We should keep this as ref-able\n\nvar Menu = /*#__PURE__*/function (_React$Component2) {\n _inherits(Menu, _React$Component2);\n\n var _super2 = _createSuper(Menu);\n\n function Menu() {\n _classCallCheck(this, Menu);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({}, _this2.props, context));\n });\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nexport { Menu as default };\nMenu.Divider = Divider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;","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 canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\n\nvar vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {});\n\nvar style = {};\n\nif (canUseDOM) {\n style = document.createElement('div').style;\n}\n\nvar prefixedEventNames = {};\n\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\n\nexport var animationEndName = getVendorPrefixedEventName('animationend');\nexport var transitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(animationEndName && transitionEndName);\n\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (typeof transitionName === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return transitionName + '-' + transitionType;\n}","/**\r\n * [[AMElement]] represents any SVG element and related functionality.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\nimport { IDisposer } from \"../utils/Disposer\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport * as $dom from \"../utils/DOM\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines available SVG attributes.\r\n */\r\nexport type SVGAttribute =\r\n\t\"accent-height\" | \"accumulate\" | \"additive\" | \"alignment-baseline\" | \"allowReorder\" | \"alphabetic\" | \"amplitude\" | \"arabic-form\" | \"aria-checked\" | \"aria-describedby\" | \"aria-hidden\" | \"aria-label\" | \"aria-labelledby\" | \"aria-live\" | \"aria-controls\" | \"aria-orientation\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"ascent\" | \"attributeName\" | \"attributeType\" | \"autoReverse\" | \"azimuth\" | \"baseFrequency\" | \"baseline-shift\" | \"baseProfile\" | \"bbox\" | \"begin\" | \"bias\" | \"by\" | \"calcMode\" | \"cap-height\" | \"class\" | \"clip\" | \"clipPathUnits\" | \"clip-path\" | \"clip-rule\" | \"color\" | \"color-interpolation\" | \"color-interpolation-filters\" | \"color-profile\" | \"color-rendering\" | \"contentScriptType\" | \"contentStyleType\" | \"cursor\" | \"cx\" | \"cy\" | \"d\" | \"decelerate\" | \"descent\" | \"diffuseConstant\" | \"direction\" | \"display\" | \"divisor\" | \"dominant-baseline\" | \"dur\" | \"dx\" | \"dy\" | \"edgeMode\" | \"elevation\" | \"enable-background\" | \"end\" | \"exponent\" | \"externalResourcesRequired\" | \"fill\" | \"fill-opacity\" | \"fill-rule\" | \"filter\" | \"filterRes\" | \"filterUnits\" | \"flood-color\" | \"flood-opacity\" | \"focusable\" | \"font-family\" | \"font-size\" | \"font-size-adjust\" | \"font-stretch\" | \"font-style\" | \"font-variant\" | \"font-weight\" | \"format\" | \"from\" | \"fx\" | \"fy\" | \"g1\" | \"g2\" | \"glyph-name\" | \"glyph-orientation-horizontal\" | \"glyph-orientation-vertical\" | \"glyphRef\" | \"gradientTransform\" | \"gradientUnits\" | \"hanging\" | \"height\" | \"href\" | \"horiz-adv-x\" | \"horiz-origin-x\" | \"id\" | \"ideographic\" | \"image-rendering\" | \"in\" | \"in2\" | \"intercept\" | \"k\" | \"k1\" | \"k2\" | \"k3\" | \"k4\" | \"kernelMatrix\" | \"kernelUnitLength\" | \"kerning\" | \"keyPoints\" | \"keySplines\" | \"keyTimes\" | \"lang\" | \"lengthAdjust\" | \"letter-spacing\" | \"lighting-color\" | \"limitingConeAngle\" | \"local\" | \"marker-end\" | \"marker-mid\" | \"marker-start\" | \"markerHeight\" | \"markerUnits\" | \"markerWidth\" | \"mask\" | \"maskContentUnits\" | \"maskUnits\" | \"mathematical\" | \"max\" | \"media\" | \"method\" | \"min\" | \"mode\" | \"name\" | \"numOctaves\" | \"offset\" | \"onabort\" | \"onactivate\" | \"onbegin\" | \"onclick\" | \"onend\" | \"onerror\" | \"onfocusin\" | \"onfocusout\" | \"onload\" | \"onmousedown\" | \"onmousemove\" | \"onmouseout\" | \"onmouseover\" | \"onmouseup\" | \"onrepeat\" | \"onresize\" | \"onscroll\" | \"onunload\" | \"onzoom\" | \"opacity\" | \"operator\" | \"order\" | \"orient\" | \"orientation\" | \"origin\" | \"overflow\" | \"overline-position\" | \"overline-thickness\" | \"panose-1\" | \"paint-order\" | \"pathLength\" | \"patternContentUnits\" | \"patternTransform\" | \"patternUnits\" | \"pointer-events\" | \"points\" | \"pointsAtX\" | \"pointsAtY\" | \"pointsAtZ\" | \"preserveAlpha\" | \"preserveAspectRatio\" | \"primitiveUnits\" | \"r\" | \"radius\" | \"refX\" | \"refY\" | \"rendering-intent\" | \"repeatCount\" | \"repeatDur\" | \"requiredExtensions\" | \"requiredFeatures\" | \"restart\" | \"result\" | \"role\" | \"rotate\" | \"rx\" | \"ry\" | \"scale\" | \"seed\" | \"shape-rendering\" | \"slope\" | \"spacing\" | \"specularConstant\" | \"specularExponent\" | \"speed\" | \"spreadMethod\" | \"startOffset\" | \"stdDeviation\" | \"stemh\" | \"stemv\" | \"stitchTiles\" | \"stop-color\" | \"stop-opacity\" | \"strikethrough-position\" | \"strikethrough-thickness\" | \"string\" | \"stroke\" | \"stroke-dasharray\" | \"stroke-dashoffset\" | \"stroke-linecap\" | \"stroke-linejoin\" | \"stroke-miterlimit\" | \"stroke-opacity\" | \"stroke-width\" | \"style\" | \"surfaceScale\" | \"systemLanguage\" | \"tabindex\" | \"tableValues\" | \"target\" | \"targetX\" | \"targetY\" | \"text-anchor\" | \"text-decoration\" | \"text-rendering\" | \"textLength\" | \"to\" | \"transform\" | \"type\" | \"u1\" | \"u2\" | \"underline-position\" | \"underline-thickness\" | \"unicode\" | \"unicode-bidi\" | \"unicode-range\" | \"units-per-em\" | \"v-alphabetic\" | \"v-hanging\" | \"v-ideographic\" | \"v-mathematical\" | \"values\" | \"version\" | \"vert-adv-y\" | \"vert-origin-x\" | \"vert-origin-y\" | \"viewBox\" | \"viewTarget\" | \"visibility\" | \"width\" | \"widths\" | \"word-spacing\" | \"writing-mode\" | \"x\" | \"x-height\" | \"x1\" | \"x2\" | \"xChannelSelector\" | \"xlink:actuate\" | \"xlink:arcrole\" | \"xlink:href\" | \"xlink:role\" | \"xlink:show\" | \"xlink:title\" | \"xlink:type\" | \"xml:base\" | \"xml:lang\" | \"xml:space\" | \"y\" | \"y1\" | \"y2\" | \"yChannelSelector\" | \"z\" | \"zoomAndPan\";\r\n\r\n/**\r\n * Represents an interface for SVG attributes.\r\n *\r\n * This is a collection of all properties that an SVG element can have.\r\n */\r\nexport interface ISVGAttribute {\r\n\t\"accent-height\"?: any;\r\n\t\"accumulate\"?: any;\r\n\t\"additive\"?: any;\r\n\t\"alignment-baseline\"?: any;\r\n\t\"allowReorder\"?: any;\r\n\t\"alphabetic\"?: any;\r\n\t\"amplitude\"?: any;\r\n\t\"arabic-form\"?: any;\r\n\t\"aria-checked\"?: any;\r\n\t\"aria-describedby\"?: any;\r\n\t\"aria-hidden\"?: any;\r\n\t\"aria-label\"?: any;\r\n\t\"aria-labelledby\"?: any;\r\n\t\"aria-live\"?: any;\r\n\t\"aria-controls\"?: any;\r\n\t\"aria-orientation\"?: any;\r\n\t\"aria-valuemax\"?: any;\r\n\t\"aria-valuemin\"?: any;\r\n\t\"aria-valuenow\"?: any;\r\n\t\"aria-valuetext\"?: any;\r\n\t\"ascent\"?: any;\r\n\t\"attributeName\"?: any;\r\n\t\"attributeType\"?: any;\r\n\t\"autoReverse\"?: any;\r\n\t\"azimuth\"?: any;\r\n\t\"baseFrequency\"?: any;\r\n\t\"baseline-shift\"?: any;\r\n\t\"baseProfile\"?: any;\r\n\t\"bbox\"?: any;\r\n\t\"begin\"?: any;\r\n\t\"bias\"?: any;\r\n\t\"by\"?: any;\r\n\t\"calcMode\"?: any;\r\n\t\"cap-height\"?: any;\r\n\t\"class\"?: any;\r\n\t\"clip\"?: any;\r\n\t\"clipPathUnits\"?: any;\r\n\t\"clip-path\"?: any;\r\n\t\"clip-rule\"?: any;\r\n\t\"color\"?: any;\r\n\t\"color-interpolation\"?: any;\r\n\t\"color-interpolation-filters\"?: any;\r\n\t\"color-profile\"?: any;\r\n\t\"color-rendering\"?: any;\r\n\t\"contentScriptType\"?: any;\r\n\t\"contentStyleType\"?: any;\r\n\t\"cursor\"?: any;\r\n\t\"cx\"?: any;\r\n\t\"cy\"?: any;\r\n\t\"d\"?: any;\r\n\t\"decelerate\"?: any;\r\n\t\"descent\"?: any;\r\n\t\"diffuseConstant\"?: any;\r\n\t\"direction\"?: any;\r\n\t\"display\"?: any;\r\n\t\"divisor\"?: any;\r\n\t\"dominant-baseline\"?: any;\r\n\t\"dur\"?: any;\r\n\t\"dx\"?: any;\r\n\t\"dy\"?: any;\r\n\t\"edgeMode\"?: any;\r\n\t\"elevation\"?: any;\r\n\t\"enable-background\"?: any;\r\n\t\"end\"?: any;\r\n\t\"exponent\"?: any;\r\n\t\"externalResourcesRequired\"?: any;\r\n\t\"fill\"?: any;\r\n\t\"fill-opacity\"?: any;\r\n\t\"fill-rule\"?: any;\r\n\t\"filter\"?: any;\r\n\t\"filterRes\"?: any;\r\n\t\"filterUnits\"?: any;\r\n\t\"flood-color\"?: any;\r\n\t\"flood-opacity\"?: any;\r\n\t\"focusable\"?: any;\r\n\t\"font-family\"?: any;\r\n\t\"font-size\"?: any;\r\n\t\"font-size-adjust\"?: any;\r\n\t\"font-stretch\"?: any;\r\n\t\"font-style\"?: any;\r\n\t\"font-variant\"?: any;\r\n\t\"font-weight\"?: any;\r\n\t\"format\"?: any;\r\n\t\"from\"?: any;\r\n\t\"fx\"?: any;\r\n\t\"fy\"?: any;\r\n\t\"g1\"?: any;\r\n\t\"g2\"?: any;\r\n\t\"glyph-name\"?: any;\r\n\t\"glyph-orientation-horizontal\"?: any;\r\n\t\"glyph-orientation-vertical\"?: any;\r\n\t\"glyphRef\"?: any;\r\n\t\"gradientTransform\"?: any;\r\n\t\"gradientUnits\"?: any;\r\n\t\"hanging\"?: any;\r\n\t\"height\"?: any;\r\n\t\"href\"?: any;\r\n\t\"horiz-adv-x\"?: any;\r\n\t\"horiz-origin-x\"?: any;\r\n\t\"id\"?: any;\r\n\t\"ideographic\"?: any;\r\n\t\"image-rendering\"?: any;\r\n\t\"in\"?: any;\r\n\t\"in2\"?: any;\r\n\t\"intercept\"?: any;\r\n\t\"k\"?: any;\r\n\t\"k1\"?: any;\r\n\t\"k2\"?: any;\r\n\t\"k3\"?: any;\r\n\t\"k4\"?: any;\r\n\t\"kernelMatrix\"?: any;\r\n\t\"kernelUnitLength\"?: any;\r\n\t\"kerning\"?: any;\r\n\t\"keyPoints\"?: any;\r\n\t\"keySplines\"?: any;\r\n\t\"keyTimes\"?: any;\r\n\t\"lang\"?: any;\r\n\t\"lengthAdjust\"?: any;\r\n\t\"letter-spacing\"?: any;\r\n\t\"lighting-color\"?: any;\r\n\t\"limitingConeAngle\"?: any;\r\n\t\"local\"?: any;\r\n\t\"marker-end\"?: any;\r\n\t\"marker-mid\"?: any;\r\n\t\"marker-start\"?: any;\r\n\t\"markerHeight\"?: any;\r\n\t\"markerUnits\"?: any;\r\n\t\"markerWidth\"?: any;\r\n\t\"mask\"?: any;\r\n\t\"maskContentUnits\"?: any;\r\n\t\"maskUnits\"?: any;\r\n\t\"mathematical\"?: any;\r\n\t\"max\"?: any;\r\n\t\"media\"?: any;\r\n\t\"method\"?: any;\r\n\t\"min\"?: any;\r\n\t\"mode\"?: any;\r\n\t\"name\"?: any;\r\n\t\"numOctaves\"?: any;\r\n\t\"offset\"?: any;\r\n\t\"onabort\"?: any;\r\n\t\"onactivate\"?: any;\r\n\t\"onbegin\"?: any;\r\n\t\"onclick\"?: any;\r\n\t\"onend\"?: any;\r\n\t\"onerror\"?: any;\r\n\t\"onfocusin\"?: any;\r\n\t\"onfocusout\"?: any;\r\n\t\"onload\"?: any;\r\n\t\"onmousedown\"?: any;\r\n\t\"onmousemove\"?: any;\r\n\t\"onmouseout\"?: any;\r\n\t\"onmouseover\"?: any;\r\n\t\"onmouseup\"?: any;\r\n\t\"onrepeat\"?: any;\r\n\t\"onresize\"?: any;\r\n\t\"onscroll\"?: any;\r\n\t\"onunload\"?: any;\r\n\t\"onzoom\"?: any;\r\n\t\"opacity\"?: any;\r\n\t\"operator\"?: any;\r\n\t\"order\"?: any;\r\n\t\"orient\"?: any;\r\n\t\"orientation\"?: any;\r\n\t\"origin\"?: any;\r\n\t\"overflow\"?: any;\r\n\t\"overline-position\"?: any;\r\n\t\"overline-thickness\"?: any;\r\n\t\"panose-1\"?: any;\r\n\t\"paint-order\"?: any;\r\n\t\"path\"?: any;\r\n\t\"pathLength\"?: any;\r\n\t\"patternContentUnits\"?: any;\r\n\t\"patternTransform\"?: any;\r\n\t\"patternUnits\"?: any;\r\n\t\"pointer-events\"?: any;\r\n\t\"points\"?: any;\r\n\t\"pointsAtX\"?: any;\r\n\t\"pointsAtY\"?: any;\r\n\t\"pointsAtZ\"?: any;\r\n\t\"preserveAlpha\"?: any;\r\n\t\"preserveAspectRatio\"?: any;\r\n\t\"primitiveUnits\"?: any;\r\n\t\"r\"?: any;\r\n\t\"radius\"?: any;\r\n\t\"refX\"?: any;\r\n\t\"refY\"?: any;\r\n\t\"rendering-intent\"?: any;\r\n\t\"repeatCount\"?: any;\r\n\t\"repeatDur\"?: any;\r\n\t\"requiredExtensions\"?: any;\r\n\t\"requiredFeatures\"?: any;\r\n\t\"restart\"?: any;\r\n\t\"result\"?: any;\r\n\t\"role\"?: any;\r\n\t\"rotate\"?: any;\r\n\t\"rx\"?: any;\r\n\t\"ry\"?: any;\r\n\t\"scale\"?: any;\r\n\t\"seed\"?: any;\r\n\t\"shape-rendering\"?: any;\r\n\t\"slope\"?: any;\r\n\t\"spacing\"?: any;\r\n\t\"specularConstant\"?: any;\r\n\t\"specularExponent\"?: any;\r\n\t\"speed\"?: any;\r\n\t\"spreadMethod\"?: any;\r\n\t\"startOffset\"?: any;\r\n\t\"stdDeviation\"?: any;\r\n\t\"stemh\"?: any;\r\n\t\"stemv\"?: any;\r\n\t\"stitchTiles\"?: any;\r\n\t\"stop-color\"?: any;\r\n\t\"stop-opacity\"?: any;\r\n\t\"strikethrough-position\"?: any;\r\n\t\"strikethrough-thickness\"?: any;\r\n\t\"string\"?: any;\r\n\t\"stroke\"?: any;\r\n\t\"stroke-dasharray\"?: any;\r\n\t\"stroke-dashoffset\"?: any;\r\n\t\"stroke-linecap\"?: any;\r\n\t\"stroke-linejoin\"?: any;\r\n\t\"stroke-miterlimit\"?: any;\r\n\t\"stroke-opacity\"?: any;\r\n\t\"stroke-width\"?: any;\r\n\t\"style\"?: any;\r\n\t\"surfaceScale\"?: any;\r\n\t\"systemLanguage\"?: any;\r\n\t\"tabindex\"?: any;\r\n\t\"tableValues\"?: any;\r\n\t\"target\"?: any;\r\n\t\"targetX\"?: any;\r\n\t\"targetY\"?: any;\r\n\t\"text-anchor\"?: any;\r\n\t\"text-decoration\"?: any;\r\n\t\"text-rendering\"?: any;\r\n\t\"textLength\"?: any;\r\n\t\"to\"?: any;\r\n\t\"transform\"?: any;\r\n\t\"type\"?: any;\r\n\t\"u1\"?: any;\r\n\t\"u2\"?: any;\r\n\t\"underline-position\"?: any;\r\n\t\"underline-thickness\"?: any;\r\n\t\"unicode\"?: any;\r\n\t\"unicode-bidi\"?: any;\r\n\t\"unicode-range\"?: any;\r\n\t\"units-per-em\"?: any;\r\n\t\"v-alphabetic\"?: any;\r\n\t\"v-hanging\"?: any;\r\n\t\"v-ideographic\"?: any;\r\n\t\"v-mathematical\"?: any;\r\n\t\"values\"?: any;\r\n\t\"version\"?: any;\r\n\t\"vert-adv-y\"?: any;\r\n\t\"vert-origin-x\"?: any;\r\n\t\"vert-origin-y\"?: any;\r\n\t\"viewBox\"?: any;\r\n\t\"viewTarget\"?: any;\r\n\t\"visibility\"?: any;\r\n\t\"width\"?: any;\r\n\t\"widths\"?: any;\r\n\t\"word-spacing\"?: any;\r\n\t\"writing-mode\"?: any;\r\n\t\"x\"?: any;\r\n\t\"x-height\"?: any;\r\n\t\"x1\"?: any;\r\n\t\"x2\"?: any;\r\n\t\"xChannelSelector\"?: any;\r\n\t\"xlink:actuate\"?: any;\r\n\t\"xlink:arcrole\"?: any;\r\n\t\"xlink:href\"?: any;\r\n\t\"xlink:role\"?: any;\r\n\t\"xlink:show\"?: any;\r\n\t\"xlink:title\"?: any;\r\n\t\"xlink:type\"?: any;\r\n\t\"xml:base\"?: any;\r\n\t\"xml:lang\"?: any;\r\n\t\"xml:space\"?: any;\r\n\t\"y\"?: any;\r\n\t\"y1\"?: any;\r\n\t\"y2\"?: any;\r\n\t\"yChannelSelector\"?: any;\r\n\t\"z\"?: any;\r\n\t\"zoomAndPan\"?: any;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A base class for all SVG elements. Provides low-level DOM functionality.\r\n *\r\n * All visual elements extend this class.\r\n */\r\nexport class AMElement implements IDisposer {\r\n\r\n\t/**\r\n\t * Indicates if the element was already disposed.\r\n\t */\r\n\tprotected _isDisposed: boolean = false;\r\n\r\n\t/**\r\n\t * An SVG node of the element.\r\n\t */\r\n\tpublic node: SVGSVGElement;\r\n\r\n\t/**\r\n\t * Current X coordinate.\r\n\t */\r\n\tprivate _x: number = 0;\r\n\r\n\t/**\r\n\t * Current Y coordinate.\r\n\t */\r\n\tprivate _y: number = 0;\r\n\r\n\t/**\r\n\t * \r\n\t */\r\n\tprivate _rotationY: number = 0;\t\r\n\r\n\t/**\r\n\t * \r\n\t */\r\n\tprivate _rotationX: number = 0;\t\t\r\n\r\n\t/**\r\n\t * Current rotation.\r\n\t */\r\n\tprivate _rotation: number = 0;\r\n\r\n\t/**\r\n\t * Current scale.\r\n\t */\r\n\tprivate _scale: number = 1;\r\n\r\n\t/**\r\n\t * current value of transfrom string\r\n\t */\r\n\tprivate _transformString:string;\r\n\r\n\t/**\r\n\t * Constructor creates a new element or uses the one that was passed in.\r\n\t *\r\n\t * @param element Element reference node type\r\n\t */\r\n\tconstructor(element: string | SVGSVGElement) {\r\n\t\tif (typeof element === \"string\") {\r\n\t\t\tthis.node = document.createElementNS($dom.SVGNS, element);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.node = element;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes element's node from DOM.\r\n\t */\r\n\tpublic removeNode(): void {\r\n\t\tif (this.node) {\r\n\t\t\tif (this.node.parentNode) {\r\n\t\t\t\tthis.node.parentNode.removeChild(this.node);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `transform` attribute of the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Transform attribute value\r\n\t */\r\n\tpublic get transformString(): $type.Optional {\r\n\t\tif (this.node) {\r\n\r\n\t\t\treturn this._transformString;\r\n\t\t\t/*\r\n\t\t\tconst value = this.node.getAttribute(\"transform\");\r\n\r\n\t\t\tif (value !== null) {\r\n\t\t\t\treturn value;\r\n\t\t\t}*/\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Appply position, rotation and scale properties via elemen's `transform`\r\n\t * property\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic transform(): void {\r\n\r\n\t\tlet transfromString = \"translate(\" + this._x + \",\" + this._y + \")\";\r\n\r\n\t\tif (this._scale != 1) {\r\n\t\t\ttransfromString += ((transfromString ? \" \" : \"\") + \"scale(\" + this._scale + \")\");\r\n\t\t}\r\n\r\n\t\tif (this._rotation != 0) {\r\n\t\t\tlet rotateString = \"rotate(\" + this._rotation + \")\";\r\n\r\n\t\t\tif(this._rotationX && this._rotationY){\r\n\t\t\t\trotateString = \"rotate(\" + this._rotation + \" \" + this._rotationX + \" \" + this._rotationY + \")\";\r\n\t\t\t}\r\n\r\n\t\t\ttransfromString += ((transfromString ? \" \" : \"\") + rotateString);\r\n\t\t}\r\n\r\n\t\tthis._transformString = transfromString;\r\n\r\n\t\tthis.node.setAttribute(\"transform\", transfromString);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns bounding box of the element.\r\n\t *\r\n\t * ATTENTION: Bounding box calculations are extremely costly so should be\r\n\t * used sparingly and cached whenever possible.\r\n\t *\r\n\t * @return Bounding rectangle\r\n\t */\r\n\tpublic getBBox(): IRectangle {\r\n\t\tlet bbox: IRectangle = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0,\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\r\n\t\t// FF would fail if getBBox() is called without node added to parent\r\n\t\tif (this.node && this.node.parentNode) {\r\n\t\t\t\r\n\t\t\ttry { // again for ff. TODO: check if this doesn't slow down\r\n\t\t\t\tlet svgbbox = this.node.getBBox();\r\n\t\t\t\tbbox.x = svgbbox.x;\r\n\t\t\t\tbbox.y = svgbbox.y;\r\n\t\t\t\tbbox.width = svgbbox.width;\r\n\t\t\t\tbbox.height = svgbbox.height;\r\n\t\t\t} catch (err) { }\r\n\t\t}\r\n\r\n\t\treturn bbox;\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the element to new coordinates.\r\n\t *\r\n\t * @param x Target X\r\n\t * @param y Target Y\r\n\t */\r\n\tpublic moveTo(point: IPoint): void {\r\n\t\tif (point) {\r\n\t\t\tlet x: number = point.x;\r\n\t\t\tlet y: number = point.y;\r\n\t\t\tif (this._x != x || this._y != y) {\r\n\t\t\t\tthis._x = x;\r\n\t\t\t\tthis._y = y;\r\n\t\t\t\tthis.transform();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Element's SVG contents.\r\n\t *\r\n\t * @param value Contents\r\n\t */\r\n\tpublic set content(value: string) {\r\n\t\t// @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n\t\tthis.node.innerHTML = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns element's contents as SVG markup.\r\n\t *\r\n\t * @return Contents\r\n\t */\r\n\tpublic get content(): string {\r\n\t\t// @todo Do not use `innerHTML` as this is not reliable and will not work on all browsers\r\n\t\treturn this.node.innerHTML || \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Text contents of the SVG element.\r\n\t *\r\n\t * @param value Text contents\r\n\t */\r\n\tpublic set textContent(value: string) {\r\n\t\tthis.node.textContent = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @return Text contents\r\n\t */\r\n\tpublic get textContent(): string {\r\n\t\treturn this.node.textContent || \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Element's X position in pixels.\r\n\t *\r\n\t * @param value X coordinate (px)\r\n\t */\r\n\tpublic set x(value: number) {\r\n\t\tif (this._x != value) {\r\n\t\t\tthis._x = value;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic get x(): number {\r\n\t\treturn this._x;\r\n\t}\r\n\r\n\t/**\r\n\t * Element's Y position in pixels.\r\n\t *\r\n\t * @param value Y coordinate (px)\r\n\t */\r\n\tpublic set y(value: number) {\r\n\t\tif (this._y != value) {\r\n\t\t\tthis._y = value;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic get y(): number {\r\n\t\treturn this._y;\r\n\t}\r\n\r\n\t/**\r\n\t * Element's rotation in degrees.\r\n\t *\r\n\t * @param value Rotation\r\n\t */\r\n\tpublic set rotation(angle: number) {\r\n\t\tif (this._rotation != angle) {\r\n\t\t\tthis._rotation = angle;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Rotation\r\n\t */\r\n\tpublic get rotation(): number {\r\n\t\treturn this._rotation;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic set rotationX(x: number) {\r\n\t\tif (this._rotationX != x) {\r\n\t\t\tthis._rotationX = x;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\t\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get rotationX():number{\r\n\t\treturn this._rotationX;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic set rotationY(y: number) {\r\n\t\tif (this._rotationY != y) {\r\n\t\t\tthis._rotationY = y;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\t\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get rotationY():number{\r\n\t\treturn this._rotationY;\r\n\t}\t\r\n\r\n\t/**\r\n\t * Element's scale where 1 is original size.\r\n\t *\r\n\t * Setting to 0.5 will reduce element's size by 50%, 2 will make element\r\n\t * twice as large, etc.\r\n\t *\r\n\t * @param value Scale\r\n\t */\r\n\tpublic set scale(value: number) {\r\n\t\tif (this._scale != value) {\r\n\t\t\tthis._scale = value;\r\n\t\t\tthis.transform();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Scale\r\n\t */\r\n\tpublic get scale(): number {\r\n\t\treturn this._scale;\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an attribute from element.\r\n\t *\r\n\t * @param attribute Attribute to remove\r\n\t */\r\n\tpublic removeAttr(attribute: string): void {\r\n\t\tthis.node.removeAttribute(attribute);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a set of attributes on a element.\r\n\t *\r\n\t * @param attributes An object with attribute names (key) and values\r\n\t * @return The same element\r\n\t */\r\n\tpublic attr(attributes: ISVGAttribute): AMElement {\r\n\t\t$object.each(attributes, (attributeName, attributeValue) => {\r\n\t\t\tif (!$type.hasValue(attributeValue)) {\r\n\t\t\t\tthis.node.removeAttribute(attributeName);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// this is for performance testing\r\n\t\t\t\t//if(attributeValue == this.node.getAttribute(attributeName)){\r\n\t\t\t\t//\tconsole.log(attributeName, attributeValue)\r\n\t\t\t\t//}\r\n\t\t\t\tthis.node.setAttribute(attributeName, attributeValue);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a value of a node attribute.\r\n\t *\r\n\t * @param attribute Attribute name\r\n\t * @return Attribute value\r\n\t */\r\n\tpublic getAttr(attribute: string): string | null {\r\n\t\treturn this.node.getAttribute(attribute);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a single attribute of the element's node using namesspace.\r\n\t *\r\n\t * @param ns Namespace\r\n\t * @param attribute Attribute\r\n\t * @param value Value\r\n\t * @return The same element\r\n\t */\r\n\tpublic attrNS(ns: string, attribute: string, value: string): AMElement {\r\n\t\tthis.node.setAttributeNS(ns, attribute, value);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a namespaced attribute value from node.\r\n\t *\r\n\t * @param ns Namespace\r\n\t * @param attribute Attribute\r\n\t * @return Attribute value\r\n\t */\r\n\tpublic getAttrNS(ns: string, attribute: string): string {\r\n\t\treturn this.node.getAttributeNS(ns, attribute);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes `style` attribute from node.\r\n\t *\r\n\t * @param attribute Attribute to remove\r\n\t */\r\n\tpublic removeStyle(attribute: string): void {\r\n\t\t// @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n\t\t(this.node.style)[attribute] = null;\r\n\t\tdelete (this.node.style)[attribute];\r\n\t}\r\n\r\n\t/**\r\n\t * Returns style attribute value.\r\n\t *\r\n\t * @param attribute Style attribute value\r\n\t * @return Attribute value\r\n\t */\r\n\tpublic getStyle(attribute: string): string {\r\n\t\t// @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n\t\treturn (this.node.style)[attribute];\r\n\t}\r\n\r\n\t/**\r\n\t * Adds style attributes to element's node.\r\n\t *\r\n\t * @param attributes Object containing attribute: value pairs\r\n\t * @return The same element\r\n\t */\r\n\tpublic addStyle(attributes: Object): AMElement {\r\n\t\t// @todo Review because it's a bit messy and maybe not needed (pratically not used)\r\n\t\t$object.each(attributes, (attributeName, attributeValue) => {\r\n\t\t\tif (!$type.hasValue(attributeValue)) {\r\n\t\t\t\tthis.removeStyle(attributeName);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t(this.node.style)[attributeName] = attributeValue;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a class to element.\r\n\t *\r\n\t * @param name Class name\r\n\t */\r\n\tpublic addClass(name: string): void {\r\n\t\t$dom.addClass(this.node, name);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes a class from element.\r\n\t *\r\n\t * @param name Class name\r\n\t */\r\n\tpublic removeClass(name: string): void {\r\n\t\t$dom.removeClass(this.node, name);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a class name on element.\r\n\t *\r\n\t * @param name Class name\r\n\t */\r\n\tpublic setClass(name: string): void {\r\n\t\tthis.node.setAttribute(\"class\", name);\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all element's child nodes, basically leaving it empty.\r\n\t */\r\n\tpublic removeChildNodes(): void {\r\n\t\t// remove all children\r\n\t\twhile (this.node.childNodes.length > 0) {\r\n\t\t\tthis.node.removeChild(this.node.firstChild!);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Was this element already been disposed?\r\n\t *\r\n\t * @return Disposed?\r\n\t */\r\n\tpublic isDisposed(): boolean {\r\n\t\treturn this._isDisposed;\r\n\t}\r\n\r\n\t/**\r\n\t * Disposes element.\r\n\t */\r\n\tpublic dispose(): void {\r\n\t\tthis.removeNode();\r\n\t}\r\n\r\n}\r\n","/**\r\n * Polyline module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { IPoint, IOrientationPoint } from \"../defs/IPoint\";\r\nimport { color } from \"../utils/Color\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $path from \"../rendering/Path\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Polyline]].\r\n */\r\nexport interface IPolylineProperties extends ISpriteProperties {\r\n\r\n\t/**\r\n\t * A list of segment coordinates for the multi-part line.\r\n\t */\r\n\tsegments?: Array>;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[Polyline]].\r\n */\r\nexport interface IPolylineEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Polyline]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IPolylineAdapters extends ISpriteAdapters, IPolylineProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Draws a polyline.\r\n *\r\n * @see {@link IPolylineEvents} for a list of available events\r\n * @see {@link IPolylineAdapters} for a list of available Adapters\r\n */\r\nexport class Polyline extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IPolylineProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IPolylineAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IPolylineEvents;\r\n\r\n\t/**\r\n\t * [_distance description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _distance: number = 0;\r\n\r\n\t/**\r\n\t * [_realSegments]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _realSegments: $type.Optional>>;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Polyline\";\r\n\t\tthis.element = this.paper.add(\"path\");\r\n\t\tthis.shapeRendering = \"auto\";\r\n\t\tthis.fill = color();\r\n\t\tthis.strokeOpacity = 1;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creats and adds an SVG path for the arc.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic makePath(): void {\r\n\t\tthis._distance = 0;\r\n\t\tlet segments = this.segments;\r\n\r\n\t\tif (segments && segments.length > 0) {\r\n\t\t\tlet path: string = \"\";\r\n\r\n\t\t\tfor (let i = 0, len = segments.length; i < len; i++) {\r\n\t\t\t\tlet points: IPoint[] = segments[i];\r\n\t\t\t\tif (points.length > 0) {\r\n\t\t\t\t\tpath += $path.moveTo(points[0]);\r\n\r\n\t\t\t\t\tfor (let p = 1; p < points.length; p++) {\r\n\t\t\t\t\t\tlet point: IPoint = points[p];\r\n\t\t\t\t\t\tpath += $path.lineTo(point);\r\n\t\t\t\t\t\tthis._distance += $math.getDistance(points[p - 1], point);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.path = path;\r\n\t\t}\r\n\r\n\t\tthis._realSegments = segments;\r\n\t}\r\n\r\n\t/**\r\n\t * A list of segment coordinates for the multi-part line.\r\n\t *\r\n\t * @todo Example\r\n\t * @param segments Segments\r\n\t */\r\n\tpublic set segments(segments: $type.Optional>>) {\r\n\t\tthis.setPropertyValue(\"segments\", segments);\r\n\t\tthis.makePath();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Segments\r\n\t */\r\n\tpublic get segments(): $type.Optional>> {\r\n\t\treturn this.getPropertyValue(\"segments\");\r\n\t}\r\n\r\n\t/**\r\n\t * [distance description]\r\n\t *\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get distance(): number {\r\n\t\treturn this._distance;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts relative position along the line (0-1) into pixel coordinates.\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @return Coordinates\r\n\t */\r\n\tpublic positionToPoint(position: number): IOrientationPoint {\r\n\r\n\t\tlet deltaAngle: number = 0;\r\n\r\n\t\tif (position < 0) {\r\n\t\t\tposition = Math.abs(position);\r\n\t\t\tdeltaAngle = 180;\r\n\t\t}\r\n\r\n\t\tlet segments: $type.Optional>> = this._realSegments;\r\n\t\tif (segments) {\r\n\t\t\tlet totalDistance: number = this.distance;\r\n\t\t\tlet currentDistance: number = 0;\r\n\r\n\t\t\tlet distanceAB: number;\r\n\t\t\tlet positionA: number = 0;\r\n\t\t\tlet positionB: number = 0;\r\n\t\t\tlet pointA: IPoint;\r\n\t\t\tlet pointB: IPoint;\r\n\r\n\t\t\tfor (let s = 0; s < segments.length; s++) {\r\n\t\t\t\tlet points: IPoint[] = segments[s];\r\n\t\t\t\tif (points.length > 1) {\r\n\t\t\t\t\tfor (let p = 1; p < points.length; p++) {\r\n\t\t\t\t\t\tpointA = points[p - 1];\r\n\t\t\t\t\t\tpointB = points[p];\r\n\r\n\t\t\t\t\t\tpositionA = currentDistance / totalDistance;\r\n\t\t\t\t\t\tdistanceAB = $math.getDistance(pointA, pointB);\r\n\t\t\t\t\t\tcurrentDistance += distanceAB;\r\n\t\t\t\t\t\tpositionB = currentDistance / totalDistance;\r\n\r\n\t\t\t\t\t\tif (positionA <= position && positionB > position) {\r\n\t\t\t\t\t\t\ts = segments.length;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (points.length == 1) {\r\n\t\t\t\t\tpointA = points[0];\r\n\t\t\t\t\tpointB = points[0];\r\n\t\t\t\t\tpositionA = 0;\r\n\t\t\t\t\tpositionB = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (pointA && pointB) {\r\n\t\t\t\tlet positionAB: number = (position - positionA) / (positionB - positionA);\r\n\t\t\t\tlet midPoint: IPoint = $math.getMidPoint(pointA, pointB, positionAB);\r\n\t\t\t\treturn { x: midPoint.x, y: midPoint.y, angle: deltaAngle + $math.getAngle(pointA, pointB) };\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { x: 0, y: 0, angle: 0 };\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get realSegments():IPoint[][]{\r\n\t\treturn this._realSegments;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Polyline\"] = Polyline;\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n\n if (!level) {\n return null;\n }\n\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n\n list.push(React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i + 1]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i + 1]), _classNames))\n }));\n }\n\n return React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\n\nexport default Indent;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport * as React from 'react';\nimport classNames from 'classnames'; // @ts-ignore\n\nimport { TreeContext } from './contextTypes';\nimport { getDataAndAria } from './util';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\n\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n\n var _super = _createSuper(InternalTreeNode);\n\n function InternalTreeNode() {\n var _this;\n\n _classCallCheck(this, InternalTreeNode);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n dragNodeHighlight: false\n };\n\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n e.preventDefault();\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: true\n });\n\n onNodeDragStart(e, _assertThisInitialized(_this));\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {// empty\n }\n };\n\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: false\n });\n\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n\n _this.setState({\n dragNodeHighlight: false\n });\n\n onNodeDrop(e, _assertThisInitialized(_this));\n }; // Disabled item still can be switch\n\n\n _this.onExpand = function (e) {\n var onNodeExpand = _this.props.context.onNodeExpand;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n }; // Drag usage\n\n\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n\n if (_this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n\n return !!(children || []).length;\n };\n\n _this.isLeaf = function () {\n var _this$props2 = _this.props,\n isLeaf = _this$props2.isLeaf,\n loaded = _this$props2.loaded;\n var loadData = _this.props.context.loadData;\n\n var hasChildren = _this.hasChildren();\n\n if (isLeaf === false) {\n return false;\n }\n\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable; // Return false if tree or treeNode is not checkable\n\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n }; // Load data to avoid default expanded tree without data\n\n\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) return; // read from state to avoid loadData at same time\n\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n }; // Switcher\n\n\n _this.renderSwitcher = function () {\n var _this$props3 = _this.props,\n expanded = _this$props3.expanded,\n switcherIconFromProps = _this$props3.switcherIcon;\n var _this$props$context2 = _this.props.context,\n prefixCls = _this$props$context2.prefixCls,\n switcherIconFromCtx = _this$props$context2.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n\n if (_this.isLeaf()) {\n return React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, typeof switcherIcon === 'function' ? switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: true\n })) : switcherIcon);\n }\n\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n return React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, typeof switcherIcon === 'function' ? switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: false\n })) : switcherIcon);\n }; // Checkbox\n\n\n _this.renderCheckbox = function () {\n var _this$props4 = _this.props,\n checked = _this$props4.checked,\n halfChecked = _this$props4.halfChecked,\n disableCheckbox = _this$props4.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n\n var disabled = _this.isDisabled();\n\n var checkable = _this.isCheckable();\n\n if (!checkable) return null; // [Legacy] Custom element should be separate with `checkable` in future\n\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n }; // Icon + Title\n\n\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props5 = _this.props,\n title = _this$props5.title,\n selected = _this$props5.selected,\n icon = _this$props5.icon,\n loading = _this$props5.loading,\n data = _this$props5.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n draggable = _this$props$context3.draggable,\n loadData = _this$props$context3.loadData;\n\n var disabled = _this.isDisabled();\n\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\"); // Icon - Still show loading icon when loading without showIcon\n\n var $icon;\n\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n } // Title\n\n\n var $title = React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, typeof title === 'function' ? title(data) : title);\n return React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\"), !disabled && draggable && 'draggable'),\n draggable: !disabled && draggable || undefined,\n \"aria-grabbed\": !disabled && draggable || undefined,\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick,\n onDragStart: draggable ? _this.onDragStart : undefined\n }, $icon, $title);\n };\n\n return _this;\n } // Isomorphic needn't load data in server side\n\n\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable; // Ignore when selectable is undefined or null\n\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props6 = this.props,\n eventKey = _this$props6.eventKey,\n className = _this$props6.className,\n style = _this$props6.style,\n dragOver = _this$props6.dragOver,\n dragOverGapTop = _this$props6.dragOverGapTop,\n dragOverGapBottom = _this$props6.dragOverGapBottom,\n isLeaf = _this$props6.isLeaf,\n isStart = _this$props6.isStart,\n isEnd = _this$props6.isEnd,\n expanded = _this$props6.expanded,\n selected = _this$props6.selected,\n checked = _this$props6.checked,\n halfChecked = _this$props6.halfChecked,\n loading = _this$props6.loading,\n domRef = _this$props6.domRef,\n active = _this$props6.active,\n onMouseMove = _this$props6.onMouseMove,\n otherProps = _objectWithoutProperties(_this$props6, [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"onMouseMove\"]);\n\n var _this$props$context4 = this.props.context,\n prefixCls = _this$props$context4.prefixCls,\n filterTreeNode = _this$props$context4.filterTreeNode,\n draggable = _this$props$context4.draggable,\n keyEntities = _this$props$context4.keyEntities;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = getDataAndAria(otherProps);\n\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n\n return React.createElement(\"div\", Object.assign({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style,\n onDragEnter: draggable ? this.onDragEnter : undefined,\n onDragOver: draggable ? this.onDragOver : undefined,\n onDragLeave: draggable ? this.onDragLeave : undefined,\n onDrop: draggable ? this.onDrop : undefined,\n onDragEnd: draggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, dataOrAriaAttributeProps), React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n\n return InternalTreeNode;\n}(React.Component);\n\nvar ContextTreeNode = function ContextTreeNode(props) {\n return React.createElement(TreeContext.Consumer, null, function (context) {\n return React.createElement(InternalTreeNode, Object.assign({}, props, {\n context: context\n }));\n });\n};\n\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.defaultProps = {\n title: defaultTitle\n};\nContextTreeNode.isTreeNode = 1;\nexport { InternalTreeNode };\nexport default ContextTreeNode;","/**\r\n * JSON parser.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { DataParser, IDataParserOptions } from \"./DataParser\";\r\nimport { DateFormatter } from \"../formatters/DateFormatter\";\r\nimport * as $object from \"../utils/Object\";\r\nimport * as $type from \"../utils/Type\";\r\n\r\n\r\n/**\r\n * Defines options for JSON format parser\r\n */\r\nexport interface IJSONOptions extends IDataParserOptions {\r\n\r\n\t/**\r\n\t * A list of fields that should be treaded as numeric.\r\n\t *\r\n\t * Any information container in such fields will be converted to `number`.\r\n\t */\r\n\tnumberFields?: string[];\r\n\r\n\t/**\r\n\t * A list of fields that hold date/time infromation.\r\n\t *\r\n\t * Parser will try to convert such fields into `Date` objects.\r\n\t */\r\n\tdateFields?: string[];\r\n\r\n\t/**\r\n\t * A date formatted to be used when parsing dates.\r\n\t */\r\n\tdateFormatter?: DateFormatter;\r\n\r\n}\r\n\r\n/**\r\n * A parser for JSON.\r\n *\r\n * @important\r\n */\r\nexport class JSONParser extends DataParser {\r\n\r\n\t/**\r\n\t * Tests if the data is valid JSON.\r\n\t *\r\n\t * @param data Source data\r\n\t * @return Is it JSON?\r\n\t */\r\n\tstatic isJSON(data: string): boolean {\r\n\t\ttry {\r\n\r\n\t\t\t// Try parsing JSON\r\n\t\t\tJSON.parse(data);\r\n\r\n\t\t\t// If we got to this point it means it's a valid JSON\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Content-type suitable for JSON format.\r\n\t */\r\n\tpublic contentType: string = \"application/json\";\r\n\r\n\t/**\r\n\t * Parser options.\r\n\t *\r\n\t * @see {@link IJSONOptions} for description of each option\r\n\t */\r\n\tpublic options: IJSONOptions = {};\r\n\r\n\t/**\r\n\t * Parses and returns data.\r\n\t *\r\n\t * @param data Unparsed data\r\n\t * @return Parsed data\r\n\t */\r\n\tpublic parse(data: string): any {\r\n\r\n\t\t// Init return\r\n\t\tlet res: any;\r\n\r\n\t\t// Try parsing\r\n\t\ttry {\r\n\t\t\tif ($type.hasValue(JSON)) {\r\n\t\t\t\tres = JSON.parse(data);\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\t// Do we need to cast some fields to numbers or dates?\r\n\t\tlet empty = $type.hasValue(this.options.emptyAs);\r\n\t\tlet numbers = this.parsableNumbers;\r\n\t\tlet dates = this.parsableDates;\r\n\t\tif (Array.isArray(res) && (numbers || dates || empty)) {\r\n\r\n\t\t\t// Iterate through the data and check if it needs to be converted\r\n\t\t\tfor (let i = 0, len = res.length; i < len; i++) {\r\n\t\t\t\tlet row = res[i];\r\n\t\t\t\t$object.each(row, (key, value) => {\r\n\t\t\t\t\tif (empty) {\r\n\t\t\t\t\t\trow[key] = this.maybeToEmpty(row[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (numbers) {\r\n\t\t\t\t\t\trow[key] = this.maybeToNumber(key, row[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (dates) {\r\n\t\t\t\t\t\trow[key] = this.maybeToDate(key, row[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// Convert to array\r\n\t\t//return Array.isArray(res) ? res : [res];\r\n\t\treturn res;\r\n\r\n\t}\r\n\r\n}\r\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _RightOutlined = _interopRequireDefault(require('./lib/icons/RightOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _RightOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Chrome2.default;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from './TransBtn';\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\n\nvar OptionList = function OptionList(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n flattenOptions = _ref.flattenOptions,\n childrenAsData = _ref.childrenAsData,\n values = _ref.values,\n searchValue = _ref.searchValue,\n multiple = _ref.multiple,\n defaultActiveFirstOption = _ref.defaultActiveFirstOption,\n height = _ref.height,\n itemHeight = _ref.itemHeight,\n notFoundContent = _ref.notFoundContent,\n open = _ref.open,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n virtual = _ref.virtual,\n onSelect = _ref.onSelect,\n onToggleOpen = _ref.onToggleOpen,\n onActiveValue = _ref.onActiveValue,\n onScroll = _ref.onScroll;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // =========================== List ===========================\n\n var listRef = React.useRef(null);\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var scrollIntoView = function scrollIntoView(index) {\n if (listRef.current) {\n listRef.current.scrollTo({\n index: index\n });\n }\n }; // ========================== Active ==========================\n\n\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n\n if (!group && !data.disabled) {\n return current;\n }\n }\n\n return -1;\n };\n\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n\n var setActive = function setActive(index) {\n setActiveIndex(index); // Trigger active event\n\n var flattenItem = memoFlattenOptions[index];\n\n if (!flattenItem) {\n onActiveValue(null, -1);\n return;\n }\n\n onActiveValue(flattenItem.data.value, index);\n }; // Auto active first item when list length or searchValue changed\n\n\n React.useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]); // Auto scroll to item position in single mode\n\n React.useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && values.size === 1) {\n var value = Array.from(values)[0];\n var index = memoFlattenOptions.findIndex(function (_ref2) {\n var data = _ref2.data;\n return data.value === value;\n });\n setActive(index);\n scrollIntoView(index);\n }\n });\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open]); // ========================== Values ==========================\n\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !values.has(value)\n });\n } // Single mode should always close by select\n\n\n if (!multiple) {\n onToggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex);\n }\n\n break;\n }\n // >>> Select\n\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n\n if (item && !item.data.disabled) {\n onSelectValue(item.data.value);\n } else {\n onSelectValue(undefined);\n }\n\n if (open) {\n event.preventDefault();\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n onToggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n }); // ========================== Render ==========================\n\n if (memoFlattenOptions.length === 0) {\n return React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value,\n label = itemData.label,\n children = itemData.children;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = childrenAsData ? children : label;\n return item ? React.createElement(\"div\", Object.assign({\n \"aria-label\": typeof mergedLabel === 'string' ? mergedLabel : null\n }, attrs, {\n key: index,\n role: \"option\",\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": values.has(value)\n }), value) : null;\n }\n\n return React.createElement(React.Fragment, null, React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: height,\n itemHeight: itemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onScroll,\n virtual: virtual\n }, function (_ref3, itemIndex) {\n var _classNames;\n\n var group = _ref3.group,\n groupOption = _ref3.groupOption,\n data = _ref3.data;\n var label = data.label,\n key = data.key; // Group\n\n if (group) {\n return React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"))\n }, label !== undefined ? label : key);\n }\n\n var disabled = data.disabled,\n value = data.value,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, [\"disabled\", \"value\", \"title\", \"children\", \"style\", \"className\"]); // Option\n\n\n var selected = values.has(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = childrenAsData ? children : label;\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n return React.createElement(\"div\", Object.assign({}, otherProps, {\n \"aria-selected\": selected,\n className: optionClassName,\n title: title,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, mergedLabel || value), React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\n\nvar RefOptionList = React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\n\nOption.isSelectOption = true;\nexport default Option;","/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\n\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\n\nfunction convertNodeToOption(node) {\n var key = node.key,\n _node$props = node.props,\n children = _node$props.children,\n value = _node$props.value,\n restProps = _objectWithoutProperties(_node$props, [\"children\", \"value\"]);\n\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\n\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (!React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var isSelectOptGroup = node.type.isSelectOptGroup,\n key = node.key,\n _node$props2 = node.props,\n children = _node$props2.children,\n restProps = _objectWithoutProperties(_node$props2, [\"children\"]);\n\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport { convertChildrenToData } from './legacyUtil';\nimport { toArray } from './commonUtil';\n\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = mode === 'multiple' || mode === 'tags';\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children); // `tags` should not set option as disabled\n\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.'); // `combobox` & `tags` should option be `string` type\n\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n } // `combobox` should not use `optionLabelProp`\n\n\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.'); // Only `combobox` support `backfill`\n\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.'); // Only `combobox` support `getInputElement`\n\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.'); // Customize `getInputElement` should not use `allowClear` & `placeholder`\n\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.'); // `onSearch` should use in `combobox` or `showSearch`\n\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n } // Syntactic sugar should use correct children type\n\n\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (!React.isValidElement(node) || !node.type) {\n return false;\n }\n\n var type = node.type;\n\n if (type.isSelectOption) {\n return false;\n }\n\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (!React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n\n invalidateChildType = subNode.type;\n return false;\n });\n\n if (allChildrenValid) {\n return false;\n }\n\n return true;\n }\n\n invalidateChildType = type;\n return true;\n });\n\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\nexport default warningProps;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\nimport React from 'react';\nimport SelectOptionList from './OptionList';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { convertChildrenToData as convertSelectChildrenToData } from './utils/legacyUtil';\nimport { getLabeledValue as getSelectLabeledValue, filterOptions as selectDefaultFilterOptions, isValueDisabled as isSelectValueDisabled, findValueOption as findSelectValueOption, flattenOptions, fillOptionsWithMissingValue } from './utils/valueUtil';\nimport generateSelector from './generate';\nimport warningProps from './utils/warningPropsUtil';\nvar RefSelect = generateSelector({\n prefixCls: 'rc-select',\n components: {\n optionList: SelectOptionList\n },\n convertChildrenToData: convertSelectChildrenToData,\n flattenOptions: flattenOptions,\n getLabeledValue: getSelectLabeledValue,\n filterOptions: selectDefaultFilterOptions,\n isValueDisabled: isSelectValueDisabled,\n findValueOption: findSelectValueOption,\n warningProps: warningProps,\n fillOptionsWithMissingValue: fillOptionsWithMissingValue\n});\n/**\n * Typescript not support generic with function component,\n * we have to wrap an class component to handle this.\n */\n\nvar Select =\n/** @class */\nfunction () {\n var Select = /*#__PURE__*/function (_React$Component) {\n _inherits(Select, _React$Component);\n\n var _super = _createSuper(Select);\n\n function Select() {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.apply(this, arguments);\n _this.selectRef = React.createRef();\n\n _this.focus = function () {\n _this.selectRef.current.focus();\n };\n\n _this.blur = function () {\n _this.selectRef.current.blur();\n };\n\n return _this;\n }\n\n _createClass(Select, [{\n key: \"render\",\n value: function render() {\n return React.createElement(RefSelect, Object.assign({\n ref: this.selectRef\n }, this.props));\n }\n }]);\n\n return Select;\n }(React.Component);\n\n Select.Option = Option;\n Select.OptGroup = OptGroup;\n return Select;\n}();\n\nexport default Select;","import Select from './Select';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nexport { Option, OptGroup };\nexport default Select;","import * as React from 'react';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\nimport CheckOutlined from '@ant-design/icons/CheckOutlined';\nimport CloseOutlined from '@ant-design/icons/CloseOutlined';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport SearchOutlined from '@ant-design/icons/SearchOutlined';\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple;\n // Clear Icon\n var mergedClearIcon = clearIcon;\n\n if (!clearIcon) {\n mergedClearIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n } // Arrow item icon\n\n\n var mergedSuffixIcon = null;\n\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = suffixIcon;\n } else if (loading) {\n mergedSuffixIcon = /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n });\n } else {\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n\n if (open && showSearch) {\n return /*#__PURE__*/React.createElement(SearchOutlined, null);\n }\n\n return /*#__PURE__*/React.createElement(DownOutlined, null);\n };\n } // Checked item icon\n\n\n var mergedItemIcon = null;\n\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n\n var mergedRemoveIcon = null;\n\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport * as React from 'react';\nimport omit from 'omit.js';\nimport classNames from 'classnames';\nimport RcSelect, { Option, OptGroup } from 'rc-select';\nimport { ConfigConsumer } from '../config-provider';\nimport getIcons from './utils/iconUtil';\nimport SizeContext from '../config-provider/SizeContext'; // We still use class here since `forwardRef` not support generic in typescript\n\nvar Select = /*#__PURE__*/function (_React$Component) {\n _inherits(Select, _React$Component);\n\n var _super = _createSuper(Select);\n\n function Select() {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.apply(this, arguments);\n _this.selectRef = /*#__PURE__*/React.createRef();\n\n _this.focus = function () {\n if (_this.selectRef.current) {\n _this.selectRef.current.focus();\n }\n };\n\n _this.blur = function () {\n if (_this.selectRef.current) {\n _this.selectRef.current.blur();\n }\n };\n\n _this.getMode = function () {\n var mode = _this.props.mode;\n\n if (mode === 'combobox') {\n return undefined;\n }\n\n if (mode === Select.SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n\n return mode;\n };\n\n _this.renderSelect = function (_ref) {\n var getContextPopupContainer = _ref.getPopupContainer,\n getPrefixCls = _ref.getPrefixCls,\n renderEmpty = _ref.renderEmpty,\n direction = _ref.direction,\n virtual = _ref.virtual,\n dropdownMatchSelectWidth = _ref.dropdownMatchSelectWidth;\n var _this$props = _this.props,\n customizePrefixCls = _this$props.prefixCls,\n notFoundContent = _this$props.notFoundContent,\n className = _this$props.className,\n customizeSize = _this$props.size,\n _this$props$listHeigh = _this$props.listHeight,\n listHeight = _this$props$listHeigh === void 0 ? 256 : _this$props$listHeigh,\n _this$props$listItemH = _this$props.listItemHeight,\n listItemHeight = _this$props$listItemH === void 0 ? 24 : _this$props$listItemH,\n getPopupContainer = _this$props.getPopupContainer,\n dropdownClassName = _this$props.dropdownClassName,\n bordered = _this$props.bordered;\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n\n var mode = _this.getMode();\n\n var isMultiple = mode === 'multiple' || mode === 'tags'; // ===================== Empty =====================\n\n var mergedNotFound;\n\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = renderEmpty('Select');\n } // ===================== Icons =====================\n\n\n var _getIcons = getIcons(_extends(_extends({}, _this.props), {\n multiple: isMultiple\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n\n var selectProps = omit(_this.props, ['prefixCls', 'suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'size', 'bordered']);\n var rcSelectRtlDropDownClassName = classNames(dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (size) {\n var _classNames2;\n\n var mergedSize = customizeSize || size;\n var mergedClassName = classNames(className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-borderless\"), !bordered), _classNames2));\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: _this.selectRef,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropDownClassName\n }));\n });\n };\n\n return _this;\n }\n\n _createClass(Select, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderSelect);\n }\n }]);\n\n return Select;\n}(React.Component);\n\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nSelect.defaultProps = {\n transitionName: 'slide-up',\n choiceTransitionName: 'zoom',\n bordered: true\n};\nexport default Select;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\n\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\n\nexport default Simple;","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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\n\nvar Empty = function Empty(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n\n var className = props.className,\n customizePrefixCls = props.prefixCls,\n _props$image = props.image,\n image = _props$image === void 0 ? defaultEmptyImg : _props$image,\n description = props.description,\n children = props.children,\n imageStyle = props.imageStyle,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (locale) {\n var _classNames;\n\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : locale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"p\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n });\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n\n if ('value' in data) {\n value = data.value;\n }\n\n if (key !== null && key !== undefined) {\n return key;\n }\n\n if (value !== undefined) {\n return value;\n }\n\n return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n var flattenList = [];\n\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n if (isGroupOption || !('options' in data)) {\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data\n });\n } else {\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data\n });\n dig(data.options, true);\n }\n });\n }\n\n dig(options, false);\n return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n\n return newOption;\n}\n\nexport function findValueOption(values, options) {\n var optionMap = new Map();\n options.forEach(function (flattenItem) {\n if (!flattenItem.group) {\n var data = flattenItem.data; // Check if match\n\n optionMap.set(data.value, data);\n }\n });\n return values.map(function (val) {\n return injectPropsWithOption(optionMap.get(val));\n });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref) {\n var options = _ref.options,\n prevValue = _ref.prevValue,\n labelInValue = _ref.labelInValue,\n optionLabelProp = _ref.optionLabelProp;\n var item = findValueOption([value], options)[0];\n var result = {\n value: value\n };\n var prevValItem;\n var prevValues = toArray(prevValue);\n\n if (labelInValue) {\n prevValItem = prevValues.find(function (prevItem) {\n if (_typeof(prevItem) === 'object' && 'value' in prevItem) {\n return prevItem.value === value;\n } // [Legacy] Support `key` as `value`\n\n\n return prevItem.key === value;\n });\n }\n\n if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n result.label = prevValItem.label;\n\n if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n } else if (item && optionLabelProp in item) {\n result.label = item[optionLabelProp];\n } else {\n result.label = value;\n } // [Legacy] We need fill `key` as `value` to compatible old code usage\n\n\n result.key = result.value;\n return result;\n};\n\nfunction toRawString(content) {\n return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n return function (searchValue, option) {\n var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n if ('options' in option) {\n return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n } // Option value search\n\n\n var rawValue = option[optionFilterProp];\n var value = toRawString(rawValue).toLowerCase();\n return value.includes(lowerSearchText) && !option.disabled;\n };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref2) {\n var optionFilterProp = _ref2.optionFilterProp,\n filterOption = _ref2.filterOption;\n var filteredOptions = [];\n var filterFunc;\n\n if (filterOption === false) {\n return options;\n }\n\n if (typeof filterOption === 'function') {\n filterFunc = filterOption;\n } else {\n filterFunc = getFilterFunction(optionFilterProp);\n }\n\n options.forEach(function (item) {\n // Group should check child options\n if ('options' in item) {\n // Check group first\n var matchGroup = filterFunc(searchValue, item);\n\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item.options.filter(function (subItem) {\n return filterFunc(searchValue, subItem);\n });\n\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n options: subOptions\n }));\n }\n }\n\n return;\n }\n\n if (filterFunc(searchValue, injectPropsWithOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n\n var match = false;\n\n function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.slice(1);\n\n if (!token) {\n return [str];\n }\n\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n\n var list = separate(text, tokens);\n return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n var option = findValueOption([value], options)[0];\n return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n var values = toArray(value).slice().sort();\n\n var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n var optionValues = new Set();\n options.forEach(function (opt) {\n if (opt.options) {\n opt.options.forEach(function (subOpt) {\n optionValues.add(subOpt.value);\n });\n } else {\n optionValues.add(opt.value);\n }\n }); // Fill missing value\n\n values.forEach(function (item) {\n var val = labelInValue ? item.value : item;\n\n if (!optionValues.has(val)) {\n var _ref5;\n\n cloneOptions.push(labelInValue ? (_ref5 = {}, _defineProperty(_ref5, optionLabelProp, item.label), _defineProperty(_ref5, \"value\", val), _ref5) : {\n value: val\n });\n }\n });\n return cloneOptions;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","/**\r\n * Functionality for drawing rectangles.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Sprite, ISpriteProperties, ISpriteAdapters, ISpriteEvents } from \"../Sprite\";\r\nimport { registry } from \"../Registry\";\r\nimport * as $math from \"../utils/Math\";\r\nimport { IRectangle } from \"../defs/IRectangle\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Rectangle]].\r\n */\r\nexport interface IRectangleProperties extends ISpriteProperties { }\r\n\r\n/**\r\n * Defines events for [[Rectangle]].\r\n */\r\nexport interface IRectangleEvents extends ISpriteEvents { }\r\n\r\n/**\r\n * Defines adapters for [[Rectangle]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IRectangleAdapters extends ISpriteAdapters, IRectangleProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to draw a rectangle.\r\n *\r\n * @see {@link IRectangleEvents} for a list of available events\r\n * @see {@link IRectangleAdapters} for a list of available Adapters\r\n */\r\nexport class Rectangle extends Sprite {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IRectangleProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IRectangleAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IRectangleEvents;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t * * Creates a `` element\r\n\t * * Creates default state\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"Rectangle\";\r\n\t\tthis.element = this.paper.add(\"rect\");\r\n\t\t//this.pixelPerfect = false;\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tlet precision: number = this._positionPrecision;\r\n\t\tif (this.pixelPerfect) {\r\n\t\t\tprecision = 0;\r\n\t\t}\r\n\r\n\t\tlet w: number = $math.round(this.innerWidth, precision);\r\n\t\tlet h: number = $math.round(this.innerHeight, precision);\r\n\r\n\t\tthis.element.attr({\r\n\t\t\t\"width\": w,\r\n\t\t\t\"height\": h\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Measures the element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic measureElement(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns bounding box (square) for this element.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic get bbox(): IRectangle {\r\n\t\tif (this.definedBBox) {\r\n\t\t\treturn this.definedBBox;\r\n\t\t}\r\n\r\n\t\tif (this.isMeasured) {\r\n\t\t\treturn {\r\n\t\t\t\tx: 0,\r\n\t\t\t\ty: 0,\r\n\t\t\t\twidth: this.innerWidth,\r\n\t\t\t\theight: this.innerHeight\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn { x: 0, y: 0, width: 0, height: 0 };\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Rectangle\"] = Rectangle;\r\n","/**\r\n * Provides functionality used to build scrollbars.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../Container\";\r\nimport { IRange } from \"../defs/IRange\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../Sprite\";\r\nimport { Orientation } from \"../defs/Orientation\";\r\nimport { ResizeButton } from \"../elements/ResizeButton\";\r\nimport { Button } from \"../elements/Button\";\r\nimport { getInteraction } from \"../interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"../interaction/Mouse\";\r\nimport { RoundedRectangle } from \"../elements/RoundedRectangle\";\r\nimport { IPoint } from \"../defs/IPoint\";\r\nimport { Animation } from \"../utils/Animation\";\r\nimport { IDisposer } from \"../utils/Disposer\";\r\nimport { registry } from \"../Registry\";\r\nimport { keyboard } from \"../utils/Keyboard\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { percent, Percent } from \"../utils/Percent\";\r\nimport * as $math from \"../utils/Math\";\r\nimport * as $ease from \"../utils/Ease\";\r\nimport * as $type from \"../utils/Type\";\r\nimport * as $utils from \"../utils/Utils\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Scrollbar]].\r\n */\r\nexport interface IScrollbarProperties extends IContainerProperties {\r\n\r\n\t/**\r\n\t * Duration in milliseconds of Scrollbar animation.\r\n\t *\r\n\t * This affects how fast Scrollbar elements move/resize. For example when\r\n\t * chart zooms or pans, Scrollbar elements' positions need to be adjusted\r\n\t * as well. This setting will affect whether they will be relocated\r\n\t * instantenously (0), or will animte gradually.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/concepts/animations/} for more info about animations\r\n\t */\r\n\tanimationDuration?: number;\r\n\r\n\t/**\r\n\t * An easing function to use when animating (moving/sizing) Scrollbar\r\n\t * elements.\r\n\t */\r\n\tanimationEasing?: (value: number) => number;\r\n\r\n\t/**\r\n\t * Orientation of a scrollbar\r\n\t */\r\n\torientation?: Orientation;\r\n}\r\n\r\n/**\r\n * Defines events for [[Scrollbar]].\r\n */\r\nexport interface IScrollbarEvents extends IContainerEvents {\r\n\r\n\t/**\r\n\t * Invoked when range of scrollbar selection changes.\r\n\t */\r\n\trangechanged: {};\r\n\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Scrollbar]].\r\n */\r\nexport interface IScrollbarAdapters extends IContainerAdapters, IScrollbarProperties {\r\n\r\n\t/**\r\n\t * Applied to a position value when it is retrieved.\r\n\t */\r\n\tpositionValue: {\r\n\t\tvalue: any,\r\n\t\tposition: number\r\n\t}\r\n\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Scrollbar is a generic control allowing to select a range of values or pan\r\n * the selection.\r\n *\r\n * @see {@link IScrollbarEvents} for a list of available events\r\n * @see {@link IScrollbarAdapters} for a list of available Adapters\r\n */\r\nexport class Scrollbar extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IScrollbarProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IScrollbarAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IScrollbarEvents;\r\n\r\n\t/**\r\n\t * Holds a reference to a draggable rectangle that fills the space between\r\n\t * two selection grips. It can be used to pan the selection maintaining the\r\n\t * distance between start and end grips.\r\n\t */\r\n\tprotected _thumb: $type.Optional